diff --git a/Android.bp b/Android.bp
index 5eb8765..dad0e6c 100644
--- a/Android.bp
+++ b/Android.bp
@@ -12,26 +12,13 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    // See: http://go/android-license-faq
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 // Build the Phone app which includes the emergency dialer. See Contacts
 // for the 'other' dialer.
-
-package {
-    default_applicable_licenses: ["packages_services_Telephony_license"],
-}
-
-// Added automatically by a large-scale-change
-// See: http://go/android-license-faq
-license {
-    name: "packages_services_Telephony_license",
-    visibility: [":__subpackages__"],
-    license_kinds: [
-        "SPDX-license-identifier-Apache-2.0",
-    ],
-    license_text: [
-        "NOTICE",
-    ],
-}
-
 android_app {
     name: "TeleService",
 
@@ -40,6 +27,7 @@
         "voip-common",
         "ims-common",
         "libprotobuf-java-lite",
+        "app-compat-annotations",
         "unsupportedappusage",
         "org.apache.http.legacy",
     ],
@@ -60,7 +48,6 @@
     srcs: [
         ":framework-telephony-common-shared-srcs",
         "src/**/*.java",
-        "sip/src/**/*.java",
         "ecc/proto/**/*.proto",
         "src/com/android/phone/EventLogTags.logtags",
     ],
@@ -69,7 +56,6 @@
 
     resource_dirs: [
         "res",
-        "sip/res",
     ],
 
     asset_dirs: [
@@ -77,10 +63,6 @@
         "ecc/output",
     ],
 
-    aaptflags: [
-        "--extra-packages com.android.services.telephony.sip",
-    ],
-
     platform_apis: true,
 
     certificate: "platform",
@@ -89,7 +71,6 @@
     optimize: {
         proguard_flags_files: [
             "proguard.flags",
-            "sip/proguard.flags",
         ],
     },
 
@@ -97,3 +78,8 @@
         type: "lite",
     },
 }
+
+platform_compat_config {
+    name: "TeleService-platform-compat-config",
+    src: ":TeleService",
+}
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 86f72bc..5a3c017 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -23,95 +23,6 @@
 >
 
     <original-package android:name="com.android.phone" />
-
-    <protected-broadcast android:name="android.telecom.action.CURRENT_TTY_MODE_CHANGED" />
-    <protected-broadcast android:name="android.intent.action.SERVICE_STATE" />
-    <protected-broadcast android:name="android.intent.action.RADIO_TECHNOLOGY" />
-    <protected-broadcast android:name="android.intent.action.EMERGENCY_CALLBACK_MODE_CHANGED" />
-    <protected-broadcast android:name="android.intent.action.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_STALL_DETECTED" />
-    <protected-broadcast android:name="android.intent.action.SIM_STATE_CHANGED" />
-    <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.telephony.action.SERVICE_PROVIDERS_UPDATED" />
-    <protected-broadcast android:name="android.provider.Telephony.SIM_FULL" />
-    <protected-broadcast android:name="com.android.internal.telephony.carrier_key_download_alarm" />
-    <protected-broadcast android:name="com.android.internal.telephony.data-restart-trysetup" />
-    <protected-broadcast android:name="com.android.internal.telephony.data-stall" />
-    <protected-broadcast android:name="com.android.internal.telephony.provisioning_apn_alarm" />
-    <protected-broadcast android:name="android.intent.action.DATA_SMS_RECEIVED" />
-    <protected-broadcast android:name="android.provider.Telephony.SMS_RECEIVED" />
-    <protected-broadcast android:name="android.provider.Telephony.SMS_DELIVER" />
-    <protected-broadcast android:name="android.provider.Telephony.SMS_REJECTED" />
-    <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.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" />
-    <protected-broadcast android:name= "com.android.internal.stk.icc_status_change" />
-    <protected-broadcast android:name= "com.android.internal.stk.alpha_notify" />
-    <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_SIGNAL_REDIRECTED" />
-    <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_SIGNAL_REQUEST_NETWORK_FAILED" />
-    <protected-broadcast android:name= "com.android.internal.telephony.CARRIER_SIGNAL_PCO_VALUE" />
-    <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.PROVISION" />
-    <protected-broadcast android:name= "com.android.internal.telephony.ACTION_LINE1_NUMBER_ERROR_DETECTED" />
-    <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" />
-    <protected-broadcast android:name= "com.android.ims.ACTION_RCS_SERVICE_UNAVAILABLE" />
-    <protected-broadcast android:name= "com.android.ims.ACTION_RCS_SERVICE_DIED" />
-    <protected-broadcast android:name= "com.android.ims.ACTION_PRESENCE_CHANGED" />
-    <protected-broadcast android:name= "com.android.ims.ACTION_PUBLISH_STATUS_CHANGED" />
-    <protected-broadcast android:name= "com.android.ims.IMS_SERVICE_UP" />
-    <protected-broadcast android:name= "com.android.ims.IMS_SERVICE_DOWN" />
-    <protected-broadcast android:name= "com.android.ims.IMS_INCOMING_CALL" />
-    <protected-broadcast android:name= "com.android.ims.internal.uce.UCE_SERVICE_UP" />
-    <protected-broadcast android:name= "com.android.ims.internal.uce.UCE_SERVICE_DOWN" />
-    <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= "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" />
-    <protected-broadcast android:name= "com.android.cellbroadcastreceiver.GET_LATEST_CB_AREA_INFO" />
-    <protected-broadcast android:name= "com.android.internal.telephony.ACTION_CARRIER_CERTIFICATE_DOWNLOAD" />
-    <protected-broadcast android:name= "com.android.internal.telephony.action.COUNTRY_OVERRIDE" />
-    <protected-broadcast android:name= "com.android.internal.telephony.OPEN_DEFAULT_SMS_APP" />
-    <protected-broadcast android:name= "com.android.internal.telephony.ACTION_TEST_OVERRIDE_CARRIER_ID" />
-    <protected-broadcast android:name= "android.telephony.action.SIM_CARD_STATE_CHANGED" />
-    <protected-broadcast android:name= "android.telephony.action.SIM_APPLICATION_STATE_CHANGED" />
-    <protected-broadcast android:name= "android.telephony.action.SIM_SLOT_STATUS_CHANGED" />
-    <protected-broadcast android:name= "android.telephony.action.SUBSCRIPTION_CARRIER_IDENTITY_CHANGED" />
-    <protected-broadcast android:name= "android.telephony.action.SUBSCRIPTION_SPECIFIC_CARRIER_IDENTITY_CHANGED" />
-    <protected-broadcast android:name= "android.telephony.action.TOGGLE_PROVISION" />
-    <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" />
-    <protected-broadcast android:name= "android.telephony.action.CARRIER_SIGNAL_RESET" />
-    <protected-broadcast android:name= "android.telephony.action.CARRIER_SIGNAL_PCO_VALUE" />
-    <protected-broadcast android:name= "android.telephony.action.CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE" />
-    <protected-broadcast android:name= "android.telephony.action.CARRIER_SIGNAL_REDIRECTED" />
-    <protected-broadcast android:name= "android.telephony.action.CARRIER_SIGNAL_REQUEST_NETWORK_FAILED" />
-
-    <protected-broadcast android:name= "com.android.phone.settings.CARRIER_PROVISIONING" />
-    <protected-broadcast android:name= "com.android.phone.settings.TRIGGER_CARRIER_PROVISIONING" />
-
-    <!-- For Vendor Debugging in Telephony -->
-    <protected-broadcast android:name="android.telephony.action.ANOMALY_REPORTED" />
-
-    <protected-broadcast android:name= "android.intent.action.SUBSCRIPTION_INFO_RECORD_ADDED" />
-    <protected-broadcast android:name= "android.intent.action.ACTION_MANAGED_ROAMING_IND" />
-    <protected-broadcast android:name= "android.telephony.ims.action.RCS_SINGLE_REGISTRATION_CAPABILITY_UPDATE" />
-
     <!-- Allows granting runtime permissions to telephony related components. -->
     <uses-permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS" />
 
@@ -147,7 +58,6 @@
     <uses-permission android:name="android.permission.WRITE_SMS" />
     <uses-permission android:name="android.permission.SEND_SMS" />
     <uses-permission android:name="android.permission.SEND_RESPOND_VIA_MESSAGE" />
-    <uses-permission android:name="android.permission.SET_TIME_ZONE" />
     <uses-permission android:name="android.permission.SUGGEST_TELEPHONY_TIME_AND_ZONE" />
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
@@ -156,7 +66,6 @@
     <uses-permission android:name="android.permission.DEVICE_POWER" />
     <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
     <uses-permission android:name="android.permission.INTERNET" />
-    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
     <uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
@@ -189,8 +98,6 @@
     <uses-permission android:name="android.permission.REGISTER_SIM_SUBSCRIPTION" />
     <uses-permission android:name="android.permission.BIND_IMS_SERVICE" />
     <uses-permission android:name="android.permission.BIND_CARRIER_SERVICES" />
-    <!-- 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="android.permission.BIND_TELEPHONY_NETWORK_SERVICE" />
     <uses-permission android:name="android.permission.BIND_CELL_BROADCAST_SERVICE" />
@@ -207,6 +114,7 @@
     <uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS" />
     <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
     <uses-permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST" />
+    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
     <!-- Needed to block messages. -->
     <uses-permission android:name="android.permission.READ_BLOCKED_NUMBERS" />
     <!-- Needed for emergency contact notification. -->
@@ -235,9 +143,19 @@
     <uses-permission android:name="android.permission.MANAGE_SUBSCRIPTION_PLANS"/>
     <uses-permission android:name="android.permission.OBSERVE_ROLE_HOLDERS"/>
     <uses-permission android:name="android.permission.BIND_GBA_SERVICE"/>
+    <!-- Permissions required for reading and logging compat changes -->
+    <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE"/>
+    <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"/>
 
     <!-- Needed to listen to changes in projection state. -->
     <uses-permission android:name="android.permission.READ_PROJECTION_STATE"/>
+    <!-- Needed to access TelephonyProvider SIMINFO table. -->
+    <uses-permission android:name="android.permission.ACCESS_TELEPHONY_SIMINFO_DB"/>
+    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
+
+    <permission android:name="com.android.phone.permission.ACCESS_LAST_KNOWN_CELL_ID"
+                android:label="Access last known cell identity."
+                android:protectionLevel="signature"/>
 
     <application android:name="PhoneApp"
             android:persistent="true"
@@ -347,7 +265,7 @@
                 android:label="@string/labelCF"
                 android:configChanges="orientation|screenSize|keyboardHidden"
                 android:exported="true"
-                android:theme="@style/DialerSettingsLight">
+                android:theme="@style/CallSettingsWithoutDividerTheme">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
             </intent-filter>
@@ -357,7 +275,7 @@
                 android:label="@string/labelCF"
                 android:configChanges="orientation|screenSize|keyboardHidden"
                 android:exported="true"
-                android:theme="@style/DialerSettingsLight">
+                android:theme="@style/CallSettingsWithoutDividerTheme">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
             </intent-filter>
@@ -377,7 +295,7 @@
                 android:label="@string/labelGSMMore"
                 android:configChanges="orientation|screenSize|keyboardHidden"
                 android:exported="true"
-                android:theme="@style/DialerSettingsLight">
+                android:theme="@style/CallSettingsWithoutDividerTheme">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
             </intent-filter>
@@ -387,7 +305,7 @@
         <activity android:name="com.android.phone.settings.fdn.FdnSetting"
                 android:label="@string/fdn"
                 android:exported="true"
-                android:theme="@style/DialerSettingsLight">
+                android:theme="@style/CallSettingsWithoutDividerTheme">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
             </intent-filter>
@@ -435,9 +353,8 @@
                 android:label="@string/call_settings"
                 android:configChanges="orientation|screenSize|keyboardHidden"
                 android:exported="true"
-                android:theme="@style/DialerSettingsLight">
-            <intent-filter>
-                <action android:name="android.intent.action.VIEW" />
+                android:theme="@style/CallSettingsWithoutDividerTheme">
+            <intent-filter android:priority="1">
                 <action android:name="android.intent.action.MAIN" />
                 <action android:name="android.telecom.action.SHOW_CALL_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -569,52 +486,6 @@
             </intent-filter>
         </activity>
 
-        <!-- Start SIP -->
-        <service android:name="com.android.services.telephony.sip.SipConnectionService"
-                 android:label="@string/sip_connection_service_label"
-                 android:singleUser="true"
-                 android:exported="true"
-                 android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE" >
-            <intent-filter>
-                <action android:name="android.telecom.ConnectionService" />
-            </intent-filter>
-        </service>
-
-        <receiver android:name="com.android.services.telephony.sip.SipIncomingCallReceiver"
-            android:exported="true">
-            <intent-filter>
-                <action android:name="android.net.sip.action.SIP_INCOMING_CALL" />
-            </intent-filter>
-        </receiver>
-
-        <activity android:label="Sip Settings"
-                  android:name="com.android.services.telephony.sip.SipSettings"
-                  android:theme="@style/DialerSettingsLight"
-                  android:launchMode="singleTop"
-                  android:configChanges="orientation|screenSize|keyboardHidden"
-                  android:uiOptions="splitActionBarWhenNarrow"
-                  android:exported="true"
-                  android:parentActivityName="com.android.phone.CallFeaturesSetting" >
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <action android:name="android.net.sip.NOTIFY" />
-            </intent-filter>
-        </activity>
-        <activity android:name="com.android.services.telephony.sip.SipEditor"
-                android:theme="@style/DialerSettingsLight"
-                android:configChanges="orientation|screenSize|keyboardHidden"
-                android:uiOptions="splitActionBarWhenNarrow">
-        </activity>
-
-        <service android:name="com.android.services.telephony.sip.components.TelephonySipService"
-            android:exported="true">
-            <intent-filter>
-                <action android:name="android.net.sip.action.START_SIP" />
-            </intent-filter>
-        </service>
-
-        <!-- End SIP -->
-
         <activity android:name="MMIDialogActivity"
                 android:configChanges="orientation|screenSize|keyboardHidden"
                 android:excludeFromRecents="true"
@@ -637,7 +508,7 @@
             android:configChanges="orientation|screenSize|keyboardHidden|screenLayout"
             android:screenOrientation="portrait"
             android:exported="true"
-            android:theme="@style/DialerSettingsLight">
+            android:theme="@style/CallSettingsWithoutDividerTheme">
             <intent-filter >
                 <!-- DO NOT RENAME. There are existing apps which use this string. -->
                 <action android:name="com.android.phone.CallFeaturesSetting.ADD_VOICEMAIL" />
@@ -703,7 +574,7 @@
                 <action android:name="android.telephony.NetworkService" />
             </intent-filter>
         </service>
-        <service android:name="com.android.internal.telephony.dataconnection.CellularDataService"
+        <service android:name="com.android.internal.telephony.data.CellularDataService"
             android:exported="true"
             android:permission="android.permission.BIND_TELEPHONY_DATA_SERVICE" >
             <intent-filter>
diff --git a/NOTICE b/NOTICE
deleted file mode 100644
index c5b1efa..0000000
--- a/NOTICE
+++ /dev/null
@@ -1,190 +0,0 @@
-
-   Copyright (c) 2005-2008, The Android Open Source Project
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
diff --git a/TEST_MAPPING b/TEST_MAPPING
index 75b9d49..3831b6b 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -10,6 +10,38 @@
     },
     {
       "name": "CarrierAppIntegrationTestCases"
+    },
+    {
+      "name": "CtsSimRestrictedApisTestCases",
+      "options": [
+        {
+          "exclude-annotation": "androidx.test.filters.FlakyTest"
+        }
+      ]
+    },
+    {
+      "name": "CtsTelephony2TestCases",
+      "options": [
+        {
+          "exclude-annotation": "androidx.test.filters.FlakyTest"
+        }
+      ]
+    },
+    {
+      "name": "CtsTelephony3TestCases",
+      "options": [
+        {
+          "exclude-annotation": "androidx.test.filters.FlakyTest"
+        }
+      ]
+    },
+    {
+      "name": "CtsTelephonyProviderTestCases",
+      "options": [
+        {
+          "exclude-annotation": "androidx.test.filters.FlakyTest"
+        }
+      ]
     }
   ]
 }
diff --git a/apex/Android.bp b/apex/Android.bp
index a0e5713..fbb70db 100644
--- a/apex/Android.bp
+++ b/apex/Android.bp
@@ -1,10 +1,6 @@
 package {
     // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "packages_services_Telephony_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
-    default_applicable_licenses: ["packages_services_Telephony_license"],
+    default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
 apex_defaults {
diff --git a/apex/testing/Android.bp b/apex/testing/Android.bp
index 1138b5e..1c6f4a3 100644
--- a/apex/testing/Android.bp
+++ b/apex/testing/Android.bp
@@ -14,11 +14,7 @@
 
 package {
     // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "packages_services_Telephony_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
-    default_applicable_licenses: ["packages_services_Telephony_license"],
+    default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
 apex {
diff --git a/ecc/conversion_toolset_v1/proto/Android.bp b/ecc/conversion_toolset_v1/proto/Android.bp
index 632ab40..cefd789 100644
--- a/ecc/conversion_toolset_v1/proto/Android.bp
+++ b/ecc/conversion_toolset_v1/proto/Android.bp
@@ -14,11 +14,7 @@
 
 package {
     // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "packages_services_Telephony_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
-    default_applicable_licenses: ["packages_services_Telephony_license"],
+    default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
 java_library_static {
diff --git a/res/drawable-hdpi/ic_dialer_sip_black_24dp.png b/res/drawable-hdpi/ic_dialer_sip_black_24dp.png
deleted file mode 100644
index 37dabfc..0000000
--- a/res/drawable-hdpi/ic_dialer_sip_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_launcher_sip_call.png b/res/drawable-hdpi/ic_launcher_sip_call.png
deleted file mode 100644
index f1aa979..0000000
--- a/res/drawable-hdpi/ic_launcher_sip_call.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_dialer_sip_black_24dp.png b/res/drawable-mdpi/ic_dialer_sip_black_24dp.png
deleted file mode 100644
index 51d5e13..0000000
--- a/res/drawable-mdpi/ic_dialer_sip_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_launcher_sip_call.png b/res/drawable-mdpi/ic_launcher_sip_call.png
deleted file mode 100644
index d10b6bf..0000000
--- a/res/drawable-mdpi/ic_launcher_sip_call.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_dialer_sip_black_24dp.png b/res/drawable-xhdpi/ic_dialer_sip_black_24dp.png
deleted file mode 100644
index 619a79f..0000000
--- a/res/drawable-xhdpi/ic_dialer_sip_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_launcher_sip_call.png b/res/drawable-xhdpi/ic_launcher_sip_call.png
deleted file mode 100644
index e9f655b..0000000
--- a/res/drawable-xhdpi/ic_launcher_sip_call.png
+++ /dev/null
Binary files differ
diff --git a/res/layout/emergency_dialer.xml b/res/layout/emergency_dialer.xml
index ab32c62..3eaeb19 100644
--- a/res/layout/emergency_dialer.xml
+++ b/res/layout/emergency_dialer.xml
@@ -66,94 +66,7 @@
             android:layout_gravity="bottom"
             android:orientation="vertical">
 
-            <!-- FrameLayout -->
-            <com.android.phone.EmergencyActionGroup
-                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">
-
-                <!-- Button that says: Emergency Information -->
-                <LinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent">
-                    <Button android:layout_width="0dp"
-                            android:layout_height="match_parent"
-                            android:layout_weight="1"
-                            android:background="@drawable/btn_emergency"
-                            android:id="@+id/action1" />
-                    <Button android:layout_width="0dp"
-                            android:layout_height="match_parent"
-                            android:layout_weight="1"
-                            android:background="@drawable/btn_emergency"
-                            android:id="@+id/action2" />
-                    <Button android:layout_width="0dp"
-                            android:layout_height="match_parent"
-                            android:layout_weight="1"
-                            android:background="@drawable/btn_emergency"
-                            android:id="@+id/action3" />
-                </LinearLayout>
-
-                <!-- View that shows up on top of "emergency information" button
-                and asks you to tap again to confirm the action -->
-                <FrameLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:id="@+id/selected_container"
-                    android:visibility="invisible"
-                    android:focusable="true"
-                    android:clickable="true">
-
-                    <View
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:backgroundTint="#ffe32926"
-                        android:focusable="false"
-                        android:clickable="false"
-                        style="?android:attr/buttonStyle"/>
-
-                    <View
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:id="@+id/ripple_view"
-                        android:backgroundTint="#22ffffff"
-                        android:visibility="invisible"
-                        android:focusable="false"
-                        android:clickable="false"
-                        style="?android:attr/buttonStyle"/>
-
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:orientation="vertical"
-                        android:focusable="false"
-                        android:clickable="false"
-                        android:backgroundTint="#00000000"
-                        style="?android:attr/buttonStyle">
-                        <TextView
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:gravity="center"
-                            android:maxLines="1"
-                            android:id="@+id/selected_label"
-                            android:textColor="@android:color/white"
-                            android:textAppearance="?android:attr/textAppearanceButton" />
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:id="@+id/launch_hint"
-                            android:maxLines="1"
-                            android:autoSizeTextType="uniform"
-                            android:text="@string/emergency_action_launch_hint"
-                            android:textColor="@android:color/white"
-                            android:textStyle="italic" />
-                    </LinearLayout>
-
-                </FrameLayout>
-
-            </com.android.phone.EmergencyActionGroup>
+            <include layout="@layout/emergency_information"/>
             <Space
                 android:id="@+id/emergency_info_dialpad_spacer"
                 android:layout_width="match_parent"
diff --git a/res/layout/radio_info.xml b/res/layout/radio_info.xml
index 68c67a3..1f137b0 100644
--- a/res/layout/radio_info.xml
+++ b/res/layout/radio_info.xml
@@ -92,6 +92,12 @@
             <TextView android:id="@+id/data_network" style="@style/info_value" />
         </LinearLayout>
 
+        <!-- Override Network Type -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_override_network_type_label" style="@style/info_label" />
+            <TextView android:id="@+id/override_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" />
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 76b13c6..0eda648 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Noodterugbel-modus"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Dataverbinding gedeaktiveer"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Geen dataverbinding tot <xliff:g id="COMPLETETIME">%s</xliff:g> nie"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Die foon sal <xliff:g id="COUNT_1">%s</xliff:g> minute lank in noodterugbelmodus wees. Terwyl dit in hierdie modus is, kan geen programme gebruik word wat \'n dataverbinding gebruik nie. Wil jy nou uitgaan?</item>
-      <item quantity="one">Die foon sal <xliff:g id="COUNT_0">%s</xliff:g> minuut lank in noodterugbelmodus wees. Terwyl dit in hierdie modus is, kan geen programme gebruik word wat \'n dataverbinding gebruik nie. Wil jy nou uitgaan?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Die gekose handeling is nie beskikbaar terwyl die foon in die noodterugbelmodus is nie. Die foon sal <xliff:g id="COUNT_1">%s</xliff:g> minute lank in hierdie modus wees. Wil jy nou uitgaan?</item>
-      <item quantity="one">Die gekose handeling is nie beskikbaar terwyl die foon in die noodterugbelmodus is nie. Die foon sal <xliff:g id="COUNT_0">%s</xliff:g> minuut lank in hierdie modus wees. Wil jy nou uitgaan?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Die foon sal in noodterugbelmodus wees vir een minuut. Terwyl hierdie modus aktief is, kan geen programme wat \'n dataverbinding nodig het, gebruik word nie. Wil jy nou uitgaan?}other{Die foon sal in noodterugbelmodus wees vir %s minute. Terwyl hierdie modus aktief is, kan geen programme wat \'n dataverbinding nodig het, gebruik word nie. Wil jy nou uitgaan?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Die geselekteerde handeling is nie beskikbaar terwyl die noodterugbelmodus aktief is nie. Die modus sal vir een minuut op hierdie foon aktief wees. Wil jy nou uitgaan?}other{Die geselekteerde handeling is nie beskikbaar terwyl die noodterugbelmodus aktief is nie. Die modus sal vir %s minute op hierdie foon aktief wees. Wil jy nou uitgaan?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Die gekose handeling is nie beskikbaar tydens \'n noodoproep nie."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Verlaat noodterugbel-modus"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Die foon sal in noodterugbelmodus wees vir een minuut.\nWil jy nou uitgaan?}other{Die foon sal in noodterugbelmodus wees vir %s minute.\nWil jy nou uitgaan?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Toeganklikheid"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi-oproep vanaf"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi-oproep"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tik weer om oop te maak"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Kon nie die boodskap dekodeer nie."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"\'n SIM-kaart het jou diens geaktiveer en jou foon se swerwingvermoëns opgedateer."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Daar is te veel aktiewe oproepe. Beëindig of voeg asseblief bestaande oproepe saam voordat jy \'n nuwe een maak."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Kan nie \'n oproep maak nie, aangesien \'n ander uitgaande oproep reeds besig is om te skakel."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Kan nie \'n oproep maak nie, aangesien daar \'n onbeantwoorde inkomende oproep is. Beantwoord of weier die inkomende oproep voordat jy \'n nuwe oproep plaas."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Kan nie \'n oproep maak nie, aangesien oproepmaking gedeaktiveer is deur die ro.telephony.disable-belstelseleienskap te gebruik."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Kan nie \'n oproep maak nie, aangesien daar reeds twee oproepe aan die gang is. Ontkoppel een van die oproepe of voeg dit saam in \'n konferensie voordat \'n nuwe oproep gemaak word."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Kan nie ’n oproep maak nie, aangesien twee oproepe reeds aan die gang is. Ontkoppel een van die oproepe of voeg dit saam in ’n konferensie voordat ’n nuwe oproep gemaak word."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Om <xliff:g id="SUPP_SERVICE">%s</xliff:g> te gebruik, maak seker dat mobiele data aangeskakel is. Jy kan dit in selnetwerk-instellings verander."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Om <xliff:g id="SUPP_SERVICE">%s</xliff:g> te gebruik, maak seker dat mobiele data en dataswerwing aangeskakel is. Jy kan dit in selnetwerk-instellings verander."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Ignoreer Netwerktipe:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC is beskikbaar:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR is beperk:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR is beskikbaar:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR-status:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC-beskikbaar (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR-beperk (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR-beskikbaar (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR-staat (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR-frekwensie:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Stel radiobandmodus"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Laai tans bandlys …"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFO-geregtigheid-ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Dateer op"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Herlaai"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Jou bluetooth-sein is swak. Probeer om na luidsprekerfoon oor te skakel."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Kennisgewing oor oproepgehalte"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Opgeskorte SIP-rekeninge"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index a808559..8450b7f 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">ስልኩ በድንገተኛ ጥሪ መልሶ መደወያ ሁነታ ለ <xliff:g id="COUNT_1">%s</xliff:g> ደቂቃዎች ይቆያል። በዚህ ሁነታ ላይ በሚሆንበት ጊዜ የውሂብ ግንኙነትን የሚጠቀሙ ማናቸውም መተግበሪያዎች ጥቅም ላይ ሊውሉ አይችሉም። አሁን መውጣት ይፈልጋሉ?</item>
-      <item quantity="other">ስልኩ በድንገተኛ ጥሪ መልሶ መደወያ ሁነታ ለ <xliff:g id="COUNT_1">%s</xliff:g> ደቂቃዎች ይቆያል። በዚህ ሁነታ ላይ በሚሆንበት ጊዜ የውሂብ ግንኙነትን የሚጠቀሙ ማናቸውም መተግበሪያዎች ጥቅም ላይ ሊውሉ አይችሉም። አሁን መውጣት ይፈልጋሉ?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">የተመረጠው እርምጃ በአደጋ ጥሪ መልሶ መደወያ ሁነታ ላይ ባለበት ጊዜ ሊገኝ አይችልም። ስልኩ በድንገተኛ ጥሪ መልሶ መደወያ ሁነታ ለ <xliff:g id="COUNT_1">%s</xliff:g> ደቂቃዎች ይቆያል። አሁን መውጣት ይፈልጋሉ?</item>
-      <item quantity="other">የተመረጠው እርምጃ በአደጋ ጥሪ መልሶ መደወያ ሁነታ ላይ ባለበት ጊዜ ሊገኝ አይችልም። ስልኩ በድንገተኛ ጥሪ መልሶ መደወያ ሁነታ ለ<xliff:g id="COUNT_1">%s</xliff:g> ደቂቃዎች ይቆያል። አሁን መውጣት ይፈልጋሉ?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"የተመረጠው እርምጃ በአደጋ ጥሪ ጊዜ ለክንውን ሊገኝ አይችልም።"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"የአደጋ ጊዜ ተዘዋዋሪ ጥሪ ሁኔታ ወጥቷል"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"አዎ"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"ተደራሽነት"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"የWi-Fi ጥሪ ከ"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"የWi-Fi ጥሪ"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ለመክፈት ዳግም ነካ ያድርጉ"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"መልዕክቱን በማመሳጠር ላይ ስህተት ነበር።"</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"አንድ ሲም ካርድ አገልግሎትዎን ገቢር አድርጎታል፣ እንዲሁም የስልክዎን የማስተላለፍ ችሎታዎችን አዘምኗል።"</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"እጅግ በጣም ብዙ ንቁ ጥሪዎች አሉ። እባክዎ አዲስ ከማስቀመጥዎ በፊት ያሉትን ጥሪዎች ይጨርሱ ወይም ያዋህዱ።"</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"ሊላ ወጪ ጥሪ እየደወለ ስለሆነ ጥሪ ማድረግ አይቻልም።"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"ያልተመለሰ ገቢ ጥሪ ስላለ ጥሪ ማድረግ አይቻልም። አዲስ ጥሪ ከማድረግዎ በፊት ገቢውን ጥሪ ይመልሱ ወይም ይዝጉ።"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ጥሪ ማድረግ አይቻልም ምክንያቱም ጥሪ ማድረግ በ ro.telephony.disable-call የስርዓት ባህሪ ተሰናክልሏል።"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"ጥሪ ማድረግ አይቻልም ምክንያቱም ቀድሞ ሁለት ጥሪዎች በሂደት ላይ ናቸው። አዲስ ጥሪ ከማድረግዎ በፊት ከጥሪዎቹ አንዱን ያቋርጡ ወይም ወደ ጉባዔ ይቀይሯችው።"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"ጥሪ ማድረግ አይቻልም ምክንያቱም አስቀድሞ ሁለት ጥሪዎች በሂደት ላይ ናቸው። አዲስ ጥሪ ከማድረግዎ በፊት ከጥሪዎቹ አንዱን ያቋርጡ ወይም ወደ ጉባዔ ያዋህዷቸው።"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ን ለመጠቀም፣ ሞባይል ውሂብ መብራቱን ያረጋግጡ። ይህን በሞባይል አውታረመረብ ቅንብሮች ውስጥ መለወጥ ይችላሉ።"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ን ለመጠቀም፣ ሞባይል ውሂብ እና የውሂብ ዝውውር መብራታቸውን ያረጋግጡ። እነዚህን በ ሞባይል አውታረመረብ ቅንብሮች ውስጥ መለወጥ ይችላሉ።"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"የአውታረ መረብ አይነት ሻር፦"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC ይገኛል፦"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR ተገድቧል፦"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR ይገኛል፦"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR ሁኔታ፦"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC ይገኛል (NSA)፦"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR ተገድቧል (NSA)፦"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR ይገኛል (NSA)፦"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR ሁኔታ (NSA)፦"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR ድግግሞሽ፦"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"የሬዲዮ ባንድ ሁነታን ያቀናጁ"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"የባንድ ዝርዝርን በመጫን ላይ…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC የባለመብትነት መታወቂያ፦"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"አዘምን"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"አድስ"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"የእርስዎ የብሉቱዝ ሲግናል ደካማ ነው። ወደ የስልክ ድምፅ ማጉያ ለመቀየር ይሞክሩ።"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"የጥሪ ጥራት ማሳወቂያ"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"የተቋረጡ የSIP መለያዎች"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 21a540f..474db3c 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -637,22 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="zero">سيكون الهاتف في وضع الرد على مكالمة الطوارئ لمدة <xliff:g id="COUNT_1">%s</xliff:g> من الدقائق. وأثناء هذا الوضع، لا يمكن استخدام أي تطبيقات تستخدم اتصال بيانات. هل تريد الخروج الآن؟</item>
-      <item quantity="two">سيكون الهاتف في وضع الرد على مكالمة الطوارئ لمدة دقيقتين (<xliff:g id="COUNT_1">%s</xliff:g>). وأثناء هذا الوضع، لا يمكن استخدام أي تطبيقات تستخدم اتصال بيانات. هل تريد الخروج الآن؟</item>
-      <item quantity="few">سيكون الهاتف في وضع الرد على مكالمة الطوارئ لمدة <xliff:g id="COUNT_1">%s</xliff:g> دقائق. وأثناء هذا الوضع، لا يمكن استخدام أي تطبيقات تستخدم اتصال بيانات. هل تريد الخروج الآن؟</item>
-      <item quantity="many">سيكون الهاتف في وضع الرد على مكالمة الطوارئ لمدة <xliff:g id="COUNT_1">%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="zero">الإجراء المحدد ليس متاحًا أثناء تفعيل وضع الرد على مكالمة الطوارئ. وسيكون الهاتف في هذا الوضع لمدة <xliff:g id="COUNT_1">%s</xliff:g> من الدقائق. هل تريد الخروج الآن؟</item>
-      <item quantity="two">الإجراء المحدد ليس متاحًا أثناء تفعيل وضع الرد على مكالمة الطوارئ. وسيكون الهاتف في هذا الوضع لمدة دقيقتين (<xliff:g id="COUNT_1">%s</xliff:g>). هل تريد الخروج الآن؟</item>
-      <item quantity="few">الإجراء المحدد ليس متاحًا أثناء تفعيل وضع الرد على مكالمة الطوارئ. وسيكون الهاتف في هذا الوضع لمدة <xliff:g id="COUNT_1">%s</xliff:g> دقائق. هل تريد الخروج الآن؟</item>
-      <item quantity="many">الإجراء المحدد ليس متاحًا أثناء تفعيل وضع الرد على مكالمة الطوارئ. وسيكون الهاتف في هذا الوضع لمدة <xliff:g id="COUNT_1">%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>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"الإجراء المحدد ليس متاحًا أثناء إجراء اتصال بالطوارئ."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"الخروج من وضع معاودة الاتصال بالطوارئ"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"نعم"</string>
@@ -660,14 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -695,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"إعدادات تمكين الوصول"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"‏مكالمة Wi-Fi من"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"‏مكالمة عبر Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"انقر مرة أخرى للفتح."</string>
     <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>
@@ -839,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"لا يمكن إجراء مكالمة لأنّ هناك مكالمة صادرة أخرى تجري بالفعل."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"لا يمكن إجراء مكالمة لأنّ هناك مكالمة واردة لم يتم الرد عليها. يُرجى الرد على المكالمة الواردة أو رفضها قبل إجراء مكالمة جديدة."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"‏لا يمكن إجراء مكالمة لأنّه قد تم إيقاف وظيفة الاتصال باستخدام ميزة النظام ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"لا يمكن إجراء مكالمة لأنّ هناك مكالمتين قيد التقدّم بالفعل. يمكنك إنهاء إحدى المكالمتين أو دمجهما في مكالمة جماعية قبل إجراء مكالمة جديدة."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"لا يمكن إجراء مكالمة لأنّ هناك مكالمتين جاريتين حاليًا. يمكنك إنهاء إحدى المكالمتين أو دمجهما في مكالمة جماعية قبل إجراء مكالمة جديدة."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"لاستخدام <xliff:g id="SUPP_SERVICE">%s</xliff:g>، تأكّد من تفعيل بيانات الجوّال. يمكنك تغيير هذا الإعداد في إعدادات شبكة الجوّال."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"لاستخدام <xliff:g id="SUPP_SERVICE">%s</xliff:g>، تأكّد من تفعيل بيانات الجوّال وتجوال البيانات. يمكنك تغيير هذين الإعدادين في إعدادات شبكة الجوّال."</string>
     <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>
@@ -911,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"تجاهل نوع الشبكة:"</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>
@@ -922,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"‏EN-DC متوفر:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"‏تم حظر DCNR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"‏NR متوفر:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"‏حالة NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"‏EN-DC متوفّر (في وضع NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"‏تم حظر DCNR ‏(في وضع NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"‏NR متوفّر (في وضع NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"‏حالة NR ‏(في وضع NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"‏تردد NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"تحديد وضع النطاق اللاسلكي"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"جارٍ تحميل قائمة النطاقات…"</string>
@@ -936,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"‏معرّف التخويل لميزة \"الاتصال عبر Wi-Fi\":"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"تعديل"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"إعادة تحميل"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"إشارة البلوتوث ضعيفة. حاوِل التبديل إلى مكبّر الصوت."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"إشعار بشأن جودة المكالمة"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"‏حسابات SIP المتوقّفة"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 607be68..ed39775 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one"><xliff:g id="COUNT_1">%s</xliff:g> মিনিটৰ বাবে ফ\'নটো জৰুৰীকালীন কলবেক ম\'ডত থাকিব। এই ম\'ডত থাকোঁতে ডেটা সংযোগ দৰকাৰ হোৱা কোনো এপ্ ব্যৱহাৰ কৰিব নোৱাৰি। আপুনি এতিয়া বাহিৰ হ\'ব খোজে নেকি?</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%s</xliff:g> মিনিটৰ বাবে ফ\'নটো জৰুৰীকালীন কলবেক ম\'ডত থাকিব। এই ম\'ডত থাকোঁতে ডেটা সংযোগ দৰকাৰ হোৱা কোনো এপ্ ব্যৱহাৰ কৰিব নোৱাৰি। আপুনি এতিয়া বাহিৰ হ\'ব খোজে নেকি?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">বাছনি কৰা কাৰ্যকলাপটো জৰুৰীকালীন কলবেক ম\'ডত উপলব্ধ নহয়। ফ\'নটো এই ম\'ডত <xliff:g id="COUNT_1">%s</xliff:g> মিনিটৰ বাবে থাকিব। আপুনি এতিয়া বাহিৰ হ\'ব খোজে নেকি?</item>
-      <item quantity="other">বাছনি কৰা কাৰ্যকলাপটো জৰুৰীকালীন কলবেক ম\'ডত উপলব্ধ নহয়। ফ\'নটো এই ম\'ডত <xliff:g id="COUNT_1">%s</xliff:g> মিনিটৰ বাবে থাকিব। আপুনি এতিয়া বাহিৰ হ\'ব খোজে নেকি?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"জৰুৰীকালীন কল চলি থকাৰ সময়ত বাছনি কৰা কাৰ্যটো উপলব্ধ নহয়।"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"জৰুৰীকালীন কলবেক ম\'ডৰ পৰা প্ৰস্থান কৰা হৈছে"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"হয়"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"সাধ্য সুবিধাসমূহ"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"এওঁৰ পৰা ৱাই-ফাই কল আহিছে"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"ৱাই-ফাই কল"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"খুলিবলৈ পুনৰাই টিপক"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"বাৰ্তাটো ডিক\'ড কৰোঁতে আসোঁৱাহৰ সৃষ্টি হৈছিল।"</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"এখন ছিম কাৰ্ডে আপোনাৰ সেৱাসমূহ সক্ৰিয় কৰিছে আৰু আপোনাৰ ফ\'নটোৰ ৰ\'মিং সক্ষমতাসমূহো আপডে’ট কৰিছে।"</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"কেইবাটাও কল ইতিমধ্যে সক্ৰিয় হৈ আছে। নতুন কল এটা কৰাৰ আগেয়ে অনুগ্ৰহ কৰি সেইবোৰ একেলগ কৰক বা সমাপ্ত কৰক।"</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"অইন এটা বহিৰ্গামী কল ডায়েল কৰি থকাৰ কাৰণে বেলেগ কল কৰিব নোৱাৰি।"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"বেলেগ কল কৰিব নোৱাৰি, কাৰণ এটা অন্তৰ্গামী কল এতিয়াও সক্ৰিয় হৈ আছে যাৰ উত্তৰ দিয়া হোৱা নাই। নতুন কল এটা কৰাৰ আগেয়ে সেই কলটোৰ উত্তৰ দিয়ক বা কলটো প্ৰত্যাখ্যান কৰক।"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"কোনো কল কৰিব নোৱাৰি কাৰণ ro.telephony.disable-call ছিষ্টেম প্ৰ’পাৰ্টি ব্যৱহাৰ কৰি কল কৰাৰ সুবিধা অক্ষম কৰা হৈছে।"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"কোনো কল কৰিব নোৱাৰি কাৰণ ইতিমধ্যে দুটা বেলেগ কল চলি আছে। নতুন এটা কল কৰাৰ আগেয়ে সেই দুটাৰ ভিতৰত এটাৰ সংযোগ বিচ্ছিন্ন কৰক বা কল দুটা একত্ৰিত কৰি এটা কনফাৰেন্স কললৈ সলনি কৰক।"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"কল কৰিব নোৱাৰি, কাৰণ ইতিমধ্যে দুটা কল চলি আছে। এটা নতুন কল কৰাৰ আগতে সেই দুটা কলৰ এটাৰ সংযোগ বিচ্ছিন্ন কৰক অথবা কল দুটা একত্ৰিত কৰি এটা কনফাৰেন্স কললৈ সলনি কৰক।"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ব্যৱহাৰ কৰিবলৈ ম’বাইল ডেটা অন হৈ থকাটো নিশ্চিত কৰক। আপুনি ম’বাইল নেটৱৰ্ক ছেটিংসমূহ-লৈ গৈ ইয়াক সলনি কৰিব পাৰে।"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ব্যৱহাৰ কৰিবলৈ ম’বাইল ডেটা আৰু ডেটা ৰ’মিং অন হৈ থকাটো নিশ্চিত কৰক। আপুনি ম’বাইল নেটৱৰ্ক ছেটিংসমূহ-লৈ গৈ ইয়াক সলনি কৰিব পাৰে।"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"নেটৱৰ্ক প্ৰকাৰ অ’ভাৰৰাইড কৰক:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC উপলব্ধ:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR প্ৰতিবন্ধিত:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR উপলব্ধ:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR স্থিতি:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC উপলব্ধ (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR সীমিত (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR উপলব্ধ (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR স্থিতি (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR ফ্ৰিকুৱেন্সী:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"ৰেডিঅ’ৰ বেণ্ড ম’ড ছেট কৰক"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"বেণ্ড সূচীখন ল’ড কৰি থকা হৈছে…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC স্বত্ব আইডি:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"আপডে’ট কৰক"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ৰিফ্ৰেশ্ব কৰক"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"আপোনাৰ ব্লুটুথৰ ছিগনেল দুৰ্বল। স্পীকাৰফ’নলৈ সলনি কৰি চাওক।"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"কলৰ গুণগত মানৰ জাননী"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"বন্ধ হৈ যোৱা SIP একাউণ্ট"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 5ec4dc5..3902eb7 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Təcisi Geriyə Zəng Rejimi"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Data bağlantısı deaktiv edildi"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"<xliff:g id="COMPLETETIME">%s</xliff:g> vaxtına qədər data bağlantısı yoxdur"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Telefon <xliff:g id="COUNT_1">%s</xliff:g> dəqiqə Fövqəladə Cavab Zəngi rejimində olacaq. Bu rejimdə olarkən məlumat bağlantısından istifadə edən heç bir proqram istifadə edilə bilməz. İndi çıxmaq istəyirsiniz?</item>
-      <item quantity="one">Telefon <xliff:g id="COUNT_0">%s</xliff:g> dəqiqə Fövqəladə Cavab Zəngi rejimində olacaq. Bu rejimdə olarkən məlumat bağlantısından istifadə edən heç bir proqram istifadə edilə bilməz. İndi çıxmaq istəyirsiniz?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Seçilmiş fəaliyyət Fövqəladə Cavab Zəngi rejimində mövcud deyil. Telefon <xliff:g id="COUNT_1">%s</xliff:g> dəqiqə bu rejimdə olacaq. İndi çıxmaq istəyirsiniz?</item>
-      <item quantity="one">Seçilmiş fəaliyyət Fövqəladə Cavab Zəngi rejimində mövcud deyil. Telefon <xliff:g id="COUNT_0">%s</xliff:g> dəqiqə bu rejimdə olacaq. İndi çıxmaq istəyirsiniz?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Telefon bir dəqiqəlik Fövqəladə Geriyə Zəng rejimində olacaq. Bu rejimdə data bağlantısı işlədən heç bir tətbiq istifadə oluna bilməz. İndi çıxmaq istəyirsiniz?}other{Telefon %s dəqiqə Fövqəladə Geriyə Zəng rejimində olacaq. Bu rejimdə data bağlantısı işlədən heç bir tətbiq istifadə oluna bilməz. İndi çıxmaq istəyirsiniz?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Seçilmiş əməliyyat Fövqəladə Geriyə Zəng rejimində əlçatan deyil. Telefon 1 dəqiqə bu rejimdə olacaq. İndi çıxmaq istəyirsiniz?}other{Seçilmiş əməliyyat Fövqəladə Geriyə Zəng rejimində əlçatan deyil. Telefon %s dəqiqə bu rejimdə olacaq. İndi çıxmaq istəyirsiniz?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Seçilmiş fəaliyyət təcili zəng zamanı mümkün deyil"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Təcili Geriyə Zəng Rejimindən Çıxır"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Bəli"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Telefon \n dəqiqə fövqəladə geriyə zəng rejimində olacaq. İndi çıxmaq istəyirsiniz?}other{Telefon %s dəqiqə fövqəladə geriyə zəng rejimində olacaq.\nİndi çıxmaq istəyirsiniz?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Keçərlik"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi zəngi"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi zəng"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Açmaq üçün yenidən tıklayın"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Mesaj dekod edilən zaman xəta oldu."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM kart xidmətinizi aktivləşdirdi və telefonunuzun rominq imkanlarını güncəlləşdi."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Burada həddindən çox aktiv zəng var. Yeni birini yerləşdirmək üçün mövcud zəngləri sonlandırın və ya birləşdirin."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Başqa gedən zəngin nömrəsi yığıldığına görə zəng etmək mümkün deyil."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Cavabsız gələn zəng olduğuna görə zəng etmək mümkün deyil. Yeni zəng etməzdən əvvəl gələn zəngə cavab verin və ya imtina edin."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Zəng ro.telephony.disable-call sistem funksiyası ilə deaktiv edildiyinə görə zəng etmək mümkün deyil."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Davam edən iki zəng olduğuna görə zəng etmək mümkün deyil. Zənglərin birini kəsin və ya yeni zəng etməzdən əvvəl onları konfransa birləşdirin."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Davam edən iki zəng olduğuna görə zəng etmək mümkün deyil. Yeni zəng etməzdən əvvəl zənglərin birini dayandırın və ya onları konfransa birləşdirin."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> istifadə etmək üçün 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" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> istifadə etmək üçün 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_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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Şəbəkə Növünü Əvəzləyin:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC Əlçatandır:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR Məhdudlaşdırılıb:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR Əlçatandır:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR Statusu:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC Əlçatandır (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR Məhdudlaşdırıldı (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR Əlçatandır (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR Statusu (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR Tezliyi:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC İcazə ID-si:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Güncəlləyin"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Yeniləyin"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth siqnalı zəifdir. Telefon spikerinə keçin."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Zəng keyfiyyəti bildirişi"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Ləğv edilmiş SIP hesabları"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 68bf598..97c3607 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -637,16 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Režim za hitan povratni poziv"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Veza za prenos podataka je onemogućena"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Veza za prenos podataka neće biti dostupna do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Telefon će biti u Režimu hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minut. Dok je u ovom režimu ne možete da koristite aplikacije koje koriste vezu za prenos podataka. Želite li odmah da izađete iz ovog režima?</item>
-      <item quantity="few">Telefon će biti u Režimu hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minuta. Dok je u ovom režimu ne možete da koristite aplikacije koje koriste vezu za prenos podataka. Želite li odmah da izađete iz ovog režima?</item>
-      <item quantity="other">Telefon će biti u Režimu hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minuta. Dok je u ovom režimu ne možete da koristite aplikacije koje koriste vezu za prenos podataka. Želite li odmah da izađete iz ovog režima?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Izabrana radnja nije dostupna dok ste u Režimu hitnog povratnog poziva. Telefon će biti u ovom režimu <xliff:g id="COUNT_1">%s</xliff:g> minut. Želite li odmah da izađete iz ovog režima?</item>
-      <item quantity="few">Izabrana radnja nije dostupna dok ste u Režimu hitnog povratnog poziva. Telefon će biti u ovom režimu <xliff:g id="COUNT_1">%s</xliff:g> minuta. Želite li odmah da izađete iz ovog režima?</item>
-      <item quantity="other">Izabrana radnja nije dostupna dok ste u Režimu hitnog povratnog poziva. Telefon će biti u ovom režimu <xliff:g id="COUNT_1">%s</xliff:g> minuta. Želite li odmah da izađete iz ovog režima?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Izabrana radnja nije dostupna kada je u toku hitan poziv"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Izlazak iz Režima hitnog povratnog poziva"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
@@ -654,11 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -686,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Pristupačnost"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"WiFi poziv od"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"WiFi poziv"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Dodirnite ponovo da biste otvorili"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Došlo je do greške pri dekodiranju poruke."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM kartica je aktivirala uslugu i ažurirala funkcije rominga na telefonu."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Ima previše aktivnih poziva. Završite ili objedinite postojeće pozive pre nego što uputite novi."</string>
@@ -830,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Ne možete da pozovete jer se već upućuje drugi odlazni poziv."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Ne možete da pozovete jer imate dolazni poziv na koji niste odgovorili. Odgovorite na dolazni poziv ili ga odbijte pre upućivanja novog poziva."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Ne možete da pozovete jer je pozivanje onemogućeno preko svojstva sistema ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Ne možete da pozovete jer su dva poziva već u toku. Prekinite jedan od poziva ili ih objedinite u konferenciju da biste uputili novi poziv."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Ne možete da pozovete jer su dva poziva već u toku. Prekinite jedan od njih ili ih objedinite u konferenciju da biste uputili novi poziv."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Da biste koristili <xliff:g id="SUPP_SERVICE">%s</xliff:g>, uverite se da su uključeni mobilni podaci. To možete da promenite u podešavanjima mobilne mreže."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Da biste koristili <xliff:g id="SUPP_SERVICE">%s</xliff:g>, uverite se da su 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_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>
@@ -902,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Zameni tip mreže:"</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>
@@ -913,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC dostupno:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR ograničeno:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR dostupno:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR stanje:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC dostupno (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR ograničeno (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR dostupno (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR stanje (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR učestalost:"</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>
@@ -927,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID prava na WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Ažuriraj"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Osveži"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth signal je slab. Probajte da pređete na spikerfon."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Obaveštenje o kvalitetu poziva"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Zastareli SIP nalozi"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 6674bee..d13be56 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -637,18 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Тэлефон будзе заставацца ў рэжыме экстранных зваротных выклікаў <xliff:g id="COUNT_1">%s</xliff:g> хвіліну. У гэтым рэжыме недаступныя праграмы, якія выкарыстоўваюць перадачу даных. Выйсці зараз?</item>
-      <item quantity="few">Тэлефон будзе заставацца ў рэжыме экстранных зваротных выклікаў <xliff:g id="COUNT_1">%s</xliff:g> хвіліны. У гэтым рэжыме недаступныя праграмы, якія выкарыстоўваюць перадачу даных. Выйсці зараз?</item>
-      <item quantity="many">Тэлефон будзе заставацца ў рэжыме экстранных зваротных выклікаў <xliff:g id="COUNT_1">%s</xliff:g> хвілін. У гэтым рэжыме недаступныя праграмы, якія выкарыстоўваюць перадачу даных. Выйсці зараз?</item>
-      <item quantity="other">Тэлефон будзе заставацца ў рэжыме экстранных зваротных выклікаў <xliff:g id="COUNT_1">%s</xliff:g> хвіліны. У гэтым рэжыме недаступныя праграмы, якія выкарыстоўваюць перадачу даных. Выйсці зараз?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Выбранае дзеянне недаступнае ў рэжыме экстранных зваротных выклікаў. Тэлефон будзе заставацца ў гэтым рэжыме <xliff:g id="COUNT_1">%s</xliff:g> хвіліну. Выйсці зараз?</item>
-      <item quantity="few">Выбранае дзеянне недаступнае ў рэжыме экстранных зваротных выклікаў. Тэлефон будзе заставацца ў гэтым рэжыме <xliff:g id="COUNT_1">%s</xliff:g> хвіліны. Выйсці зараз?</item>
-      <item quantity="many">Выбранае дзеянне недаступнае ў рэжыме экстранных зваротных выклікаў. Тэлефон будзе заставацца ў гэтым рэжыме <xliff:g id="COUNT_1">%s</xliff:g> хвілін. Выйсці зараз?</item>
-      <item quantity="other">Выбранае дзеянне недаступнае ў рэжыме экстранных зваротных выклікаў. Тэлефон будзе заставацца ў гэтым рэжыме <xliff:g id="COUNT_1">%s</xliff:g> хвіліны. Выйсці зараз?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Выбранае дзеянне недаступнае падчас экстранага выкліку."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Выконваецца выхад з рэжыму экстранных зваротных выклікаў"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Так"</string>
@@ -656,12 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -689,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Спецыяльныя магчымасці"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Выклік праз Wi-Fi ад"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Выклік праз Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Дакраніцеся яшчэ раз, каб адкрыць"</string>
     <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>
@@ -833,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Немагчыма зрабіць выклік, паколькі зараз ідзе выходны выклік."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Нельга зрабіць выклік, паколькі ёсць уваходны выклік без адказу. Адкажыце на ўваходны выклік або адхіліце яго, каб зрабіць новы."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Немагчыма зрабіць выклік, паколькі выклікі адключаны ў сістэмных наладах ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Немагчыма зрабіць выклік, паколькі зараз выконваюцца два выклікі. Адключыце адзін з выклікаў або аб\'яднайце іх у канферэнцыю, каб зрабіць новы выклік."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Немагчыма зрабіць новы выклік, бо ўжо выконваюцца два іншыя. Каб зрабіць новы выклік, завяршыце адзін з бягучых ці аб\'яднайце іх у канферэнц-выклік."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Уключыце перадачу мабільных даных для выкарыстання сэрвісу <xliff:g id="SUPP_SERVICE">%s</xliff:g>. Гэта можна зрабіць у наладах мабільнай сеткі."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Уключыце перадачу мабільных даных і інтэрнэт-роўмінг для выкарыстання сэрвісу <xliff:g id="SUPP_SERVICE">%s</xliff:g>. Гэта можна зрабіць у наладах мабільнай сеткі."</string>
     <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>
@@ -905,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Перавызначэнне тыпу сеткі:"</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>
@@ -916,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"Даступнасць EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"Абмежаванне DCNR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"Даступнасць NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Стан NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"Падключэнне EN-DC даступнае (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"Падключэнне DCNR абмежавана (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"Падключэнне NR даступнае (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Стан NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Частата NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Задаць рэжым радыёдыяпазону"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Загружаецца спіс дыяпазонаў…"</string>
@@ -930,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Ідэнтыфікатар правоў WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Абнавіць"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Абнавіць"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Сігнал Bluetooth слабы. Паспрабуйце пераключыцца на гучную сувязь."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Апавяшчэнне пра якасць выкліку"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Састарэлыя ўліковыя запісы SIP"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 216c789..da48bfb 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">Избраното действие не е налице в режима за обратно обаждане при спешност. Телефонът ще бъде в този режим в продължение на <xliff:g id="COUNT_0">%s</xliff:g> минута. Искате ли да излезете сега?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Телефонът ще бъде в режим на обратно обаждане при спешност в продължение на 1 минута. През това време не могат да се използват приложения, работещи с връзка с данни. Искате ли да излезете сега?}other{Телефонът ще бъде в режим на обратно обаждане при спешност в продължение на %s минути. През това време не могат да се използват приложения, работещи с връзка с данни. Искате ли да излезете сега?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Избраното действие не е налично в режим на обратно обаждане при спешност. Телефонът ще бъде в този режим в продължение на 1 минута. Искате ли да излезете сега?}other{Избраното действие не е налично в режим на обратно обаждане при спешност. Телефонът ще бъде в този режим в продължение на %s минути. Искате ли да излезете сега?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Избраното действие не е налично по време на спешно обаждане."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Излиза се от режим на спешно обратно обаждане"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Да"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Телефонът ще бъде в режим на обратно обаждане при спешност в продължение на 1 минута.\nИскате ли да излезете сега?}other{Телефонът ще бъде в режим на обратно обаждане при спешност в продължение на %s минути.\nИскате ли да излезете сега?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Достъпност"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Обаждане през Wi-Fi от"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Обаждане през Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Докоснете отново, за да отворите"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Не може да се извърши обаждане, тъй като в момента се набира друго изходящо обаждане."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Не може да се извърши обаждане, тъй като има неотговорено входящо обаждане. Отговорете му или го отхвърлете, преди да извършите ново обаждане."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Не може да се извърши обаждане, тъй като обажданията са деактивирани чрез системното свойство ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Не може да се извърши обаждане, тъй като вече се провеждат две обаждания. Прекъснете едно от тях или ги обединете в конферентен разговор, преди да извършите ново обаждане."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Не може да се извърши обаждане, тъй като вече се провеждат две обаждания. Прекъснете едно от тях или ги обединете в конферентен разговор, преди да извършите ново обаждане."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"За да използвате <xliff:g id="SUPP_SERVICE">%s</xliff:g>, мобилните данни трябва да са включени. Можете да промените това в настройките за мобилната мрежа."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"За да използвате <xliff:g id="SUPP_SERVICE">%s</xliff:g>, мобилните данни и роумингът на данни трябва да са включени. Можете да промените това в настройките за мобилната мрежа."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Замяна на типа на мрежата:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"Налично EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"Ограничено DCNR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"Налично NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Състояние на NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC е налице (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR е ограничено (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR е налице (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Състояние на NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Честота за NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Задаване на режима за радиодиапазона"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Списъкът с диапазони се зарежда…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID на правото на достъп до WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Актуализиране"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Опресняване"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Сигналът ви за Bluetooth е слаб. Опитайте да превключите на високоговорител."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Известия за качеството на обаждането"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Оттеглени профили за SIP"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 81a2b33..fd8cbaa 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">ফোনটি <xliff:g id="COUNT_1">%s</xliff:g> মিনিটের জন্য জরুরী কলব্যাক মোডে থাকবে৷ এই মোডে থাকাকালীন একটি ডেটা সংযোগ ব্যবহার করে কোনো অ্যাপ্লিকেশান ব্যবহার করা যাবে না৷ আপনি কি এখনই প্রস্থান করতে চান?</item>
-      <item quantity="other">ফোনটি <xliff:g id="COUNT_1">%s</xliff:g> মিনিটের জন্য জরুরী কলব্যাক মোডে থাকবে৷ এই মোডে থাকাকালীন একটি ডেটা সংযোগ ব্যবহার করে কোনো অ্যাপ্লিকেশান ব্যবহার করা যাবে না৷ আপনি কি এখনই প্রস্থান করতে চান?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">জরুরী কলব্যাক মোডে থাকাকালীন নির্বাচিত অ্যাকশন উপলব্ধ থাকবে না৷ ফোনটি <xliff:g id="COUNT_1">%s</xliff:g> মিনিটের জন্য এই মোডে থাকবে৷ আপনি কি এখনই প্রস্থান করতে চান?</item>
-      <item quantity="other">জরুরী কলব্যাক মোডে থাকাকালীন নির্বাচিত অ্যাকশন উপলব্ধ থাকবে না৷ ফোনটি <xliff:g id="COUNT_1">%s</xliff:g> মিনিটের জন্য এই মোডে থাকবে৷ আপনি কি এখনই প্রস্থান করতে চান?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"কোনো জরুরি কলে থাকাকালীন নির্বাচিত ক্রিয়া উপলব্ধ নয়৷"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"জরুরি কলব্যাক মোড থেকে প্রস্থান করা হচ্ছে"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"হ্যাঁ"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"অ্যাক্সেসযোগ্যতা"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"এর থেকে Wi-Fi কল"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"ওয়াই-ফাই কল"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"খোলার জন্য আবার আলতো চাপুন"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"বার্তাটি ডিকোড করার সময় একটি ত্রুটি ঘটেছে৷"</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"একটি সিম কার্ড আপনার পরিষেবা সক্রিয় করেছে এবং আপনার ফোনের রোমিং ক্ষমতা আপডেট করা হয়েছে৷"</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"অনেকগুলি কল সক্রিয় রয়েছে। অনুগ্রহ করে একটি নতুন কল করার আগে বিদ্যমান কলগুলি কেটে দিন বা এটিকে সেই কলগুলিতে অন্তর্ভুক্ত করুন।"</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"আপনি আগেই আউটগোয়িং কল ডায়াল করেছেন তাই অন্য কল করা যাবে না।"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"কল করতে পারবেন না কারণ এমন একটি ইনকামিং কল আছে যার উত্তর দেওয়া হয়নি। নতুন কল করতে বর্তমান কলটির উত্তর দিন অথবা প্রত্যাখান করুন।"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"\'ro.telephony কল বন্ধ করা সিস্টেম প্রপার্টি\' ব্যবহার করে কল বন্ধ করা হয়েছে তাই কল করা যাবে না।"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"আগে থেকেই দুটি কল চলছে তাই কল করা যাবে না। নতুন কল করতে একটি কল বন্ধ করুন অথবা কনফারেন্স কলে মার্জ করুন।"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"দুটি কল চলছে, তাই আরেকটি কল করা যাচ্ছে না। নতুন কল করার আগে যেকোনও একটি কল কেটে দিন অথবা দুটিকে একসাথে একটি কনফারেন্সে মার্জ করুন।"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ব্যবহার করতে হলে, মোবাইল ডেটা চালু আছে কিনা দেখে নিন। আপনি সেটিংস থেকে এটি পরিবর্তন করতে পারেন।"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ব্যবহার করতে হলে, মোবাইল ডেটা এবং ডেটা রোমিং চালু আছে কিনা দেখে নিন। আপনি সেটিংস থেকে এটি পরিবর্তন করতে পারেন।"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"ওভাররাইড নেটওয়ার্কের ধরন:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC উপলভ্য:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR সীমাবদ্ধ করা আছে:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR উপলভ্য:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR স্ট্যাটাস:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"এন-ডিসি (EN-DC) উপলভ্য (এনএসএ) (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"ডিসিএনআর (DCNR) সীমাবদ্ধ (এনএসএ) (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"এনআর (NR) উপলভ্য (এনএসএ) (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"এনআর (NR) স্ট্যাটাস (এনএসএ) (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR ফ্রিকোয়েন্সি:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"রেডিও ব্যান্ড মোড সেট করুন"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"ব্যান্ড তালিকা লোড হচ্ছে..."</string>
@@ -924,6 +915,12 @@
     <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>
+    <!-- no translation found for provisioning_info_wfc_entitlement_id (8845188780811890910) -->
+    <skip />
+    <!-- no translation found for update_provisioning_info_wfc_entitlement_id (7044171908781134221) -->
+    <skip />
+    <!-- no translation found for refresh_provisioning_info_wfc_entitlement_id (738894335351353407) -->
+    <skip />
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"আপনার ডিভাইসের ব্লুটুথ সিগনাল ভাল না। বদল করে স্পিকারফোন বেছে নিন।"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"ফোন কলের কোয়ালিটি সংক্রান্ত বিজ্ঞপ্তি"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"পুরনো SIP অ্যাকাউন্ট"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 261506d..910cc33 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -637,16 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Način rada za hitni povratni poziv"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Podatkovna veza je onemogućena"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Nema veze za prijenos podataka do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Telefon će biti u Načinu rada za hitni povratni poziv <xliff:g id="COUNT_1">%s</xliff:g> minutu. Dok se nalazi u ovom načinu rada, ne mogu se upotrebljavati aplikacije koje koriste vezu za prijenos podataka. Ž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 u <xliff:g id="COUNT_1">%s</xliff:g> minute. Dok se nalazi u ovom načinu rada, ne mogu se upotrebljavati aplikacije koje koriste vezu za prijenos podataka. Ž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. Dok se nalazi u ovom načinu rada, ne mogu se upotrebljavati aplikacije koje koriste vezu za prijenos podataka. Želite li izaći iz ovog načina rada sada?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Odabrana radnja nije dostupna u načinu rada za hitni povratni poziv. Telefon će biti u ovom načinu rada <xliff:g id="COUNT_1">%s</xliff:g> minutu. Želite li izaći iz ovog načina rada sada?</item>
-      <item quantity="few">Odabrana radnja nije dostupna u načinu rada za hitni povratni poziv. Telefon će biti u ovom načinu rada <xliff:g id="COUNT_1">%s</xliff:g> minute. Želite li izaći iz ovog načina rada sada?</item>
-      <item quantity="other">Odabrana radnja nije dostupna u načinu rada za hitni povratni poziv. Telefon će biti u ovom načinu rada <xliff:g id="COUNT_1">%s</xliff:g> minuta. Želite li izaći iz ovog načina rada sada?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Odabrana radnja nije dostupna tokom hitnog poziva."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Izlazak iz načina rada za hitni povratni poziv"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
@@ -654,11 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -686,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Pristupačnost"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"WiFi poziv od"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"WiFi poziv"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Dodirnite ponovo da otvorite"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Došlo je do greške prilikom dekodiranja poruke."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM kartica je aktivirala vašu uslugu i ažurirala mogućnosti rominga za telefon."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Previše aktivnih poziva. Prekinite ili spojite postojeće pozive prije upućivanja novog poziva."</string>
@@ -830,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Nije moguće uputiti poziv zbog uspostavljanja drugog odlaznog poziva."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Nije moguće uputiti poziv zbog neodgovorenog dolaznog poziva. Odgovorite ili odbijte dolazni poziv prije upućivanja novog poziva."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Nije moguće uputiti poziv zbog onemogućenog pozivanja putem sistemske funkcije ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Nije moguće uputiti poziv jer su dva poziva već u toku. Prekinite jedan od njih ili ih objedinite u konferencijski poziv prije upućivanja novog poziva."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Nije moguće uputiti poziv jer su dva poziva već u toku. Prekinite jedan od njih ili ih spojite u konferencijski poziv prije upućivanja novog poziva."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Za korištenje usluge <xliff:g id="SUPP_SERVICE">%s</xliff:g>, provjerite je li 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" msgid="670342104569972327">"Za korištenje usluge <xliff:g id="SUPP_SERVICE">%s</xliff:g>, provjerite jesu li 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_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>
@@ -902,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Zaobilaženje vrste mreže:"</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>
@@ -913,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC dostupno:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR ograničeno:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR dostupno:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR stanje:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC dostupno (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR ograničeno (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR dostupno (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR stanje (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR učestalost:"</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>
@@ -927,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID za WFC Entitlement:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Ažuriraj"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Osvježi"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Vaš Bluetooth signal je slab. Pokušajte prebaciti na zvučnik."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Obavještenje o kvalitetu poziva"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Zastarjeli SIP računi"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 5bc13e0..4d0b99c 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Mode de devolució de trucada d\'emergència"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Connexió de dades desactivada"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"No hi haurà connexió de dades fins a les <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">El telèfon estarà en mode de devolució de trucades d\'emergència durant <xliff:g id="COUNT_1">%s</xliff:g> minuts. Durant aquest temps, no es podrà utilitzar cap aplicació que faci servir una connexió de dades. Vols sortir ara?</item>
-      <item quantity="one">El telèfon estarà en mode de devolució de trucades d\'emergència durant <xliff:g id="COUNT_0">%s</xliff:g> minut. Durant aquest temps, no es podrà utilitzar cap aplicació que faci servir una connexió de dades. Vols sortir ara?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">L\'acció seleccionada no està disponible amb el mode de devolució de trucades d\'emergència. El telèfon tindrà aquest mode activat durant <xliff:g id="COUNT_1">%s</xliff:g> minuts. Vols sortir ara?</item>
-      <item quantity="one">L\'acció seleccionada no està disponible amb el mode de devolució de trucades d\'emergència. El telèfon tindrà aquest mode activat durant <xliff:g id="COUNT_0">%s</xliff:g> minut. Vols sortir ara?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{El telèfon estarà en mode de devolució de trucada d\'emergència durant 1 minut. Mentre estigui en aquest mode, no es podran fer servir aplicacions que utilitzin una connexió de dades. En vols sortir ara?}other{El telèfon estarà en mode de devolució de trucada d\'emergència durant %s minuts. Mentre estigui en aquest mode, no es podran fer servir aplicacions que utilitzin una connexió de dades. En vols sortir ara?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{L\'acció seleccionada no està disponible mentre tens activat el mode de devolució de trucada d\'emergència. El telèfon estarà en aquest mode durant 1 minut. En vols sortir ara?}other{L\'acció seleccionada no està disponible mentre tens activat el mode de devolució de trucada d\'emergència. El telèfon estarà en aquest mode durant %s minuts. En vols sortir ara?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"L\'acció seleccionada no està disponible en una trucada d\'emergència."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"S\'està sortint del mode de devolució de trucades d\'emergència"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sí"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{El telèfon estarà en el mode de devolució de trucada d\'emergència durant 1 minut.\nEn vols sortir ara?}other{El telèfon estarà en el mode de devolució de trucada d\'emergència durant %s minuts.\nEn vols sortir ara?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibilitat"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Trucada per Wi-Fi de"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Trucada per Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Torna a tocar per obrir"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"S\'ha produït un error en descodificar el missatge."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Una targeta SIM ha activat el servei, i s\'ha actualitzat la funció d\'itinerància del telèfon."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Hi ha massa trucades actives. Finalitza\'n alguna o combina-les abans de fer-ne una de nova."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"No es pot fer la trucada perquè ja hi ha una trucada sortint en curs."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"No es pot fer la trucada perquè hi ha una trucada entrant sense resposta. Respon-hi o rebutja-la abans de fer més trucades."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"No es pot fer la trucada perquè l\'opció de trucar s\'ha desactivat mitjançant la propietat del sistema ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"No es pot fer la trucada perquè ja n\'hi ha dues en curs. Desconnecta\'n una o combina-les en una conferència abans de fer-ne més de noves."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"No es pot fer la trucada perquè ja n\'hi ha dues en curs. Desconnecta\'n una o combina-les en una conferència abans de fer-ne més de noves."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Comprova que les dades mòbils estiguin activades per utilitzar <xliff:g id="SUPP_SERVICE">%s</xliff:g>. Pots canviar aquesta opció a la configuració de xarxa mòbil."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Comprova que les dades mòbils i la itinerància de dades estiguin activades per utilitzar <xliff:g id="SUPP_SERVICE">%s</xliff:g>. Pots canviar aquestes opcions a la configuració de xarxa mòbil."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Substitució de tipus de xarxa:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC disponible:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR amb restriccions:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR disponible:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Estat d\'NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC disponible (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR amb restriccions (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR disponible (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Estat d\'NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Freqüència d\'NR:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Identificador de dret per a WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Actualitza"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Actualitza"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"El senyal del Bluetooth és feble. Fes servir l\'altaveu."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Notificació sobre la qualitat de la trucada"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Comptes SIP obsolets"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 926681b..fbfcb43 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -637,18 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Režim tísňového zpětného volání"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Datové spojení zakázáno"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Datové připojení nebude dostupné do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="few">]Telefon bude <xliff:g id="COUNT_1">%s</xliff:g> minuty v režimu zpětného tísňového volání. V tomto režimu nelze používat aplikace, které používají datové připojení. Chcete akci teď ukončit?</item>
-      <item quantity="many">]Telefon bude <xliff:g id="COUNT_1">%s</xliff:g> minuty v režimu zpětného tísňového volání. V tomto režimu nelze používat aplikace, které používají datové připojení. Chcete akci teď ukončit?</item>
-      <item quantity="other">]Telefon bude <xliff:g id="COUNT_1">%s</xliff:g> minut v režimu zpětného tísňového volání. V tomto režimu nelze používat aplikace, které používají datové připojení. Chcete akci teď ukončit?</item>
-      <item quantity="one">Telefon bude <xliff:g id="COUNT_0">%s</xliff:g> minutu v režimu zpětného tísňového volání. V tomto režimu nelze používat aplikace, které používají datové připojení. Chcete akci teď ukončit?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="few">V režimu zpětného tísňového volání vybraná akce není k dispozici. Telefon v tomto režimu bude <xliff:g id="COUNT_1">%s</xliff:g> minuty. Chcete akci teď ukončit?</item>
-      <item quantity="many">V režimu zpětného tísňového volání vybraná akce není k dispozici. Telefon v tomto režimu bude <xliff:g id="COUNT_1">%s</xliff:g> minuty. Chcete akci teď ukončit?</item>
-      <item quantity="other">V režimu zpětného tísňového volání vybraná akce není k dispozici. Telefon v tomto režimu bude <xliff:g id="COUNT_1">%s</xliff:g> minut. Chcete akci teď ukončit?</item>
-      <item quantity="one">V režimu zpětného tísňového volání vybraná akce není k dispozici. Telefon v tomto režimu bude <xliff:g id="COUNT_0">%s</xliff:g> minutu. Chcete akci teď ukončit?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Během tísňového volání není vybraná akce k dispozici."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Ukončení režimu tísňového zpětného volání"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ano"</string>
@@ -656,12 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -689,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Přístupnost"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Hovor přes Wi-Fi:"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Volání přes Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Akci provedete opětovným klepnutím"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Při dekódování zprávy došlo k chybě."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM karta aktivovala vaši službu a byly aktualizovány roamingové možnosti telefonu."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Máte příliš mnoho aktivních hovorů. Ukončete nebo spojte stávající hovory, než zahájíte nový."</string>
@@ -833,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Nemůžete provést hovor, když už se jeden odchozí hovor vytáčí."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Nemůžete provést hovor, protože máte nepřijatý příchozí hovor. Přijměte nebo odmítněte příchozí hovor, než provedete nový."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Nemůžete provést hovor, protože volání bylo zakázáno systémovým příkazem ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Nemůžete provést hovor, protože už probíhají dva hovory. Odpojte jeden hovor nebo je slučte do konference, než provedete nový hovor."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Nemůžete uskutečnit hovor, protože už probíhají dva hovory. Než zahájíte nový hovor, jeden ze stávajících odpojte nebo je slučte do konference."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Pokud chcete používat službu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, zkontrolujte, že máte zapnutá mobilní data. Můžete to změnit v nastavení mobilní sítě."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Pokud chcete používat službu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, zkontrolujte, že máte zapnutá mobilní data a datový roaming. Můžete to změnit v nastavení mobilní sítě."</string>
     <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>
@@ -905,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Přepsat typ 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>
@@ -916,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC k dispozici:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR zakázáno:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR k dispozici:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Stav NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC k dispozici (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR – omezeno (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR k dispozici (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Stav NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frekvence NR:"</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>
@@ -930,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID nároku služby WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Aktualizovat"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Obnovit"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Signál sítě Bluetooth je slabý. Zkuste přepnout na hlasitý odposlech."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Oznámení o kvalitě hovoru"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Zastaralé účty SIP"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index ecfb98d..02709d8 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Nødtilbagekaldstilstand"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Dataforbindelsen er deaktiveret"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Der er ingen dataforbindelse før kl. <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Telefonen vil være i tilstanden Nødopkald i <xliff:g id="COUNT_1">%s</xliff:g> minutter. Mens denne tilstand er aktiveret, kan du ikke bruge nogen apps, der kræver dataforbindelse. Vil du afslutte denne tilstand nu?</item>
-      <item quantity="other">Telefonen vil være i tilstanden Nødopkald i <xliff:g id="COUNT_1">%s</xliff:g> minutter. Mens denne tilstand er aktiveret, kan du ikke bruge nogen apps, der kræver dataforbindelse. Vil du afslutte denne tilstand nu?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Den valgte handling er ikke tilgængelig i tilstanden Nødopkald. Telefonen vil være i denne tilstand i <xliff:g id="COUNT_1">%s</xliff:g> minutter. Vil du afslutte denne tilstand nu?</item>
-      <item quantity="other">Den valgte handling er ikke tilgængelig i tilstanden Nødopkald. Telefonen vil være i denne tilstand i <xliff:g id="COUNT_1">%s</xliff:g> minutter. Vil du afslutte denne tilstand nu?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Den valgte handling er ikke tilgængelig ved nødopkald"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Eksisterende nødtilbagekaldstilstand"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Hjælpefunktioner"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi-opkald fra"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi-opkald"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tryk igen for at åbne"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Der opstod en fejl under afkodning af beskeden."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Et SIM-kort har aktiveret din tjeneste og opdateret telefonens roamingmuligheder."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Der er for mange aktive opkald. Afslut et opkald, eller flet eksisterende opkald, inden du foretager et nyt."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Der kan ikke foretages et opkald, fordi et udgående opkald allerede ringer."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Der kan ikke foretages et opkald, fordi et indgående opkald ringer. Besvar eller afvis det indgående opkald, før du foretager et nyt opkald."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Der kan ikke foretages et opkald, fordi foretagelse af opkald er blevet deaktiveret ved hjælp af systemegenskaben ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Der kan ikke foretages et opkald, fordi der allerede er to igangværende opkald. Afslut et af opkaldene, eller flet dem til et konferenceopkald, før du foretager et nyt opkald."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Der kan ikke foretages et opkald, fordi der allerede er to igangværende opkald. Afslut et af opkaldene, eller flet dem til et telefonmøde, før du foretager et nyt opkald."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Hvis du vil bruge <xliff:g id="SUPP_SERVICE">%s</xliff:g>, skal du sørge for, at mobildata er slået til. Du kan ændre dette under indstillingerne for mobilnetværk."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Hvis du vil bruge <xliff:g id="SUPP_SERVICE">%s</xliff:g>, skal du sørge for, at mobildata og dataroaming er slået til. Du kan ændre dette under indstillingerne for mobilnetværk."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Overskriv netvæ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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"Tilgængelig for EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"Begrænset til DCNR"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"Tilgængelig for NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Status for NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"Tilgængelig for EN-DC (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"Begrænset til DCNR (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"Tilgængelig for NR (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Status for NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frekvens for NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Konfigurer radiobåndstilstand"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Indlæser båndliste…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC-berettigelses-id:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Opdater"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Opdater"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Dit Bluetooth-signal er svagt. Prøv at skifte til medhør."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Notifikation om opkaldskvalitet"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Udfasede SIP-konti"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 7af3720..a4d1feb 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Notfallrückrufmodus"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Datenverbindung deaktiviert"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Keine Datenverbindung bis <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Das Smartphone wird <xliff:g id="COUNT_1">%s</xliff:g> Minuten lang in den Notfallrückrufmodus versetzt. In dieser Zeit können Apps mit Datenverbindung nicht genutzt werden. Möchtest du den Vorgang jetzt abbrechen?</item>
-      <item quantity="one">Das Smartphone wird <xliff:g id="COUNT_0">%s</xliff:g> Minute lang in den Notfallrückrufmodus versetzt. In dieser Zeit können Apps mit Datenverbindung nicht genutzt werden. Möchtest du den Vorgang jetzt abbrechen?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Die ausgewählte Aktion ist im Notfallrückrufmodus nicht verfügbar. Das Smartphone ist <xliff:g id="COUNT_1">%s</xliff:g> Minuten lang in diesem Modus. Möchtest du den Vorgang jetzt abbrechen?</item>
-      <item quantity="one">Die ausgewählte Aktion ist im Notfallrückrufmodus nicht verfügbar. Das Smartphone ist <xliff:g id="COUNT_0">%s</xliff:g> Minute lang in diesem Modus. Möchtest du den Vorgang jetzt abbrechen?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Das Smartphone bleibt 1 Minute im Notfallrückrufmodus. In diesem Modus können keine Apps verwendet werden, die eine Datenverbindung erfordern. Möchtest du den Vorgang jetzt beenden?}other{Das Smartphone bleibt %s Minuten im Notfallrückrufmodus. In diesem Modus können keine Apps verwendet werden, die eine Datenverbindung erfordern. Möchtest du den Vorgang jetzt beenden?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Die ausgewählte Aktion ist im Notfallrückrufmodus nicht verfügbar. Das Telefon bleibt 1 Minute in diesem Modus. Möchtest du den Vorgang jetzt beenden?}other{Die ausgewählte Aktion ist im Notfallrückrufmodus nicht verfügbar. Das Telefon bleibt %s Minuten in diesem Modus. Möchtest du den Vorgang jetzt beenden?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Die ausgewählte Aktion ist während eines Notrufs nicht verfügbar."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Notfallrückrufmodus wird beendet..."</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Das Smartphone bleibt 1 Minute im Notfallrückrufmodus.\nMöchtest du den Vorgang jetzt beenden?}other{Das Smartphone bleibt %s Minuten im Notfallrückrufmodus.\nMöchtest du den Vorgang jetzt beenden?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Bedienungshilfen"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"WLAN-Anruf von"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"WLAN-Anruf"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Zum Öffnen erneut tippen"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Beim Entschlüsseln der Nachricht ist ein Fehler aufgetreten."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Eine SIM-Karte hat deinen Dienst aktiviert und die Roamingfunktionen deines Smartphones aktualisiert."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Zu viele aktive Anrufe. Beende aktive Anrufe oder führe sie zusammen, bevor du einen neuen Anruf tätigst."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Anruf nicht möglich, da bereits ein anderer ausgehender Anruf aufgebaut wird."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Anruf nicht möglich, da ein nicht angenommener eingehender Anruf vorhanden ist. Nimm den eingehenden Anruf an oder lehne ihn ab, bevor du einen neuen Anruf startest."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Anruf nicht möglich, weil Anrufe über die Systemeigenschaft \"ro.telephony.disable-call\" deaktiviert wurden."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Anruf nicht möglich, weil bereits zwei Anrufe aktiv sind. Beenden einen der Anrufe oder führe beide Anrufe in einer Telefonkonferenz zusammen, bevor du einen neuen Anruf startest."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Anruf nicht möglich, weil bereits zwei Anrufe aktiv sind. Beende einen der Anrufe oder führe beide Anrufe in einer Telefonkonferenz zusammen, bevor du einen neuen Anruf startest."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Damit du <xliff:g id="SUPP_SERVICE">%s</xliff:g> nutzen kannst, müssen mobile Daten aktiviert sein. Du kannst dies in den Einstellungen für das Mobilfunknetz ändern."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Damit du <xliff:g id="SUPP_SERVICE">%s</xliff:g> nutzen kannst, müssen mobile Daten und Daten-Roaming aktiviert sein. Du kannst dies in den Einstellungen für das Mobilfunknetz ändern."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Netzwerktyp überschreiben:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC verfügbar:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR eingeschränkt:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR verfügbar:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR-Status:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC verfügbar (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR eingeschränkt (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR verfügbar (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR-Status (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR-Frequenz:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Frequenzbereichmodus festlegen"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Frequenzliste wird geladen…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC-Berechtigungs-ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Aktualisieren"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Aktualisieren"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Das Bluetooth-Signal ist schwach. Verwende die Freisprechfunktion."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Benachrichtigung zu Anrufqualität"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Eingestellte SIP-Konten"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 1c88d8e..b43d89a 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">Η επιλεγμένη ενέργεια δεν είναι διαθέσιμη όταν η συσκευή βρίσκεται σε κατάσταση \"Επείγουσας επιστροφής κλήσης\". Το τηλέφωνο θα βρίσκεται σε αυτήν την κατάσταση για <xliff:g id="COUNT_0">%s</xliff:g> λεπτό. Θέλετε να εξέλθετε τώρα;</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Το τηλέφωνο θα βρίσκεται στη λειτουργία επιστροφής κλήσης έκτακτης ανάγκης για ένα λεπτό. Όσο βρίσκεται σε αυτήν τη λειτουργία, δεν θα μπορούν να χρησιμοποιηθούν εφαρμογές με σύνδεση δεδομένων. Επιθυμείτε έξοδο τώρα;}other{Το τηλέφωνο βρίσκεται στη λειτουργία επιστροφής κλήσης έκτακτης ανάγκης για %s λεπτά. Όσο βρίσκεται σε αυτήν τη λειτουργία, δεν θα μπορούν να χρησιμοποιηθούν εφαρμογές με σύνδεση δεδομένων. Επιθυμείτε έξοδο τώρα;}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Η επιλεγμένη ενέργεια δεν είναι διαθέσιμη σε λειτουργία επιστροφής κλήσης έκτακτης ανάγκης. Το τηλέφωνο θα βρίσκεται σε αυτήν τη λειτουργία για ένα λεπτό. Επιθυμείτε έξοδο τώρα;}other{Η επιλεγμένη ενέργεια δεν είναι διαθέσιμη στη λειτουργία επιστροφής κλήσης έκτακτης ανάγκης. Το τηλέφωνο θα βρίσκεται σε αυτήν τη λειτουργία για %s λεπτά. Επιθυμείτε έξοδο τώρα;}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Η επιλεγμένη ενέργεια δεν είναι διαθέσιμη κατά τη διάρκεια κλήσης επείγουσας ανάγκης."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Έξοδος από τη λειτουργία επιστροφής κλήσης έκτακτης ανάγκης"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ναι"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Το τηλέφωνο θα βρίσκεται σε λειτουργία επιστροφής κλήσης έκτακτης ανάγκης για ένα λεπτό.\nΕπιθυμείτε έξοδο τώρα;}other{Το τηλέφωνο θα βρίσκεται σε λειτουργία επιστροφής κλήσης έκτακτης ανάγκης για %s λεπτά.\nΕπιθυμείτε έξοδο τώρα;}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Προσβασιμότητα"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Κλήση Wi-Fi από"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Κλήση μέσω Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Πατήστε ξανά για άνοιγμα"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Δεν είναι δυνατή η πραγματοποίηση της κλήσης, επειδή βρίσκεται ήδη σε εξέλιξη εξερχόμενη κλήση."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Δεν είναι δυνατή η πραγματοποίηση κλήσης, επειδή υπάρχει αναπάντητη εισερχόμενη κλήση. Απαντήστε ή απορρίψτε την εισερχόμενη κλήση, προτού πραγματοποιήσετε μια νέα κλήση."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Δεν είναι δυνατή η πραγματοποίηση κλήσης επειδή η κλήση έχει απενεργοποιηθεί μέσω της ιδιότητας συστήματος ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Δεν είναι δυνατή η πραγματοποίηση κλήσης, επειδή υπάρχουν ήδη δύο κλήσεις σε εξέλιξη. Αποσυνδέστε μια από τις κλήσεις ή συγχωνεύστε τες σε μια διάσκεψη, προτού πραγματοποιήσετε μια νέα κλήση."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Δεν είναι δυνατή η πραγματοποίηση κλήσης, επειδή υπάρχουν ήδη δύο κλήσεις σε εξέλιξη. Αποσυνδέστε μια από τις κλήσεις ή συγχωνεύστε τες σε μια συνδιάσκεψη, προτού πραγματοποιήσετε μια νέα κλήση."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Για να χρησιμοποιήσετε την υπηρεσία \"<xliff:g id="SUPP_SERVICE">%s</xliff:g>\", βεβαιωθείτε ότι τα δεδομένα κινητής τηλεφωνίας είναι ενεργοποιημένα. Μπορείτε να το αλλάξετε αυτό από τις ρυθμίσεις δικτύου κινητής τηλεφωνίας."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Για να χρησιμοποιήσετε την υπηρεσία \"<xliff:g id="SUPP_SERVICE">%s</xliff:g>\", βεβαιωθείτε ότι τα δεδομένα κινητής τηλεφωνίας, καθώς και η περιαγωγή δεδομένων, είναι ενεργοποιημένα. Μπορείτε να το αλλάξετε αυτό από τις ρυθμίσεις δικτύου κινητής τηλεφωνίας."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Παράκαμψη τύπου δικτύου:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC διαθέσιμο:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR με περιορισμό:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR διαθέσιμο:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Κατάσταση NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC διαθέσιμο (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR με περιορισμούς (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR διαθέσιμο (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Κατάσταση NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Συχνότητα NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Ρύθμιση λειτουργίας ζώνης συχνοτήτων πομπού"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Φόρτωση λίστας ζωνών…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Αναγνωριστικό δικαιώματος WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Ενημέρωση"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Ανανέωση"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Το σήμα bluetooth είναι ασθενές. Δοκιμάστε να αλλάξετε σε ανοιχτή ακρόαση."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Ειδοποίηση ποιότητας κλήσης"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Καταργημένοι λογαριασμοί SIP"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 35999b8..cede509 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Emergency Callback Mode"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Data connection disabled"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"No data connection until <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">The phone will be in Emergency Callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes. While in this mode no applications using a data connection can be used. 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. While in this mode no apps using a data connection can be used. Do you want to exit now?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes. Do you want to exit now?</item>
-      <item quantity="one">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT_0">%s</xliff:g> minute. Do you want to exit now?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{The phone will be in emergency callback mode for one minute. While in this mode, no apps using a data connection can be used. Do you want to exit now?}other{The phone will be in emergency callback mode for %s minutes. While in this mode, no applications using a data connection can be used. Do you want to exit now?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{The selected action isn\'t available while in the emergency callback mode. The phone will be in this mode for one minute. Do you want to exit now?}other{The selected action isn\'t available while in the emergency callback mode. The phone will be in this mode for %s minutes. Do you want to exit now?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"The action selected isn\'t available during an emergency call."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Exiting Emergency Callback mode"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{The phone will be in emergency callback mode for one minute.\nDo you want to exit now?}other{The phone will be in emergency callback mode for %s minutes.\nDo you want to exit now?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibility"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi call from"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi call"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tap again to open"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"There was an error while decoding the message."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Cannot place a call as another outgoing call is already dialling."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Cannot place a call as there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data is turned on. You can change this in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data and data roaming are turned on. You can change these in mobile network settings."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Override 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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC available:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR restricted:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR available:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR status:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC available (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR restricted (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR available (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR state (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR frequency:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Set radio band mode"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Loading band list…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC entitlement ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Update"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Refresh"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Your Bluetooth signal is weak. Try switching to speakerphone."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Call quality notification"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Deprecated SIP accounts"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index deaee55..6e5e368 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Emergency Callback Mode"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Data connection disabled"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"No data connection until <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">The phone will be in Emergency Callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes. While in this mode no applications using a data connection can be used. 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. While in this mode no apps using a data connection can be used. Do you want to exit now?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes. Do you want to exit now?</item>
-      <item quantity="one">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT_0">%s</xliff:g> minute. Do you want to exit now?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{The phone will be in emergency callback mode for one minute. While in this mode, no apps using a data connection can be used. Do you want to exit now?}other{The phone will be in emergency callback mode for %s minutes. While in this mode, no applications using a data connection can be used. Do you want to exit now?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{The selected action isn\'t available while in the emergency callback mode. The phone will be in this mode for one minute. Do you want to exit now?}other{The selected action isn\'t available while in the emergency callback mode. The phone will be in this mode for %s minutes. Do you want to exit now?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"The action selected isn\'t available during an emergency call."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Exiting Emergency Callback mode"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{The phone will be in emergency callback mode for one minute.\nDo you want to exit now?}other{The phone will be in emergency callback mode for %s minutes.\nDo you want to exit now?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibility"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi call from"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi call"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tap again to open"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"There was an error while decoding the message."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Cannot place a call as another outgoing call is already dialling."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Cannot place a call as there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data is turned on. You can change this in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data and data roaming are turned on. You can change these in mobile network settings."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Override 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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC available:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR restricted:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR available:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR status:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC available (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR restricted (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR available (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR state (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR frequency:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Set radio band mode"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Loading band list…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC entitlement ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Update"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Refresh"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Your Bluetooth signal is weak. Try switching to speakerphone."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Call quality notification"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Deprecated SIP accounts"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 35999b8..cede509 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Emergency Callback Mode"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Data connection disabled"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"No data connection until <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">The phone will be in Emergency Callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes. While in this mode no applications using a data connection can be used. 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. While in this mode no apps using a data connection can be used. Do you want to exit now?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes. Do you want to exit now?</item>
-      <item quantity="one">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT_0">%s</xliff:g> minute. Do you want to exit now?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{The phone will be in emergency callback mode for one minute. While in this mode, no apps using a data connection can be used. Do you want to exit now?}other{The phone will be in emergency callback mode for %s minutes. While in this mode, no applications using a data connection can be used. Do you want to exit now?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{The selected action isn\'t available while in the emergency callback mode. The phone will be in this mode for one minute. Do you want to exit now?}other{The selected action isn\'t available while in the emergency callback mode. The phone will be in this mode for %s minutes. Do you want to exit now?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"The action selected isn\'t available during an emergency call."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Exiting Emergency Callback mode"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{The phone will be in emergency callback mode for one minute.\nDo you want to exit now?}other{The phone will be in emergency callback mode for %s minutes.\nDo you want to exit now?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibility"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi call from"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi call"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tap again to open"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"There was an error while decoding the message."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Cannot place a call as another outgoing call is already dialling."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Cannot place a call as there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data is turned on. You can change this in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data and data roaming are turned on. You can change these in mobile network settings."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Override 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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC available:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR restricted:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR available:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR status:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC available (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR restricted (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR available (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR state (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR frequency:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Set radio band mode"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Loading band list…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC entitlement ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Update"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Refresh"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Your Bluetooth signal is weak. Try switching to speakerphone."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Call quality notification"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Deprecated SIP accounts"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 35999b8..cede509 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Emergency Callback Mode"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Data connection disabled"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"No data connection until <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">The phone will be in Emergency Callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes. While in this mode no applications using a data connection can be used. 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. While in this mode no apps using a data connection can be used. Do you want to exit now?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes. Do you want to exit now?</item>
-      <item quantity="one">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT_0">%s</xliff:g> minute. Do you want to exit now?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{The phone will be in emergency callback mode for one minute. While in this mode, no apps using a data connection can be used. Do you want to exit now?}other{The phone will be in emergency callback mode for %s minutes. While in this mode, no applications using a data connection can be used. Do you want to exit now?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{The selected action isn\'t available while in the emergency callback mode. The phone will be in this mode for one minute. Do you want to exit now?}other{The selected action isn\'t available while in the emergency callback mode. The phone will be in this mode for %s minutes. Do you want to exit now?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"The action selected isn\'t available during an emergency call."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Exiting Emergency Callback mode"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{The phone will be in emergency callback mode for one minute.\nDo you want to exit now?}other{The phone will be in emergency callback mode for %s minutes.\nDo you want to exit now?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibility"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi call from"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi call"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tap again to open"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"There was an error while decoding the message."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"A SIM card has activated your service and updated your phone\'s roaming capabilities."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"There are too many active calls. Please end or merge existing calls before placing a new one."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Cannot place a call as another outgoing call is already dialling."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Cannot place a call as there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data is turned on. You can change this in mobile network settings."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data and data roaming are turned on. You can change these in mobile network settings."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Override 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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC available:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR restricted:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR available:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR status:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC available (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR restricted (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR available (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR state (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR frequency:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Set radio band mode"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Loading band list…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC entitlement ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Update"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Refresh"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Your Bluetooth signal is weak. Try switching to speakerphone."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Call quality notification"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Deprecated SIP accounts"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 04094fb..09d28cf 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‏‎‏‎‎‎‎‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‏‎‎‏‎‏‎‎Emergency Callback Mode‎‏‎‎‏‎"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‏‎‎‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‏‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‎‏‏‎‎‏‎‎‏‎‎‏‏‏‏‏‏‏‏‎Data connection disabled‎‏‎‎‏‎"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‎‎‏‎‏‎‏‏‎‎‎‎‎‏‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‎‏‏‏‎No data connection until ‎‏‎‎‏‏‎<xliff:g id="COMPLETETIME">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‎‏‏‎‎‏‎‏‏‎‎‎‏‏‎‎‏‎‏‎‎‏‏‎‎‏‏‏‏‎‏‎‏‎‏‏‏‎‎‎‎‎‎‎‎‏‎‏‏‎‏‏‏‎The phone will be in Emergency Callback mode for ‎‏‎‎‏‏‎<xliff:g id="COUNT_1">%s</xliff:g>‎‏‎‎‏‏‏‎ minutes. While in this mode no applications using a data connection can be used. 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. While in this mode no apps using a data connection can be used. Do you want to exit now?‎‏‎‎‏‎</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎‏‏‏‎‎‎‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‏‏‎‎‎The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for ‎‏‎‎‏‏‎<xliff:g id="COUNT_1">%s</xliff:g>‎‏‎‎‏‏‏‎ minutes. Do you want to exit now?‎‏‎‎‏‎</item>
-      <item quantity="one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎‏‏‏‎‎‎‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‏‏‎‎‎The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for ‎‏‎‎‏‏‎<xliff:g id="COUNT_0">%s</xliff:g>‎‏‎‎‏‏‏‎ minute. Do you want to exit now?‎‏‎‎‏‎</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‎‎‏‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‏‎‎‎‎‏‏‎‎‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‎‎‏‎The phone will be in Emergency Callback mode for one minute. While in this mode no apps using a data connection can be used. Do you want to exit now?‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‎‎‏‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‏‎‎‎‎‏‏‎‎‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‎‎‏‎The phone will be in Emergency Callback mode for %s minutes. While in this mode no applications using a data connection can be used. Do you want to exit now?‎‏‎‎‏‎}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‏‎‎‏‏‎‏‎‎‏‎‎‎‎‎‎‎‎‎‎‎‏‏‏‎‏‏‎‎‏‎‏‎‏‏‏‏‎The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for one minute. Do you want to exit now?‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‏‎‎‏‏‎‏‎‎‏‎‎‎‎‎‎‎‎‎‎‎‏‏‏‎‏‏‎‎‏‎‏‎‏‏‏‏‎The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for %s minutes. Do you want to exit now?‎‏‎‎‏‎}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‎‎‏‎‎‎‎‏‎‎‎‎‎‏‎‏‎‏‎‎‎‎‎‎‎‏‎‏‏‏‎‏‎‎‏‏‏‎‏‏‎‏‎‎‏‏‎‎‏‎‏‎‎The selected action isn\'t available while in an emergency call.‎‏‎‎‏‎"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‏‏‎‎‎‏‏‎‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‏‏‏‎‎‎‏‎Exiting Emergency Callback mode‎‏‎‎‏‎"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‏‏‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‏‏‎‎‏‎‏‏‎‎‏‎‎‏‎Yes‎‏‎‎‏‎"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‏‎‎‎‏‏‏‏‎‎‏‏‏‎‏‏‎‏‎‏‏‏‎‎‏‏‏‎‎‎The phone will be in emergency callback mode for one minute.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Do you want to exit now?‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‏‎‎‎‏‏‏‏‎‎‏‏‏‎‏‏‎‏‎‏‏‏‎‎‏‏‏‎‎‎The phone will be in emergency callback mode for %s minutes.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Do you want to exit now?‎‏‎‎‏‎}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‏‏‏‎‎‎‎‏‎‎‎‏‎‏‏‎‎‎‏‎‏‏‎‏‎‏‏‎‎‏‎‎‏‏‏‏‏‎‎‏‏‏‏‏‎‎‏‎‏‎‎Accessibility‎‏‎‎‏‎"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‎‎‎‎‏‎‏‎‏‎‏‎‎‎‏‏‏‏‎‎‎‎‎‏‏‏‎‏‎‎‏‏‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‏‏‎‏‎‏‎‎‏‏‏‎Wi-Fi call from‎‏‎‎‏‎"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‏‎‎‎‏‎‏‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‏‏‏‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎Wi-Fi call‎‏‎‎‏‎"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‎‏‎‏‎‏‎‎‏‎‏‎‎‏‏‏‏‎‏‏‎‏‎‎‏‎‎‎‏‎‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‎‎‎‏‎‏‏‎‎‏‎‎Tap again to open‎‏‎‎‏‎"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎‏‎‏‏‏‏‎‎‎‏‏‏‏‎‎‎‏‏‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‏‎‎‏‎‎‎‎‎‏‎‏‎‏‏‎‏‎‎‎‏‏‏‎There was an error while decoding the message.‎‏‎‎‏‎"</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‏‎‏‎‎‎‏‏‎‏‏‏‏‎‏‎‎‏‏‎‏‎‏‎‎‎‏‏‎‎‏‎‏‎‎‎‏‏‎‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎A SIM card has activated your service and updated your phone\'s roaming capabilities.‎‏‎‎‏‎"</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‎‎‎‎‏‏‎‎‏‎‏‎‎‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎There are too many active calls. Please end or merge existing calls before placing a new one.‎‏‎‎‏‎"</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‎‎‎‏‎‏‎‏‏‎‎‏‎‏‏‎‎‏‎‏‎‎‎‏‎‎‎‎‏‏‏‎‎‎‏‏‏‎‎Cannot place a call as another outgoing call is already dialing.‎‏‎‎‏‎"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎‏‎‏‎‎‏‏‎‎‎‎‎‎‏‏‏‎‎‏‎‎‎‏‎‏‏‎‎‎‎‎‎‏‎‏‏‏‎Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call.‎‏‎‎‏‎"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‎‏‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‏‎‎‎‏‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‏‏‎Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property.‎‏‎‎‏‎"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‎‎‎‏‏‎‎‏‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‏‎‏‏‎‏‎‎‏‎‏‎‎‏‎‎‎Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call.‎‏‎‎‏‎"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‎‏‎‏‎‎‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‎‏‏‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎Cannot place a call as there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call.‎‏‎‎‏‎"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‎‎‏‎‎‏‎‏‎‎‎‏‎‏‎‏‏‎‏‏‏‎‏‏‏‎‏‏‏‎‎‏‎‎‎‏‏‎‎‎‏‎‏‎‎‎‏‏‏‏‏‏‏‎To use ‎‏‎‎‏‏‎<xliff:g id="SUPP_SERVICE">%s</xliff:g>‎‏‎‎‏‏‏‎, make sure mobile data is turned on. You can change this in mobile network settings.‎‏‎‎‏‎"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‏‎‏‎‎‏‏‎‏‏‎‎‎‏‎‎‎‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‎‏‏‏‎‎‎‎‏‏‎‎‎‎‏‏‎‎‏‏‎‎‏‏‏‎To use ‎‏‎‎‏‏‎<xliff:g id="SUPP_SERVICE">%s</xliff:g>‎‏‎‎‏‏‏‎, make sure mobile data and data roaming are turned on. You can change these in mobile network settings.‎‏‎‎‏‎"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‎‎‏‎‎‎‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‏‎‎‎‎‎‏‎‏‎‏‎‎‏‎‏‎Override 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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‏‎‎‏‏‎‏‎‏‏‏‎‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‎‎‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‏‏‏‎‏‏‎‎‏‏‏‎‎‎EN-DC Available:‎‏‎‎‏‎"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‎‎‏‎‎‎‎‎‏‏‎‎‎‏‎‎‎‏‏‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‎‎‎‎‎‎‎‎‏‏‎‏‎‎‏‏‏‎DCNR Restricted:‎‏‎‎‏‎"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‎‏‎‏‏‎‎‏‎‎‎‏‎‎‎‎‎‎‎‏‎‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‎‏‎NR Available:‎‏‎‎‏‎"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‎‎‏‎‎‎‎‎‎‎‎‎‎‏‎‏‎‏‎‎‏‎‎‏‏‏‏‎‎‏‎‎‎‎‏‎‏‏‏‎‎‏‏‎‎‎‎‎‎‏‏‏‏‎‎‎NR State:‎‏‎‎‏‎"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‎‏‎‎‎‎‏‏‏‏‎‎‎‎‏‏‎‎‎‎‎‏‏‏‎‎‏‎‎‏‎‏‎‎‏‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‏‎EN-DC Available (NSA):‎‏‎‎‏‎"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‎‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‎‎‏‎‏‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‏‎‏‎DCNR Restricted (NSA):‎‏‎‎‏‎"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‏‏‎‎‎‏‎‏‎‎‏‎‏‏‏‎‏‎‏‏‎‏‏‎‎‏‎‎‎‎‏‎‏‎‎‏‏‏‏‏‎‎NR Available (NSA):‎‏‎‎‏‎"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‎‏‏‎‎‏‏‎‎‏‎‏‎‏‎‏‏‎‏‏‎‎‎‎‏‏‏‏‎‎‎‏‏‏‏‎‏‎‎‏‏‎‏‎NR State (NSA):‎‏‎‎‏‎"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‎‏‎‏‎‏‎‏‏‎‏‎‏‏‏‎‏‎‎‎‎‏‏‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‎‏‏‎‎‎‎‎‎‎NR Frequency:‎‏‎‎‏‎"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‎‎‎‎‎‎‎‎‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎‏‏‎‏‎‎‏‎‎‏‎‏‏‏‏‎‏‎‎‏‎‎‏‎‏‎‎Set Radio Band Mode‎‏‎‎‏‎"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‏‏‎‎‎‎‏‎‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‎‎‏‏‎‎‏‎‎‏‎‎‏‏‏‏‏‎‎‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‎Loading Band List…‎‏‎‎‏‎"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‏‎‎‎‏‎‏‎‏‎‏‎‎‎‏‎‎‏‏‏‎‎‏‎‎‎‎‎‎‏‏‎‎‎‎‏‏‎‏‏‏‏‎‎WFC Entitlement ID:‎‏‎‎‏‎"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‎‎‎‎‎‏‏‏‏‎‎‎‎‏‏‏‏‎‏‎‏‏‏‏‎‏‎‏‎‎‎‏‏‎‎‎‏‏‎‏‎Update‎‏‎‎‏‎"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‏‎‎‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‎‎‏‎‏‎‏‎‎‏‏‏‎‎‎‎‎‎‏‏‏‏‏‏‎Refresh‎‏‎‎‏‎"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‎‎‏‎‏‏‏‏‎‎‏‏‏‏‎‎‎‏‎‏‏‏‎Your bluetooth signal is weak. Try switching to speakerphone.‎‏‎‎‏‎"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‏‎‎‎‎‎‎‎‎‏‎‏‏‎‎‏‏‏‎‏‎‎‎‏‎‎‎‎‏‏‏‏‏‏‎‎‏‎‎‎‏‏‎‎‎‎‎‏‎‎‏‏‏‏‎‎Call Quality Notification‎‏‎‎‏‎"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‎‎‏‎‏‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‏‎‏‎‏‎‎‎‏‎‏‎‏‏‎‏‎‏‏‎‏‎‏‎Deprecated SIP accounts‎‏‎‎‏‎"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index c4c0ea2..882900c 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Modo de devolución de llamada de emergencia"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"La conexión de datos se ha desactivado"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Hora de restablecimiento de conexión de datos: <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">El teléfono estará en el modo de llamada de emergencia durante <xliff:g id="COUNT_1">%s</xliff:g> minutos. Mientras esté en este modo, no se podrá utilizar ninguna aplicación que utilice una conexión de datos. ¿Quieres salir ahora?</item>
-      <item quantity="one">El teléfono estará en el modo de llamada de emergencia durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. Mientras esté en este modo, no se podrá utilizar ninguna aplicación que utilice una conexión de datos. ¿Quieres salir ahora?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">La acción seleccionada no está disponible en el modo de llamada de emergencia. El teléfono estará en este modo durante <xliff:g id="COUNT_1">%s</xliff:g> minutos. ¿Quieres salir ahora?</item>
-      <item quantity="one">La acción seleccionada no está disponible en el modo de llamada de emergencia. El teléfono estará en este modo durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. ¿Quieres salir ahora?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{El teléfono estará en modo de devolución de llamada de emergencia durante un minuto. En este modo, no se podrá usar ninguna app que requiera una conexión de datos. ¿Quieres salir ahora?}other{El teléfono estará en modo de devolución de llamada de emergencia durante %s minutos. En este modo, no se podrá usar ninguna app que requiera una conexión de datos. ¿Quieres salir ahora?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{La acción seleccionada no está disponible cuando el teléfono se encuentra en modo de devolución de llamada de emergencia. El teléfono estará en este modo durante un minuto. ¿Quieres salir ahora?}other{La acción seleccionada no está disponible cuando el teléfono se encuentra en modo de devolución de llamada de emergencia. El teléfono estará en este modo durante %s minutos. ¿Quieres salir ahora?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"La acción seleccionada no está disponible durante una llamada de emergencia."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Saliendo del modo de llamada de retorno de emergencia"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sí"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{El teléfono estará en modo de devolución de llamada de emergencia durante un minuto.\n¿Quieres salir ahora?}other{El teléfono estará en modo de devolución de llamada de emergencia durante %s minutos.\n¿Quieres salir ahora?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accesibilidad"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Llamada con Wi-Fi de"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Llamada por Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Presionar de nuevo para abrir"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Se produjo un error al decodificar el mensaje."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Una tarjeta SIM activó tu servicio y actualizó las capacidades de roaming del teléfono."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Hay demasiadas llamadas activas. Finaliza o combina las llamadas existentes antes de realizar una llamada nueva."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"No puedes realizar la llamada porque ya estás marcando otra llamada saliente."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"No puedes realizar la llamada porque tienes una llamada entrante que no respondiste. Respóndela o recházala antes de realizar una nueva."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"No puedes realizar la llamada porque se desactivaron las llamadas con la propiedad ro.telephony.disable-call del sistema."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"No puedes realizar la llamada porque hay dos llamadas en curso. Antes de realizar una nueva, desconecta una de ellas o combínalas en una conferencia."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"No puedes hacer la llamada porque hay dos llamadas en curso. Finaliza una de ellas o combínalas en una conferencia antes de llamar de nuevo."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Para usar <xliff:g id="SUPP_SERVICE">%s</xliff:g>, asegúrate de que los datos móviles estén activados. Puedes cambiar esto en la configuración de la red móvil."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Para usar <xliff:g id="SUPP_SERVICE">%s</xliff:g>, asegúrate de que los datos móviles y el roaming de datos estén activados. Puedes cambiar esto en la configuración de la red móvil."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Anular tipo de red:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC disponible:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR restringida:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR disponible:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Estado de NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC disponible (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR restringido (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR disponible (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Estado de NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frecuencia de NR:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID de derecho de WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Actualizar"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Actualizar"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Tu señal de Bluetooth es débil. Intenta cambiar al altavoz."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Notificación de calidad de llamada"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Cuentas SIP obsoletas"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index fecf020..2759dbb 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Modo de devolución de llamada de emergencia"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Conexión de datos inhabilitada"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"No hay conexión de datos hasta las <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Se activará el modo de devolución de llamada de emergencia en el teléfono durante <xliff:g id="COUNT_1">%s</xliff:g> minutos. En este modo, no se puede utilizar ninguna aplicación que emplee una conexión de datos. ¿Quieres salir?</item>
-      <item quantity="one">Se activará el modo de devolución de llamada de emergencia en el teléfono durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. En este modo, no se puede utilizar ninguna aplicación que emplee una conexión de datos. ¿Quieres salir?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">La acción seleccionada no está disponible en el modo de devolución de llamada de emergencia. Se activará este modo en el teléfono durante <xliff:g id="COUNT_1">%s</xliff:g> minutos. ¿Quieres salir?</item>
-      <item quantity="one">La acción seleccionada no está disponible en el modo de devolución de llamada de emergencia. Se activará este modo en el teléfono durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. ¿Quieres salir?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{El teléfono permanecerá en el modo de devolución de llamada de emergencia durante un minuto. En este modo, no se podrán usar las aplicaciones que utilicen una conexión de datos. ¿Quieres salir ahora?}other{El teléfono permanecerá en el modo de devolución de llamada de emergencia durante %s minutos. En este modo, no se podrán usar las aplicaciones que utilicen una conexión de datos. ¿Quieres salir ahora?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{La acción seleccionada no está disponible en el modo de devolución de llamada de emergencia. El teléfono permanecerá en este modo durante un minuto. ¿Quieres salir ahora?}other{La acción seleccionada no está disponible en el modo de devolución de llamada de emergencia. El teléfono permanecerá en este modo durante %s minutos. ¿Quieres salir ahora?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"La acción seleccionada no está disponible durante una llamada de emergencia."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Saliendo del modo de devolución de llamada de emergencia"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sí"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{El teléfono estará en modo de devolución de llamada de emergencia durante un minuto.\n¿Quieres salir ahora?}other{El teléfono estará en modo de devolución de llamada de emergencia durante %s minutos.\n¿Quieres salir ahora?}}"</string>
     <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 establecer&gt;"</string>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accesibilidad"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Llamada por Wi-Fi de"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Llamada Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Toca de nuevo para abrir"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Se ha producido un error al decodificar el mensaje."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Una tarjeta SIM ha activado tu servicio y actualizado la función de roaming del teléfono."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Hay demasiadas llamadas activas. Finaliza o combina las llamadas que tienes antes de iniciar otra."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"No se puede llamar porque ya se está realizando otra llamada."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"No se puede llamar porque hay una llamada entrante sin responder. Contéstala o recházala para poder llamar de nuevo."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"No se puede llamar porque se han inhabilitado las llamadas mediante la propiedad del sistema ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"No se puede llamar porque ya hay dos llamadas en curso. Interrumpe una de ellas o combínalas en una conferencia para poder llamar de nuevo."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"No se puede llamar porque ya hay dos llamadas en curso. Interrumpe una de ellas o combínalas en una conferencia antes de hacer otra llamada."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Para utilizar <xliff:g id="SUPP_SERVICE">%s</xliff:g>, los datos móviles deben estar activados. Puedes cambiar esta opción en los ajustes de red móvil."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Para utilizar <xliff:g id="SUPP_SERVICE">%s</xliff:g>, los datos móviles y el roaming de datos deben estar activados. Puedes cambiar estas opciones en los ajustes de red móvil."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Anular tipo de red:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC disponible:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR restringido:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR disponible:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Estado de NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC disponible (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR restringido (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR disponible (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Estado de NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frecuencia de NR:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID de derecho a WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Actualizar"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Actualizar"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Tu señal de Bluetooth es débil. Prueba a cambiar al altavoz."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Notificación de calidad de la llamada"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Cuentas SIP obsoletas"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 076160a..b1ca47c 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Hädaolukorra tagasihelistusrežiim"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Andmeühendus keelatud"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Kuni kella <xliff:g id="COMPLETETIME">%s</xliff:g> andmesideühendus puudub"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Telefon on <xliff:g id="COUNT_1">%s</xliff:g> minutit hädaabikõne tagasihelistamise režiimis. Selles režiimis olles ei saa kasutada ühtegi rakendust, mis kasutab andmesideühendust. Kas soovite kohe väljuda?</item>
-      <item quantity="one">Telefon on <xliff:g id="COUNT_0">%s</xliff:g> minuti hädaabikõne tagasihelistamise režiimis. Selles režiimis olles ei saa kasutada ühtegi rakendust, mis kasutab andmesideühendust. Kas soovite kohe väljuda?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Valitud toiming pole hädaabikõne tagasihelistamise režiimis saadaval. Telefon on selles režiimis <xliff:g id="COUNT_1">%s</xliff:g> minutit. Kas soovite kohe väljuda?</item>
-      <item quantity="one">Valitud toiming pole hädaabikõne tagasihelistamise režiimis saadaval. Telefon on selles režiimis <xliff:g id="COUNT_0">%s</xliff:g> minuti. Kas soovite kohe väljuda?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Telefon on hädaolukorra tagasihelistusrežiimis üks minut. Selles režiimis ei saa kasutada ühtegi andmesideühendusel põhinevat rakendust. Kas soovite kohe väljuda?}other{Telefon on hädaolukorra tagasihelistusrežiimis %s minutit. Selles režiimis ei saa kasutada ühtegi andmesideühendust kasutavat rakendust. Kas soovite kohe väljuda?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Valitud toiming ei ole hädaolukorra tagasihelistusrežiimis kättesaadav. Telefon on selles režiimis üks minut. Kas soovite kohe väljuda?}other{Valitud toiming pole hädaolukorra tagasihelistusrežiimis kättesaadav. Telefon on selles režiimis %s minutit. Kas soovite kohe väljuda?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Valitud toiming ei ole hädaabikõne ajal saadaval."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Väljumine hädaolukorra tagasihelistusrežiimist"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Jah"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Telefon on hädaolukorra tagasihelistusrežiimis üks minut.\nKas soovite kohe väljuda?}other{Telefon on hädaolukorra tagasihelistusrežiimis %s minutit.\nKas soovite kohe väljuda?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Juurdepääsetavus"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"WiFi-kõne:"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"WiFi-kõne"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Avamiseks puudutage uuesti"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Sõnumi dekodeerimisel ilmnes viga."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM-kaart aktiveeris teenuse ja värskendas telefoni rändlusvõimeid."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Liiga palju aktiivseid kõnesid. Enne uue kõne tegemist lõpetage mõni olemasolev kõne või ühendage mitu kõnet omavahel."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Kõnet ei saa teha, kuna teist väljuvat kõnet juba valitakse."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Kõnet ei saa teha, kuna telefonis on sissetulev vastamata kõne. Enne uue kõne tegemist vastake kõnele või katkestage see."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Kõnet ei saa teha, kuna helistamine on süsteemi atribuudiga ro.telephony.disable-call keelatud."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Kõnet ei saa teha, kuna kaks kõnet on juba pooleli. Enne uue kõne tegemist katkestage üks kõnedest või liitke need konverentskõnedeks."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Kõnet ei saa teha, kuna kaks kõnet on juba pooleli. Enne uue kõne tegemist katkestage üks kõnedest või liitke need konverentskõnedeks."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Teenuse <xliff:g id="SUPP_SERVICE">%s</xliff:g> kasutamiseks veenduge, et mobiilne andmeside oleks sisse lülitatud. Seda saab muuta mobiilsidevõrgu seadetes."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Teenuse <xliff:g id="SUPP_SERVICE">%s</xliff:g> kasutamiseks veenduge, et mobiilne andmeside ja andmesiderändlus oleks sisse lülitatud. Seda saab muuta mobiilsidevõrgu seadetes."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Võrgu tüübi alistamine:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC saadaval:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR piiratud:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR saadaval:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR-i olek:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC on saadaval (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR on piiratud (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR on saadaval (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR-i olek (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR-i sagedus:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Raadio ribarežiimi määramine"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Ribaloendi laadimine …"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC õiguse ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Uuenda"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Värskenda"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Teie Bluetoothi signaal on nõrk. Lülitage valjuhääldile."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Kõnekvaliteedi märguanne"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Katkestatud toega SIP-kontod"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 4360374..58ba2f9 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Larrialdi-zerbitzuen deiak jasotzeko modua"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Datu-konexioa desgaituta"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Ez duzu izango datu-konexiorik ordu honetara arte: <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Telefonoa larrialdi-zerbitzuen deiak jasotzeko moduan egongo da <xliff:g id="COUNT_1">%s</xliff:g> minutuz. Modu horretan dagoen bitartean, ezingo duzu datu-konexioa behar duen aplikaziorik erabili. Irten nahi duzu?</item>
-      <item quantity="one">Telefonoa larrialdi-zerbitzuen deiak jasotzeko moduan egongo da <xliff:g id="COUNT_0">%s</xliff:g> minutuz. Modu horretan dagoen bitartean, ezingo duzu datu-konexioa behar duen aplikaziorik erabili. Irten nahi duzu?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Hautatutako ekintza ez dago larrialdi-zerbitzuen deiak jasotzeko moduan erabilgarri. Telefonoa <xliff:g id="COUNT_1">%s</xliff:g> minutuz egongo da modu horretan. Irten nahi duzu?</item>
-      <item quantity="one">Hautatutako ekintza ez dago larrialdi-zerbitzuen deiak jasotzeko moduan erabilgarri. Telefonoa <xliff:g id="COUNT_0">%s</xliff:g> minutuz egongo da modu horretan. Irten nahi duzu?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Telefonoa larrialdi-zerbitzuen deiak jasotzeko moduan egongo da minutu batez. Modu horretan dagoen bitartean, ezingo duzu erabili datu-konexioa behar duen aplikaziorik. Irten nahi duzu?}other{Telefonoa larrialdi-zerbitzuen deiak jasotzeko moduan egongo da %s minutuz. Modu horretan dagoen bitartean, ezingo duzu erabili datu-konexioa behar duen aplikaziorik. Irten nahi duzu?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Hautatutako ekintza ez dago erabilgarri larrialdi-zerbitzuen deiak jasotzeko moduan. Telefonoa minutu batez egongo da modu horretan. Irten nahi duzu?}other{Hautatutako ekintza ez dago erabilgarri larrialdi-zerbitzuen deiak jasotzeko moduan. Telefonoa %s minutuz egongo da modu horretan. Irten nahi duzu?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Hautatutako ekintza ez dago erabilgarri larrialdi-deia egiten ari den bitartean."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Larrialdi-zerbitzuen deiak jasotzeko modutik irteten"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Bai"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Telefonoa larrialdi-zerbitzuen deiak jasotzeko moduan egongo da minutu batez.\nIrten nahi duzu?}other{Telefonoa larrialdi-zerbitzuen deiak jasotzeko moduan egongo da %s minutuz.\nIrten nahi duzu?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Erabilerraztasuna"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi bidezko deia:"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi deia"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Irekitzeko, sakatu berriro"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Errore bat gertatu mezua deskodetzean."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM txartel batek zerbitzua aktibatu du eta telefonoaren ibiltaritza-gaitasunak eguneratu ditu."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Dei gehiegi daude aktibo. Amaitu edo bateratu abian diren deiak beste bat egin aurretik."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Ezin da egin deia, beste dei bat abian delako."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Ezin da egin deia, oraindik erantzun ez diozun dei bat jasotzen ari zarelako. Beste dei bat egin aurretik, erantzun deiari edo bazter ezazu."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Ezin da egin deia, deiak egiteko aukera desgaitu egin delako sistemaren ro.telephony.disable-call propietatea erabilita."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Ezin da egin deia, dagoeneko bi dei daudelako abian. Beste dei bat egin aurretik, eten deietako bat edo bateratu deiak konferentzia-dei bakarrean."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Ezin da egin deia, dagoeneko bi dei daudelako abian. Beste dei bat egin aurretik, eten deietako bat edo bateratu deiak konferentzia-dei bakarrean."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> erabiltzeko, ziurtatu datu-konexioa aktibatuta dagoela. Sare mugikorren ezarpenetan alda dezakezu aukera hau."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> erabiltzeko, ziurtatu datu-konexioa eta datu-ibiltaritza aktibatuta daudela. Sare mugikorren ezarpenetan alda ditzakezu aukera horiek."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Ordeztu 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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC erabilgarri:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR mugatuta:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR erabilgarri:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR estatua:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC erabilgarri (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR murriztua (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR erabilgarri (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR egoera (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR maiztasuna:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Ezarri irrati-bandaren modua"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Banden zerrenda kargatzen…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement-eko IDa:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Eguneratu"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Freskatu"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth seinalea ahula da. Erabili telefonoko bozgorailua."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Deien kalitateari buruzko jakinarazpena"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"SIP-eko kontu zaharkituak"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index a83ff37..f5e9968 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">تلفن برای <xliff:g id="COUNT_1">%s</xliff:g> دقیقه در حالت تماس اضطراری خواهد بود. در این حالت برنامه‌ای که از اتصال داده استفاده می‌کند، نمی‌تواند استفاده شود. می‌خواهید اکنون خارج شوید؟</item>
-      <item quantity="other">تلفن برای <xliff:g id="COUNT_1">%s</xliff:g> دقیقه در حالت تماس اضطراری خواهد بود. در این حالت برنامه‌ای که از اتصال داده استفاده می‌کند، نمی‌تواند استفاده شود. می‌خواهید اکنون خارج شوید؟</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">اقدام انتخاب شده در حالت تماس اضطراری در دسترس نیست. این تلفن برای <xliff:g id="COUNT_1">%s</xliff:g> دقیقه در این حالت خواهد بود. می‌خواهید اکنون خارج شوید؟</item>
-      <item quantity="other">اقدام انتخاب شده در حالت تماس اضطراری در دسترس نیست. این تلفن برای <xliff:g id="COUNT_1">%s</xliff:g> دقیقه در این حالت خواهد بود. می‌خواهید اکنون خارج شوید؟</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"در حین یک تماس اضطراری، عملکرد انتخابی در دسترس نیست."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"خروج از حالت پاسخ تماس اضطراری"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"بله"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"دسترس‌پذیری"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"‏تماس Wi-Fi از"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"‏تماس Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"دوباره ضربه بزنید تا باز شود"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"هنگام رمزگشایی پیام، خطایی روی داد."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"یک سیم‌کارت سرویس شما را فعال کرده است و قابلیت‌های فراگردی تلفنتان را به‌روز کرده است."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"تعداد زیادی تماس فعال وجود دارد. قبل از برقراری تماس جدید، لطفاً به تماس‌های موجود پایان دهید یا آنها را ادغام کنید."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"نمی‌توانید تماسی برقرار کنید، چون تماس خروجی دیگری درحال شماره‌گیری است."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"نمی‌توانید تماسی برقرار کنید، چون تماس ورودی بی‌پاسخی درحال شماره‌گیری است. قبل از برقراری تماس جدید، به آن پاسخ دهید یا آن را رد کنید."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"‏نمی‌توانید تماسی برقرار کنید چون برقراری تماس تلفنی با استفاده از مشخصه سیستم ro.telephony.disable-call غیرفعال شده است."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"نمی‌توانید تماسی برقرار کنید، چون هم‌اکنون دو تماس دیگر درحال انجام است. قبل از برقراری تماس جدید، یکی از تماس‌ها را قطع کنید یا آن‌ها را به‌صورت کنفرانسی ادغام کنید."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"نمی‌توانید تماسی برقرار کنید، زیرا هم‌اکنون دو تماس دیگر درحال انجام است. قبل‌از برقراری تماس جدید، یکی از تماس‌ها را قطع کنید یا آن‌ها را به‌صورت کنفرانسی ادغام کنید."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"برای استفاده از <xliff:g id="SUPP_SERVICE">%s</xliff:g>، مطمئن شوید داده‌ تلفن همراه روشن شده باشد. می‌توانید در تنظیمات شبکه تلفن همراه این تنظیم را تغییر دهید."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"برای استفاده از <xliff:g id="SUPP_SERVICE">%s</xliff:g>، مطمئن شوید داده‌ تلفن همراه و فراگردی داده روشن شده باشد. می‌توانید در تنظیمات شبکه تلفن همراه، این تنظیمات را تغییر دهید."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"ملغی کردن نوع شبکه:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"‏EN-DC دردسترس است:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"‏DCNR محدود شده است:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"‏NR دردسترس است:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"‏وضعیت NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"‏EN-DC دردسترس است (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"‏DCNR محدود شده است (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"‏NR دردسترس است (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"‏وضعیت NR‏ (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"‏فرکانس NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"تنظیم حالت باند رادیو"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"درحال بار کردن فهرست باند…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"‏شناسه برخورداری از WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"به‌روزرسانی"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"بازآوری"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"سیگنال بلوتوث شما ضعیف است. از بلندگوی تلفن استفاده کنید."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"اعلان کیفیت تماس"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"‏حساب‌های SIP منسوخ‌شده"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 34d40a8..d548e60 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Hätäpuhelujen takaisinsoittotila"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Verkkoyhteys pois käytöstä"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Datayhteyden voi muodostaa vasta <xliff:g id="COMPLETETIME">%s</xliff:g>."</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Puhelin siirtyy hätäpuhelujen takaisinsoittotilaan <xliff:g id="COUNT_1">%s</xliff:g> minuutin ajaksi. Et voi käyttää verkkoyhteyttä hyödyntäviä sovelluksia tänä aikana. Haluatko poistua nyt?</item>
-      <item quantity="one">Puhelin siirtyy hätäpuhelujen takaisinsoittotilaan <xliff:g id="COUNT_0">%s</xliff:g> minuutin ajaksi. Et voi käyttää verkkoyhteyttä hyödyntäviä sovelluksia tänä aikana. Haluatko poistua nyt?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Valittua toimintoa ei voi käyttää, kun puhelin on hätäpuhelujen takaisinsoittotilassa. Puhelin on takaisinsoittotilassa <xliff:g id="COUNT_1">%s</xliff:g> minuutin ajan. Haluatko poistua nyt?</item>
-      <item quantity="one">Valittua toimintoa ei voi käyttää, kun puhelin on hätäpuhelujen takaisinsoittotilassa. Puhelin on takaisinsoittotilassa <xliff:g id="COUNT_0">%s</xliff:g> minuutin ajan. Haluatko poistua nyt?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Puhelin on hätäpuhelujen takaisinsoittotilassa yhden minuutin ajan. Tässä tilassa datayhteyttä hyödyntäviä sovelluksia ei voi käyttää. Haluatko lopettaa nyt?}other{Puhelin on hätäpuhelujen takaisinsoittotilassa %s minuutin ajan. Tässä tilassa datayhteyttä hyödyntäviä sovelluksia ei voi käyttää. Haluatko lopettaa nyt?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Valittu toiminto ei ole käytettävissä hätäpuhelujen takaisinsoittotilassa. Puhelin pysyy tässä tilassa yhden minuutin ajan. Haluatko lopettaa nyt?}other{Valittu toiminto ei ole käytettävissä hätäpuhelujen takaisinsoittotilassa. Puhelin pysyy tässä tilassa %s minuutin ajan. Haluatko lopettaa nyt?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Valittu toiminto ei ole käytettävissä hätäpuhelun aikana"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Poistutaan hätäpuhelujen takaisinsoittotilasta"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Kyllä"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Puhelin on hätäpuhelujen takaisinsoittotilassa yhden minuutin ajan.\nHaluatko lopettaa nyt?}other{Puhelin on hätäpuhelujen takaisinsoittotilassa %s minuutin ajan.\nHaluatko lopettaa nyt?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Esteettömyys"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi-puhelu henkilöltä"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi-puhelu"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Avaa koskettamalla uudelleen."</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Virhe purettaessa viestiä."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM-kortti on aktivoinut palvelusi ja päivittänyt puhelimesi roaming-toiminnot."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Aktiivisia puheluja on liian monta. Lopeta puheluita tai yhdistä niitä ennen uuden puhelun aloittamista."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Puhelua ei voida soittaa, koska toisen lähtevän puhelun soittaminen on kesken."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Puhelua ei voida soittaa, koska saapuvaan puheluun ei ole vielä vastattu. Vastaa saapuvaan puheluun tai hylkää se, ennen kuin soitat uuden puhelun."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Puhelua ei voida soittaa, koska soittaminen on poistettu käytöstä ro.telephony.disable-call-järjestelmätoiminnolla."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Puhelua ei voida soittaa, koska kaksi puhelua on jo käynnissä. Katkaise toinen puheluista tai yhdistä puhelut puhelinneuvotteluksi ennen uuden puhelun soittamista."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Puhelua ei voida soittaa, koska kaksi puhelua on jo käynnissä. Katkaise toinen puheluista tai yhdistä puhelut neuvotteluksi ennen uuden puhelun soittamista."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> toimii, jos mobiilidata on käytössä. Voit ottaa mobiilidatan käyttöön mobiiliverkkoasetuksista."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> toimii, jos mobiilidata ja roaming ovat käytössä. Voit ottaa ne käyttöön mobiiliverkkoasetuksista."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Ohita verkon 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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC saatavilla:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR rajoitettu:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR saatavilla:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR:n tila:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC saatavana (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR rajoitettu (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR saatavana (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR:n tila (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR:n taajuus:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Radion taajuustilan valinta"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Ladataan taajuusluetteloa…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC-oikeuden tunnus:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Päivitä"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Päivitä"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth-signaali on heikko. Kokeile vaihtaa kaiutinpuhelimeen."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Puhelun laatua koskeva ilmoitus"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Käytöstä poistetut SIP-tilit"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 3236666..fa3e257 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Mode de rappel d\'urgence"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Connexion des données désactivée"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Aucune connexion de données avant <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Le téléphone sera en mode de rappel d\'urgence pendant <xliff:g id="COUNT_1">%s</xliff:g> minute.  Lorsque ce mode est activé, vous ne pouvez pas utiliser d\'applications nécessitant une connexion à Internet. Voulez-vous quitter l\'écran 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. Lorsque ce mode est activé, vous ne pouvez pas utiliser d\'applications nécessitant une connexion à Internet. Voulez-vous quitter l\'écran maintenant?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">L\'action sélectionnée n\'est pas disponible lorsque le mode de rappel d\'urgence est activé. Ce mode restera activé sur ce téléphone pendant <xliff:g id="COUNT_1">%s</xliff:g> minute. Voulez-vous quitter l\'écran maintenant?</item>
-      <item quantity="other">L\'action sélectionnée n\'est pas disponible lorsque le mode de rappel d\'urgence est activé. Ce mode restera activé sur ce téléphone pendant <xliff:g id="COUNT_1">%s</xliff:g> minutes. Voulez-vous quitter l\'écran maintenant?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"L\'action sélectionnée n\'est pas disponible pendant un appel d\'urgence."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Sortie du mode de rappel d\'urgence…"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Oui"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibilité"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Appel Wi-Fi de"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Appel Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Touchez à nouveau pour ouvrir"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Une erreur s\'est produite lors du décodage du message."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Une carte SIM a activé votre service et mis à jour les fonctionnalités d\'itinérance de votre téléphone."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Il y a trop d\'appels actifs. Veuillez mettre fin aux appels existants ou les fusionner avant d\'en passer un nouveau."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Impossible de passer un appel, car un autre appel sortant est déjà en cours de composition."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Impossible de passer un appel, car il y a un appel entrant sans réponse. Répondez à l\'appel entrant ou refusez-le avant de passer un nouvel appel."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Impossible de passer un appel, car la fonction d\'appel a été désactivée à l\'aide de la propriété système ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Impossible de passer un appel, car deux appels sont déjà en cours. Déconnectez-en un ou fusionnez-les en conférence téléphonique avant de passer un nouvel appel."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Impossible de passer un appel, car deux appels sont déjà en cours. Déconnectez-en un ou fusionnez-les en conférence téléphonique avant de passer un nouvel appel."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Avant d\'utiliser <xliff:g id="SUPP_SERVICE">%s</xliff:g>, assurez-vous que les données cellulaires sont activées. Vous pouvez modifier cette option dans les paramètres du réseau cellulaire."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Avant d\'utiliser <xliff:g id="SUPP_SERVICE">%s</xliff:g>, assurez-vous que les données cellulaires et l\'itinérance des données sont activées. Vous pouvez modifier ces options dans les paramètres du réseau cellulaire."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Remplacer le type de réseau :"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC disponible :"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR restreinte :"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR disponible :"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"État NR :"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"Disponibilité EN-DC (NSA) :"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"Restriction DCNR (NSA) :"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"Disponibilité NR (NSA) :"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"État NR (NSA) :"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Fréquence NR :"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Identifiant de droit WFC :"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Mettre à jour"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Actualiser"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Votre signal Bluetooth est faible. Essayez de passer au haut-parleur mains libres."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Notification de qualité d\'appel"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Comptes SIP obsolètes"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 957e361..084f5ad 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Mode de rappel d\'urgence"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Connexion des données désactivée"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Aucune connexion Internet mobile jusqu\'à <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Le téléphone sera en mode de rappel d\'urgence pendant <xliff:g id="COUNT_1">%s</xliff:g> minute. Lorsque ce mode est activé, vous ne pouvez pas utiliser d\'applications nécessitant une connexion à Internet. Voulez-vous quitter l\'écran 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. Lorsque ce mode est activé, vous ne pouvez pas utiliser d\'applications nécessitant une connexion à Internet. Voulez-vous quitter l\'écran maintenant ?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">L\'action sélectionnée n\'est pas disponible lorsque le mode de rappel d\'urgence est activé. Ce mode restera activé sur ce téléphone pendant <xliff:g id="COUNT_1">%s</xliff:g> minute. Voulez-vous quitter l\'écran maintenant ?</item>
-      <item quantity="other">L\'action sélectionnée n\'est pas disponible lorsque le mode de rappel d\'urgence est activé. Ce mode restera activé sur ce téléphone pendant <xliff:g id="COUNT_1">%s</xliff:g> minute. Voulez-vous quitter l\'écran maintenant ?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"L\'action sélectionnée n\'est pas disponible pendant un appel d\'urgence."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Sortie du mode de rappel d\'urgence…"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Oui"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibilité"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Appel Wi-Fi de"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Appel Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Appuyez à nouveau pour ouvrir."</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Une erreur s\'est produite lors du décodage du message."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Votre service a été activé et les fonctionnalités d\'itinérance de votre téléphone ont été mises à jour via une carte SIM."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Il y a trop d\'appels actifs. Pour passer un autre appel, vous devez mettre fin aux appels existants ou fusionner ces derniers."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Impossible de passer un appel lorsqu\'un appel sortant est déjà en cours."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Impossible de passer un appel lorsqu\'un appel entrant attend une réponse. Répondez à cet appel ou refusez-le avant de passer un nouvel appel."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Impossible de passer un appel, car la fonction d\'appel a été désactivée à l\'aide de la propriété système ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Impossible de passer un appel, car deux appels sont déjà en cours. Mettez fin à l\'un des appels ou fusionnez-les afin de créer une conférence avant de passer un nouvel appel."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Impossible de passer un appel, car deux appels sont déjà en cours. Mettez fin à l\'un des appels ou fusionnez-les afin de créer une conférence avant de passer un nouvel appel."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Pour utiliser <xliff:g id="SUPP_SERVICE">%s</xliff:g>, assurez-vous que les données mobiles sont activées. Vous pouvez modifier cette option dans les paramètres de réseau mobile."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Pour utiliser <xliff:g id="SUPP_SERVICE">%s</xliff:g>, assurez-vous que les données mobiles et l\'itinérance des données sont activées. Vous pouvez modifier ces options dans les paramètres de réseau mobile."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Ignorer le type de réseau :"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"Accès EN-DC disponible :"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"Limitation DCNR :"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"Accès NR disponible :"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"État NR :"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"Accès EN-DC disponible (NSA) :"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"Limitation DCNR (NSA) :"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"Accès NR disponible (NSA) :"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"État NR (NSA) :"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Fréquence NR :"</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>
@@ -924,6 +915,12 @@
     <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>
+    <!-- no translation found for provisioning_info_wfc_entitlement_id (8845188780811890910) -->
+    <skip />
+    <!-- no translation found for update_provisioning_info_wfc_entitlement_id (7044171908781134221) -->
+    <skip />
+    <!-- no translation found for refresh_provisioning_info_wfc_entitlement_id (738894335351353407) -->
+    <skip />
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Votre signal Bluetooth est faible. Essayez d\'utiliser le haut-parleur."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Notification concernant la qualité de l\'appel"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Comptes SIP obsolètes"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 6fdca2d..4981ebc 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Modo de devolución de chamadas de emerxencia"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Conexión de datos desactivada"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Sen conexión de datos ata: <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">O teléfono estará no modo de devolución de chamada de emerxencia durante <xliff:g id="COUNT_1">%s</xliff:g> minutos. Mentres se atope neste modo, non se poderá usar ningunha aplicación que utilice unha conexión de datos. Queres saír agora?</item>
-      <item quantity="one">O teléfono estará no modo de devolución de chamada de emerxencia durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. Mentres se atope neste modo, non se poderá usar ningunha aplicación que utilice unha conexión de datos. Queres saír agora?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">A acción seleccionada non está dispoñible durante o modo de devolución de chamadas de emerxencia. O teléfono estará neste modo durante <xliff:g id="COUNT_1">%s</xliff:g> minutos. Queres saír agora?</item>
-      <item quantity="one">A acción seleccionada non está dispoñible durante o modo de devolución de chamadas de emerxencia. O teléfono estará neste modo durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. Queres saír agora?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{O teléfono estará en modo de devolución de chamada de emerxencia durante un minuto. Mentres está neste modo, non se poden utilizar aplicacións que usen conexión de datos. Queres saír agora?}other{O teléfono estará en modo de devolución de chamada de emerxencia durante %s minutos. Mentres está neste modo, non se poden utilizar aplicacións que usen conexión de datos. Queres saír agora?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{A acción seleccionada non está dispoñible durante o modo de devolución de chamada de emerxencia. O teléfono estará neste modo durante un minuto. Queres saír agora?}other{A acción seleccionada non está dispoñible durante o modo de devolución de chamada de emerxencia. O teléfono estará neste modo durante %s minutos. Queres saír agora?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"A acción seleccionada non está dispoñible durante as chamadas de emerxencia."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Saíndo do modo de devolución de chamadas de emerxencia"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Si"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{O teléfono estará no modo de devolución de chamada de emerxencia durante un minuto.\nQueres saír agora?}other{O teléfono estará no modo de devolución de chamada de emerxencia durante %s minutos.\nQueres saír agora?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accesibilidade"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Chamada por wifi de"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Chamada wifi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Toca de novo para abrir"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Produciuse un erro durante a descodificación da mensaxe."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"A tarxeta SIM activou o teu servizo e actualizou as funcións de itinerancia do teléfono."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Hai moitas chamadas activas. Finaliza as chamadas existentes ou combínaas antes de facer unha nova."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Non podes facer unha chamada porque xa hai outra en curso."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Non podes chamar porque te están chamando nestes momentos. Para poder facer unha chamada, primeiro tes que responder á outra ou rexeitala."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Non podes realizar unha chamada porque se desactivou esa función a través da propiedade do sistema ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Non podes realizar unha chamada porque xa hai dúas en curso. Para poder chamar, desconecta unha das que están en curso ou combínaas nunha conferencia."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Non podes facer unha chamada porque xa hai dúas en curso. Para poder facer unha chamada nova, desconecta unha das dúas ou combínaas nunha conferencia."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Para usar <xliff:g id="SUPP_SERVICE">%s</xliff:g>, asegúrate de que os datos móbiles 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" msgid="670342104569972327">"Para usar <xliff:g id="SUPP_SERVICE">%s</xliff:g>, asegúrate de que os datos móbiles e a itinerancia de datos 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_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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Ignorar tipo de rede:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC dispoñible:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR con restricións:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR dispoñible:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Estado de NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC dispoñible (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR restrinxido (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR dispoñible (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Estado de NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frecuencia de NR:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Identificador do dereito a usar chamadas por wifi:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Actualizar"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Actualizar"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"O teu sinal de Bluetooth é feble. Proba a cambiar ao altofalante."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Notificación sobre a calidade da chamada"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Contas SIP obsoletas"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 454dc44..1ad1a28 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">ફોન <xliff:g id="COUNT_1">%s</xliff:g> મિનિટ સુધી કટોકટી કૉલબેક મોડમાં રહેશે. આ મોડમાં હોય ત્યારે ડેટા કનેક્શનનો ઉપયોગ કરતી કોઈપણ એપ્લિકેશન્સનો ઉપયોગ થઈ શકશે નહીં. શું તમે હમણાં બહાર નીકળવા માગો છો?</item>
-      <item quantity="other">ફોન <xliff:g id="COUNT_1">%s</xliff:g> મિનિટ સુધી કટોકટી કૉલબેક મોડમાં રહેશે. આ મોડમાં હોય ત્યારે ડેટા કનેક્શનનો ઉપયોગ કરતી કોઈપણ એપ્લિકેશન્સનો ઉપયોગ થઈ શકશે નહીં. શું તમે હમણાં બહાર નીકળવા માગો છો?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">કટોકટી કૉલબેક મોડમાં હોય ત્યારે પસંદ કરેલ ક્રિયા ઉપલબ્ધ રહેતી નથી. ફોન <xliff:g id="COUNT_1">%s</xliff:g> મિનિટ સુધી આ મોડમાં રહેશે. શું તમે હમણાં બહાર નીકળવા માગો છો?</item>
-      <item quantity="other">કટોકટી કૉલબેક મોડમાં હોય ત્યારે પસંદ કરેલ ક્રિયા ઉપલબ્ધ રહેતી નથી. ફોન <xliff:g id="COUNT_1">%s</xliff:g> મિનિટ સુધી આ મોડમાં રહેશે. શું તમે હમણાં બહાર નીકળવા માગો છો?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"કટોકટી કૉલમાં હોય ત્યારે પસંદ કરેલ ક્રિયા ઉપલબ્ધ રહેતી નથી."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"કટોકટી કૉલબેક મોડમાંથી બહાર નીકળે છે"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"હા"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"ઍક્સેસિબિલિટી"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"આમના તરફથી Wi-Fi કૉલ"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi કૉલ"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ખોલવા માટે ફરીથી ટૅપ કરો"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"કૉલ કરી શકાતો નથી કારણ કે બીજો આઉટગોઇંગ કૉલ પહેલાંથી ડાયલ કરવામાં આવી રહ્યો છે."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"કૉલ કરી શકાતો નથી કારણ કે ઇનકમિંગ કૉલનો જવાબ આપવામાં આવી રહ્યો નથી. નવો કૉલ કરતા પૂર્વે ઇનકમિંગ કૉલનો જવાબ આપો અથવા નકારો."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"કૉલ કરી શકાતો નથી કેમકે કૉલિંગની સુવિધા ro.telephony.disable-call સિસ્ટમ પ્રોપર્ટીનો ઉપયોગ કરીને બંધ કરવામાં આવી છે."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"કૉલ કરી શકાતો નથી કારણ કે બે કૉલ પહેલાંથી ચાલુ છે. નવો કૉલ કરતા પૂર્વે એક કૉલને ડિસ્કનેક્ટ કરો અથવા તેમને કોન્ફરન્સ કૉલમાં મર્જ કરો."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"કૉલ કરી શકાતો નથી, કારણ કે બે કૉલ પહેલાંથી ચાલુ છે. નવો કૉલ કરતા પહેલાં તેમાંથી એક કૉલને ડિસ્કનેક્ટ કરો અથવા તેને કૉન્ફરન્સમાં મર્જ કરો."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>નો ઉપયોગ કરવા માટે, મોબાઇલ ડેટા ચાલુ હોવાની ખાતરી કરો. તમે આને મોબાઇલ નેટવર્ક સેટિંગમાં બદલી શકો છો."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>નો ઉપયોગ કરવા માટે, મોબાઇલ ડેટા અને ડેટા રોમિંગ ચાલુ હોવાની ખાતરી કરો. તમે આને મોબાઇલ નેટવર્ક સેટિંગમાં બદલી શકો છો."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"નેટવર્કનો પ્રકાર ઓવરરાઇડ કરો:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC ઉપલબ્ધ:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR પ્રતિબંધિત:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR ઉપલબ્ધ:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR સ્ટેટસ:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC ઉપલબ્ધ (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR પ્રતિબંધિત (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR ઉપલબ્ધ (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR સ્થિતિ (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR આવર્તન:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"રેડિયો બૅન્ડ મોડ સેટ કરો"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"બૅન્ડની સૂચિ લોડ કરી રહ્યું છે…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC અધિકાર ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"અપડેટ કરો"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"રિફ્રેશ કરો"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"તમારા બ્લૂટૂથનું સિગ્નલ નબળું છે. સ્પીકરફોન પર સ્વિચ કરવાનો પ્રયાસ કરો."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"કૉલની ક્વૉલિટી માટે નોટિફિકેશન"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"ટાળવામાં આવેલા SIP એકાઉન્ટ"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 24399f2..723d94d 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">फ़ोन <xliff:g id="COUNT_1">%s</xliff:g> मिनट तक आपातकालीन कॉलबैक मोड में रहेगा. इस मोड में रहने पर डेटा कनेक्‍शन का उपयोग करने वाले किसी भी ऐप्‍लिकेशन का उपयोग नहीं किया जा सकता. क्‍या आप अभी बाहर निकलना चाहते हैं?</item>
-      <item quantity="other">फ़ोन <xliff:g id="COUNT_1">%s</xliff:g> मिनट तक आपातकालीन कॉलबैक मोड में रहेगा. इस मोड में रहने पर डेटा कनेक्‍शन का उपयोग करने वाले किसी भी ऐप्‍लिकेशन का उपयोग नहीं किया जा सकता. क्‍या आप अभी बाहर निकलना चाहते हैं?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">आपातकालीन कॉलबैक मोड में रहने पर चयनित कार्रवाई उपलब्‍ध नहीं होती. फ़ोन <xliff:g id="COUNT_1">%s</xliff:g> मिनट तक इस मोड में रहेगा. क्‍या आप अभी बाहर निकलना चाहते हैं?</item>
-      <item quantity="other">आपातकालीन कॉलबैक मोड में रहने पर चयनित कार्रवाई उपलब्‍ध नहीं होती. फ़ोन <xliff:g id="COUNT_1">%s</xliff:g> मिनट तक इस मोड में रहेगा. क्‍या आप अभी बाहर निकलना चाहते हैं?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"आपातकालीन कॉल के समय चयनित क्रिया उपलब्ध नहीं होती है."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"आपातकालीन कॉलबैक मोड से बाहर निकल रहा है"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"हां"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"सुलभता"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"इससे वाई-फ़ाई कॉल"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"वाई-फ़ाई कॉल"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"खोलने के लिए फिर से टैप करें"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"संदेश डीकोड करते समय कोई गड़बड़ी हुई थी."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"सिम कार्ड द्वारा आपकी सेवा को सक्रिय किया गया है और आपके फ़ोन की रोमिंग क्षमताओं को अपडेट किया गया है."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"बहुत ज़्यादा कॉल सक्रिय हैं. नया कॉल करने से पहले कृपया मौजूदा कॉल खत्म करें या उन्हें मिला दें."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"कॉल नहीं किया जा सकता, क्योंकि कोई दूसरा किया गया कॉल (आउटगोइंग) पहले से ही डायल हो रहा है."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"कॉल नहीं किया जा सकता, क्योंकि एक आने वाले कॉल (इनकमिंग) का जवाब नहीं दिया जा रहा है. नया कॉल करने से पहले आने वाले कॉल (इनकमिंग) का जवाब दें या उसे अस्वीकार करें."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"कॉल नहीं किया जा सकता क्योंकि कॉलिंग की सुविधा को ROS.टेलीफ़ोनी की कॉल बंद करें सिस्टम प्रॉपर्टी का उपयोग करके बंद कर दिया गया है."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"कॉल नहीं किया जा सकता, क्योंकि पहले से ही दो कॉल जारी हैं. नया कॉल करने से पहले उनमें से किसी एक कॉल को बंद करें या उन्हें कॉन्फ़्रेंस में मर्ज करें."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"कॉल नहीं किया जा सका, क्योंकि पहले से ही दो कॉल जारी हैं. नया कॉल करने से पहले, उनमें से किसी एक कॉल को बंद करें या उन्हें कॉन्फ़्रेंस कॉल में मर्ज करें."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> का उपयोग करने के लिए, पक्का करें कि मोबाइल डेटा चालू है. आप मोबाइल नेटवर्क सेटिंग में जाकर इसे बदल सकते हैं."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> का उपयोग करने के लिए पक्का करें कि मोबाइल डेटा और डेटा रोमिंग चालू हैं. आप मोबाइल नेटवर्क सेटिंग में जाकर इन्हें बदल सकते हैं."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"नेटवर्क टाइप बदलें:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC उपलब्ध है:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR प्रतिबंधित है:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR उपलब्ध है:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR की स्थिति:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC उपलब्ध है (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR प्रतिबंधित है (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR उपलब्ध है (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR की स्थिति (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR की फ़्रीक्वेंसी:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"\'रेडियो बैंड\' मोड सेट करें"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"बैंड सूची लोड की जा रही है…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC सदस्यता आईडी:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"अपडेट करें"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"रीफ़्रेश करें"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"आपका ब्लूटूथ सिग्नल कमज़ोर है. स्पीकरफ़ोन की सुविधा का इस्तेमाल करें."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"कॉल की क्वालिटी की सूचना"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"ऐसे SIP खाते जिनका समर्थन रोक दिया गया है"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index b9a8d0b..909957d 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -637,16 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Način hitnog povratnog poziva"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Onemogućena je podatkovna mreža"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Nema podatkovne veze do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Telefon će biti u načinu hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minutu. U tom se načinu ne mogu upotrebljavati aplikacije koje upotrebljavaju podatkovnu vezu. Želite li odmah zatvoriti taj način?</item>
-      <item quantity="few">Telefon će biti u načinu hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minute. U tom se načinu ne mogu upotrebljavati aplikacije koje upotrebljavaju podatkovnu vezu. Želite li odmah zatvoriti taj način?</item>
-      <item quantity="other">Telefon će biti u načinu hitnog povratnog poziva <xliff:g id="COUNT_1">%s</xliff:g> minuta. U tom se načinu ne mogu upotrebljavati aplikacije koje upotrebljavaju podatkovnu vezu. Želite li odmah zatvoriti taj način?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Odabrana radnja nije dostupna u načinu hitnog povratnog poziva. Telefon će u tom načinu biti <xliff:g id="COUNT_1">%s</xliff:g> minutu. Želite li odmah zatvoriti taj način?</item>
-      <item quantity="few">Odabrana radnja nije dostupna u načinu hitnog povratnog poziva. Telefon će u tom načinu biti <xliff:g id="COUNT_1">%s</xliff:g> minute. Želite li odmah zatvoriti taj način?</item>
-      <item quantity="other">Odabrana radnja nije dostupna u načinu hitnog povratnog poziva. Telefon će u tom načinu biti <xliff:g id="COUNT_1">%s</xliff:g> minuta. Želite li odmah zatvoriti taj način?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Odabrana radnja nije dostupna tijekom hitnog poziva."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Izlaz iz načina hitnog povratnog poziva"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
@@ -654,11 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -686,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Pristupačnost"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi poziv s broja"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi poziv"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Dodirnite opet za otvaranje"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Došlo je do pogreške prilikom dekodiranja poruke."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM kartica aktivirala je vašu uslugu i ažurirala mogućnosti telefona za roaming."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Postoji previše aktivnih poziva. Prekinite ili spojite postojeće pozive prije uspostavljanja novog poziva."</string>
@@ -830,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Nije moguće uputiti poziv jer se odlazni poziv već upućuje."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Poziv se ne može uputiti jer postoji neodgovoreni dolazni poziv. Odgovorite ili odbijte dolazni poziv prije upućivanja novog poziva."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Poziv se ne može uputiti jer je pozivanje onemogućeno pomoću entiteta sustava ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Poziv se ne može uputiti jer su već dva poziva u tijeku. Prekinite jedan poziv ili spojite dva poziva u konferencijski poziv prije nego što uputite drugi poziv."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Poziv se ne može uputiti jer su već dva poziva u tijeku. Prekinite jedan poziv ili spojite dva poziva u konferencijski poziv prije nego što uputite drugi poziv."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Da biste koristili uslugu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, provjerite jesu li vaši mobilni podaci uključeni. Tu opciju možete promijeniti u postavkama mobilne mreže."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Da biste koristili uslugu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, provjerite jesu li mobilni podaci i roaming podataka uključeni. Tu opciju možete promijeniti u postavkama mobilne mreže."</string>
     <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>
@@ -902,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Nadjačavanje vrste 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>
@@ -913,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"Dostupno za EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"Ograničeno za DCNR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"Dostupno za NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Stanje NR-a:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC dostupan (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"Ograničeni DCNR (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR dostupan (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Stanje NR-a (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frekvencija NR-a:"</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>
@@ -927,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID prava na WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Ažuriranje"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Osvježavanje"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Signal Bluetootha je slab. Pokušajte se prebaciti na zvučnik."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Obavijest o kvaliteti poziva"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Obustavljeni SIP računi"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 80d1865..47091eb 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Segélykérő visszahívása mód"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Adatkapcsolat letiltva"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Nincs adatkapcsolat eddig: <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">A telefon <xliff:g id="COUNT_1">%s</xliff:g> percig lesz Segélykérő visszahívása módban. Ebben az üzemmódban nem használhatók olyan alkalmazások, amelyeknél adatkapcsolatra van szükség. Szeretne kilépni most?</item>
-      <item quantity="one">A telefon <xliff:g id="COUNT_0">%s</xliff:g> percig lesz Segélykérő visszahívása módban. Ebben az üzemmódban nem használhatók olyan alkalmazások, amelyeknél adatkapcsolatra van szükség. Szeretne kilépni most?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">A választott művelet nem érhető el Segélykérő visszahívása módban. A telefon <xliff:g id="COUNT_1">%s</xliff:g> percig lesz ebben a módban. Szeretne kilépni most?</item>
-      <item quantity="one">A választott művelet nem érhető el Segélykérő visszahívása módban. A telefon <xliff:g id="COUNT_0">%s</xliff:g> percig lesz ebben a módban. Szeretne kilépni most?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{A telefon egy percig Sürgősségi visszahívás módban lesz. Ebben az üzemmódban nem használhatók az adatkapcsolatot igénylő alkalmazások. Kilép?}other{A telefon %s percig Sürgősségi visszahívás módban lesz. Ebben az üzemmódban nem használhatók az adatkapcsolatot igénylő alkalmazások. Kilép?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{A kiválasztott művelet nem áll rendelkezésre Sürgősségi visszahívás módban. A telefon egy percig lesz ebben a módban. Kilép?}other{A kiválasztott művelet nem áll rendelkezésre Sürgősségi visszahívás módban. A telefon %s percig lesz ebben a módban. Kilép?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"A választott művelet nem érhető el segélyhívás során."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Kilépés a Sürgősségi visszahívás módból"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Igen"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{A telefon egy percig sürgősségi visszahívás módban lesz.\nKilép?}other{A telefon %s percig sürgősségi visszahívás módban lesz.\nKilép?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Kisegítő lehetőségek"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi-hívás tőle:"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi-hívás"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Koppintson rá ismét a megnyitáshoz"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Hiba történt az üzenet dekódolása közben."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Egy SIM kártya aktiválta a szolgáltatást, valamint frissítette a telefon barangolási képességeit."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Túl sok aktív hívás van. Új hívás indítása előtt fejezzen be vagy vonjon össze meglévő hívásokat."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Nem kezdeményezhet hívást, mert folyamatban van egy másik kimenő hívás indítása."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Nem kezdeményezhet hívást, mert folyamatban van egy megválaszolatlan bejövő hívás. Mielőtt új hívást indítana, vegye fel, vagy utasítsa el a bejövő hívást."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Nem kezdeményezhet hívást, mivel a hívás le van tiltva ro.telephony.disable-call rendszertulajdonsággal."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Nem kezdeményezhet hívást, mivel már két hívás van folyamatban. Mielőtt új hívást indítana, tegye le az egyiket, vagy egyesítse őket egy konferenciahívásban."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Nem kezdeményezhet hívást, mert már két hívás van folyamatban. Mielőtt új hívást indítana, tegye le az egyiket, vagy egyesítse őket egy konferenciahívásban."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"A(z) <xliff:g id="SUPP_SERVICE">%s</xliff:g> használatához győződjön meg róla, hogy a mobiladat-kapcsolat be van kapcsolva. Ezt a mobilhálózat beállításainál módosíthatja."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"A(z) <xliff:g id="SUPP_SERVICE">%s</xliff:g> használatához győződjön meg róla, hogy a mobiladat-kapcsolat és az adatbarangolás be van kapcsolva. Ezt a mobilhálózat beállításainál módosíthatja."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Hálózattípus felülbírálata:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC rendelkezésre áll:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR korlátozva:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR rendelkezésre áll:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR-állapot:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC rendelkezésre áll (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR korlátozva (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR rendelkezésre áll (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR állapota (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR-frekvencia:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC-jogosultság azonosítója:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Módosítás"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Frissítés"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Gyenge a Bluetooth-jel. Próbáljon kihangosítóra váltani."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Értesítés a hívás minőségéről"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Elavult SIP-fiókok"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 7ccb20d..0318c9d 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Հեռախոսը գտնվելու է Արտակարգ իրավիճակների հետզանգի ռեժիմում <xliff:g id="COUNT_1">%s</xliff:g> րոպե: Այդ ռեժիմում տվյալների միացում պահանջող հավելվածները չեն կարող օգտագործվել: Ցանկանո՞ւմ եք դուրս գալ հիմա:</item>
-      <item quantity="other">Հեռախոսը գտնվելու է Արտակարգ իրավիճակների հետզանգի ռեժիմում <xliff:g id="COUNT_1">%s</xliff:g> րոպե: Այդ ռեժիմում տվյալների միացում պահանջող հավելվածները չեն կարող օգտագործվել: Ցանկանո՞ւմ եք դուրս գալ հիմա:</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Նշված գործողությունն Արտակարգ իրավիճակների հետզանգի ռեժիմում հասանելի չէ: Հեռախոսը գտնվելու է այս ռեժիմում <xliff:g id="COUNT_1">%s</xliff:g> րոպե: Ցանկանո՞ւմ եք դուրս գալ հիմա:</item>
-      <item quantity="other">Նշված գործողությունն Արտակարգ իրավիճակների հետզանգի ռեժիմում հասանելի չէ: Հեռախոսը գտնվելու է այս ռեժիմում <xliff:g id="COUNT_1">%s</xliff:g> րոպե: Ցանկանո՞ւմ եք դուրս գալ հիմա:</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Ընտրված գործողությունը հասանելի չէ շտապ կանչի ժամանակ:"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Դուրս է գալիս արտակարգ իրավիճակների հետզանգի ռեժիմից"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Այո"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Հատուկ գործառույթներ"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi զանգ այս օգտվողից՝"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Զանգ Wi-Fi-ի միջոցով"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Կրկին հպեք՝ բացելու համար"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Հնարավոր չէ զանգել, քանի որ տվյալ պահին մեկ այլ ելքային զանգ է կատարվում:"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Հնարավոր չէ զանգել, քանի որ անպատասխան մուտքային զանգ կա: Նախքան նոր զանգ կատարելը պատասխանեք մուտքային զանգին կամ մերժեք այն:"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Հնարավոր չէ զանգել, քանի որ զանգելու գործառույթը զանգերի համակարգի ro.telephony.disable կարգավորման միջոցով կասեցվել է:"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Հնարավոր չէ զանգել, քանի որ արդեն երկու ընթացիկ զանգ կա: Նախքան նոր զանգ կատարելը ավարտեք զանգերից մեկը կամ միավորեք դրանք մեկ խմբային զանգում:"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Հնարավոր չէ զանգել, քանի որ արդեն երկու ընթացիկ զանգ կա։ Նախքան նոր զանգ կատարելը ավարտեք զանգերից մեկը կամ միավորեք դրանք մեկ խմբային զանգում։"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ծառայությունից օգտվելու համար համոզվեք, որ բջջային ինտերնետը միացված է: Սա կարող եք փոխել բջջային ցանցի կարգավորումներում:"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ծառայությունից օգտվելու համար համոզվեք, որ բջջային ինտերնետը և ինտերնետը ռոումինգում միացված են: Սրանք կարող եք փոխել բջջային ցանցի կարգավորումներում:"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Փոխարինման ցանցի տեսակը՝"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC-ն հասանելի է՝"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR-ը սահմանափակված է՝"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR-ը հասանելի է՝"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR-ի կարգավիճակը՝"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC հասանելի (NSA)՝"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR սահմանափակ (NSA)՝"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR հասանելի (NSA)՝"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR կարգավիճակը (NSA)՝"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR-ի հաճախականությունը՝"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Կարգավորել հաճախությունների շերտի ռեժիմը"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Շերտերի ցուցակը բեռնվում է…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC թույլտվության ID՝"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Թարմացնել"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Թարմացնել"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Ձեր Bluetooth-ի ազդանշանը թույլ է։ Փորձեք միացնել բարձրախոսը։"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Զանգի որակի մասին ծանուցում"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Հնացած SIP հաշիվներ"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index b36e02f..a5da578 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Mode Telepon Balik Darurat"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Sambungan data dinonaktifkan"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Tidak ada koneksi data sampai <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Ponsel ini akan berada dalam mode Telepon Balik Darurat selama <xliff:g id="COUNT_1">%s</xliff:g> menit. Saat dalam mode ini, aplikasi yang menggunakan sambungan data tidak dapat digunakan. Ingin keluar sekarang?</item>
-      <item quantity="one">Ponsel ini akan berada dalam mode Telepon Balik Darurat selama <xliff:g id="COUNT_0">%s</xliff:g> menit. Saat dalam mode ini, aplikasi yang menggunakan sambungan data tidak dapat digunakan. Ingin keluar sekarang?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Tindakan yang dipilih tidak tersedia saat dalam mode Telepon Balik Darurat. Ponsel ini akan berada dalam mode ini selama <xliff:g id="COUNT_1">%s</xliff:g> menit. Ingin keluar sekarang?</item>
-      <item quantity="one">Tindakan yang dipilih tidak tersedia saat dalam mode Telepon Balik Darurat. Ponsel ini akan berada dalam mode ini selama <xliff:g id="COUNT_0">%s</xliff:g> menit. Ingin keluar sekarang?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Ponsel akan berada dalam mode Telepon Balik Darurat selama satu menit. Selama dalam mode ini, aplikasi yang menggunakan koneksi data tidak dapat digunakan. Apakah Anda ingin keluar sekarang?}other{Ponsel akan berada dalam mode Telepon Balik Darurat selama %s menit. Selama dalam mode ini, aplikasi yang menggunakan koneksi data tidak dapat digunakan. Apakah Anda ingin keluar sekarang?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Tindakan yang dipilih tidak tersedia saat berada dalam mode Telepon Balik Darurat. Ponsel akan berada dalam mode ini selama satu menit. Apakah Anda ingin keluar sekarang?}other{Tindakan yang dipilih tidak tersedia saat berada dalam mode Telepon Balik Darurat. Ponsel akan berada dalam mode ini selama %s menit. Apakah Anda ingin keluar sekarang?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Tindakan yang dipilih tidak tersedia ketika dalam panggilan darurat."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Keluar dari mode Telepon Balik Darurat"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ya"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Ponsel akan berada dalam mode telepon balik darurat selama satu menit.\nApakah Anda ingin keluar sekarang?}other{Ponsel akan berada dalam mode telepon balik darurat selama %s menit.\nApakah Anda ingin keluar sekarang?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Aksesibilitas"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Panggilan Wi-Fi dari"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Panggilan Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Ketuk lagi untuk membuka"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Terjadi kesalahan saat mendekode pesan."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Kartu SIM telah mengaktifkan layanan dan memperbarui kemampuan roaming ponsel."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Ada terlalu banyak panggilan aktif. Akhiri atau gabungkan panggilan yang ada sebelum melakukan panggilan baru."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Tidak dapat melakukan panggilan karena panggilan keluar lainnya sedang berlangsung."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Tidak dapat melakukan panggilan karena ada panggilan masuk yang belum terjawab. Jawab atau tolak panggilan masuk sebelum melakukan panggilan."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Tidak dapat melakukan panggilan karena panggilan telah dinonaktifkan menggunakan properti sistem ro.telephony.disable-call"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Tidak dapat melakukan panggilan karena ada dua panggilan yang sedang berlangsung. Putuskan salah satu panggilan atau gabungkan keduanya menjadi konferensi sebelum melakukan panggilan baru."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Tidak dapat melakukan panggilan karena ada dua panggilan yang sedang berlangsung. Putuskan salah satu panggilan atau gabungkan keduanya menjadi satu konferensi sebelum melakukan panggilan baru."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%s</xliff:g>, pastikan kuota internet diaktifkan. Anda dapat mengubahnya di setelan jaringan seluler."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%s</xliff:g>, pastikan kuota internet dan roaming data diaktifkan. Anda dapat mengubahnya di setelan jaringan seluler."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Ganti Jenis Jaringan:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC Tersedia:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"Dibatasi DCNR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR Tersedia:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Status NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC Tersedia (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR Dibatasi (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR Tersedia (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Status NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frekuensi NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Setel Mode Band Radio"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Memuat Daftar Band…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID Hak WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Perbarui"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Muat ulang"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Sinyal bluetooth Anda lemah. Coba beralih ke speaker ponsel."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Notifikasi Kualitas Panggilan"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Akun SIP yang tidak digunakan lagi"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index b44afa2..45726af 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Stilling fyrir svarhringingu neyðarsímtala"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Slökkt á gagnatengingu"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Engin gagnatenging þangað til <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Síminn verður í stillingu fyrir svarhringingu neyðarsímtala í <xliff:g id="COUNT_1">%s</xliff:g> mínútu. Þegar hann er í þessari stillingu er ekki hægt að nota nein forrit sem krefjast gagnatengingar. Viltu 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. Þegar hann er í þessari stillingu er ekki hægt að nota nein forrit sem krefjast gagnatengingar. Viltu hætta núna?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Þessi aðgerð er ekki í boði þegar síminn er í stillingu fyrir svarhringingu neyðarsímtala. Síminn verður í þessari stillingu í <xliff:g id="COUNT_1">%s</xliff:g> mínútu. Viltu hætta núna?</item>
-      <item quantity="other">Þessi aðgerð er ekki í boði þegar síminn er í stillingu fyrir svarhringingu neyðarsímtala. Síminn verður í þessari stillingu í <xliff:g id="COUNT_1">%s</xliff:g> mínútur. Viltu hætta núna?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Þessi aðgerð er ekki í boði í neyðarsímtali."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Fer úr stillingu fyrir svarhringingu neyðarsímtala"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Já"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Aðgengi"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi símtal frá"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi símtal"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Ýttu aftur til að opna"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Villa kom upp við að afkóða skeytið."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM-kort hefur virkjað þjónustuna þína og uppfært reikigetu símans."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Of mörg símtöl eru virk. Ljúktu eða sameinaðu fyrirliggjandi símtöl áður en þú hringir nýtt."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Ekki er hægt að hringja símtal þar sem þegar er verið að hringja annað símtal."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Ekki er hægt að hringja símtal þar sem ósvarað símtal er að berast. Svaraðu eða hafnaðu símtalinu áður en þú hringir nýtt símtal."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Ekki er hægt að hringja símtal þar sem símtöl hafa verið gerð óvirk með því að nota kerfiseiginleikann ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Ekki er hægt að hringja símtal þar sem þegar eru tvö símtöl í gangi. Aftengdu annað símtalið eða sameinaðu þau í símafund áður en þú hringir nýtt símtal."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Ekki er hægt að hringja símtal vegna þess að þegar eru tvö símtöl í gangi. Aftengdu annað símtalið eða sameinaðu þau í símafund áður en þú hringir nýtt símtal."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Til að nota <xliff:g id="SUPP_SERVICE">%s</xliff:g> skaltu ganga úr skugga um að kveikt sé á farsímagögnum. Þú getur breytt þessu í stillingum farsímakerfis."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Til að nota <xliff:g id="SUPP_SERVICE">%s</xliff:g> skaltu ganga úr skugga um að kveikt sé á farsímagögnum og gagnareiki. Þú getur breytt þessu í stillingum farsímakerfis."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Hnekkja tegund netkerfis:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC tiltækt:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR takmarkað:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR tiltækt:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR staða:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC tiltækt (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR takmarkað (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR tiltækt (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR staða (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR tíðni:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Auðkenni WFC-réttinda:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Uppfæra"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Endurnýja"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth-tengingin er léleg. Prófaðu að nota hátalara í staðinn."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Tilkynning um símtalsgæði"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Úreldir SIP-reikningar"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index fce51d4..6a79566 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Modalità di richiamata di emergenza"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Connessione dati disabilitata"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Nessuna connessione dati fino alle ore <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Il telefono sarà in modalità Richiamata di emergenza per <xliff:g id="COUNT_1">%s</xliff:g> minuti. In questa modalità non è possibile utilizzare applicazioni che impiegano una connessione dati. Vuoi uscire ora?</item>
-      <item quantity="one">Il telefono sarà in modalità Richiamata di emergenza per <xliff:g id="COUNT_0">%s</xliff:g> minuto. In questa modalità non è possibile utilizzare app che impiegano una connessione dati. Vuoi uscire ora?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">L\'azione selezionata non è disponibile in modalità Richiamata di emergenza. Il telefono sarà in questa modalità per <xliff:g id="COUNT_1">%s</xliff:g> minuti. Vuoi uscire ora?</item>
-      <item quantity="one">L\'azione selezionata non è disponibile in modalità Richiamata di emergenza. Il telefono sarà in questa modalità per <xliff:g id="COUNT_0">%s</xliff:g> minuto. Vuoi uscire ora?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Il telefono sarà in modalità Richiamata di emergenza per un minuto. In questa modalità non è possibile utilizzare app che impiegano una connessione dati. Vuoi uscire ora?}other{Il telefono sarà in modalità Richiamata di emergenza per %s minuti. In questa modalità non è possibile utilizzare app che impiegano una connessione dati. Vuoi uscire ora?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{L\'azione selezionata non è disponibile in modalità Richiamata di emergenza. Il telefono sarà in questa modalità per un minuto. Vuoi uscire ora?}other{L\'azione selezionata non è disponibile in modalità Richiamata di emergenza. Il telefono sarà in questa modalità per %s minuti. Vuoi uscire ora?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"L\'azione selezionata non è disponibile in modalità di chiamata di emergenza."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Uscita dalla modalità di richiamata di emergenza"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sì"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Il telefono sarà in modalità di richiamata di emergenza per un minuto.\nVuoi uscire ora?}other{Il telefono sarà in modalità di richiamata di emergenza per %s minuti.\nVuoi uscire ora?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accessibilità"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Chiamata Wi-Fi da"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Chiamata Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tocca di nuovo per aprire"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Si è verificato un errore durante la decodifica del messaggio."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Una scheda SIM ha attivato il tuo servizio e ha aggiornato le funzionalità di roaming del telefono."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Ci sono troppe chiamate attive. Termina o unisci le chiamate esistenti prima di effettuarne una nuova."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Impossibile effettuare una chiamata perché è già presente un\'altra chiamata in uscita in composizione."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Impossibile effettuare una chiamata perché è presente una chiamata in arrivo senza risposta. Rispondi o rifiuta la chiamata in arrivo prima di effettuare una nuova chiamata."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Impossibile effettuare una chiamata perché le chiamate sono state disattivate utilizzando la proprietà di sistema ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Impossibile effettuare una chiamata perché sono già presenti due chiamate in corso. Unisci le chiamate in una conferenza o scollegane una prima di effettuare una nuova chiamata."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Impossibile effettuare una chiamata perché due chiamate sono già in corso. Unisci le chiamate in una conferenza o scollegane una prima di effettuare una nuova chiamata."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Per utilizzare <xliff:g id="SUPP_SERVICE">%s</xliff:g>, assicurati che i dati mobili siano attivi. Puoi modificare questa opzione nelle impostazioni della rete mobile."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Per utilizzare <xliff:g id="SUPP_SERVICE">%s</xliff:g>, assicurati che i dati mobili e il roaming dei dati siano attivi. Puoi modificare queste opzioni nelle impostazioni della rete mobile."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Override del tipo di rete:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC disponibile:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR con limitazioni:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR disponibile:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Stato NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC disponibile (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR con limitazioni (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR disponibile (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Stato NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frequenza NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Imposta modalità banda radio"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Caricamento elenco bande…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID diritto per le chiamate Wi-Fi:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Aggiorna"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Aggiorna"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Il segnale del Bluetooth è debole. Prova a passare al vivavoce."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Notifica sulla qualità della chiamata"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Account SIP deprecati"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 5fbf20d..3626c66 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -637,18 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="two">הטלפון יהיה במצב חירום של התקשרות חזרה למשך <xliff:g id="COUNT_1">%s</xliff:g> דקות. בזמן שהטלפון במצב הזה, לא ניתן להשתמש באפליקציות הזקוקות לחבילת גלישה. האם ברצונך לצאת כעת?</item>
-      <item quantity="many">הטלפון יהיה במצב חירום של התקשרות חזרה למשך <xliff:g id="COUNT_1">%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="two">הפעולה הנבחרת אינה זמינה במצב חירום של התקשרות חזרה. הטלפון יהיה במצב זה למשך <xliff:g id="COUNT_1">%s</xliff:g> דקות. האם ברצונך לצאת כעת?</item>
-      <item quantity="many">הפעולה הנבחרת אינה זמינה במצב חירום של התקשרות חזרה. הטלפון יהיה במצב זה למשך <xliff:g id="COUNT_1">%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>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"הפעולה שנבחרה אינה זמינה במהלך שיחת חירום."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"יציאה ממצב התקשרות חזרה בחירום"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"כן"</string>
@@ -656,12 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -689,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"נגישות"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"‏שיחת Wi-Fi מאת"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"‏שיחת Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"יש להקיש שוב כדי לפתוח"</string>
     <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>
@@ -833,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"אי אפשר להתקשר כי יש שיחה יוצאת אחרת."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"אי אפשר להתקשר כי יש שיחה נכנסת אחרת. צריך לענות לשיחה או לדחות אותה ורק אז לנסות להתקשר למספר אחר."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"‏אי אפשר להתקשר כי השיחות הושבתו באמצעות מאפיין המערכת ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"אי אפשר להתקשר כי כבר יש שתי שיחות פעילות. צריך לנתק את אחת מהשיחות או למזג אותן לשיחת ועידה ורק אז לנסות להתקשר למספר אחר."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"אי אפשר להתקשר כי כבר יש שתי שיחות פעילות. צריך לנתק את אחת מהשיחות או למזג אותן לשיחת ועידה ורק אז לנסות להתקשר למספר אחר."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"כדי להשתמש בשירות \'<xliff:g id="SUPP_SERVICE">%s</xliff:g>\', צריך לוודא שהחיבור לחבילת הגלישה מופעל. אפשר להפעיל אותו בהגדרות של הרשת הסלולרית."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"כדי להשתמש בשירות \'<xliff:g id="SUPP_SERVICE">%s</xliff:g>\', צריך לוודא שהחיבור לחבילת הגלישה והנדידה מופעלים. אפשר להפעיל אותם בהגדרות של הרשת הסלולרית."</string>
     <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>
@@ -905,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"שינוי מברירת המחדל של סוג הרשת:"</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>
@@ -916,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"‏תומך ב-EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"‏לא תומך ב-5G NR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"‏תומך ב-5G NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"‏מצב 5G NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"‏זמין ל-EN-DC‏ (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"‏מוגבל על ידי DCNR‏ (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"‏זמין ל-NR‏ (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"‏מצב NR‏ (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"‏תדירות 5G NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"הגדרת מצב תדרים של רדיו"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"הטעינה של רשימת התדרים מתבצעת…"</string>
@@ -930,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"‏מזהה הרשאת WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"עדכון"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"רענון"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"‏הקליטה של ה-Bluetooth חלשה. כדאי לעבור לדיבורית."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"התראה על איכות השיחה"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"‏חשבונות SIP שהוצאו משימוש"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 7e62fee..b55c175 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">選択した操作は緊急通報待機モードでは実行できません。スマートフォンはあと<xliff:g id="COUNT_0">%s</xliff:g>分間このモードです。今すぐこのモードを終了しますか？</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{スマートフォンが 1 分間にわたって緊急通報待機モードになります。このモード中はデータ通信を使用するアプリが利用できなくなります。今すぐこの通知画面を終了してもよろしいですか？}other{スマートフォンが %s 分間にわたって緊急通報待機モードになります。このモード中はデータ通信を使用するアプリケーションが利用できなくなります。今すぐこの通知画面を終了してもよろしいですか？}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{選択した操作は緊急通報待機モードでは実行できません。スマートフォンは 1 分間にわたってこのモードになります。今すぐアプリを終了してもよろしいですか？}other{選択した操作は緊急通報待機モードでは実行できません。スマートフォンは %s 分間にわたってこのモードになります。今すぐアプリを終了してもよろしいですか？}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"選択した操作は緊急通報時には実行できません。"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"緊急通報待機モードを終了しています"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"はい"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{スマートフォンが 1 分間にわたって緊急通報待機モードになります。\n今すぐこの通知画面を終了してもよろしいですか？}other{スマートフォンが %s 分間にわたって緊急通報待機モードになります。\n今すぐこの通知画面を終了してもよろしいですか？}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"ユーザー補助機能"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi 通話の着信"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi 通話"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"開くにはもう一度タップしてください"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"すでに別の通話を発信中のため、新しく通話を発信することはできません。"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"通話を着信中のため、新しく通話を発信することはできません。着信中の通話に応答するか、通話を拒否すると、新しく通話を発信できるようになります。"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ro.telephony.disable-call システム プロパティを使用して通話機能が無効に設定されているため、通話を発信することはできません。"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"通話中の電話がすでに 2 件あるため、新しく通話を発信することはできません。通話中の電話のどちらかを終了するか、2 件の通話を統合してグループ通話にすると、新しく通話を発信できるようになります。"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"進行中の通話がすでに 2 件あるため、新しく通話を発信することはできません。進行中の通話のどちらかを終了するか、2 件の通話を統合してグループ通話にすると、新しく通話を発信できるようになります。"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>を利用するには、モバイルデータが ON になっている必要があります。モバイルデータの ON と OFF の切り替えは、モバイル ネットワーク設定で行えます。"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>を利用するには、モバイルデータとデータ ローミングが ON になっている必要があります。これらの ON と OFF の切り替えは、モバイル ネットワーク設定で行えます。"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"優先ネットワークの種類:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC 利用可能:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR 制限あり:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR 利用可能:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR ステータス:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC 利用可能（NSA）:"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR 制限あり（NSA）:"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR 利用可能（NSA）:"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR ステータス（NSA）:"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR 周波数:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"無線バンドモードの設定"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"バンドリストを読み込み中…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC 利用資格 ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"アップデート"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"更新"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth の信号強度が十分ではありません。スピーカーフォンに切り替えてみてください。"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"通話品質に関するお知らせ"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"サポートが終了した SIP アカウント"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index dfd6c9a..94302f9 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one"> შერჩეული აქცია არ არის ხელმისაწვდომი გადაუდებელი დარეკვის რეჟიმში. ტელეფონი იქნება ამ რეჟიმი <xliff:g id="COUNT_0">%s</xliff:g> წუთი. გსურთ ახლა გამოსვლა?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{ტელეფონი გადაუდებელი გადმორეკვის რეჟიმში იქნება ერთი წუთის განმავლობაში. ამ რეჟიმის დროს ვერ გამოიყენებთ აპებს, რომლებიც მობილურ ინტერნეტს იყენებს. გსურთ ახლა გასვლა?}other{ტელეფონი გადაუდებელი გადმორეკვის რეჟიმში იქნება %s წუთის განმავლობაში. ამ რეჟიმის დროს ვერ გამოიყენებთ აპებს, რომლებიც მობილურ ინტერნეტს იყენებს. გსურთ ახლა გასვლა?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{არჩეული მოქმედება მიუწვდომელია გადაუდებელი გადმორეკვის რეჟიმში. ტელეფონი ამ რეჟიმში დარჩება ერთი წუთის განმავლობაში. გსურთ ახლავე გასვლა?}other{არჩეული მოქმედება მიუწვდომელია გადაუდებელი გადმორეკვის რეჟიმში. ტელეფონი ამ რეჟიმში დარჩება %s წუთის განმავლობაში. გსურთ ახლავე გასვლა?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"არჩეული ქმედება მიუწვდომელია გადაუდებელის ზარის რეჟიმში."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"გადაუდებელი გადმორეკვის რეჟიმიდან გამოსვლა"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"დიახ"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{ტელეფონი გადაუდებელი გადმორეკვის რეჟიმში იქნება ერთი წუთის განმავლობაში.\nგსურთ გასვლა ახლავე?}other{ტელეფონი გადაუდებელი გადმორეკვის რეჟიმში იქნება %s წუთის განმავლობაში.\nგსურთ გასვლა ახლავე?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"მარტივი წვდომა"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi ზარი აბონენტისგან"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi ზარი"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"გასახსნელად, შეეხეთ ხელახლა"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"ზარის განხორციელება შეუძლებელია, რადგან სხვა გამავალი ზარი უკვე იკრიფება."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"ზარის განხორციელება შეუძლებელია, რადგან გაქვთ უპასუხო შემომავალი ზარი. უპასუხეთ ან უარყავით შემომავალი ზარი ახალი ზარის განხორციელებამდე."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ზარის განხორციელება შეუძლებელია, რადგან დარეკვა გამორთულია ro.telephony.disable-call სისტემის თვისების გამოყენებით."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"ზარის განხორციელება შეუძლებელია, რადგან უკვე ორი ზარი მიმდინარეობს. ახალი ზარის განსახორციელებლად გათიშეთ ერთ-ერთი ზარი ან გააერთიანეთ ისინი კონფერენციად."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"ზარის განხორციელება შეუძლებელია, რადგან უკვე ორი ზარი მიმდინარეობს. ახალი ზარის განსახორციელებლად გათიშეთ ერთ-ერთი ზარი ან გააერთიანეთ ისინი კონფერენციად."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>-ის გამოსაყენებლად დარწმუნდით, რომ მობილური ინტერნეტი ჩართულია. ეს შეგიძლიათ მობილური ქსელის პარამეტრებში შეცვალოთ."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>-ის გამოსაყენებლად დარწმუნდით, რომ მობილური ინტერნეტი და ინტერნეტის როუმინგი ჩართულია. ეს შეგიძლიათ მობილური ქსელის პარამეტრებში შეცვალოთ."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"ქსელის ტიპის უგულებელყოფა"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC ხელმისაწვდომია:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR შეზღუდულია:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR ხელმისაწვდომია:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR-ის მდგომარეობა:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC ხელმისაწვდომია (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR შეზღუდულია (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR ხელმისაწვდომია (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR-ის მდგომარეობა (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR-ის სიხშირე:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"რადიოდიაპაზონის რეჟიმის დაყენება"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"მიმდინარეობს დიაპაზონთა სიის ჩატვირთვა…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"განახლება"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"განახლება"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"თქვენი Bluetooth სიგნალი სუსტია. სცადეთ სპიკერფონზე გადართვა."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"შეტყობინება ზარის ხარისხის შესახებ"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"მოძველებული SIP ანგარიშები"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index baf170c..eecbd52 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">Таңдалған әрекет жедел кері қоңырау шалу режимінде қол жетімді емес. Телефон осы режимде <xliff:g id="COUNT_0">%s</xliff:g> минут бойы болады. Қазір шығу керек пе?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Телефон \"Құтқару қызметіне кері қоңырау шалу\" режимінде бір минут болады. Осы режимде дерек байланысын пайдаланатын қолданбалар жұмыс істемейді. Режимнен қазір шығуды қалайсыз ба?}other{Телефон \"Құтқару қызметіне кері қоңырау шалу\" режимінде %s минут болады. Осы режимде дерек байланысын пайдаланатын қолданбалар жұмыс істемейді. Режимнен қазір шығуды қалайсыз ба?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Таңдалған әрекет \"Құтқару қызметіне кері қоңырау шалу\" режимінде қолжетімсіз. Телефон бұл режимде бір минут болады. Бұл режимнен қазір шығуды қалайсыз ба?}other{Таңдалған әрекет \"құтқару қызметіне кері қоңырау шалу\" режимінде қолжетімсіз. Телефон бұл режимде %s минут болады. Бұл режимнен қазір шығуды қалайсыз ба?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Төтенше қоңырау режимінде таңдалған әрекет қол жетімсіз."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Төтенше қоңырауды кері шалу режимінен шығуда"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Иә"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Телефон бір минут бойы \"Құтқару қызметіне кері қоңырау шалу\" режимінде болады.\nҚазір шыққыңыз келе ме?}other{Телефон %s минут бойы \"Құтқару қызметіне кері қоңырау шалу\" режимінде болады.\nҚазір шыққыңыз келе ме?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Арнайы мүмкіндіктер"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi қоңырауын шалушы:"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi қоңырауы"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Ашу үшін қайта түртіңіз"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Қоңырау шалу мүмкін емес, себебі басқа шығыс қоңырау орындалуда."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Қоңырау шалу мүмкін емес, себебі жауап берілмеген кіріс қоңырау бар. Кіріс қоңырауға жауап беріңіз немесе оны өшіріңіз."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Қоңырау шалу мүмкін емес, себебі қоңырау шалу функциясы ro.telephony.disable-call жүйелік параметрі арқылы өшірілген."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Қоңырау шалу мүмкін емес, себебі екі қоңырау орындалуда. Жаңа қоңырауды бастау үшін олардың біреуін тоқтатыңыз немесе бір конференцияға қосыңыз."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Қоңырау шалу мүмкін емес, себебі екі қоңырау орындалуда. Жаңа қоңырауды бастау үшін олардың біреуін тоқтатыңыз немесе бір конференцияға қосыңыз."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> пайдалану үшін мобильді интернеттің қосылғанына көз жеткізіңіз. Оны мобильдік желі параметрлерінен өзгертуге болады."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> пайдалану үшін мобильді интернет пен деректер роумингінің қосылғанына көз жеткізіңіз. Оны мобильдік желі параметрлерінен өзгертуге болады."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Желі түрін қайта анықтау:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC қолжетімді:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR шектеулі:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR қолжетімді:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR күйі:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC қолжетімді (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR шектеулі (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR қолжетімді (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR күйі (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR жиілігі:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Радиожолақ режимін орнату"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Жолақтар тізімі жүктелуде…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC негіздеме идентификаторы:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Жаңарту"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Жаңарту"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth сигналы нашар. Спикерфонға ауысып көріңіз."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Қоңырау сапасы туралы хабарландыру"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Қолданыстан шыққан SIP аккаунттары"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index fb246f9..3f20814 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">សកម្មភាពដែលបានជ្រើសមិនមានទេ ខណៈពេលដែលស្ថិតក្នុងរបៀប ហៅត្រលប់ពេលអាសន្ន។ ទូរស័ព្ទនេះនឹងស្ថិតក្នុងរបៀបនេះរយៈពេល <xliff:g id="COUNT_0">%s</xliff:g> នាទី។ តើអ្នកចង់ចាកចេញឥឡូវនេះទេ?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{ទូរសព្ទ​នឹង​ស្ថិត​ក្នុង​មុខងារ​ហៅ​ត្រឡប់​វិញ​ពី​សេវា​សង្គ្រោះ​បន្ទាន់​រយៈ​ពេល​មួយ​នាទី។ ពេល​នៅ​ក្នុង​មុខងារ​នេះ មិន​អាច​ប្រើប្រាស់​កម្មវិធី​ដែល​ប្រើ​ការតភ្ជាប់​ទិន្នន័យ​បាន​ទេ។ តើ​អ្នក​ចង់​ចាកចេញ​ឥឡូវ​នេះ​ដែរ​ឬ​ទេ?}other{ទូរសព្ទ​នឹង​ស្ថិត​ក្នុង​មុខងារ​ហៅ​ត្រឡប់​វិញ​ពី​សេវា​សង្គ្រោះ​បន្ទាន់​រយៈ​ពេល %s នាទី។ ពេល​នៅ​ក្នុង​មុខងារ​នេះ មិន​អាច​ប្រើប្រាស់​កម្មវិធី​ដែល​ប្រើ​ការតភ្ជាប់​ទិន្នន័យ​បាន​ទេ។ តើ​អ្នក​ចង់​ចាកចេញ​ឥឡូវ​នេះ​ដែរ​ឬ​ទេ?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{មិន​អាច​ធ្វើ​សកម្មភាព​ដែល​បាន​ជ្រើសរើស​ទេ ពេល​នៅ​ក្នុង​មុខងារ​ហៅ​ត្រឡប់​វិញ​ពី​សេវា​សង្គ្រោះ​បន្ទាន់។ ទូរសព្ទ​នឹង​ស្ថិត​នៅ​ក្នុង​មុខងារ​នេះ​រយៈ​ពេល​មួយ​នាទី។ តើ​អ្នក​ចង់​ចាកចេញ​ឥឡូវ​នេះ​ដែរ​ឬ​ទេ?}other{មិន​អាច​ធ្វើ​សកម្មភាព​ដែល​បាន​ជ្រើសរើស​ទេ ពេល​នៅ​ក្នុង​មុខងារ​ហៅ​ត្រឡប់​វិញ​ពី​សេវា​សង្គ្រោះ​បន្ទាន់។ ទូរសព្ទ​នឹង​ស្ថិត​នៅ​ក្នុង​មុខងារ​នេះ​រយៈ​ពេល %s នាទី។ តើ​អ្នក​ចង់​ចាកចេញ​ឥឡូវ​នេះ​ដែរ​ឬ​ទេ?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"សកម្មភាព​ដែល​បាន​ជ្រើស​គឺ​មិន​អាច​រក​បាន​នៅ​ក្នុង​ខណៈ​ពេល​ដែល​ការ​ហៅ​អាសន្ន​មួយ​។"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"ចេញ​ពី​របៀប​ហៅ​ទៅ​វិញ​​​ពេល​មាន​អាសន្ន"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"បាទ/ចាស"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{ទូរសព្ទ​នឹង​ស្ថិត​ក្នុង​មុខងារ​ហៅ​ត្រឡប់​វិញ​ពី​សេវា​សង្គ្រោះ​បន្ទាន់​រយៈ​ពេល​មួយ​នាទី។\nតើ​អ្នក​ចង់​ចេញ​ឥឡូវ​នេះ​ដែរ​ឬ​ទេ?}other{ទូរសព្ទ​នឹង​ស្ថិត​ក្នុង​មុខងារ​ហៅ​ត្រឡប់​វិញ​ពី​សេវា​សង្គ្រោះ​បន្ទាន់​រយៈ​ពេល %s នាទី។\nតើ​អ្នក​ចង់​ចេញ​ឥឡូវ​នេះ​ដែរ​ឬ​ទេ?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"ភាពងាយស្រួល"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"ការហៅតាម Wi-Fi ពី"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"ហៅតាម Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ប៉ះម្ដងទៀតដើម្បីបើក"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"មានកំហុសខណៈពេលឌិកូដសារ។"</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"ស៊ីមកាតបានធ្វើឲ្យសេវាកម្មរបស់អ្នកសកម្ម និងបានធ្វើបច្ចុប្បន្នភាពសមត្ថភាពរ៉ូមីងសម្រាប់ទូរស័ព្ទរបស់អ្នក។"</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"មាន​ការ​ហៅ​ដែល​សកម្ម​ច្រើន​ពេក។ សូម​បញ្ចប់ ឬ​​ដាក់​​បញ្ចូល​គ្នា​ការ​ហៅ​ដែល​មាន​ស្រាប់​​មុន​ពេល​ដាក់​ការ​ហៅ​ថ្មី។"</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"មិន​អាច​ធ្វើ​ការ​ហៅ​ទូរសព្ទ​បាន​ទេ ដោយ​សារ​​មាន​គេ​​កំពុង​ហៅ​ទូរសព្ទ​ចេញ​រួច​ហើយ​។"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"មិន​អាច​ធ្វើ​ការ​ហៅ​ទូរសព្ទ​បាន​ទេ ដោយសារ​​​មាន​ការ​ហៅ​ទូរសព្ទ​ចូល​​មួយ​មិន​បាន​ឆ្លើយ។ ឆ្លើយតប ឬ​បដិសេធ​ការ​ហៅ​ទូរសព្ទចូល​ មុន​ពេល​ធ្វើ​ការ​ហៅ​ទូរសព្ទ​ថ្មី​មួយ​ទៀត។"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"មិន​អាច​ធ្វើ​ការ​ហៅ​ទូរសព្ទ​បាន​ទេ ដោយសារ​មាន​​ការ​ហៅ​ទូរសព្ទ​​មួយ​ត្រូវ​បាន​បិទ​​តាមរយៈ​ការប្រើ​ប្រាស់​លក្ខណៈ​ប្រព័ន្ធ ro.telephony.disable-call ។"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"មិន​អាច​ធ្វើ​ការ​ហៅ​ទូរសព្ទ​បាន​​ទេ ដោយសារ​​មាន​ការ​ហៅ​ទូរសព្ទ​ពីរ​កំពុង​​ដំណើរការ​​រួច​ហើយ។ ផ្ដាច់​ការ​ហៅ​ទូរសព្ទ​មួយ ឬ​បញ្ចូល​ការ​ហៅ​ទូរសព្ទ​ទាំងពីរ​​ចូលគ្នា​​ជា​​ការ​ប្រជុំ​មួយ ​មុន​នឹង​ធ្វើ​ការ​ហៅ​ទូរសព្ទ​ថ្មី​មួយ។"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"មិន​អាច​ធ្វើ​ការហៅ​ទូរសព្ទ​បាន​ទេ ដោយសារ​មាន​ការហៅ​ទូរសព្ទ​ពីរ​កំពុង​ដំណើរការ​រួច​ហើយ។ ផ្ដាច់​ការហៅ​ទូរសព្ទ​មួយ ឬ​ដាក់​ការហៅ​ទូរសព្ទ​ទាំងនេះ​ចូល​គ្នា​ជា​ការប្រជុំ​មួយ មុន​នឹង​ធ្វើ​ការ​ហៅ​ទូរសព្ទ​ថ្មី។"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"ដើម្បីប្រើប្រាស់ <xliff:g id="SUPP_SERVICE">%s</xliff:g> សូម​ប្រាកដថា​ទិន្នន័យ​ទូរសព្ទ​​ចល័ត​ត្រូវ​បាន​បើក។ អ្នក​អាចផ្លាស់​ប្ដូរ​​ជម្រើស​នេះ​នៅ​ក្នុង​ការ​កំណត់​បណ្ដាញ​​ទូរសព្ទ​ចល័ត។"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"ដើម្បី​ប្រើប្រាស់ <xliff:g id="SUPP_SERVICE">%s</xliff:g> សូម​ប្រាកដថា​ទិន្នន័យ​ទូរសព្ទ​​ចល័ត និង​ការ​រ៉ូមីង​ទិន្នន័យ​ត្រូវ​បាន​បើក។ អ្នក​អាច​ផ្លាស់ប្ដូរ​ជម្រើស​ទាំង​នេះ​នៅ​ក្នុង​ការ​កំណត់​បណ្ដាញ​​ទូរសព្ទ​ចល័ត។"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"លុប​ពី​លើ​ប្រភេទ​បណ្ដាញ៖"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"មាន EN-DC៖"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR ត្រូវ​បាន​រឹតត្បិត៖"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"មាន NR៖"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"ស្ថានភាព NR៖"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"អាច​ប្រើ EN-DC បាន (NSA)៖"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"បាន​ដាក់​កំហិត DCNR (NSA)៖"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"អាច​ប្រើ NR បាន (NSA)៖"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"ស្ថានភាព NR (NSA)៖"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"កម្រិត​ញឹកញាប់​នៃ NR៖"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"កំណត់​មុខងារ​កម្រិត​បញ្ជូន​វិទ្យុ"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"កំពុងដំណើរការបញ្ជីក្រុម…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"លេខ​សម្គាល់​ការ​ផ្ដល់​សិទ្ធិ WFC៖"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"ដំឡើងកំណែ"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ផ្ទុកឡើងវិញ"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"រលកសញ្ញាប៊្លូធូសរបស់អ្នក​មានកម្រិតខ្សោយ។ សូមសាកល្បងប្ដូរ​ទៅឧបករណ៍បំពងសំឡេងទូរសព្ទ។"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"ការជូនដំណឹង​អំពីគុណភាព​ហៅទូរសព្ទ"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"គណនី SIP ដែលបានបញ្ឈប់"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 32f7a69..166d1da 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">ಪೋನ್‌ <xliff:g id="COUNT_1">%s</xliff:g> ನಿಮಿಷಗಳ ಕಾಲ ತುರ್ತು ಮರಳಿ ಕರೆಮಾಡು ಮೋಡ್‌ನಲ್ಲಿರುತ್ತದೆ. ಈ ಮೋಡ್‌ನಲ್ಲಿರುವಾಗ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಡೇಟಾ ಸಂಪರ್ಕವನ್ನು ಬಳಸಿಕೊಂಡು ಬಳಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ನೀವು ಇದೀಗ ನಿರ್ಗಮಿಸಲು ಬಯಸುವಿರಾ?</item>
-      <item quantity="other">ಪೋನ್‌ <xliff:g id="COUNT_1">%s</xliff:g> ನಿಮಿಷಗಳ ಕಾಲ ತುರ್ತು ಮರಳಿ ಕರೆಮಾಡು ಮೋಡ್‌ನಲ್ಲಿರುತ್ತದೆ. ಈ ಮೋಡ್‌ನಲ್ಲಿರುವಾಗ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಡೇಟಾ ಸಂಪರ್ಕವನ್ನು ಬಳಸಿಕೊಂಡು ಬಳಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ನೀವು ಇದೀಗ ನಿರ್ಗಮಿಸಲು ಬಯಸುವಿರಾ?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">ತುರ್ತು ಮರಳಿ ಕರೆಮಾಡು ಮೋಡ್‌ನಲ್ಲಿರುವಾಗ ಆಯ್ಕೆಮಾಡಿದ ಕ್ರಿಯೆಯು ಲಭ್ಯವಿರುವುದಿಲ್ಲ. ಫೋನ್‌ <xliff:g id="COUNT_1">%s</xliff:g> ನಿಮಿಷಗಳ ಕಾಲ ಈ ಮೋಡ್‌ನಲ್ಲಿರುತ್ತದೆ. ನೀವು ಇದೀಗ ನಿರ್ಗಮಿಸಲು ಬಯಸುವಿರಾ?</item>
-      <item quantity="other">ತುರ್ತು ಮರಳಿ ಕರೆಮಾಡು ಮೋಡ್‌ನಲ್ಲಿರುವಾಗ ಆಯ್ಕೆಮಾಡಿದ ಕ್ರಿಯೆಯು ಲಭ್ಯವಿರುವುದಿಲ್ಲ. ಫೋನ್‌ <xliff:g id="COUNT_1">%s</xliff:g> ನಿಮಿಷಗಳ ಕಾಲ ಈ ಮೋಡ್‌ನಲ್ಲಿರುತ್ತದೆ. ನೀವು ಇದೀಗ ನಿರ್ಗಮಿಸಲು ಬಯಸುವಿರಾ?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"ತುರ್ತು ಕರೆಯಲ್ಲಿರುವಾಗ ಆಯ್ಕೆಮಾಡಿದ ಕ್ರಿಯೆಯು ಲಭ್ಯವಿರುವುದಿಲ್ಲ."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"ತುರ್ತು ಕಾಲ್‌ಬ್ಯಾಕ್‌ ಮೋಡ್‌ನಿಂದ ನಿರ್ಗಮಿಸಲಾಗುತ್ತಿದೆ"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ಹೌದು"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"ಪ್ರವೇಶಿಸುವಿಕೆ"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"ಅವರಿಂದ ವೈ-ಫೈ ಕರೆ"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"ವೈ-ಫೈ ಕರೆ"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ತೆರೆಯಲು ಮತ್ತೆ ಟ್ಯಾಪ್‌ ಮಾಡಿ"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"ಸಂದೇಶವನ್ನು ಡೀಕೋಡ್ ಮಾಡುವಾಗ ದೋಷವುಂಟಾಗಿದೆ."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"ನಿಮ್ಮ ಸೇವೆಯನ್ನು ಸಿಮ್‌ ಕಾರ್ಡ್‌ ಸಕ್ರಿಯಗೊಳಿಸಿದೆ ಮತ್ತು ನಿಮ್ಮ ಫೋನ್‌ನ ರೋಮಿಂಗ್ ಸಾಮರ್ಥ್ಯವನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲಾಗಿದೆ."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"ಹಲವಾರು ಸಕ್ರಿಯ ಕರೆಗಳು. ಹೊಸ ಕರೆ ಮಾಡುವ ಮೊದಲು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕರೆಗಳನ್ನು ಅಂತ್ಯಗೊಳಿಸಿ ಅಥವಾ ವಿಲೀನಗೊಳಿಸಿ."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"ಹೊಸ ಕರೆಯನ್ನು ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ ಏಕೆಂದರೆ ಮತ್ತೊಂದು ಕರೆಯನ್ನು ಈಗಾಗಲೇ ಮಾಡಲಾಗುತ್ತಿದೆ."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"ಉತ್ತರಿಸದೇ ಒಳಬರುವ ಕರೆ ಬರುತ್ತಿರುವುದರಿಂದ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಹೊಸ ಕರೆಯನ್ನು ಮಾಡುವ ಮೊದಲು ಕರೆಗೆ ಉತ್ತರ ನೀಡಿ ಅಥವಾ ತಿರಸ್ಕರಿಸಿ."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ಕರೆ ವೈಶಿಷ್ಟ್ಯವನ್ನು ro.telephony.disable-call ಸಿಸ್ಟಂ ಗುಣಲಕ್ಷಣದಿಂದ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿರುತ್ತದೆ, ಆದ್ದರಿಂದ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"ಈಗಾಗಲೇ ಎರಡು ಕರೆಗಳು ಪ್ರಗತಿಯಲ್ಲಿರುವುದರಿಂದ, ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.ಒಂದು ಕರೆಯ ಸಂಪರ್ಕವನ್ನು ಕಡಿತಗೊಳಿಸಿ ಅಥವಾ ನೀವು ಹೊಸ ಕರೆಯನ್ನು ಮಾಡುವ ಮೊದಲು ಎರಡು ಕರೆಗಳನ್ನು ಒಂದೇ ಕಾನ್ಫರೆನ್ಸ್‌ನಲ್ಲಿ ವಿಲೀನಗೊಳಿಸಿ."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"ಈಗಾಗಲೇ ಎರಡು ಕರೆಗಳು ಪ್ರಗತಿಯಲ್ಲಿರುವುದರಿಂದ, ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಒಂದು ಕರೆಯ ಸಂಪರ್ಕವನ್ನು ಕಡಿತಗೊಳಿಸಿ ಅಥವಾ ಹೊಸ ಕರೆಯನ್ನು ಮಾಡುವ ಮೊದಲು ಎರಡು ಕರೆಗಳನ್ನು ಒಂದೇ ಕಾನ್ಫರೆನ್ಸ್‌ನಲ್ಲಿ ವಿಲೀನಗೊಳಿಸಿ."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ಅನ್ನು ಬಳಸಲು, ಮೊಬೈಲ್ ಡೇಟಾ ಆನ್‌ ಆಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನೀವು ಇದನ್ನು ಮೊಬೈಲ್‌ ನೆಟ್‌ವರ್ಕ್‌ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ಅನ್ನು ಬಳಸಲು, ಮೊಬೈಲ್ ಡೇಟಾ ಮತ್ತು ಡೇಟಾ ರೋಮಿಂಗ್ ಆನ್‌ ಆಗಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನೀವು ಇದನ್ನು ಮೊಬೈಲ್‌ ನೆಟ್‌ವರ್ಕ್‌ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"ನೆಟ್‌ವರ್ಕ್ ಪ್ರಕಾರವನ್ನು ಅತಿಕ್ರಮಿಸಿ:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC ಲಭ್ಯವಿದೆ:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"ನಿರ್ಬಂಧಿತ DCNR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR ಲಭ್ಯವಿದೆ:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR ಸ್ಥಿತಿ:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC ಲಭ್ಯವಿದೆ (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR ನಿರ್ಬಂಧಿತ (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR ಲಭ್ಯವಿದೆ (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR ಸ್ಥಿತಿ (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR ಫ್ರೀಕ್ವೆನ್ಸಿ:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"ರೇಡಿಯೋ ಬ್ಯಾಂಡ್ ಮೋಡ್ ಹೊಂದಿಸಿ"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"ಬ್ಯಾಂಡ್ ಪಟ್ಟಿಯನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC ಅರ್ಹತೆ ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"ಅಪ್‌ಡೇಟ್ ಮಾಡಿ"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ರಿಫ್ರೆಶ್"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"ನಿಮ್ಮ ಬ್ಲೂಟೂತ್ ಸಿಗ್ನಲ್ ದುರ್ಬಲವಾಗಿದೆ. ಸ್ಪೀಕರ್‌ಫೋನ್‌ಗೆ ಬದಲಾಯಿಸಲು ಪ್ರಯತ್ನಿಸಿ."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"ಕರೆ ಗುಣಮಟ್ಟದ ಅಧಿಸೂಚನೆ"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"ತಡೆಹಿಡಿಯಲಾಗಿರುವ SIP ಖಾತೆಗಳು"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 52ad67b..ed07f60 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">긴급 콜백 모드에서는 선택한 작업을 수행할 수 없습니다. 휴대전화가 <xliff:g id="COUNT_0">%s</xliff:g>분 동안 긴급 콜백 모드로 전환됩니다. 지금 종료하시겠습니까?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{휴대전화가 1분간 긴급 콜백 모드를 유지합니다. 이 모드를 사용하는 중에는 데이터 연결이 필요한 애플리케이션을 사용할 수 없습니다. 종료하시겠습니까?}other{휴대전화가 %s분간 긴급 콜백 모드를 유지합니다. 이 모드를 사용하는 중에는 데이터 연결이 필요한 애플리케이션을 사용할 수 없습니다. 종료하시겠습니까?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{긴급 콜백 모드에서는 선택한 작업을 사용할 수 없습니다. 휴대전화가 1분간 이 모드를 유지합니다. 종료하시겠습니까?}other{긴급 콜백 모드에서는 선택한 작업을 사용할 수 없습니다. 휴대전화가 %s분간 이 모드를 유지합니다. 종료하시겠습니까?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"긴급 통화 중에는 선택한 작업을 사용할 수 없습니다."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"긴급 콜백 모드 종료하는 중"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"예"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{휴대전화가 1분간 긴급 콜백 모드로 유지됩니다.\n지금 종료하시겠습니까?}other{휴대전화가 %s분간 긴급 콜백 모드로 유지됩니다.\n지금 종료하시겠습니까?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"접근성"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi 수신 전화:"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi 통화"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"다시 탭하여 열기"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"이미 다른 발신 전화에서 다이얼 중이므로 전화를 걸 수 없습니다."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"받지 않은 수신 전화가 있으므로 전화를 걸 수 없습니다. 새로 전화를 걸기 전에 수신 전화를 받거나 거절하세요."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ro.telephony.disable-call 시스템 속성을 사용하여 통화 기능이 사용 중지되었으므로 전화를 걸 수 없습니다."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"이미 진행 중인 두 건의 통화가 있으므로 전화를 걸 수 없습니다. 새로 전화를 걸기 전에 통화 중 하나를 연결 해제하거나 두 통화를 다자간 통화로 병합하세요."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"이미 진행 중인 두 건의 통화가 있으므로 전화를 걸 수 없습니다. 새로 전화를 걸기 전에 통화 중 하나를 연결 해제하거나 두 통화를 다자간 통화로 병합하세요."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>을(를) 사용하려면 모바일 데이터가 사용 설정되어 있는지 확인하세요. 이 설정은 모바일 네트워크 설정에서 변경할 수 있습니다."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>을(를) 사용하려면 모바일 데이터 및 데이터 로밍이 사용 설정되어 있는지 확인하세요. 이 설정은 모바일 네트워크 설정에서 변경할 수 있습니다."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"네트워크 유형 재정의:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC 사용 가능:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR 제한됨:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR 사용 가능:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR 상태:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC 사용 가능(NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR 제한됨(NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR 사용 가능(NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR 상태(NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR 빈도:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"무선 주파수 대역 모드 설정"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"대역 목록 로드 중…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC 사용 권한 ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"업데이트"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"새로고침"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"블루투스 신호 강도가 약합니다. 스피커폰으로 전환해 보세요."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"통화 품질 알림"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"지원 중단된 SIP 계정"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 50453f2..d864bf9 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">Тандалган аракет Шашылыш кайра чалуу режиминде жеткиликтүү эмес. Телефон бул режимде <xliff:g id="COUNT_0">%s</xliff:g> мүнөт бою болот. Азыр чыгып кеткиңиз келеби?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Телефон Шашылыш кайра чалуу режиминде бир мүнөт иштейт. Бул режимде колдонмолор мобилдик Интернет туташууну пайдалана алышпайт. Азыр чыгып кетесизби?}other{Телефон Шашылыш кайра чалуу режиминде %s мүнөт иштейт. Бул режимде колдонмолор мобилдик Интернет туташууну пайдалана алышпайт. Азыр чыгып кетесизби?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Бул аракет Шашылыш кайра чалуу режиминде иштебейт. Телефон бул режимде бир мүнөт бою болот. Азыр чыгып кетесизби?}other{Бул аракет Шашылыш кайра чалуу режиминде иштебейт. Телефон бул режимде %s мүнөт бою болот. Азыр чыгып кетесизби?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Куткаруучуларга чалуу учурунда, бул тандалган аракет аткарылбайт."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Куткаруучулардын Кайра Чалуусу тартибинен чыгуу"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ооба"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Телефон шашылыш кайра чалуу режиминде бир мүнөт иштейт.\nАзыр чыгып кетесизби?}other{Телефон шашылыш кайра чалуу режиминде %s мүнөт иштейт.\nАзыр чыгып кетесизби?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Атайын мүмкүнчүлүктөр"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi аркылуу чалуу:"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi чалуу"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Ачуу үчүн кайра таптап коюңуз"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Чалуу аткарылбайт, анткени башка чыгуучу чалуу терилүүдө."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Чалуу аткарылбайт, анткени кирүүчү чалууга жооп берилген жок. Жаңы чалуу аткаруудан мурун кирүүчү чалууга жооп берип же четке кагыңыз."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Чалуу аткарылбайт, анткени чалуу ro.telephony.disable-call тутуму аркылуу өчүрүлгөн."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Чалуу аткарылбайт, анткени эки чалуу аткарылууда. Бир чалууну өчүрүңүз же аларды конференцияга бириктириңиз."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Чалуу аткарылбайт, анткени эки чалуу аткарылууда. Бир чалууну өчүрүңүз же аларды конференцияга бириктириңиз."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> колдонуу үчүн мобилдик Интернет күйгүзүлгөнүн текшериңиз. Муну мобилдик тармак жөндөөлөрүнөн өзгөртсөңүз болот."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> колдонуу үчүн мобилдик Интернет жана Интернет-роуминг күйгүзүлгөнүн текшериңиз. Муну мобилдик тармак жөндөөлөрүнөн өзгөртсөңүз болот."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Тармактын түрүн өзгөртүп коюу:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC жеткиликтүү:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR чектелген:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR жеткиликтүү:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR абалы:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC жеткиликтүү (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR чектелген (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR жеткиликтүү (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR абалы (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR жыштыгы:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Радио жыштыгынын режимин коюу"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Жыштык режиминин тизмеси жүктөлүүдө…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement идентификатору:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Жаңыртуу"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Жаңыртуу"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth сигналыңыз начар. Спикерфонго которулуп көрүңүз."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Чалуунун сапаты тууралуу билдирме"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Колдонуудан чыккан SIP аккаунттары"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index a7b1640..79d8899 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">ການດຳເນີນການທີ່ເລືອກໄວ້ ບໍ່ສາມາດໃຊ້ໄດ້ໃນຂະນະທີ່ຢູ່ໃນການໂທສຸກເສີນ. ໂທ​ລະ​ສັບ​ຈະ​ຢູ່​ໃນ​ໂໝດ​ນີ້​ເປັນ​ເວ​ລາ <xliff:g id="COUNT_0">%s</xliff:g> ນາ​ທີ. ທ່ານ​ຕ້ອງ​ການ​ອອກ​ດຽວ​ນີ້​ບໍ?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{ໂທລະສັບຈະຢູ່ໃນໂໝດການໂທກັບສຸກເສີນເປັນເວລາໜຶ່ງນາທີ. ໃນລະຫວ່າງທີ່ຢູ່ໃນໂໝດນີ້ ບໍ່ສາມາດໃຊ້ແອັບທີ່ໃຊ້ການເຊື່ອມຕໍ່ອິນເຕີເນັດໄດ້. ທ່ານຕ້ອງການອອກດຽວນີ້ບໍ?}other{ໂທລະສັບຈະຢູ່ໃນໂໝດການໂທກັບສຸກເສີນເປັນເວລາ %s ນາທີ. ໃນລະຫວ່າງທີ່ຢູ່ໃນໂໝດນີ້ ບໍ່ສາມາດໃຊ້ແອັບພລິເຄຊັນທີ່ໃຊ້ການເຊື່ອມຕໍ່ອິນເຕີເນັດໄດ້. ທ່ານຕ້ອງການອອກດຽວນີ້ບໍ?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{ຄຳສັ່ງທີ່ເລືອກບໍ່ສາມາດໃຊ້ໄດ້ໃນຂະນະທີ່ຢູ່ໃນໂໝດໂທກັບສຸກເສີນ. ໂທລະສັບຈະຢູ່ໃນໂໝດນີ້ອີກໜຶ່ງນາທີ. ທ່ານຕ້ອງການອອກດຽວນີ້ບໍ?}other{ຄຳສັ່ງທີ່ເລືອກບໍ່ສາມາດໃຊ້ໄດ້ໃນຂະນະທີ່ຢູ່ໃນໂໝດໂທກັບສຸກເສີນ. ໂທລະສັບຈະຢູ່ໃນໂໝດນີ້ອີກ %s ນາທີ. ທ່ານຕ້ອງການອອກດຽວນີ້ບໍ?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"ການດຳເນີນການທີ່ເລືອກ ບໍ່ສາມາດໃຊ້ໄດ້ໃນຂະນະທີ່ຢູ່ໃນການໂທສຸກເສີນ."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"ກຳລັງອອກຈາກໂໝດໂທກັບສຸກເສີນ"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ຕົກລົງ"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{ໂທລະສັບຈະຢູ່ໃນໂໝດໂທກັບສຸກເສີນເປັນເວລາໜຶ່ງນາທີ.\nທ່ານຕ້ອງການອອກຕອນນີ້ເລີຍບໍ?}other{ໂທລະສັບຈະຢູ່ໃນໂໝດໂທກັບສຸກເສີນເປັນເວລາ %s ນາທີ.\nທ່ານຕ້ອງການອອກຕອນນີ້ເລີຍບໍ?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"​ການ​ຊ່ວຍ​ເຂົ້າ​ເຖິງ"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"ການໂທ Wi-Fi ຈາກ"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"ການ​ໂທ Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ແຕະອີກຄັ້ງເພື່ອເປີດ"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"ບໍ່ສາມາດໂທອອກໄດ້ເນື່ອງຈາກກຳລັງມີສາຍໂທອອກຢູ່ກ່ອນແລ້ວ."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"ບໍ່ສາມາດໂທອອກໄດ້ເນື່ອງຈາກມີສາຍທີ່ກຳລັງໂທເຂົ້າມາທີ່ຍັງບໍ່ໄດ້ຮັບຢູ່. ກະລຸນາຮັບສາຍ ຫຼື ວາງສາຍທີ່ກຳລັງໂທເຂົ້າມາກ່ອນຈະໂທໃໝ່."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ບໍ່ສາມາດໂທໄດ້ເນື່ອງຈາກມີການປິດການໂທໂດຍໃຊ້ຄຸນສົມບັດລະບົບ ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"ບໍ່ສາມາດໂທໄດ້ເນື່ອງຈາກມີສອງສາຍກຳລັງໂທຢູ່. ກະລຸນາຕັດການເຊື່ອມຕໍ່ສາຍໃດໜຶ່ງອອກ ຫຼື ຮວມສາຍເປັນການປະຊຸມສາຍກ່ອນໂທໃໝ່."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"ບໍ່ສາມາດໂທໄດ້ເນື່ອງຈາກມີສອງສາຍກຳລັງໂທຢູ່. ກະລຸນາຕັດການເຊື່ອມຕໍ່ສາຍໃດໜຶ່ງອອກ ຫຼື ຮວມສາຍເປັນການປະຊຸມທາງໂທລະສັບກ່ອນໂທໃໝ່."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"ເພື່ອໃຊ້ <xliff:g id="SUPP_SERVICE">%s</xliff:g>, ກະລຸນາກວດສອບວ່າເປີດໃຊ້ອິນເຕີເນັດມືຖືແລ້ວ. ທ່ານສາມາດປ່ຽນໄດ້ໃນການຕັ້ງຄ່າເຄືອຂ່າຍ."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"ເພື່ອໃຊ້ <xliff:g id="SUPP_SERVICE">%s</xliff:g>, ກະລຸນາກວດສອບວ່າເປີດໃຊ້ອິນເຕີເນັດມືຖື ແລະ ການໂຣມມິງອິນເຕີເນັດແລ້ວ. ທ່ານສາມາດປ່ຽນໄດ້ໃນການຕັ້ງຄ່າເຄືອຂ່າຍ."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"ຍົກເລີກປະເພດເຄືອຂ່າຍ:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"ມີ EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"ຈຳກັດ DCNR ໄວ້ແລ້ວ:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"ມີ NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"ສະຖານະ NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"ສາມາດໃຊ້ EN-DC ໄດ້ (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"ຈຳກັດ DCNR (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"ສາມາດໃຊ້ NR ໄດ້ (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"ສະຖານະ NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"ຄວາມຖີ່ NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"ຕັ້ງໂໝດແຖບຄວາມຖີ່ວິທະຍຸ"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"ກຳລັງດາວໂຫລດລາຍຊື່ແຖບຄວາມຖີ່..."</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ລະຫັດ ID ສິດ ຂອງ WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"ອັບເດດ"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ໂຫຼດຂໍ້ມູນຄືນໃໝ່"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"ສັນຍານ Bluetooth ຂອງທ່ານອ່ອນ. ລອງສະຫຼັບລຳໂພງໂທລະສັບ."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"ການແຈ້ງເຕືອນຄຸນນະພາບການໂທ"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"ບັນຊີ SIP ທີ່ເຊົາສະໜັບສະໜູນ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 44e358f..cd529a5 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -637,18 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Atgalinio skambinimo pagalbos numeriu režimas"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Duomenų ryšys išjungtas"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Duomenų ryšio nebus iki <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Telefonas veiks pagalbos tarnybos atskambinimo režimu <xliff:g id="COUNT_1">%s</xliff:g> minutę. Įgalinus šį režimą negalima naudoti jokių programų, kurioms reikalingas duomenų ryšys. Norite dabar išeiti iš šio režimo?</item>
-      <item quantity="few">Telefonas veiks pagalbos tarnybos atskambinimo režimu <xliff:g id="COUNT_1">%s</xliff:g> minutes. Įgalinus šį režimą negalima naudoti jokių programų, kurioms reikalingas duomenų ryšys. Norite dabar išeiti iš šio režimo?</item>
-      <item quantity="many">Telefonas veiks pagalbos tarnybos atskambinimo režimu <xliff:g id="COUNT_1">%s</xliff:g> minutės. Įgalinus šį režimą negalima naudoti jokių programų, kurioms reikalingas duomenų ryšys. Norite dabar išeiti iš šio režimo?</item>
-      <item quantity="other">Telefonas veiks pagalbos tarnybos atskambinimo režimu <xliff:g id="COUNT_1">%s</xliff:g> minučių. Įgalinus šį režimą negalima naudoti jokių programų, kurioms reikalingas duomenų ryšys. Norite dabar išeiti iš šio režimo?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Įgalinus pagalbos tarnybos atskambinimo režimą pasirinkto veiksmo atlikti negalima. Telefonas veiks pagalbos tarnybos atskambinimo režimu <xliff:g id="COUNT_1">%s</xliff:g> minutę. Norite dabar išeiti iš šio režimo?</item>
-      <item quantity="few">Įgalinus pagalbos tarnybos atskambinimo režimą pasirinkto veiksmo atlikti negalima. Telefonas veiks pagalbos tarnybos atskambinimo režimu <xliff:g id="COUNT_1">%s</xliff:g> minutes. Norite dabar išeiti iš šio režimo?</item>
-      <item quantity="many">Įgalinus pagalbos tarnybos atskambinimo režimą pasirinkto veiksmo atlikti negalima. Telefonas veiks pagalbos tarnybos atskambinimo režimu <xliff:g id="COUNT_1">%s</xliff:g> minutės. Norite dabar išeiti iš šio režimo?</item>
-      <item quantity="other">Įgalinus pagalbos tarnybos atskambinimo režimą pasirinkto veiksmo atlikti negalima. Telefonas veiks pagalbos tarnybos atskambinimo režimu <xliff:g id="COUNT_1">%s</xliff:g> minučių. Norite dabar išeiti iš šio režimo?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Skambinant pagalbos numeriu pasirinkto veiksmo atlikti nepavyks."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Išeinama iš atgalinio skambinimo pagalbos numeriu režimo"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Taip"</string>
@@ -656,12 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -689,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Pritaikymas neįgaliesiems"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"„Wi-Fi“ skambutis nuo"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"„Wi-Fi“ skambutis"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Palieskite dar kartą, kad atidarytumėte"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Iškoduojant pranešimą įvyko klaida."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM kortelė suaktyvino paslaugą ir atnaujino telefono tarptinklinio duomenų ryšio funkcijas."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Yra per daug aktyvių skambučių. Prieš skambindami kitu numeriu, užbaikite ar sujunkite esamus skambučius."</string>
@@ -833,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Negalite skambinti, nes šiuo metu vykdomas kitas siunčiamasis skambutis."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Negalite skambinti, nes yra neatsakytas gaunamasis skambutis. Atsiliepkite arba atmeskite gaunamąjį skambutį prieš pradėdami naują."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Negalite skambinti, nes skambinimo funkcija išjungta naudojant sistemos ypatybę „ro.telephony.disable-call“."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Negalite skambinti, nes jau dalyvaujate dviejuose skambučiuose. Užbaikite vieną iš skambučių arba sujunkite juos į konferenciją prieš pradėdami naują skambutį."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Negalite skambinti, nes jau dalyvaujate dviejuose skambučiuose. Prieš pradėdami naują skambutį užbaikite vieną iš skambučių arba sujunkite juos į konferenciją."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Norėdami naudoti paslaugą (<xliff:g id="SUPP_SERVICE">%s</xliff:g>), įsitikinkite, kad mobiliojo ryšio duomenys įjungti. Tai galite pakeisti apsilankę mobiliojo ryšio tinklo nustatymuose."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Norėdami naudoti paslaugą (<xliff:g id="SUPP_SERVICE">%s</xliff:g>), įsitikinkite, kad 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_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>
@@ -905,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Nepaisyti tinklo tipo:"</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>
@@ -916,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC (pasiekiama):"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR (apribota):"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR (pasiekiama):"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR būsena:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"Pasiekiama EN-DC (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR apribota (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"Pasiekiama NR (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR būsena (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR dažnis:"</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>
@@ -930,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"„Wi-Fi“ skambinimo teisės suteikimo ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Atnaujinti"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Atnaujinti"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Silpnas „Bluetooth“ signalas. Pabandykite perjungti garsiakalbį."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Pranešimas apie skambučio kokybę"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Nebenaudojamos SIP paskyros"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 5fe13bb..cd59d1a 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -637,16 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Ārkārtas atzvana režīms"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Datu savienojums ir atspējots."</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Datu savienojums nebūs pieejams līdz plkst. <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="zero">Tālrunī <xliff:g id="COUNT_1">%s</xliff:g> minūtes būs aktivizēts ārkārtas atzvana režīms. Šajā režīmā nevar izmantot lietotnes, kurās tiek lietots datu savienojums. Vai vēlaties to aizvērt tūlīt?</item>
-      <item quantity="one">Tālrunī <xliff:g id="COUNT_1">%s</xliff:g> minūti būs aktivizēts ārkārtas atzvana režīms. Šajā režīmā nevar izmantot lietotnes, kurās tiek lietots datu savienojums. Vai vēlaties to aizvērt tūlīt?</item>
-      <item quantity="other">Tālrunī <xliff:g id="COUNT_1">%s</xliff:g> minūtes būs aktivizēts ārkārtas atzvana režīms. Šajā režīmā nevar izmantot lietotnes, kurās tiek lietots datu savienojums. Vai vēlaties to aizvērt tūlīt?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="zero">Atlasītā darbība nav pieejama ārkārtas atzvana režīmā. Šis režīms tālrunī būs aktivizēts <xliff:g id="COUNT_1">%s</xliff:g> minūtes. Vai vēlaties to aizvērt tūlīt?</item>
-      <item quantity="one">Atlasītā darbība nav pieejama ārkārtas atzvana režīmā. Šis režīms tālrunī būs aktivizēts <xliff:g id="COUNT_1">%s</xliff:g> minūti. Vai vēlaties to aizvērt tūlīt?</item>
-      <item quantity="other">Atlasītā darbība nav pieejama ārkārtas atzvana režīmā. Šis režīms tālrunī būs aktivizēts <xliff:g id="COUNT_1">%s</xliff:g> minūtes. Vai vēlaties to aizvērt tūlīt?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Atlasītā darbība nav pieejama, veicot ārkārtas izsaukumu."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Notiek iziešana no ārkārtas atzvana režīma"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Jā"</string>
@@ -654,11 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -686,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Pieejamība"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi zvans no:"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi zvans"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Pieskarieties vēlreiz, lai atvērtu."</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Atšifrējot ziņojumu, radās kļūda."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM kartē ir aktivizēts jūsu pakalpojums un atjauninātas tālruņa viesabonēšanas iespējas."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Ir pārāk daudz aktīvu zvanu. Pirms jauna zvana veikšanas pabeidziet vai apvienojiet esošos zvanus."</string>
@@ -830,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Nevar veikt zvanu, jo jau tiek sastādīts numurs citam izejošajam zvanam."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Nevar veikt zvanu, jo ir neatbildēts ienākošais zvans. Pirms jauna zvana veikšanas atbildiet uz ienākošo zvanu vai noraidiet to."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Nevar veikt zvanu, jo zvanīšana ir atspējota, izmantojot sistēmas rekvizītu ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Nevar veikt zvanu, jo pašlaik jau notiek divi zvani. Pirms jauna zvana veikšanas pārtrauciet vienu no pašreizējiem zvaniem vai apvienojiet tos konferences zvanā."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Nevar veikt zvanu, jo pašlaik jau notiek divi zvani. Pirms jauna zvana veikšanas pārtrauciet vienu no pašreizējiem zvaniem vai apvienojiet tos konferences zvanā."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Lai izmantotu pakalpojumu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, jāieslēdz mobilie dati. Tos var ieslēgt mobilā tīkla iestatījumos."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Lai izmantotu pakalpojumu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, jāieslēdz mobilie dati un datu viesabonēšana. Tos var ieslēgt mobilā tīkla iestatījumos."</string>
     <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>
@@ -902,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Tīkla veida ignorēšana:"</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>
@@ -913,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC pieejamība:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR ierobežojums:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR pieejamība:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR statuss:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC pieejamība (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR ierobežojums (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR pieejamība (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR stāvoklis (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR biežums:"</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>
@@ -927,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Wi-Fi zvanu pilnvaras ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Atjaunināt"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Atsvaidzināt"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth signāls ir vājš. Mēģiniet pārslēgties uz skaļruni."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Paziņojums par zvana kvalitāti"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"SIP konti, kuru darbība ir pārtraukta"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index b8f98df..7cfea83 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Телефонот ќе биде во режим на итен повик <xliff:g id="COUNT_1">%s</xliff:g> минута. Кога е во овој режим, не може да се користат апликации што користат врска со податоци. Дали сакате да излезете сега?</item>
-      <item quantity="other">Телефонот ќе биде во режим на итен повик <xliff:g id="COUNT_1">%s</xliff:g> минути. Кога е во овој режим, не може да се користат апликации што користат врска со податоци. Дали сакате да излезете сега?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Избраното дејство не е достапно во режим на итен повик. Телефонот ќе биде во режим на итен повик <xliff:g id="COUNT_1">%s</xliff:g> минута. Дали сакате да излезете сега?</item>
-      <item quantity="other">Избраното дејство не е достапно во режим на итен повик. Телефонот ќе биде во режим на итен повик <xliff:g id="COUNT_1">%s</xliff:g> минути. Дали сакате да излезете сега?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Избраното дејство не е достапно при повик во итен случај."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Излегување од режим на повратен повик во итни случаи"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Да"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Пристапност"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Повик преку Wi-Fi од"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Повик преку Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Допрете повторно за да се отвори"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Не може да се воспостави повик затоа што веќе се бира друг појдовен повик."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Не може да се воспостави повик затоа што има неодговорен дојдовен повик. Одговорете или одбијте го дојдовниот повик пред воспоставувањето на новиот повик."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Не може да се воспостави повик затоа што повикувањето е оневозможено со системското својство ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Не може да се воспостави повик затоа што два повика веќе се во тек. Исклучете го едниот од повиците или спојте ги во конференциски повик пред да воспоставите нов повик."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Не може да се воспостави повик затоа што веќе се во тек два повика. Исклучете го едниот од повиците или спојте ги во конференциски повик пред да воспоставите нов повик."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"За користење <xliff:g id="SUPP_SERVICE">%s</xliff:g>, уверете се дека мобилниот интернет е вклучен. Тоа може да го промените во поставките за мобилна мрежа."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"За користење <xliff:g id="SUPP_SERVICE">%s</xliff:g>, уверете се дека мобилниот интернет и интернет роамингот се вклучени. Овие може да ги промените во поставките за мобилна мрежа."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Тип отфрлање мрежа:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"Достапно за EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"Ограничено на DCNR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"Достапно за NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Состојба на NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"Достапно за EN-DC (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"Ограничено на DCNR (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"Достапно за NR (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Состојба на NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Фреквенција на NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Поставете режим на појас на радио"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Се вчитува список на појаси…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID на дозвола за WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Ажурирај"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Освежи"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Вашиот сигнал на Bluetooth е слаб. Обидете се со префрлање на интерфон."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Известување за квалитет на повик"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Неподдржани сметки на SIP"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index b5ba43e..4533385 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">അടിയന്തര കോൾബാക്ക് മോഡിലായിരിക്കുമ്പോൾ തിരഞ്ഞെടുത്ത പ്രവർത്തനമൊന്നും ലഭ്യമാകില്ല. <xliff:g id="COUNT_0">%s</xliff:g> മിനിറ്റിനുള്ളിൽ ഫോൺ ഈ മോഡിലാകും. നിങ്ങൾക്കിപ്പോൾ പുറത്തുപോകണോ?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{ഫോൺ ഒരു മിനിറ്റ്, അടിയന്തര കോൾ ബാക്ക് മോഡിൽ ആയിരിക്കും. ഈ മോഡിൽ ആയിരിക്കുമ്പോൾ ഡാറ്റാ കണക്ഷൻ ഉപയോഗിക്കുന്ന ആപ്പുകളൊന്നും ഉപയോഗിക്കാനാകില്ല. ഇപ്പോൾ പുറത്തുകടക്കണോ?}other{ഫോൺ %s മിനിറ്റ്, അടിയന്തര കോൾ ബാക്ക് മോഡിൽ ആയിരിക്കും. ഈ മോഡിൽ ആയിരിക്കുമ്പോൾ ഡാറ്റാ കണക്ഷൻ ഉപയോഗിക്കുന്ന ആപ്പുകളൊന്നും ഉപയോഗിക്കാനാകില്ല. ഇപ്പോൾ പുറത്തുകടക്കണോ?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{അടിയന്തര കോൾ ബാക്ക് മോഡിൽ ആയിരിക്കുമ്പോൾ, തിരഞ്ഞെടുത്ത പ്രവർത്തനം ലഭ്യമല്ല. ഫോൺ ഒരു മിനിറ്റ് ഈ മോഡിൽ ആയിരിക്കും. ഇപ്പോൾ പുറത്തുകടക്കണോ?}other{അടിയന്തര കോൾ ബാക്ക് മോഡിൽ ആയിരിക്കുമ്പോൾ, തിരഞ്ഞെടുത്ത പ്രവർത്തനം ലഭ്യമല്ല. ഫോൺ %s മിനിറ്റ് ഈ മോഡിൽ ആയിരിക്കും. ഇപ്പോൾ പുറത്തുകടക്കണോ?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"അടിയന്തര കോളിലായിരിക്കുമ്പോൾ തിരഞ്ഞെടുത്ത പ്രവർത്തനം ലഭ്യമാകില്ല."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"നിലവിലെ അടിയന്തര കോൾബാക്ക് മോഡ്"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"വേണം"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{ഫോൺ ഒരു മിനിറ്റ്, അടിയന്തര കോൾബാക്ക് മോഡിലായിരിക്കും.\nഇപ്പോൾ പുറത്തുകടക്കണോ?}other{ഫോൺ %s മിനിറ്റ്, അടിയന്തര കോൾബാക്ക് മോഡിലായിരിക്കും.\nഇപ്പോൾ പുറത്തുകടക്കണോ?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"ഉപയോഗസഹായി"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"ഈ വ്യക്തിയിൽ നിന്നുള്ള Wi-Fi കോൾ"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"വൈഫൈ കോൾ"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"തുറക്കുന്നതിന് വീണ്ടും ടാപ്പുചെയ്യുക"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"മറ്റൊരു ഔട്ട്ഗോയിംഗ് കോൾ മുമ്പേ തന്നെ ഡയൽ ചെയ്യുന്നതിനാൽ, ഒരു കോൾ നടത്താനാവില്ല."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"മറുപടി ലഭിക്കാത്ത ഒരു ഇൻ‌കമിംഗ് കോൾ ഉള്ളതിനാൽ, ഒരു കോൾ നടത്താനാവില്ല. ഒരു പുതിയ കോൾ നടത്തുന്നതിന് മുൻപായി ഇൻകമിംഗ് കോളിന് മറുപടി നൽകുക അല്ലെങ്കിൽ നിരസിക്കുക."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ro.telephony.disable-കോൾ സിസ്‌റ്റം പ്രോപ്പർട്ടി ഉപയോഗിച്ച് കോൾ ചെയ്യൽ പ്രവർത്തനരഹിതമാക്കിയതിനാൽ ഒരു കോൾ നടത്താനാവില്ല."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"മുമ്പേ രണ്ട് കോളുകൾ പുരോഗതിയിൽ ആയതിനാൽ ഒരു പുതിയ കോൾ നടത്താനാവില്ല. ഒരു പുതിയ കോൾ നടത്താനായി, മുമ്പത്തെ കോളുകളിലൊന്ന് വിച്‌ഛേദിക്കുകയോ അല്ലെങ്കിൽ അവയെ ഒരു കോൺഫറൻസ് കോളിലേക്ക് ലയിപ്പിക്കുകയോ ചെയ്യുക."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"മുമ്പേ തന്നെ രണ്ട് കോളുകൾ പുരോഗതിയിൽ ആയതിനാൽ പുതിയൊരു കോൾ ചെയ്യാനാകില്ല. പുതിയൊരു കോൾ ചെയ്യുന്നതിന് മുമ്പത്തെ കോളുകളിലൊന്ന് വിച്‌ഛേദിക്കുകയോ അവയെ ഒരു കോൺഫറൻസ് കോളിലേക്ക് ലയിപ്പിക്കുകയോ ചെയ്യുക."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> എന്നത് ഉപയോഗിക്കാൻ, മൊബൈൽ ഡാറ്റ ഓണാണ് എന്ന് ഉറപ്പാക്കുക. നിങ്ങൾക്ക് ഇത് മൊബൈൽ നെറ്റ്‌വർക്ക് ക്രമീകരണത്തിൽ മാറ്റാം."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> എന്നത് ഉപയോഗിക്കാൻ, നിങ്ങളുടെ മൊബൈൽ ഡാറ്റയും ഡാറ്റ റോമിംഗും ഓണാണ് എന്ന് ഉറപ്പാക്കുക. നിങ്ങൾക്ക് ഇത് മൊബൈൽ നെറ്റ്‌വർക്ക് ക്രമീകരണത്തിൽ മാറ്റാം."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"അസാധുവാക്കൽ നെറ്റ്‌വർക്ക് തരം:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC ലഭ്യം:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR നിയന്ത്രിച്ചിരിക്കുന്നു:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR ലഭ്യം:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR നില:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC ലഭ്യമാണ് (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR നിയന്ത്രിച്ചിരിക്കുന്നു (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR ലഭ്യമാണ് (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR നില (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR ഫ്രീക്വൻസി:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"റേഡിയോ ബാൻഡ് മോഡ് സജ്ജീകരിക്കുക"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"ബാൻഡ് ലിസ്‌റ്റ് ലോഡ് ചെയ്യുന്നു…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC എൻടെെറ്റിൽമെന്റ് ഐഡി:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"അപ്‌ഡേറ്റ് ചെയ്യുക"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"റീഫ്രഷ് ചെയ്യുക"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"നിങ്ങളുടെ Bluetooth സിഗ്നൽ ദുർബലമാണ്. സ്‌പീക്കർഫോണിലേക്ക് മാറ്റി നോക്കൂ."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"കോൾ നിലവാര അറിയിപ്പ്"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"അവസാനിപ്പിച്ച SIP അക്കൗണ്ടുകൾ"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 48ac8c0..b8dc6df 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">Сонгосон үйлдлийг яаралтай түргэн тусламжийн горимд байгаа үед ашиглах боломжгүй. Таны гар утас энэ горимд <xliff:g id="COUNT_0">%s</xliff:g> минут байх болно. Та гарахыг хүсэж байна уу?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Утас яаралтай тусламжийн дуудлага хүлээн авах горимд нэг минут байх болно. Энэ горимд байх үед дата холболтыг ашигладаг ямар ч аппыг ашиглах боломжгүй. Та энэ горимоос одоо гарах уу?}other{Утас яаралтай тусламжийн дуудлага хүлээн авах горимд %s минут байх болно. Энэ горимд байх үед дата холболтыг ашигладаг ямар ч аппыг ашиглах боломжгүй. Та энэ горимоос одоо гарах уу?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Сонгосон үйлдлийг яаралтай тусламжийн дуудлага хүлээн авах горимд гүйцэтгэх боломжгүй. Утас энэ горимд нэг минут байх болно. Та энэ горимоос одоо гарах уу?}other{Сонгосон үйлдлийг яаралтай тусламжийн дуудлага хүлээн авах горимд гүйцэтгэх боломжгүй. Утас энэ горимд %s минут байх болно. Та энэ горимоос одоо гарах уу?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Сонгосон үйлдлийг ослын дуудлагын үед гүйцэтгэх боломжгүй."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Ослын Дуудлага хүлээн авах төлвөөс гарч байна"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Тийм"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Утас нэг минутын турш яаралтай тусламжийн дуудлага хүлээн авах горимд байх болно.\nТа энэ горимоос одоо гарах уу?}other{Утас %s минутын турш яаралтай тусламжийн дуудлага хүлээн авах горимд байх болно.\nТа энэ горимоос одоо гарах уу?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Хандалт"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi дуудлага"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi дуудлага"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Нээхийн тулд дахин дарна уу"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Өөр залгасан дугаар руу аль хэдийн залгаж байх үед дуудлага хийх боломжгүй."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Хариулаагүй ирсэн дуудлага байх үед дуудлага хийх боломжгүй. Шинэ дуудлага хийхийн өмнө ирсэн дуудлагад хариулах эсвэл татгалзана уу."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ro.telephony.disable-call системийн өмчийг ашиглан дуудлагыг цуцалсан бол дуудлага хийх боломжгүй."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Аль хэдийн хоёр дуудлага хийж байгаа үед дуудлага хийх боломжгүй. Шинэ дуудлага хийхийн өмнө аль нэг дуудлагыг цуцлах эсвэл хурал болгон нэгтгэнэ үү."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Аль хэдийн хоёр дуудлага хийж байгаа тул дуудлага хийх боломжгүй байна. Шинэ дуудлага хийхийн өмнө аль нэг дуудлагыг салгах эсвэл тэдгээрийг хурал болгож нэгтгэнэ үү."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>-г ашиглахын тулд мобайл датаг асаасан эсэхээ шалгана уу. Та үүнийг мобайл сүлжээний тохиргоонд өөрчлөх боломжтой."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>-г ашиглахын тулд мобайл дата болон дата роуминг асаасан эсэхээ шалгана уу. Та эдгээрийг мобайл сүлжээний тохиргоонд өөрчлөх боломжтой."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Сүлжээний төрлийг дарах:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC боломжтой:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR хязгаарласан:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR боломжтой:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR төлөв:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC боломжтой (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR хязгаарласан (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR боломжтой (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR төлөв (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR давтамж:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Радио мессежийн горимыг тохируулах"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Мессежийн жагсаалтыг ачаалж байна…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Шинэчлэх"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Сэргээх"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Таны Bluetooth-н дохио сул байна. Чанга яригчтай утас руу сэлгэж үзнэ үү."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Дуудлагын чанарын мэдэгдэл"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"SIP-н зогсоосон бүртгэлүүд"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 7c788fa..793bd06 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">आणीबाणी कॉलबॅक मोडमध्ये असताना निवडलेली क्रिया उपलब्ध नसते. फोन <xliff:g id="COUNT_0">%s</xliff:g> मिनिटासाठी या मोडमध्ये राहील. तुम्ही आता बाहेर पडू इच्छिता?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{फोन एका मिनिटासाठी आणीबाणी कॉलबॅक मोडमध्‍ये राहील. या मोडमध्‍ये असताना डेटा कनेक्‍शन वापरणारी कोणतीही अ‍ॅप्‍स वापरली जाऊ शकत नाहीत. तुम्हाला आता बाहेर पडायचे आहे का?}other{फोन %s मिनिटांसाठी आणीबाणी कॉलबॅक मोडमध्‍ये राहील. या मोडमध्‍ये असताना डेटा कनेक्‍शन वापरणारी कोणतीही अ‍ॅप्‍स वापरली जाऊ शकत नाहीत. तुम्हाला आता बाहेर पडायचे आहे का?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{आणीबाणी कॉलबॅक मोडमध्‍ये असताना निवडलेली कृती उपलब्‍ध नाही. फोन एका मिनिटासाठी या मोडमध्‍ये राहील. तुम्हाला आता बाहेर पडायचे आहे का?}other{आणीबाणी कॉलबॅक मोडमध्‍ये असताना निवडलेली कृती उपलब्‍ध नाही. फोन %s मिनिटांसाठी या मोडमध्‍ये राहील. तुम्हाला आता बाहेर पडायचे आहे का?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"आणीबाणीच्‍या कॉलमध्‍ये असताना निवडलेली क्रिया उपलब्‍ध नसते."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"आणीबाणी कॉलबॅक मोडमधून बाहेर पडत आहे"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"होय"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{फोन एका मिनिटासाठी आणीबाणी कॉलबॅक मोडमध्ये राहील.\nतुम्हाला आता बाहेर पडायचे आहे का?}other{फोन %s मिनिटांसाठी आणीबाणी कॉलबॅक मोडमध्ये राहील.\nतुम्हाला आता बाहेर पडायचे आहे का?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"प्रवेशयोग्यता"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"कडून वाय-फाय कॉल"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"वाय-फाय कॉल"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"उघडण्यासाठी पुन्हा टॅप करा"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"मेसेज डीकोड करताना एक एरर आली."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"सिम कार्डने तुमची सेवा सक्रिय केली आहे आणि आपल्या फोनच्या रोमिंग क्षमता अपडेट केल्या."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"बरेच सक्रिय कॉल आहेत. कृपया नवीन एक कॉल करण्यापूर्वी विद्यमान कॉल समाप्त करा किंवा विलीन करा."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"दुसरा आउटगोइंग कॉल आधीच डायल होत असल्यामुळे कॉल करू शकत नाही."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"अनुत्तरित इनकमिंग कॉल असल्यामुळे कॉल करू शकत नाही. नवीन कॉल करण्याआधी इनकमिंग कॉलला उत्तर द्या किंवा तो नाकारा."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ro.telephony.disable-call सिस्टम प्रॉपर्टी वापरून कॉल करणे बंद केले गेल्यामुळे कॉल करू शकत नाही."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"दोन कॉल आधीच प्रगतीपथावर असल्यामुळे कॉल करू शकत नाही. नवीन कॉल करण्याआधी एक कॉल डिस्कनेक्ट करा किंवा त्यांना कॉन्फरंस कॉलमध्ये विलीन करा."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"दोन कॉल आधीच प्रगतीपथावर असल्यामुळे कॉल करू शकत नाही. नवीन कॉल करण्याआधी एक कॉल डिस्कनेक्ट करा किंवा त्यांना कॉंफरन्स कॉलमध्ये मर्ज करा."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> वापरण्यासाठी, मोबाइल डेटा सुरू केलेला आहे याची खात्री करा. तुम्ही हे मोबाइल नेटवर्क सेटिंग्जमध्ये बदलू शकता."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> वापरण्यासाठी, मोबाइल डेटा आणि डेटा रोमिंग सुरू केलेले आहेत याची खात्री करा. तुम्ही हे मोबाइल नेटवर्क सेटिंग्जमध्ये बदलू शकता."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"नेटवर्क प्रकार ओव्हरराइड करा:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC उपलब्ध:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR प्रतिबंधित:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR उपलब्ध:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR स्थिती:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC उपलब्ध (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR प्रतिबंधित (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR उपलब्ध (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR स्थिती (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR वारंवारता:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"रेडिओ बँड मोड सेट करा"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"बँड सूची लोड करत आहे…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC अधिकार आयडी:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"अपडेट करा"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"रिफ्रेश करा"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"तुमचा ब्लूटूथ सिग्नल कमकुवत आहे. स्पीकरफोनवर स्विच करून पहा."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"कॉल गुणवत्ता सूचना"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"कालबाह्य झालेली SIP खाती"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 4ddb2e6..8dda074 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Mod Paggil Balik Kecemasan"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Sambungan data dilumpuhkan"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Tiada sambungan data hingga <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Telefon akan berada dalam mod Panggilan Balik Kecemasan selama <xliff:g id="COUNT_1">%s</xliff:g> minit. Semasa berada dalam mod ini tiada aplikasi yang menggunakan sambungan data boleh digunakan. Adakah anda mahu keluar sekarang?</item>
-      <item quantity="one">Telefon akan berada dalam mod Panggilan Balik Kecemasan selama <xliff:g id="COUNT_0">%s</xliff:g> seminit. Semasa berada dalam mod ini tiada apl yang menggunakan sambungan data boleh digunakan. Adakah anda mahu keluar sekarang?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Tindakan yang dipilih tidak tersedia semasa berada dalam mod Panggilan Balik Kecemasan. Telefon akan berada dalam mod ini selama <xliff:g id="COUNT_1">%s</xliff:g> minit. Adakah anda mahu keluar sekarang?</item>
-      <item quantity="one">Tindakan yang dipilih tidak tersedia semasa berada dalam mod Panggilan Balik Kecemasan. Telefon akan berada dalam mod ini selama <xliff:g id="COUNT_0">%s</xliff:g> minit. Adakah anda mahu keluar sekarang?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Telefon akan menggunakan mod Panggil Balik Kecemasan selama satu minit. Semasa dalam mod ini, tiada apl yang menggunakan sambungan data boleh digunakan. Adakah anda mahu keluar sekarang?}other{Telefon akan menggunakan mod Panggil Balik Kecemasan selama %s minit. Semasa dalam mod ini, tiada apl yang menggunakan sambungan data boleh digunakan. Adakah anda mahu keluar sekarang?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Tindakan yang dipilih tidak tersedia semasa dalam mod Panggil Balik Kecemasan. Telefon akan menggunakan mod ini selama satu minit. Adakah anda mahu keluar sekarang?}other{Tindakan yang dipilih tidak tersedia semasa dalam mod Panggil Balik Kecemasan. Telefon akan menggunakan mod ini selama %s minit. Adakah anda mahu keluar sekarang?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Tindakan yang dipilih tidak tersedia semasa berada dalam panggilan kecemasan."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Keluar Daripada mod Panggil Balik Kecemasan"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ya"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Telefon akan berada dalam mod panggil balik kecemasan selama satu minit.\nAdakah anda mahu keluar sekarang?}other{Telefon akan berada dalam mod panggil balik kecemasan selama %s minit.\nAdakah anda mahu keluar sekarang?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Kebolehaksesan"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Panggilan Wi-Fi daripada"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Panggilan Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Ketik lagi untuk membuka"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Terdapat ralat semasa menyahkodkan mesej."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Kad SIM telah mengaktifkan perkhidmatan anda dan mengemas kini keupayaan perayauan telefon anda."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Terlalu banyak panggilan aktif. Sila tamatkan atau gabungkan panggilan yang sedia ada sebelum membuat panggilan baharu."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Tidak dapat membuat panggilan kerana panggilan keluar lain sudah pun mendail."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Tidak dapat membuat panggilan kerana terdapat panggilan masuk yang tidak dijawab. Jawab atau tolak panggilan masuk itu sebelum membuat panggilan baharu."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Tidak dapat membuat panggilan kerana panggilan telah dilumpuhkan menggunakan sifat sistem ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Tidak dapat membuat panggilan kerana sudah terdapat dua panggilan yang sedang berlangsung. Putuskan salah satu panggilan itu atau gabungkan panggilan tersebut menjadi panggilan persidangan sebelum membuat panggilan baharu."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Tidak dapat membuat panggilan kerana sudah terdapat dua panggilan yang sedang berlangsung. Putuskan salah satu panggilan itu atau gabungkan panggilan tersebut menjadi panggilan sidang sebelum membuat panggilan baharu."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%s</xliff:g>, pastikan data mudah alih dihidupkan. Anda boleh menukar tetapan ini dalam tetapan rangkaian mudah alih."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Untuk menggunakan <xliff:g id="SUPP_SERVICE">%s</xliff:g>, pastikan data mudah alih dan perayauan data dihidupkan. Anda boleh menukar tetapan ini dalam tetapan rangkaian mudah alih."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Jenis Rangkaian Penggantian:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC Tersedia:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR Terhad:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR Tersedia:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Keadaan NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC Tersedia (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR Terhad (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR Tersedia (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Keadaan NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frekuensi NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Tetapkan Mod Jalur Radio"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Memuatkan Senarai Jalur…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID Kelayakan WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Kemas kini"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Muat semula"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Isyarat bluetooth anda lemah. Cuba beralih kepada fon pembesar suara."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Pemberitahuan Kualiti Panggilan"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Akaun SIP ditamatkan"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 03aea11..d910d15 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one"> အရေးပေါ် ပြန်လည်ခေါ်ဆိုခြင်းမုဒ်တွင် ရွေးချယ်သည့် လုပ်ရပ်မလုပ်ဆောင်နိုင်ပါ။ ဖုန်းသည်ဤ မုဒ်တွင် <xliff:g id="COUNT_0">%s</xliff:g> မိနစ်ရှိနေမည်ဖြစ်သည်။ ယခုထွက်လိုပါသလား?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{ဖုန်းသည် ‘အရေးပေါ် ပြန်လည်ခေါ်ဆိုမုဒ်’ အတွင်း တစ်မိနစ်ကြာ ရှိနေပါမည်။ ဤမုဒ်တွင် ရှိနေစဉ် ဒေတာချိတ်ဆက်မှုသုံးသော အက်ပ်များကို အသုံးပြု၍ မရပါ။ ယခု ထွက်လိုပါသလား။}other{ဖုန်းသည် ‘အရေးပေါ် ပြန်လည်ခေါ်ဆိုမုဒ်’ အတွင်း %s မိနစ်ကြာ ရှိနေပါမည်။ ဤမုဒ်တွင် ရှိနေစဉ် ဒေတာချိတ်ဆက်မှုသုံးသော အပလီကေးရှင်းများကို အသုံးပြု၍ မရပါ။ ယခု ထွက်လိုပါသလား။}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{‘အရေးပေါ် ပြန်လည်ခေါ်ဆိုမုဒ်’ တွင် ရှိနေပါက ရွေးထားသော လုပ်ဆောင်ချက်ကို မရနိုင်ပါ။ ဖုန်းသည် ဤမုဒ်အတွင်း တစ်မိနစ်ကြာ ရှိနေပါမည်။ ယခု ထွက်လိုပါသလား။}other{‘အရေးပေါ် ပြန်လည်ခေါ်ဆိုမုဒ်’ တွင် ရှိနေပါက ရွေးထားသော လုပ်ဆောင်ချက်ကို မရနိုင်ပါ။ ဖုန်းသည် ဤမုဒ်အတွင်း %s မိနစ်ကြာ ရှိနေပါမည်။ ယခု ထွက်လိုပါသလား။}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"ရွေးချယ်ထားသော အပြုအမူမှာ အရေပေါ်ခေါ်ဆိုမှုပြုလုပ်နေစဉ် မရှိနိုင်ပါ"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"အရေးပေါ်ပြန်လည်ခေါ်ဆိုမှု အခြေအနေအား ထွက်ပါမည်"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yes"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{ဖုန်းသည် အရေးပေါ် ပြန်လည်ခေါ်ဆိုမုဒ်အတွင်း တစ်မိနစ်ကြာ ရှိနေပါမည်။\nယခု ထွက်လိုပါသလား။}other{ဖုန်းသည် အရေးပေါ် ပြန်လည်ခေါ်ဆိုမုဒ်အတွင်း %s မိနစ်ကြာ ရှိနေပါမည်။\nယခု ထွက်လိုပါသလား။}}"</string>
     <string name="voicemail_provider" msgid="4158806657253745294">"ဝန်ဆောင်မှု"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"စနစ်သတ်မှတ်ခြင်း"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"သတ်မှတ်မထားပါ"</string>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"အများသုံးနိုင်မှု"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"အောက်ပါမှ Wi-Fi ခေါ်ခြင်း"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"ဝိုင်ဖိုင်ခေါ်ဆိုမှု"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ဖွင့်ရန် ထပ်တို့ပါ"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"အထွက်ခေါ်ဆိုမှု ပြုလုပ်ထားသဖြင့် ဖုန်းထပ်ခေါ်၍ မရနိုင်ပါ။"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"မဖြေကြားရသေးသော အဝင်ခေါ်ဆိုမှု ရှိနေသဖြင့် ဖုန်းခေါ်၍ မရနိုင်ပါ။ ဖုန်းခေါ်ဆိုမှုအသစ် မပြုလုပ်မီ ဖုန်းကိုင်ပါ (သို့) ငြင်းပယ်ပါ။"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ro.telephony.disable-call စနစ် မူပိုင်ခွင့် အသုံးပြုပြီး ခေါ်ဆိုခြင်းကို ပိတ်ထားသဖြင့် ဖုန်းခေါ်၍ မရနိုင်ပါ။"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"ဖုန်းခေါ်ဆိုမှုနှစ်ခုကို ပြုလုပ်နေဆဲ ဖြစ်သဖြင့် ဖုန်းခေါ်၍ မရနိုင်ပါ။ ခေါ်ဆိုမှုအသစ် မပြုလုပ်မီ ၎င်းတို့ထဲမှ တစ်ခုကို ဖုန်းချပါ (သို့) အဖွဲ့လိုက် ပြောဆိုခြင်းအဖြစ် ပေါင်းစည်းပါ။"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"ဖုန်းခေါ်ဆိုမှုနှစ်ခုကို ပြုလုပ်နေသဖြင့် ဖုန်းထပ်ခေါ်၍ မရနိုင်ပါ။ ခေါ်ဆိုမှုအသစ် မပြုလုပ်မီ ၎င်းတို့ထဲမှ တစ်ခုကို ဖုန်းချပါ သို့မဟုတ် အဖွဲ့လိုက် ပြောဆိုခြင်းအဖြစ် ပေါင်းစည်းပါ။"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> အသုံးပြုရန် မိုဘိုင်းဒေတာကို ဖွင့်ထားကြောင်း သေချာပါစေ။ ဤအရာကို မိုဘိုင်းကွန်ရက် ဆက်တင်များတွင် ပြောင်းနိုင်ပါသည်။"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> အသုံးပြုရန် မိုဘိုင်းဒေတာနှင့် ကွန်ရက်ပြင်ပဒေတာ အသုံးပြုခြင်းတို့ကို ဖွင့်ထားကြောင်း သေချာပါစေ။ ဤအရာများကို မိုဘိုင်းကွန်ရက် ဆက်တင်များတွင် ပြောင်းနိုင်ပါသည်။"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"အစားထိုး ကွန်ရက်အမျိုးအစား-"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC အသုံးပြုနိုင်သည် -"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR ကန့်သတ်ထားသည် -"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR အသုံးပြုနိုင်သည် -"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR အခြေအနေ -"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC ရနိုင်သည် (NSA)-"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR ကန့်သတ်ထားသည် (NSA)-"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR ရနိုင်သည် (NSA)-"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR အခြေအနေ (NSA)-"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR ကြိမ်နှုန်း -"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"ရေဒီယိုလိုင်းမုဒ်အဖြစ် သတ်မှတ်ပါ"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"ရေဒီယိုလိုင်းစာရင်းကို ဖွင့်နေသည်…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC ခံစားခွင့် ID-"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"အပ်ဒိတ်လုပ်ရန်"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ပြန်လည်စတင်ရန်"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"သင်၏ ဘလူးတုသ်လိုင်းဆွဲအား မကောင်းပါ။ စပီကာဖုန်းသို့ ပြောင်းကြည့်ပါ။"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"ခေါ်ဆိုမှုအရည်အသွေး အကြောင်းကြားချက်"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"ရပ်ဆိုင်းထားသော SIP အကောင့်များ"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index b956af6..256ce0e 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Modusen nødsamtale-tilbakeringing"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Datatilkobling deaktivert"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Ingen datatilkobling før <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Telefonen er i nødsamtalemodus i <xliff:g id="COUNT_1">%s</xliff:g> minutter. Når telefonen er i denne modusen, kan du ikke bruke apper som krever datatilkobling. Vil du avslutte nå?</item>
-      <item quantity="one">Telefonen er i nødsamtalemodus i <xliff:g id="COUNT_0">%s</xliff:g> minutt. Når telefonen er i denne modusen, kan du ikke bruke apper som krever datatilkobling. Vil du avslutte nå?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Den valgte handlingen er ikke tilgjengelig i nødsamtalemodus. Telefonen er i nødsamtalemodus i <xliff:g id="COUNT_1">%s</xliff:g> minutter. Vil du avslutte nå?</item>
-      <item quantity="one">Den valgte handlingen er ikke tilgjengelig i nødsamtalemodus. Telefonen er i denne modusen i <xliff:g id="COUNT_0">%s</xliff:g> minutt. Vil du avslutte nå?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Telefonen kommer til å være i modus for tilbakeringing av nødanrop i ett minutt. Ingen apper som bruker en datatilkobling, kan brukes i denne modusen. Vil du avslutte nå?}other{Telefonen kommer til å være i modus for tilbakeringing av nødanrop i %s minutter. Ingen apper som bruker en datatilkobling, kan brukes i denne modusen. Vil du avslutte nå?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Den valgte handlingen er ikke tilgjengelig i modus for tilbakeringing av nødanrop. Telefonen kommer til å være i denne modusen i ett minutt. Vil du avslutte nå?}other{Den valgte handlingen er ikke tilgjengelig i modus for tilbakeringing av nødanrop. Telefonen kommer til å være i denne modusen i %s minutter. Vil du avslutte nå?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Den valgte handlingen er ikke mulig under en nødsamtale."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Avslutter modusen nødsamtale-tilbakeringing"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Telefonen kommer til å være i modus for tilbakeringing av nødanrop i ett minutt.\nVil du avslutte nå?}other{Telefonen kommer til å være i modus for tilbakeringing av nødanrop i %s minutter.\nVil du avslutte nå?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Tilgjengelighet"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi-anrop fra"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Oppringing via Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Trykk på nytt for å åpne"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Det oppsto en feil under dekoding av meldingen."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Et SIM-kort har aktivert tjenesten din og oppdatert roamingfunksjonene for telefonen din."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Du har for mange aktive samtaler. Avslutt eller slå sammen eksisterende samtaler før du starter en ny samtale."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Du kan ikke ringe fordi telefonen allerede slår nummeret for et annet utgående anrop."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Du kan ikke ringe fordi du ikke har svart på et innkommende anrop. Svar på eller avvis det innkommende anropet før du ringer på nytt."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Du kan ikke ringe fordi anrop er deaktivert ved hjelp av systemegenskapen ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Du kan ikke ringe fordi to andre anrop allerede pågår. Koble fra ett av anropene eller slå dem sammen i en konferansesamtale, før du ringer på nytt."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Du kan ikke ringe fordi to andre anrop allerede pågår. Koble fra ett av anropene eller slå dem sammen i en konferansesamtale, før du ringer på nytt."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Før du bruker <xliff:g id="SUPP_SERVICE">%s</xliff:g>, må du sørge for at mobildata er slått på. Du kan endre dette i mobilnettverksinnstillingene."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Før du bruker <xliff:g id="SUPP_SERVICE">%s</xliff:g>, må du sørge for at mobildata og data-roaming er slått på. Du kan endre dette i mobilnettverksinnstillingene."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Overstyr nettverkstype:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC tilgjengelig:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR begrenset:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR tilgjengelig:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR-tilstand:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC tilgjengelig (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR begrenset (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR tilgjengelig (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR-tilstand (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR-frekvens:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC-rettighets-ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Oppdater"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Last inn på nytt"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth-signalet er svakt. Prøv å bytte til høyttaleren."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Varsel om anropskvalitet"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Avviklede SIP-kontoer"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 94dacf4..e08713b 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one"> आपत्‌कालीन कलब्याक मोडको समयमा चयनित कार्य उपलब्ध छैन। फोन यस मोडमा <xliff:g id="COUNT_0">%s</xliff:g> मिनेटको लागि हुनेछ। के तपाईं अहिले निस्कन चाहनुहुन्छ?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{यो फोन एक मिनेटसम्म आपत्‌कालीन कलब्याक मोडमा हुने छ। उक्त फोन यो मोडमा हुँदा डेटा कनेक्सन प्रयोग गर्ने कुनै पनि एप प्रयोग गर्न मिल्दैन। तपाईं अहिले नै यो मोडबाट बाहिरिन चाहनुहुन्छ?}other{यो फोन %s मिनेटसम्म आपत्‌कालीन कलब्याक मोडमा हुने छ। उक्त फोन यो मोडमा हुँदा डेटा कनेक्सन प्रयोग गर्ने कुनै पनि एप प्रयोग गर्न मिल्दैन। तपाईं अहिले नै यो मोडबाट बाहिरिन चाहनुहुन्छ?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{आपत्‌कालीन कलब्याक मोडमा हुँदा चयन गरिएको कारबाही गर्न मिल्दैन। फोन एक मिनेटसम्म यो मोडमा हुने छ। तपाईं अहिले नै यो मोडबाट बाहिरिन चाहनुहुन्छ?}other{आपत्‌कालीन कलब्याक मोडमा हुँदा चयन गरिएको कारबाही गर्न मिल्दैन। फोन %s मिनेटसम्म यो मोडमा हुने छ। तपाईं अहिले नै यो मोडबाट बाहिरिन चाहनुहुन्छ?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"आपत्‌कालीन कल हुँदा चयन भएको कार्य उपलब्ध हुँदैन।"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"आपत्‌कालीन कलब्याक मोडबाट निस्कदै"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"हो"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{यो फोन एक मिनेटसम्म आपत्‌कालीन कलब्याक मोडमा हुने छ।\nतपाईं अहिले नै यो मोडबाट बाहिरिन चाहनुहुन्छ?}other{यो फोन %s मिनेटसम्म आपत्‌कालीन कलब्याक मोडमा हुने छ।\nतपाईं अहिले नै यो मोडबाट बाहिरिन चाहनुहुन्छ?}}"</string>
     <string name="voicemail_provider" msgid="4158806657253745294">"सेवा"</string>
     <string name="voicemail_settings" msgid="4451045613238972776">"सेटअप"</string>
     <string name="voicemail_number_not_set" msgid="8831561283386938155">"सेट गरिएको छैन"</string>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"पहुँचता"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"बाट Wi-Fi मार्फत आएको कल"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi कल"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"खोल्न पुनः ट्याप गर्नुहोस्"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"अर्को बहिर्गमन कल पहिले नै डायल भएका हुनाले कल गर्न सकिँदैन।"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"जवाफ नदिइएको आगमन कल जारी रहेकाले नयाँ कल गर्न सकिँदैन। कुनै नयाँ कल गर्नुअघि आगमन कलको जवाफ दिनुहोस् वा त्यसलाई अस्वीकार गर्नुहोस्।"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ro.telephony.disable-call प्रणालीको गुण प्रयोग गरेर कल गर्ने सुविधा असक्षम पारिएको हुनाले कल गर्न सकिँदैन।"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"पहिले नै दुईवटा कलहरू जारी रहेकाले कुनै नयाँ कल गर्न सकिँदैन। नयाँ कल गर्नुअघि हाल जारी कलहरूमध्ये कुनै एउटा कल विच्छेद गर्नुहोस् वा ती दुवैलाई सम्मेलन कलमा गाभ्नुहोस्।"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"पहिले नै दुईवटा कलहरू जारी रहेकाले कुनै नयाँ कल गर्न सकिँदैन। नयाँ कल गर्नुअघि हाल जारी कलहरूमध्ये कुनै एउटा कल डिस्कनेक्ट गर्नुहोस् वा ती दुवैलाई सम्मेलन कलमा मर्ज गर्नुहोस्।"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> प्रयोग गर्न मोबाइल डेटा सक्रिय गरिएको कुरा सुनिश्चित गर्नुहोस्। तपाईं मोबाइल नेटवर्कका सेटिङहरूमा गई यसलाई बदल्न सक्नुहुन्छ।"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> प्रयोग गर्न मोबाइल डेटा र डेटा रोमिङ सक्रिय गरिएको कुरा सुनिश्चित गर्नुहोस्। तपाईं मोबाइल नेटवर्कका सेटिङहरूमा गई यी कुराहरू बदल्न सक्नुहुन्छ।"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"ओभरराइड नेटवर्कको प्रकार:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC उपलब्ध छ:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR प्रतिबन्धित छ:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR उपलब्ध छ:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR को स्थिती:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC उपलब्ध छ (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR प्रतिबन्धित छ (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR उपलब्ध छ (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR को स्थिति (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR फ्रिक्वेन्सी:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"रेडियोको ब्यान्डसम्बन्धी मोडलाई सेट गर्नुहोस्"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"ब्यान्डको सूची लोड गर्दै…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"अपडेट गर्नुहोस्"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"रिफ्रेस गर्नुहोस्"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"ब्लुटुथको सिग्नल कमजोर छ। स्पिकरफोन प्रयोग गरी हेर्नुहोस्।"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"कलको गुणस्तरसम्बन्धी सूचना"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"चल्तीबाट हटाइएका SIP खाताहरू"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 05c83c5..459ecc4 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Modus voor noodoproepen"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Gegevensverbinding staat uit"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Geen dataverbinding tot <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">De telefoon bevindt zich <xliff:g id="COUNT_1">%s</xliff:g> minuten in de modus voor noodoproepen. In deze modus kunnen geen apps worden gebruikt waarvoor een gegevensverbinding nodig is. Wil je nu afsluiten?</item>
-      <item quantity="one">De telefoon bevindt zich <xliff:g id="COUNT_0">%s</xliff:g> minuut in de modus voor noodoproepen. In deze modus kunnen geen apps worden gebruikt waarvoor een gegevensverbinding nodig is. Wil je nu afsluiten?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">De geselecteerde actie is niet beschikbaar in de modus voor noodoproepen. De telefoon bevindt zich <xliff:g id="COUNT_1">%s</xliff:g> minuten in deze modus. Wil je nu afsluiten?</item>
-      <item quantity="one">De geselecteerde actie is niet beschikbaar in de modus voor noodoproepen. De telefoon bevindt zich <xliff:g id="COUNT_0">%s</xliff:g> minuut in deze modus. Wil je nu afsluiten?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{De telefoon blijft 1 minuut in de modus voor noodoproepen. In deze modus kun je geen apps gebruiken waarvoor een dataverbinding nodig is. Wil je nu afsluiten?}other{De telefoon blijft %s minuten in de modus voor noodoproepen. In deze modus kun je geen apps gebruiken waarvoor een dataverbinding nodig is. Wil je nu afsluiten?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{De geselecteerde actie is niet beschikbaar in de modus voor noodoproepen. De telefoon blijft 1 minuut in deze modus. Wil je nu afsluiten?}other{De geselecteerde actie is niet beschikbaar in de modus voor noodoproepen. De telefoon blijft %s minuten in deze modus. Wil je nu afsluiten?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"De geselecteerde actie is niet beschikbaar tijdens noodoproepen."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Modus voor noodoproepen verlaten"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{De telefoon blijft 1 minuut in de modus voor noodoproepen.\nWil je nu afsluiten?}other{De telefoon blijft %s minuten in de modus voor noodoproepen.\nWil je nu afsluiten?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Toegankelijkheid"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wifi-gesprek van"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wifi-gesprek"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tik nogmaals om te openen"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Er is een fout opgetreden tijdens het decoderen van het bericht."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Een simkaart heeft je service geactiveerd en heeft de roaming-mogelijkheden van je telefoon geüpdatet."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Er zijn te veel actieve gesprekken. Beëindig bestaande gesprekken of voeg ze samen voordat je een nieuw gesprek start."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Kan gesprek niet plaatsen omdat er al een uitgaand gesprek is gestart."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Kan gesprek niet plaatsen omdat er een niet-beantwoord inkomend gesprek is. Beantwoord of weiger het inkomende gesprek voordat je een nieuw gesprek plaatst."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Kan gesprek niet plaatsen omdat bellen is uitgezet via de systeemeigenschap ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Kan gesprek niet plaatsen omdat er al twee actieve gesprekken zijn. Verbreek de verbinding in een van de gesprekken of voeg ze samen tot een conferencecall voordat je een nieuw gesprek plaatst."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Kan gesprek niet plaatsen omdat er al 2 actieve gesprekken zijn. Verbreek de verbinding in een van de gesprekken of voeg ze samen tot een conferencecall voordat je een nieuw gesprek plaatst."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Als je <xliff:g id="SUPP_SERVICE">%s</xliff:g> wilt gebruiken, zorg je dat je mobiele data hebt aangezet. Je kunt dit wijzigen via de mobiele netwerkinstellingen."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Als je <xliff:g id="SUPP_SERVICE">%s</xliff:g> wilt gebruiken, zorg je dat je mobiele data en dataroaming hebt aangezet. Je kunt dit wijzigen via de mobiele netwerkinstellingen."</string>
     <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 aangezet voor sim <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Je kunt dit wijzigen via de mobiele netwerkinstellingen."</string>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Netwerktype overschrijven:"</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>
@@ -910,10 +901,10 @@
     <string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Vernieuwen"</string>
     <string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS-controle aan-/uitzetten"</string>
     <string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specifieke gegevens/instellingen"</string>
-    <string name="radio_info_endc_available" msgid="4410653375290113436">"EN-DC beschikbaar:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR beperkt:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR beschikbaar:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR-status:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC beschikbaar (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR beperkt (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR beschikbaar (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR-status (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR-frequentie:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Modus voor radioband instellen"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Bandlijst laden…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC-toegangsrecht-ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Updaten"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Vernieuwen"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Het bluetooth-signaal is zwak. Schakel over naar bellen op luidspreker."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Melding over gesprekskwaliteit"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Beëindigde SIP-accounts"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 708572f..57790ab 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">ଜରୁରିକାଳୀନ କଲବ୍ୟାକ୍ ମୋଡ୍‌ରେ ରହିଥିବା ବେଳେ ଚୟନିତ କାର୍ଯ୍ୟ ଉପଲବ୍ଧ ହେବ ନାହିଁ। ଫୋନ୍ ଏହି ମୋଡ୍‌ରେ <xliff:g id="COUNT_0">%s</xliff:g> ମିନିଟ୍ ପାଇଁ ରହିବ। ବର୍ତ୍ତମାନ ଆପଣ ବାହାରିଯିବାକୁ ଚାହାନ୍ତି କି?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{ଫୋନଟି ଏକ ମିନିଟ ପାଇଁ ଜରୁରୀକାଳୀନ କଲବ୍ୟାକ ମୋଡରେ ରହିବ। ଏହି ମୋଡରେ ଥିବା ସମୟରେ ଡାଟା ସଂଯୋଗ‌କୁ ବ୍ୟବହାର କରୁଥିବା କୌଣସି ଆପକୁ ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ। ଆପଣ ବର୍ତ୍ତମାନ ବାହାରି ଯିବାକୁ ଚାହାଁନ୍ତି?}other{ଫୋନଟି %s ମିନିଟ ପାଇଁ ଜରୁରୀକାଳୀନ କଲବ୍ୟାକ ମୋଡରେ ରହିବ। ଏହି ମୋଡରେ ଥିବା ସମୟରେ ଡାଟା ସଂଯୋଗ‌କୁ ବ୍ୟବହାର କରୁଥିବା କୌଣସି ଆପ୍ଲିକେସନକୁ ବ୍ୟବହାର କରାଯାଇପାରିବ ନାହିଁ। ଆପଣ ବର୍ତ୍ତମାନ ବାହାରି ଯିବାକୁ ଚାହାଁନ୍ତି?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{ଜରୁରୀକାଳୀନ କଲବ୍ୟାକ ମୋଡରେ ଥିବା ସମୟରେ ଚୟନିତ କାର୍ଯ୍ୟଟି ଉପଲବ୍ଧ ନୁହେଁ। ଫୋନଟି ଏହି ମୋଡରେ ଏକ ମିନିଟ ପାଇଁ ରହିବ। ଆପଣ ବର୍ତ୍ତମାନ ବାହାରି ଯିବାକୁ ଚାହାଁନ୍ତି?}other{ଜରୁରୀକାଳୀନ କଲବ୍ୟାକ ମୋଡରେ ଥିବା ସମୟରେ ଚୟନିତ କାର୍ଯ୍ୟଟି ଉପଲବ୍ଧ ନୁହେଁ। ଫୋନଟି ଏହି ମୋଡରେ %s ମିନିଟ ପାଇଁ ରହିବ। ଆପଣ ବର୍ତ୍ତମାନ ବାହାରି ଯିବାକୁ ଚାହାଁନ୍ତି?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"ଜରୁରୀକାଳୀନ କଲ୍ କରୁଥିବାବେଳେ ଚୟନିତ କାର୍ଯ୍ୟ ଉପଲବ୍ଧ ନାହିଁ।"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"ଜରୁରୀକାଳିନ କଲବ୍ୟାକ୍ ମୋଡ୍‌ରୁ ବାହାରି ଆସନ୍ତୁ"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ହଁ"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{ଫୋନଟି ଏକ ମିନିଟ ପାଇଁ ଜରୁରୀକାଳୀନ କଲବ୍ୟାକ ମୋଡରେ ରହିବ। \nଆପଣ ବର୍ତ୍ତମାନ ବାହାରି ଯିବାକୁ ଚାହାଁନ୍ତି?}other{ଫୋନଟି %s ମିନିଟ ପାଇଁ ଜରୁରୀକାଳୀନ କଲବ୍ୟାକ ମୋଡରେ ରହିବ।\nଆପଣ ବର୍ତ୍ତମାନ ବାହାରି ଯିବାକୁ ଚାହାଁନ୍ତି?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"ଆକ୍ସେସିବିଲିଟୀ"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"ଠାରୁ ୱାଇ-ଫାଇ କଲ୍ କରନ୍ତୁ"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"ୱାଇ-ଫାଇ କଲ୍"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ଖୋଲିବା ପାଇଁ ପୁଣି ଟାପ୍‍ କରନ୍ତୁ"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"ପୂର୍ବରୁ ଅନ୍ୟ ଏକ ଆଉଟ୍‌ଗୋଇଂ କଲ୍ ଡାଏଲ୍ କରାଯାଉଥିବା ଯୋଗୁଁ ଏକ କଲ୍ କରିପାରିବେ ନାହିଁ।"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"ଗୋଟିଏ ଉତ୍ତର ଦିଆଯାଇନଥିବା ଇନ୍‌କମିଂ କଲ୍ ଯୋଗୁଁ ଅନ୍ୟ ଏକ କଲ୍ କରିପାରିବେ ନାହିଁ । ଏକ ନୂତନ କଲ୍ କରିବା ପୂର୍ବରୁ ଇନ୍‌କମିଂ କଲ୍‌ଟିର ଉତ୍ତର ଦିଅନ୍ତୁ କିମ୍ବା ଏହାକୁ ଅଗ୍ରାହ୍ୟ କରନ୍ତୁ।"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ro.telephony.disable-call ସିଷ୍ଟମ୍ ଗୁଣର ପ୍ରୟୋଗ କରି କଲ୍ କରିବାର ସୁବିଧାକୁ ଅକ୍ଷମ କରାଯାଇଥିବା ଯୋଗୁଁ ଏକ କଲ୍ କରାଯାଇପାରିବ ନାହିଁ।"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"ଏକାସଙ୍ଗେ ଦୁଇଟି କଲ୍ ପ୍ରକ୍ରିୟାରେ ଥିବା ଯୋଗୁଁ ଏକ କଲ୍ କରାଯାଇପାରିବ ନାହିଁ। ଏକ ନୂତନ କଲ୍ କରିବା ପୂର୍ବରୁ ଗୋଟିଏ କଲ୍‌କୁ ବିଚ୍ଛିନ୍ନ କରନ୍ତୁ କିମ୍ବା ଉଭୟ କଲ୍‌କୁ ଯୋଡ଼ି ଏକ କନ୍ଫରେନସ୍ କଲ୍‌ରେ ପରିଣତ କରନ୍ତୁ।"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"ପୂର୍ବରୁ ଦୁଇଟି କଲ୍ ଚାଲୁଥିବା ଯୋଗୁଁ ଆଉ ଏକ କଲ୍ କରାଯାଇପାରିବ ନାହିଁ। ଏକ ନୂଆ କଲ୍ କରିବା ପୂର୍ବରୁ ଗୋଟିଏ କଲ୍ ବିଚ୍ଛିନ୍ନ କରନ୍ତୁ କିମ୍ବା ସେଗୁଡ଼ିକୁ ଏକ କନଫରେନ୍ସ କଲରେ ମର୍ଜ କରନ୍ତୁ।"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ବ୍ୟବହାର କରିବାକୁ, ମୋବାଇଲ ଡାଟା ଚାଲୁଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ। ଆପଣ ଏହାକୁ ମୋବାଇଲ ନେଟୱାର୍କ ସେଟିଂସରେ ପରିବର୍ତ୍ତନ କରିପାରିବେ।"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ବ୍ୟବହାର କରିବାକୁ, ମୋବାଇଲ୍ ଡାଟା ଏବଂ ଡାଟା ରୋମିଂ ଚାଲୁ ଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ। ଆପଣ ଏହାକୁ ମୋବାଇଲ୍ ନେଟ୍‌ୱର୍କ ସେଟିଂସ୍‌ରେ ବଦଳାଇପାରିବେ।"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"ନେଟୱାର୍କ ପ୍ରକାରକୁ ଓଭରରାଇଡ କରନ୍ତୁ:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC ଉପଲବ୍ଧ:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR ପ୍ରତିବନ୍ଧିତ:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR ଉପଲବ୍ଧ:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR ସ୍ଥିତି:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC ଉପଲବ୍ଧ (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR ପ୍ରତିବନ୍ଧିତ (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR ଉପଲବ୍ଧ (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR ସ୍ଥିତି (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR ଫ୍ରିକ୍ୱେନ୍ସୀ:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"ରେଡିଓ ବ୍ୟାଣ୍ଡ ମୋଡ୍ ସେଟ୍ କରନ୍ତୁ"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"ବ୍ୟାଣ୍ଡ ତାଲିକା ଲୋଡ୍ କରାଯାଉଛି…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC ଏନଟାଇଟେଲମେଣ୍ଟ ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"ଅପଡେଟ କରନ୍ତୁ"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ରିଫ୍ରେସ କରନ୍ତୁ"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"ଆପଣଙ୍କ ବ୍ଲୁଟୁଥ୍ ସିଗନାଲ୍ ଦୁର୍ବଳ ଅଛି। ସ୍ପିକରଫୋନକୁ ସ୍ୱିଚ୍ କରିବା ପାଇଁ ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"କଲ୍ ଗୁଣବତ୍ତା ବିଜ୍ଞପ୍ତି"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"ଅସମର୍ଥିତ SIP ଆକାଉଣ୍ଟଗୁଡ଼ିକ"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index e4883ef..f19c231 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">ਫੋਨ <xliff:g id="COUNT_1">%s</xliff:g> ਮਿੰਟਾਂ ਲਈ ਐਮਰਜੈਂਸੀ ਕਾਲਬੈਕ ਮੋਡ ਵਿੱਚ ਹੋ ਜਾਏਗਾ। ਇਸ ਮੋਡ ਵਿੱਚ ਹੋਣ ਵੇਲੇ ਇੱਕ ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਵਰਤ ਰਹੇ ਕੋਈ ਵੀ ਐਪਲੀਕੇਸ਼ਨ ਵਰਤੇ ਨਹੀਂ ਜਾ ਸਕਦੇ ਹਨ।  ਕੀ ਤੁਸੀਂ ਹੁਣ ਬਾਹਰ ਜਾਣਾ ਚਾਹੁੰਦੇ ਹੋ?</item>
-      <item quantity="other">ਫੋਨ <xliff:g id="COUNT_1">%s</xliff:g> ਮਿੰਟਾਂ ਲਈ ਐਮਰਜੈਂਸੀ ਕਾਲਬੈਕ ਮੋਡ ਵਿੱਚ ਹੋ ਜਾਏਗਾ। ਇਸ ਮੋਡ ਵਿੱਚ ਹੋਣ ਵੇਲੇ ਇੱਕ ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਵਰਤ ਰਹੇ ਕੋਈ ਵੀ ਐਪਲੀਕੇਸ਼ਨ ਵਰਤੇ ਨਹੀਂ ਜਾ ਸਕਦੇ ਹਨ।  ਕੀ ਤੁਸੀਂ ਹੁਣ ਬਾਹਰ ਜਾਣਾ ਚਾਹੁੰਦੇ ਹੋ?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">ਚੁਣੀ ਗਈ ਕਿਰਿਆ ਐਮਰਜੈਂਸੀ ਕਾਲਬੈਕ ਮੋਡ ਵਿੱਚ ਹੋਣ ਵੇਲੇ ਉਪਲਬਧ ਨਹੀਂ ਹੁੰਦੀ ਹੈ। ਫੋਨ <xliff:g id="COUNT_1">%s</xliff:g> ਮਿੰਟਾਂ ਲਈ ਇਸ ਮੋਡ ਵਿੱਚ ਹੋਵੇਗਾ। ਕੀ ਤੁਸੀਂ ਹੁਣ ਬਾਹਰ ਜਾਣਾ ਚਾਹੁੰਦੇ ਹੋ?</item>
-      <item quantity="other">ਚੁਣੀ ਗਈ ਕਿਰਿਆ ਐਮਰਜੈਂਸੀ ਕਾਲਬੈਕ ਮੋਡ ਵਿੱਚ ਹੋਣ ਵੇਲੇ ਉਪਲਬਧ ਨਹੀਂ ਹੁੰਦੀ ਹੈ। ਫੋਨ <xliff:g id="COUNT_1">%s</xliff:g> ਮਿੰਟਾਂ ਲਈ ਇਸ ਮੋਡ ਵਿੱਚ ਹੋਵੇਗਾ। ਕੀ ਤੁਸੀਂ ਹੁਣ ਬਾਹਰ ਜਾਣਾ ਚਾਹੁੰਦੇ ਹੋ?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"ਚੁਣੀ ਗਈ ਕਿਰਿਆ ਐਮਰਜੈਂਸੀ ਕਾਲਬੈਕ ਮੋਡ ਵਿੱਚ ਹੋਣ ਵੇਲੇ ਉਪਲਬਧ ਨਹੀਂ ਹੁੰਦੀ ਹੈ।"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"ਐਮਰਜੈਂਸੀ ਕਾਲਬੈਕ ਮੋਡ ਵਿੱਚੋਂ ਬਾਹਰ ਜਾ ਰਿਹਾ ਹੈ"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ਹਾਂ"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"ਪਹੁੰਚਯੋਗਤਾ"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"ਇਸ ਤੋਂ Wi-Fi ਕਾਲ"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi ਕਾਲ"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"ਖੋਲ੍ਹਣ ਲਈ ਦੁਬਾਰਾ ਟੈਪ ਕਰੋ"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਕਿਉਂਕਿ ਇੱਕ ਹੋਰ ਆਊਟਗੋਇੰਗ ਕਾਲ ਪਹਿਲਾਂ ਹੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ।"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਕਿਉਂਕਿ ਇੱਕ ਜਵਾਬ ਨਾ ਦਿੱਤੀ ਗਈ ਇਨਕਮਿੰਗ ਕਾਲ ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਆ ਰਹੀ ਹੈ। ਨਵੀਂ ਕਾਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇਨਕਮਿੰਗ ਕਾਲ ਦਾ ਜਵਾਬ ਦਿਓ ਜਾਂ ਅਸਵੀਕਾਰ ਕਰੋ।"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਕਿਉਂਕਿ ਕਾਲਿੰਗ ਨੂੰ ro.telephony.disable-call ਸਿਸਟਮ ਪ੍ਰਾਪਰਟੀ ਵਰਤ ਕੇ ਬੰਦ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ।"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"ਪਹਿਲਾਂ ਤੋਂ ਦੋ ਕਾਲਾਂ ਚਾਲੂ ਹੋਣ ਕਰਕੇ ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਨਵੀਂ ਕਾਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਕਾਲ ਨੂੰ ਡਿਸਕਨੈਕਟ ਕਰੋ ਜਾਂ ਦੋਨੋਂ ਕਾਲਾਂ ਨੂੰ ਮਿਲਾ ਕੇ ਕਾਨਫਰੰਸ ਕਾਲ ਵਿੱਚ ਬਦਲੋ।"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"ਪਹਿਲਾਂ ਤੋਂ ਦੋ ਕਾਲਾਂ ਚਾਲੂ ਹੋਣ ਕਰਕੇ ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਨਵੀਂ ਕਾਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਕਾਲ ਨੂੰ ਡਿਸਕਨੈਕਟ ਕਰੋ ਜਾਂ ਦੋਨੋਂ ਕਾਲਾਂ ਨੂੰ ਮਿਲਾ ਕੇ ਕਾਨਫਰੰਸ ਕਾਲ ਵਿੱਚ ਬਦਲੋ।"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ਨੂੰ ਵਰਤਣ ਲਈ, ਪੱਕਾ ਕਰੋ ਕਿ ਮੋਬਾਈਲ ਡਾਟਾ ਚਾਲੂ ਹੋਵੇ। ਤੁਸੀਂ ਇਸਨੂੰ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> ਨੂੰ ਵਰਤਣ ਲਈ, ਪੱਕਾ ਕਰੋ ਕਿ ਮੋਬਾਈਲ ਡਾਟਾ ਅਤੇ ਡਾਟਾ ਰੋਮਿੰਗ ਦੋਨੋਂ ਚਾਲੂ ਹੋਣ। ਤੁਸੀਂ ਇਹਨਾਂ ਨੂੰ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"ਓਵਰਰਾਈਡ ਨੈੱਟਵਰਕ ਕਿਸਮ:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC ਉਪਲਬਧ:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR ਪ੍ਰਤਿਬੰਧਿਤ:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR ਉਪਲਬਧ:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR ਸਥਿਤੀ:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC ਉਪਲਬਧ (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR ਪ੍ਰਤਿਬੰਧਿਤ (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR ਉਪਲਬਧ (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR ਸਥਿਤੀ (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR ਵਾਰਵਾਰਤਾ:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"ਰੇਡੀਓ ਬੈਂਡ ਮੋਡ ਸੈੱਟ ਕਰੋ"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"ਬੈਂਡ ਸੂਚੀ ਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC ਹੱਕਦਾਰੀ ਆਈਡੀ:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"ਅੱਪਡੇਟ ਕਰੋ"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ਰਿਫ੍ਰੈਸ਼ ਕਰੋ"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"ਤੁਹਾਡਾ ਬਲੂਟੁੱਥ ਸਿਗਨਲ ਕਮਜ਼ੋਰ ਹੈ। ਸਪੀਕਰਫ਼ੋਨ \'ਤੇ ਲਿਜਾ ਕੇ ਦੇਖੋ।"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"ਕਾਲ ਦੀ ਕੁਆਲਿਟੀ ਸੰਬੰਧੀ ਸੂਚਨਾ"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"ਨਾਪਸੰਦ ਕੀਤੇ SIP ਖਾਤੇ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 006693b..c6de1b1 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -637,18 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Tryb alarmowego połączenia zwrotnego"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Połączenie transmisji danych jest wyłączone"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Brak połączenia transmisji danych do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="few">Telefon będzie w trybie alarmowego połączenia zwrotnego przez <xliff:g id="COUNT_1">%s</xliff:g> minuty. W tym trybie nie można używać aplikacji, które korzystają z połączenia transmisji danych. Chcesz zakończyć tryb teraz?</item>
-      <item quantity="many">Telefon będzie w trybie alarmowego połączenia zwrotnego przez <xliff:g id="COUNT_1">%s</xliff:g> minut. W tym trybie nie można używać aplikacji, które korzystają z połączenia transmisji danych. Chcesz zakończyć tryb teraz?</item>
-      <item quantity="other">Telefon będzie w trybie alarmowego połączenia zwrotnego przez <xliff:g id="COUNT_1">%s</xliff:g> minuty. W tym trybie nie można używać aplikacji, które korzystają z połączenia transmisji danych. Chcesz zakończyć tryb teraz?</item>
-      <item quantity="one">Telefon będzie w trybie alarmowego połączenia zwrotnego przez <xliff:g id="COUNT_0">%s</xliff:g> minutę. W tym trybie nie można używać aplikacji, które korzystają z połączenia transmisji danych. Chcesz zakończyć tryb teraz?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="few">Wybrana czynność jest niedostępna w trybie alarmowego połączenia zwrotnego. Telefon będzie w tym trybie przez <xliff:g id="COUNT_1">%s</xliff:g> minuty. Chcesz zakończyć tryb teraz?</item>
-      <item quantity="many">Wybrana czynność jest niedostępna w trybie alarmowego połączenia zwrotnego. Telefon będzie w tym trybie przez <xliff:g id="COUNT_1">%s</xliff:g> minut. Chcesz zakończyć tryb teraz?</item>
-      <item quantity="other">Wybrana czynność jest niedostępna w trybie alarmowego połączenia zwrotnego. Telefon będzie w tym trybie przez <xliff:g id="COUNT_1">%s</xliff:g> minuty. Chcesz zakończyć tryb teraz?</item>
-      <item quantity="one">Wybrana czynność jest niedostępna w trybie alarmowego połączenia zwrotnego. Telefon będzie w tym trybie przez <xliff:g id="COUNT_0">%s</xliff:g> minutę. Chcesz zakończyć tryb teraz?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Wybrana akcja jest niedostępna przy nawiązanym połączeniu alarmowym."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Kończenie trybu alarmowego połączenia zwrotnego"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Tak"</string>
@@ -656,12 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -689,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Ułatwienia dostępu"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Połączenie przez Wi-Fi od:"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Połączenie przez Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Dotknij ponownie, by otworzyć"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Podczas dekodowania wiadomości wystąpił błąd."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Karta SIM aktywowała usługę i zaktualizowała funkcje roamingowe telefonu."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Masz za dużo aktywnych połączeń. Scal lub zakończ istniejące połączenia, aby nawiązać nowe."</string>
@@ -833,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Nie można nawiązać połączenia, ponieważ inne połączenie jest już nawiązywane."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Nie można nawiązać połączenia, ponieważ masz nieodebrane połączenie przychodzące. Odbierz je lub odrzuć przed nawiązaniem nowego."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Nie można nawiązać połączenia, ponieważ ta funkcja została wyłączona przy użyciu właściwości systemowej ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Nie można nawiązać połączenia, ponieważ trwają już dwa inne połączenia. Zakończ jedno z nich lub scal je w połączenie konferencyjne, aby móc nawiązać nowe połączenie."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Nie można nawiązać połączenia, ponieważ trwają już 2 inne połączenia. Aby nawiązać nowe połączenie, zakończ jedno z nich lub scal je w połączenie konferencyjne."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Aby używać usługi <xliff:g id="SUPP_SERVICE">%s</xliff:g>, włącz mobilną transmisję danych w ustawieniach sieci komórkowej."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Aby używać usługi <xliff:g id="SUPP_SERVICE">%s</xliff:g>, włącz mobilną transmisję danych i roaming danych w ustawieniach sieci komórkowej."</string>
     <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>
@@ -905,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Zastępuj typ sieci:"</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>
@@ -916,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"Dostępne EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"Ograniczenie DCNR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"Dostępne NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Stan NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"Dostępne EN-DC (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"Ograniczenie DCNR (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"Dostępne NR (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Stan NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Częstotliwość NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Ustawianie trybu pasma radiowego"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Ładuję listę pasm…"</string>
@@ -930,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Identyfikator uprawnienia dotyczącego połączeń przez Wi-Fi:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Aktualizuj"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Odśwież"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Twój sygnał Bluetooth jest słaby. Spróbuj przełączyć na głośnik."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Powiadomienie o jakości połączenia"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Wycofane konta SIP"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 5522dcc..586cb7f 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Modo de Chamada de Retorno de Emergência"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Ligação de dados desativada"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Sem ligação de dados até à(s) <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">O telemóvel fica no modo de Chamada de emergência durante <xliff:g id="COUNT_1">%s</xliff:g> minutos. Neste modo, não é possível utilizar aplicações com uma ligação de dados. Pretende sair agora?</item>
-      <item quantity="one">O telemóvel fica no modo de Chamada de emergência durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. Neste modo, não é possível utilizar aplicações com uma ligação de dados. Pretende sair agora?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">A ação selecionada não está disponível no modo de Chamada de emergência. O telemóvel fica neste modo durante <xliff:g id="COUNT_1">%s</xliff:g> minutos. Pretende sair agora?</item>
-      <item quantity="one">A ação selecionada não está disponível no modo de Chamada de emergência. O telemóvel fica neste modo durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. Pretende sair agora?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{O telemóvel ficará no modo de chamada de retorno de emergência durante um minuto. Enquanto estiver neste modo, não é possível utilizar aplicações que utilizem uma ligação de dados. Pretende sair agora?}other{O telemóvel ficará no modo de chamada de retorno de emergência durante %s minutos. Enquanto estiver neste modo, não é possível utilizar aplicações que utilizem uma ligação de dados. Pretende sair agora?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{A ação selecionada não está disponível no modo de chamada de retorno de emergência. O telemóvel ficará neste modo durante um minuto. Pretende sair agora?}other{A ação selecionada não está disponível no modo de chamada de retorno de emergência. O telemóvel ficará neste modo durante %s minutos. Pretende sair agora?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"A ação selecionada não está disponível durante uma chamada de emergência."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"A sair do modo de chamada de retorno de emergência"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sim"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{O telemóvel ficará no modo de chamada de retorno de emergência durante um minuto.\nPretende sair agora?}other{O telemóvel ficará no modo de chamada de retorno de emergência durante %s minutos.\nPretende sair agora?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Acessibilidade"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Chamada a partir da rede Wi-Fi de"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Chamada Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Toque novamente para abrir"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Ocorreu um erro durante a descodificação da mensagem."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Um cartão SIM ativou o seu serviço e atualizou as capacidades de roaming do seu telemóvel."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Existem demasiadas chamadas ativas. Termine ou intercale as chamadas existentes antes de efetuar uma nova chamada."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Não é possível efetuar uma chamada porque já está a ser efetuada outra chamada."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Não pode efetuar uma chamada porque há uma chamada recebida não atendida. Atenda ou rejeite a chamada recebida antes de efetuar uma nova chamada."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Não pode efetuar uma chamada porque as chamadas foram desativadas através da propriedade de sistema ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Não pode efetuar uma chamada porque já estão em curso duas chamadas. Desligue uma das chamadas ou una-as numa conferência antes de efetuar uma nova chamada."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Não pode efetuar uma chamada porque já estão em curso duas chamadas. Desligue uma das chamadas ou una-as numa conferência antes de efetuar uma nova chamada."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Para utilizar o/a <xliff:g id="SUPP_SERVICE">%s</xliff:g>, certifique-se de que os dados móveis estão ativados. Pode alterar esta definição nas definições de rede móvel."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Para utilizar o/a <xliff:g id="SUPP_SERVICE">%s</xliff:g>, certifique-se de que os dados móveis e o roaming de dados estão ativados. Pode alterar estas definições nas definições de rede móvel."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Substituir tipo de rede:"</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 do anfitrião de ping (www.google.com) IPv4:"</string>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC disponível:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR restrito:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR disponível:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Estado NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC disponível (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR restrito (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR disponível (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Estado NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frequência NR:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID de direito de utilização de WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Atualizar"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Atualizar"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"O seu sinal Bluetooth é fraco. Tente mudar para o altifalante."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Notificação de qualidade da chamada"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Contas SIP descontinuadas"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index b1b1a2f..ced0b61 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Modo de retorno de chamada de emergência"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Conexão de dados desativada"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Sem conexão de dados até <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">O smartphone ficará no modo de retorno de chamada de emergência por <xliff:g id="COUNT_1">%s</xliff:g> minutos. Nesse modo, não será possível usar apps que utilizem conexão de dados. 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. Nesse modo, não será possível usar apps que utilizem conexão de dados. Quer sair agora?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">A ação selecionada não está disponível no modo de retorno de chamada de emergência. O smartphone ficará nesse modo por <xliff:g id="COUNT_1">%s</xliff:g> minutos. Quer sair agora?</item>
-      <item quantity="other">A ação selecionada não está disponível no modo de retorno de chamada de emergência. O smartphone ficará nesse modo por <xliff:g id="COUNT_1">%s</xliff:g> minutos. Quer sair agora?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"A ação selecionada não está disponível durante uma chamada de emergência."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Saindo do modo de retorno de chamada de emergência"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Sim"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Acessibilidade"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Chamada via Wi-Fi de"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Chamada por Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Toque novamente para abrir"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Ocorreu um erro ao decodificar a mensagem."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Um chip ativou seu serviço e atualizou os recursos de roaming do smartphone."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Há muitas chamadas ativas. Finalize ou mescle as chamadas existentes antes de fazer uma nova."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Não é possível ligar porque há outra chamada sendo realizada."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Não é possível ligar porque há uma chamada recebida que não foi atendida. Atenda ou rejeite essa chamada antes de fazer outra."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Não é possível ligar porque as chamadas foram desativadas pela propriedade \"ro.telephony.disable-call system\"."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Não é possível ligar porque já há duas chamadas em andamento. Encerre uma das chamadas ou mescle-as em uma conferência antes de fazer outra."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Não é possível ligar porque já há duas chamadas em andamento. Encerre uma das chamadas ou mescle-as em uma conferência antes de fazer outra."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Verifique se os dados móveis estão ativados para usar este serviço: <xliff:g id="SUPP_SERVICE">%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" msgid="670342104569972327">"Verifique se os dados móveis e o roaming de dados estão ativados para usar este serviço: <xliff:g id="SUPP_SERVICE">%s</xliff:g>. Você pode alterar essa opção nas configurações da rede móvel."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Substituir tipo de rede:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC disponível:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR restrita:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR disponível:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Estado do NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC disponível (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR restrito (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR disponível (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Estado NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frequência do NR:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID de direito WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Atualizar"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Atualizar"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"O sinal do Bluetooth está fraco. Mude para o viva-voz."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Notificação sobre a qualidade da chamada"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Contas SIP suspensas"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 326cc52..037efa8 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -637,16 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Mod de apelare inversă de urgență"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Conexiune de date dezactivată"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Nicio conexiune de date până la <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="few">Telefonul va fi în modul Apelare inversă de urgență pentru <xliff:g id="COUNT_1">%s</xliff:g> minute. Când telefonul este în acest mod, nu se poate folosi nicio aplicație care necesită o conexiune de date. Doriți să ieșiți acum?</item>
-      <item quantity="other">Telefonul va fi în modul Apelare inversă de urgență pentru <xliff:g id="COUNT_1">%s</xliff:g> de minute. Când telefonul este în acest mod, nu se poate folosi nicio aplicație care necesită o conexiune de date. Doriți să ieșiți acum?</item>
-      <item quantity="one">Telefonul va fi în modul Apelare inversă de urgență pentru <xliff:g id="COUNT_0">%s</xliff:g> minut. Când telefonul este în acest mod, nu se poate folosi nicio aplicație care necesită o conexiune de date. Doriți să ieșiți acum?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="few">Acțiunea selectată nu este disponibilă când telefonul este în modul Apelare inversă de urgență. Telefonul va fi în acest mod pentru <xliff:g id="COUNT_1">%s</xliff:g> minute. Doriți să ieșiți acum?</item>
-      <item quantity="other">Acțiunea selectată nu este disponibilă când telefonul este în modul Apelare inversă de urgență. Telefonul va fi în acest mod pentru <xliff:g id="COUNT_1">%s</xliff:g> de minute. Doriți să ieșiți acum?</item>
-      <item quantity="one">Acțiunea selectată nu este disponibilă când telefonul este în modul Apelare inversă de urgență. Telefonul va fi în acest mod pentru <xliff:g id="COUNT_0">%s</xliff:g> minut. Doriți să ieșiți acum?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Acțiunea selectată nu este disponibilă în timpul efectuării unui apel de urgență."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Se iese din modul Apelare inversă de urgență"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
@@ -654,11 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -686,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Accesibilitate"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Apel prin Wi-Fi de la"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Apel prin Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Atingeți din nou pentru a deschide"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"A apărut o eroare la decodificarea mesajului."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Un card SIM a activat serviciul și a actualizat funcțiile de roaming ale telefonului."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Prea multe apeluri active. Încheiați sau îmbinați apeluri existente înainte de a iniția unul nou."</string>
@@ -830,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Nu se poate iniția un apel când se efectuează deja alt apel."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Nu se poate iniția un apel când primiți un apel la care nu ați răspuns. Răspundeți sau respingeți apelul primit înainte de a iniția un apel nou."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Nu se poate iniția un apel deoarece apelarea a fost dezactivată folosindu-se funcția de sistem ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Nu se poate iniția un apel când există deja două apeluri în desfășurare. Deconectați unul dintre ele sau îmbinați-le într-o conferință înainte de a iniția un apel nou."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Nu se poate iniția un apel când există deja două apeluri în desfășurare. Deconectați unul dintre ele sau îmbinați-le într-o conferință înainte de a iniția un apel nou."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%s</xliff:g>, datele mobile trebuie să fie activate. Puteți modifica acest lucru în setările rețelei mobile."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Pentru a folosi <xliff:g id="SUPP_SERVICE">%s</xliff:g>, datele mobile și roamingul de date trebuie să fie activate. Puteți modifica acest lucru în setările rețelei mobile."</string>
     <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>
@@ -902,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Modificați tipul de rețea:"</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>
@@ -913,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"Disponibilă EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"Restricționată DCNR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"Disponibilă NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Stare NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"Disponibil EN-DC (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"Restricționat DCNR (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"Disponibil NR (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Stare NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frecvență NR:"</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>
@@ -927,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Cod pentru dreptul de acces WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Actualizați"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Actualizați"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Semnalul Bluetooth este slab. Încercați să folosiți difuzorul."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Notificare privind calitatea apelului"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Conturi SIP învechite"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 4a6ee96..7353539 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -637,18 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Режим экстренных обратных вызовов будет действовать ещё <xliff:g id="COUNT_1">%s</xliff:g> минуту. При этом будут недоступны приложения с поддержкой передачи данных. Выйти?</item>
-      <item quantity="few">Режим экстренных обратных вызовов будет действовать ещё <xliff:g id="COUNT_1">%s</xliff:g> минуты. При этом будут недоступны приложения с поддержкой передачи данных. Выйти?</item>
-      <item quantity="many">Режим экстренных обратных вызовов будет действовать ещё <xliff:g id="COUNT_1">%s</xliff:g> минут. При этом будут недоступны приложения с поддержкой передачи данных. Выйти?</item>
-      <item quantity="other">Режим экстренных обратных вызовов будет действовать ещё <xliff:g id="COUNT_1">%s</xliff:g> минуты. При этом будут недоступны приложения с поддержкой передачи данных. Выйти?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Эта операция недоступна в режиме экстренных обратных вызовов. Телефон останется в этом режиме ещё на <xliff:g id="COUNT_1">%s</xliff:g> минуту. Выйти?</item>
-      <item quantity="few">Эта операция недоступна в режиме экстренных обратных вызовов. Телефон останется в этом режиме ещё <xliff:g id="COUNT_1">%s</xliff:g> минуты. Выйти?</item>
-      <item quantity="many">Эта операция недоступна в режиме экстренных обратных вызовов. Телефон останется в этом режиме ещё на <xliff:g id="COUNT_1">%s</xliff:g> минут. Выйти?</item>
-      <item quantity="other">Эта операция недоступна в режиме экстренных обратных вызовов. Телефон останется в этом режиме ещё на <xliff:g id="COUNT_1">%s</xliff:g> минуты. Выйти?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Выбранное действие невозможно при экстренном вызове."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Выход из режима экстренных обратных вызовов"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Да"</string>
@@ -656,12 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -689,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Специальные возможности"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Вызов по Wi-Fi от"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi-звонок"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Чтобы открыть, нажмите ещё раз"</string>
     <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>
@@ -833,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Невозможно позвонить, поскольку ещё не завершен другой исходящий вызов."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Невозможно позвонить, поскольку вы не ответили на входящий вызов. Примите или отклоните текущий звонок."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Невозможно позвонить, поскольку вызовы запрещены системным свойством ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Невозможно позвонить, поскольку ещё не завершены два текущих вызова. Чтобы начать звонок, сбросьте один из вызовов или объедините их в конференцию."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Невозможно позвонить, поскольку ещё не завершены два текущих вызова. Сбросьте один из вызовов или объедините их в конференцию."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Для работы этого сервиса (<xliff:g id="SUPP_SERVICE">%s</xliff:g>) необходимо подключение к мобильному Интернету. Этот параметр можно изменить в настройках мобильной сети."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Для работы этого сервиса (<xliff:g id="SUPP_SERVICE">%s</xliff:g>) необходимо подключение к мобильному Интернету и интернет-роумингу. Эти параметры можно изменить в настройках мобильной сети."</string>
     <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>
@@ -905,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Переопределение типа сети:"</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>
@@ -916,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC доступно:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR ограничено:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR доступно:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Состояние NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC доступно (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR с ограничениями (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR доступно (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Статус NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Частота NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Настроить режим сети"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Загрузка списка частот…"</string>
@@ -930,6 +915,12 @@
     <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>
+    <!-- no translation found for provisioning_info_wfc_entitlement_id (8845188780811890910) -->
+    <skip />
+    <!-- no translation found for update_provisioning_info_wfc_entitlement_id (7044171908781134221) -->
+    <skip />
+    <!-- no translation found for refresh_provisioning_info_wfc_entitlement_id (738894335351353407) -->
+    <skip />
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Слабый сигнал Bluetooth. Попробуйте переключиться на громкую связь."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Уведомление о качестве связи"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Неподдерживаемые SIP-аккаунты"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 7efc245..2d387f4 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">දුරකථනය මිනිත්තු <xliff:g id="COUNT_1">%s</xliff:g> ක් හදිසි ආපසු ඇමතුම් ආකාරය තුළ වනු ඇත. මෙම ආකාරය තුළ සිටින අතරතුර දත්ත සම්බන්ධයක් භාවිත කරන යෙදුම් කිසිවක් භාවිත කළ නොහැකිය. ඔබට දැන් පිටවීමට අවශ්යද?</item>
-      <item quantity="other">දුරකථනය මිනිත්තු <xliff:g id="COUNT_1">%s</xliff:g> ක් හදිසි ආපසු ඇමතුම් ආකාරය තුළ වනු ඇත. මෙම ආකාරය තුළ සිටින අතරතුර දත්ත සම්බන්ධයක් භාවිත කරන යෙදුම් කිසිවක් භාවිත කළ නොහැකිය. ඔබට දැන් පිටවීමට අවශ්යද?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one"> හදිසි ආපසු ඇමතුම් ආකාරය තුළ සිටියදී තෝරන ලද ක්‍රියාව ලබාගත නොහැක. දුරකථනය මිනිත්තු <xliff:g id="COUNT_1">%s</xliff:g> ක් හදිසි ආපසු ඇමතුම් ආකාරය තුළ වනු ඇත. ඔබට දැන් පිටවීමට අවශ්යද?</item>
-      <item quantity="other"> හදිසි ආපසු ඇමතුම් ආකාරය තුළ සිටියදී තෝරන ලද ක්‍රියාව ලබාගත නොහැක. දුරකථනය මිනිත්තු <xliff:g id="COUNT_1">%s</xliff:g> ක් හදිසි ආපසු ඇමතුම් ආකාරය තුළ වනු ඇත. ඔබට දැන් පිටවීමට අවශ්යද?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"හදිසි ඇමතුමක් අතර තුර තෝරන ලද ක්‍රියාව ලබාගත නොහැක."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"හදිසි ආපසු ඇමතුම් ආකාරයෙන් පිට වෙමින්"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ඔව්"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"ප්‍රවේශ්‍යතාව"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"වෙතින් Wi-Fi ඇමතුම"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi ඇමතුම"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"විවෘත කිරීමට නැවත තට්ටු කරන්න"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"තවත් යන ඇමතුමක් දැනටමත් ඩයල් කරමින් පවතින නිසා අැමතුමක් ගැනීමට නොහැකිය."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"පිළිතුරු නොදුන් එන ඇමතුමක් තිබෙන නිසා අැමතුමක් ගැනීමට නොහැකිය. නව ඇමතුමක් ගැනීමට පෙර එන අැමතුමට පිළිතුරු දෙන්න නැතහොත් ප්‍රතික්ෂේප කරන්න."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ඇමතුම ro.telephony.disable-call පද්ධති ගුණාංගය භාවිතයෙන් ඇමතුම අබල කර ඇති නිසා ඇමතුමක් ගැනීමට නොහැකිය."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"දැනටමත් ඇමතුම් දෙකක් කෙරෙමින් පවතින නිසා ඇමතුමක් ගැනීමට නොහැකිය. නව ඇමතුමක් ගැනීමට පෙරාතුව ඇමතුම්වලින් එකක් විසන්ධි කරන්න නැතහොත් ඒවා සම්මන්ත්‍රණයකට ඒකාබද්ධ කරන්න."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"දැනටමත් ඇමතුම් දෙකක් කෙරෙමින් පවතින නිසා ඇමතුමක් ගැනීමට නොහැක. නව ඇමතුමක් ගැනීමට පෙරාතුව ඇමතුම්වලින් එකක් විසන්ධි කරන්න නැතහොත් ඒවා සම්මන්ත්‍රණයකට ඒකාබද්ධ කරන්න."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> භාවිත කිරීමට, ඔබේ ජංගම දත්ත ක්‍රියාත්මක කර ඇති බව සහතික කර ගන්න. ඔබට මෙය ජංගම ජාල සැකසීම් තුළ වෙනස් කිරීමට හැකිය."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> භාවිත කිරීමට, ජංගම දත්ත සහ දත්ත රෝමිං ක්‍රියාත්මක කර ඇති බව සහතික කර ගන්න. ඔබට මේවා ජංගම ජාල සැකසීම් තුළ වෙනස් කිරීමට හැකිය."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"ජාල වර්ගය ප්‍රතික්ෂේප කරන්න:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC ලබා ගත හැකි:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR සීමා කළ:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR ලබා ගත හැකි:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR තත්ත්වය:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC තිබේ (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR සීමිතයි (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR තිබේ (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR තත්ත්වය (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR සංඛ්‍යාතය:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"රේඩියෝ කලාප ප්‍රකාරය සකසන්න"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"කලාප ලැයිස්තුව පූරණය කරමින්…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC හිමිකම් ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"යාවත්කාලීන කරන්න"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"නැවුම් කරන්න"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"ඔබේ බ්ලූටූත් සංඥාව දුර්වලයි. ස්පීකර් දුරකථනයට මාරු වීමට උත්සාහ කරන්න."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"ඇමතුම් ගුණත්ව දැනුම්දීම"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"අතහැර දැමූ SIP ගිණුම්"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 7f9bc94..f4b13e7 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -637,18 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Režim tiesňového spätného volania"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Dátové pripojenie zakázané"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Dátové pripojenie nebude dostupné do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="few">Telefón bude <xliff:g id="COUNT_1">%s</xliff:g> minúty v režime spätného tiesňového volania. Keď bude v tomto režime, nesmiete používať žiadne aplikácie využívajúce dátové pripojenie. Chcete ho ukončiť?</item>
-      <item quantity="many">Telefón bude <xliff:g id="COUNT_1">%s</xliff:g> minúty v režime spätného tiesňového volania. Keď bude v tomto režime, nesmiete používať žiadne aplikácie využívajúce dátové pripojenie. Chcete ho ukončiť?</item>
-      <item quantity="other">Telefón bude <xliff:g id="COUNT_1">%s</xliff:g> minút v režime spätného tiesňového volania. Keď bude v tomto režime, nesmiete používať žiadne aplikácie využívajúce dátové pripojenie. Chcete ho ukončiť?</item>
-      <item quantity="one">Telefón bude <xliff:g id="COUNT_0">%s</xliff:g> minútu v režime spätného tiesňového volania. Keď bude v tomto režime, nesmiete používať žiadne aplikácie využívajúce dátové pripojenie. Chcete ho ukončiť?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="few">Pri spustenom režime spätného tiesňového volania nie je vybraná akcia k dispozícii. Telefón bude v tomto režime <xliff:g id="COUNT_1">%s</xliff:g> minúty. Chcete ho ukončiť?</item>
-      <item quantity="many">Pri spustenom režime spätného tiesňového volania nie je vybraná akcia k dispozícii. Telefón bude v tomto režime <xliff:g id="COUNT_1">%s</xliff:g> minúty. Chcete ho ukončiť?</item>
-      <item quantity="other">Pri spustenom režime spätného tiesňového volania nie je vybraná akcia k dispozícii. Telefón bude v tomto režime <xliff:g id="COUNT_1">%s</xliff:g> minút. Chcete ho ukončiť?</item>
-      <item quantity="one">Pri spustenom režime spätného tiesňového volania nie je vybraná akcia k dispozícii. Telefón bude v tomto režime <xliff:g id="COUNT_0">%s</xliff:g> minútu. Chcete ho ukončiť?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Počas tiesňového volania nie je vybratá akcia k dispozícii."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Ukončenie režimu tiesňového spätného volania"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Áno"</string>
@@ -656,12 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -689,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Dostupnosť"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Hovor cez Wi‑Fi od:"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Hovor cez Wi‑Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Otvoríte opätovným klepnutím"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Pri dekódovaní správy sa vyskytla chyba"</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM karta aktivovala vašu službu a aktualizovala možnosti roamingu vášho telefónu"</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Prebieha príliš veľa aktívnych hovorov. Skôr ako uskutočníte nový hovor, ukončite existujúce hovory alebo ich zlúčte."</string>
@@ -833,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Hovor sa nedá uskutočniť, pretože sa už vytáča iný odchádzajúci hovor."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Hovor sa nedá uskutočniť, pretože máte neprijatý prichádzajúci hovor. Prijmite alebo odmietnite prichádzajúci hovor a až potom uskutočnite nový hovor."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Hovor sa nedá uskutočniť, pretože hovory boli zakázané systémovým príkazom ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Hovor sa nedá uskutočniť, pretože už prebiehajú dva hovory. Odpojte jeden hovor alebo ich zlúčte do konferencie a až potom uskutočnite nový hovor."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Hovor sa nedá uskutočniť, pretože už prebiehajú dva hovory. Odpojte jeden hovor alebo ich zlúčte do konferencie a až potom uskutočnite nový hovor."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Ak chcete používať službu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, skontrolujte, či máte zapnuté mobilné dáta. Môžete to zmeniť v nastaveniach mobilnej siete."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Ak chcete používať službu <xliff:g id="SUPP_SERVICE">%s</xliff:g>, skontrolujte, či máte zapnuté mobilné dáta a dátový roaming. Môžete to zmeniť v nastaveniach mobilnej siete."</string>
     <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>
@@ -905,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Prekonať typ 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>
@@ -916,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"Dostupné EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"Obmedzené DCNR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"Dostupné NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Stav NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"Dostupné EN-DC (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"Obmedzené DCNR (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"Dostupné NR (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Stav NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frekvencia NR:"</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>
@@ -930,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Identifikátor oprávnenia služby WFC"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Aktualizovať"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Obnoviť"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Signál Bluetooth je slabý. Skúste prepnúť na reproduktor."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Upozornenie o kvalite hovoru"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Účty SIP s ukončenou podporou"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 5feb01d..89ca6d5 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -637,18 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Način povratnega klica v sili"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Podatkovno povezovanje onemogočeno"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Podatkovne povezave ne bo do <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Telefon bo v načinu povratnega klica v sili <xliff:g id="COUNT_1">%s</xliff:g> minuto. V tem načinu ni mogoče uporabljati aplikacij, ki uporabljajo podatkovno povezavo. Ali želite zapreti?</item>
-      <item quantity="two">Telefon bo v načinu povratnega klica v sili <xliff:g id="COUNT_1">%s</xliff:g> minuti. V tem načinu ni mogoče uporabljati aplikacij, ki uporabljajo podatkovno povezavo. Ali želite zapreti?</item>
-      <item quantity="few">Telefon bo v načinu povratnega klica v sili <xliff:g id="COUNT_1">%s</xliff:g> minute. V tem načinu ni mogoče uporabljati aplikacij, ki uporabljajo podatkovno povezavo. Ali želite zapreti?</item>
-      <item quantity="other">Telefon bo v načinu povratnega klica v sili <xliff:g id="COUNT_1">%s</xliff:g> minut. V tem načinu ni mogoče uporabljati aplikacij, ki uporabljajo podatkovno povezavo. Ali želite zapreti?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Izbrano dejanje ni na voljo v načinu povratnega klica v sili. Telefon bo v tem načinu <xliff:g id="COUNT_1">%s</xliff:g> minuto. Ali želite zapreti?</item>
-      <item quantity="two">Izbrano dejanje ni na voljo v načinu povratnega klica v sili. Telefon bo v tem načinu <xliff:g id="COUNT_1">%s</xliff:g> minuti. Ali želite zapreti?</item>
-      <item quantity="few">Izbrano dejanje ni na voljo v načinu povratnega klica v sili. Telefon bo v tem načinu <xliff:g id="COUNT_1">%s</xliff:g> minute. Ali želite zapreti?</item>
-      <item quantity="other">Izbrano dejanje ni na voljo v načinu povratnega klica v sili. Telefon bo v tem načinu <xliff:g id="COUNT_1">%s</xliff:g> minut. Ali želite zapreti?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Izbrano dejanje ni na voljo med klicanjem v sili."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Izhod iz načina za povratni klic v sili"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Da"</string>
@@ -656,12 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -689,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Funkcije za ljudi s posebnimi potrebami"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Klic prek Wi-Fi-ja osebe"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Klic Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Znova se dotaknite, če želite odpreti"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Napaka pri dekodiranju sporočila."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Kartica SIM je aktivirala vašo storitev in posodobila zmožnosti telefona za gostovanje."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Preveč aktivnih klicev. Preden začnete nov klic, končajte ali združite obstoječe klice."</string>
@@ -833,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Klica ni mogoče opraviti, ker že poteka vzpostavljanje drugega odhodnega klica."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Klica ni mogoče opraviti, ker imate dohodni klic, na katerega še niste odgovorili. Preden začnete z opravljanjem novega klica, sprejmite ali zavrnite dohodni klic."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Klica ni mogoče opraviti, ker je klicanje onemogočeno zaradi sistemske lastnosti ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Klica ni mogoče opraviti, ker potekata že dva klica. Preden začnete z opravljanjem novega klica, prekinite enega od klicev ali ju združite v konferenčni klic."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Klica ni mogoče opraviti, ker potekata že dva klica. Preden začnete nov klic, prekinite enega od klicev ali ju združite v konferenčni klic."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Če želite uporabiti storitev <xliff:g id="SUPP_SERVICE">%s</xliff:g>, najprej preverite, ali je vklopljen prenos podatkov v mobilnem omrežju. To izbiro lahko spremenite v nastavitvah mobilnega omrežja."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Če želite uporabiti storitev <xliff:g id="SUPP_SERVICE">%s</xliff:g>, najprej preverite, ali sta vklopljena prenos podatkov v mobilnem omrežju in podatkovno gostovanje. Ti izbiri lahko spremenite v nastavitvah mobilnega omrežja."</string>
     <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>
@@ -905,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Preglasi vrsto 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>
@@ -916,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"Razpoložljivo za EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"Omejeno za DCNR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"Razpoložljivo za NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Stanje NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"Razpoložljivo za EN-DC (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"Omejeno za DCNR (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"Razpoložljivo za NR (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Stanje NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frekvenca NR:"</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>
@@ -930,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID upravičenosti za WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Posodobi"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Osveži"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Signal povezave Bluetooth je šibek. Poskusite preklopiti na zvočnik."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Obvestilo o kakovosti klica"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Opuščeni računi SIP"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 8ea15ab..11fa7a9 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Modaliteti i \"Kthimit të telefonatës së urgjencës\""</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Lidhja me të dhënat është çaktivizuar"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Nuk ka lidhje të të dhënave deri në <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Telefoni do të përdoret në modalitetin e \"Kthimit të Telefonatës së Urgjencës\" për <xliff:g id="COUNT_1">%s</xliff:g> minuta. Ndërkohë që është në këtë modalitet, nuk mund të përdoret asnjë aplikacion duke përdorur lidhje të dhënash. Dë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> minuta. Ndërkohë që është në këtë modalitet, nuk mund të përdoret asnjë aplikacion duke përdorur lidhje të dhënash. Dëshiron të dalësh tani?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Veprimi i përzgjedhur nuk mund të përdoret kur është në modalitetin e \"Kthimit të telefonatës së urgjencës\". Telefoni do të jetë në këtë modalitet për <xliff:g id="COUNT_1">%s</xliff:g> minuta. Dëshiron të dalësh tani?</item>
-      <item quantity="one">Veprimi i përzgjedhur nuk mund të përdoret kur është në modalitetin e \"Kthimit të telefonatës së urgjencës\". Telefoni do të jetë në këtë modalitet për <xliff:g id="COUNT_0">%s</xliff:g> minuta. Dëshiron të dalësh tani?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Telefoni do të jetë në modalitetin e \"Kthimit të telefonatës së urgjencës\" për një minutë. Ndërkohë që është në këtë modalitet, nuk mund të përdoret asnjë aplikacion duke përdorur lidhjen e dhënave. Dëshiron të dalësh tani?}other{Telefoni do të jetë në modalitetin e \"Kthimit të telefonatës së urgjencës\" për %s minuta. Ndërkohë që është në këtë modalitet, nuk mund të përdoret asnjë aplikacion duke përdorur lidhjen e dhënave. Dëshiron të dalësh tani?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Veprimi i përzgjedhur nuk ofrohet në modalitetin e \"Kthimit të telefonatës së urgjencës\". Telefoni do të jetë në këtë modalitet për një minutë. Dëshiron të dalësh tani?}other{Veprimi i përzgjedhur nuk ofrohet në modalitetin e \"Kthimit të telefonatës së urgjencës\". Telefoni do të jetë në këtë modalitet për %s minuta. Dëshiron të dalësh tani?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Veprimi i përzgjedhur nuk mund të përdoret gjatë një telefonate urgjente."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Modaliteti i \"Kthimit të telefonatës dalëse të urgjencës\""</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Po"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Telefoni do të jetë në modalitetin e kthimit të telefonatës së urgjencës për një minutë.\nDëshiron të dalësh tani?}other{Telefoni do të jetë në modalitetin e kthimit të telefonatës së urgjencës për %s minuta.\nDëshiron të dalësh tani?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Qasshmëria"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Telefonatë Wi-Fi nga"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Telefonatë me Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Trokit përsëri për ta hapur"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Ndodhi një gabim gjatë dekodimit të mesazhit."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Një kartë SIM ka aktivizuar shërbimin tënd dhe ka përditësuar aftësitë e roaming-ut të telefonit tënd."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Ka shumë thirrje aktive. Përfundo ose të bashko thirrjet ekzistuese para kryerjes së një thirrjeje të re."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Nuk mund të kryhet një telefonatë pasi një telefonatë tjetër dalëse është duke u kryer tashmë."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Nuk mund të kryhet një telefonatë sepse është një telefonatë hyrëse që nuk ka marrë përgjigje. Përgjigju ose refuzoje telefonatën hyrëse para se të kryesh një telefonatë të re."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Nuk mund të kryhet një telefonatë sepse telefonata është çaktivizuar duke përdorur vetinë e sistemit ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Nuk mund të kryhet një telefonatë sepse janë tashmë dy telefonata në vazhdim. Shkëput një nga telefonatat ose shkriji ato në një konferencë para se të kryesh një telefonatë të re."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Nuk mund të kryhet një telefonatë sepse janë tashmë dy telefonata në vazhdim. Shkëput një nga telefonatat ose shkriji ato në një konferencë para se të kryesh një telefonatë të re."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Për të përdorur <xliff:g id="SUPP_SERVICE">%s</xliff:g>, sigurohu që të dhënat celulare janë të aktivizuara. Mund ta ndryshosh këtë te cilësimet e rrjetit celular."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Për të përdorur <xliff:g id="SUPP_SERVICE">%s</xliff:g>, sigurohu që të dhënat celulare dhe roaming për të dhënat janë aktivizuar. Mund ta ndryshosh këtë te cilësimet e rrjetit celular."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Anulo llojin e rrjetit:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"Ofrohet EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR me kufizime:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"Ofrohet NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Gjendja e NR-së:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC në dispozicion (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR me kufizime (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR në dispozicion (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Gjendja e NR-së (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frekuenca e NR-së:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ID-ja e të drejtës për WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Përditëso"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Rifresko"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Sinjali i Bluetooth-it është i dobët. Provo të kalosh te altoparlanti."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Njoftim për cilësinë e telefonatës"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Llogaritë e zhvlerësuara SIP"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index d2e44fb..aefc325 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -637,16 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Телефон ће бити у Режиму хитног повратног позива <xliff:g id="COUNT_1">%s</xliff:g> минут. Док је у овом режиму не можете да користите апликације које користе везу за пренос података. Желите ли одмах да изађете из овог режима?</item>
-      <item quantity="few">Телефон ће бити у Режиму хитног повратног позива <xliff:g id="COUNT_1">%s</xliff:g> минута. Док је у овом режиму не можете да користите апликације које користе везу за пренос података. Желите ли одмах да изађете из овог режима?</item>
-      <item quantity="other">Телефон ће бити у Режиму хитног повратног позива <xliff:g id="COUNT_1">%s</xliff:g> минута. Док је у овом режиму не можете да користите апликације које користе везу за пренос података. Желите ли одмах да изађете из овог режима?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Изабрана радња није доступна док сте у Режиму хитног повратног позива. Телефон ће бити у овом режиму <xliff:g id="COUNT_1">%s</xliff:g> минут. Желите ли одмах да изађете из овог режима?</item>
-      <item quantity="few">Изабрана радња није доступна док сте у Режиму хитног повратног позива. Телефон ће бити у овом режиму <xliff:g id="COUNT_1">%s</xliff:g> минута. Желите ли одмах да изађете из овог режима?</item>
-      <item quantity="other">Изабрана радња није доступна док сте у Режиму хитног повратног позива. Телефон ће бити у овом режиму <xliff:g id="COUNT_1">%s</xliff:g> минута. Желите ли одмах да изађете из овог режима?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Изабрана радња није доступна када је у току хитан позив"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Излазак из Режима хитног повратног позива"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Да"</string>
@@ -654,11 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -686,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Приступачност"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"WiFi позив од"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"WiFi позив"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Додирните поново да бисте отворили"</string>
     <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>
@@ -830,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Не можете да позовете јер се већ упућује други одлазни позив."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Не можете да позовете јер имате долазни позив на који нисте одговорили. Одговорите на долазни позив или га одбијте пре упућивања новог позива."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Не можете да позовете јер је позивање онемогућено преко својства система ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Не можете да позовете јер су два позива већ у току. Прекините један од позива или их обједините у конференцију да бисте упутили нови позив."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Не можете да позовете јер су два позива већ у току. Прекините један од њих или их обједините у конференцију да бисте упутили нови позив."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Да бисте користили <xliff:g id="SUPP_SERVICE">%s</xliff:g>, уверите се да су укључени мобилни подаци. То можете да промените у подешавањима мобилне мреже."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Да бисте користили <xliff:g id="SUPP_SERVICE">%s</xliff:g>, уверите се да су укључени мобилни подаци и пренос података у ромингу. То можете да промените у подешавањима мобилне мреже."</string>
     <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>
@@ -902,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Замени тип мреже:"</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>
@@ -913,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC доступно:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR ограничено:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR доступно:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR стање:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC доступно (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR ограничено (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR доступно (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR стање (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR учесталост:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Подесите режим радијског опсега"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Учитава се листа опсега…"</string>
@@ -927,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"ИД права на WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Ажурирај"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Освежи"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth сигнал је слаб. Пробајте да пређете на спикерфон."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Обавештење о квалитету позива"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Застарели SIP налози"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 4b112c4..9c9f495 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Läget Återuppringning vid nödsamtal"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Dataanslutning inaktiverad"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Ingen dataanslutning förrän <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Mobilen försätts i nödsamtalsläge i <xliff:g id="COUNT_1">%s</xliff:g> minuter. I det här läget går det inte att använda några appar där en dataanslutning används. Vill du avsluta nu?</item>
-      <item quantity="one">Mobilen försätts i nödsamtalsläge i <xliff:g id="COUNT_0">%s</xliff:g> minut. I det här läget går det inte att använda några appar där en dataanslutning används. Vill du avsluta nu?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Den valda åtgärden är inte tillgänglig i nödsamtalsläget. Mobilen försätts i det här läget i <xliff:g id="COUNT_1">%s</xliff:g> minuter. Vill du avsluta nu?</item>
-      <item quantity="one">Den valda åtgärden är inte tillgänglig i nödsamtalsläget. Mobilen försätts i det här läget i <xliff:g id="COUNT_0">%s</xliff:g> minut. Vill du avsluta nu?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Telefonen kommer att vara i läget Återuppringning vid nödsamtal i en minut. I det här läget kan inga appar som kräver en dataanslutning användas. Vill du avsluta nu?}other{Telefonen kommer att vara i läget Återuppringning vid nödsamtal i %s minuter. I det här läget kan inga appar som kräver en dataanslutning användas. Vill du avsluta nu?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Den valda åtgärden är inte tillgänglig i läget Återuppringning vid nödsamtal. Telefonen kommer att vara i det här läget i en minut. Vill du avsluta nu?}other{Den valda åtgärden är inte tillgänglig i läget Återuppringning vid nödsamtal. Telefonen kommer att vara i det här läget i %s minuter. Vill du avsluta nu?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Den valda åtgärden är inte tillgänglig under nödsamtal."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Avslutar läget Återuppringning vid nödsamtal"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ja"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Telefonen kommer att vara i läget för återuppringning vid nödsamtal i en minut.\nVill du avsluta nu?}other{Telefonen kommer att vara i läget för återuppringning vid nödsamtal i %s minuter.\nVill du avsluta nu?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Tillgänglighet"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"wifi-samtal från"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"wifi-samtal"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tryck igen för att öppna"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Ett fel inträffade när meddelandet avkodades."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Ett SIM-kort har använts för att aktivera tjänsten och uppdatera roamingfunktionerna i mobilen."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Det finns för många aktiva samtal. Avsluta eller slå samman pågående samtal innan du ringer ett nytt."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Det går inte att ringa ett samtal eftersom ett annat utgående samtal ringer upp."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Det går inte att ringa eftersom det finns ett obesvarat inkommande samtal. Svara eller avvisa det innan du ringer ett nytt samtal."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Det går inte att ringa eftersom uppringning har inaktiverats med systemegenskapen ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Det går inte att ringa eftersom det redan finns två pågående samtal. Koppla bort ett eller slå ihop dem till en konferens innan du ringer ett nytt samtal."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Det går inte att ringa eftersom det redan finns två pågående samtal. Koppla bort ett eller slå ihop dem till en konferens innan du ringer ett nytt samtal."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Använd <xliff:g id="SUPP_SERVICE">%s</xliff:g> genom att säkerställa att mobildata är aktiverat. Det går att ändra i inställningarna för mobilt nätverk."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Använd <xliff:g id="SUPP_SERVICE">%s</xliff:g> genom att säkerställa att mobildata och dataroaming är aktiverat. Det går att ändra i inställningarna för mobilt nätverk."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Åsidosätt nätverkstyp:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC tillgänglig:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR begränsad:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR tillgänglig:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR-status:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC tillgängligt (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR begränsat (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR tillgängligt (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR-tillstånd (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR-frekvens:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Konfigurera radiobandsläget"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Läser in bandlista …"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC-berättigande-ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Uppdatera"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Uppdatera"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Svag Bluetooth-signal. Försök med att växla till högtalartelefon."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Avisering om samtalskvalitet"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Utfasade SIP-konton"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 83727d0..c2db54a 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"hali ya kupiga tena simu ya Dharura"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Muunganisho wa data umelemazwa"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Hakuna muunganisho wa data mpaka <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Simu itakuwa katika hali ya Simu ya Dharura kwa dakika <xliff:g id="COUNT_1">%s</xliff:g>. Ukiwa katika hali hii hakuna programu zinazotumia muunganisho wa data zinazoweza kutumiwa. Je, unataka kuondoka sasa?</item>
-      <item quantity="one">Simu itakuwa katika hali ya Simu ya Dharura kwa dakika <xliff:g id="COUNT_0">%s</xliff:g>. Ukiwa katika hali hii hakuna programu zinazotumia muunganisho wa data zinazoweza kutumiwa. Je, unataka kuondoka sasa?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Kitendo kilichochaguliwa hakipatikani ikiwa katika Simu ya Dharura. Simu itakuwa katika hali ya Simu ya Dharura kwa dakika <xliff:g id="COUNT_1">%s</xliff:g>. Je, unataka kuondoka sasa?</item>
-      <item quantity="one">Kitendo kilichochaguliwa hakipatikani ikiwa katika Simu ya Dharura. Simu itakuwa katika hali ya Simu ya Dharura kwa dakika <xliff:g id="COUNT_0">%s</xliff:g>. Je, unataka kuondoka sasa?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Simu itakuwa katika hali ya Kuomba Upigiwe Simu ya Dharura kwa dakika moja. Ukiwa katika hali hii, programu zinazotumia muunganisho wa data haziwezi kutumika. Je, ungependa kufunga skrini hii sasa?}other{Simu itakuwa katika hali ya Kuomba Upigiwe Simu ya Dharura kwa dakika %s. Ukiwa katika hali hii, programu zinazotumia muunganisho wa data haziwezi kutumika. Je, ungependa kufunga skrini hii sasa?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Kitendo ulichochagua hakipatikana simu ikiwa katika Hali ya Kuomba Upigiwe Simu ya Dharura. Simu itakuwa katika hali hii kwa dakika moja. Je, ungependa kufunga sasa?}other{Kitendo ulichochagua hakipatikana simu ikiwa katika Hali ya Kuomba Upigiwe Simu ya Dharura. Simu itakuwa katika hali hii kwa dakika %s. Je, ungependa kufunga sasa?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Kitendo kilichochaguliwa hakipatikani ikiwa katika simu ya dharura."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Inatoka kwa hali ya Kupiga tena simu ya Dharura"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ndiyo"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Simu itakuwa katika hali ya kuomba upigiwe simu ya dharura kwa dakika moja.\nJe, ungependa kufunga skrini hii sasa?}other{Simu itakuwa katika hali ya kuomba upigiwe simu ya dharura kwa dakika %s.\nJe, ungependa kufunga skrini hii sasa?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Zana za ufikivu"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Simu ya Wi-Fi kutoka kwa"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Simu ya Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Gusa tena ili ufungue"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Hitilafu imetokea wakati wa usimbuaji wa ujumbe."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM kadi yako imeanzisha huduma yako na kusasisha uwezo wa simu yako wa kutumia mitandao mingine."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Kuna simu nyingi mno zinazoendelea. Tafadhali kata au uunganishe simu zinazoendelea kabla hujapiga nyingine."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Haiwezi kupiga simu kwa sababu tayari unapiga simu nyingine."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Haiwezi kupiga simu kwa sababu kuna simu inayoingia ambayo hujajibu. Jibu au ukatae simu hiyo inayoingia kabla ya kupiga simu mpya."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Haiwezi kupiga simu kwa sababu upigaji simu umezuiwa kupitia kipengele cha mfumo cha ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Haiwezi kupiga simu kwa sababu tayari kuna simu mbili zinazoendelea. Kata mojawapo ya simu hizo au uziunganishe ili ziwe mkutano kabla ya kupiga simu mpya."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Haiwezi kupiga simu kwa sababu tayari kuna simu mbili zinazoendelea. Kata mojawapo ya simu hizo au uziunganishe ili ziwe mkutano kabla ya kupiga simu mpya."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Ili uweze kutumia huduma ya <xliff:g id="SUPP_SERVICE">%s</xliff:g>, hakikisha data ya mtandao wa simu imewashwa. Unaweza kubadilisha hali hii katika mipangilio ya mtandao wa simu."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Ili uweze kutumia huduma ya <xliff:g id="SUPP_SERVICE">%s</xliff:g>, hakikisha vipengele vya data ya mtandao wa simu na matumizi ya mitandao ya ng\'ambo vimewashwa. Unaweza kubadilisha hali hizi kwenye mipangilio ya mtandao wa simu."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Batilisha Aina ya Mtandao:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC Inapatikana:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR Imewekewa Vizuizi:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR Inapatikana:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Hali ya NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC Inapatikana (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR Imedhibitiwa (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR Inapatikana (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Hali ya NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Masafa ya NR:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Kitambulisho cha Idhini ya WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Sasisha"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Onyesha upya"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Muunganisho wako wa bluetooth ni dhaifu. Jaribu kubadilisha ili utumie spika ya simu."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Arifa ya Ubora wa Simu"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Akaunti za SIP ambazo zimefungwa"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 029c5bd..5da0add 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">அவசரகால திரும்ப அழைக்கும் பயன்முறை செயலில் இருக்கும்போது, தேர்ந்தெடுத்த செயல் கிடைக்காது. <xliff:g id="COUNT_0">%s</xliff:g> நிமிடத்திற்கு மொபைல் இந்தப் பயன்முறையில் இருக்கும். இப்போது வெளியேற விரும்புகிறீர்களா?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{அவசரகால அழைப்பு பெறும் பயன்முறையில் ஒரு நிமிடத்திற்கு மொபைல் இருக்கும். இந்தப் பயன்முறையில் இருக்கும்போது டேட்டா இணைப்பைப் பயன்படுத்தும் ஆப்ஸ் எதையும் பயன்படுத்த முடியாது. இப்போதே வெளியேற விரும்புகிறீர்களா?}other{அவசரகால அழைப்பு பெறும் பயன்முறையில் %s நிமிடங்களுக்கு மொபைல் இருக்கும். இந்தப் பயன்முறையில் இருக்கும்போது டேட்டா இணைப்பைப் பயன்படுத்தும் ஆப்ஸ் எதையும் பயன்படுத்த முடியாது. இப்போதே வெளியேற விரும்புகிறீர்களா?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{தேர்ந்தெடுத்த செயல்பாட்டை அவசரகால அழைப்பு பெறும் பயன்முறையில் இருக்கும்போது பயன்படுத்த முடியாது. ஒரு நிமிடத்திற்கு இந்தப் பயன்முறையில் மொபைல் இருக்கும். இப்போதே வெளியேற விரும்புகிறீர்களா?}other{தேர்ந்தெடுத்த செயல்பாட்டை அவசரகால அழைப்பு பெறும் பயன்முறையில் இருக்கும்போது பயன்படுத்த முடியாது. %s நிமிடங்களுக்கு இந்தப் பயன்முறையில் மொபைல் இருக்கும். இப்போதே வெளியேற விரும்புகிறீர்களா?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"அவசரகால அழைப்பு செயலில் இருக்கும்போது தேர்ந்தெடுத்த செயல் கிடைக்காது."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"அவசரகால திரும்ப அழைக்கும் பயன்முறையிலிருந்து வெளியேறுகிறது"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ஆம்"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{அவசரகால அழைப்பு பெறும் பயன்முறையில் ஒரு நிமிடத்திற்கு மொபைல் இருக்கும்.\nஇப்போதே வெளியேற விரும்புகிறீர்களா?}other{அவசரகால அழைப்பு பெறும் பயன்முறையில் %s நிமிடங்களுக்கு மொபைல் இருக்கும்.\nஇப்போதே வெளியேற விரும்புகிறீர்களா?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"அணுகல் தன்மை"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"வைஃபை அழைப்பு:"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"வைஃபை அழைப்பு"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"திறக்க, மீண்டும் தட்டவும்"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"செய்தியைக் குறிவிலக்கும்போது பிழை ஏற்பட்டது."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"ஏற்கனவே சிம் கார்டைப் பயன்படுத்தி சேவை இயக்கப்பட்டது மற்றும் மொபைலின் ரோமிங் செயல்திறன்கள் புதுப்பிக்கப்பட்டன."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"மிகவும் அதிக அளவிலான அழைப்புகள் செயலில் உள்ளன. புதிய அழைப்பை மேற்கொள்ளும் முன், ஏற்கனவேயுள்ள அழைப்புகளைத் துண்டிக்கவும் அல்லது ஒன்றாகப் பிணைக்கவும்."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"ஏற்கனவே ஒரு அழைப்பு டயல் ஆகிக்கொண்டிருப்பதால், இந்த அழைப்பைச் செய்ய முடியாது."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"உள்வரும் அழைப்பிற்கு இன்னும் பதிலளிக்காததால், இந்த அழைப்பைச் செய்ய முடியாது. புதிதாக ஒரு அழைப்பைச் செய்வதற்கு முன்னர், உள்வரும் அழைப்பிற்குப் பதிலளிக்கவும் அல்லது நிராகரிக்கவும்."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ro.telephony.disable-call எனும் சிஸ்டம் பிராப்பர்ட்டியைப் பயன்படுத்தி அழைப்பதற்கான வசதி முடக்கப்பட்டுள்ளதால், இந்த அழைப்பைச் செய்ய முடியாது."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"இரண்டு அழைப்புகள் ஏற்கனவே செயலில் இருப்பதால், இந்த அழைப்பைச் செய்ய முடியாது. புதிதாக ஒரு அழைப்பைச் செய்வதற்கு முன்னர், ஏதாவது ஒரு அழைப்பைத் துண்டிக்கவும் அல்லது அவற்றை இணைத்து குழு அழைப்பாக மாற்றவும்."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"இரண்டு அழைப்புகள் செயலில் இருப்பதால் தற்போது அழைப்பைச் செய்ய முடியாது. அழைப்பைச் செய்ய வேண்டுமெனில், செயலில் உள்ள அழைப்புகளில் ஏதேனும் ஒன்றைத் துண்டிக்கவும் அல்லது அழைப்பதற்கு முன் அவற்றை இணைத்து குழு அழைப்பாக மாற்றவும்."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ஐப் பயன்படுத்த, மொபைல் டேட்டா இயக்கத்தில் இருப்பதை உறுதிப்படுத்திக் கொள்ளவும். இதை மொபைல் நெட்வொர்க் அமைப்புகளில் மாற்றலாம்."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ஐப் பயன்படுத்த, மொபைல் டேட்டாவும் டேட்டா ரோமிங்கும் இயக்கத்தில் இருப்பதை உறுதிப்படுத்திக் கொள்ளவும். இவற்றை மொபைல் நெட்வொர்க் அமைப்புகளில் மாற்றலாம்."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"மீறிச் செயல்படும் நெட்வொர்க் வகை:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC உள்ளது:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR கட்டுப்படுத்தப்பட்டது:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR உள்ளது:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR நிலை:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC உள்ளது (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR கட்டுப்படுத்தப்பட்டது (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR உள்ளது (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR நிலை (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR அலைவரிசை:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"ரேடியோ பேண்டு பயன்முறையை அமை"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"பேண்டு பட்டியலை ஏற்றுகிறது…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC உரிமை வழங்கல் ஐடி:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"புதுப்பி"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ரெஃப்ரெஷ் செய்"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"புளூடூத் சிக்னல் வலுவற்றதாக உள்ளது. ஸ்பீக்கர் ஃபோனிற்கு மாற்றவும்."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"அழைப்பின் தரம் தொடர்பான அறிவிப்பு"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"நிறுத்தப்பட்ட SIP கணக்குகள்"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index a962007..ccb1a5a 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">అత్యవసర కాల్‌బ్యాక్ మోడ్‌లో ఉన్నప్పుడు, ఎంచుకున్న చర్య అందుబాటులో లేదు. ఫోన్ <xliff:g id="COUNT_0">%s</xliff:g> నిమిషం పాటు ఈ మోడ్‌లో ఉంటుంది. మీరు ఇప్పుడు నిష్క్రమించాలనుకుంటున్నారా?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{ఫోన్ ఒక నిమిషం పాటు ఎమర్జెన్సీ కాల్‌బ్యాక్ మోడ్‌లో ఉంటుంది. ఈ మోడ్‌లో ఉన్నప్పుడు డేటా కనెక్షన్‌ను ఉపయోగించే యాప్‌లు ఏవీ ఉపయోగించబడవు. మీరు ఇప్పుడు నిష్క్రమించాలనుకుంటున్నారా?}other{ఫోన్ %s నిమిషాల పాటు ఎమర్జెన్సీ కాల్‌బ్యాక్ మోడ్‌లో ఉంటుంది. ఈ మోడ్‌లో ఉన్నప్పుడు డేటా కనెక్షన్‌ను ఉపయోగించే యాప్‌లు ఏవీ ఉపయోగించబడవు. మీరు ఇప్పుడు నిష్క్రమించాలనుకుంటున్నారా?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{ఎమర్జెన్సీ కాల్‌బ్యాక్ మోడ్‌లో ఉన్నప్పుడు ఎంచుకున్న చర్య అందుబాటులో ఉండదు. ఫోన్ ఈ మోడ్‌లో ఒక నిమిషం పాటు ఉంటుంది. మీరు ఇప్పుడే నిష్క్రమించాలనుకుంటున్నారా?}other{ఎమర్జెన్సీ కాల్‌బ్యాక్ మోడ్‌లో ఉన్నప్పుడు ఎంచుకున్న చర్య అందుబాటులో ఉండదు. ఫోన్ ఈ మోడ్‌లో %s నిమిషాల పాటు ఉంటుంది. మీరు ఇప్పుడే నిష్క్రమించాలనుకుంటున్నారా?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"ఎంచుకున్న చర్య అత్యవసర కాల్‌లో ఉన్నప్పుడు అందుబాటులో ఉండదు."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"అత్యవసర కాల్‌బ్యాక్ మోడ్ నుండి నిష్క్రమిస్తోంది"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"అవును"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{ఫోన్ ఒక నిమిషం పాటు ఎమర్జెన్సీ కాల్‌బ్యాక్ మోడ్‌లో ఉంటుంది.\nమీరు ఇప్పుడే నిష్క్రమించాలనుకుంటున్నారా?}other{ఫోన్ %s నిమిషాల పాటు ఎమర్జెన్సీ కాల్‌బ్యాక్ మోడ్‌లో ఉంటుంది.\nమీరు ఇప్పుడే నిష్క్రమించాలనుకుంటున్నారా?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"యాక్సెసిబిలిటీ"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"వీరి నుండి Wi-Fi కాల్"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi కాల్"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"తెరవడానికి మళ్లీ నొక్కండి"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"ఇంకొక అవుట్‌గోయింగ్ కాల్ ఇప్పటికే చేస్తున్నందున మరో కాల్ చేయడం సాధ్యపడదు."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"మాట్లాడాల్సిన ఇన్‌కమింగ్ కాల్ వస్తున్నందున బయటికి కాల్ చేయడం సాధ్యపడదు. కొత్త కాల్ చేయడం కంటే ముందుగా ఇన్‌కమింగ్ కాల్‌కి జవాబివ్వండి లేదా కాల్ నిరాకరించండి."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ro.telephony.disable-call సిస్టమ్ లక్షణాన్ని ఉపయోగించి కాలింగ్‌ని నిలిపివేసినందున, ఇప్పుడు కాల్ చేయలేరు."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"ఇప్పటికే రెండు కాల్స్‌ జరుగుతున్నందున కాల్ చేయడం సాధ్యపడదు. ఆ కాల్స్‌లో ఒకదానిని డిస్‌కనెక్ట్ చేయండి లేదా అవి రెండింటినీ కలిపి ఒక కాన్ఫరెన్స్ కాల్‌గా మార్చి, తర్వాత కొత్త కాల్ చేయండి."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"ఇప్పటికే రెండు కాల్స్ జరుగుతున్నందున కాల్ చేయడం సాధ్యపడదు. ఆ కాల్స్‌లో ఒకదానిని డిస్‌కనెక్ట్ చేయండి లేదా అవి రెండింటినీ కలిపి ఒక కాన్ఫరెన్స్ కాల్‌గా మార్చి, తర్వాత కొత్త కాల్ చేయండి."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ని ఉపయోగించడానికి, మొబైల్ డేటాను తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు దీనిని మొబైల్ నెట్‌వర్క్ సెట్టింగ్‌లలో మార్చవచ్చు."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ని ఉపయోగించడానికి, మొబైల్ డేటా మరియు డేటా రోమింగ్‌ని తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు వీటిని మొబైల్ నెట్‌వర్క్ సెట్టింగ్‌లలో మార్చవచ్చు."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"నెట్‌వర్క్ రకాన్ని ఓవర్‌రైడ్ చేయండి:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC అందుబాటులో ఉంది:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR నియంత్రించబడింది:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR అందుబాటులో ఉంది:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR స్టేటస్:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC అందుబాటులో ఉన్న (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR పరిమితం చేయబడిన (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR అందుబాటులో ఉన్న (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR స్టేట్ (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR ఫ్రీక్వెన్సీ:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"రేడియో బ్యాండ్ మోడ్‌ను సెట్ చేయండి"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"బ్యాండ్ లిస్ట్‌ను లోడ్ చేస్తోంది…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC ఎన్‌టైటిల్‌మెంట్ ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"అప్‌డేట్ చేయండి"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"రిఫ్రెష్ చేయండి"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"మీ బ్లూటూత్ సిగ్నల్ బలహీనంగా ఉంది. స్పీకర్‌ఫోన్‌కు స్విచ్ అవ్వడానికి ట్రై చేయండి."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"కాల్ క్వాలిటీ నోటిఫికేషన్"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"తీసివేయబడిన SIP ఖాతాలు"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index f2e94dd..d58b5f9 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">ไม่สามารถทำงานที่เลือกนี้ได้ขณะอยู่ในโหมดติดต่อกลับฉุกเฉิน โทรศัพท์จะใช้โหมดนี้เป็นเวลา <xliff:g id="COUNT_0">%s</xliff:g> นาที คุณต้องการออกตอนนี้ไหม</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{โทรศัพท์จะอยู่ในโหมดติดต่อกลับฉุกเฉินเป็นเวลา 1 นาที ในระหว่างที่อยู่ในโหมดนี้ คุณจะใช้แอปที่ใช้การเชื่อมต่ออินเทอร์เน็ตไม่ได้ คุณต้องการออกเลยไหม}other{โทรศัพท์จะอยู่ในโหมดติดต่อกลับฉุกเฉินเป็นเวลา %s นาที ในระหว่างที่อยู่ในโหมดนี้ คุณจะใช้แอปพลิเคชันที่ใช้การเชื่อมต่ออินเทอร์เน็ตไม่ได้ คุณต้องการออกเลยไหม}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{การทำงานที่เลือกจะใช้ไม่ได้เมื่ออยู่ในโหมดติดต่อกลับฉุกเฉิน โทรศัพท์จะอยู่ในโหมดนี้เป็นเวลา 1 นาที คุณต้องการออกเลยไหม}other{การทำงานที่เลือกจะใช้ไม่ได้เมื่ออยู่ในโหมดติดต่อกลับฉุกเฉิน โทรศัพท์จะอยู่ในโหมดนี้เป็นเวลา %s นาที คุณต้องการออกเลยไหม}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"การทำงานที่เลือกใช้ไม่ได้ในระหว่างโทรฉุกเฉิน"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"กำลังออกจากโหมดติดต่อกลับฉุกเฉิน"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ใช่"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{โทรศัพท์จะอยู่ในโหมดติดต่อกลับฉุกเฉินเป็นเวลา 1 นาที\nคุณต้องการออกเลยไหม}other{โทรศัพท์จะอยู่ในโหมดติดต่อกลับฉุกเฉินเป็นเวลา %s นาที\nคุณต้องการออกเลยไหม}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"การเข้าถึง"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"โทรผ่าน Wi-Fi จาก"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"การโทรผ่าน Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"แตะอีกครั้งเพื่อเปิด"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"เกิดข้อผิดพลาดขณะถอดรหัสข้อความ"</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"ซิมการ์ดได้เปิดใช้บริการของคุณและอัปเดตความสามารถในการโรมมิ่งของโทรศัพท์"</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"มีสายที่ใช้งานอยู่มากเกินไป โปรดวางสายหรือรวมสายที่มีก่อนโทรออกครั้งใหม่"</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"ไม่สามารถโทรออกได้เนื่องจากมีสายโทรออกอยู่แล้ว"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"ไม่สามารถโทรออกได้เนื่องจากมีสายเรียกเข้าที่ยังไม่ได้รับ รับหรือปฏิเสธสายเรียกเข้าก่อนโทรออกใหม่"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"ไม่สามารถโทรออกได้เนื่องจากมีการปิดใช้การโทรโดยใช้คุณสมบัติของระบบ ro.telephony.disable-call"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"ไม่สามารถโทรออกได้เนื่องจากมีการโทรสองสายกำลังดำเนินการอยู่ ตัดการเชื่อมต่อหนึ่งสายหรือรวมเป็นการประชุมสายก่อนโทรออกใหม่"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"ไม่สามารถโทรออกได้เนื่องจากมีการโทร 2 สายที่กำลังดำเนินอยู่ โปรดยกเลิกการเชื่อมต่อ 1 สายหรือรวมเป็นการประชุมสายก่อนโทรออกใหม่"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"หากต้องการใช้ <xliff:g id="SUPP_SERVICE">%s</xliff:g> โปรดเปิดเน็ตมือถือ คุณเปลี่ยนตัวเลือกนี้ได้ในการตั้งค่าเครือข่ายมือถือ"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"หากต้องการใช้ <xliff:g id="SUPP_SERVICE">%s</xliff:g> โปรดเปิดเน็ตมือถือและการโรมมิ่งข้อมูล คุณเปลี่ยนตัวเลือกเหล่านี้ได้ในการตั้งค่าเครือข่ายมือถือ"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"ประเภทการลบล้างเครือข่าย:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"มี EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR ถูกจำกัด:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"มี NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"สถานะ NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC ที่พร้อมใช้งาน (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR ที่จำกัด (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR ที่พร้อมใช้งาน (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"สถานะ NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"ความถี่ NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"ตั้งค่าโหมดย่านความถี่วิทยุ"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"กำลังโหลดรายการย่านความถี่…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"รหัสการให้สิทธิ์ WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"อัปเดต"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"รีเฟรช"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"สัญญาณบลูทูธอ่อน ลองเปลี่ยนไปใช้ลำโพงแทน"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"การแจ้งเตือนคุณภาพการโทร"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"บัญชี SIP ที่เลิกใช้งาน"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 495807b..fb63129 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Emergency Callback Mode"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Hindi pinagana ang koneksyon ng data"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Walang koneksyon sa data hanggang <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Mapupunta sa Emergency Callback mode ang telepono sa loob ng <xliff:g id="COUNT_1">%s</xliff:g> minuto. Habang nasa mode na ito, walang magagamit na mga application na gumagamit ng koneksyon ng data. Gusto mo bang lumabas ngayon?</item>
-      <item quantity="other">Mapupunta sa Emergency Callback mode ang telepono sa loob ng <xliff:g id="COUNT_1">%s</xliff:g> na minuto. Habang nasa mode na ito, walang magagamit na mga application na gumagamit ng koneksyon ng data. Gusto mo bang lumabas ngayon?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Hindi available ang napiling pagkilos habang nasa Emergency Callback mode. Mananatili ang telepono sa mode na ito sa loob ng <xliff:g id="COUNT_1">%s</xliff:g> minuto. Gusto mo bang lumabas ngayon?</item>
-      <item quantity="other">Hindi available ang napiling pagkilos habang nasa Emergency Callback mode. Mananatili ang telepono sa mode na ito sa loob ng <xliff:g id="COUNT_1">%s</xliff:g> na minuto. Gusto mo bang lumabas ngayon?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Hindi available ang piniling pagkilos habang nasa pang-emergency na tawag."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Lumalabas sa mode na Emergency Callback"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Oo"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Pagiging Accessible"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Tawag sa Wi-Fi mula kay"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Tawag sa Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"I-tap muli upang buksan"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Nagkaroon ng error habang dine-decode ang mensahe."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Na-activate ng isang SIM card ang iyong serbisyo at na-update ang mga kakayahang roaming ng iyong telepono."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Masyadong maraming aktibong tawag. Mangyaring tapusin o pagsamahin ang mga umiiral na tawag bago gumawa ng bago."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Hindi maaaring tumawag dahil mayroon nang dina-dial na isa pang papalabas na tawag."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Hindi maaaring tumawag dahil mayroong hindi nasagot na papasok na tawag. Sagutin o tanggihan ang papasok na tawag bago gumawa ng bagong pagtawag."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Hindi maaaring tumawag dahil na-disable ang pagtawag gamit ang ro.telephony.disable-call na system property."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Hindi maaaring tumawag dahil mayroon nang dalawang tawag na kasalukuyang nagaganap. Idiskonekta ang isa sa mga tawag o i-merge ang mga ito sa isang kumperensya bago gumawa ng bagong pagtawag."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Hindi puwedeng tumawag dahil mayroon nang dalawang tawag na kasalukuyang nagaganap. Idiskonekta ang isa sa mga tawag o i-merge ang mga ito sa isang conference bago gumawa ng bagong pagtawag."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Para gamitin ang <xliff:g id="SUPP_SERVICE">%s</xliff:g>, tiyaking naka-on ang mobile data. Maaari mo itong baguhin sa mga setting ng mobile network."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Para gamitin ang <xliff:g id="SUPP_SERVICE">%s</xliff:g>, tiyaking naka-on ang mobile data at data roaming. Maaari mong baguhin ang mga ito sa mga setting ng mobile network."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"I-override ang Network Type:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"Available ang EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"Pinaghihigpitan ang DCNR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"Available ang NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Status ng NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"Available ang EN-DC (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"Pinaghihigpitang DCNR (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"Available ang NR (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Status ng NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Frequency ng NR:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"I-update"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"I-refresh"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Mahina ang signal ng iyong bluetooth. Subukang lumipat sa speakerphone."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Notification sa Kalidad ng Tawag"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Mga hindi na ginagamit na SIP account"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 74bb70b..41a997b 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Acil Geri Arama Modu"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Veri bağlantısı devre dışı bırakıldı"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Şu saate kadar veri bağlantısı olmayacak: <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Telefon <xliff:g id="COUNT_1">%s</xliff:g> dakika boyunca bu modda olacak. Bu moddayken veri bağlantısı kullanan hiçbir uygulama kullanılamaz. Şimdi çıkmak istiyor musunuz?</item>
-      <item quantity="one">Telefon <xliff:g id="COUNT_0">%s</xliff:g> dakika boyunca bu modda olacak. Bu moddayken veri bağlantısı kullanan hiçbir uygulama kullanılamaz. Şimdi çıkmak istiyor musunuz?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Seçilen işlem Acil Durum Çağrısı modunda kullanılamaz. Telefon <xliff:g id="COUNT_1">%s</xliff:g> dakika boyunca bu modda olacak. Şimdi çıkmak istiyor musunuz?</item>
-      <item quantity="one">Seçilen işlem Acil Durum Çağrısı modunda kullanılamaz. Telefon <xliff:g id="COUNT_0">%s</xliff:g> dakika boyunca bu modda olacak. Şimdi çıkmak istiyor musunuz?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Telefon bir dakika boyunca acil geri arama modunda olacak. Bu moddayken, veri bağlantısı kullanan uygulamalar kullanılamaz. Şimdi çıkmak istiyor musunuz?}other{Telefon %s dakika boyunca acil geri arama modunda olacak. Bu moddayken, veri bağlantısı kullanan uygulamalar kullanılamaz. Şimdi çıkmak istiyor musunuz?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Seçilen işlem acil geri arama modunda kullanılamaz. Telefon bir dakika boyunca bu modda kalacak. Şimdi çıkmak istiyor musunuz?}other{Seçilen işlem acil geri arama modunda kullanılamaz. Telefon %s dakika boyunca bu modda kalacak. Şimdi çıkmak istiyor musunuz?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Seçilen işlem, acil durum çağrısında kullanılamaz."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Acil Geri Arama Modundan çıkılıyor"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Evet"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Telefon bir dakika boyunca acil geri arama modunda olacak.\nŞimdi çıkmak istiyor musunuz?}other{Telefon %s dakika boyunca acil geri arama modunda olacak.\nŞimdi çıkmak istiyor musunuz?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Erişilebilirlik"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Gelen çağrı (kablosuz):"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Kablosuz çağrı"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Açmak için tekrar dokunun"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"İletinin kodu çözülürken bir hata oluştu."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Bir SIM kart, hizmetinizi etkinleştirdi ve telefonunuzun dolaşım özelliklerini güncelledi."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Etkin çağrıların sayısı çok fazla. Yeni bir çağrı yapmadan önce lütfen mevcut çağrıları sonlandırın veya birleştirin."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Zaten aranmakta olan bir numara olduğu için arama yapılamıyor."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Cevaplanmamış bir gelen arama olduğu için arama yapılamıyor. Yeni bir arama yapmadan önce gelen aramayı cevaplayın veya reddedin."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Telefon etme ro.telephony.disable-call sistem özelliği kullanılarak devre dışı bırakıldığı için arama yapılamıyor."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Devam eden iki arama olduğu için arama yapılamıyor. Yeni bir arama yapmadan önce aramalardan birini sonlandırın veya iki aramayı bir konferans aramasında birleştirin."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Devam eden iki arama olduğu için arama yapılamıyor. Yeni bir arama yapmadan önce aramalardan birini sonlandırın veya iki aramayı bir konferans aramasında birleştirin."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> hizmetini kullanmak 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" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> hizmetini kullanmak 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_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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Ağ Türünü Geçersiz Kıl:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC Kullanılabilir:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR Kısıtlanmış:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR Kullanılabilir:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR Durumu:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC Kullanılabilir (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR Kısıtlanmış (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR Kullanılabilir (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR Durumu (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR Frekansı:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Yararlanma Hakkı Kimliği:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Güncelle"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Yenile"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth sinyaliniz zayıf. Hoparlöre geçmeyi deneyin."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Arama Kalitesiyle İlgili Bildirim"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Kullanımdan kaldırılan SIP hesapları"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 92aa4d3..17c01a6 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -637,18 +637,8 @@
     <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>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Телефон перебуватиме в режимі екстреного виклику протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилини. У цьому режимі не працюватимуть додатки, які передають дані. Вийти?</item>
-      <item quantity="few">Телефон перебуватиме в режимі екстреного виклику протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилин. У цьому режимі не працюватимуть додатки, які передають дані. Вийти?</item>
-      <item quantity="many">Телефон перебуватиме в режимі екстреного виклику протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилин. У цьому режимі не працюватимуть додатки, які передають дані. Вийти?</item>
-      <item quantity="other">Телефон перебуватиме в режимі екстреного виклику протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилин. У цьому режимі не працюватимуть додатки, які передають дані. Вийти?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Вибрана дія недоступна в режимі екстреного виклику. Телефон перебуватиме в цьому режимі протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилини. Вийти?</item>
-      <item quantity="few">Вибрана дія недоступна в режимі екстреного виклику. Телефон перебуватиме в цьому режимі протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилин. Вийти?</item>
-      <item quantity="many">Вибрана дія недоступна в режимі екстреного виклику. Телефон перебуватиме в цьому режимі протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилин. Вийти?</item>
-      <item quantity="other">Вибрана дія недоступна в режимі екстреного виклику. Телефон перебуватиме в цьому режимі протягом <xliff:g id="COUNT_1">%s</xliff:g> хвилин. Вийти?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Вибрана дія не доступна під час екстреного виклику."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Вихід із режиму екстреного зворотного виклику"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Так"</string>
@@ -656,12 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -689,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Спеціальні можливості"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Виклик Wi-Fi від"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Дзвінок через Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Торкніться знову, щоб відкрити"</string>
     <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>
@@ -833,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Неможливо здійснити виклик, оскільки ви вже телефонуєте на інший номер."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Неможливо здійснити виклик. Прийміть або відхиліть вхідний виклик, перш ніж здійснювати новий."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Неможливо здійснити виклик, оскільки дзвінки вимкнено за допомогою системного параметра ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Неможливо здійснити виклик, оскільки наразі вже тривають два виклики. Припиніть один із викликів або з’єднайте їх у конференцію, перш ніж здійснити новий виклик."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Неможливо зателефонувати, оскільки тривають уже два виклики. Припиніть один із них або об’єднайте їх у конференцію, перш ніж здійснити новий."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Щоб використовувати <xliff:g id="SUPP_SERVICE">%s</xliff:g>, потрібно ввімкнути мобільне передавання даних (у налаштуваннях мобільної мережі)."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Щоб використовувати <xliff:g id="SUPP_SERVICE">%s</xliff:g>, потрібно ввімкнути мобільне передавання й роумінг даних (у налаштуваннях мобільної мережі)."</string>
     <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>
@@ -905,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Перевизначити тип мережі:"</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>
@@ -916,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC доступно:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR обмежено:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR доступно:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Статус NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"З доступом EN-DC (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"З обмеженням DCNR (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"З доступом NR (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Статус NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Частота NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Установити режим радіодіапазону"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Завантаження списку діапазонів частот…"</string>
@@ -930,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Ідентифікатор доступу WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Оновити"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Оновити"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Сигнал Bluetooth заслабкий. Спробуйте переключитися на гучний зв\'язок."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Сповіщення про якість виклику"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Облікові записи SIP, що не підтримуються"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 7a5e676..e54b8eb 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">منتخب کردہ کارروائی ایک ہنگامی کال بیک وضع میں رہتے ہوئے دستیاب نہیں ہے۔ فون <xliff:g id="COUNT_0">%s</xliff:g> منٹ تک اس وضع میں رہے گا۔ کیا آپ ابھی باہر نکلنا چاہتے ہیں؟</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{فون ایک منٹ تک ایمرجنسی کال بیک وضع میں رہے گا۔ اس وضع میں رہتے ہوئے ڈیٹا کنکشن کا استعمال کرنے والی کوئی بھی ایپ استعمال نہیں ہو سکتی۔ کیا آپ ابھی باہر نکلنا چاہتے ہیں؟}other{‏فون ‎%s منٹ تک ایمرجنسی کال بیک وضع میں رہے گا۔ اس وضع میں رہتے ہوئے ڈیٹا کنکشن کا استعمال کرنے والی کوئی بھی ایپلیکیشن استعمال نہیں ہو سکتی۔ کیا آپ ابھی باہر نکلنا چاہتے ہیں؟}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{منتخب کردہ کارروائی ایمرجنسی کال بیک وضع میں دستیاب نہیں ہے۔ فون ایک منٹ تک اس وضع میں رہے گا۔ کیا آپ ابھی نکلنا چاہتے ہیں؟}other{‏منتخب کردہ کارروائی ایمرجنسی کال بیک وضع میں دستیاب نہیں ہے۔ فون ‎%s منٹ تک اس وضع میں رہے گا۔ کیا آپ ابھی نکلنا چاہتے ہیں؟}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"منتخب کردہ کارروائی ایک ہنگامی کال میں رہتے ہوئے دستیاب نہیں ہے۔"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"موجودہ ہنگامی کال بیک طرز"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"ہاں"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{فون ایک منٹ تک ایمرجنسی کال بیک وضع میں رہے گا۔\nکیا آپ ابھی باہر نکلنا چاہتے ہیں؟}other{‏فون ‎%s منٹ تک ایمرجنسی کال بیک وضع میں رہے گا۔\nکیا آپ ابھی باہر نکلنا چاہتے ہیں؟}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"ایکسیسبیلٹی"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"‏Wi-Fi کال منجانب"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"‏Wi-Fi کال"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"کھولنے کیلئے دوبارہ تھپتھپائیں"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"کال نہیں کی جا سکتی کیونکہ باہر جانے والی دوسری کال پہلے سے ڈائل کی جا رہی ہے۔"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"ایک جواب نہ ملنے والی اِن کمنگ کال کی وجہ سے کال نہیں کی جا سکتی۔ نئی کال کرنے کے لیے پہلے اِن کمنگ کال کا جواب دیں یا مسترد کریں۔"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"‏ro.telephony.disable-call سسٹم کی خصوصیت کے ذریعے کال کرنے کو غیر فعال کر دیے جانے کی وجہ سے کال نہیں کی جا سکتی۔"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"پہلے سے دو کالز کے پیش رفت میں ہونے کی وجہ سے کال نہیں کی جا سکتی۔ نئی کال کرنے کے لیے پہلے ان میں سے ایک کو غیر منسلک کریں یا انہیں کانفرنس میں ضم کریں۔"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"پہلے سے دو کالز کے پیش رفت میں ہونے کی وجہ سے کال نہیں کی جا سکتی۔ نئی کال کرنے کیلئے پہلے ان میں سے ایک کو غیر منسلک کریں یا انہیں کانفرنس میں ضم کریں۔"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> استعمال کرنے کے لیے، یقینی بنائيں کہ موبائل ڈیٹا آن ہے۔ آپ موبائل یٹ ورک کی ترتیبات میں اسے تبدیل کر سکتے ہیں۔"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> استعمال کرنے کے لیے، یقینی بنائيں کہ موبائل ڈیٹا اور ڈیٹا رومنگ آن ہیں۔ آپ موبائل نیٹ ورک کی ترتیبات میں انہیں تبدیل کر سکتے ہیں۔"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"نیٹ ورک کی قسم کو اوور رائیڈ کریں:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"‏EN-DC دستیاب ہے:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"‏DCNR محدود کردہ:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"‏NR دستیاب ہے:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"‏NR ریاست:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"‏EN-DC دستیاب (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"‏DCNR محدود (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"‏NR دستیاب (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"‏NR کی صورتحال (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"‏NR فریکوئنسی:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"ریڈیو بینڈ موڈ سیٹ کریں"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"بینڈ کی فہرست لوڈ ہو رہی ہے…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC Entitlement ID:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"اپ ڈیٹ کریں"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"ریفریش کریں"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"آپ کا بلوٹوتھ سگنل کمزور ہے۔ اسپیکر فون پر سوئچ کر کے آزمائیں۔"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"کال کی کوالٹی کی اطلاع"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"‏فرسودہ SIP اکاؤنٹس"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index a702774..5803846 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Favqulodda teskari chaqiruv rejimi"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Internetga ulanish o‘chirildi"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"<xliff:g id="COMPLETETIME">%s</xliff:g> gacha internetga ulanib bo‘lmaydi"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="other">Telefon <xliff:g id="COUNT_1">%s</xliff:g> daqiqa davomida Favqulodda teskari qo‘ng‘iroq rejimida bo‘ladi. Ushbu rejimda internet bilan ishlaydigan hech qanday ilovadan foydalanib bo‘lmaydi. Bu rejimdan chiqishni xohlaysizmi?</item>
-      <item quantity="one">Telefon <xliff:g id="COUNT_0">%s</xliff:g> daqiqa davomida Favqulodda teskari qo‘ng‘iroq rejimida bo‘ladi. Ushbu rejimda internet bilan ishlaydigan hech qanday ilovadan foydalanib bo‘lmaydi. Bu rejimdan chiqishni xohlaysizmi?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Tanlangan amaldan Favqulodda teskari qo‘ng‘iroq rejimida foydalanib bo‘lmaydi. Telefon <xliff:g id="COUNT_1">%s</xliff:g> daqiqa davomida shu rejimda bo‘ladi. Bu rejimdan chiqishni xohlaysizmi?</item>
-      <item quantity="one">Tanlangan amaldan Favqulodda teskari qo‘ng‘iroq rejimida foydalanib bo‘lmaydi. Telefon <xliff:g id="COUNT_0">%s</xliff:g> daqiqa davomida shu rejimda bo‘ladi. Bu rejimdan chiqishni xohlaysizmi?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Telefon favqulodda qayta chaqiruv rejimida bir daqiqa qoladi. Bu rejimda internet ishlatadigan ilovalardan foydalana olmaysiz. Bu rejimdan chiqilsinmi?}other{Telefon favqulodda qayta chaqiruv rejimida %s daqiqa qoladi. Bu rejimda internet ishlatadigan ilovalardan foydalana olmaysiz. Bu rejimdan chiqilsinmi?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Tanlangan amallarni favqulodda qayta chaqiruv rejimida bajarish imkonsiz. Telefon bu rejimida bir daqiqa qoladi. Bu rejimdan chiqilsinmi?}other{Tanlangan amallarni favqulodda qayta chaqiruv rejimida bajarish imkonsiz. Telefon bu rejimida %s daqiqa qoladi. Bu rejimdan chiqilsinmi?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Favqulodda qo‘ng‘rioq rejimida tanlangan amalni bajarib bo‘lmaydi."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Favqulodda teskari qo‘ng‘iroq rejimidan chiqilmoqda"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Ha"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Telefon favqulodda qayta chaqiruv rejimida bir daqiqa qoladi.\nBu rejimdan chiqilsinmi?}other{Telefon favqulodda qayta chaqiruv rejimida %s daqiqa qoladi.\nBu rejimdan chiqilsinmi?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Maxsus imkoniyatlar"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi orqali qo‘ng‘iroq:"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi qo‘ng‘irog‘i"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Ochish uchun yana bosing"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Xabarni kodsizlashda xatolik yuz berdi."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Telefoningizda rouming xizmati sozlangan va SIM karta faollashtirilgan."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Hozir bir nechta chaqiruv amalda. Boshqa abonentga telefon qilishdan avval amaldagi chaqiruvlarni tugating yoki ularni konferens-aloqaga birlashtiring."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Telefon qilish imkonsiz, chunki siz allaqachon boshqa raqamga telefon qilmoqdasiz."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Telefon qilish imkonsiz. Telefon qilish uchun avval kiruvchi chaqiruvni qabul qiling yoki rad eting."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Telefon qilish imkonsiz, chunki chaqiruvlar ro.telephony.disable-call tizim parametrida faolsizlantirilgan."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Telefon qilish imkonsiz, chunki ayni paytda ikkita chaqiruv davom etmoqda. Telefon qilish uchun chaqiruvlardan birini tugating yoki ularni konferens-aloqaga birlashtiring."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Telefon qilish imkonsiz, chunki ayni paytda ikkita chaqiruv davom etmoqda. Telefon qilish uchun chaqiruvlardan birini yakunlang yoki ularni konferens-aloqaga birlashtiring."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> imkoniyatlaridan foydalanish uchun mobil internet yoqilgan bo‘lishi lozim. Buning uchun mobil tarmoq sozlamalariga kiring."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g> imkoniyatlaridan foydalanish uchun mobil internet va internet rouming yoqilgan bo‘lishi lozim. Buning uchun mobil tarmoq sozlamalariga kiring."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Tarmoq turini almashtirish:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC ochiq:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR cheklangan:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR ochiq:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR holati:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC mavjud (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR: cheklovlar mavjud (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR mavjud (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR holati (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR chastotasi:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Tarmoq rejimini sozlash"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Chastotalar ro‘yxati yuklanmoqda…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC ruxsat identifikatori:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Yangilash"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Yangilash"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth signali kuchsiz. Baland ovoz rejimini yoqish tavsiya etiladi."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Chaqiruv sifati haqida bildirishnoma"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"To‘xtatilgan SIP hisoblar"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index a6d8d20..4fcd4d8 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Chế độ Gọi lại Khẩn cấp"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Đã tắt kết nối mạng"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Không có kết nối dữ liệu cho đến <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <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. Khi ở chế độ này, không thể dùng bất kỳ ứng dụng nào sử dụng kết nối dữ liệu. Bạn có muốn thoát chế độ này ngay bây giờ 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. Khi ở chế độ này, không thể dùng bất kỳ ứng dụng nào sử dụng kết nối dữ liệu. Bạn có muốn thoát chế độ này ngay bây giờ không?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="other">Tác vụ đã chọn không khả dụng khi ở chế độ Gọi lại khẩn cấp. Điện thoại sẽ ở chế độ này trong <xliff:g id="COUNT_1">%s</xliff:g> phút. Bạn có muốn thoát chế độ này ngay bây giờ không?</item>
-      <item quantity="one">Tác vụ đã chọn không khả dụng khi ở chế độ Gọi lại khẩn cấp. Điện thoại sẽ ở chế độ này trong <xliff:g id="COUNT_0">%s</xliff:g> phút. Bạn có muốn thoát chế độ này ngay bây giờ không?</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{Điện thoại sẽ ở chế độ Gọi lại khẩn cấp trong 1 phút. Không thể sử dụng các ứng dụng cần kết nối dữ liệu khi đang ở trong chế độ này. Bạn có muốn thoát ngay không?}other{Điện thoại sẽ ở chế độ Gọi lại khẩn cấp trong %s phút. Không thể sử dụng các ứng dụng cần kết nối dữ liệu khi đang ở trong chế độ này. Bạn có muốn thoát ngay không?}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{Thao tác đã chọn không thực hiện được trong khi ở chế độ Gọi lại khẩn cấp. Điện thoại sẽ ở chế độ này trong vòng 1 phút. Bạn có muốn thoát ngay không?}other{Thao tác đã chọn không thực hiện được trong khi ở chế độ Gọi lại khẩn cấp. Điện thoại sẽ ở chế độ này trong vòng %s phút. Bạn có muốn thoát ngay không?}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Tác vụ đã chọn không khả dụng trong khi thực hiện cuộc gọi khẩn cấp."</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Thoát khỏi chế độ Gọi lại khẩn cấp"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Có"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{Điện thoại sẽ ở chế độ gọi lại khẩn cấp trong 1 phút.\nBạn có muốn thoát ngay không?}other{Điện thoại sẽ ở chế độ gọi lại khẩn cấp trong %s phút.\nBạn có muốn thoát ngay không?}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Hỗ trợ tiếp cận"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Cuộc gọi qua Wi-Fi từ"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Cuộc gọi qua Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Nhấn lại để mở"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Đã xảy ra lỗi khi giải mã tin nhắn."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Thẻ SIM đã kích hoạt dịch vụ của bạn và đã cập nhật chức năng chuyển vùng của điện thoại."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Có quá nhiều cuộc gọi hiện hoạt. Vui lòng kết thúc hoặc hợp nhất các cuộc gọi hiện có trước khi thực hiện cuộc gọi mới."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Không thể thực hiện cuộc gọi vì đang gọi đi số khác."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Không thể thực hiện cuộc gọi vì chưa trả lời cuộc gọi đến. Hãy trả lời hoặc từ chối cuộc gọi đến trước khi thực hiện cuộc gọi mới."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Không thể thực hiện cuộc gọi vì tính năng gọi điện đã bị tắt bằng cách sử dụng thuộc tính hệ thống ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Không thể thực hiện cuộc gọi vì có 2 cuộc gọi đang diễn ra. Hãy ngắt kết nối một trong các cuộc gọi hoặc gộp thành cuộc gọi kiểu hội nghị trước khi thực hiện cuộc gọi mới."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Không thể gọi điện vì có 2 cuộc gọi đang diễn ra. Hãy ngắt kết nối 1 trong 2 cuộc gọi hoặc gộp thành 1 cuộc gọi kiểu hội nghị truyền hình trước khi thực hiện cuộc gọi mới."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Để sử dụng <xliff:g id="SUPP_SERVICE">%s</xliff:g>, hãy đảm bảo dữ liệu di động đ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" msgid="670342104569972327">"Để sử dụng <xliff:g id="SUPP_SERVICE">%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 đang bật. Bạn có thể thay đổi các tùy chọn này trong mục cài đặt mạng di động."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Ghi đè loại mạng:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"Hỗ trợ EN-DC:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"Hạn chế DCNR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"Hỗ trợ NR:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Trạng thái NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"Hỗ trợ EN-DC (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"Hạn chế DCNR (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"Hỗ trợ NR (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Trạng thái NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Tần số NR:"</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>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"Mã quyền đối với WFC:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Cập nhật"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Làm mới"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Tín hiệu Bluetooth của bạn đang yếu. Hãy thử chuyển sang loa ngoài."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Thông báo về chất lượng cuộc gọi"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Tài khoản SIP không dùng nữa"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 6bcb0a5..bea64da 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">在紧急回拨模式下无法执行所选操作。手机在 <xliff:g id="COUNT_0">%s</xliff:g> 分钟内都会处于此模式。要立即退出吗？</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{手机在接下来的 1 分钟内将处于紧急回拨模式，此模式下无法使用任何需要连接数据网络的应用。您要立即退出吗？}other{手机在接下来的 %s 分钟内将处于紧急回拨模式，此模式下无法使用任何需要连接数据网络的应用。您要立即退出吗？}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{无法在紧急回拨模式下执行所选操作，而手机在接下来的 1 分钟内将处于此模式。您要立即退出吗？}other{无法在紧急回拨模式下执行所选操作，而手机在接下来的 %s 分钟内将处于此模式。您要立即退出吗？}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"进行紧急呼救时无法执行所选操作。"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"正在退出紧急回拨模式"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"是"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{手机在接下来的 1 分钟内将处于紧急回拨模式。\n您要立即退出吗？}other{手机在接下来的 %s 分钟内将处于紧急回拨模式。\n您要立即退出吗？}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"无障碍功能"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"WLAN 通话来电："</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"WLAN 通话"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"再次点按即可打开"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"由于已在拨打另一个电话，因此无法拨打新电话。"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"由于有未接来电，因此无法拨打电话。请先接听或拒绝来电，然后才能拨打新电话。"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"通话功能已经由 ro.telephony.disable-call 系统属性停用，因此无法拨打电话。"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"由于已有两个正在进行的通话，因此无法拨打电话。请先中断其中一个通话或将两个通话合并到同一个会议中，然后才能拨打新电话。"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"由于已有两个正在进行的通话，因此无法拨打电话。请先断开其中一个通话的连接或将两个通话合并到同一个会议中，然后才能拨打新电话。"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"要使用<xliff:g id="SUPP_SERVICE">%s</xliff:g>服务，请确保已开启移动数据。您可以在移动网络设置中进行更改。"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"要使用<xliff:g id="SUPP_SERVICE">%s</xliff:g>服务，请确保已开启移动数据和数据网络漫游。您可以在移动网路设置中进行更改。"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"覆盖网络类型："</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"4G/5G 双连接可用："</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"5G 双连接受限："</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"5G 可用："</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"5G 状态："</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC 可用 (NSA)："</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR 受限 (NSA)："</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR 可用 (NSA)："</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR 状态 (NSA)："</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"5G 频率："</string>
     <string name="band_mode_title" msgid="7988822920724576842">"设置无线装置频道模式"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"正在加载频道列表…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC 权限 ID："</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"更新"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"刷新"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"您的蓝牙信号较弱。请尝试切换为扬声器模式。"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"通话质量通知"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"已弃用的 SIP 帐号"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 85cedaa..6d42019 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">在緊急電話模式中，無法進行已選取的操作。手機將在 <xliff:g id="COUNT_0">%s</xliff:g> 分鐘內處於此模式。您要退出嗎？</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{手機在接下來的 1 分鐘都將處於緊急回撥模式。在這個模式中，所有使用數據連線的應用程式皆無法使用。您要立即退出嗎？}other{手機在接下來的 %s 分鐘都將處於緊急回撥模式。在這個模式中，所有使用數據連線的應用程式皆無法使用。您要立即退出嗎？}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{緊急回撥模式不支援您所選取的操作。手機在接下來的 1 分鐘都將處於這個模式，您要立即退出嗎？}other{緊急回撥模式不支援您所選取的操作。手機在接下來的 %s 分鐘都將處於這個模式，您要立即退出嗎？}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"緊急電話模式不支援您所選取的操作。"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"正在退出緊急回撥模式"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"是"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{手機在接下來的 1 分鐘都將處於緊急回撥模式。\n您要立即退出嗎？}other{手機在接下來的 %s 分鐘都將處於緊急回撥模式。\n您要立即退出嗎？}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"無障礙功能"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi 通話來自"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi 通話"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"再次輕按即可開啟"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"系統正在撥打另一通電話，因此無法撥打電話。"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"由於目前有尚未接聽的來電，因此無法撥打電話。請先接聽或拒絕來電，然後再撥打電話。"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"通話功能已由 ro.telephony.disable-call 系統屬性停用，因此無法撥打電話。"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"由於目前已有兩個正在進行的通話，因此無法撥打電話。請先中斷其中一個通話，或將兩個通話合併至相同會議，然後再撥打電話。"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"目前已有兩個通話正在進行，因此無法撥打電話。請先結束其中一個通話，或將兩個通話合併為一個會議，才撥打電話。"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"如要使用<xliff:g id="SUPP_SERVICE">%s</xliff:g>，請確保流動數據已開啟。您可以在流動網絡設定中變更此設定。"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"如要使用<xliff:g id="SUPP_SERVICE">%s</xliff:g>，請確保流動數據和數據漫遊已開啟。您可以在流動網絡設定中變更此設定。"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"覆寫網絡類型："</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC 可用："</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR 受限："</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR 可用："</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR 狀態："</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC 可用 (NSA)："</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR 受限 (NSA)："</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR 可用 (NSA)："</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR 狀態 (NSA)："</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR 頻率："</string>
     <string name="band_mode_title" msgid="7988822920724576842">"設定無線電頻段模式"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"正在載入頻段清單…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC 授權 ID："</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"更新"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"重新整理"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"您的藍牙訊號微弱。請改用擴音器。"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"通話品質通知"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"已停用的 SIP 帳戶"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index fe9238d..c3d4bf4 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -637,14 +637,8 @@
     <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>
-    <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>
-    </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>
-      <item quantity="one">緊急回電模式不支援您要執行的操作。接下來的 <xliff:g id="COUNT_0">%s</xliff:g> 分鐘內，手機會進入此模式。您要立即退出這個模式嗎？</item>
-    </plurals>
+    <string name="alert_dialog_exit_ecm" msgid="7661603870224398025">"{count,plural, =1{接下來的 1 分鐘內，手機將處於緊急回撥模式。在這個模式下，所有使用數據連線的應用程式都將無法運作。要立即退出這個模式嗎？}other{接下來的 %s 分鐘內，手機將處於緊急回撥模式。在這個模式下，所有使用數據連線的應用程式都將無法運作。要立即退出這個模式嗎？}}"</string>
+    <string name="alert_dialog_not_avaialble_in_ecm" msgid="8717711120099503279">"{count,plural, =1{緊急回撥模式下無法執行你指定的操作。接下來的 1 分鐘內，手機將處於緊急回撥模式。要立即退出這個模式嗎？}other{緊急回撥模式下無法執行你指定的操作。接下來的 %s 分鐘內，手機將處於緊急回撥模式。要立即退出這個模式嗎？}}"</string>
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"緊急通話模式不支援您要執行的操作。"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"正在退出緊急回撥模式"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"是"</string>
@@ -652,10 +646,7 @@
     <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="alert_dialog_exit_ecm_without_data_restriction_hint" msgid="7549850847524907932">"{count,plural, =1{接下來的 1 分鐘內，手機將處於緊急回撥模式。\n要立即退出這個模式嗎？}other{接下來的 %s 分鐘內，手機將處於緊急回撥模式。\n要立即退出這個模式嗎？}}"</string>
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"無障礙設定"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi 通話來電："</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi 通話"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"再次輕觸即可開啟"</string>
     <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>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"你正在撥出其他電話，因此無法再撥號。"</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"你尚未接聽來電，因此無法撥打電話。你必須先決定接聽或拒接來電，才能再撥打電話。"</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"通話功能已透過 ro.telephony.disable-call system 屬性停用，因此無法撥打電話。"</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"你目前有兩場正在進行的通話，因此無法撥打電話。你必須掛斷其中一場通話或將通話合併成會議，才能再撥打電話。"</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"目前有兩場正在進行的通話，因此無法撥打電話。你必須掛斷其中一場通話或將通話合併成會議，才能再撥打電話。"</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"如要使用<xliff:g id="SUPP_SERVICE">%s</xliff:g>，請確認行動數據功能已開啟。你可以前往行動網路設定進行變更。"</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"如要使用<xliff:g id="SUPP_SERVICE">%s</xliff:g>，請確認行動數據功能和漫遊服務已開啟。你可以前往行動網路設定進行變更。"</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"覆寫網路類型："</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"EN-DC 可供使用："</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"DCNR 受限："</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"NR 可供使用："</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"NR 狀態："</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"EN-DC 可使用 (NSA)："</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"DCNR 受限 (NSA)："</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"NR 可使用 (NSA)："</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"NR 狀態 (NSA)："</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"NR 頻率："</string>
     <string name="band_mode_title" msgid="7988822920724576842">"設定無線電頻帶模式"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"正在載入頻帶清單…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"WFC 授權 ID："</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"更新"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"重新整理"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"你的藍牙訊號微弱，建議你改用擴音模式。"</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"通話品質通知"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"不適用的 SIP 帳戶"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index bcc1562..fbedd2b 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -637,14 +637,8 @@
     <string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"Imodi Yokuphinda Ukushayela Okuphuthumayo"</string>
     <string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Uxhumano lwedatha luvimbelwe"</string>
     <string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Alukho uxhumo lwedatha kuze kube ngu-<xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
-    <plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
-      <item quantity="one">Ifoni izoba kumodi yokushayela emuva yesimo esiphuthumayo amaminithi angu-<xliff:g id="COUNT_1">%s</xliff:g>. Ngenkathi ikule modi azikho izinhlelo zokusebenza ezisebenzisa uxhumo ledatha ezingasetshenziswa. Ufuna ukuphuma manje?</item>
-      <item quantity="other">Ifoni izoba kumodi yokushayela emuva yesimo esiphuthumayo amaminithi angu-<xliff:g id="COUNT_1">%s</xliff:g>. Ngenkathi ikule modi azikho izinhlelo zokusebenza ezisebenzisa uxhumo ledatha ezingasetshenziswa. Ufuna ukuphuma manje?</item>
-    </plurals>
-    <plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
-      <item quantity="one">Isenzo esikhethiwe asitholakali ngenkathi ikumodi yokushayela emuv ayesimo esiphuthumayo. Ifoni izoba kule modi amaminithi angu-<xliff:g id="COUNT_1">%s</xliff:g>. Ufuna ukuphuma manje?</item>
-      <item quantity="other">Isenzo esikhethiwe asitholakali ngenkathi ikumodi yokushayela emuv ayesimo esiphuthumayo. Ifoni izoba kule modi amaminithi angu-<xliff:g id="COUNT_1">%s</xliff:g>. Ufuna ukuphuma manje?</item>
-    </plurals>
+    <!-- format error in translation for alert_dialog_exit_ecm (7661603870224398025) -->
+    <!-- format error in translation for alert_dialog_not_avaialble_in_ecm (8717711120099503279) -->
     <string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"Isenzo esikhethiwe asitholakali ngenkathi usocingweni oluphuthumayo"</string>
     <string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Ikhipha Imodi Yokuphinda Ukushaya Okuphuthumayo"</string>
     <string name="alert_dialog_yes" msgid="3532525979632841417">"Yebo"</string>
@@ -652,10 +646,7 @@
     <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>
+    <!-- format error in translation for alert_dialog_exit_ecm_without_data_restriction_hint (7549850847524907932) -->
     <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>
@@ -683,7 +674,6 @@
     <string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Ukufinyeleleka"</string>
     <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Ikholi ye-Wi-Fi kusukela ku-"</string>
     <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Ikholi ye-Wi-Fi"</string>
-    <string name="emergency_action_launch_hint" msgid="2762016865340891314">"Thepha futhi ukuze uvule"</string>
     <string name="message_decode_error" msgid="1061856591500290887">"Kube nephutha ngenkathi kukhishwa ikhodi kumlayezo."</string>
     <string name="callFailed_cdma_activation" msgid="5392057031552253550">"Ikhadi le-SIM lenze kwasebenza isevisi yakho laphinde labuyekeza amakhono okuzula wefoni yakho."</string>
     <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Kunamakholi amaningi asebenzayo. Sicela uphelise noma uhlanganise amakholi akhona ngaphambi kokubeka eyodwa."</string>
@@ -827,7 +817,7 @@
     <string name="callFailed_already_dialing" msgid="7250591188960691086">"Ayikwazi ukubeka ikholi njengoba enye ikholi ephumayo isivele iyadayela."</string>
     <string name="callFailed_already_ringing" msgid="2376603543544289303">"Ayikwazi ukubeka ikholi njengoba kunekholi engenayo engaphenduliwe. Phendula noma nqaba ikholi engenayo ngaphambi kokubeka ikholi entsha."</string>
     <string name="callFailed_calling_disabled" msgid="5010992739401206283">"Ayikwazi ukubeka ikholi njengoba ukushaya kukhutshaziwe kusetshenziswa isistimu ye-ro.telephony.disable-call."</string>
-    <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Ayikwazi ukubeka ikholi njengoba sekuvele kunamakholi amabili aqhubekayo. Nqamula eyodwa yamakholi noma ahlanganise ngaphambi ngaphambi kokubeka ikholi entsha."</string>
+    <string name="callFailed_too_many_calls" msgid="2761754044990799580">"Awukwazi ukubeka ikholi njengoba kunamakholi amabili aqhubekayo kakade. Nqamula eyodwa yamakholi noma wahlanganisele enkofeni ngaphambi kokubeka ikholi entsha."</string>
     <string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"Ukuze usebenzise i-<xliff:g id="SUPP_SERVICE">%s</xliff:g>, qiniseka ukuthi idatha yeselula ivuliwe. Ungashintsha lokhu kuzilungiselelo zenethiwekhi yeselula."</string>
     <string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"Ukuze usebenzise i-<xliff:g id="SUPP_SERVICE">%s</xliff:g>, qiniseka ukuthi idatha yeselula kanye nokuzula kuvuliwe. Ungashintsha lokhu kuzilungiselelo zenethiwekhi yeselula."</string>
     <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>
@@ -899,6 +889,7 @@
     <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="radio_info_override_network_type_label" msgid="4176280017221092005">"Khipha Uhlobo Lwenethiwekhi:"</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>
@@ -910,10 +901,10 @@
     <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="radio_info_endc_available" msgid="4410653375290113436">"I-EN-DC Iyatholakala:"</string>
-    <string name="radio_info_dcnr_restricted" msgid="2469125498066960807">"Okukhawulelwe kwe-DCNR:"</string>
-    <string name="radio_info_nr_available" msgid="1321318331361249997">"I-NR Iyatholakala:"</string>
-    <string name="radio_info_nr_state" msgid="1337571996788535356">"Isimo se-NR:"</string>
+    <string name="radio_info_endc_available" msgid="2983767110681230019">"I-EN-DC Iyatholakala (NSA):"</string>
+    <string name="radio_info_dcnr_restricted" msgid="7147511536420148173">"Ikhawulewe nge-DCNR (NSA):"</string>
+    <string name="radio_info_nr_available" msgid="3383388088451237182">"I-NR Iyatholakala (NSA):"</string>
+    <string name="radio_info_nr_state" msgid="4158805093187555149">"Isimo se-NR (NSA):"</string>
     <string name="radio_info_nr_frequency" msgid="1201156032796584128">"Imvamisa ye-NR:"</string>
     <string name="band_mode_title" msgid="7988822920724576842">"Isetha imodi yebhendi yerediyo"</string>
     <string name="band_mode_loading" msgid="795923726636735967">"Ilayisha uhlu lwebhendi…"</string>
@@ -924,6 +915,9 @@
     <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>
+    <string name="provisioning_info_wfc_entitlement_id" msgid="8845188780811890910">"I-ID WFC Entitlement:"</string>
+    <string name="update_provisioning_info_wfc_entitlement_id" msgid="7044171908781134221">"Vuselela"</string>
+    <string name="refresh_provisioning_info_wfc_entitlement_id" msgid="738894335351353407">"Vuselela"</string>
     <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Isignali yakho ye-bluetooth ayiqinile. Zama ukushintshela kusipikhasefoni."</string>
     <string name="call_quality_notification_name" msgid="3476828289553948830">"Isaziso Sekhwalithi"</string>
     <string name="notification_channel_sip_account" msgid="1261816025156179637">"Ama-akhawunti we-SIP ehlisiwe"</string>
diff --git a/res/values/config.xml b/res/values/config.xml
index a296254..94c932c 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -156,7 +156,7 @@
     <!-- Package name for the mobile network settings [DO NOT TRANSLATE] -->
     <string name="mobile_network_settings_package" translatable="false">com.android.settings</string>
     <!-- Class name for the mobile network settings activity [DO NOT TRANSLATE] -->
-    <string name="mobile_network_settings_class" translatable="false">com.android.settings.network.telephony.MobileNetworkActivity</string>
+    <string name="mobile_network_settings_class" translatable="false">com.android.settings.Settings.MobileNetworkActivity</string>
 
     <!-- CDMA activation goes through HFA -->
     <!-- DEPRECATED: Use CarrierConfigManager#KEY_USE_HFA_FOR_PROVISIONING_BOOL -->
@@ -317,8 +317,4 @@
     <!-- The package names which can request thermal mitigation. -->
     <string-array name="thermal_mitigation_allowlisted_packages" translatable="false">
     </string-array>
-
-    <!-- The package name of the app which hosts the
-         {@link TelecomManager#ACTION_SHOW_CALL_SETTINGS} settings screen. -->
-    <string name="call_settings_package_name">com.android.phone</string>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2077530..c17f9b9 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1446,19 +1446,19 @@
     <!-- ECM: Displays the time when ECM will end, Example: "No Data Connection until 10:45 AM" -->
     <string name="phone_in_ecm_notification_complete_time">No data connection until <xliff:g id="completeTime">%s</xliff:g></string>
     <!-- ECM: Dialog box message for exiting from the notifications screen -->
-    <plurals name="alert_dialog_exit_ecm">
+    <string name="alert_dialog_exit_ecm"> {count, plural,
         <!-- number of minutes is one -->
-        <item quantity="one">The phone will be in Emergency Callback mode for <xliff:g id="count">%s</xliff:g> minute. While in this mode no apps using a data connection can be used. Do you want to exit now?</item>
+        =1    {The phone will be in Emergency Callback mode for one minute. While in this mode no apps using a data connection can be used. Do you want to exit now?}
         <!-- number of minutes is not equal to one -->
-        <item quantity="other">The phone will be in Emergency Callback mode for <xliff:g id="count">%s</xliff:g> minutes. While in this mode no applications using a data connection can be used. Do you want to exit now?</item>
-    </plurals>
+        other {The phone will be in Emergency Callback mode for %s minutes. While in this mode no applications using a data connection can be used. Do you want to exit now?}
+    }</string>
     <!-- ECM: Dialog box message for exiting from any other app -->
-    <plurals name="alert_dialog_not_avaialble_in_ecm">
+    <string name="alert_dialog_not_avaialble_in_ecm"> {count, plural,
         <!-- number of minutes is one -->
-        <item quantity="one">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="count">%s</xliff:g> minute. Do you want to exit now?</item>
+        =1    {The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for one minute. Do you want to exit now?}
         <!-- number of minutes is not equal to one -->
-        <item quantity="other">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="count">%s</xliff:g> minutes. Do you want to exit now?</item>
-    </plurals>
+        other {The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for %s minutes. Do you want to exit now?}
+    }</string>
     <!-- ECM: Dialog box message while in emergency call -->
     <string name="alert_dialog_in_ecm_call">The selected action isn\'t available while in an emergency call.</string>
     <!-- ECM: Progress text -->
@@ -1474,12 +1474,12 @@
     <!-- 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">
+    <string name="alert_dialog_exit_ecm_without_data_restriction_hint"> {count, plural,
         <!-- 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>
+        =1    {The phone will be in emergency callback mode for one minute.\nDo you want to exit now?}
         <!-- 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>
+        other {The phone will be in emergency callback mode for %s minutes.\nDo you want to exit now?}
+    }</string>
 
     <!-- For incoming calls, this is a string we can get from a CDMA network instead of
          the actual phone number, to indicate there's no number present.  DO NOT TRANSLATE. -->
@@ -1601,9 +1601,6 @@
     <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
     <string name="wifi_calling_settings_key">button_wifi_calling_settings_key</string>
 
-    <!-- Hint appearing below a selected action on the emergency dialer telling user to tap again to execute the action [CHAR LIMIT=NONE] -->
-    <string name="emergency_action_launch_hint">Tap again to open</string>
-
     <!-- Strings for IMAP -->
 
     <!-- String used in place of a message that could not be properly decoded (e.g. bad base64
@@ -1952,7 +1949,7 @@
     <string name="callFailed_calling_disabled">Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property.</string>
     <!-- In-call screen: error message shown when the user attempts to place a call, but calling has
          been disabled using a debug property. -->
-    <string name="callFailed_too_many_calls">Cannot place a call a there are already two calls in progress.  Disconnect one of the calls or merge them into a conference prior to placing a new call.</string>
+    <string name="callFailed_too_many_calls">Cannot place a call as there are already two calls in progress.  Disconnect one of the calls or merge them into a conference prior to placing a new call.</string>
     <!-- Message displayed to the user when they attempt to edit options for a supplementary service
          (call waiting, call barring, call forwarding, and caller ID), but they are required to
          enable mobile data first. -->
@@ -2130,6 +2127,8 @@
     <!-- 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="radio_info_override_network_type_label">Override 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>
@@ -2152,17 +2151,17 @@
     <!-- 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>
     <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
-    <string name="radio_info_endc_available">EN-DC Available:</string>
+    <string name="radio_info_endc_available">EN-DC Available (NSA):</string>
     <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
-    <string name="radio_info_dcnr_restricted">DCNR Restricted:</string>
+    <string name="radio_info_dcnr_restricted">DCNR Restricted (NSA):</string>
     <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
-    <string name="radio_info_nr_available">NR Available:</string>
+    <string name="radio_info_nr_available">NR Available (NSA):</string>
     <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
-    <string name="radio_info_nr_state">NR State:</string>
+    <string name="radio_info_nr_state">NR State (NSA):</string>
     <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
     <string name="radio_info_nr_frequency">NR Frequency:</string>
     <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
-    <string name="radio_info_network_slicing_config" translatable="false">Network slicing config:</string>
+    <string name="radio_info_network_slicing_config" translatable="false">Network Slicing Config:</string>
 
     <!-- Band Mode Selection -->
     <!-- Band mode screen.  Title of activity. -->
diff --git a/sip/proguard.flags b/sip/proguard.flags
deleted file mode 100644
index 1c380ed..0000000
--- a/sip/proguard.flags
+++ /dev/null
@@ -1,3 +0,0 @@
--verbose
--keep class com.android.services.telephony.sip.SipConnectionService
--keep class com.android.services.telephony.sip.SipIncomingCallReceiver
diff --git a/sip/res/layout/sip_settings_ui.xml b/sip/res/layout/sip_settings_ui.xml
deleted file mode 100644
index 872c4b5..0000000
--- a/sip/res/layout/sip_settings_ui.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
-
-    <ListView xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@android:id/list"
-        android:layout_width="match_parent"
-        android:layout_height="0dip"
-        android:layout_weight="1"
-        android:drawSelectorOnTop="false"
-        android:scrollbarAlwaysDrawVerticalTrack="true"
-    />
-
-</LinearLayout>
diff --git a/sip/res/values-af/strings.xml b/sip/res/values-af/strings.xml
deleted file mode 100644
index 3c0bcd4..0000000
--- a/sip/res/values-af/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP-instellings"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP-rekeninge"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Rekeninge"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Ontvang inkomende oproepe"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Gebruik meer batterykrag"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Gebruik SIP-oproepe"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Gebruik SIP-oproepe (net Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Vir alle oproepe wanneer datanetwerk beskikbaar is"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Net vir SIP-oproepe"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Vir alle oproepe"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Voeg rekening by"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Verwyder rekening"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP-rekeninge"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Stoor tans die rekening …"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Verwyder tans die rekening …"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Stoor"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Gooi weg"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Sluit die profiel"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Goed"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Maak toe"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Gaan tans status na …"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registreer tans …"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Probeer steeds …"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Ontvang nie tans oproepe nie."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Rekeningregistrasie het gestop omdat daar geen internetverbinding is nie."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Rekeningregistrasie het gestop omdat daar geen Wi-Fi-verbinding is nie."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Rekeningregistrasie het misluk."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Ontvang tans oproepe."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Rekeningregistrasie het misluk: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); sal later probeer"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Rekeningregistrasie het misluk: Verkeerde gebruikernaam of wagwoord."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Rekeningregistrasie het misluk: Gaan die bedienernaam na."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Hierdie rekening word tans deur die <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>-program gebruik."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP-rekeningbesonderhede"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP-rekeningbesonderhede"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Bediener"</string>
-    <string name="username_title" msgid="298416796886107970">"Gebruikernaam"</string>
-    <string name="password_title" msgid="8035579335591959021">"Wagwoord"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Vertoonnaam"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Uitgaande instaanadres"</string>
-    <string name="port_title" msgid="1703586046264385110">"Poortnommer"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Vervoertipe"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Stuur hou lewendig"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Opsionele instellings"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Stawinggebruikernaam"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Gebruikernaam gebruik vir stawing"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Nie gestel nie&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Nie gestel nie&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Nie gestel nie&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Dieselfde as gebruikernaam&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Opsioneel&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Raak om almal te wys"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Raak om almal te versteek"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Voer besonderhede van nuwe SIP-rekening in."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> word vereis en kan nie leeg wees nie."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Poortnommer moet tussen 1000 en 65534 wees."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Gaan eers jou internetverbinding na om \'n SIP-oproep te maak."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Jy moet aan \'n Wi-Fi-netwerk gekoppel wees om SIP-oproepe te maak (gebruik die Draadlose en netwerkinstellings)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP-oproepe word nie gesteun nie"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Outomaties"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Stuur altyd"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Ingeboude SIP-oproepe"</string>
-</resources>
diff --git a/sip/res/values-am/strings.xml b/sip/res/values-am/strings.xml
deleted file mode 100644
index 47977fd..0000000
--- a/sip/res/values-am/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"ገቢ ጥሪዎች ተቀበል"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"ተጨማሪ የባትሪ ዕድሜን ይጠቀማል"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"የSIP መደወያን ተጠቀም"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"የSIP መደወያን ተጠቀም (Wi-Fi ብቻ)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"መለያ ያስወግዱ"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP መለያዎች"</string>
-    <string name="saving_account" msgid="3390358043846687266">"መለያውን በማስቀመጥ ላይ…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"መለያውን በማስወገድ ላይ…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"አስቀምጥ"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"ጣለው"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"መገለጫውን ይዝጉ"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"እሺ"</string>
-    <string name="close_profile" msgid="3756064641769751774">"ዝጋ"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"ሁኔታን በመመልከት ላይ..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"በመመዝገብ ላይ…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"አሁንም በመሞከር ላይ…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"ጥሪዎች እየተቀበለ አይደለም።"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"የበይነመረብ ግኑኝነት ስለሌለ የመለያ ምዝገባ ቆሟል።"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"ምንም የWi-Fi ግንኙነት ስለሌለ የመለያ ምዝገባ ቆሟል።"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"የመለያ ምዝገባ አልተሳካም።"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"ጥሪዎች በመቀበል ላይ።"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"የመለያ ምዝገባ አልተሳካም፦ <xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>፤ ኋላ ላይ እንደገና ይሞከራል"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"የመለያ ምዝገባ አልተሳካም፦ የተሳሳተ የተጠቃሚ ስም ወይም ይለፍ ቃል።"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"የመለያ ምዝገባ አልተሳካም፦ የአገልጋዩን ስም ትክክለኛነት ያረጋግጡ።"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"ይህ መለያ በአሁኑ ጊዜ በ<xliff:g id="ACCOUNT_OWNER">%s</xliff:g> መተግበሪያ ጥቅም ላይ ነው።"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP መለያ ዝርዝሮች"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP መለያ ዝርዝሮች"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"አገልጋይ"</string>
-    <string name="username_title" msgid="298416796886107970">"የተጠቃሚ ስም"</string>
-    <string name="password_title" msgid="8035579335591959021">"የይለፍ ቃል"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"የማሳያ ስም"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"የወደ ውጪ እጅ አዙር አድራሻ"</string>
-    <string name="port_title" msgid="1703586046264385110">"ወደብ ቁጥር"</string>
-    <string name="transport_title" msgid="1661659138226029178">"የማጓጓዣ አይነት"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"keep-alive ላክ"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"አማራጭ ቅንብሮች"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"የማረጋገጫ  የተጠቃሚ ስም"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"ተጠቃሚ ስም ለማረጋገጫ ተጠቅሟል"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;አልተዘጋጀም&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;አልተዘጋጀም&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;አልተዘጋጀም&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;ከተጠቃሚ ስም ጋር አንድ አይነት&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;አስገዳጅ ያልሆነ&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"ሁሉን ለማሳየት ▷ ይንኩ"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"ሁሉንም ለመደበቅ ▽ ይንኩ"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"አዲስ የSIP መለያ ዝርዝሮችን ያስገቡ።"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ይጠይቃል፣ ባዶ መተው አይቻልም።"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"የወደብ ቁጥር በ1000 እና 65534 ውስጥ መሆን አለበት።"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"የSIP ጥሪ ለማድረግ፣ በመጀመሪያ የበይነመረብ ግንኙነትዎን ይፈትሹ።"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP ጥሪዎችን ለማድረግ ወደ Wi-Fi አውታረ መረብ መገናኘት ያስፈልግዎታል (ሽቦ አልባ እና አውታረ መረብ ቅንብሮችን ይጠቀሙ)።"</string>
-    <string name="no_voip" msgid="3366395789297981738">"የSIP መደወያ አይደገፍም"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"ራስ ሰር"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"ሁልጊዜ ላክ"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"ውስጠ ግንቡ SIP መደወያ"</string>
-</resources>
diff --git a/sip/res/values-ar/strings.xml b/sip/res/values-ar/strings.xml
deleted file mode 100644
index 4cc9450..0000000
--- a/sip/res/values-ar/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"تلقي المكالمات الواردة"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"تستهلك المزيد من عمر البطارية"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"‏استخدام اتصالات SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"‏استخدام اتصالات SIP ‏(Wi-Fi فقط)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"إزالة الحساب"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"‏حسابات SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"جارٍ حفظ الحساب…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"جارٍ إزالة الحساب…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"حفظ"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"إلغاء"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"إغلاق الملف الشخصي"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"حسنًا"</string>
-    <string name="close_profile" msgid="3756064641769751774">"إغلاق"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"جارٍ فحص الحالة…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"جارٍ التسجيل…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"لا تزال المحاولة مستمرة…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"لا يتم تلقي مكالمات."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"توقف تسجيل الحساب نظرًا لعدم توفر اتصال بالإنترنت."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"‏توقف تسجيل الحساب نظرًا لعدم توفر اتصال Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"لم يتم تسجيل الحساب بنجاح."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"جارٍ استلام مكالمات."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"لم يكتمل تسجيل الحساب بنجاح: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>)، وستتم المحاولة لاحقًا"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"لم يتم تسجيل الحساب بنجاح: اسم مستخدم غير صحيح أو كلمة مرور غير صحيحة."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"لم يتم تسجيل الحساب بنجاح: تحقق من اسم الخادم."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"هذا الحساب قيد الاستخدام حاليًا من خلال تطبيق <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"‏تفاصيل حساب SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"‏تفاصيل حساب SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"الخادم"</string>
-    <string name="username_title" msgid="298416796886107970">"اسم المستخدم"</string>
-    <string name="password_title" msgid="8035579335591959021">"كلمة المرور"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"اسم العرض"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"عنوان وكيل صادر"</string>
-    <string name="port_title" msgid="1703586046264385110">"رقم المنفذ"</string>
-    <string name="transport_title" msgid="1661659138226029178">"نوع النقل"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"إرسال رسالة للتحقق من الاتصال"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"الإعدادات الاختيارية"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"اسم المستخدِم للمصادقة"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"اسم المستخدِم المستخدَم للمصادقة"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"‏&lt;لم يتم الضبط&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"‏&lt;لم يتم الضبط&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"‏&lt;لم يتم الضبط&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"‏&lt;مثل اسم المستخدم&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"‏&lt;اختياري&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ المس لإظهار الكل"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ المس لإخفاء الكل"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"‏أدخل تفاصيل حساب SIP الجديد."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> مطلوب ولا يمكن تركه فارغًا."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"يجب أن يكون رقم المنفذ ما بين 1000 و65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"‏لإجراء اتصال SIP، تحقق من الاتصال بالإنترنت أولاً."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"‏يجب عليك الاتصال بشبكة Wi-Fi لإجراء اتصالات SIP (استخدم إعدادات \"الشبكة واللاسلكي\")."</string>
-    <string name="no_voip" msgid="3366395789297981738">"‏اتصالات SIP غير متاحة"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"تلقائي"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"الإرسال دائمًا"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"‏اتصالات SIP مدمجة"</string>
-</resources>
diff --git a/sip/res/values-as/strings.xml b/sip/res/values-as/strings.xml
deleted file mode 100644
index 13043e3..0000000
--- a/sip/res/values-as/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"অন্তৰ্গামী কল লাভ কৰি থকা হৈছে"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"বেটাৰী অধিক ব্যৱহাৰ কৰে"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP কলিং ব্যৱহাৰ কৰক"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP কলিং ব্যৱহাৰ কৰক (কেৱল ৱাই-ফাই)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"একাউণ্ট আঁতৰাওক"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP একাউণ্টসমূহ"</string>
-    <string name="saving_account" msgid="3390358043846687266">"একাউণ্টটো ছেভ কৰা হৈছে…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"একাউণ্টটো আঁতৰোৱা হৈছে…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"ছেভ কৰক"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"অগ্ৰাহ্য কৰক"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"প্ৰ\'ফাইলটো বন্ধ কৰক"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ঠিক"</string>
-    <string name="close_profile" msgid="3756064641769751774">"বন্ধ কৰক"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"স্থিতি পৰীক্ষা কৰি থকা হৈছে…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"পঞ্জীয়ন কৰি থকা হৈছে…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"এতিয়াও চেষ্টা কৰি থকা হৈছে…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"কল লাভ কৰি থকা নাই।"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"ইণ্টাৰনেট সংযোগ নথকাৰ বাবে একাউণ্টৰ পঞ্জীয়ন বন্ধ কৰা হ’ল।"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"ৱাই-ফাই সংযোগ নথকাৰ বাবে একাউণ্টৰ পঞ্জীয়ন বন্ধ কৰা হ’ল।"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"একাউণ্টৰ পঞ্জীয়ন বিফল হৈছে।"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"কল লাভ কৰি থকা হৈছে…"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"একাউণ্টৰ পঞ্জীয়ন বিফল হৈছে: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); পিছত আকৌ চেষ্টা কৰা হ\'ব"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"একাউণ্টৰ পঞ্জীয়ন বিফল হৈছে: ব্যৱহাৰকাৰী নাম ভুল বা পাছৱৰ্ড ভুল"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"একাউণ্টৰ পঞ্জীয়ন বিফল হৈছে: ছাৰ্ভাৰৰ নামটো পৰীক্ষা কৰক।"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"এই একাউণ্টটো বৰ্তমান <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> এপটোৱে ব্যৱহাৰ কৰি আছে।"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP একাউণ্টৰ সবিশেষ"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP একাউণ্টৰ সবিশেষ"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"ছাৰ্ভাৰ"</string>
-    <string name="username_title" msgid="298416796886107970">"ব্যৱহাৰকাৰীৰ নাম"</string>
-    <string name="password_title" msgid="8035579335591959021">"পাছৱৰ্ড"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"ডিছপ্লেৰ নাম"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"বহিৰ্গামী প্ৰ\'ক্সি ঠিকনা"</string>
-    <string name="port_title" msgid="1703586046264385110">"প\'ৰ্ট নম্বৰ"</string>
-    <string name="transport_title" msgid="1661659138226029178">"ট্ৰান্সপ\'ৰ্টৰ প্ৰকাৰ"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"কীপ-এলাইভ প্ৰেৰণ কৰক"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"ঐচ্ছিক ছেটিংসমূহ"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"বিশ্বাসযোগ্যতা প্ৰমাণীকৰণ ব্যৱহাৰকাৰীৰ নাম"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"বিশ্বাসযোগ্যতা প্ৰমাণীকৰণৰ বাবে ব্যৱহৃত ব্যৱহাৰকাৰীৰ নাম"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;ছেট কৰা হোৱা নাই&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;ছেট কৰা হোৱা নাই&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;ছেট কৰা হোৱা নাই&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;ব্যৱহাৰকাৰীৰ নামৰ সৈতে একেই&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;ঐচ্ছিক&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ সকলো দেখুওৱাবলৈ স্পৰ্শ কৰক"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ সকলো লুকুৱাবলৈ স্পৰ্শ কৰক"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"নতুন SIP একাউণ্টৰ সবিশেষ লিখক।"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> দৰকাৰী আৰু ইয়াক খালীকৈ এৰি যাব নোৱাৰি।"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"প\'ৰ্ট নম্বৰটো 1000 আৰু 65534ৰ ভিতৰত হ\'ব লাগিব।"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP কল কৰিবলৈ প্ৰথমে আপোনাৰ ইণ্টাৰনেট সংযোগ পৰীক্ষা কৰক।"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"আপুনি SIP কল কৰিবলৈ কোনো ৱাই-ফাই নেটৱৰ্কৰ সৈতে সংযুক্ত হৈ থাকিব লাগিব (বেতাঁৰ আৰু নেটৱৰ্ক ছেটিংসমূহ ব্যৱহাৰ কৰক)।"</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP কলিং কৰাৰ সুবিধা নাই"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"স্বয়ংক্ৰিয়"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"সদায় প্ৰেৰণ কৰক"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"বিল্ট-ইন SIP কলিং"</string>
-</resources>
diff --git a/sip/res/values-az/strings.xml b/sip/res/values-az/strings.xml
deleted file mode 100644
index f64ed85..0000000
--- a/sip/res/values-az/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP ayarları"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP hesabları"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Hesablar"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Daxil olan zəngləri qəbul et"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Daha çox batareya işlədəcək"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP zəngindən istifadə et"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP zəngindən istifadə et (yalnız Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Data şəbəkəsi əlçatımlı olanda bütün şəbəkələr üçün"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Yalnız SIP zəngləri üçün"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Bütün zənglər üçün"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Hesab əlavə et"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Hesabı silin"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP hesabları"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Hesab yadda saxlanılır..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Hesab silinir..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Yadda saxlayın"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"İmtina edin"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Profili bağlayın"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Ok"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Bağla"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Status yoxlanılır ..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Qeydiyyatdan keçirilir..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Hələ də cəhd edilir..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Zəngləri qəbul etmir."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"İnternet bağlantısı olmadığı üçün hesab qeydiyyatı dayandırıldı."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Wi-Fi bağlantısı olmadığı üçün hesab qeydiyyatı dayandırıldı."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Hesab qeydiyyatı uğursuz oldu."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Zəng qəbul olunur."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Hesab qeydiyyatı uğursuz oldu: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); sonra cəhd olunacaq"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Hesab qeydiyyatı alınmadı: yanlış istifadə adı və ya parol"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Hesab qeydiyyatı uğursuz oldu: Server adını yoxlayın."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Bu hesab hazırda <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> tətbiqi tərəfindən istifadə olunur."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP hesab detalları"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP hesab detalları"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"İstifadəçi adı"</string>
-    <string name="password_title" msgid="8035579335591959021">"Şifrə"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Ad göstərin"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Gedən proksi ünvan"</string>
-    <string name="port_title" msgid="1703586046264385110">"Port nömrəsi"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Nəqliyyat növü"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Daima canlı göndərin"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Əlavə seçimlər"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Autentifikasiya istifadəçi adı"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Autentifikasiya üçün istifadə edilən istifadəçi adı"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Təyin edilməyib&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Təyin edilməyib&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Təyin edilməyib&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;İstifadəçi adı ilə eyni&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;İstəyə görə&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"Hamısını göstərmək üçün toxunun ▷"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"Hamısını gizlətmək üçün toxunun ▽"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Yeni SIP hesabından detalları daxil edin."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> tələb olunur və boş buraxıla bilməz."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Port 1000 və 65534 arasında olmalıdır."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP zəngini yerləşdirmək üçün əvvəlcə İnternet bağlantınızı yoxlayın."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP zəngləri üçün siz Wi-Fi şəbəkəsinə qoşulu olmalısınız (Simsiz &amp; Şəbəkə parametrlərindən istifadə edin)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP zəngi dəstəklənmir"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Avtomatik"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Həmişə göndərin"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Daxili SIP zəngi"</string>
-</resources>
diff --git a/sip/res/values-b+sr+Latn/strings.xml b/sip/res/values-b+sr+Latn/strings.xml
deleted file mode 100644
index adb537b..0000000
--- a/sip/res/values-b+sr+Latn/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Podešavanja SIP-a"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP nalozi"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Nalozi"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Primaj dolazne pozive"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Više troši bateriju"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Koristite SIP pozivanje"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Koristite SIP pozivanje (samo za WiFi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Za sve pozive kada je mreža za prenos podataka dostupna"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Samo za SIP pozive"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Za sve pozive"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Dodaj nalog"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Ukloni nalog"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP nalozi"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Čuvanje naloga..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Uklanjanje naloga..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Sačuvaj"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Odbaci"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Zatvorite profil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Potvrdi"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Zatvori"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Provera statusa..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registrovanje..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"I dalje pokušava..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Ne primamo pozive."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Registracija naloga je zaustavljena zato što ne postoji internet veza."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Registracija naloga je zaustavljena zato što ne postoji WiFi veza."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Registracija naloga nije uspela."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Primamo pozive."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Registracija naloga nije uspela: <xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>; pokušaćemo kasnije"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Registracija naloga nije uspela: netačno korisničko ime ili lozinka."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Registracija naloga nije uspela: Proverite naziv servera."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Ovaj nalog trenutno koristi aplikacija <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Detalji o SIP nalogu"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Detalji o SIP nalogu"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Korisničko ime"</string>
-    <string name="password_title" msgid="8035579335591959021">"Lozinka"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Ime za prikaz"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Odlazna adresa proksija"</string>
-    <string name="port_title" msgid="1703586046264385110">"Broj porta"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Tip prenosa"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Održavanje veze porukama"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Opcionalna podešavanja"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Korisničko ime za potvrdu identiteta"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Za potvrdu identiteta koristi se korisničko ime"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Nije podešeno&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Nije podešeno&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Nije podešeno&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Isto kao korisničko ime&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Opcionalno&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Dodirnite da biste prikazali sve"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Dodirnite da biste sakrili sve"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Unesite detalje o novom SIP nalogu."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Polje <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> je obavezno i ne može da bude prazno."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Broj porta bi trebalo da bude između 1000 i 65.534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Da biste uputili SIP poziv, prvo proverite internet vezu."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Treba da budete povezani sa WiFi mrežom da biste upućivali SIP pozive (koristite Podešavanja bežičnih veza i mreža)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP pozivanje nije podržano"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatski"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Uvek šalji"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Ugrađena funkcija SIP pozivanja"</string>
-</resources>
diff --git a/sip/res/values-be/strings.xml b/sip/res/values-be/strings.xml
deleted file mode 100644
index f39a3f1..0000000
--- a/sip/res/values-be/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"Прымаць уваходныя выклікі"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Спажывае больш зараду акумулятара"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Выкарыстоўваць SIP-тэлефанію"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Выкарыстоўваць SIP-тэлефанію (толькі Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"Выдаліць уліковы запіс"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Уліковыя запісы SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Захаванне ўліковага запісу..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Выдаленне ўліковага запісу..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Захаваць"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Скасаваць"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Закрыць профіль"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Закрыць"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Праверка стану..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Рэгістрацыя..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Спробы працягваюцца..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Выклікі не прымаюцца."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Рэгістрацыя ўліковага запісу спынена, таму што няма падлучэння да інтэрнэту."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Рэгістрацыя ўліковага запісу спынена, таму што няма падлучэння да Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Няўдалая рэгістрацыя ўліковага запісу."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Прыём выклікаў."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Няўдалая рэгістрацыя ўліковага запісу: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); спроба будзе паўторана пазней"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Няўдалая рэгістрацыя ўліковага запісу: няправільнае імя карыстальніка або пароль."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Няўдалая рэгістрацыя ўліковага запісу: праверце імя сервера."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Гэты ўліковы запіс зараз выкарыстоўваецца праграмай <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Ул. запіс SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Ул. запіс SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Сервер"</string>
-    <string name="username_title" msgid="298416796886107970">"Імя карыстальніка"</string>
-    <string name="password_title" msgid="8035579335591959021">"Пароль"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Бачнае імя"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Адрас выходнага проксі-сервера"</string>
-    <string name="port_title" msgid="1703586046264385110">"Нумар порта"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Пратакол"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Адправіць паведамленне праверкі актыўнасці"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Дадатковыя налады"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Імя карыстальніка для праверкі сапраўднасці"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Імя карыстальніка, якое выкарыстоўваецца для праверкі сапраўднасці"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Не зададзены&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Не зададзены&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Не зададзены&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Такі ж, як імя карыстальніка&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Неабавязкова&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Дакраніцеся, каб паказаць усё"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Дакраніцеся, каб схаваць усё"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Увесці інфармацыю аб новым уліковым запісе SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Поле <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> з\'яўляецца абавязковым для запаўнення, яго нельга пакідаць пустым."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Порт павінен мець нумар ад 1000 да 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Каб зрабіць SIP-выклік, спачатку праверце інтэрнэт-злучэнне."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Каб рабіць SIP-выклікі, вы павінны падлучыцца да сеткі Wi-Fi (скарыстайцеся раздзелам \"Бесправадная сувязь і сеткі\")."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP-тэлефанія не падтрымліваецца"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Аўтаматычна"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Заўсёды адпраўляць"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Убудаваная SIP-тэлефанія"</string>
-</resources>
diff --git a/sip/res/values-bg/strings.xml b/sip/res/values-bg/strings.xml
deleted file mode 100644
index 27694be..0000000
--- a/sip/res/values-bg/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"Получаване на входящи обаждания"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Изразходва повече от батерията"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Използване на обаждане през SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Използване на услуга за обаждане през SIP (само при Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"Премахване на профил"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Профили за SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Профилът се запазва…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Профилът се премахва…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Запазване"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Отхвърляне"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Затваряне на потребителския профил"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ОK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Затваряне"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Състоянието се проверява..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Регистрира се…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Опитите продължават…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Не се получават обаждания."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Регистрирането на профила спря, защото няма връзка с интернет."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Регистрирането на профила спря, защото няма връзка с Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Профилът не бе регистриран успешно."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Получават се обаждания."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Профилът не бе регистриран успешно: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Ще се извърши нов опит по-късно"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Профилът не бе регистриран успешно: Неправилно потребителско име или парола."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Профилът не бе регистриран успешно: Проверете името на сървъра."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Този профил понастоящем се използва от приложението <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Профил за SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Подробности за профила за SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Сървър"</string>
-    <string name="username_title" msgid="298416796886107970">"Потребителско име"</string>
-    <string name="password_title" msgid="8035579335591959021">"Парола"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Екранно име"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Адрес на изходящ прокси сървър"</string>
-    <string name="port_title" msgid="1703586046264385110">"Номер на порта"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Тип транспорт"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Изпращане на съобщение за проверка на връзката"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Незадължителни настройки"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Потребит. име за удостоверяване"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Потребителско име, използвано за удостоверяване"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Не е зададено&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Не е зададено&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Не е зададено&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Същото като потребителското име&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;По избор&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Докоснете за показване на всички"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Докоснете за скриване на всички"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Въведете подробностите за новия профил за SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Полето „<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>“ е задължително и трябва да се попълни."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Номерът на порта трябва да е между 1000 и 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"За да осъществите обаждане през SIP, първо проверете връзката си с интернет."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"За да се обаждате през SIP, трябва да сте свързани с Wi-Fi мрежа (използвайте настройките „Кабелни и безжични мрежи“)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Обажданията през SIP не се поддържат"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Автоматично"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Изпращане винаги"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Вградена услуга за обаждане през SIP"</string>
-</resources>
diff --git a/sip/res/values-bn/strings.xml b/sip/res/values-bn/strings.xml
deleted file mode 100644
index 4fc7cb7..0000000
--- a/sip/res/values-bn/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"ইনকামিং কলগুলি রিসিভ করুন"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"আরও বেশি ব্যাটারি ব্যবহার করে"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP কলিং ব্যবহার করুন"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP কলিং ব্যবহার করুন (শুধুমাত্র ওয়াই-ফাই)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"অ্যাকাউন্ট সরান"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP অ্যাকাউন্টগুলি"</string>
-    <string name="saving_account" msgid="3390358043846687266">"অ্যাকাউন্টটি সংরক্ষণ করা হচ্ছে ..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"অ্যাকাউন্টটি সরানো হচ্ছে…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"সেভ করুন"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"খারিজ করুন"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"প্রোফাইলটি বন্ধ করুন"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ঠিক আছে"</string>
-    <string name="close_profile" msgid="3756064641769751774">"বন্ধ করুন"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"স্থিতি পরীক্ষা করা হচ্ছে ..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"নিবন্ধীকরণ চলছে..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"এখনও চেষ্টা করছে..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"কলগুলি গ্রহণ করা হচ্ছে না৷"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"কোনো ইন্টারনেট সংযোগ না থাকায় অ্যাকাউন্ট নিবন্ধন করা বন্ধ হয়ে গেছে৷"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"কোনো ওয়াই-ফাই সংযোগ না থাকায় অ্যাকাউন্ট নিবন্ধন করা বন্ধ হয়ে গেছে৷"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"অ্যাকাউন্টের নিবন্ধন অসফল হয়েছে৷"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"কলগুলি গ্রহণ করা হচ্ছে৷"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"অ্যাকাউন্টের নিবন্ধন অসফল হয়েছে: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); পরে আবার চেষ্টা করা হবে"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"অ্যাকাউন্টের নিবন্ধন অসফল হয়েছে: ভুল ইউজারনেম বা পাসওয়ার্ড৷"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"অ্যাকাউন্টের নিবন্ধন অসফল হয়েছে: সার্ভারের নাম পরীক্ষা করুন৷"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"এই অ্যাকাউন্টটি বর্তমানে <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> অ্যাপ্লিকেশানের দ্বারা ব্যবহৃত হচ্ছে৷"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP অ্যাকাউন্টের বিবরণ"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP অ্যাকাউন্টের বিবরণ"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"সার্ভার"</string>
-    <string name="username_title" msgid="298416796886107970">"ইউজারনেম"</string>
-    <string name="password_title" msgid="8035579335591959021">"পাসওয়ার্ড"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"প্রদর্শন নাম"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"আউটবাউন্ড প্রক্সি অ্যাড্রেস"</string>
-    <string name="port_title" msgid="1703586046264385110">"পোর্ট নম্বর"</string>
-    <string name="transport_title" msgid="1661659138226029178">"ট্রান্সপোর্ট টাইপ"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"সক্রিয়-রাখার অনুরোধ"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"ঐচ্ছিক সেটিংস"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"প্রমাণীকরণের ইউজারনেম"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"প্রমাণীকরণের জন্য ব্যবহৃত ইউজারনেম"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;সেট করা নেই&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;সেট করা নেই&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;সেট করা নেই&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;ইউজারনেমের অনুরূপ&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;ঐচ্ছিক&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ সবকিছু দেখতে টাচ করুন"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ সবকিছু লুকানোর জন্য স্পর্শ করুন"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"নতুন SIP অ্যাকাউন্ট সম্বন্ধে বিশদ বিবরণ লিখুন।"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> প্রয়োজনীয় এবং এটিকে ফাঁকা রাখা যাবে না৷"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"পোর্ট নম্বরটিকে ১০০০ ও ৬৫৫৩৪ এর মধ্যে হতে হবে৷"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"একটি SIP কল করতে প্রথমে আপনার ইন্টারনেট সংযোগ পরীক্ষা করুন৷"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP কলগুলি করার জন্য আপনাকে একটি ওয়াই-ফাই নেটওয়ার্কের সাথে সংযুক্ত হতে হবে (ওয়ারলেস নেটওয়ার্ক সেটিংস ব্যবহার করুন)৷"</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP কলিং সমর্থিত নয়"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"স্বয়ংক্রিয়"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"সবসময় পাঠান"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"অন্তর্নির্মিত SIP কলিং"</string>
-</resources>
diff --git a/sip/res/values-bs/strings.xml b/sip/res/values-bs/strings.xml
deleted file mode 100644
index 07bb5a7..0000000
--- a/sip/res/values-bs/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP postavke"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP računi"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Računi"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Primi dolazne pozive"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Troši se više baterije"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Koristi SIP pozivanje"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Koristi SIP pozivanje (samo WiFi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Za sve pozive kada je podatkovna mreža dostupna"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Samo za SIP pozive"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Za sve pozive"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Dodaj račun"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Ukloni račun"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP računi"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Spremanje računa u toku…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Račun se uklanja…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Sačuvaj"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Odbaci"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Zatvori profil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Uredu"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Zatvori"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Provjera statusa u toku..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registriranje u toku…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Još uvijek pokušavamo…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Ne prima pozive."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Registracija računa je zaustavljena jer niste povezani na internet."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Registracija računa je zaustavljena jer nema WiFi veze."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Registracija računa nije uspjela."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Primanje poziva."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Registracija računa nije uspjela: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); pokušat ćemo kasnije"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Registracija računa nije uspjela: netačno korisničko ime ili lozinka."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Registracija računa nije uspjela: provjerite naziv servera."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Ovaj račun trenutno koristi aplikacija <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Detalji o SIP računima"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Detalji o SIP računima"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Korisničko ime"</string>
-    <string name="password_title" msgid="8035579335591959021">"Lozinka"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Ime za prikaz"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Odlazna proksi adresa"</string>
-    <string name="port_title" msgid="1703586046264385110">"Broj priključka"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Vrsta prijenosa"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Pošalji keep-alive poruku"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Neobavezne postavke"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Korisničko ime za autentifikaciju"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Korisničko ime upotrijebljeno za autentifikaciju"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Nije postavljeno&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Nije postavljeno&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Nije postavljeno&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Isto kao korisničko ime&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Nije obavezno&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Dodirnite da prikažete sve"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Dodirnite da sakrijete sve"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Unesite detalje novog SIP računa."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> je obavezno polje i ne može biti prazno."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Broj priključka treba biti između 1000 i 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Da uputite SIP poziv, prvo provjerite internet vezu."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Trebate biti povezani s WiFi mrežom za SIP pozive (koristite postavke Bežično povezivanje i mreža)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP pozivanje nije podržano"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatski"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Uvijek pošalji"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Ugrađeno SIP pozivanje"</string>
-</resources>
diff --git a/sip/res/values-ca/strings.xml b/sip/res/values-ca/strings.xml
deleted file mode 100644
index 9777344..0000000
--- a/sip/res/values-ca/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Configuració de SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Comptes SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Comptes"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Vull rebre trucades entrants"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Consumeix més bateria"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Utilitza trucades SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Fes servir trucades SIP (només Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Per a totes les trucades quan hi hagi xarxes de dades disponibles"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Només per a trucades SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Per a totes les trucades"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Afegeix un compte"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Suprimeix el compte"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Comptes SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"S\'està desant el compte..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"S\'està suprimint el compte..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Desa"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Descarta"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Tanca el perfil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"D\'acord"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Tanca"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"S\'està comprovant l\'estat..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"S\'està registrant..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Encara s\'està provant..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"No s\'estan rebent trucades."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"S\'ha aturat el registre del compte perquè no hi ha connexió a Internet."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"S\'ha aturat el registre del compte perquè no hi ha connexió Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"S\'ha produït un error en registrar el compte."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"S\'estan rebent trucades."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"S\'ha produït un error en registrar el compte: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Ho tornarem a provar més tard."</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"S\'ha produït un error en registrar el compte: el nom d\'usuari o la contrasenya no són correctes."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"S\'ha produït un error en registrar el compte: comprova el nom del servidor."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"L\'aplicació <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> està utilitzant aquest compte actualment."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Compte SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Compte SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Servidor"</string>
-    <string name="username_title" msgid="298416796886107970">"Nom d\'usuari"</string>
-    <string name="password_title" msgid="8035579335591959021">"Contrasenya"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Nom de visualització"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Adreça de servidor intermediari de sortida"</string>
-    <string name="port_title" msgid="1703586046264385110">"Número de port"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Tipus de transport"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Mantén connexió"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Configuració opcional"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Nom d\'usuari per a l\'autenticació"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Nom d\'usuari utilitzat per a l\'autenticació"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;No definit&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;No definit&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;No definit&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Igual que el nom d\'usuari&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Opcional&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Toca per mostrar-ho tot"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Toca per amagar-ho tot."</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Introdueix els detalls del compte SIP nou."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> és obligatori i no es pot deixar en blanc."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"El número de port hauria d\'estar entre 1000 i 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Per fer una trucada SIP, comprova la connexió a Internet."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Per fer i rebre trucades SIP, has d\'estar connectat a una xarxa Wi-Fi (fes servir la configuració Connexions sense fil i xarxes)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Les trucades SIP no són compatibles."</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automàtic"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Envia sempre"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Trucades SIP integrades"</string>
-</resources>
diff --git a/sip/res/values-cs/strings.xml b/sip/res/values-cs/strings.xml
deleted file mode 100644
index 652a94f..0000000
--- a/sip/res/values-cs/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Nastavení protokolu SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Účty SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Účty"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Přijímat příchozí hovory"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Více vybíjí baterii"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Používat volání SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Používat volání SIP (pouze Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Pro všechny hovory, pokud je k dispozici datová síť"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Pouze pro volání SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Pro všechny hovory"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Přidat účet"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Odstranit účet"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Účty SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Ukládání účtu…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Odstraňování účtu…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Uložit"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Zahodit"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Zavřít profil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Zavřít"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Kontrola stavu..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registrace…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Probíhají další pokusy…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Hovory nejsou přijímány."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Registrace účtu byla zastavena, protože není k dispozici připojení k internetu."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Registrace účtu byla zastavena, protože není k dispozici připojení Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Registrace účtu se nezdařila."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Příjem hovorů."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Registrace účtu se nezdařila: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Pokus bude opakován později"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Registrace účtu se nezdařila: nesprávné uživatelské jméno nebo heslo."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Registrace účtu se nezdařila. Zkontrolujte prosím název serveru."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Tento účet je aktuálně používán aplikací <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Účet SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Účet SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Uživatelské jméno"</string>
-    <string name="password_title" msgid="8035579335591959021">"Heslo"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Zobrazované jméno"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Adresa odchozího proxy serveru"</string>
-    <string name="port_title" msgid="1703586046264385110">"Číslo portu"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Typ přenosu"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Odesílat zprávy pro zachování připojení"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Nepovinná nastavení"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Ověřovací uživatelské jméno"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Uživatelské jméno používané k ověření"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Nenastaveno&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Nenastaveno&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Nenastaveno&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Stejné jako uživatelské jméno&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Nepovinné&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Výběrem této položky zobrazíte všechna nastavení"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Výběrem této položky skryjete všechna nastavení"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Zadejte podrobnosti nového účtu SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Pole <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> je povinné. Nelze je ponechat prázdné."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Číslo portu by mělo být od 1000 do 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Chcete-li uskutečnit volání SIP, nejdříve si zkontrolujte připojení k internetu."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Chcete-li použít volání SIP, musíte být připojeni k síti Wi-Fi (použijte nastavení Bezdrátová připojení a sítě)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Volání SIP není podporováno."</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automaticky"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Odesílat vždy"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Vestavěné volání SIP"</string>
-</resources>
diff --git a/sip/res/values-da/strings.xml b/sip/res/values-da/strings.xml
deleted file mode 100644
index fb09dab..0000000
--- a/sip/res/values-da/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP-indstillinger"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP-konti"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Konti"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Modtag indgående opkald"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Bruger mere batteri"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Anvend SIP-opkald"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Anvend SIP-opkald (kun Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Gælder alle opkald ved tilgængeligt datanetværk"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Kun for SIP-opkald"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"For alle opkald"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Tilføj konto"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Fjern konto"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP-konti"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Kontoen gemmes..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Kontoen fjernes..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Gem"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Kassér"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Luk profilen"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Luk"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Tjekker status..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registrerer..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Forsøger stadig..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Modtager ikke opkald."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Kontoregistreringen blev afbrudt, fordi der ikke er nogen internetforbindelse."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Kontotilmeldingen blev afbrudt, fordi der ikke er nogen Wi-Fi-forbindelse"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Registreringen af kontoen mislykkedes."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Modtager opkald."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Registreringen af konto mislykkedes: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Vi prøver igen senere."</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Registreringen af kontoen mislykkedes: Forkert brugernavn eller adgangskode."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Registreringen af kontoen mislykkedes. Tjek servernavn."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Denne konto benyttes i øjeblikket af appen <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Info om SIP-konto"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Info om SIP-konto"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Brugernavn"</string>
-    <string name="password_title" msgid="8035579335591959021">"Adgangskode"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Vist navn"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Udgående proxyadresse"</string>
-    <string name="port_title" msgid="1703586046264385110">"Portnummer"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Transporttype"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Send keepalive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Valgfri indstillinger"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Brugernavn til godkendelse"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Brugernavn ved godkendelse"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Ikke angivet&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Ikke angivet&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Ikke angivet&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Samme som brugernavn&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Valgfrit&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Tryk for at vise alle"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Tryk for at skjule alle"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Angiv oplysninger om den nye SIP-konto."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> skal udfyldes. Feltet må ikke være tomt."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Portnummeret skal være mellem 1000 og 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Før du foretager et SIP-opkald, skal du kontrollere din internetforbindelse."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Du skal have forbindelse til et Wi-Fi-netværk for at foretage SIP-opkald (brug indstillingerne for Trådløst og netværk)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP-opkald understøttes ikke."</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatisk"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Send altid"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Indbygget SIP-opkald"</string>
-</resources>
diff --git a/sip/res/values-de/strings.xml b/sip/res/values-de/strings.xml
deleted file mode 100644
index 26c1562..0000000
--- a/sip/res/values-de/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP-Einstellungen"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP-Konten"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Konten"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Eingehende Anrufe annehmen"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Beansprucht den Akku stärker"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP-Telefonie nutzen"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Anrufe über SIP (nur WLAN)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Für alle Anrufe mit verfügbarem Datennetzwerk"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Nur für SIP-Anrufe"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Für alle Anrufe"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Konto hinzufügen"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Konto entfernen"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP-Konten"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Konto wird gespeichert…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Konto wird entfernt…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Speichern"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Verwerfen"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Profil schließen"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Ok"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Schließen"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Status wird überprüft…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registrierung läuft…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Wird weiter versucht…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Eingehende Anrufe deaktiviert"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Kontoregistrierung aufgrund fehlender Internetverbindung gestoppt"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Kontoregistrierung aufgrund fehlender WLAN-Verbindung gestoppt"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Fehler bei der Kontoregistrierung"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Eingehende Anrufe aktiviert"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Fehler bei der Kontoregistrierung: <xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>. Erneuter Versuch zu einem späteren Zeitpunkt."</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Fehler bei der Kontoregistrierung: Nutzername oder Passwort ist falsch."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Fehler bei der Kontoregistrierung. Bitte überprüfe den Servernamen."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Dieses Konto wird momentan von der <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> App verwendet."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP-Kontodetails"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP-Kontodetails"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Nutzername"</string>
-    <string name="password_title" msgid="8035579335591959021">"Passwort"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Anzeigename"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Ausgehende Proxyadresse"</string>
-    <string name="port_title" msgid="1703586046264385110">"Portnummer"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Transportart"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Keep-Alive senden"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Optionale Einstellungen"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Nutzername für die Authentifizierung"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Für die Authentifizierung verwendeter Nutzername"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Nicht festgelegt&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Nicht festgelegt&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Nicht festgelegt&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Wie Nutzername&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Optional&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Tippen, um alle einzublenden"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Tippen, um alle auszublenden"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Gib Details zum neuen SIP-Konto ein."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ist ein Pflichtfeld. Es darf nicht leer bleiben."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Portnummer muss zwischen 1000 und 65534 liegen."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Überprüfe zunächst deine Internetverbindung, um einen SIP-Anruf zu tätigen."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Für SIP-Anrufe ist eine WLAN-Verbindung erforderlich. Wähle die entsprechenden Einstellungen unter \"Drahtlos &amp; Netzwerke\" aus."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP-Anrufe werden nicht unterstützt."</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatisch"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Immer senden"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Integrierte SIP-Telefonie"</string>
-</resources>
diff --git a/sip/res/values-el/strings.xml b/sip/res/values-el/strings.xml
deleted file mode 100644
index aeb8d2c..0000000
--- a/sip/res/values-el/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"Λήψη εισερχόμενων κλήσεων"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Χρησιμοποιεί περισσότερη μπαταρία"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Χρήση κλήσεων SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Χρήση κλήσεων SIP (μόνο Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"Κατάργηση λογαριασμού"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Λογαριασμοί SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Αποθήκευση λογαριασμού…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Κατάργηση του λογαριασμού…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Αποθήκευση"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Απόρριψη"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Κλείσιμο του προφίλ"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ΟΚ"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Κλείσιμο"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Έλεγχος κατάστασης…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Γίνεται εγγραφή…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Γίνεται ακόμη προσπάθεια…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Δεν γίνεται αποδοχή κλήσεων."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Η εγγραφή του λογαριασμού διακόπηκε επειδή δεν υπάρχει σύνδεση στο διαδίκτυο."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Η εγγραφή του λογαριασμού διακόπηκε επειδή δεν υπάρχει σύνδεση Wi-Fi"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Η εγγραφή λογαριασμού απέτυχε."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Δέχεται κλήσεις."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Αποτυχία εγγραφής λογαριασμού: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Θα γίνει επανάληψη αργότερα"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Αποτυχία εγγραφής λογαριασμού: Εσφαλμένο όνομα χρήστη ή κωδικός πρόσβασης."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Αποτυχία εγγραφής λογαριασμού: Ελέγξτε το όνομα του διακομιστή."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Αυτήν τη στιγμή ο λογαριασμός χρησιμοποιείται από την εφαρμογή <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Λογ. SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Λογ. SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Διακομιστής"</string>
-    <string name="username_title" msgid="298416796886107970">"Όνομα χρήστη"</string>
-    <string name="password_title" msgid="8035579335591959021">"Κωδικός πρόσβασης"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Εμφανιζόμενο όνομα"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Διεύθυνση διακομιστή μεσολάβησης εξερχομένων"</string>
-    <string name="port_title" msgid="1703586046264385110">"Αριθμός θύρας"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Τύπος μεταφοράς"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Αποστολή μηνυμάτων \"keep-alive\""</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Προαιρετικές ρυθμίσεις"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Όνομα χρήστη ελέγχου ταυτότητας"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Όνομα χρήστη που χρησιμοποιείται για έλεγχο ταυτότητας"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Δεν έχει οριστεί&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Δεν έχει οριστεί&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Δεν έχει οριστεί&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Ίδιο με το όνομα χρήστη&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Προαιρετικό&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Αγγίξτε για εμφάνιση όλων"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▷ Αγγίξτε για απόκρυψη όλων"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Εισαγάγετε τα στοιχεία του νέου λογαριασμού SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Το πεδίο <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> είναι υποχρεωτικό και δεν μπορεί να είναι κενό."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Ο αριθμός της θύρας θα πρέπει να είναι μεταξύ 1000 και 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Για να πραγματοποιήσετε μια κλήση SIP, ελέγξτε πρώτα τη σύνδεση διαδικτύου."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Για να πραγματοποιήσετε κλήσεις SIP, θα πρέπει να συνδεθείτε σε δίκτυο Wi-Fi (χρησιμοποιήστε τις ρυθμίσεις Ασύρματο &amp; δίκτυο)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Οι κλήσεις SIP δεν υποστηρίζονται"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Αυτόματα"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Να γίνεται πάντα αποστολή"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Ενσωματωμένη υπηρεσία κλήσεων SIP"</string>
-</resources>
diff --git a/sip/res/values-en-rAU/strings.xml b/sip/res/values-en-rAU/strings.xml
deleted file mode 100644
index 2a51671..0000000
--- a/sip/res/values-en-rAU/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP settings"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP accounts"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Accounts"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Receive incoming calls"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Uses more battery life"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Use SIP calling"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Use SIP calling (Wi-Fi only)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"For all calls when data network is available"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Only for SIP calls"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"For all calls"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Add account"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Remove account"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP accounts"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Saving the account…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Removing the account…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Save"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Discard"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Close the profile"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Close"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Checking status..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registering…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Still trying…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Not receiving calls."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Account registration stopped because there is no Internet connection."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Account registration stopped because there is no Wi-Fi connection."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Account registration unsuccessful."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Receiving calls."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Account registration unsuccessful: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); will try later"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Account registration unsuccessful: Incorrect username or password."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Account registration unsuccessful: Check the server name."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"This account is currently in use by the <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> app."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP account details"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP account details"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Username"</string>
-    <string name="password_title" msgid="8035579335591959021">"Password"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Display name"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Outbound proxy address"</string>
-    <string name="port_title" msgid="1703586046264385110">"Port number"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Transport type"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Send keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Optional settings"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Authentication username"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Username used for authentication"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Not set&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Not set&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Not set&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Same as username&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Optional&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Touch to show all"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Touch to hide all"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Enter details of new SIP account."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> is required and can\'t be left blank."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Port number should be within 1000 and 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"To place a SIP call, check your Internet connection first."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"You need to be connected to a Wi-Fi network for SIP calls (use the Wireless &amp; Network settings)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP calling not supported"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatic"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Always send"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Built-in SIP calling"</string>
-</resources>
diff --git a/sip/res/values-en-rCA/strings.xml b/sip/res/values-en-rCA/strings.xml
deleted file mode 100644
index 2a51671..0000000
--- a/sip/res/values-en-rCA/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP settings"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP accounts"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Accounts"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Receive incoming calls"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Uses more battery life"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Use SIP calling"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Use SIP calling (Wi-Fi only)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"For all calls when data network is available"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Only for SIP calls"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"For all calls"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Add account"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Remove account"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP accounts"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Saving the account…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Removing the account…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Save"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Discard"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Close the profile"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Close"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Checking status..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registering…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Still trying…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Not receiving calls."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Account registration stopped because there is no Internet connection."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Account registration stopped because there is no Wi-Fi connection."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Account registration unsuccessful."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Receiving calls."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Account registration unsuccessful: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); will try later"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Account registration unsuccessful: Incorrect username or password."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Account registration unsuccessful: Check the server name."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"This account is currently in use by the <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> app."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP account details"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP account details"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Username"</string>
-    <string name="password_title" msgid="8035579335591959021">"Password"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Display name"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Outbound proxy address"</string>
-    <string name="port_title" msgid="1703586046264385110">"Port number"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Transport type"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Send keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Optional settings"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Authentication username"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Username used for authentication"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Not set&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Not set&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Not set&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Same as username&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Optional&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Touch to show all"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Touch to hide all"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Enter details of new SIP account."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> is required and can\'t be left blank."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Port number should be within 1000 and 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"To place a SIP call, check your Internet connection first."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"You need to be connected to a Wi-Fi network for SIP calls (use the Wireless &amp; Network settings)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP calling not supported"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatic"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Always send"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Built-in SIP calling"</string>
-</resources>
diff --git a/sip/res/values-en-rGB/strings.xml b/sip/res/values-en-rGB/strings.xml
deleted file mode 100644
index 2a51671..0000000
--- a/sip/res/values-en-rGB/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP settings"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP accounts"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Accounts"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Receive incoming calls"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Uses more battery life"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Use SIP calling"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Use SIP calling (Wi-Fi only)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"For all calls when data network is available"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Only for SIP calls"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"For all calls"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Add account"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Remove account"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP accounts"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Saving the account…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Removing the account…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Save"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Discard"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Close the profile"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Close"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Checking status..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registering…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Still trying…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Not receiving calls."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Account registration stopped because there is no Internet connection."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Account registration stopped because there is no Wi-Fi connection."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Account registration unsuccessful."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Receiving calls."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Account registration unsuccessful: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); will try later"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Account registration unsuccessful: Incorrect username or password."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Account registration unsuccessful: Check the server name."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"This account is currently in use by the <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> app."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP account details"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP account details"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Username"</string>
-    <string name="password_title" msgid="8035579335591959021">"Password"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Display name"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Outbound proxy address"</string>
-    <string name="port_title" msgid="1703586046264385110">"Port number"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Transport type"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Send keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Optional settings"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Authentication username"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Username used for authentication"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Not set&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Not set&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Not set&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Same as username&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Optional&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Touch to show all"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Touch to hide all"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Enter details of new SIP account."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> is required and can\'t be left blank."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Port number should be within 1000 and 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"To place a SIP call, check your Internet connection first."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"You need to be connected to a Wi-Fi network for SIP calls (use the Wireless &amp; Network settings)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP calling not supported"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatic"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Always send"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Built-in SIP calling"</string>
-</resources>
diff --git a/sip/res/values-en-rIN/strings.xml b/sip/res/values-en-rIN/strings.xml
deleted file mode 100644
index 2a51671..0000000
--- a/sip/res/values-en-rIN/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP settings"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP accounts"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Accounts"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Receive incoming calls"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Uses more battery life"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Use SIP calling"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Use SIP calling (Wi-Fi only)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"For all calls when data network is available"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Only for SIP calls"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"For all calls"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Add account"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Remove account"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP accounts"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Saving the account…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Removing the account…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Save"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Discard"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Close the profile"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Close"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Checking status..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registering…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Still trying…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Not receiving calls."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Account registration stopped because there is no Internet connection."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Account registration stopped because there is no Wi-Fi connection."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Account registration unsuccessful."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Receiving calls."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Account registration unsuccessful: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); will try later"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Account registration unsuccessful: Incorrect username or password."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Account registration unsuccessful: Check the server name."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"This account is currently in use by the <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> app."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP account details"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP account details"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Username"</string>
-    <string name="password_title" msgid="8035579335591959021">"Password"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Display name"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Outbound proxy address"</string>
-    <string name="port_title" msgid="1703586046264385110">"Port number"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Transport type"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Send keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Optional settings"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Authentication username"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Username used for authentication"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Not set&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Not set&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Not set&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Same as username&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Optional&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Touch to show all"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Touch to hide all"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Enter details of new SIP account."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> is required and can\'t be left blank."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Port number should be within 1000 and 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"To place a SIP call, check your Internet connection first."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"You need to be connected to a Wi-Fi network for SIP calls (use the Wireless &amp; Network settings)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP calling not supported"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatic"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Always send"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Built-in SIP calling"</string>
-</resources>
diff --git a/sip/res/values-en-rXC/strings.xml b/sip/res/values-en-rXC/strings.xml
deleted file mode 100644
index 59e37f4..0000000
--- a/sip/res/values-en-rXC/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‎‎‏‎‏‎‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‎‏‎‏‏‎‏‎‎‏‎‏‎‎‏‎‏‏‏‏‎‎SIP settings‎‏‎‎‏‎"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‎‏‏‏‎‏‎‏‎‏‏‎‏‎‎‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‏‎‎‏‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‏‎SIP accounts‎‏‎‎‏‎"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‏‎‎‏‎‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎‏‏‎‏‏‏‏‎‎‎‏‏‏‎Accounts‎‏‎‎‏‎"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‏‎‎‎‎‏‎‏‏‎‎‎‎‏‏‎‎‎‎‏‏‎‏‎‏‎‎‎‏‏‎‎‎‎‎‎‎‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎Receive incoming calls‎‏‎‎‏‎"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‏‎‎‏‎‎‏‏‎‏‎‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‎‎‎‏‎‏‎‎‎‎‎‎‏‏‎‏‎‏‏‏‎‎‎‏‏‎Uses more battery life‎‏‎‎‏‎"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‏‎‏‎‏‎‎‎‎‎‏‎‎‎‏‏‏‎‏‎‎‎‏‏‏‎‏‏‎‎‎‎‏‎‏‎‏‎‏‎‎‎‎‎‎Use SIP calling‎‏‎‎‏‎"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‏‎‎‎‎‎‎‏‏‎‏‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‏‏‏‎‎‏‎‎‎Use SIP calling (Wi-Fi only)‎‏‎‎‏‎"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‎‎‏‎‏‎‎‎‏‏‎‏‏‎‏‎‏‏‏‎‏‎‎‎‏‏‏‏‎‎‏‎‏‎‏‎‎‏‎‏‎‏‎‏‏‏‎‏‏‏‎‏‎‏‎For all calls when data network is available‎‏‎‎‏‎"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‏‎‏‏‏‏‎‎‏‏‎‏‎‏‎‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‏‎‏‏‎‎‏‎‏‎Only for SIP calls‎‏‎‎‏‎"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‏‏‎‎‏‏‎‎‏‏‎‎‎‏‎‏‎‏‏‎‎‎‏‏‏‎‏‎‎‎‎‏‏‏‏‏‏‎‎‏‎‏‎‎‎‏‎‎‎‏‏‎‏‏‏‏‎For all calls‎‏‎‎‏‎"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‏‏‎‏‎‎‎‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎Add account‎‏‎‎‏‎"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‏‎‎‏‎‏‎‏‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎‎‏‎Remove account‎‏‎‎‏‎"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‎‎‎‏‏‎‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‏‏‎‏‎‏‏‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‏‎SIP accounts‎‏‎‎‏‎"</string>
-    <string name="saving_account" msgid="3390358043846687266">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‏‏‏‏‎‎‎‏‎‏‎‏‏‎‏‏‎‎‏‎‎‎‎‏‏‎‏‏‏‏‎‏‎‏‏‏‎‏‎‎‎‏‎‎‎‏‎‎Saving the account…‎‏‎‎‏‎"</string>
-    <string name="removing_account" msgid="1544132880414780408">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‎‏‎‏‏‎‏‏‎‏‏‏‎‏‏‏‎‎‏‎‏‎‏‏‎‎‎‏‏‎‏‏‏‏‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‏‏‏‎‎‎‎Removing the account…‎‏‎‎‏‎"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‎‏‎‏‏‎‏‎‏‎‏‎‏‏‏‎‎‏‎‏‏‏‎‎‎‎‎‏‏‎‏‎‏‏‏‎‏‎‎‎Save‎‏‎‎‏‎"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‎‏‎‎‎‏‎‎‏‎‏‏‎‏‎‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‎‎‎‎‎‎‏‎‏‏‎Discard‎‏‎‎‏‎"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‎‏‎‏‏‏‎‏‎‏‏‎‎‎‏‎‎‎‎‎‏‏‎‏‎‏‎‎‏‏‎‎‏‎‎Close the profile‎‏‎‎‏‎"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‎‏‏‏‎‏‎‎‎‎‎‎‎‎‏‎‎‏‎‎‏‎‎‏‎‏‎‏‏‏‎‎OK‎‏‎‎‏‎"</string>
-    <string name="close_profile" msgid="3756064641769751774">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‎‎‎‎‎‎‎‏‏‏‎‎‎‏‏‏‎‎‏‎‎‎‎‏‎‎‏‏‎‎‎‎‏‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎Close‎‏‎‎‏‎"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‎‏‎‏‎‎‎‎‎‎‏‏‎‎‎‎‏‎‎‎‏‏‎‎‎‎‏‏‏‏‎‎‎‎‎‏‏‎‎‎Checking status...‎‏‎‎‏‎"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‎‏‏‎‎‏‎‏‏‎‎‏‏‏‏‎‏‎‏‎‎‎‎‏‎‏‎‎‎‏‏‏‏‏‏‏‎Registering…‎‏‎‎‏‎"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‏‎‏‎‏‎‏‎‏‎‏‎‎‎‏‏‎‏‎‎‏‏‏‎‎‎‏‎‎‎‏‎‎‏‎‏‎‎Still trying…‎‏‎‎‏‎"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‏‎‎‎‏‏‏‎‎‏‎‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‏‎Not receiving calls.‎‏‎‎‏‎"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‏‎‏‎‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‏‎‏‎‏‏‏‎‏‎‎‎‎‏‎‎‏‏‏‎‏‎‏‏‏‎‎‏‎Account registration stopped because there is no Internet connection.‎‏‎‎‏‎"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‏‏‎‎‎‎‎‏‏‎‏‎‎‎‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‎‎‎‎‎‏‎‎‎‎‎‎‎‏‎‎‎‎‎‎‏‏‎‎‎‏‎‎‎Account registration stopped because there is no Wi-Fi connection.‎‏‎‎‏‎"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‏‎‏‎‎‎‏‏‎‎‎‎‏‎‎‏‏‏‏‎‎‏‏‏‎‎‏‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‏‏‎‎‎‎‎‎‏‏‎Account registration unsuccessful.‎‏‎‎‏‎"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‎‎‏‏‎‏‎‏‏‎‏‏‏‎‎‏‎‏‎‏‎‏‎‎‏‎‎‎‎‏‎‏‎‏‏‎‏‏‏‎‎‎‏‏‎‎‏‏‎‎‏‎Receiving calls.‎‏‎‎‏‎"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‏‏‏‏‏‏‎‎‏‎‏‏‎‏‏‎‎‎‎‎‎‏‎‎‏‏‎‎‎‎‎‏‏‎‎‏‎‎‎‎‏‎‏‎‎‏‏‎‏‏‎Account registration unsuccessful: (‎‏‎‎‏‏‎<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>‎‏‎‎‏‏‏‎); will try later‎‏‎‎‏‎"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‎‏‎‎‏‎‎‏‎‏‎‏‎‏‎‎‏‏‎‏‏‎‏‎‎‏‎‎‎‎‏‏‏‎‏‏‎‏‎‏‎‎‏‎Account registration unsuccessful: Incorrect username or password.‎‏‎‎‏‎"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‎‎‎‏‏‎‎‎‏‏‎‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‎‏‎‎‎Account registration unsuccessful: Check the server name.‎‏‎‎‏‎"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‏‎‎‎‏‏‏‎‏‏‏‎‏‎‎‎‏‏‏‏‎‏‎‎‎‏‏‏‎‏‏‏‎‎‏‏‏‏‎‏‎‎‏‎‎‏‏‎‎‏‏‏‏‏‎This account is currently in use by the ‎‏‎‎‏‏‎<xliff:g id="ACCOUNT_OWNER">%s</xliff:g>‎‏‎‎‏‏‏‎ app.‎‏‎‎‏‎"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‎‎‏‎‏‏‎‏‏‏‏‎‎‏‏‎‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎‏‎‎‏‏‎SIP account details‎‏‎‎‏‎"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‎‎‎‎‎‏‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‎‎‏‏‎‎‎‎‎‏‎‎‎‎‏‏‎‎‎‏‎‎‏‏‏‎‏‎SIP account details‎‏‎‎‏‎"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎‎‎‏‏‎‏‏‎‏‎‎‏‏‏‎‎‎‏‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‎‎‎‏‏‎Server‎‏‎‎‏‎"</string>
-    <string name="username_title" msgid="298416796886107970">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‎‎‎‎‏‎‎‏‎‎‎‎‏‏‎‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‏‎‏‎‎‎‎‎‎‎‎‏‏‏‎‏‎‎‎‎‏‎‎Username‎‏‎‎‏‎"</string>
-    <string name="password_title" msgid="8035579335591959021">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‏‏‏‎‎‏‏‎‏‎‏‎‎‏‏‎‏‎‏‏‎‎‏‏‎‏‏‎‏‏‎‎‏‏‎‎‏‏‏‏‎‏‏‎‏‎Password‎‏‎‎‏‎"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‎‎‎‎‎‏‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‏‎‏‎‎‎‎‎Display name‎‏‎‎‏‎"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‎‏‏‏‎‎‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‎‎‎‎‏‎‏‏‏‎Outbound proxy address‎‏‎‎‏‎"</string>
-    <string name="port_title" msgid="1703586046264385110">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‏‏‏‎‏‎‎‏‎‎‎‏‎‏‏‎‏‎‎‏‏‏‏‎‏‏‏‎‏‎‏‎‏‏‏‏‏‎‎‏‏‎‏‎‎‏‏‏‏‎‎‏‎‏‎‏‏‎‎Port number‎‏‎‎‏‎"</string>
-    <string name="transport_title" msgid="1661659138226029178">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‏‎‏‏‎‎‏‏‎‎‎‏‎‏‏‏‎‏‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‎‎‏‏‏‏‎‏‎‎Transport type‎‏‎‎‏‎"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‏‎‎‏‏‏‎‏‎‏‏‏‏‎‎‏‎‎‎‏‏‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‎‎‎‎‎‎‏‎Send keep-alive‎‏‎‎‏‎"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‎‏‎‎‎‏‏‎‏‎‏‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‏‎‎‎‏‏‎‎‎‎‏‎‏‏‎‎‎‎Optional settings‎‏‎‎‏‎"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‏‏‎‏‎‏‎‎‏‎‏‏‎‏‎‎‏‎‎‎‏‎‎‎‏‎‏‏‎‎‎‎‏‎‎‎‎‎‏‎‏‎‏‎‏‎‏‎‏‎‎Authentication username‎‏‎‎‏‎"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‎‏‎‏‎‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‎‏‏‎‏‎‏‎‎‏‏‏‏‏‏‎‎‏‎‎‏‏‎‎‏‎‎‏‏‏‎‎Username used for authentication‎‏‎‎‏‎"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‎‏‏‎‏‎‎‏‏‏‏‏‎‎‎‏‏‎‎‎‏‏‎‎‎‏‎‏‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‏‏‏‎‏‏‎‎&lt;Not set&gt;‎‏‎‎‏‎"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‎‏‎‎‎‏‎‎‏‎‏‎‎‏‎‏‏‎‎‎‎‎‎‎‎‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‏‎‎‏‏‏‏‏‏‏‎‏‎&lt;Not set&gt;‎‏‎‎‏‎"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‎‎‎‏‎‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‎‎‎‏‎‏‏‎‏‎‎‎‏‎‎‏‎‎‎‎‏‏‎‏‎‎‏‏‎‎‎‎‏‏‎‎‎&lt;Not set&gt;‎‏‎‎‏‎"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‏‎‎‏‏‎‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‎‏‎‏‎‎‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‏‎‎‏‎‎‎‏‏‎‎&lt;Same as username&gt;‎‏‎‎‏‎"</string>
-    <string name="optional_summary" msgid="620379377865437488">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‎‎‎‎‎‎‏‏‏‏‏‎‎‎‎‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‏‎‎‎‎‎&lt;Optional&gt;‎‏‎‎‏‎"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‎‏‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‎‏‎‏‏‏‎‎‏‏‏‎‎‎‎‎‎‎‎‏‎‎‎‏‎▷ Touch to show all‎‏‎‎‏‎"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎‏‎‏‏‎‏‎‏‎‎‏‏‎‏‎‎‎‎‎‎‏‏‎‏‏‎‏‏‎‎‏‏‎▽ Touch to hide all‎‏‎‎‏‎"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‏‏‎‏‎‎‎‏‏‎‏‎‎‎‎‎‏‎‏‎‎‎‎‎‎‎‎‏‏‏‎‎‎‎‎‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‎‎Enter details of new SIP account.‎‏‎‎‏‎"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‎‎‎‎‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‏‎‏‎‎‎‏‎‏‎‎‎‏‎‏‏‎‏‏‏‎‎‎‏‎‎‏‏‎<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>‎‏‎‎‏‏‏‎ is required and can\'t be left blank.‎‏‎‎‏‎"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‏‏‏‎‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‎‎‏‎‏‎‏‏‏‏‎‏‏‎‎‏‏‎‎‎‎‎Port number should be within 1000 and 65534.‎‏‎‎‏‎"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎‎‎‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‎‎‏‎‎‎‏‏‏‏‎‎‎‏‏‎‎‎‏‏‎‎‏‎‎‏‎‎‏‏‎‎‏‏‎‎‏‏‏‎To place a SIP call, check your Internet connection first.‎‏‎‎‏‎"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‎‎‏‎‏‏‏‎‎‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎‏‏‎‏‎‎‎‏‏‏‎‏‎‎‏‏‏‎‎‏‏‎‏‎‏‏‎‎‎‏‎‎‎‎You need to be connected to a Wi-Fi network for SIP calls (use the Wireless &amp; Network settings).‎‏‎‎‏‎"</string>
-    <string name="no_voip" msgid="3366395789297981738">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‎‎‏‎‎‏‏‎‏‎‏‎‎‏‏‏‏‎‏‎‎‎‎‏‏‎‎‏‎‎‏‎‏‎‏‎‎SIP calling not supported‎‏‎‎‏‎"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎‏‎‏‏‏‏‎‎‏‎‏‏‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎‏‎‎‎‎‎‏‎‎‏‎‏‏‎‏‏‎‏‎‎‎‏‏‏‏‎‎Automatic‎‏‎‎‏‎"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‏‏‎‎‏‏‏‎‏‏‏‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‎‎‏‏‏‎‏‎‏‎‎‎‎‏‎‏‎‏‎‎‏‎‎‎‎‏‎Always send‎‏‎‎‏‎"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‎‏‎‏‏‎‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‎‏‎‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‎‏‏‎‎‏‏‎‎Built-in SIP calling‎‏‎‎‏‎"</string>
-</resources>
diff --git a/sip/res/values-es-rUS/strings.xml b/sip/res/values-es-rUS/strings.xml
deleted file mode 100644
index b18c0df..0000000
--- a/sip/res/values-es-rUS/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Configuración de SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Cuentas SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Cuentas"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Recibir llamadas entrantes"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Utiliza más batería"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Utilizar llamadas SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Utilizar llamadas SIP (solo Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Para todas las llamadas cuando la red de datos esté disponible"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Solo para llamadas SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Para todas las llamadas"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Agregar cuenta"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Quitar cuenta"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Cuentas SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Guardando la cuenta…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Eliminando la cuenta…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Guardar"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Descartar"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Cerrar el perfil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Aceptar"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Cerrar"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Comprobando el estado…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registrando…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Intento en curso…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Sin recepción de llamadas"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Se detuvo el registro de cuenta porque no hay conexión a Internet."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Se detuvo el registro de la cuenta porque no existe una conexión Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"La cuenta no se registró correctamente."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Recibiendo llamadas"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"La cuenta no se registró correctamente: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); se volverá a intentar más tarde."</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"La cuenta no se registró correctamente: contraseña o nombre de usuario incorrectos."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"La cuenta no se registró correctamente: verifica el nombre del servidor."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"La aplicación <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> está usando la cuenta en este momento."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Detalles de la cuenta SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Detalles de la cuenta SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Servidor"</string>
-    <string name="username_title" msgid="298416796886107970">"Nombre de usuario"</string>
-    <string name="password_title" msgid="8035579335591959021">"Contraseña"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Nombre de visualización"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Dirección de proxy saliente"</string>
-    <string name="port_title" msgid="1703586046264385110">"Número de puerto"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Tipo de transporte"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Enviar mantenimiento de conexión"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Configuración opcional"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Nombre de usuario de autenticación"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Nombre de usuario utilizado para autenticación"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Sin configurar&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Sin configurar&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Sin configurar&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Igual que el nombre de usuario&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Opcional&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Tocar para mostrar todo"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Tocar para ocultar todo"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Ingresa los detalles de la cuenta SIP nueva."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"El campo <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> es obligatorio y no puede quedar en blanco."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"El número de puerto debe estar dentro de 1000 y 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Para realizar una llamada SIP, primero comprueba que tienes conexión a Internet."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Tienes que estar conectado a una red Wi-Fi para las llamadas SIP (utilizar la configuración de redes inalámbricas)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Llamada SIP no compatible"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automático"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Enviar siempre"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Llamadas SIP integradas"</string>
-</resources>
diff --git a/sip/res/values-es/strings.xml b/sip/res/values-es/strings.xml
deleted file mode 100644
index 69ab04f..0000000
--- a/sip/res/values-es/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Ajustes de SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Cuentas SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Cuentas"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Recibir llamadas"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Consume más batería"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Usar SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Usar llamadas SIP (solo con Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Para todas las llamadas cuando haya redes de datos disponibles"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Solo para llamadas SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"En todas las llamadas"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Añadir cuenta"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Quitar cuenta"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Cuentas SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Guardando la cuenta..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Eliminando la cuenta..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Guardar"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Descartar"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Cerrar el perfil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Aceptar"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Cerrar"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Comprobando estado..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registrando..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Seguimos intentándolo..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Sin recepción de llamadas"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Se ha detenido el registro de cuenta porque no hay conexión a Internet."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Se ha detenido el registro de cuenta porque no hay conexión Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Registro de cuenta incorrecto"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Recibiendo llamadas"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Error al registrar la cuenta: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); vuelve a intentarlo más tarde"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Registro de cuenta incorrecto: nombre de usuario o contraseña incorrectos."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Error al registrar la cuenta: comprueba el nombre del servidor."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"La aplicación <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> está utilizando esta cuenta en este momento."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Cuenta SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Cuenta SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Servidor"</string>
-    <string name="username_title" msgid="298416796886107970">"Nombre de usuario"</string>
-    <string name="password_title" msgid="8035579335591959021">"Contraseña"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Nombre visible"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Dirección de servidor proxy saliente"</string>
-    <string name="port_title" msgid="1703586046264385110">"Número de puerto"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Tipo de transporte"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Enviar mensajes keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Ajustes opcionales"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Nombre de usuario de autenticación"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Nombre de usuario utilizado para la autenticación"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;No configurado&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;No configurada&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;No configurado&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Igual que el nombre de usuario&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Opcional&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Toca aquí para ver todo"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Toca aquí para ocultar todo"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Introduce la información de la nueva cuenta de SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"El campo <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> es obligatorio y no se puede dejar en blanco."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"El número de puerto debe estar comprendido entre 1.000 y 65.534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Antes de realizar una llamada SIP, comprueba tu conexión a Internet."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Debes estar conectado a una red Wi-Fi para realizar llamadas SIP (usa la opción de conexiones y redes inalámbricas)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Llamada SIP no admitida"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automático"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Enviar siempre"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Llamadas SIP integradas"</string>
-</resources>
diff --git a/sip/res/values-et/strings.xml b/sip/res/values-et/strings.xml
deleted file mode 100644
index cdd1a13..0000000
--- a/sip/res/values-et/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP-i seaded"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP-kontod"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Kontod"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Sissetulevate kõnede vastuvõtmine"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Kasutab rohkem akut"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP-helistamise kasutus"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP-kõnede tegemine (ainult WiFi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Kõikide kõnede puhul, kui andmesidevõrk on saadaval"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Ainult SIP-kõnede jaoks"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Kõikide kõnede jaoks"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Lisa konto"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Eemalda konto"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP-kontod"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Konto salvestamine ..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Konto eemaldamine ..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Salvesta"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Loobu"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Profiili sulgemine"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Sule"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Oleku kontrollimine ..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registreerimine ..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Registreerimine jätkub ..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Kõnesid ei võeta vastu."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Konto registreerimine on peatatud, sest puudub Interneti-ühendus."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Konto registreerimine on peatatud, sest puudub WiFi-ühendus."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Konto registreerimine ebaõnnestus."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Kõnede vastuvõtmine."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Konto registreerimine ebaõnnestus: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); hiljem proovitakse uuesti"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Konto registreerimine ebaõnnestus: vale kasutajanimi või parool."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Konto registreerimine ebaõnnestus: kontrollige serveri nime."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Kontot kasutab praegu kontoomaniku <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> rakendus"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP-konto andmed"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP-konto andmed"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Kasutajanimi"</string>
-    <string name="password_title" msgid="8035579335591959021">"Parool"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Kuvatav nimi"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Väljuva puhverserveri aadress"</string>
-    <string name="port_title" msgid="1703586046264385110">"Pordi number"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Protokolli tüüp"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Ühenduse hoidmise eelistuste saatmine"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Valikulised seaded"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Autentimise kasutajanimi"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Autentimiseks kasutatav kasutajanimi"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Määramata&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Määramata&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Määramata&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Sama kui kasutajanimi&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Valikuline&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Puudutage kõige kuvamiseks"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Puudutage kõige peitmiseks"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Sisestage uue SPI-konto üksikasjad."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Väli <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> on kohustuslik, seda ei saa tühjaks jätta."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Pordi number peab jääma vahemikku 1000 kuni 65 534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP-kõne tegemiseks kontrollige esmalt Interneti-ühendust."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP-kõnede tegemiseks peate olema ühendatud WiFi-võrku (kasutage juhtmeta seadeid ja võrgustikuseadeid)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP-kõnede tegemist ei toetata"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automaatne"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Saada alati"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Sisseehitatud SIP-kõnede tegemine"</string>
-</resources>
diff --git a/sip/res/values-eu/strings.xml b/sip/res/values-eu/strings.xml
deleted file mode 100644
index 5ad7d9c..0000000
--- a/sip/res/values-eu/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP ezarpenak"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP kontuak"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Kontuak"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Jaso deiak"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Bateria gehiago erabiltzen du"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Erabili SIP deiak"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Erabili SIP deiak (wifi bidez soilik)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Dei guztietan datu-sarea erabilgarri dagoenean"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"SIP deietan soilik"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Dei guztietan"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Gehitu kontu bat"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Kendu kontua"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP kontuak"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Kontua gordetzen…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Kontua kentzen…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Gorde"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Baztertu"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Itxi profila"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Ados"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Itxi"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Egoera egiaztatzen…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Erregistratzen…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Oraindik saiatzen…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Ez da deirik jasotzen ari."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Kontua erregistratzeko prozesua gelditu da ez zaudelako konektatuta Internetera."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Kontua erregistratzeko prozesua gelditu da ez dagoelako wifi-konexiorik."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Ez da kontua erregistratu."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Deiak jasotzen."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Ez da kontua erregistratu: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Geroago saiatuko gara berriro."</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Ez da kontua erregistratu: erabiltzaile-izena edo/eta pasahitza ez dira zuzenak."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Ez da kontua erregistratu: egiaztatu zerbitzari-izena."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Une honetan <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> jabearen aplikazioa erabiltzen ari da kontua."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP kontuaren xehetasunak"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP kontuaren xehetasunak"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Zerbitzaria"</string>
-    <string name="username_title" msgid="298416796886107970">"Erabiltzaile-izena"</string>
-    <string name="password_title" msgid="8035579335591959021">"Pasahitza"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Bistaratzeko izena"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Irteerako proxyaren helbidea"</string>
-    <string name="port_title" msgid="1703586046264385110">"Ataka-zenbakia"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Garraio mota"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Bidali konexioa mantentzeko mezua"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Aukerako ezarpenak"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Autentifikatzeko erabiltzaile-izena"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Autentifikatzeko erabili den erabiltzaile-izena"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Ezarri gabe&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Ezarri gabe&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Ezarri gabe&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Erabiltzaile-izenaren berdina&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Aukerakoa&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Guztiak erakusteko, ukitu hau"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Guztiak ezkutatzeko, ukitu hau"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Idatzi SIP kontu berriaren xehetasunak."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> behar da eta ezin da hutsik utzi."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Ataka-zenbakiak 1000 eta 65534 artean egon behar luke."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP deiak egiteko, egiaztatu Internetera konektatuta zaudela."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Wifi-sare batera konektatuta egon behar zara SIP deiak egiteko (erabili hari gabekoen eta sareen ezarpenak)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP deiak ez dira onartzen"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatikoa"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Bidali beti"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"SIP dei integratuak"</string>
-</resources>
diff --git a/sip/res/values-fa/strings.xml b/sip/res/values-fa/strings.xml
deleted file mode 100644
index e2843bc..0000000
--- a/sip/res/values-fa/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"دریافت تماس‌های ورودی"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"از باتری بیشتری استفاده می‌کند"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"‏استفاده از تماس SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"‏استفاده از تماس SIP (فقط Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"حذف کردن حساب"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"‏حساب‌های SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"در حال ذخیره حساب..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"در حال حذف حساب..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"ذخیره‌"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"صرف‌نظر کردن"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"بستن نمایه"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"تأیید"</string>
-    <string name="close_profile" msgid="3756064641769751774">"بستن"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"در حال بررسی وضعیت..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"در حال ثبت..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"هنوز در حال تلاش..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"تماس‌های دریافتی موجود نیست."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"ثبت حساب متوقف شد چون اتصال اینترنتی ندارید"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"‏ثبت حساب به دلیل عدم وجود اتصال Wi-Fi متوقف شد."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"ثبت حساب ناموفق بود."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"در حال دریافت تماس‌ها."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"ثبت حساب ناموفق بود: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>)، بعداً امتحان می‌شود"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"ثبت حساب ناموفق بود: نام کاربری یا گذرواژه نادرست است."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"ثبت حساب ناموفق: نام سرور را بررسی کنید."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"این حساب اکنون توسط برنامه <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> در حال استفاده است."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"‏جزئیات حساب SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"‏جزئیات حساب SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"سرور"</string>
-    <string name="username_title" msgid="298416796886107970">"نام کاربری"</string>
-    <string name="password_title" msgid="8035579335591959021">"گذرواژه"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"نام نمایشی"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"آدرس پروکسی خارج از محدوده"</string>
-    <string name="port_title" msgid="1703586046264385110">"شماره درگاه"</string>
-    <string name="transport_title" msgid="1661659138226029178">"نوع حمل‌ونقل"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"ارسال حفظ اتصال"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"تنظیمات اختیاری"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"نام کاربری برای اصالت‌سنجی"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"نام کاربری مورد استفاده برای اصالت‌سنجی"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"‏&lt;تنظیم نشده&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"‏&lt;تنظیم نشده&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"‏&lt;تنظیم نشده&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;همان نام کاربری&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"‏&lt;اختیاری&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ جهت نمایش همه لمس کنید"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ برای پنهان کردن همه لمس کنید"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"‏جزئیات حساب جدید SIP را وارد کنید."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ضروری است و نباید خالی بماند."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"شماره درگاه باید بین ۱۰۰۰ و ۶۵۵۳۴ باشد."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"‏برای برقراری تماس SIP، ابتدا اتصال اینترنتتان را بررسی کنید."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"‏برای برقراری تماس‌های SIP باید به شبکه Wi-Fi متصل باشید (از تنظیمات بی‌سیم و شبکه استفاده کنید)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"‏تماس SIP پشتیبانی نمی‌شود"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"خودکار"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"همیشه ارسال شود"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"‏تماس SIP داخلی"</string>
-</resources>
diff --git a/sip/res/values-fi/strings.xml b/sip/res/values-fi/strings.xml
deleted file mode 100644
index ebaf134..0000000
--- a/sip/res/values-fi/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP-asetukset"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP-tilit"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Tilit"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Vastaanota saapuvia puheluita"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Käyttää enemmän akkua"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Käytä SIP-puheluita"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Käytä SIP-puheluita (vain Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Kaikki puhelut, kun verkko on käytettävissä"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Vain SIP-puhelut"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Kaikki puhelut"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Lisää tili"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Poista tili"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP-tilit"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Tiliä tallennetaan…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Tiliä poistetaan…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Tallenna"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Hylkää"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Sulje profiili"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Sulje"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Tarkistetaan tilaa…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Rekisteröidään…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Yritetään edelleen…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Ei vastaanota puheluita."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Tilin rekisteröinti lopetettiin, koska internetyhteyttä ei ole."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Tilin rekisteröinti lopetettiin, koska Wi-Fi-yhteyttä ei ole."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Tilin rekisteröinti epäonnistui."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Vastaanottaa puheluita."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Tilin rekisteröinti epäonnistui: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Yritetään myöhemmin uudelleen."</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Tilin rekisteröinti epäonnistui: virheellinen käyttäjänimi tai salasana."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Tilin rekisteröinti epäonnistui: tarkista palvelimen nimi."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Tiliä käyttää tällä hetkellä sovellus <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP-tilin tiedot"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP-tilin tiedot"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Palvelin"</string>
-    <string name="username_title" msgid="298416796886107970">"Käyttäjätunnus"</string>
-    <string name="password_title" msgid="8035579335591959021">"Salasana"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Näyttönimi"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Lähettävän välityspalvelimen osoite"</string>
-    <string name="port_title" msgid="1703586046264385110">"Porttinumero"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Siirtotyyppi"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Lähetä tarkistusviesti"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Lisäasetukset"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Todennuksessa käytettävä käyttäjänimi"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Käyttäjänimeä käytetään todennukseen"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Ei määritetty&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Ei määritetty&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Ei määritetty&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Sama kuin käyttäjänimi&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Valinnainen&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Näytä kaikki koskettamalla"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Piilota kaikki koskettamalla"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Anna uuden SIP-tilin tiedot."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> on pakollinen, joten se ei voi olla tyhjä."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Porttinumeron tulee olla 1 000 – 65 534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Jos haluat soittaa SIP-puhelun, tarkista ensin internetyhteytesi."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Sinun on oltava yhteydessä Wi-Fi-verkkoon, jotta voit soittaa SIP-puheluita (vaihda asetus Langaton verkko- ja verkkoasetuksissa)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP-puheluita ei tueta"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automaattinen"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Lähetä aina"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Sisäänrakennetut SIP-puhelut"</string>
-</resources>
diff --git a/sip/res/values-fr-rCA/strings.xml b/sip/res/values-fr-rCA/strings.xml
deleted file mode 100644
index 4c5a0ad..0000000
--- a/sip/res/values-fr-rCA/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Paramètres SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Comptes SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Comptes"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Recevoir les appels"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Consomme davantage d\'énergie"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Utiliser les appels SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Utiliser les appels SIP (Wi-Fi seulement)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Pour tous les appels lorsqu\'un réseau de données est accessible"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Uniquement pour les appels SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Pour tous les appels"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Ajouter un compte"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Supprimer le compte"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Comptes SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Enregistrement du compte en cours…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Suppression du compte en cours..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Enregistrer"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Supprimer"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Fermer le profil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Fermer"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Vérification de l\'état en cours..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Enregistrement en cours…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Tentative en cours…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Réception d\'appels impossible."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"L\'enregistrement du compte a été interrompu, car il n\'y a pas de connexion Internet."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"La procédure d\'enregistrement du compte a été interrompue, car il n\'y a aucune connexion Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Échec de l\'enregistrement du compte."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Réception d\'appels."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Échec de l\'enregistrement du compte : <xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>. Une nouvelle tentative sera effectuée plus tard."</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Échec de l\'enregistrement du compte : nom d\'utilisateur ou mot de passe incorrect."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Échec de l\'enregistrement du compte : veuillez vérifier le nom du serveur."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Ce compte est actuellement utilisé dans l\'application <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Détails du compte SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Détails du compte SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Serveur"</string>
-    <string name="username_title" msgid="298416796886107970">"Nom d\'utilisateur"</string>
-    <string name="password_title" msgid="8035579335591959021">"Mot de passe"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Nom à afficher"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Adresse de serveur mandataire sortant"</string>
-    <string name="port_title" msgid="1703586046264385110">"Numéro de port"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Type de transport"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Envoyer un message keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Paramètres facultatifs"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Nom d\'utilisateur d\'authentification"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Nom d\'utilisateur utilisé pour l\'authentification"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Non défini&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Non défini&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Non défini&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Identique au nom d\'utilisateur&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Facultatif&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Touchez ici pour tout afficher"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"Touchez ▽ pour tout masquer"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Entrez les détails du nouveau compte SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Le champ « <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> » est obligatoire. Veuillez le remplir."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Le numéro de port doit être compris entre 1000 et 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Pour faire un appel SIP, veuillez d\'abord vérifier votre connexion Internet."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Vous devez être connecté à un réseau Wi-Fi pour faire des appels SIP (utilisez les paramètres « Sans fil et réseaux »)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Les appels SIP ne sont pas acceptés."</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatique"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Toujours envoyer"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Appels SIP intégrés"</string>
-</resources>
diff --git a/sip/res/values-fr/strings.xml b/sip/res/values-fr/strings.xml
deleted file mode 100644
index 94156db..0000000
--- a/sip/res/values-fr/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Paramètres SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Comptes SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Comptes"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Recevoir les appels"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Consomme davantage de batterie"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Utiliser les appels SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Utiliser les appels SIP (Wi-Fi seulement)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Pour tous les appels lorsqu\'un réseau de données est disponible"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Pour les appels SIP seulement"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Pour tous les appels"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Ajouter un compte"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Supprimer le compte"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Comptes SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Enregistrement du compte en cours…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Suppression du compte en cours…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Enregistrer"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Supprimer"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Fermer le profil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Fermer"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Vérification de l\'état en cours..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Enregistrement en cours…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Tentative en cours…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Réception d\'appels impossible."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"L\'enregistrement du compte a été interrompu, car il n\'y a pas de connexion Internet."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"La procédure d\'enregistrement du compte a été interrompue, car il n\'y a aucune connexion Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Échec de l\'enregistrement du compte."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Réception d\'appels."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Échec de l\'enregistrement du compte : <xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>. Une nouvelle tentative sera effectuée plus tard."</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Échec de l\'enregistrement du compte : nom d\'utilisateur ou mot de passe incorrect."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Échec de l\'enregistrement du compte : veuillez vérifier le nom du serveur."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Ce compte est actuellement utilisé via l\'application <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Détails du compte SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Détails du compte SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Serveur"</string>
-    <string name="username_title" msgid="298416796886107970">"Nom d\'utilisateur"</string>
-    <string name="password_title" msgid="8035579335591959021">"Mot de passe"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Nom à afficher"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Adresse de proxy sortant"</string>
-    <string name="port_title" msgid="1703586046264385110">"Numéro de port"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Type de transport"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Envoyer un message keepalive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Paramètres facultatifs"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Nom d\'utilisateur d\'authentification"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Nom d\'utilisateur utilisé pour l\'authentification"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Non défini&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Non défini&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Non défini&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Identique au nom d\'utilisateur&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Facultatif&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Appuyer ici pour tout afficher"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Appuyer ici pour tout masquer"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Saisissez les informations concernant le nouveau compte SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Le champ \"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>\" est obligatoire. Veuillez le renseigner."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Le numéro de port doit être compris entre 1000 et 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Pour passer un appel SIP, veuillez d\'abord vérifier votre connexion Internet."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Vous devez être connecté à un réseau Wi-Fi pour passer des appels SIP (utilisez les paramètres \"Sans fil et réseaux\")."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Les appels SIP ne sont pas acceptés."</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatique"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Toujours envoyer"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Appels SIP intégrés"</string>
-</resources>
diff --git a/sip/res/values-gl/strings.xml b/sip/res/values-gl/strings.xml
deleted file mode 100644
index a6c15d5..0000000
--- a/sip/res/values-gl/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Configuración SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Contas SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Contas"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Recibir chamadas entrantes"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Consome máis batería"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Utilizar chamadas SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Utilizar chamadas SIP (só por wifi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Para todas as chamadas cando a rede de datos está dispoñible"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Só para chamadas SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Para todas as chamadas"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Engadir conta"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Quitar conta"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Contas SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Gardando a conta..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Eliminando a conta..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Gardar"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Descartar"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Pechar o perfil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Aceptar"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Pechar"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Comprobando o estado..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Rexistrando..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Aínda se está tentando..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Non se están recibindo chamadas."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"O rexistro da conta detívose debido a que non hai conexión a Internet."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"O rexistro da conta detívose debido a que non hai conexión wifi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Rexistro da conta incorrecto."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Recibindo chamadas."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"O rexistro da conta non se realizou correctamente: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); tentarase máis tarde"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"O rexistro da conta non se completou correctamente: nome de usuario ou contrasinal incorrectos."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Rexistro da conta incorrecto. Comproba o nome do servidor."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Esta conta está sendo utilizada actualmente pola aplicación de <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Conta SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Conta SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Servidor"</string>
-    <string name="username_title" msgid="298416796886107970">"Nome de usuario"</string>
-    <string name="password_title" msgid="8035579335591959021">"Contrasinal"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Nome visible"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Enderezo proxy saínte"</string>
-    <string name="port_title" msgid="1703586046264385110">"Número de porto"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Tipo de transporte"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Enviar sinal de conexión permanente"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Configuración opcional"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Nome de usuario da autenticación"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Nome de usuario utilizado para a autenticación"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Sen definir&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Sen definir&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Sen definir&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Igual que o nome de usuario&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Opcional&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Toca aquí para mostrar todo"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Toca aquí para ocultar todo"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Introduce os datos da nova conta SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> é obrigatorio e non se pode deixar en branco."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"O número do porto debe estar comprendido entre o 1000 e o 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Para realizar unha chamada SIP, primeiro debes comprobar a túa conexión de Internet."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Tes que estar conectado a unha rede wifi para facer chamadas SIP (utiliza a configuración de Sen fíos e rede)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"As chamadas SIP non son compatibles"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automático"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Enviar sempre"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Chamadas SIP integradas"</string>
-</resources>
diff --git a/sip/res/values-gu/strings.xml b/sip/res/values-gu/strings.xml
deleted file mode 100644
index 708452b..0000000
--- a/sip/res/values-gu/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"આવનારા કૉલ્સ પ્રાપ્ત કરો"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"બધુ બૅટરીની આવરદાનો ઉપયોગ કરે છે"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP કૉલિંગનો ઉપયોગ કરો"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP કૉલિંગનો ઉપયોગ કરો (ફક્ત Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"એકાઉન્ટ દૂર કરો"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP એકાઉન્ટ્સ"</string>
-    <string name="saving_account" msgid="3390358043846687266">"એકાઉન્ટ સાચવી રહ્યાં છે…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"એકાઉન્ટ દૂર કરી રહ્યાં છે…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"સાચવો"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"છોડી દો"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"પ્રોફાઇલ બંધ કરો"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ઓકે"</string>
-    <string name="close_profile" msgid="3756064641769751774">"બંધ કરો"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"સ્થિતિ તપાસી રહ્યાં છે..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"નોંધણી કરી રહ્યાં છે…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"હજી પ્રયાસ કરી રહ્યાં છે..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"કૉલ્સ પ્રાપ્ત કરી રહ્યાં નથી."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"કોઈ ઇન્ટરનેટ કનેક્શન ન હોવાને કારણે એકાઉન્ટની નોંધણી રોકી."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"કોઈ Wi-Fi કનેક્શન ન હોવાને કારણે એકાઉન્ટની નોંધણી રોકી."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"એકાઉન્ટની નોંધણી અસફળ."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"કૉલ્સ પ્રાપ્ત કરી રહ્યાં છે."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"એકાઉન્ટની નોંધણી અસફળ: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); પછીથી પ્રયાસ કરીશું"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"એકાઉન્ટની નોંધણી અસફળ: ખોટું વપરાશકર્તાનામ અથવા પાસવર્ડ."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"એકાઉન્ટની નોંધણી અસફળ: સર્વરનું નામ તપાસો."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"આ એકાઉન્ટ હાલમાં <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> ઍપ્લિકેશન દ્વારા ઉપયોગમાં છે."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP એકાઉન્ટ વિગતો"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP એકાઉન્ટ વિગતો"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"સર્વર"</string>
-    <string name="username_title" msgid="298416796886107970">"વપરાશકર્તાનામ"</string>
-    <string name="password_title" msgid="8035579335591959021">"પાસવર્ડ"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"પ્રદર્શન નામ"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"આઉટબાઉન્ડ પ્રોક્સી સરનામું"</string>
-    <string name="port_title" msgid="1703586046264385110">"પોર્ટ નંબર"</string>
-    <string name="transport_title" msgid="1661659138226029178">"સંક્રમણ પ્રકાર"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"કીપ-અલાઇવ મોકલો"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"વૈકલ્પિક સેટિંગ"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"પ્રમાણીકરણ વપરાશકર્તાનામ"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"પ્રમાણીકરણ માટે ઉપયોગમાં લેવાયેલ વપરાશકર્તાનામ"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;સેટ કરેલ નથી&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;સેટ કરેલ નથી&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;સેટ કરેલ નથી&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;વપરાશકર્તાનામના સમાન&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;વૈકલ્પિક&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ બધુ દર્શાવવા માટે ટચ કરો"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ બધુ છુપાવવા માટે ટચ કરો"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"નવા SIP એકાઉન્ટની વિગતો દાખલ કરો."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> આવશ્યક છે અને ખાલી છોડી શકાતું નથી."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"પોર્ટ નંબર 1000 અને 65534 ની અંદરનો હોવો જોઈએ."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP કૉલ કરવા માટે, પ્રથમ તમારું ઇન્ટરનેટ કનેક્શન તપાસો."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP કૉલ માટે તમારે વાઇ-ફાઇ નેટવર્કથી કનેક્ટ હોવું જરૂરી છે (વાયરલેસ અને નેટવર્ક સેટિંગનો ઉપયોગ કરો)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP કૉલિંગ સમર્થિત નથી"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"ઑટોમૅટિક"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"હંમેશાં મોકલો"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"બિલ્ટ-ઇન SIP કૉલિંગ"</string>
-</resources>
diff --git a/sip/res/values-hi/strings.xml b/sip/res/values-hi/strings.xml
deleted file mode 100644
index c3c18ab..0000000
--- a/sip/res/values-hi/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"इनकमिंग कॉल पाएं"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"ज़्यादा बैटरी का इस्तेमाल करती है"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP कॉलिंग का इस्तेमाल करें"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP कॉलिंग का उपयोग करें (केवल वाई-फ़ाई)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"खाता हटाएं"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP खाते"</string>
-    <string name="saving_account" msgid="3390358043846687266">"खाता सहेज रहा है..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"खाता निकाल रहा है..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"जोड़ें"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"छोड़ें"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"प्रोफ़ाइल बंद करें"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ठीक"</string>
-    <string name="close_profile" msgid="3756064641769751774">"बंद करें"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"स्थिति की जाँच हो रही है..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"पंजीकरण जारी है..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"अब भी प्रयास कर रहा है..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"कॉल नहीं मिल रहे हैं."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"खाता पंजीकरण रुक गया क्योंकि कोई इंटरनेट कनेक्शन उपलब्ध नहीं है."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"कोई वाई-फ़ाई  कनेक्शन न होने के कारण खाता पंजीकरण रोका गया."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"खाता पंजीकरण विफल."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"कॉल मिल रहे हैं"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"खाता पंजीकरण विफल: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); बाद में फिर से प्रयास करें"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"खाता पंजीकरण विफल: गलत उपयोगकर्ता नाम या पासवर्ड."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"खाता पंजीकरण विफल: सर्वर नाम जाँचें."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"वर्तमान में <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> ऐप्स के द्वारा इस खाते का उपयोग किया जा रहा है."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP खाता विवरण"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP खाता विवरण"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"सर्वर"</string>
-    <string name="username_title" msgid="298416796886107970">"उपयोगकर्ता नाम"</string>
-    <string name="password_title" msgid="8035579335591959021">"पासवर्ड"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"डिसप्ले नाम"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"आउटबाउंड प्रॉक्सी पता"</string>
-    <string name="port_title" msgid="1703586046264385110">"पोर्ट नंबर"</string>
-    <string name="transport_title" msgid="1661659138226029178">"ट्रांसपोर्ट टाइप"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"कीप अलाइव भेजें"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"वैकल्पिक सेटिंग"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"पुष्टि के लिए उपयोगकर्ता का नाम"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"पुष्टि के लिए इस्तेमाल होने वाला उपयोगकर्ता नाम"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;सेट नहीं है&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;सेट नहीं है&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;सेट नहीं है&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;उपयोगकर्ता नाम के जैसा&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;वैकल्पिक&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ सभी दिखाने के लिए छुएं"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ सभी छिपाने के लिए छुएं"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"नए SIP खाते के विवरण डालें."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> आवश्यक है और इसे खाली नहीं छोड़ा जा सकता."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"पोर्ट नंबर 1000 और 65534 के बीच होना चाहिए."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP कॉल करने के लिए, पहले अपना इंटरनेट कनेक्‍शन जाँचें."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP कॉल के लिए आपको किसी वाई-फ़ाई नेटवर्क से कनेक्‍ट रहना होगा (वायरलेस और नेटवर्क सेटिंग का उपयोग करें)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP कॉलिंग समर्थित नहीं है"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"स्वचालित"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"हमेशा भेजें"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"अंतर्निहित SIP कॉलिंग"</string>
-</resources>
diff --git a/sip/res/values-hr/strings.xml b/sip/res/values-hr/strings.xml
deleted file mode 100644
index d8f4045..0000000
--- a/sip/res/values-hr/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Postavke SIP-a"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP računi"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Računi"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Primi dolazne pozive"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Troši više baterije"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Upotreba SIP poziva"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Upotreba SIP poziva (samo Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Za sve pozive kada je podatkovna mreža dostupna"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Samo za SIP pozive"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Za sve pozive"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Dodaj račun"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Ukloni račun"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP računi"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Spremanje računa…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Uklanjanje računa…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Spremi"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Odbaci"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Zatvaranje profila"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"U redu"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Zatvori"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Provjeravanje statusa..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registracija…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Još pokušavam…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Ne prima pozive."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Registracija računa zaustavljena je jer nema internetske veze."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Registracija računa zaustavljena je jer nema Wi-Fi veze."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Registracija računa nije uspjela."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Prima pozive."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Registracija računa nije uspjela: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); pokušat ćemo kasnije"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Registracija računa nije uspjela: netočno korisničko ime ili zaporka."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Registracija računa nije uspjela: provjerite naziv poslužitelja."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Ovaj račun trenutačno upotrebljava aplikacija <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"O SIP računu"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"O SIP računu"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Poslužitelj"</string>
-    <string name="username_title" msgid="298416796886107970">"Korisničko ime"</string>
-    <string name="password_title" msgid="8035579335591959021">"Zaporka"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Ime za prikaz"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Odlazna proxy adresa"</string>
-    <string name="port_title" msgid="1703586046264385110">"Broj priključka"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Vrsta transporta"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Pošalji postavke keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Izborne postavke"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Korisničko ime za autentifikaciju"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Korisničko ime koje se upotrebljava za autentifikaciju"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Nije postavljeno&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Nije postavljeno&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Nije postavljeno&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Isto kao korisničko ime&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Izborno&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Dodirnite da biste prikazali sve"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Dodirnite da biste sakrili sve"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Unesite pojedinosti novog SIP računa."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Polje <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> obavezno je i ne može ostati prazno."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Broj priključka trebao bi biti između 1000 i 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Da biste uputili SIP poziv, provjerite jeste li povezani s internetom."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Morate se povezati s Wi-Fi mrežom za SIP pozive (upotrijebite postavke Bežično povezivanje i mreže)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP pozivi nisu podržani"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatski"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Uvijek šalji"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Ugrađeni SIP pozivi"</string>
-</resources>
diff --git a/sip/res/values-hu/strings.xml b/sip/res/values-hu/strings.xml
deleted file mode 100644
index f8ba961..0000000
--- a/sip/res/values-hu/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP-beállítások"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP-fiókok"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Fiókok"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Beérkező hívások fogadása"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Több energiát használ"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP-hívás használata"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP-hívás használata (csak Wi-Fin)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Minden hívásnál, amikor nincs elérhető adathálózat"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Csak SIP-hívásokhoz"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Minden híváshoz"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Fiók hozzáadása"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Fiók eltávolítása"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP-fiókok"</string>
-    <string name="saving_account" msgid="3390358043846687266">"A fiók mentése…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"A fiók törlése…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Mentés"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Elvetés"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"A profil bezárása"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Bezárás"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Állapot ellenőrzése…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Regisztrálás…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Még próbálkozik…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Nem fogad hívásokat."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"A fiók regisztrálása leállt, mert nincs internetkapcsolat."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"A fiók regisztrálása leállt, mert nincs Wi-Fi-kapcsolat."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"A fiók regisztrálása sikertelen."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Hívások fogadása."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"A fiók regisztrálása sikertelen: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); próbálja újra később"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"A fiók regisztrálása nem sikerült: a felhasználónév vagy a jelszó helytelen."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"A fiók regisztrálása nem sikerült: ellenőrizze a szerver nevét."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Ezt a fiókot jelenleg a(z) <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> alkalmazás használja."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP-fiók részletei"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP-fiók részletei"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Szerver"</string>
-    <string name="username_title" msgid="298416796886107970">"Felhasználónév"</string>
-    <string name="password_title" msgid="8035579335591959021">"Jelszó"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Megjelenítendő név"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Kimenő proxy címe"</string>
-    <string name="port_title" msgid="1703586046264385110">"Port száma"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Átvitel típusa"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Kapcsolat megtartása"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"További beállítások"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Azonosításhoz használt felhasználónév"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Azonosításhoz használt felhasználónév"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Nincs megadva&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Nincs megadva&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Nincs megadva&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Ugyanaz, mint a felhasználónév&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Nem kötelező&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Érintse meg az összes megjelenítéséhez"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Érintse meg az összes elrejtéséhez"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Adja meg az új SIP-fiók részleteit."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> megadása kötelező, nem maradhat üresen."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"A port számának 1000 és 65534 között kell lennie."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP-hívás indításához előbb ellenőrizze az internetkapcsolatát."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP-hívás használatához csatlakoznia kell egy Wi-Fi-hálózathoz (használja a Vezeték nélküli és egyéb hálózatok menü beállításait)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"A SIP-hívás nem támogatott"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatikus"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Mindig küldjön"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Beépített SIP-hívás"</string>
-</resources>
diff --git a/sip/res/values-hy/strings.xml b/sip/res/values-hy/strings.xml
deleted file mode 100644
index ed4c708..0000000
--- a/sip/res/values-hy/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"Ընդունել մուտքային զանգեր"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Ավելի արագ է սպառում մարտկոցի լիցքը"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Զանգ SIP-ի միջոցով"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Զանգ SIP-ի միջոցով (միայն Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"Հեռացնել հաշիվը"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP հաշիվներ"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Հաշիվը պահվում է..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Հաշիվը հեռացվում է..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Պահել"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Հրաժարվել"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Փակեք պրոֆիլը"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Լավ"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Փակել"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Ստուգվում է կարգավիճակը..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Գրանցում..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Սպասեք..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Զանգեր չեն ընդունվում:"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Հաշվի գրանցումը դադարեցվել է ինտերնետ կապի բացակայության պատճառով:"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Հաշվի գրանցումը դադարեցվել է, քանի որ չկա Wi-Fi կապ:"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Հաշվի գրանցումը ձախողվել է:"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Զանգերն ընդունվում են:"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Հաշվի գրանցումը ձախողվել է. (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>): Կփորձենք մի փոքր ուշ:"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Հաշվի գրանցումը ձախողվել է. սխալ օգտանուն կամ գաղտնաբառ:"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Հաշվի գրանցումը ձախողվել է: Ստուգեք սերվերի անունը:"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Այս հաշիվը ներկայումս օգտագործվում է <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> ծրագրի կողմից:"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP հաշվի մանրամասները"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP հաշվի մանրամասները"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Սերվեր"</string>
-    <string name="username_title" msgid="298416796886107970">"Օգտանուն"</string>
-    <string name="password_title" msgid="8035579335591959021">"Գաղտնաբառ"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Ցուցադրվող անունը"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Պրոքսի-սերվերի հասցեն"</string>
-    <string name="port_title" msgid="1703586046264385110">"Միացքի համարը"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Հաղորդակարգ"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Ուղարկել keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Լրացուցիչ կարգավորումներ"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Նույնականացման օգտանուն"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Նույնականացման համար օգտագործվող օգտանունը"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Սահմանված չէ&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Սահմանված չէ&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Սահմանված չէ&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Նույնը, ինչ օգտանունը&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Պարտադիր չէ&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Հպեք՝ տեսնելու համար"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Հպեք՝ թաքցնելու ամենը"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Մուտքագրեք նոր SIP հաշվի տվյալները:"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>-ը պարտադիր է և չի կարող լինել դատարկ:"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Միացքի համարը պետք է լինի 1000-ի և 65534-ի սահմաններում:"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP-ի միջոցով զանգ կատարելու համար նախ ստուգեք ձեր համացանցի կապակցումը:"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP-ի միջոցով զանգեր կատարելու համար ձեզ անհրաժեշտ է կապակցվել Wi-Fi ցանցին (օգտագործեք Անլար կապի և Ցանցի կարգավորումները):"</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP-ի միջոցով զանգերը չեն աջակցվում"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Ավտոմատ"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Միշտ ուղարկել"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"SIP-ի միջոցով զանգերի ներկառուցված ծառայություն"</string>
-</resources>
diff --git a/sip/res/values-in/strings.xml b/sip/res/values-in/strings.xml
deleted file mode 100644
index 6c52a73..0000000
--- a/sip/res/values-in/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Setelan SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Akun SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Akun"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Terima panggilan masuk"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Menghabiskan lebih banyak daya baterai"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Gunakan panggilan SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Gunakan panggilan SIP (hanya di Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Untuk semua panggilan ketika jaringan data tersedia"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Hanya untuk panggilan SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Untuk semua panggilan"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Tambahkan akun"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Buang akun"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Akun SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Menyimpan akun..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Membuang akun..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Simpan"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Buang"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Tutup profil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Oke"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Tutup"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Memeriksa status..."</string>
-    <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 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>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Pendaftaran akun gagal: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); akan mencoba lagi nanti"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Pendaftaran akun gagal: Nama pengguna atau sandi salah."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Pendaftaran akun gagal: Periksa nama server."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Saat ini akun digunakan oleh aplikasi <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Detail akun SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Detail akun SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Nama pengguna"</string>
-    <string name="password_title" msgid="8035579335591959021">"Sandi"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Nama tampilan"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Alamat outbound proxy"</string>
-    <string name="port_title" msgid="1703586046264385110">"Nomor port"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Jenis transport"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Kirim keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Setelan opsional"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Nama pengguna autentikasi"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Nama pengguna yang digunakan untuk autentikasi"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Tidak disetel&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Tidak disetel&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Tidak disetel&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Sama dengan nama pengguna&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Opsional&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Sentuh untuk menampilkan semua"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Sentuh untuk menyembunyikan semua"</string>
-    <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 koneksi internet terlebih dahulu."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Anda harus terhubung 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>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Selalu kirim"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Panggilan SIP built-in"</string>
-</resources>
diff --git a/sip/res/values-is/strings.xml b/sip/res/values-is/strings.xml
deleted file mode 100644
index 2a655d0..0000000
--- a/sip/res/values-is/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP-stillingar"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP-reikningar"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Reikningar"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Svara símtölum"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Notar meiri rafhlöðuorku"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Nota SIP-hringingar"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Nota SIP-hringingar (eingöngu Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Fyrir öll símtöl þegar gagnanet er tiltækt"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Aðeins fyrir SIP-símtöl"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Fyrir öll símtöl"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Bæta reikningi við"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Fjarlægja reikning"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP-reikningar"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Vistar reikninginn…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Fjarlægir reikninginn…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Vista"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Fleygja"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Loka sniðinu"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Í lagi"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Loka"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Athugar stöðu..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Skráir…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Enn að reyna…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Tekur ekki við símtölum."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Reikningsskráning var stöðvuð því engin nettenging er til staðar."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Reikningsskráning var stöðvuð því engin Wi-Fi tenging er til staðar."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Reikningsskráning mistókst."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Tekur við símtölum."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Ekki tókst að skrá reikninginn (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); reynt verður aftur síðar"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Reikningsskráning tókst ekki. Rangt notandanafn eða aðgangsorð."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Reikningsskráning mistókst. Athugaðu þjónsheitið."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Forritið <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> er að nota þennan reikning eins og er."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP-reikningsupplýsingar"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP-reikningsupplýsingar"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Netþjónn"</string>
-    <string name="username_title" msgid="298416796886107970">"Notandanafn"</string>
-    <string name="password_title" msgid="8035579335591959021">"Aðgangsorð"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Skjánafn"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Vistfang proxy-þjóns á útleið"</string>
-    <string name="port_title" msgid="1703586046264385110">"Númer gáttar"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Flutningsgerð"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Halda tengingu opinni"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Valfrjálsar stillingar"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Notandanafn til auðkenningar"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Notandanafn notað til auðkenningar"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Ekki valið&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Ekki valið&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Ekki valið&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Sama og notandanafnið&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Valfrjálst&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Snertu til að sýna allt"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Snertu til að fela allt"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Sláðu inn upplýsingar um nýjan SIP-reikning."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> er áskilið og má ekki vera autt."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Númer gáttar á að vera milli 1000 og 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Til að hringja SIP-símtal skaltu fyrst athuga nettenginguna þína."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Þú þarft að tengjast Wi-Fi neti til að hringja SIP-símtöl (notaðu stillingar þráðlauss nets og símkerfa)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP-símtöl ekki studd"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Sjálfvirkt"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Senda alltaf"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Innbyggð SIP-símtöl"</string>
-</resources>
diff --git a/sip/res/values-it/strings.xml b/sip/res/values-it/strings.xml
deleted file mode 100644
index ffb90c2..0000000
--- a/sip/res/values-it/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Impostazioni SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Account SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Account"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Ricevi chiamate in arrivo"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Consuma più batteria"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Utilizza chiamate SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Utilizza chiamate SIP (solo Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Per tutte le chiamate quando è disponibile la rete dati"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Solo per chiamate SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Per tutte le chiamate"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Aggiungi account"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Rimuovi account"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Account SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Salvataggio dell\'account..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Rimozione dell\'account..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Salva"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Annulla"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Chiudi il profilo"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Chiudi"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Controllo stato..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registrazione..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Tentativo ancora in corso..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Ricezione chiamate non attiva."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Registrazione account interrotta per mancanza di collegamento Internet."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Registrazione account interrotta per mancanza di connessione Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Registrazione account non riuscita."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Ricezione chiamate attiva."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Registrazione account non riuscita: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); più tardi verrà eseguito un nuovo tentativo"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Registrazione account non riuscita: password o nome utente errato."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Registrazione account non riuscita: verifica il nome del server."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Questo account è attualmente utilizzato dall\'applicazione <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Dettagli account SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Dettagli account SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Nome utente"</string>
-    <string name="password_title" msgid="8035579335591959021">"Password"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Nome visualizzato"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Indirizzo proxy in uscita"</string>
-    <string name="port_title" msgid="1703586046264385110">"Numero porta"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Tipo trasporto"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Invia keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Impostazioni facoltative"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Nome utente per autenticazione"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Nome utente utilizzato per l\'autenticazione"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Non impostato&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Non impostata&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Non impostato&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Uguale al nome utente&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Facoltativo&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Tocca per mostrare tutto"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Tocca per nascondere tutto"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Inserisci i dati del nuovo account SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> è obbligatorio e non può essere lasciato vuoto."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Il numero della porta deve essere compreso tra 1000 e 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Per effettuare una chiamata SIP, verifica prima la connessione Internet."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Devi essere connesso a una rete Wi-Fi per le chiamate SIP (utilizza le impostazioni wireless e della rete)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Chiamate SIP non supportate"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatico"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Invia sempre"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Chiamate SIP incorporate"</string>
-</resources>
diff --git a/sip/res/values-iw/strings.xml b/sip/res/values-iw/strings.xml
deleted file mode 100644
index 34b1b20..0000000
--- a/sip/res/values-iw/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"קבלת שיחות נכנסות"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"צריכת הסוללה גבוהה יותר"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"‏שימוש בשיחות SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"‏שימוש בשיחות SIP ‏(Wi-Fi בלבד)‏"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"הסרת חשבון"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"‏חשבונות SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"שמירת החשבון מתבצעת..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"הסרת החשבון מתבצעת..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"שמירה"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"מחיקה"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"סגירת הפרופיל"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"אישור"</string>
-    <string name="close_profile" msgid="3756064641769751774">"סגירה"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"בדיקת המצב מתבצעת..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"הרישום מתבצע..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"הניסיון מתבצע..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"לא מקבל שיחות."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"רישום החשבון הופסק כיוון שאין חיבור לאינטרנט."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"‏רישום החשבון הופסק כיוון שאין חיבור Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"רישום החשבון נכשל."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"קבלת שיחות."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"רישום החשבון נכשל: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); ניסיון חוזר יבוצע מאוחר יותר"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"רישום החשבון נכשל: שם המשתמש או הסיסמה שגויים."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"רישום החשבון נכשל: יש לבדוק את שם השרת."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"האפליקציה <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> משתמשת כרגע בחשבון הזה."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"‏פרטי חשבון SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"‏פרטי חשבון SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"שרת"</string>
-    <string name="username_title" msgid="298416796886107970">"שם משתמש"</string>
-    <string name="password_title" msgid="8035579335591959021">"סיסמה"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"שם תצוגה"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"‏כתובת שרת Proxy יוצא"</string>
-    <string name="port_title" msgid="1703586046264385110">"מספר יציאה"</string>
-    <string name="transport_title" msgid="1661659138226029178">"סוג העברה"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"שליחת אות חיבור"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"הגדרות אופציונליות"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"שם משתמש לאימות"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"שם משתמש המשמש לאימות"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"‏&lt;לא מוגדר&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"‏&lt;לא מוגדרת&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;לא מוגדר&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"‏&lt;זהה לשם משתמש&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"‏&lt;אופציונלי&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"איפה כל ההגדרות?"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ יש לגעת כדי להסתיר את הכול"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"‏יש להזין את פרטי חשבון ה-SIP החדש."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> הוא שדה חובה ולא ניתן להשאיר אותו ריק."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"מספר היציאה צריך להיות בין 1000 ל-65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"‏כדי לבצע שיחת SIP, ראשית יש לבדוק את חיבור האינטרנט שלך."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"‏יש צורך בחיבור לרשת Wi-Fi כדי לבצע שיחות SIP (יש להשתמש ב\'הגדרות רשת ותקשורת אלחוטית\')."</string>
-    <string name="no_voip" msgid="3366395789297981738">"‏שיחות SIP לא נתמכות"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"אוטומטי"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"שליחה תמיד"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"‏שיחות SIP מובנות"</string>
-</resources>
diff --git a/sip/res/values-ja/strings.xml b/sip/res/values-ja/strings.xml
deleted file mode 100644
index 6128a53..0000000
--- a/sip/res/values-ja/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"着信を受ける"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"電池の使用量が増加"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP通話の使用"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP通話の使用（Wi-Fiのみ）"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"アカウントの削除"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIPアカウント"</string>
-    <string name="saving_account" msgid="3390358043846687266">"アカウントを保存しています…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"アカウントを削除しています…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"保存"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"破棄"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"プロファイルを閉じる"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"閉じる"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"ステータスを確認しています..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"登録しています…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"試行しています…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"通話着信OFF"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"インターネットに接続されていないため、アカウント登録処理が中断されました。"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Wi-Fi接続されていないため、アカウントの登録を中断しました。"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"アカウントを登録できませんでした。"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"通話着信ON"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"アカウントを登録できませんでした（<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>）。後ほど再試行します。"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"アカウントを登録できませんでした: ユーザー名かパスワードが正しくありません。"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"アカウントを登録できませんでした: サーバー名を確認してください。"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"このアカウントは現在「<xliff:g id="ACCOUNT_OWNER">%s</xliff:g>」アプリで使用されています。"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIPアカウントの詳細"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIPアカウントの詳細"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"サーバー"</string>
-    <string name="username_title" msgid="298416796886107970">"ユーザー名"</string>
-    <string name="password_title" msgid="8035579335591959021">"パスワード"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"表示名"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"発信プロキシアドレス"</string>
-    <string name="port_title" msgid="1703586046264385110">"ポート番号"</string>
-    <string name="transport_title" msgid="1661659138226029178">"伝送方式"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"キープアライブを送信する"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"オプション設定"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"認証ユーザー名"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"認証に使用するユーザー名"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;未設定&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;未設定&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;未設定&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;ユーザー名と同じ&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;オプション&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷タップしてすべて表示"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽すべて非表示"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"新しいSIPアカウントの詳細情報を入力してください。"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"「<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>」は必須です。空欄にはできません。"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"ポート番号は1000～65534で指定してください。"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP通話を発信する前に、インターネット接続を確認してください。"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP通話をするにはWi-Fネットワークに接続する必要があります（[無線とネットワーク]で設定）。"</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP通話はサポートされていません"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"自動"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"常に送信"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"内蔵SIP通話機能"</string>
-</resources>
diff --git a/sip/res/values-ka/strings.xml b/sip/res/values-ka/strings.xml
deleted file mode 100644
index b2ac66f..0000000
--- a/sip/res/values-ka/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"შემომავალი ზარების მიღება"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"იყენებს ბატარეის მეტ ენერგიას"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP დარეკვის გამოყენება"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP დარეკვის გამოყენება (მხოლოდ Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"ანგარიშის წაშლა"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP ანგარიშები"</string>
-    <string name="saving_account" msgid="3390358043846687266">"ანგარიშის შენახვა…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"მიმდინარეობს ანგარიშის ამოშლა…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"შენახვა"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"გაუქმება"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"პროფილის დახურვა"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"კარგი"</string>
-    <string name="close_profile" msgid="3756064641769751774">"დახურვა"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"სტატუსის შემოწმება..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"მიმდინარეობს რეგისტრაცია…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"ხელახალი მცდელობა…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"ზარების მიღება არ ხორციელდება."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"ანგარიშის რეგისტრაცია შეჩერდა, რადგან ინტერნეტ-კავშირი არ არის."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"ანგარიშის რეგისტრაცია შეჩერდა, რადგან Wi-Fi კავშირი არ არის."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"ანგარიშის რეგისტრაცია ვერ განხორციელდა."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"იღებს ზარებს."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"ანგარიშის რეგისტრაცია ვერ განხორციელდა: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); მოგვიანებით შევეცდებით"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"ანგარიშის რეგისტრაცია ვერ განხორციელდა: მომხმარებლის სახელი ან პაროლი არასწორია."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"ანგარიშის რეგისტრაცია ვერ განხორციელდა: გადაამოწმეთ სერვერის სახელი."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"ანგარიში ამჟამად გამოიყენება <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> აპის მიერ."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP ანგარიშის დეტალები"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP ანგარიშის დეტალები"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"სერვერი"</string>
-    <string name="username_title" msgid="298416796886107970">"მომხმარებლის სახელი"</string>
-    <string name="password_title" msgid="8035579335591959021">"პაროლი"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"ნაჩვენები სახელი"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"გამავალი პროქსის მისამართი"</string>
-    <string name="port_title" msgid="1703586046264385110">"პორტის ნომერი"</string>
-    <string name="transport_title" msgid="1661659138226029178">"ტრანსპორტირების ტიპი"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"keep-alive-ის გაგზავნა"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"არასავალდებულო პარამეტრები"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"ავტორიზაციის მომხმარებლის სახელი"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"ავტორიზაციისათვის გამოყენებული მომხმარებლის სახელი"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;არ არის დაყენებული&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;არ არის დაყენებული&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;არ არის დაყენებული&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;იგივეა, რაც მომხმარებლის სახელი&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;სურვილისამებრ&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ შეეხეთ ყველას საჩვენებლად"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ შეეხეთ ყველას დასამალად"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"შეიყვანეთ თქვენი ახალი SIP ანგარიშის დეტალები."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> აუცილებელია და ცარიელი ვერ დარჩება."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"პორტის ნომერი უნდა იყოს 1000 – 65534 არეალში."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP ზარის განხორციელებისათვის, პირველ რიგში შეამოწმეთ თქვენი ინტერნეტ კავშირი."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP ზარებისათვის, დაკავშირებული უნდა იყოთ Wi-Fi ქსელთან (გამოიყენეთ უკაბელო &amp; amp; ქსელის პარამეტრები)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP დარეკვა არ არის მხარდაჭერილი"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"ავტომატური"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"მუდამ გაგზავნა"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"ჩაშენებული SIP ზარში"</string>
-</resources>
diff --git a/sip/res/values-kk/strings.xml b/sip/res/values-kk/strings.xml
deleted file mode 100644
index 2f90a2a..0000000
--- a/sip/res/values-kk/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"Кіріс қоңырауларды қабылдау"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Көбірек батарея қуатын пайдаланады"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP қызметін пайдалану"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP қоңырауларын пайдалану (тек Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"Аккаунтты жою"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP аккаунттары"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Аккаунт сақталуда…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Аккаунт жойылуда…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Сақтау"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Алып тастау"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Профильді жабу"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Жарайды"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Жабу"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Күй тексерілуде…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Тіркелуде…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Әлі әрекеттенуде…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Қоңыраулар қабылданып жатқан жоқ."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Аккаунтты тіркеу тоқтатылды, себебі интернет байланысы жоқ."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Аккаунтты тіркеу тоқтатылды, себебі Wi-Fi байланысы жоқ."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Аккаунт тіркеу сәтсіз аяқталды."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Қоңыраулар қабылдануда."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Аккаунтты тіркеу сәтсіз аяқталды: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); әрекет кейінірек қайталанады"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Аккаунтты тіркеу сәтсіз аяқталды: Пайдаланушы аты немесе құпия сөз қате."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Аккаунт тіркеу сәтсіз аяқталды: Сервер атауын тексеріңіз."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Бұл аккаунтты қазіргі уақытта <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> қолданбасы пайдалануда."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP аккаунты туралы мәліметтер"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP аккаунты туралы мәліметтер"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Сервер"</string>
-    <string name="username_title" msgid="298416796886107970">"Пайдаланушы аты"</string>
-    <string name="password_title" msgid="8035579335591959021">"Құпия сөз"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Көрсетілетін ат"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Шығыс прокси мекенжайы"</string>
-    <string name="port_title" msgid="1703586046264385110">"Порт нөмірі"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Тасымалдау түрі"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Keep-alive жіберу"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Қосымша параметрлер"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Аутентификациялау пайдаланушы аты"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Аутентификациялау үшін пайдаланылатын пайдаланушы аты"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Орнатылмаған&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Орнатылмаған&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Орнатылмаған&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Пайдаланушы атымен бірдей&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Міндетті емес&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Барлығын көрсету үшін түрту"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Барлығын жасыру үшін түрту"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Жаңа SIP аккаунтының мәліметтерін енгізіңіз."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> міндетті және оны бос қалдыруға болмайды."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Порт нөмірі 1000 және 65534 аралығында болуы керек."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP қоңырауын шалу үшін алдымен интернет қосылымын тексеріңіз."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP қоңыраулары үшін Wi-Fi желісіне қосылған болуы керек («Сымсыз желі және желі параметрлері» тармағын пайдаланыңыз)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP қоңырауларына қолдау көрсетілмейді"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Aвтоматты"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Әрқашан жіберу"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Кірістірілген SIP қоңыраулары"</string>
-</resources>
diff --git a/sip/res/values-km/strings.xml b/sip/res/values-km/strings.xml
deleted file mode 100644
index f6ef5ab..0000000
--- a/sip/res/values-km/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"ទទួល​ការ​ហៅ​ចូល"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"ប្រើថាមពលថ្មច្រើនថែមទៀត"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"ប្រើការហៅ SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"ប្រើការហៅ SIP (Wi-Fi តែប៉ុណ្ណោះ)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"លុប​គណនី​​"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"គណនី SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"កំពុង​រក្សាទុក​គណនី…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"កំពុង​លុប​គណនី…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"រក្សាទុក"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"បោះបង់"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"បិទ​​ប្រវត្តិរូប"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"យល់ព្រម"</string>
-    <string name="close_profile" msgid="3756064641769751774">"បិទ"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"កំពុង​ពិនិត្យ​​​ស្ថានភាព​..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"កំពុង​ចុះឈ្មោះ…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"នៅតែ​ព្យាយាម…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"មិន​ទទួល​​ការ​ហៅ។"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"បាន​បញ្ឈប់​ការ​ចុះឈ្មោះ​គណនី ពីព្រោះ​​គ្មាន​ការ​ភ្ជាប់​អ៊ីនធឺណិត​។"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"បាន​បញ្ឈប់​ការ​ចុះឈ្មោះ​គណនី ពី​ព្រោះ​គ្មាន​ការ​​ភ្ជាប់​វ៉ាយហ្វាយ។"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"បាន​បរាជ័យ​ការ​ចុះឈ្មោះ​គណនី។"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"ទទួល​ការ​ហៅ។"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"បាន​បរាជ័យ​ការ​ចុះឈ្មោះ​គណនី​៖ ( <xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g> )​; នឹង​ព្យាយាម​នៅ​ពេល​ក្រោយ"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"បាន​បរាជ័យ​ការ​ចុះឈ្មោះ​គណនី៖ ឈ្មោះ​អ្នកប្រើ ​ឬ​ពាក្យសម្ងាត់​មិន​ត្រឹមត្រូវ។"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"បាន​បរាជ័យ​ការ​ចុះឈ្មោះ​គណនី៖ សូម​ពិនិត្យ​​ឈ្មោះ​ម៉ាស៊ីន​មេ។"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"បច្ចុប្បន្ន​គណនី​​នេះ​កំពុង​ប្រើ​ដោយ​កម្មវិធី  <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> ។"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"ព័ត៌មាន​​លម្អិត​គណនី​ SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"ព័ត៌មាន​លម្អិត​គណនី​ SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"ម៉ាស៊ីន​មេ"</string>
-    <string name="username_title" msgid="298416796886107970">"ឈ្មោះ​អ្នកប្រើ"</string>
-    <string name="password_title" msgid="8035579335591959021">"ពាក្យសម្ងាត់"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"​ឈ្មោះដែល​បង្ហាញ"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"អាសយដ្ឋាន​ប្រូកស៊ី​ចេញ"</string>
-    <string name="port_title" msgid="1703586046264385110">"លេខ​ច្រក"</string>
-    <string name="transport_title" msgid="1661659138226029178">"ប្រភេទ​បញ្ជូន"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"​ផ្ញើសារពិនិត្យបន្ត"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"ការ​កំណត់​​ជា​​ជម្រើស"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"ឈ្មោះ​អ្នកប្រើ​​ប្រាស់​សម្រាប់​​ផ្ទៀងផ្ទាត់"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"ឈ្មោះ​អ្នកប្រើប្រាស់​ដែលបាន​ប្រើ​សម្រាប់​​​ផ្ទៀងផ្ទាត់"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;មិន​បាន​កំណត់&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;មិន​បាន​កំណត់&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;មិន​បាន​កំណត់&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;ដូច​ឈ្មោះ​អ្នកប្រើ&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;ជា​ជម្រើស&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ ចុចដើម្បី​បង្ហាញ​ទាំងអស់"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ ចុចដើម្បី​លាក់​ទាំងអស់"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"បញ្ចូលព័ត៌មានលម្អិតអំពីគណនី SIP ថ្មី"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"មិន​​អាច​ទុក​ឲ្យ​នៅ​ទទេ និង​បាន​ទាមទារ <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ។"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"លេខ​ច្រក​គួរតែ​នៅ​ចន្លោះ ១០០០ និង ៦៥៥៣៤។"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"ដើម្បីដាក់ការហៅ SIP ពិនិត្យការភ្ជាប់អ៊ីនធឺណិតរបស់អ្នកជាមុនសិន។"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"អ្នកត្រូវភ្ជាប់ទៅបណ្តាញ Wi-Fi សម្រាប់ការហៅ SIP (ប្រើការកំណត់បណ្តាញឥតខ្សែ)។"</string>
-    <string name="no_voip" msgid="3366395789297981738">"ការហៅ SIP មិនត្រូវបានគាំទ្រទេ"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"ស្វ័យប្រវត្តិ"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"ផ្ញើ​ជានិច្ច"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"ភ្ជាប់មកជាមួយការហៅ SIP"</string>
-</resources>
diff --git a/sip/res/values-kn/strings.xml b/sip/res/values-kn/strings.xml
deleted file mode 100644
index 99fe93e..0000000
--- a/sip/res/values-kn/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"ಎಸ್‌ಐಪಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"ಎಸ್‌ಐಪಿ ಖಾತೆಗಳು"</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">"ಎಸ್‌ಐಪಿ ಕರೆ ಮಾಡುವಿಕೆಯನ್ನು ಬಳಸಿ"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"ಎಸ್‌ಐಪಿ ಕರೆ ಮಾಡುವಿಕೆಯನ್ನು ಬಳಸಿ (ವೈ-ಫೈ ಮಾತ್ರ)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"ಡೇಟಾ ನೆಟ್‌ವರ್ಕ್‌ ಲಭ್ಯವಿರುವಾಗ ಎಲ್ಲ ಕರೆಗಳಿಗಾಗಿ"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"ಕೇವಲ ಎಸ್‌ಐಪಿ ಕರೆಗಳಿಗೆ ಮಾತ್ರ"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"ಎಲ್ಲ ಕರೆಗಳಿಗಾಗಿ"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"ಖಾತೆ ಸೇರಿಸಿ"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"ಖಾತೆಯನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"ಎಸ್‌ಐಪಿ ಖಾತೆಗಳು"</string>
-    <string name="saving_account" msgid="3390358043846687266">"ಖಾತೆಯನ್ನು ಉಳಿಸಲಾಗುತ್ತಿದೆ…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"ಖಾತೆಯನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತಿದೆ…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"ಉಳಿಸು"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"ತಿರಸ್ಕರಿಸು"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"ಪ್ರೊಫೈಲ್ ಮುಚ್ಚಿ"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ಸರಿ"</string>
-    <string name="close_profile" msgid="3756064641769751774">"ಮುಚ್ಚು"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"ಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"ನೋಂದಣಿ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"ಇನ್ನೂ ಪ್ರಯತ್ನಿಸಲಾಗುತ್ತಿದೆ…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"ಕರೆಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತಿಲ್ಲ."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವಿಲ್ಲದ ಕಾರಣ ಖಾತೆ ನೋಂದಣಿಯನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"ವೈ-ಫೈ ಸಂಪರ್ಕವಿಲ್ಲದ ಕಾರಣ ಖಾತೆ ನೋಂದಣಿಯನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"ಖಾತೆ ನೋಂದಣಿಯು ಯಶಸ್ವಿಯಾಗಲಿಲ್ಲ."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"ಕರೆಗಳನ್ನು ಸ್ವೀಕರಿಸಲಾಗುತ್ತಿದೆ."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"ಖಾತೆ ನೋಂದಣಿಯು ಯಶಸ್ವಿಯಾಗಿಲ್ಲ: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); ನಂತರ ಪ್ರಯತ್ನಿಸುತ್ತೇನೆ"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"ಖಾತೆ ನೋಂದಣಿಯು ಯಶಸ್ವಿಯಾಗಲಿಲ್ಲ: ಬಳಕೆದಾರರ ಹೆಸರು ಅಥವಾ ಪಾಸ್‌ವರ್ಡ್‌ ತಪ್ಪಾಗಿದೆ."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"ಖಾತೆ ನೋಂದಣಿಯು ಯಶಸ್ವಿಯಾಗಲಿಲ್ಲ: ಸರ್ವರ್‌ ಹೆಸರನ್ನು ಪರಿಶೀಲಿಸಿ."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"ಈ ಖಾತೆಯನ್ನು ಪ್ರಸ್ತುತ <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> ಅಪ್ಲಿಕೇಶನ್‌ ಬಳಸುತ್ತಿದೆ."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"ಎಸ್‌ಐಪಿ ಖಾತೆ ವಿವರಗಳು"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"ಎಸ್‌ಐಪಿ ಖಾತೆ ವಿವರಗಳು"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"ಸರ್ವರ್"</string>
-    <string name="username_title" msgid="298416796886107970">"ಬಳಕೆದಾರಹೆಸರು"</string>
-    <string name="password_title" msgid="8035579335591959021">"ಪಾಸ್‌ವರ್ಡ್"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"ಪ್ರದರ್ಶನ ಹೆಸರು"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"ಹೊರಹೋಗುವ ಪ್ರಾಕ್ಸಿ ವಿಳಾಸ"</string>
-    <string name="port_title" msgid="1703586046264385110">"ಪೋರ್ಟ್ ಸಂಖ್ಯೆ"</string>
-    <string name="transport_title" msgid="1661659138226029178">"ಸಾರಿಗೆ ಪ್ರಕಾರ"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"ಕೀಪ್‍‍‍‍-‍ಅಲೈವ್ ಅನ್ನು ಕಳುಹಿಸಿ"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"ಐಚ್ಛಿಕ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"ದೃಢೀಕರಣ ಬಳಕೆದಾರಹೆಸರು"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"ದೃಢೀಕರಣಕ್ಕಾಗಿ ಬಳಕೆದಾರ ಹೆಸರನ್ನು ಬಳಸಲಾಗಿದೆ"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;ಹೊಂದಿಸಿಲ್ಲ&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;ಹೊಂದಿಸಿಲ್ಲ&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;ಹೊಂದಿಸಿಲ್ಲ&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;ಬಳಕೆದಾರ ಹೆಸರಿನಂತೆ&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;ಐಚ್ಛಿಕ&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ ಎಲ್ಲವನ್ನೂ ತೋರಿಸಲು ಸ್ಪರ್ಶಿಸಿ"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ ಎಲ್ಲವನ್ನೂ ಮರೆಮಾಡಲು ಸ್ಪರ್ಶಿಸಿ"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"ಹೊಸ ಎಸ್‌ಐಪಿ ಖಾತೆಯ ವಿವರಗಳನ್ನು ನಮೂದಿಸಿ."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ಅಗತ್ಯವಿದೆ ಮತ್ತು ಖಾಲಿ ಬಿಡುವಂತಿಲ್ಲ."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"ಪೋರ್ಟ್‌ ಸಂಖ್ಯೆಯು 1000 ಮತ್ತು 65534 ರ ವ್ಯಾಪ್ತಿಯೊಳಗಿರಬೇಕು."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"ಎಸ್‌ಐಪಿ ಕರೆ ಮಾಡಲು, ಮೊದಲು ನಿಮ್ಮ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"ಎಸ್‌ಐಪಿ ಕರೆಗಳಿಗಾಗಿ ನೀವು ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಗೊಂಡಿರುವ ಅಗತ್ಯವಿದೆ (ವೈರ್‌ಲೆಸ್ &amp; ನೆಟ್‌ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬಳಸಿ)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"ಎಸ್‌ಐಪಿ ಕರೆ ಮಾಡುವಿಕೆ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"ಸ್ವಯಂಚಾಲಿತ"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"ಯಾವಾಗಲೂ ಕಳುಹಿಸು"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"ಅಂತರ್ನಿರ್ಮಿತ ಎಸ್‌ಐಪಿ ಕರೆ ಮಾಡುವಿಕೆ"</string>
-</resources>
diff --git a/sip/res/values-ko/strings.xml b/sip/res/values-ko/strings.xml
deleted file mode 100644
index bf41537..0000000
--- a/sip/res/values-ko/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"수신전화 받기"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"배터리가 더 많이 소모됨"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP 통화 사용"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP 통화 사용(Wi-Fi 전용)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"계정 삭제"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP 계정"</string>
-    <string name="saving_account" msgid="3390358043846687266">"계정 저장 중..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"계정 삭제 중..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"저장"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"삭제"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"프로필 닫기"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"확인"</string>
-    <string name="close_profile" msgid="3756064641769751774">"닫기"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"상태 확인 중..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"등록 중..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"계속 시도 중..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"전화를 수신하지 않습니다."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"인터넷에 연결되어 있지 않기 때문에 계정 등록이 중지되었습니다."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Wi-Fi에 연결되어 있지 않기 때문에 계정 등록이 중지되었습니다."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"계정을 등록하지 못했습니다."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"전화를 수신합니다."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"계정을 등록하지 못했습니다(<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). 나중에 다시 시도합니다."</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"계정을 등록하지 못했습니다. 사용자 이름 또는 비밀번호가 잘못되었습니다."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"계정을 등록하지 못했습니다. 서버 이름을 확인하세요."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"<xliff:g id="ACCOUNT_OWNER">%s</xliff:g> 앱에서 현재 이 계정을 사용 중입니다."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP 계정 정보"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP 계정 정보"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"서버"</string>
-    <string name="username_title" msgid="298416796886107970">"사용자 이름"</string>
-    <string name="password_title" msgid="8035579335591959021">"비밀번호"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"표시 이름"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"발신 프록시 주소"</string>
-    <string name="port_title" msgid="1703586046264385110">"포트 번호"</string>
-    <string name="transport_title" msgid="1661659138226029178">"전송 유형"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"연결 유지 메시지 보내기"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"설정(선택사항)"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"인증 사용자 이름"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"인증에 사용된 사용자 이름"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;설정 안됨&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;설정 안됨&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;설정 안됨&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;사용자 이름과 동일&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;선택사항&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ 모두 표시하려면 터치"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ 모두 숨기려면 터치"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"새 SIP 계정의 세부정보를 입력하세요."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>은(는) 필수이므로 비워 둘 수 없습니다."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"포트 번호는 1000~65534 사이여야 합니다."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP 통화를 하려면 먼저 인터넷 연결을 확인하세요."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP 통화를 사용하려면 Wi-Fi 네트워크에 연결해야 합니다(무선 및 네트워크 설정 사용)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP 통화가 지원되지 않습니다."</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"자동"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"항상 보내기"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"SIP 통화 기본 지원"</string>
-</resources>
diff --git a/sip/res/values-ky/strings.xml b/sip/res/values-ky/strings.xml
deleted file mode 100644
index ab37d84..0000000
--- a/sip/res/values-ky/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"Келген чалууларды кабыл алуу"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Батареянын кубаты көбүрөөк керектелет"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP аркылуу чалуу"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP аркылуу чалуу (Wi-Fi гана)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"Аккаунтту өчүрүү"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP аккаунттары"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Аккаунт сакталууда…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Аккаунт жок кылынууда…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Сактоо"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Жокко чыгаруу"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Профилди жабуу"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Жабуу"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Абалы текшерилүүдө…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Катталууда…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Дагы эле аракет жасалууда…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Чалуулар кабыл алынбайт"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Интернет жок болгондуктан, эсепти каттоо аракети токтотулду."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Wi-Fi байланышы жок болгондуктан, эсепти каттоо аракети токтотулду."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Эсеп катталбай калды."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Чалуулар кабыл алынат."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Эсеп катталбай калды: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); бир аздан кийин дагы бир жолу аракет жасалат"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Эсеп катталбай калды: Колдонуучунун ысымы же сырсөзү туура эмес."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Эсеп катталбай калды. Сервердин аталышын текшериңиз."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Бул каттоэсепти учурда <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> колдонмосу пайдаланууда."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP аккаунтунун чоо-жайы"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP аккаунтунун чоо-жайы"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Сервер"</string>
-    <string name="username_title" msgid="298416796886107970">"Колдонуучу ысымы"</string>
-    <string name="password_title" msgid="8035579335591959021">"Сырсөз"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Экрандын аталышы"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Чыгуучу прокси дареги"</string>
-    <string name="port_title" msgid="1703586046264385110">"Порт номери"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Протокол"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Keep-alive жөнөтүү"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Кошумча жөндөөлөр"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Аныктыкты текшерүүчү колдонуучунун ысымы"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Колдонуучунун ысымы аныктыкты текшерүү үчүн колдонулат"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Коюлган эмес&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Коюлган эмес&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Коюлган эмес&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Колдонуучунун ысымына окшош&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Кошумча&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Баарын көрсөтүү үчүн тийип коюңуз"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Баарын жашыруу үчүн тийип коюңуз"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Жаңы SIP аккаунтунун чоо-жайын киргизиңиз."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> талап кылынат жана бош калтырганга болбойт."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Порттун номери 1000 баштап 65534 чейин болушу керек."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP чалуу жайгаштыруу үчүн, адегенде Интернет туташууңузду текшериңиз."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP чалууларын жасоо үчүн Wi-Fi тармагына туташышыңыз керек (Зымсыз &amp; Тармак жөндөөлөрүн пайдаланыңыз)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP чалуу колдоого алынбайт"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Автоматтык"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Ар дайым жөнөтүлсүн"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Камтылган SIP чалуу"</string>
-</resources>
diff --git a/sip/res/values-lo/strings.xml b/sip/res/values-lo/strings.xml
deleted file mode 100644
index 17e7905..0000000
--- a/sip/res/values-lo/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"ຮັບ​ສາຍ​ໂທ​ເຂົ້າ"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"ໃຊ້​ອາ​ຍຸ​ແບັດ​ເຕີ​ຣີ​ເພີ່ມ​ເຕີມ"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"ໃຊ້​ການ​ໂທ SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"ໃຊ້​ການ​ໂທ SIP (Wi-Fi ເທົ່າ​ນັ້ນ)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"ລຶບບັນຊີ"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"ບັນ​ຊີ SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"ກຳລັງບັນທຶກບັນຊີ..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"ກຳລັງລຶບບັນຊີ..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"ບັນທຶກ"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"ຍົກເລີກ"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"ປິດ​ໂປຣໄຟລ໌"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ຕົກລົງ"</string>
-    <string name="close_profile" msgid="3756064641769751774">"ປິດ"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"ກຳລັງ​ກວດສອບ​ສະຖານະ..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"ກຳລັງ​ລົງທະບຽນ..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"ຍັງຄົງພະຍາຍາມຢູ່..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"ບໍ່ຮັບສາຍ."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"ຢຸດ​ການ​ລົງທະບຽນ​ເນື່ອງຈາກບໍ່ມີ​ການເຊື່ອມຕໍ່​ອິນເຕີເນັດ."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"ການລົງ​ທະບຽນ​ບັນຊີຢຸດເຮັດວຽກ​ເນື່ອງຈາກ​ບໍ່ມີການ​ເຊື່ອມຕໍ່ Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"ການ​ລົງທະບຽນ​ບັນຊີ​ບໍ່ສຳເລັດ."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"ຮັບສາຍ."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"ການ​ລົງທະບຽນ​ບັນຊີ​ບໍ່ສຳເລັດ: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); ຈະ​ລອງ​ໃໝ່​ໃນ​ພາຍຫຼັງ"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"ການ​ລົງທະບຽນ​ບັນຊີ​ບໍ່ສຳເລັດ: ຊື່ຜູ້ໃຊ້ ຫຼື​ລະຫັດຜ່ານ​ບໍ່ຖືກຕ້ອງ."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"ການ​ລົງທະບຽນ​ບັນຊີ​ບໍ່​ສຳເລັດ: ກະລຸນາ​ກວດສອບ​ຊື່​ເຊີບເວີ."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"ແອັບຯ <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> ກຳລັງໃຊ້ບັນຊີນີ້ຢູ່"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"ລາຍລະອຽດບັນຊີ SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"ລາຍລະອຽດບັນຊີ SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"ເຊີບເວີ"</string>
-    <string name="username_title" msgid="298416796886107970">"ຊື່ຜູ້ໃຊ້"</string>
-    <string name="password_title" msgid="8035579335591959021">"ລະຫັດຜ່ານ"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"ຊື່ທີ່ສະແດງ"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"ທີ່ຢູ່ Proxy ຂາອອກ"</string>
-    <string name="port_title" msgid="1703586046264385110">"ໝາຍເລກຜອດ"</string>
-    <string name="transport_title" msgid="1661659138226029178">"ປະເພດການສົ່ງຂໍ້ມູນ"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"ສົ່ງ keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"ການ​ຕັ້ງ​ຄ່າທາງ​ເລືອກ​ເສີມ"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"ຊື່​ຜູ້ໃຊ້​ສຳລັບ​ການ​ພິສູດ​ຢືນຢັນ​ຕົວ"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"ຊື່​ຜູ້ໃຊ້​ເພື່ອ​ການ​ພິສູດ​ຢືນຢັນ​ຕົວ"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;ບໍ່ໄດ້ຕັ້ງ&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;ບໍ່ໄດ້ຕັ້ງ&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;ບໍ່ໄດ້ຕັ້ງ&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;ອັນດຽວກັບຊື່ຜູ້ໃຊ້&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;ໂຕເລືອກເສີມ&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ ແຕະ​ເພື່ອ​ສະແດງ​ທັງໝົດ"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ ແຕະ​ເພື່ອ​ເຊື່ອງ​ທັງໝົດ"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"ປ້ອນ​ລາຍ​ລະ​ອຽດ​ຂອງ​ບັນ​ຊີ SIP ໃໝ່​ເຂົ້າ​ໄປ."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"ຕ້ອງ​ລະບຸ <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ແລະ​ບໍ່​ສາມາດ​ປ່ອຍ​ຫວ່າງ​ໄດ້."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"ໝາຍ​ເລກ​ພອດ​ຄວນ​ຢູ່​ລະຫວ່າງ 1000 ແລະ 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"ເພື່ອ​ໃຊ້​ການ​ໂທ SIP, ກວດ​ເບິ່ງ​ການ​ເຊື່ອມ​ຕໍ່​ອິນ​ເຕີ​ເນັດ​ຂອງ​ທ່ານ​ກ່ອນ."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"ທ່ານ​ຈຳ​ເປັນ​ຕ້ອງ​ໄດ້​ເຊື່ອມ​ຕໍ່​ກັບ​ເຄືອ​ຂ່າຍ Wi-Fi ສຳ​ລັບ​ການ​ໂທ SIP (ໃຊ້​ການ​ຕັ້ງ​ຄ່າ​ເຄືອ​ຂ່າຍ​ຂອງ​ໄວ​ເລ​ສ)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"ການ​ໂທ SIP ບໍ່​ຮອງ​ຮັບ"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"ອັດຕະໂນມັດ"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"​ສົ່ງ​ຕະຫຼອດ"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"ການ​ໂທ SIP ໃນ​ເຄື່ອງ"</string>
-</resources>
diff --git a/sip/res/values-lt/strings.xml b/sip/res/values-lt/strings.xml
deleted file mode 100644
index 320d713..0000000
--- a/sip/res/values-lt/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP nustatymai"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP paskyros"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Paskyros"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Gauti gaunamuosius skambučius"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Eikvojama daugiau akumuliatoriaus energijos"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Naudoti SIP skambinimą"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Naudoti SIP skambinimą (tik „Wi-Fi“)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Visiems skambučiams atlikti, kai pasiekiamas duomenų tinklas"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Tik SIP skambučiams"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Visiems skambučiams atlikti"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Pridėti paskyrą"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Pašalinti paskyrą"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP paskyros"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Išsaugoma paskyra..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Pašalinama paskyra..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Išsaugoti"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Atmesti"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Uždaryti profilį"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Gerai"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Uždaryti"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Tikrinama būsena..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registruojama..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Vis dar bandoma..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Skambučiai negaunami."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Paskyros registracija sustabdyta, nes neprisijungta prie interneto."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Paskyros registracija sustabdyta, nes neprisijungta prie „Wi-Fi“."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Paskyros užregistruoti nepavyko."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Gaunami skambučiai."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Paskyros užregistruoti nepavyko: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); bus bandoma vėliau"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Paskyros užregistruoti nepavyko: netinkamas naudotojo vardas arba slaptažodis."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Paskyros užregistruoti nepavyko. Patikrinkite serverio pavadinimą."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Šią paskyrą dabar naudoja programa „<xliff:g id="ACCOUNT_OWNER">%s</xliff:g>“."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Išsami SIP paskyros informacija"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Išsami SIP paskyros informacija"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Serveris"</string>
-    <string name="username_title" msgid="298416796886107970">"Naudotojo vardas"</string>
-    <string name="password_title" msgid="8035579335591959021">"Slaptažodis"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Pateikiamas pavadinimas"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Išsiuntimo tarpinio serverio adresas"</string>
-    <string name="port_title" msgid="1703586046264385110">"Prievado numeris"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Transportavimo tipas"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Siųsti palaikymo pranešimus"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Pasirenkami nustatymai"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Tapatybės nustatymo naudotojo vardas"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Tapatybei nustatyti naudotas naudotojo vardas"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Nenustatyta&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Nenustatyta&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Nenustatyta&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Kaip naudotojo vardas&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Pasirenkama&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Jei norite viską parodyti, palieskite"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Jei norite viską paslėpti, palieskite"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Įveskite išsamią naujos SIP paskyros informaciją."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Lauke „<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>“ būtina nurodyti vertę – jis negali likti tuščias."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Prievado numeris turi būti nuo 1 000 iki 65 534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Kad atliktumėte SIP skambutį, pirmiausia patikrinkite interneto ryšį."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Kad galėtumėte atlikti SIP skambučius, turite būti prisijungę prie „Wi-Fi“ tinklo (naudokite „Belaidžio ryšio ir tinklo“ nustatymus)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP skambinimas nepalaikomas"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatinis"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Visada siųsti"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Integruotas SIP skambinimas"</string>
-</resources>
diff --git a/sip/res/values-lv/strings.xml b/sip/res/values-lv/strings.xml
deleted file mode 100644
index 851e701..0000000
--- a/sip/res/values-lv/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP iestatījumi"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP konti"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Konti"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Saņemt ienākošos zvanus"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Patērē vairāk akumulatora enerģijas"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP zvanu izmantošana"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP zvanu izmantošana (tikai Wi-Fi tīklā)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Visiem zvaniem, ja ir pieejams datu tīkls"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Tikai SIP zvaniem"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Visiem zvaniem"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Pievienot kontu"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Konta noņemšana"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP konti"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Notiek konta saglabāšana..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Notiek konta noņemšana..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Saglabāt"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Atmest"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Profila aizvēršana"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Labi"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Aizvērt"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Notiek statusa pārbaude..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Notiek reģistrācija..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Joprojām mēģina..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Zvani netiek saņemti"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Konta reģistrācija tika apturēta, jo nav interneta savienojuma."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Konta reģistrācija ir apturēta, jo nav Wi-Fi savienojuma."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Konta reģistrācija neizdevās."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Zvani tiek saņemti."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Konta reģistrācija neizdevās: <xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>; vēlāk tā tiks veikta atkārtoti."</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Konta reģistrācija neizdevās: nepareizs lietotājvārds vai parole."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Konta reģistrācija neizdevās: pārbaudiet servera nosaukumu."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Šis konts pašlaik tiek izmantots lietotnē <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Dati par SIP kontu"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Dati par SIP kontu"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Serveris"</string>
-    <string name="username_title" msgid="298416796886107970">"Lietotājvārds"</string>
-    <string name="password_title" msgid="8035579335591959021">"Parole"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Parādāmais nosaukums"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Izejošā starpniekservera adrese"</string>
-    <string name="port_title" msgid="1703586046264385110">"Porta numurs"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Protokols"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Saites darbības pārb. ziņ. sūtīšana"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Neobligāti iestatījumi"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Autentifikācijai izmantotais lietotājvārds"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Autentifikācijai izmantotais lietotājvārds"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Nav iestatīts&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Nav iestatīts&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Nav iestatīts&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Tāds pats kā lietotājvārds&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Neobligāti&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Pieskarieties, lai rādītu visu"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Pieskarieties, lai paslēptu visu"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Ievadiet jaunā SIP konta datus."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Lauks <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ir jāaizpilda obligāti; tas nedrīkst būt tukšs."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Porta numuram ir jābūt skaitlim no 1000 līdz 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Pirms veicat SIP zvanu, pārbaudiet interneta savienojumu."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Lai veiktu SIP zvanus, ir jāizmanto Wi-Fi tīkls (iestatījumi Bezvadu savienojumi un tīkli)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP zvani netiek atbalstīti"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automātiski"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Vienmēr sūtīt"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Iebūvēta SIP zvanu funkcija"</string>
-</resources>
diff --git a/sip/res/values-mk/strings.xml b/sip/res/values-mk/strings.xml
deleted file mode 100644
index f6b568a..0000000
--- a/sip/res/values-mk/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"Примај дојдовни повици"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Повеќе ја троши батеријата"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Користете повикување со SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Користете повикување со SIP (само преку Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"Отстрани сметка"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Сметки за SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Зачувување на сметката..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Сметката се отстранува..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Зачувај"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Отфрли"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Затвори го профилот"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Во ред"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Затвори"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Проверување статус..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Регистрирање..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Уште се обидува..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Не прима повици."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Регистрацијата на сметка се прекина затоа што нема интернет конекција."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Регистрацијата на сметка се прекина затоа што нема Wi-Fi конекција."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Регистрацијата на сметка е неуспешна."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Примање повици."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Регистрацијата на сметка е неуспешна: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); ќе се обиде подоцна"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Регистрацијата на сметка е неуспешна: неточно корисничко име или лозинка."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Регистрацијата на сметка е неуспешна: проверете го името на серверот."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Апликацијата на <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> ја употребува оваа сметка во моментов."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP-сметка"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP-сметка"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Сервер"</string>
-    <string name="username_title" msgid="298416796886107970">"Корисничко име"</string>
-    <string name="password_title" msgid="8035579335591959021">"Лозинка"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Име за приказ"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Излезна адреса на прокси"</string>
-    <string name="port_title" msgid="1703586046264385110">"Број на порта"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Вид на пренос"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Испрати „одржувај врска“"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Изборни поставки"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Корисничко име за автентикација"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Корисничко име што се користи за автентикација"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Не е поставено&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Не е поставено&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Не е поставено&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Исто како корисничкото име&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"Изборно"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Допрете за да се прикажат сите"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Допрете за да се сокријат сите"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Внесете ги деталите за новата сметка со SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Потребно е <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> и не може да се остави празно."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Бројот на портата треба да биде меѓу 1000 и 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"За да воспоставите повик со SIP, прво проверете ја интернет врската."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Треба да бидете поврзани со мрежа на Wi-Fi за повици со SIP (користете ги поставките за безжичен интернет и за мрежа)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Повици со SIP не се поддржани"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Автоматски"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Испраќај секогаш"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Вградено повикување со SIP"</string>
-</resources>
diff --git a/sip/res/values-ml/strings.xml b/sip/res/values-ml/strings.xml
deleted file mode 100644
index 63bb87c..0000000
--- a/sip/res/values-ml/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"ഇൻകമിംഗ് കോൾ സ്വീകരിക്കൂ"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"കൂടുതൽ ബാറ്ററി ഉപയോഗിക്കുന്നു"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP കോൾചെയ്യൽ ഉപയോഗിക്കുക"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP കോൾചെയ്യൽ ഉപയോഗിക്കുക (വൈഫൈ മാത്രം)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"അക്കൗണ്ട് നീക്കംചെയ്യുക"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP അക്കൗണ്ടുകൾ"</string>
-    <string name="saving_account" msgid="3390358043846687266">"അക്കൗണ്ട് സംരക്ഷിക്കുന്നു…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"അക്കൗണ്ട് നീക്കംചെയ്യുന്നു…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"സംരക്ഷിക്കൂ"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"നിരസിക്കൂ"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"പ്രൊഫൈൽ അടയ്‌ക്കുക"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ശരി"</string>
-    <string name="close_profile" msgid="3756064641769751774">"അടയ്‌ക്കുക"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"നില പരിശോധിക്കുന്നു..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"രജിസ്റ്റർ ചെയ്യുന്നു…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"ഇപ്പോഴും ശ്രമിക്കുന്നു…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"കോളുകൾ സ്വീകരിക്കുന്നില്ല."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"ഇന്റർനെറ്റ് കണക്ഷനില്ലാത്താതിനാൽ അക്കൗണ്ട് രജിസ്ട്രേഷൻ നിർത്തിവച്ചു."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"വൈഫൈ കണക്ഷനില്ലാത്താതിനാൽ അക്കൗണ്ട് രജിസ്ട്രേഷൻ നിർത്തിവച്ചു."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"അക്കൗണ്ട് രജിസ്ട്രേഷൻ പരാജയപ്പെട്ടു."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"കോളുകൾ സ്വീകരിക്കുന്നു."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"അക്കൗണ്ട് രജിസ്‌ട്രേഷൻ പരാജയപ്പെട്ടു: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); പിന്നീട് വീണ്ടും ശ്രമിക്കും"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"അക്കൗണ്ട് രജിസ്‌ട്രേഷൻ പരാജയപ്പെട്ടു. ഉപയോക്തൃനാമമോ പാസ്‌വേഡോ തെറ്റാണ്."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"അക്കൗണ്ട് രജിസ്ട്രേഷൻ പരാജയപ്പെട്ടു: സെർവറിന്റെ പേര് പരിശോധിക്കുക."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"ഈ അക്കൗണ്ട് നിലവിൽ <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> അപ്ലിക്കേഷൻ ഉപയോഗിക്കുന്നു."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP വിശദാംശം"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP വിശദാംശം"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"സെർവർ"</string>
-    <string name="username_title" msgid="298416796886107970">"ഉപയോക്തൃനാമം"</string>
-    <string name="password_title" msgid="8035579335591959021">"പാസ്‌വേഡ്"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"പ്രദർശിപ്പിക്കുന്ന പേര്"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"ഔട്ട്ബൗണ്ട് പ്രോക്സി വിലാസം"</string>
-    <string name="port_title" msgid="1703586046264385110">"പോർട്ട് നമ്പർ"</string>
-    <string name="transport_title" msgid="1661659138226029178">"ട്രാൻസ്‌പോർട്ട് തരം"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"\'സജീവമായി തുടരുക\'യെന്ന് അയയ്‌ക്കുക"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"ഓപ്‌ഷണൽ ക്രമീകരണങ്ങൾ"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"പരിശോധിച്ചുറപ്പിച്ച ഉപയോക്തൃനാമം"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"പരിശോധിച്ചുറപ്പിക്കാൻ ഉപയോഗിച്ച ഉപയോക്തൃനാമം"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;ക്രമീകരിച്ചിട്ടില്ല&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;ക്രമീകരിച്ചിട്ടില്ല&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;ക്രമീകരിച്ചിട്ടില്ല&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;ഉപയോക്തൃനാമത്തിന് സമാനം&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;ഓപ്‌ഷണൽ&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ എല്ലാം കാണിക്കാൻ സ്‌പർശിക്കുക"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ എല്ലാം മറയ്‌ക്കാൻ സ്‌പർശിക്കുക"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"പുതിയ SIP അക്കൗണ്ട് വിശദാംശങ്ങൾ നൽകുക."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ആവശ്യമായതിനാൽ ശൂന്യമായിടാനാകില്ല."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"പോർട്ട് നമ്പർ 1000, 65534 എന്നിവയ്‌ക്കിടയിലായിരിക്കണം."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP കോൾചെയ്യുന്നതിന്, ആദ്യം നിങ്ങളുടെ ഇന്റർനെറ്റ് കണക്ഷൻ പരിശോധിക്കുക."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP കോളുകൾക്കായി വൈഫൈ നെറ്റ്‌വർക്കിലേക്ക് കണക്‌റ്റുചെയ്യേണ്ടതുണ്ട് (വയർലെസ്, നെറ്റ്‌വർക്ക് ക്രമീകരണങ്ങൾ ഉപയോഗിക്കുക)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP കോൾചെയ്യൽ പിന്തുണയ്‌ക്കുന്നില്ല"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"സ്വയമേവ"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"എല്ലായ്പ്പോഴും അയയ്‌ക്കുക"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"അന്തർ നിർമ്മിത SIP കോൾചെയ്യൽ"</string>
-</resources>
diff --git a/sip/res/values-mn/strings.xml b/sip/res/values-mn/strings.xml
deleted file mode 100644
index 7460e2a..0000000
--- a/sip/res/values-mn/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"Ирж буй дуудлага хүлээж авах"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Илүү их цэнэг хэрэглэдэг"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP дуудлага ашиглах"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP дуудлага ашиглах (зөвхөн Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"Бүртгэлийг хасах"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP бүртгэлүүд"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Акаунтыг хадгалж байна…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Акаунтыг арилгаж байна…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Хадгалах"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Устг"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Профайлыг хаана уу"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Хаах"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Статусыг шалгаж байна..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Бүртгэж байна…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Оролдож байна…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Дуудлага хүлээж авахгүй байна."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Интернэт холболтгүй болсон учир бүртгэлийн бүртгэл зогслоо."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Wi-Fi холболтгүй болсон учир бүртгэлийн бүртгэл зогслоо"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Акаунтын бүртгэл амжилтгүй."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Дуудлага хүлээн авч байна."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Акаунтын бүртгэл амжилтгүй боллоо: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); дараа дахин оролдох болно"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Акаунтын бүртгэл амжилтгүй боллооl: Хэрэглэгчийн нэр буюу нууц үг буруу"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Акаунтын бүртгэл амжилтгүй: Серверийн нэрийг шалгана уу."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Энэ акаунтыг <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> апп одоо ашиглаж байна."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP бүртгэлийн мэдээлэл"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP бүртгэлийн мэдээлэл"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Сервер"</string>
-    <string name="username_title" msgid="298416796886107970">"Хэрэглэгчийн нэр"</string>
-    <string name="password_title" msgid="8035579335591959021">"Нууц үг"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Дэлгэцийн нэр"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Гадагш чиглэсэн прокси хаяг"</string>
-    <string name="port_title" msgid="1703586046264385110">"Портын дугаар"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Тээврийн хэлбэр"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Идэвхитэй байлгах мессеж илгээх"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Сонголтын тохиргоо"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Баталгуужуулах хэрэглэгчийн нэр"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Гэрчлэлд ашигласан хэрэглэгчийн нэр"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Тохируулаагүй&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Тохируулаагүй&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Тохируулаагүй&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Хэрэглэгчийн нэртэй адил&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Сонголтын&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Бүгдийг харуулахын тулд хүрнэ үү"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Бүгдийг нуухын тулд хүрнэ үү"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Шинэ SIP бүртгэлд дэлгэрэнгүй мэдээлэл нэмэх."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> заавал шаардагдах бөгөөд хоосон орхиж болохгүй."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Портын дугаар 1000 болон 65534 хооронд байх ёстой."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP дуудлага хийхийн тулд эхлээд интернет сүлжээгээ шалгана уу"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP дуудлага хийхийн тулд Wi-Fi сүлжээнд холбогдсон байх хэрэгтэй (Wi-Fi болон Сүлжээний тохиргоог ашигла)"</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP дуудлага хийхийг дэмжээгүй байна"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Автоматаар"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Байнга илгээх"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"SIP дуудлага өгөгдсөн"</string>
-</resources>
diff --git a/sip/res/values-mr/strings.xml b/sip/res/values-mr/strings.xml
deleted file mode 100644
index 6eb7245..0000000
--- a/sip/res/values-mr/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"इनकमिंग कॉल घ्या"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"अधिक बॅटरी वापरते"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP कॉलिंग वापरा"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP कॉलिंग वापरा (वाय-फाय केवळ)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"खाते काढा"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP खाती"</string>
-    <string name="saving_account" msgid="3390358043846687266">"खाते सेव्ह करत आहे..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"खाते काढत आहे..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"सेव्ह करा"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"टाकून द्या"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"प्रोफाईल बंद करा"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ठीक आहे"</string>
-    <string name="close_profile" msgid="3756064641769751774">"बंद करा"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"स्‍थिती तपासत आहे..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"नोंदणी करत आहे..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"अद्याप प्रयत्न करत आहे..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"कॉल प्राप्त होत नाहीत."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"इंटरनेट कनेक्‍शन नसल्‍याने खाते नोंदणी थांबली."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"वाय-फाय कनेक्‍शन नसल्‍याने खाते नोंदणी थांबली."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"खाते नोंदणी अयशस्वी."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"कॉल प्राप्त करत आहे."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"खाते नोंदणी अयशस्‍वी: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); नंतर प्रयत्‍न करू"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"खाते नोंदणी अयशस्‍वी: चुकीचे वापरकर्ता नाव किंवा संकेतशब्‍द."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"खाते नोंदणी अयशस्वी: सर्व्हर नाव तपासा."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"हे खाते सध्‍या <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> अ‍ॅपद्वारे वापरात आहे."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP खाते तपशील"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP खाते तपशील"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"सर्व्हर"</string>
-    <string name="username_title" msgid="298416796886107970">"वापरकर्ता नाव"</string>
-    <string name="password_title" msgid="8035579335591959021">"पासवर्ड"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"प्रदर्शन नाव"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"आउटबाउंड प्रॉक्सी पत्ता"</string>
-    <string name="port_title" msgid="1703586046264385110">"पोर्ट नंबर"</string>
-    <string name="transport_title" msgid="1661659138226029178">"वाहतूक प्रकार"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"चैतन्‍यमय-ठेवा पाठवा"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"पर्यायी सेटिंग्ज"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"ऑथेंटिकेशन वापरकर्ता नाव"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"प्रमाणीकरणासाठी वापरकर्ता नाव वापरले"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;सेट नाही&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;सेट नाही&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;सेट नाही&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;वापरकर्ता नावासारखे&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;पर्यायी&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ सर्व दाखवण्‍यासाठी स्‍पर्श करा"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ सर्व लपवण्‍यासाठी स्‍पर्श करा"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"नवीन SIP खात्याचा तपशील एंटर करा."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> आवश्‍यक आहे आणि रिक्त सोडले जाऊ शकत नाही."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"पोर्ट नंबर 1000 आणि 65534 मध्‍ये असावा."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"एक SIP कॉल करण्‍यासाठी, प्रथम तुमचे इंटरनेट कनेक्‍शन तपासा."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP कॉलसाठी तुम्ही वाय-फाय नेटवर्कशी कनेक्‍ट केलेले असणे आवश्‍यक आहे (वायरलेस &amp; नेटवर्क सेटिंग्ज वापरा)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP कॉल करणे समर्थित नाही"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"स्वयंचलित"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"नेहमी पाठवा"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"अंगभूत SIP कॉल करणे"</string>
-</resources>
diff --git a/sip/res/values-ms/strings.xml b/sip/res/values-ms/strings.xml
deleted file mode 100644
index 424ab8f..0000000
--- a/sip/res/values-ms/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Tetapan SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Akaun SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Akaun"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Terima panggilan masuk"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Menggunakan lebih hayat bateri"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Gunakan panggilan SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Gunakan panggilan SIP (Wi-Fi sahaja)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Untuk semua panggilan semasa rangkaian data tersedia"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Hanya untuk panggilan SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Untuk semua panggilan"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Tambah akaun"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Alih keluar akaun"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Akaun SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Menyimpan akaun..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Mengalih keluar akaun..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Simpan"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Buang"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Tutup profil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Tutup"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Menyemak status..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Mendaftar..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Masih mencuba..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Tidak menerima panggilan."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Pendaftaran akaun terhenti kerana tiada sambungan Internet."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Pendaftaran akaun terhenti kerana tiada sambungan Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Pendaftaran akaun tidak berjaya."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Menerima panggilan"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Pendaftaran akaun tidak berjaya: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); akan mencuba kemudian"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Pendaftaran akaun tidak berjaya: Nama pengguna atau kata laluan salah."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Pendaftaran akaun tidak berjaya: Periksa nama pelayan."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Akaun ini sedang digunakan pada masa ini oleh apl <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Butiran akaun SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Butiran akaun SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Pelayan"</string>
-    <string name="username_title" msgid="298416796886107970">"Nama Pengguna"</string>
-    <string name="password_title" msgid="8035579335591959021">"Kata laluan"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Nama paparan"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Alamat proksi keluar"</string>
-    <string name="port_title" msgid="1703586046264385110">"Nombor port"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Jenis pengangkutan"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Hantar pengekal"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Tetapan pilihan"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Nama pengguna pengesahan"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Nama pengguna yang digunakan untuk pengesahan"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Tidak ditetapkan&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Tidak ditetapkan&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Tidak ditetapkan&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Sama dengan nama pengguna&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Pilihan&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Sentuh untuk menunjukkan semua"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Sentuh untuk sembunyikan semua"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Masukkan butiran akaun SIP baharu."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> diperlukan dan tidak boleh dibiarkan kosong."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Nombor port harus berada dalam lingkungan 1000 dan 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Untuk membuat panggilan SIP, periksa sambungan Internet anda dahulu."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Anda perlu disambungkan ke rangkaian Wi-Fi bagi panggilan SIP(gunakan tetapan Wayarles &amp; Rangkaian)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Panggilan SIP tidak disokong"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatik"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Sentiasa hantar"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Panggilan SIP terbina dalam"</string>
-</resources>
diff --git a/sip/res/values-my/strings.xml b/sip/res/values-my/strings.xml
deleted file mode 100644
index 64897b0..0000000
--- a/sip/res/values-my/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"အဝင် ခေါ်ဆိုမှုများ လက်ခံရန်"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"ဘက်ထရီ သက်တမ်းပိုသုံးပါသည်"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP ခေါ်ဆိုမှု အသုံးပြုမည်"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP ခေါ်ဆိုမှု အသုံးပြုမည် (ကြိုးမဲ့ အင်တာနက်သာ)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"အကောင့်ကို ဖယ်ရှားရန်"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP အကောင့်များ"</string>
-    <string name="saving_account" msgid="3390358043846687266">"အကောင့်ကို သိမ်းဆည်းနေ…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"အကောင့်ကို ဖယ်ရှားနေ…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"သိမ်းရန်"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"ဖယ်ပစ်ရန်"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"ပရိုဖိုင်ကို ပိတ်ရန်"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"ပိတ်ရန်"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"အခြေအနေကို စစ်ဆေးနေ..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"မှတ်ပုံတင်နေ…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"ကြိုးစာနေဆဲ…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"အဝင် ခေါ်ဆိုမှုများ မရှိပါ"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"အင်တာနက် ဆက်သွယ်မှု မရှိသောကြောင့် အကောင့် မှတ်ပုံတင်ခြင်း ရပ်ဆိုင်းသွားခဲ့သည်။"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"ကြိုးမဲ့ ဆက်သွယ်မှု မရှိသောကြောင့် အကောင့် မှတ်ပုံတင်ခြင်း ရပ်ဆိုင်းသွားခဲ့သည်။"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"အကောင့် မှတ်ပုံတင်ခြင်း မအောင်မြင်ပါ"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"ခေါ်ဆိုမှုကို လက်ံခံယူနေ"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"အကောင့် မှတ်ပုံတင်ခြင်း မအောင်မြင်ပါ: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); နောက်မှာ ထပ်ကြိုးစားမည်"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"အကောင့် မှတ်ပုံတင်ခြင်း မအောင်မြင်ပါ: စကားဝှက် သို့မဟုတ် သုံးစွဲသူအမည် မမှန်ကန်ပါ။"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"အကောင့် မှတ်ပုံတင်ခြင်း မအောင်မြင်ပါ: ဆာဗာ အမည်ကို စစ်ဆေးပါ"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"ဒီအကောင့်ကို လက်ရှိ <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> အပလီကေးရှင်းမှ သုံးနေသည်"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP အကောင့် အသေးစိတ်များ"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP အကောင့် အသေးစိတ်များ"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"ဆာဗာ"</string>
-    <string name="username_title" msgid="298416796886107970">"အသုံးပြုသူ အမည်"</string>
-    <string name="password_title" msgid="8035579335591959021">"စကားဝှက်"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"ပြသမည့် အမည်"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"အထွက် ပရောက်စီ လိပ်စာ"</string>
-    <string name="port_title" msgid="1703586046264385110">"ပို့ နံပါတ်"</string>
-    <string name="transport_title" msgid="1661659138226029178">"သယ်ယူပို့ဆောင်ရေးအမျိုးအစား"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"keep-alive ကို ပို့ပါ"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"ရွေးနိုင်သော ဆက်တင်များ"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"အသုံးပြုသူ အမည် အထောက်အထားကို စိစစ်ခြင်း"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"အသုံးပြုသူ အမည်ကို အထောက်အထား စိစစ်ရန် သုံးခဲ့"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;သတ်မှတ်မထားပါ&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;သတ်မှတ်မထားပါ&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;သတ်မှတ်မထားပါ&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;အသုံးပြုသူ အမည်နှင့် တူညီသော&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;လိုချင်မှ လုပ်ရန်&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ အားလုံးပြရန် ထိပါ"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ အားလုံး ဖျောက်ရန် ထိပါ"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"SIP အကောင့်သစ်၏ အသေးစိတ်များရိုက်ထည့်ပါ။"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> မှာ လိုအပ်ပြီး ပလာထား မရပါ"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"ပို့ နံပါတ်မှာ ၁၀၀၀ မှ ၆၅၅၃၄ အတွင်းမှာ ရှိရပါမည်"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP ဖုန်းခေါ်ရန်၊ သင့်အင်တာနက် ချိတ်ဆက်မှုကိုဦးစွာ စစ်ဆေးပါ။"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"ခေါ်ဆိုမှုအတွက် ကြိုးမဲ့ကွန်ရက် ချိတ်ဆက်ရန်လိုအပ်ပါသည် (ကြိုးမဲ့ နှင့် ကွန်ရက်ချိန်ညှိချက်များကို အသုံးပြုပါ)။"</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP ခေါ်ဆိုမှု မထောက်ပံံ့ပါ။"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"အလိုအလျောက်"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"အမြဲတမ်း ပို့ရန်"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"SIP မူလခေါ်ဆိုမှု"</string>
-</resources>
diff --git a/sip/res/values-nb/strings.xml b/sip/res/values-nb/strings.xml
deleted file mode 100644
index 1900864..0000000
--- a/sip/res/values-nb/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP-innstillinger"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP-kontoer"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Kontoer"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Motta innkommende anrop"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Bruker mer batteri"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Bruk SIP-anrop"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Bruk SIP-anrop (kun for Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"For alle anrop hvor datanettverk er tilgjengelige"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Kun for SIP-anrop"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Bruk ved alle anrop"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Legg til konto"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Fjern kontoen"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP-kontoer"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Lagrer kontoen …"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Fjerner kontoen …"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Lagre"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Forkast"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Lukk profilen"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Lukk"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Kontrollerer statusen …"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registrerer …"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Prøver fortsatt …"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Mottar ikke anrop."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Kontoregistreringen stoppet på grunn av manglende internettilkobling."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Kontoregistreringen stoppet på grunn av manglende Wi-Fi-tilkobling."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Kontoregistreringen mislyktes."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Mottar anrop."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Kontoregistreringen mislyktes: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>), det gjøres et nytt forsøk"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Kontoregistreringen mislyktes: feil brukernavn eller passord."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Kontoregistreringen mislyktes: sjekk tjenernavnet."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Denne kontoen er for øyeblikket i bruk av appen <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP-innstillinger"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP-innstillinger"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Tjener"</string>
-    <string name="username_title" msgid="298416796886107970">"Brukernavn"</string>
-    <string name="password_title" msgid="8035579335591959021">"Passord"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Visningsnavn"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Adresse for utgående proxy-tjener"</string>
-    <string name="port_title" msgid="1703586046264385110">"Portnummer"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Transporttype"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Send keep-alive-meldinger"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Valgfrie innstillinger"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Brukernavn for autentisering"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Brukernavn som brukes til autentisering"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Ikke angitt&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Ikke angitt&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Ikke angitt&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Samme som brukernavn&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Valgfritt&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Trykk for å vise alle"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Trykk for å skjule alle"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Skriv inn opplysningene tilknyttet den nye SIP-kontoen."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> er obligatorisk. Feltet kan ikke være tomt."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Portnummeret må være mellom 1000 og 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"For å bruke SIP-anrop må du først sjekke internettilkoblingen din."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Du må være koblet til et Wi-Fi-nettverk for å benytte SIP-anrop (bruk Trådløst og nettverk-innstillingene)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP-anrop støttes ikke"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatisk"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Send alltid"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Innebygd SIP-anrop"</string>
-</resources>
diff --git a/sip/res/values-ne/strings.xml b/sip/res/values-ne/strings.xml
deleted file mode 100644
index e8938aa..0000000
--- a/sip/res/values-ne/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"आगमन कलहरू प्राप्त गर्नुहोस्"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"बढी ब्याट्री आयु खपत गर्छ"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP कल प्रयोग गर्नुहोस्"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP कल प्रयोग गर्नुहोस् (Wi-Fi मात्र)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"खाता हटाउनुहोस्"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP खाताहरू"</string>
-    <string name="saving_account" msgid="3390358043846687266">"खाता बचत गर्दै..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"खाता हटाउँदै..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"सेभ गर्नुहोस्"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"त्याग्नुहोस्"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"प्रोफाइल बन्द गर्नुहोस्"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ठिक छ"</string>
-    <string name="close_profile" msgid="3756064641769751774">"बन्द गर्नुहोस्"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"स्थिति जाँच गर्दै..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"दर्ता गर्दै..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"प्रयास गरिँदै..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"कलहरू प्राप्त भैरहेका छैनन्"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"खाता दर्ता प्रक्रिया रोकियो किनकि इन्टरनेट जडित छैन।"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"खाता दर्ता रोकियो किनकि Wi-Fi जडित छैन।"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"खाता दर्ता गर्न विफल"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"कलहरू प्राप्त गर्दै।"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"खाता दर्ता गर्न विफल: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); पछि प्रयास गर्नुहोस्"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"खाता दर्ता प्रक्रिया असफल: गलत युजरनेम वा पासवर्ड।"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"खाता दर्ता गर्न असफल: सर्भरको नाम जाँच गर्नुहोस्।"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"<xliff:g id="ACCOUNT_OWNER">%s</xliff:g> अनुप्रयोगद्वारा यो खाता हाल प्रयोगमा छ।"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP खाता विवरणहरू"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP खाता विवरणहरू"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"सर्भर"</string>
-    <string name="username_title" msgid="298416796886107970">"एक-पटके टेक्स्ट म्यासेज"</string>
-    <string name="password_title" msgid="8035579335591959021">"पासवर्ड"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"नाम प्रदर्शन गर्नुहोस्"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"बाहिरका प्रोक्सी ठेगाना"</string>
-    <string name="port_title" msgid="1703586046264385110">"पोर्ट सङ्ख्या"</string>
-    <string name="transport_title" msgid="1661659138226029178">"यातायात प्रकार"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"चालु राख्नको लागि पठाउनुहोस्"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"वैकल्पिक सेटिङहरू"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"प्रमाणीकरणको एक-पटके टेक्स्ट म्यासेज"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"प्रमाणीकरणको लागि एक-पटके टेक्स्ट म्यासेज प्रयोग भएको"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;सेट गरिएको छैन&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;सेट गरिएको छैन&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;सेट गरिएको छैन&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;एक-पटके टेक्स्ट म्यासेज जस्तै&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;वैकल्पिकgt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ छोएर सबै देखाउनुहोस्"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ छोएर सबै लुकाउनुहोस्"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"नयाँ SIP खाताको विवरणहरू प्रविष्टि गर्नुहोस्।"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> चाहिन्छ र खाली छोड्न सकिँदैन।"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"पोर्ट संख्या १००० र  ६५५३४ को बीचमा हुनु पर्छ।"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"एक SIP कल गर्नका लागि पहिले तपाईंको इन्टरनेट जडान जाँच गर्नुहोस्।"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP कलका लागि तपाईं एउटा Wi-Fi सञ्जालमा जडित हुन पर्छ (ताररहित &amp; सञ्जाल सेटिङ प्रयोग गर्नुहोस्)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP कल गर्न समर्थित छैन"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"स्वचालित"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"सधैँ पठाउनुहोस्"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"अन्तरनिर्मित SIP कल"</string>
-</resources>
diff --git a/sip/res/values-nl/strings.xml b/sip/res/values-nl/strings.xml
deleted file mode 100644
index 1b321c3..0000000
--- a/sip/res/values-nl/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP-instelllingen"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP-accounts"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Accounts"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Binnenkomende gesprekken ontvangen"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Gebruikt meer batterijlading"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP-gesprekken gebruiken"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP-gesprekken gebruiken (alleen wifi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Voor alle gesprekken indien gegevensnetwerk beschikbaar is"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Alleen voor SIP-gesprekken"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Voor alle gesprekken"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Account toevoegen"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Account verwijderen"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP-accounts"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Het account opslaan…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Het account verwijderen…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Opslaan"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Verwijderen"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Het profiel sluiten"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Sluiten"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Status controleren..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registreren…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Nog steeds bezig…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Gesprekken worden niet ontvangen."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Accountregistratie gestopt omdat er geen internetverbinding is."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Accountregistratie gestopt omdat er geen wifi-verbinding is."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Accountregistratie mislukt."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Gesprekken worden ontvangen."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Accountregistratie mislukt: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). We proberen het later opnieuw."</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Accountregistratie mislukt: gebruikersnaam of wachtwoord onjuist."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Accountregistratie mislukt: controleer de servernaam."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Dit account wordt momenteel gebruikt door de app <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP-gegevens"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP-gegevens"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Gebruikersnaam"</string>
-    <string name="password_title" msgid="8035579335591959021">"Wachtwoord"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Weergavenaam"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Adres voor uitgaande proxy"</string>
-    <string name="port_title" msgid="1703586046264385110">"Poortnummer"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Transporttype"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Keepalive verzenden"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Optionele instellingen"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Gebruikersnaam voor verificatie"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Gebruikersnaam die voor de verificatie wordt gebruikt"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Niet ingesteld&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Niet ingesteld&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Niet ingesteld&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Gelijk aan gebruikersnaam&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Optioneel&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Tik om alles te tonen"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Tik om alles te verbergen"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Geef details op voor nieuw SIP-account."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> is verplicht en mag niet leeg worden gelaten."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Het poortnummer moet tussen 1000 en 65534 liggen."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Als je een SIP-gesprek wilt plaatsen, controleer je eerst je internetverbinding."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Je moet verbinding hebben met een wifi-netwerk voor SIP-gesprekken (gebruik de instellingen bij \'Draadloos en netwerken\')."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP-gesprekken worden niet ondersteund"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatisch"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Altijd verzenden"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Ingebouwde SIP-gesprekken"</string>
-</resources>
diff --git a/sip/res/values-or/strings.xml b/sip/res/values-or/strings.xml
deleted file mode 100644
index 3c60d09..0000000
--- a/sip/res/values-or/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"ଇନ୍‌କମିଙ୍ଗ କଲ୍ ଗ୍ରହଣ କରନ୍ତୁ"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"ଅଧିକ ବ୍ୟାଟେରୀ ଖର୍ଚ୍ଚ କରେ"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP କଲିଙ୍ଗ ବ୍ୟବହାର କରନ୍ତୁ"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP କଲିଙ୍ଗ ବ୍ୟବହାର କରନ୍ତୁ (କେବଳ ୱାଇ-ଫାଇ)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"ଆକାଉଣ୍ଟ କାଢ଼ିଦିଅନ୍ତୁ"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP ଆକାଉଣ୍ଟ"</string>
-    <string name="saving_account" msgid="3390358043846687266">"ଆକାଉଣ୍ଟକୁ ସେଭ୍ କରାଯାଉଛି…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"ଆକାଉଣ୍ଟ କଢ଼ାଯାଉଛି…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"ସେଭ୍‌ କରନ୍ତୁ"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"ଖାରଜ କରନ୍ତୁ"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"ପ୍ରୋଫାଇଲ୍‌କୁ ବନ୍ଦ କରନ୍ତୁ"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ଠିକ୍ ଅଛି"</string>
-    <string name="close_profile" msgid="3756064641769751774">"ବନ୍ଦ କରନ୍ତୁ"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"ଷ୍ଟାଟସ୍ ଯାଞ୍ଚ କରାଯାଉଛି…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"ପଞ୍ଜୀକରଣ ହେଉଛି…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"ତଥାପି ଚେଷ୍ଟାକରୁଛି…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"କଲ୍ ଗ୍ରହଣ କରାଯାଉ ନାହିଁ।"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"ଆକାଉଣ୍ଟର ପଞ୍ଜୀକରଣ ବନ୍ଦ ହୋ‌ଇଗଲା କାରଣ ଇଣ୍ଟରନେଟ୍ କନେକ୍ସନ୍ ନାହିଁ।"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"ଆକାଉଣ୍ଟର ପଞ୍ଜୀକରଣ ବନ୍ଦ ହୋ‌ଇଗଲା କାରଣ ୱାଇ-ଫାଇ କନେକ୍ସନ୍ ନାହିଁ।"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"ଆକାଉଣ୍ଟର ପଞ୍ଜୀକରଣ ବିଫଳ ହେଲା।"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"ଗ୍ରହଣ କରାଯାଉଥିବା କଲ୍।"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"ଆକାଉଣ୍ଟର ପଞ୍ଜୀକରଣ ବିଫଳ ହେଲା:(<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); ପରେ ଚେଷ୍ଟା କରନ୍ତୁ"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"ଆକାଉଣ୍ଟର ପଞ୍ଜୀକରଣ ବିଫଳ ହେଲା: ଭୁଲ୍ ୟୁଜରନେମ୍ କିମ୍ବା ପାସ୍‌ୱର୍ଡ।"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"ଆକାଉଣ୍ଟର ପଞ୍ଜୀକରଣ ବିଫଳ ହେଲା: ସର୍ଭର୍‌ର ନାମକୁ ଯାଞ୍ଚ କରନ୍ତୁ।"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"ଏହି ଆକାଉଣ୍ଟ ବର୍ତ୍ତମାନ <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> ଆପ୍ ଦ୍ଵାରା ବ୍ୟବହାର ହେଉଛି।"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP ଆକାଉଣ୍ଟ ବିବରଣି"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP ଆକାଉଣ୍ଟ ବିବରଣି"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"ସର୍ଭର୍"</string>
-    <string name="username_title" msgid="298416796886107970">"ୟୁଜରନେମ୍‌"</string>
-    <string name="password_title" msgid="8035579335591959021">"ପାସ୍‌ୱର୍ଡ"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"ନାମ ଦେଖାନ୍ତୁ"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"ଆଉଟ୍‌ବାଉଣ୍ଡ ପ୍ରୋକ୍ସୀ ଠିକଣା"</string>
-    <string name="port_title" msgid="1703586046264385110">"ପୋର୍ଟ ସଂଖ୍ୟା"</string>
-    <string name="transport_title" msgid="1661659138226029178">"ପରିବହନର ପ୍ରକାର"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"କୀପ୍-ଏଲାଇଭ୍ ପଠାନ୍ତୁ"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"ବାଧ୍ୟତାମୂଳକ ନଥିବା ସେଟିଙ୍ଗ"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"ପ୍ରମାଣିକରଣ ୟୁଜରନେମ୍"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"ପ୍ରମାଣିକରଣ ପାଇଁ ବ୍ୟବହାର ହେଉଥିବା ୟୁଜରନେମ୍"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;ସେଟ୍ କରାଯାଇନାହିଁ&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;ସେଟ୍ କରାଯାଇନାହିଁ&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;ସେଟ୍ କରାଯାଇନାହିଁ&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;ୟୁଜରନେମ୍ ଭଳି ସମାନ&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;ବାଧ୍ୟ ନୁହେଁ&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ ସମସ୍ତକୁ ଦେଖାଇବା ପାଇଁ ଛୁଅନ୍ତୁ"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ ସମସ୍ତକୁ ଲୁଚାଇବା ପାଇଁ ଛୁଅନ୍ତୁ"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"ନୂଆ SIP ଆକାଉଣ୍ଟର ବିବରଣୀକୁ ପ୍ରବେଶ କରନ୍ତୁ"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ଆବଶ୍ୟକ ଏବଂ ଏହାକୁ ଖାଲି ଛଡ଼ାଯାଇପାରିବ ନାହିଁ।"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"ପୋର୍ଟ ସଂଖ୍ୟା ନିଶ୍ଚିତରୂପେ 1000 ଓ 65534 ମଧ୍ୟରେ ରହିବା ଆବଶ୍ୟକ।"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"ଗୋଟିଏ SIP କଲ୍ କରିବା ପାଇଁ ପ୍ରଥମେ ନିଜର ଇଣ୍ଟରନେଟ୍ କନେକ୍ସନ୍‌କୁ ଯାଞ୍ଚ କରନ୍ତୁ।"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP କଲ୍ କରିବା ପାଇଁ ଆପଣଙ୍କୁ ଗୋଟିଏ ୱାଇ-ଫାଇ ନେଟ୍‌ୱର୍କ ସହିତ କନେକ୍ଟ ହେବାକୁ ପଡ଼ିବ(ତାରବିହୀନ ଓ ନେଟ୍‌ୱର୍କ ସେଟିଙ୍ଗକୁ ବ୍ୟବହାର କରନ୍ତୁ)।"</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP କଲିଙ୍ଗ ସପୋର୍ଟ କରୁନାହିଁ"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"ସ୍ଵଚାଳିତ"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"ସର୍ବଦା ପଠାନ୍ତୁ"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"ବିଲ୍ଟ-ଇନ୍ SIP କଲିଙ୍ଗ"</string>
-</resources>
diff --git a/sip/res/values-pa/strings.xml b/sip/res/values-pa/strings.xml
deleted file mode 100644
index 4606d96..0000000
--- a/sip/res/values-pa/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"ਇਨਕਮਿੰਗ ਕਾਲਾਂ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"ਬੈਟਰੀ ਦੀ ਖਪਤ ਵਧ ਜਾਂਦੀ ਹੈ"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP ਕਾਲਿੰਗ ਵਰਤੋ"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP ਕਾਲਿੰਗ ਵਰਤੋ (ਕੇਵਲ Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"ਖਾਤਾ ਹਟਾਓ"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP ਖਾਤੇ"</string>
-    <string name="saving_account" msgid="3390358043846687266">"ਖਾਤਾ ਸੁਰੱਖਿਅਤ ਕਰ ਰਿਹਾ ਹੈ…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"ਖਾਤਾ ਹਟਾ ਰਿਹਾ ਹੈ…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"ਰੱਖਿਅਤ ਕਰੋ"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"ਖਾਰਜ ਕਰੋ"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"ਪ੍ਰੋਫਾਈਲ ਬੰਦ ਕਰੋ"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ਠੀਕ"</string>
-    <string name="close_profile" msgid="3756064641769751774">"ਬੰਦ ਕਰੋ"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"ਸਥਿਤੀ ਦੀ ਜਾਂਚ ਕਰ ਰਿਹਾ ਹੈ..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"ਰਜਿਸਟਰ ਕਰ ਰਿਹਾ ਹੈ…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"ਅਜੇ ਵੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹੈ…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"ਕਾਲਾਂ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕਰ ਰਿਹਾ ਹੈ।"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"ਖਾਤਾ ਰਜਿਸਟਰੇਸ਼ਨ ਰੁਕ ਗਿਆ ਕਿਉਂਕਿ ਕੋਈ ਇੰਟਰਨੈਟ ਕਨੈਕਸ਼ਨ ਨਹੀਂ ਹੈ।"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"ਖਾਤਾ ਰਜਿਸਟਰੇਸ਼ਨ ਰੁਕ ਗਿਆ ਕਿਉਂਕਿ ਕੋਈ Wi-Fi ਕਨੈਕਸ਼ਨ ਨਹੀਂ ਹੈ।"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"ਖਾਤਾ ਰਜਿਸਟਰੇਸ਼ਨ ਅਸਫਲ।"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"ਕਾਲਾਂ ਪ੍ਰਾਪਤ ਕਰ ਰਿਹਾ ਹੈ।"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"ਖਾਤਾ ਰਜਿਸਟਰੇਸ਼ਨ ਅਸਫਲ: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); ਬਾਅਦ ਵਿੱਚ ਕੋਸ਼ਿਸ਼ ਕਰੇਗਾ"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"ਖਾਤਾ ਰਜਿਸਟਰੇਸ਼ਨ ਅਸਫਲ: ਗ਼ਲਤ ਵਰਤੋਂਕਾਰ ਨਾਮ ਜਾਂ ਪਾਸਵਰਡ।"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"ਖਾਤਾ ਰਜਿਸਟਰੇਸ਼ਨ ਅਸਫਲ: ਸਰਵਰ ਨਾਮ ਦੀ ਜਾਂਚ ਕਰੋ।"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"ਇਹ ਖਾਤਾ ਇਸ ਵੇਲੇ <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> ਐਪ ਵੱਲੋਂ ਵਰਤੋਂ ਵਿੱਚ ਹੈ।"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP ਖਾਤਾ ਵੇਰਵੇ"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP ਖਾਤਾ ਵੇਰਵੇ"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"ਸਰਵਰ"</string>
-    <string name="username_title" msgid="298416796886107970">"ਵਰਤੋਂਕਾਰ ਨਾਮ"</string>
-    <string name="password_title" msgid="8035579335591959021">"ਪਾਸਵਰਡ"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"ਡਿਸਪਲੇ ਨਾਮ"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"ਆਊਟਬਾਊਂਡ ਪ੍ਰੌਕਸੀ ਪਤਾ"</string>
-    <string name="port_title" msgid="1703586046264385110">"ਪੋਰਟ ਨੰਬਰ"</string>
-    <string name="transport_title" msgid="1661659138226029178">"ਟ੍ਰਾਂਸਪੋਰਟ ਦੀ ਕਿਸਮ"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"ਕੀਪ-ਅਲਾਈਵ ਭੇਜੋ"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"ਵਿਕਲਪਿਕ ਸੈਟਿੰਗਾਂ"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"ਪ੍ਰਮਾਣੀਕਰਨ ਵਰਤੋਂਕਾਰ ਨਾਮ"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"ਪ੍ਰਮਾਣੀਕਰਨ ਲਈ ਵਰਤਿਆ ਗਿਆ ਵਰਤੋਂਕਾਰ ਨਾਮ"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;ਸੈੱਟ ਨਹੀਂ&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;ਸੈੱਟ ਨਹੀਂ&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;ਸੈੱਟ ਨਹੀਂ&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;ਉਹੀ ਹੈ ਜੋ ਵਰਤੋਂਕਾਰ ਨਾਮ ਹੈ&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;ਵਿਕਲਪਿਕ&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ ਸਾਰੇ ਦਿਖਾਉਣ ਲਈ ਸਪੱਰਸ਼ ਕਰੋ"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ ਸਾਰੇ ਲੁਕਾਉਣ ਲਈ ਸਪੱਰਸ਼ ਕਰੋ"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"ਨਵੇਂ SIP ਖਾਤੇ ਦੇ ਵੇਰਵੇ ਦਾਖ਼ਲ ਕਰੋ।"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> ਲੁੜੀਂਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਖਾਲੀ ਨਹੀਂ ਛੱਡਿਆ ਜਾ ਸਕਦਾ।"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"ਪੋਰਟ ਨੰਬਰ 1000 ਅਤੇ 65534 ਵਿਚਕਾਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"ਇੱਕ SIP ਕਾਲ ਕਰਨ ਲਈ, ਪਹਿਲਾਂ ਆਪਣੇ ਇੰਟਰਨੈਟ ਕਨੈਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰੋ।"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP ਕਾਲਾਂ ਲਈ ਤੁਹਾਨੂੰ ਇੱਕ Wi-Fi ਨੈਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ (ਵਾਇਰਲੈਸ &amp; ਨੈਟਵਰਕ ਸੈਟਿੰਗਾਂ ਵਰਤੋ)।"</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP ਕਾਲਿੰਗ ਸਮਰਥਿਤ ਨਹੀਂ"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"ਸਵੈਚਲਿਤ"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"ਹਮੇਸ਼ਾਂ ਭੇਜੋ"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"ਬਿਲਟ-ਇਨ SIP ਕਾਲਿੰਗ"</string>
-</resources>
diff --git a/sip/res/values-pl/strings.xml b/sip/res/values-pl/strings.xml
deleted file mode 100644
index f88f8a2..0000000
--- a/sip/res/values-pl/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Ustawienia SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Konta SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Konta"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Odbieraj przychodzące"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Skraca czas pracy baterii"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Użyj połączenia SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Użyj połączenia SIP (tylko przez Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Przy wszystkich połączeniach, gdy sieć transmisji danych jest dostępna"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Tylko połączenia SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Wszystkie połączenia"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Dodaj konto"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Usuń konto"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Konta SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Zapisuję konto…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Usuwam konto…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Zapisz"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Odrzuć"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Zamknij profil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Zamknij"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Sprawdzam stan..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Rejestruję…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Nadal próbuję…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Połączenia nie są odbierane."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Rejestracja konta została zatrzymana, ponieważ nie masz połączenia internetowego."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Rejestracja konta została zatrzymana, ponieważ nie masz połączenia Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Rejestracja konta nie powiodła się."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Odbieranie połączeń."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Rejestracja konta nie powiodła się: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Spróbujemy ponownie później."</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Rejestracja konta nie powiodła się: nieprawidłowa nazwa użytkownika lub hasło."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Rejestracja konta nie powiodła się: sprawdź nazwę serwera."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"To konto jest obecnie używane przez aplikację <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Dane konta SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Dane konta SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Serwer"</string>
-    <string name="username_title" msgid="298416796886107970">"Nazwa użytkownika"</string>
-    <string name="password_title" msgid="8035579335591959021">"Hasło"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Wyświetlana nazwa"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Proxy połączeń wychodzących"</string>
-    <string name="port_title" msgid="1703586046264385110">"Numer portu"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Protokół"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Utrzymuj połączenie"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Ustawienia opcjonalne"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Nazwa do uwierzytelniania"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Nazwa użytkownika używana do uwierzytelniania"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Nie ustawiono&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Nie ustawiono&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Nie ustawiono&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Taka sama jak nazwa użytkownika&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Opcjonalny&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Dotknij, by wyświetlić wszystkie ustawienia"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Dotknij, by ukryć wszystko"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Wpisz szczegóły nowego konta SIP"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Pole <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> jest wymagane i nie może pozostać puste."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Numer portu powinien mieć wartość od 1000 do 65 534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Aby nawiązać połączenie SIP, najpierw sprawdź połączenie internetowe."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Połączenia SIP wymagają nawiązania połączenia z siecią Wi-Fi (użyj ustawień sieci zwykłych i bezprzewodowych)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Połączenia SIP nie są obsługiwane"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatycznie"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Zawsze wysyłaj"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Wbudowanie połączenia SIP"</string>
-</resources>
diff --git a/sip/res/values-pt-rPT/strings.xml b/sip/res/values-pt-rPT/strings.xml
deleted file mode 100644
index 35aca3e..0000000
--- a/sip/res/values-pt-rPT/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Definições SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Contas SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Contas"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Receber chamadas"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Utiliza mais bateria"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Utilizar chamadas SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Utilizar chamadas SIP (apenas Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Para todas as chamadas quando a rede de dados estiver disponível"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Apenas para chamadas SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Para todas as chamadas"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Adicionar conta"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Remover conta"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Contas SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"A guardar a conta..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"A remover a conta..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Guardar"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Rejeitar"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Fechar o perfil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Fechar"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"A verificar estado..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"A registar..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Ainda a tentar..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Não está a receber chamadas."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"O registo da conta parou porque não existe ligação à Internet."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"O registo da conta parou porque não existe ligação Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"O registo da conta não teve êxito."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"A receber chamadas."</string>
-    <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 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>
-    <string name="username_title" msgid="298416796886107970">"Nome de utilizador"</string>
-    <string name="password_title" msgid="8035579335591959021">"Palavra-passe"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Nome a apresentar"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Endereço do proxy de saída"</string>
-    <string name="port_title" msgid="1703586046264385110">"Número da porta"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Tipo de transporte"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Enviar mensagem keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Definições opcionais"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Nome de utilizador para autenticação"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Nome de utilizador usado para autenticação"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Não definido&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Não definido&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Não definido&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Igual ao nome de utilizador&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Opcional&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Toque para mostrar tudo"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Toque para ocultar tudo"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Introduza os detalhes da nova conta SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> é obrigatório e tem de ser preenchido."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"O número da porta deve estar entre 1000 e 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Para efetuar uma chamada SIP, verifique primeiro a ligação à Internet."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Precisa de uma ligação a uma rede Wi-Fi para efetuar chamadas SIP (utilize as definições Redes sem fios e outras)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Chamadas SIP não suportadas"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automático"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Enviar sempre"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Chamadas SIP incorporadas"</string>
-</resources>
diff --git a/sip/res/values-pt/strings.xml b/sip/res/values-pt/strings.xml
deleted file mode 100644
index dd0af58..0000000
--- a/sip/res/values-pt/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Configurações SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Contas SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Contas"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Receber chamadas"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Usa mais carga de bateria"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Usar chamadas SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Usar chamadas SIP (apenas Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Para todas as chamadas, quando a rede de dados estiver disponível"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Apenas para chamadas SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Para todas as chamadas"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Adicionar conta"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Remover conta"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Contas SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Salvando a conta..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Removendo a conta..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Salvar"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Descartar"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Fechar o perfil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Ok"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Fechar"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Verificando status..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registrando..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Ainda tentando..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Não é possível receber chamadas."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Registro da conta interrompido porque não há conexão à internet."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Registro da conta interrompido porque não há conexão Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Falha no registro da conta."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"É possível receber chamadas."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Falha no registro da conta: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Nova tentativa mais tarde"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Falha no registro da conta: nome de usuário ou senha incorretos."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Falha no registro da conta: verifique o nome do servidor."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"No momento, esta conta é usada pelo 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>
-    <string name="username_title" msgid="298416796886107970">"Nome de usuário"</string>
-    <string name="password_title" msgid="8035579335591959021">"Senha"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Nome de exibição"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Endereço de proxy de saída"</string>
-    <string name="port_title" msgid="1703586046264385110">"Número da porta"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Tipo de transporte"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Enviar sinal de atividade"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Configurações opcionais"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Nome de usuário para autenticação"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Nome de usuário utilizado para autenticação"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Não definido&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Não definida&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Não definido&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Igual ao nome de usuário&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Opcional&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Toque para mostrar todas"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Toque para ocultar todas"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Digite os detalhes da nova conta SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> é um campo obrigatório e não pode ser deixado em branco."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"O número da porta deve estar entre 1000 e 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Para fazer uma chamada SIP, verifique sua conexão com a Internet primeiro."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Você precisa estar conectado a uma rede Wi-Fi para chamadas SIP (use as configurações sem fio e de rede)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Chamada SIP não suportada"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automático"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Sempre enviar"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Chamadas SIP incorporadas"</string>
-</resources>
diff --git a/sip/res/values-ro/strings.xml b/sip/res/values-ro/strings.xml
deleted file mode 100644
index cbbc084..0000000
--- a/sip/res/values-ro/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Setări SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Conturi SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Conturi"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Primiți apeluri"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Consumă mai multă baterie"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Folosiți apelarea SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Folosiți apelarea SIP (numai prin Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Pentru toate apelurile, când rețeaua de date este disponibilă"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Numai pentru apeluri SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Pentru toate apelurile"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Adăugați un cont"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Eliminați contul"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Conturi SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Se salvează contul..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Se elimină contul..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Salvați"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Renunțați"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Închideți profilul"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Închideți"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Se verifică starea..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Se înregistrează..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Se încearcă în continuare..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Nu se primesc apeluri."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Înregistrarea contului s-a oprit deoarece nu există conexiune la internet."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Înregistrarea contului s-a oprit deoarece nu există conexiune Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Înregistrarea contului nu a reușit."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Se primesc apeluri."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Înregistrarea contului nu a reușit: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); se va încerca mai târziu"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Înregistrarea contului nu a reușit: nume de utilizator sau parolă incorectă."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Înregistrarea contului nu a reușit: verificați numele serverului."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Acest cont este utilizat în prezent de aplicația <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Detalii cont SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Detalii cont SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Nume de utilizator"</string>
-    <string name="password_title" msgid="8035579335591959021">"Parolă"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Numele afișat"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Adresă proxy de ieșire"</string>
-    <string name="port_title" msgid="1703586046264385110">"Numărul portului"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Tip de transport"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Trimite keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Setări opționale"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Nume de utilizator pentru autentificare"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Numele de utilizator folosit pentru autentificare"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Nesetat&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Nesetat&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Nesetat&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Identic cu numele de utilizator&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Opțional&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Atingeți pentru a afișa tot"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Atingeți pentru a ascunde tot"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Introduceți detaliile noului cont SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Câmpul <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> este obligatoriu și nu poate fi lăsat necompletat."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Numărul portului trebuie să fie cuprins între 1000 și 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Pentru a efectua un apel SIP, mai întâi verificați conexiunea la internet."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Pentru apeluri SIP trebuie să fiți conectat(ă) la o rețea Wi-Fi (folosiți setările din Wireless și rețea)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Apelarea SIP nu este acceptată"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automat"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Se trimite întotdeauna"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Apelare SIP integrată"</string>
-</resources>
diff --git a/sip/res/values-ru/strings.xml b/sip/res/values-ru/strings.xml
deleted file mode 100644
index 4d6423c..0000000
--- a/sip/res/values-ru/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"Принимать входящие"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Заряд батареи расходуется быстрее"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Звонок через SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Звонок через SIP (только Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"Удалить аккаунт"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP-аккаунты"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Сохранение…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Удаление аккаунта..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Сохранить"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Отменить"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Закрытие профиля"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ОК"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Закрыть"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Проверка состояния..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Регистрация..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Подождите..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Вызовы не принимаются."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Регистрация аккаунта прервана – отсутствует подключение к Интернету."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Регистрация прервана. Отсутствует подключение к сети Wi-Fi"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Не удалось зарегистрировать аккаунт."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Вызовы принимаются."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Не удалось зарегистрировать аккаунт (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Новая попытка будет предпринята позже."</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Не удалось зарегистрировать аккаунт. Неверное имя пользователя или пароль."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Не удалось зарегистрировать аккаунт. Неверное имя сервера."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Аккаунт используется приложением \"<xliff:g id="ACCOUNT_OWNER">%s</xliff:g>\"."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP-аккаунт"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP-аккаунт"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Сервер"</string>
-    <string name="username_title" msgid="298416796886107970">"Имя пользователя"</string>
-    <string name="password_title" msgid="8035579335591959021">"Пароль"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Отображаемое имя"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Адрес прокси-сервера"</string>
-    <string name="port_title" msgid="1703586046264385110">"Номер порта"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Протокол"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Отправлять keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Расширенные настройки"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Имя пользователя"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Имя пользователя для аутентификации"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Не задано&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Не задано&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Не задано&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Совпадает с именем пользователя&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Необязательно&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Нажмите, чтобы показать все"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Нажмите, чтобы скрыть все"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Укажите параметры нового SIP-аккаунта."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Поле \"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>\" должно быть заполнено."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Номер порта должен быть от 1000 до 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Чтобы сделать звонок через SIP, проверьте подключение к Интернету."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Чтобы звонить через SIP, требуется подключение к сети Wi-Fi (его можно настроить в разделе \"Беспроводные сети\")."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Звонки через SIP не поддерживаются"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Автоматически"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Отправлять всегда"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Встроенный сервис звонков через SIP"</string>
-</resources>
diff --git a/sip/res/values-si/strings.xml b/sip/res/values-si/strings.xml
deleted file mode 100644
index 437b053..0000000
--- a/sip/res/values-si/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"ලේබන ඇමතුම් ලබා ගන්න"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"තව බැටරි ආයු කාලය භාවිතා කරන්න"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP ඇමතුම් භාවිතය"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP ඇමතුම් භාවිතය (Wi-Fi පමණයි)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"ගිණුම ඉවත් කරන්න"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP ගිණුම්"</string>
-    <string name="saving_account" msgid="3390358043846687266">"ගිණුම සුරකිමින්..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"ගිණුම ඉවත් කරමින්…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"සුරකින්න"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"ඉවතලන්න"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"පැතිකඩ වසන්න"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"හරි"</string>
-    <string name="close_profile" msgid="3756064641769751774">"වසන්න"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"තත්වය පිරික්සමින්..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"ලියාපදිංචි වෙමින්..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"තවමත් උත්සාහ කරමින්..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"ලැබෙන ඇමතුම් නොවේ."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"අන්තර්ජාල සම්බන්ධතාවක් නොමැතී බැවින් ගිණුම් ලියාපදිංචිය නතර විය."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Wi-Fi සම්බන්ධතාවයක් නොමැති බැවින් ගිණුම් ලියාපදිංචි කිරීම නැවතිණි."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"ගිණුම් ලියාපදිංචිය අසාර්ථකයි."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"ඇමතුම් ලබමින්."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"ගිණුම් ලියාපදිංචිය අසාර්ථක විය: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); පසුව යළි උත්සාහ කරන්නම්"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"ගිණුම ලියාපදිංචි කිරීම අසාර්ථකයි: වැරදි පරිශීලක නාමයක් හෝ මුරපදයකි"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"ගිණුම් ලියාපදිංචිය අසාර්ථකයි: සේවාදායකයේ නම පරික්ෂා කර බලන්න."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"මෙම ගිණුම දැනට <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> යෙදුම විසින් භාවිතා කරයි."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP ගිණුමේ විස්තර"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP ගිණුමේ විස්තර"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"සේවාදායකය"</string>
-    <string name="username_title" msgid="298416796886107970">"පරිශීලක නාමය"</string>
-    <string name="password_title" msgid="8035579335591959021">"මුරපදය"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"දර්ශනය කරන නම"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"පිටතට යන ප්‍රොක්සි ලිපිනය"</string>
-    <string name="port_title" msgid="1703586046264385110">"කවුළුවේ අංකය"</string>
-    <string name="transport_title" msgid="1661659138226029178">"ගමනාගමන වර්ගය"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"සජීවී-තබාගන්නා යවන්න"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"වෛකල්පිත සැකසුම්"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"සත්‍යාපන පරිශීලක නාමය"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"සත්‍යාපනය සඳහා භාවිතා වන පරිශීලක නාමය"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;පිහිටුවා නැත&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;පිහිටුවා නැත&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;පිහිටුවා නැත&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;පරිශීලක නාමය වාගේම&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;වෛකල්පිත&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ සියල්ල පෙන්වීමට ස්පර්ශ කරන්න"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ සියල්ල සැඟවීමට ස්පර්ශ කරන්න"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"අලුත් SIP ගිණුමේ විස්තර ඇතුළත් කරන්න."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> අවශ්‍ය වන අතර හිස්ව තැබිය නොහැක."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"කවුළුවේ අංකය 1000 ත් 65534 ත් අතර විය යුතුය."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP ඇමතුමක් ලබාගැනීමට, ඔබගේ අන්තර්ජාල සම්බන්ධතාව මුලින් පරික්ෂා කරන්න."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP ඇමතුම් සඳහා Wi-Fi ජාලයට ඔබට සම්බන්ධ වීමට අවශ්‍යය වේ (රැහැන් රහිත සහ ජාල සැකසීම්)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP ඇමතීම් වලට සහාය දක්වන්නේ නැත"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"ස්වයංක්‍රිය"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"සැමවිටම යවන්න"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"තැනූ SIP ඇමතුම්"</string>
-</resources>
diff --git a/sip/res/values-sk/strings.xml b/sip/res/values-sk/strings.xml
deleted file mode 100644
index d2a20fa..0000000
--- a/sip/res/values-sk/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Nastavenia SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Účty SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Účty"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Prijímať prichádzajúce hovory"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Viac vybíja batériu"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Používanie volania SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Používanie volania SIP (iba Wi‑Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Pre všetky hovory, pokiaľ je k dispozícii dátová sieť"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Iba pre hovory SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Pre všetky hovory"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Pridať účet"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Odstrániť účet"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Účty SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Prebieha ukladanie účtu..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Prebieha odstraňovanie účtu..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Uložiť"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Zahodiť"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Zavrieť profil"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Zavrieť"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Prebieha kontrola stavu..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Prebieha registrácia..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Prebiehajú ďalšie pokusy..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Hovory sa neprijímajú."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Registrácia účtu bola zastavená, pretože pripojenie k internetu nie je k dispozícii."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Registrácia účtu bola zastavená, pretože pripojenie Wi‑Fi nie je k dispozícii."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Registrácia účtu nebola úspešná."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Príjem hovorov."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Registrácia účtu nebola úspešná: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); skúsime to neskôr"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Registrácia účtu nebola úspešná: nesprávne používateľské meno alebo heslo."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Registrácia účtu nebola úspešná: skontrolujte názov servera."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Tento účet momentálne používa aplikácia používateľa <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Účet SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Účet SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Používateľské meno"</string>
-    <string name="password_title" msgid="8035579335591959021">"Heslo"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Zobrazované meno"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Adresa výstupného proxy servera"</string>
-    <string name="port_title" msgid="1703586046264385110">"Číslo portu"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Typ prenosu"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Správy na zachovanie pripojenia"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Voliteľné nastavenia"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Používateľské meno na overenie"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Používateľské meno použité na overenie"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Nenastavené&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Nenastavené&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Nenastavené&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Rovnaké ako používateľské meno&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Voliteľné&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Klepnutím zobrazíte všetky"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Klepnutím všetko skryjete"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Zadajte informácie o novom účte SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Pole <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> je povinné a nemôže zostať prázdne."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Číslo portu by malo byť od 1 000 do 65 534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Ak chcete uskutočniť hovor SIP, najprv skontrolujte svoje internetové pripojenie."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Uskutočnenie hovorov SIP vyžaduje pripojenie k sieti Wi‑Fi (použite nastavenia bezdrôtovej siete)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Volanie SIP nie je podporované"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automaticky"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Vždy odoslať"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Vstavané hovory SIP"</string>
-</resources>
diff --git a/sip/res/values-sl/strings.xml b/sip/res/values-sl/strings.xml
deleted file mode 100644
index 0d53703..0000000
--- a/sip/res/values-sl/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Nastavitve SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Računi SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Računi"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Sprejmi dohodne klice"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Poraba akumulatorja je večja"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Uporaba klicanja SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Uporaba klicanja SIP (samo v omrežju Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Za vse klice, ko podatkovno omrežje ni na voljo"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Samo za klice SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Za vse klice"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Dodajanje računa"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Odstrani račun"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Računi SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Shranjevanje računa ..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Odstranjevanje računa ..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Shrani"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Zavrzi"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Zapiranje profila"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"V redu"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Zapri"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Preverjanje stanja ..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registriranje ..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Še vedno poskušamo ..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Ne sprejema klicev."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Registracija računa je bila prekinjena, ker ni internetne povezave."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Registracija računa je bila prekinjena, ker ni povezave Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Registracija računa ni uspela."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Sprejemanje klicev."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Registracija računa ni uspela: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Pozneje sledi vnovičen poskus."</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Registracija računa ni uspela: napačno uporabniško ime ali geslo."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Registracija računa ni uspela: preverite ime strežnika."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Ta račun trenutno uporablja aplikacija <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Podrobnosti o računu SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Podrobnosti o računu SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Strežnik"</string>
-    <string name="username_title" msgid="298416796886107970">"Uporabniško ime"</string>
-    <string name="password_title" msgid="8035579335591959021">"Geslo"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Prikazno ime"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Naslov strežnika proxy za odhodne klice"</string>
-    <string name="port_title" msgid="1703586046264385110">"Številka vrat"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Vrsta transporta"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Pošlji sporočilo za ohranjanje povezave"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Izbirne nastavitve"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Uporabniško ime za preverjanje pristnosti"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Uporabniško ime, uporabljeno za preverjanje pristnosti"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Ni nastavljeno&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Ni nastavljeno&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Ni nastavljeno&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Enako kot uporabniško ime&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Izbirno&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Dotaknite se, da prikažete vse"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Dotaknite se, če želite skriti vse"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Vnesite podrobnosti novega računa SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Polje <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> je obvezno in ne sme biti prazno."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Številka vrat mora biti med 1000 in 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Če želite opraviti klic SIP, najprej preverite internetno povezavo."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Za klice SIP morate biti povezani v omrežje Wi-Fi (uporabite nastavitve »Brezžično in omrežja«)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Klicanje SIP ni podprto"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Samodejno"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Vedno pošlji"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Vgrajeno klicanje SIP"</string>
-</resources>
diff --git a/sip/res/values-sq/strings.xml b/sip/res/values-sq/strings.xml
deleted file mode 100644
index e2e2ff1..0000000
--- a/sip/res/values-sq/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Cilësimet SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Llogaritë SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Llogaritë"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Merr telefonata hyrëse"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Pakëson jetëgjatësinë e baterisë"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Përdor telefonatat me SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Përdor telefonatat me SIP (vetëm Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Për të gjitha telefonat kur rrjeti i të dhënave mund të përdoret"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Vetëm për telefonatat me SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Për të gjitha telefonatat"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Shto llogari"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Hiq llogarinë"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Llogaritë SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Po ruan llogarinë…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Po heq llogarinë…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Ruaj"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Hiq"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Mbyll profilin"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Në rregull"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Mbyll"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Po kontrollon statusin..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Po regjistron..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Vazhdon të riprovojë…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Nuk merr telefonata."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Regjistrimi i llogarisë ndaloi sepse nuk ka lidhje interneti."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Regjistrimi i llogarisë ndaloi sepse nuk ka lidhje Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Regjistrimi i llogarisë ishte i pasuksesshëm."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Pranimi i telefonatave."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Regjistrimi i llogarisë ishte i pasuksesshëm: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); do të provohet sërish"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Regjistrimi i llogarisë ishte i pasuksesshëm: emri i përdoruesit ose fjalëkalimi ishte i pasaktë."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Regjistrimi i llogarisë ishte i pasuksesshëm. Kontrollo emrin e serverit."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Kjo llogari është aktualisht në përdorim nga aplikacioni <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Serveri"</string>
-    <string name="username_title" msgid="298416796886107970">"Emri i përdoruesit"</string>
-    <string name="password_title" msgid="8035579335591959021">"Fjalëkalimi"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Shfaq emrin"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Adresa e proxy-it dalës"</string>
-    <string name="port_title" msgid="1703586046264385110">"Numri i portës"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Lloji i transportit"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Kontrolli i veprimtarisë"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Cilësimet opsionale"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Emri i përdoruesit për vërtetim"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Emri i përdoruesit i përdorur për vërtetim"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;I pavendosur&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;I pavendosur&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;I pavendosur&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Njësoj si emri i përdoruesit&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Jo e detyrueshme&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Prek për t\'i shfaqur të gjitha"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Prek për t\'i fshehur të gjitha"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Fut të dhënat e një llogarie të re SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> është e detyrueshme dhe nuk mund të lihet bosh."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Numri i portës duhet të jetë brenda 1 000 dhe 65 534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Për të kryer një telefonatë SIP, kontrollo lidhjen e internetit së pari."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Duhet të jesh i lidhur me rrjetin Wi-Fi për telefonata SIP (përdor \"Me valë dhe cilësimet e rrjetit\")."</string>
-    <string name="no_voip" msgid="3366395789297981738">"\"Telefonata SIP\" nuk mbështetet"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatik"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Dërgo gjithmonë"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Telefonata SIP e integruar"</string>
-</resources>
diff --git a/sip/res/values-sr/strings.xml b/sip/res/values-sr/strings.xml
deleted file mode 100644
index 4c15528..0000000
--- a/sip/res/values-sr/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"Примај долазне позиве"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Више троши батерију"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Користите SIP позивање"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Користите SIP позивање (само за WiFi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"Уклони налог"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP налози"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Чување налога..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Уклањање налога..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Сачувај"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Одбаци"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Затворите профил"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Потврди"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Затвори"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Провера статуса..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Регистровање..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"И даље покушава..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Не примамо позиве."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Регистрација налога је заустављена зато што не постоји интернет веза."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Регистрација налога је заустављена зато што не постоји WiFi веза."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Регистрација налога није успела."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Примамо позиве."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Регистрација налога није успела: <xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>; покушаћемо касније"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Регистрација налога није успела: нетачно корисничко име или лозинка."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Регистрација налога није успела: Проверите назив сервера."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Овај налог тренутно користи апликација <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Детаљи о SIP налогу"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Детаљи о SIP налогу"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Сервер"</string>
-    <string name="username_title" msgid="298416796886107970">"Корисничко име"</string>
-    <string name="password_title" msgid="8035579335591959021">"Лозинка"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Име за приказ"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Одлазна адреса проксија"</string>
-    <string name="port_title" msgid="1703586046264385110">"Број порта"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Тип преноса"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Одржавање везе порукама"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Опционална подешавања"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Корисничко име за потврду идентитета"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"За потврду идентитета користи се корисничко име"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Није подешено&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Није подешено&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Није подешено&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Исто као корисничко име&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Опционално&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Додирните да бисте приказали све"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Додирните да бисте сакрили све"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Унесите детаље о новом SIP налогу."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Поље <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> је обавезно и не може да буде празно."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Број порта би требало да буде између 1000 и 65.534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Да бисте упутили SIP позив, прво проверите интернет везу."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Треба да будете повезани са WiFi мрежом да бисте упућивали SIP позиве (користите Подешавања бежичних веза и мрежа)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP позивање није подржано"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Аутоматски"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Увек шаљи"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Уграђена функција SIP позивања"</string>
-</resources>
diff --git a/sip/res/values-sv/strings.xml b/sip/res/values-sv/strings.xml
deleted file mode 100644
index a59eb21..0000000
--- a/sip/res/values-sv/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP-inställningar"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP-konton"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Konton"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Ta emot inkommande samtal"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Drar mer batteri"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Använd SIP-samtal"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Använd SIP-samtal (endast Wi-FI)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"För alla samtal när datanätverk är tillgängligt"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Endast för SIP-samtal"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"För alla samtal"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Lägg till ett konto"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Ta bort konto"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP-konton"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Kontot sparas ..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Kontot tas bort ..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Spara"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Ignorera"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Stäng profilen"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Stäng"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Kontrollerar status ..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Registrerar ..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Försöker fortfarande ..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Tar inte emot samtal."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Kontoregistreringen avbröts eftersom det inte finns någon internetanslutning."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Kontoregistreringen avbröts eftersom det inte finns någon wifi-anslutning."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Det gick inte att registrera kontot."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Tar emot samtal."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Det gick inte att registrera kontot: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); försöker igen senare"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Det gick inte att registrera kontot: felaktigt användarnamn eller lösenord."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Det gick inte att registrera kontot. Kontrollera servernamnet."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Kontot används för närvarande i appen <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP-kontouppgifter"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP-kontouppgifter"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Användarnamn"</string>
-    <string name="password_title" msgid="8035579335591959021">"Lösenord"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Visningsnamn"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Utgående proxyadress"</string>
-    <string name="port_title" msgid="1703586046264385110">"Portnummer"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Transporttyp"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Skicka \"behåll aktiv\""</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Valfria inställningar"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Användarnamn vid autentisering"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Användarnamn som används vid autentisering"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Har inte angetts&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Har inte angetts&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Har inte angetts&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Samma som användarnamn&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Valfritt&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Tryck om du vill visa alla"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Tryck om du vill dölja alla"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Ange uppgifter för det nya SIP-kontot."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> är ett obligatoriskt fält som måste fyllas i."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Portnumret ska vara mellan 1000 och 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Om du vill ringa ett SIP-samtal kontrollerar du först att du är ansluten till internet."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Du måste vara ansluten till wifi för att kunna ringa SIP-samtal (du ändrar detta i inställningarna för Trådlöst och nätverk)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP-samtal stöds inte"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Automatiskt"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Skicka alltid"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Inbyggd tjänst för SIP-samtal"</string>
-</resources>
diff --git a/sip/res/values-sw/strings.xml b/sip/res/values-sw/strings.xml
deleted file mode 100644
index 8d76123..0000000
--- a/sip/res/values-sw/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Mipangilio ya SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Akaunti za SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Akaunti"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Pokea simu zinazoingia"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Hutumia betri zaidi"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Tumia upigaji simu wa SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Tumia upigaji simu wa SIP (Wi-Fi pekee)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Kwa simu zote wakati mtandao wa data unapatikana"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Kwa simu za SIP pekee"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Kwa simu zote"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Ongeza akaunti"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Ondoa akaunti"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Akaunti za SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Inahifadhi akaunti..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Inaondoa akaunti..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Hifadhi"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Tupa"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Funga wasifu"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Sawa"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Funga"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Inakagua hali..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Inasajili..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Bado inajaribu..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Haipokei simu."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Usajili wa akaunti umekomeshwa kwa sababu hakuna muunganisho wa Intaneti."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Usajili wa akaunti umekomeshwa kwa sababu hakuna muunganisho wa Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Usajili wa akaunti haujafaulu."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Inapokea simu."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Usajili wa akaunti hujafaulu: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); itajaribu baadaye"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Usajili wa akaunti hujafaulu: Jina la mtumiaji au nenosiri sio sahihi."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Usajili wa akaunti haujafaulu: Kagua jina la seva."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Akaunti hii inatumika kwa sasa na programu ya <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Akaunti ya SIP: maelezo"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Akaunti ya SIP: maelezo"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Seva"</string>
-    <string name="username_title" msgid="298416796886107970">"Mtumiaji"</string>
-    <string name="password_title" msgid="8035579335591959021">"Nenosiri"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Jina la kuonyesha"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Anwani ya seva mbadala ya kutoka"</string>
-    <string name="port_title" msgid="1703586046264385110">"Nambari ya mlango"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Aina ya usafiri"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Tuma weka-hai"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Mipangilio ya hiari"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Jina la mtumiaji la uthibitishaji"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Jina la mtumiaji hutumiwa kuthibitisha"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Hajawekwa&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Halijawekwa&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Haijawekwa&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Sawa na jina la mtumiaji&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Ni hiari&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Gusa ili uonyeshe yote"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Gusa ili ufiche zote"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Weka maelezo ya akaunti mpya ya SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> sharti ijazwe na haiwezi kuachwa wazi."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Nambari ya mlango inafaa kuwa kati ya 1000 na 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Ili upige simu ya SIP, kwanza kagua muunganisho wako wa Intaneti."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Inabidi uwe umeunganishwa kwenye mtandao wa Wi-Fi ili upige simu za SIP (tumia mipangilio ya Bila Kutumia Waya na Mtandao)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Upigaji simu ya SIP hauwezi kutumika."</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Otomatiki"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Tuma kila wakati"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Upigaji simu wa SIP uliojengewa ndani ya kifaa"</string>
-</resources>
diff --git a/sip/res/values-ta/strings.xml b/sip/res/values-ta/strings.xml
deleted file mode 100644
index 657d296..0000000
--- a/sip/res/values-ta/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"உள்வரும் அழைப்புகளைப் பெறு"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"பேட்டரியை அதிகமாகப் பயன்படுத்தும்"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP அழைப்பைப் பயன்படுத்து"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP அழைப்பைப் பயன்படுத்து (வைஃபை மட்டும்)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"கணக்கை அகற்று"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP கணக்குகள்"</string>
-    <string name="saving_account" msgid="3390358043846687266">"கணக்கைச் சேமிக்கிறது…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"கணக்கை அகற்றுகிறது…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"சேமி"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"நிராகரி"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"சுயவிவரத்தை மூடு"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"சரி"</string>
-    <string name="close_profile" msgid="3756064641769751774">"மூடு"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"நிலையைச் சரிபார்க்கிறது..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"பதிவுசெய்கிறது…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"இன்னும் முயற்சிக்கிறது…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"அழைப்புகளைப் பெறவில்லை."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"இணைய இணைப்பு இல்லாததால், கணக்குப் பதிவு நிறுத்தப்பட்டது."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"வைஃபை இணைப்பு இல்லாததால், கணக்குப் பதிவு நிறுத்தப்பட்டது."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"கணக்குப் பதிவு தோல்வி."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"அழைப்புகளைப் பெறுதல்."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"கணக்குப் பதிவு தோல்வி: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); பிறகு முயலவும்"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"கணக்குப் பதிவு தோல்வி: பயனர்பெயர் அல்லது கடவுச்சொல் தவறானது."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"கணக்குப் பதிவு தோல்வி: சேவையகப் பெயரைச் சரிபார்க்கவும்."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"தற்போது <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> ஆப்ஸால் கணக்குப் பயன்படுத்தப்படுகிறது."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP கணக்கு விவரங்கள்"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP கணக்கு விவரங்கள்"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"சேவையகம்"</string>
-    <string name="username_title" msgid="298416796886107970">"பயனர்பெயர்"</string>
-    <string name="password_title" msgid="8035579335591959021">"கடவுச்சொல்"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"காட்சிப் பெயர்"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"வெளிப்புற ப்ராக்ஸி முகவரி"</string>
-    <string name="port_title" msgid="1703586046264385110">"போர்ட் எண்"</string>
-    <string name="transport_title" msgid="1661659138226029178">"பரிமாற்ற வகை"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"எப்போதும் விழிப்புடன் அனுப்பு"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"விருப்ப அமைப்பு"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"அங்கீகாரப் பயனர்பெயர்"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"அங்கீகரிப்பிற்குப் பயன்படுத்தப்படும் பயனர்பெயர்"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;அமைக்கப்படவில்லை&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;அமைக்கப்படவில்லை&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;அமைக்கப்படவில்லை&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;பயனர்பெயர் போன்றது&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;விரும்பினால்&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ எல்லாவற்றையும் காட்ட தொடவும்"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ எல்லாவற்றையும் மறைக்கத் தொடவும்"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"புதிய SIP கணக்கின் விவரங்களை உள்ளிடவும்."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> அவசியமானது மற்றும் வெறுமையாக விடக்கூடாது."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"போர்ட் எண் 1000 இலிருந்து 65534 க்குள் இருக்க வேண்டும்."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP மூலம் அழைக்க, முதலில் இணைய இணைப்பைச் சரிபார்க்கவும்."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP அழைப்புகளைச் செய்ய, வைஃபை நெட்வொர்க்குடன் இணைக்கப்பட்டிருக்க வேண்டும் (வயர்லெஸ் &amp; நெட்வொர்க் அமைப்புகளைப் பயன்படுத்தவும்)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP அழைப்பு ஆதரிக்கப்படாது"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"தானியங்கு"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"எப்போதும் அனுப்பு"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"உள்கட்டமைக்கப்பட்ட SIP அழைப்பு"</string>
-</resources>
diff --git a/sip/res/values-te/strings.xml b/sip/res/values-te/strings.xml
deleted file mode 100644
index e91fab8..0000000
--- a/sip/res/values-te/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"ఇన్‌కమింగ్ కాల్స్‌ను స్వీకరించు"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"ఎక్కువ బ్యాటరీని ఉపయోగిస్తుంది"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP కాలింగ్‌ను ఉపయోగించండి"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP కాలింగ్‌ను (Wi-Fi మాత్రమే) ఉపయోగించండి"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"ఖాతాను తీసివేయండి"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP ఖాతాలు"</string>
-    <string name="saving_account" msgid="3390358043846687266">"ఖాతాను సేవ్ చేస్తోంది…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"ఖాతాను తీసివేస్తోంది…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"సేవ్ చేయి"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"విస్మరించు"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"ప్రొఫైల్‌ను మూసివేయండి"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"సరే"</string>
-    <string name="close_profile" msgid="3756064641769751774">"మూసివేయి"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"స్టేటస్‌ని తనిఖీ చేస్తోంది..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"నమోదు చేస్తోంది…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"ఇప్పటికీ ప్రయత్నిస్తోంది..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"కాల్స్‌ను స్వీకరించడం లేదు."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"ఇంటర్నెట్ కనెక్షన్ లేని కారణంగా ఖాతా నమోదు ఆపివేయబడింది."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Wi-Fi కనెక్షన్ లేని కారణంగా ఖాతా నమోదు ఆపివేయబడింది."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"ఖాతా నమోదు విఫలమైంది."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"కాల్స్‌ను స్వీకరిస్తోంది."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"ఖాతా నమోదు విఫలమైంది: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); తర్వాత ప్రయత్నిస్తుంది"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"ఖాతా నమోదు విఫలమైంది: చెల్లని వినియోగదారు పేరు లేదా పాస్‌వర్డ్."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"ఖాతా నమోదు విఫలమైంది: సర్వర్ పేరు తనిఖీ చేయండి."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"ఈ ఖాతా ప్రస్తుతం <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> యాప్‌ ద్వారా ఉపయోగంలో ఉంది."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP ఖాతా వివరాలు"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP ఖాతా వివరాలు"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"సర్వర్"</string>
-    <string name="username_title" msgid="298416796886107970">"వినియోగదారు పేరు"</string>
-    <string name="password_title" msgid="8035579335591959021">"పాస్‌వర్డ్"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"ప్రదర్శన పేరు"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"అవుట్‌బౌండ్ ప్రాక్సీ అడ్రస్‌"</string>
-    <string name="port_title" msgid="1703586046264385110">"పోర్ట్ సంఖ్య"</string>
-    <string name="transport_title" msgid="1661659138226029178">"రవాణా రకం"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"యాక్టివ్‌గా ఉంచే మెసేజ్‌ పంపండి"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"ఐచ్ఛిక సెట్టింగ్‌లు"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"ప్రామాణీకరణ వినియోగదారు పేరు"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"ప్రామాణీకరణ కోసం వినియోగదారు పేరు ఉపయోగించబడింది"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;సెట్ చేయలేదు&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;సెట్ చేయలేదు&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;సెట్ చేయలేదు&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;వినియోగదారు పేరు మాదిరిగానే&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;ఐచ్ఛికం&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ అన్నీ చూపడానికి తాకండి"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ అన్నీ దాచడానికి తాకండి"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"కొత్త SIP ఖాతా వివరాలను నమోదు చేయండి."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> అవసరం కావున ఖాళీగా వదిలిపెట్టకూడదు."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"పోర్ట్ సంఖ్య 1000 మరియు 65534 మధ్య ఉండాలి."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP కాల్ చేయడానికి, ముందుగా మీ ఇంటర్నెట్ కనెక్షన్‌ను తనిఖీ చేయండి."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"మీరు SIP కాల్స్‌ చేయడం కోసం Wi-Fi నెట్‌వర్క్‌కు కనెక్ట్ అవ్వడం అవసరం (వైర్‌లెస్ &amp; నెట్‌వర్క్ సెట్టింగ్‌లను ఉపయోగించండి)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP కాలింగ్‌కి మద్దతు లేదు"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"1205664026446156265"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"ఎల్లప్పుడూ పంపు"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"అంతర్నిర్మిత SIP కాలింగ్"</string>
-</resources>
diff --git a/sip/res/values-th/strings.xml b/sip/res/values-th/strings.xml
deleted file mode 100644
index aebf5cf..0000000
--- a/sip/res/values-th/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"รับสายเรียกเข้า"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"ใช้แบตเตอรี่มากขึ้น"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"ใช้การโทรผ่าน SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"ใช้การโทรผ่าน SIP (Wi-Fi เท่านั้น)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"นำบัญชีออก"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"บัญชี SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"กำลังบันทึกบัญชี…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"กำลังนำบัญชีออก…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"บันทึก"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"ยกเลิก"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"ปิดโปรไฟล์"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ตกลง"</string>
-    <string name="close_profile" msgid="3756064641769751774">"ปิด"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"กำลังตรวจสอบสถานะ..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"กำลังลงทะเบียน…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"กำลังพยายาม…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"ไม่รับสาย"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"การลงทะเบียนบัญชีหยุดทำงานเนื่องจากไม่มีการเชื่อมต่ออินเทอร์เน็ต"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"การลงทะเบียนบัญชีหยุดทำงานเนื่องจากไม่มีการเชื่อมต่อ Wi-Fi"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"การลงทะเบียนบัญชีไม่สำเร็จ"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"รับสาย"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"การลงทะเบียนบัญชีไม่สำเร็จ: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>) จะลองอีกครั้งในภายหลัง"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"การลงทะเบียนบัญชีไม่สำเร็จ: ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"การลงทะเบียนบัญชีไม่สำเร็จ: ตรวจสอบชื่อเซิร์ฟเวอร์"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"แอป <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> กำลังใช้บัญชีนี้อยู่ในขณะนี้"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"รายละเอียดบัญชี SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"รายละเอียดบัญชี SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"เซิร์ฟเวอร์"</string>
-    <string name="username_title" msgid="298416796886107970">"ชื่อผู้ใช้"</string>
-    <string name="password_title" msgid="8035579335591959021">"รหัสผ่าน"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"ชื่อที่แสดง"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"ที่อยู่พร็อกซีขาออก"</string>
-    <string name="port_title" msgid="1703586046264385110">"หมายเลขพอร์ต"</string>
-    <string name="transport_title" msgid="1661659138226029178">"ประเภทการส่งผ่านข้อมูล"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"ส่งแบบ keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"การตั้งค่าที่ไม่บังคับ"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"ชื่อผู้ใช้สำหรับตรวจสอบสิทธิ์"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"ชื่อผู้ใช้ที่ใช้ในการตรวจสอบสิทธิ์"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;ไม่ได้ตั้งค่า&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;ไม่ได้ตั้งค่า&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;ไม่ได้ตั้งค่า&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;เหมือนกับชื่อผู้ใช้&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;ไม่บังคับ&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ แตะเพื่อแสดงทั้งหมด"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ แตะเพื่อซ่อนทั้งหมด"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"ป้อนรายละเอียดของบัญชี SIP ใหม่"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"ต้องระบุ <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> และไม่สามารถปล่อยว่างได้"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"หมายเลขพอร์ตควรอยู่ระหว่าง 1000 ถึง 65534"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"หากต้องการโทรผ่าน SIP ให้ตรวจสอบการเชื่อมต่ออินเทอร์เน็ตก่อน"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"คุณต้องเชื่อมต่อเครือข่าย Wi-Fi เพื่อโทรผ่าน SIP (ใช้การตั้งค่าระบบไร้สายและเครือข่าย)"</string>
-    <string name="no_voip" msgid="3366395789297981738">"ไม่สนับสนุนการโทรผ่าน SIP"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"อัตโนมัติ"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"ส่งเสมอ"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"การโทรผ่าน SIP ในตัว"</string>
-</resources>
diff --git a/sip/res/values-tl/strings.xml b/sip/res/values-tl/strings.xml
deleted file mode 100644
index 06adaa7..0000000
--- a/sip/res/values-tl/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Mga setting ng SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Mga SIP account"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Mga Account"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Tumanggap ng papasok na tawag"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Gumagamit ng higit na baterya"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Gamitin ang SIP calling"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Gamitin ang SIP calling (Wi-Fi lang)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Para sa lahat ng mga tawag kapag available ang data network"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Para lang sa mga tawag sa pamamagitan ng SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Para sa lahat ng tawag"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Magdagdag ng account"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Alisin ang account"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Mga SIP account"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Sine-save ang account..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Inaalis ang account..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"I-save"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"I-discard"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Isara ang profile"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Ayos"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Isara"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Tinitingnan ang status..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Inirerehistro..."</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Sinusubukan pa rin..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Hindi tumatanggap ng mga tawag."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Nahinto ang pagpaparehistro ng account dahil walang koneksyon sa Internet."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Nahinto ang pagpaparehistro ng account dahil walang koneksyon sa Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Hindi matagumpay ang pagpaparehistro ng account."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Tumatanggap ng mga tawag."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Hindi matagumpay ang pagpaparehistro ng account: Susubukan ng (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); sa ibang pagkakataon"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Hindi matagumpay ang pagpaparehistro ng account: Maling username o password."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Nabigo ang pagpaparehistro ng account: Tingnan ang pangalan ng server."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Kasalukuyang ginagamit ang account na ito ng app ng <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Detalye ng SIP account"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Detalye ng SIP account"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Username"</string>
-    <string name="password_title" msgid="8035579335591959021">"Password"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Display name"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Address ng outbound proxy"</string>
-    <string name="port_title" msgid="1703586046264385110">"Numero ng port"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Uri ng paglilipat"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Magpadala ng keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Mga opsyonal na setting"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Username sa pag-authenticate"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Ginamit ang username para sa pag-authenticate"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Hindi nakatakda&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Hindi nakatakda&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Hindi nakatakda&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Katulad ng username&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Opsyonal&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Pindutin upang ipakita lahat"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Pindutin upang itago lahat"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Ilagay ang mga detalye ng bagong SIP account."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Kinakailangan ang <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> at hindi maaaring iwanang blangko."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Dapat na nasa pagitan ng 1000 at 65534 ang numero ng port."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Upang tumawag sa pamamagitan ng SIP, suriin muna ang iyong koneksyon sa Internet."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Kailangang nakakonekta ka sa isang Wi-Fi network para sa mga tawag sa pamamagitan ng SIP (gamitin ang mga setting ng Wireless at Network)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Hindi sinusuportahan ang pagtawag sa pamamagitan ng SIP"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Awtomatiko"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Palaging ipadala"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Built-in na pagtawag sa pamamagitan ng SIP"</string>
-</resources>
diff --git a/sip/res/values-tr/strings.xml b/sip/res/values-tr/strings.xml
deleted file mode 100644
index de1e672..0000000
--- a/sip/res/values-tr/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP ayarları"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP hesapları"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Hesaplar"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Gelen çağrıları al"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Daha fazla pil kullanır"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP aramayı kullan"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP aramayı kullan (sadece Kablosuz)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Veri ağı uygun durumdayken yapılan tüm çağrılar için"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Sadece SIP çağrıları için"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Tüm çağrılar için"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Hesap ekle"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Hesabı kaldır"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP hesapları"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Hesap kaydediliyor…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Hesap kaldırılıyor…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Kaydet"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Kapat"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Profili kapat"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"Tamam"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Kapat"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Durum denetleniyor..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Kayıt olunuyor…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Denemeye devam ediliyor…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Çağrıları almıyor."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"İnternet bağlantısı olmadığı için hesap kaydı durduruldu."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Kablosuz bağlantı olmadığı için hesap kaydı durduruldu."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Hesap kaydı başarısız oldu."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Çağrıları alıyor."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Hesap kaydı başarısız oldu: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Daha sonra tekrar denenecek"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Hesap kaydı başarısız oldu: Yanlış kullanıcı adı veya şifre."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Hesap kaydı başarısız oldu: Sunucu adını kontrol edin."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Bu hesap şu anda <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> uygulaması tarafından kullanılıyor."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP hesabı"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP hesabı"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Sunucu"</string>
-    <string name="username_title" msgid="298416796886107970">"Kullanıcı adı"</string>
-    <string name="password_title" msgid="8035579335591959021">"Şifre"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Görüntülenen ad"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Giden proxy adresi"</string>
-    <string name="port_title" msgid="1703586046264385110">"Bağlantı noktası numarası"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Aktarım türü"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Canlı tutma mesajı gönder"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"İsteğe bağlı ayarlar"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Kimlik doğrulama kullanıcı adı"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Kimlik doğrulama için kullanılan kullanıcı adı"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Ayarlanmadı&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Ayarlanmadı&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Ayarlanmadı&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Kullanıcı adıyla aynı&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;İsteğe bağlı&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Tümünü görmek için dokunun"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Tümünü gizlemek için dokunun"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Yeni SIP hesabının ayrıntılarını girin"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> gerekli, bu alan boş bırakılamaz."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Bağlantı noktası numarası 1000 ile 65534 arasında olmalıdır."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Bir SIP çağrısı yapmak için önce İnternet bağlantınızı kontrol edin."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP çağrıları için bir Kablosuz ağa bağlı olmanız (Kablosuz ve Ağ ayarlarını kullanın) gerekir."</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP çağrısı desteklenmiyor"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Otomatik"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Her zaman gönder"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Yerleşik SIP arama"</string>
-</resources>
diff --git a/sip/res/values-uk/strings.xml b/sip/res/values-uk/strings.xml
deleted file mode 100644
index 8b87214..0000000
--- a/sip/res/values-uk/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"Отримувати вхідні дзвінки"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Використовує більше заряду акумулятора"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Виклик через SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Виклики через SIP (лише Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"Видалити обліковий запис"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Облікові записи SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Зберігання облікового запису…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Видалення облікового запису…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Зберегти"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Відхилити"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Закрити профіль"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ОК"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Закрити"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Перевірка статусу…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Реєстрація…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Повторна спроба…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Дзвінки не надходять."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Реєстрацію облікового запису зупинено, оскільки немає з’єднання з Інтернетом."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Реєстрацію облікового запису зупинено, оскільки немає з’єднання з мережею Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Обліковий запис не зареєстровано."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Дзвінки надходять."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Обліковий запис не зареєстровано (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). Ми спробуємо пізніше"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Обліковий запис не зареєстровано: неправильне ім’я користувача чи пароль."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Обліковий запис не зареєстровано: перевірте ім’я сервера."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Зараз цей обліковий запис використовується додатком <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Обл. запис SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Обл. запис SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Сервер"</string>
-    <string name="username_title" msgid="298416796886107970">"Ім’я користувача"</string>
-    <string name="password_title" msgid="8035579335591959021">"Пароль"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Видиме ім’я"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Адреса проксі-сервера вихідних дзвінків"</string>
-    <string name="port_title" msgid="1703586046264385110">"Номер порту"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Тип транспортування"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Надсилання для підтримки з’єднання"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Додаткові налаштування"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Ім’я користувача для автентифікації"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Ім’я користувача, використане для автентифікації"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Не введено&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Не введено&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Не введено&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Те саме, що й ім’я користувача&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Додатково&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Торкніться, щоб показати все"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Торкніться, щоб сховати все"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Введіть деталі нового облікового запису SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"Поле <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> обов’язкове. Воно не може бути порожнім."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Введіть номер порту між 1000 та 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Щоб здійснити виклик SIP, спершу перевірте своє з’єднання з Інтернетом."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Для викликів SIP потрібне з’єднання з мережею Wi-Fi (скористайтеся налаштуваннями бездротового зв’язку та мереж)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Виклики SIP не підтримуються"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Автоматично"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Завжди надсилати"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Вбудована функція викликів SIP"</string>
-</resources>
diff --git a/sip/res/values-ur/strings.xml b/sip/res/values-ur/strings.xml
deleted file mode 100644
index 54a5f64..0000000
--- a/sip/res/values-ur/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"اِن کمنگ کالیں وصول کریں"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"مزید بیٹری استعمال کرتا ہے"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"‏SIP کالنگ استعمال کریں"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"‏SIP کالنگ استعمال کریں (صرف Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"اکاؤنٹ ہٹائیں"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"‏SIP اکاؤنٹس"</string>
-    <string name="saving_account" msgid="3390358043846687266">"اکاؤنٹ محفوظ کیا جا رہا ہے…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"اکاؤنٹ ہٹایا جا رہا ہے…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"محفوظ کریں"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"مسترد کریں"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"پروفائل بند کریں"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"ٹھیک ہے"</string>
-    <string name="close_profile" msgid="3756064641769751774">"بند کریں"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"اسٹیٹس کو چیک کیا جا رہا ہے…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"رجسٹر کیا جا رہا ہے…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"اب بھی کوشش کی جا رہی ہے…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"کالیں موصول نہیں ہو رہی ہیں۔"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"اکاؤنٹ رجسٹریشن رک گیا کیونکہ کوئی انٹرنیٹ کنکشن نہیں ہے۔"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"‏اکاؤنٹ رجسٹریشن رک گیا کیونکہ کوئی Wi-Fi کنکشن نہیں ہے۔"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"اکاؤنٹ رجسٹریشن ناکام ہوگیا۔"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"کالز موصول ہو رہی ہیں۔"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"اکاؤنٹ رجسٹریشن ناکام ہوگیا: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>)؛ بعد میں کوشش کرے گا"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"اکاؤنٹ رجسٹریشن ناکام ہوگیا: غلط صارف نام یا پاس ورڈ۔"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"اکاؤنٹ رجسٹریشن ناکام ہوگیا: سرور کا نام چیک کریں۔"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"یہ اکاؤنٹ فی الحال <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> ایپ کے ذریعہ زیر استعمال ہے۔"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"‏SIP اکاؤنٹ تفصیلات"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"‏SIP اکاؤنٹ کی تفصیلات"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"سرور"</string>
-    <string name="username_title" msgid="298416796886107970">"صارف نام"</string>
-    <string name="password_title" msgid="8035579335591959021">"پاس ورڈ"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"ڈسپلے نام"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"آؤٹ باؤنڈ پراکسی پتہ"</string>
-    <string name="port_title" msgid="1703586046264385110">"پورٹ نمبر"</string>
-    <string name="transport_title" msgid="1661659138226029178">"ٹرانسپورٹ کی قسم"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"‏keep-alive بھیجیں"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"اختیاری ترتیبات"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"توثیق کیلئے صارف نام"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"توثیق کیلئے استعمال کردہ صارف نام"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"‏‎&lt;سیٹ نہیں ہے&gt;‎"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"‏‎&lt;سیٹ نہیں ہے&gt;‎"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"‏‎&lt;سیٹ نہیں ہے&gt;‎"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"‏&lt;بالکل وہی جو صارف نام ہے&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"‏&lt;اختیاری&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"◁ سبھی کو دکھانے کیلئے ٹچ کریں"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ سبھی کو چھپانے کیلئے ٹچ کریں"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"‏نئے SIP اکاؤنٹ کی تفصیلات شامل کریں۔"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> مطلوب ہے اور خالی نہیں چھوڑا جا سکتا۔"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"پورٹ نمبر 1000 اور 65534 کے اندر ہونا چاہیے۔"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"‏ایک SIP کال کرنے کیلئے، پہلے اپنا انٹرنیٹ کنکشن چیک کریں۔"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"‏SIP کالز کیلئے آپ کو ایک Wi-Fi نیٹ ورک سے منسلک ہونے کی ضرورت ہے (وائرلیس اور نیٹ ورک ترتیبات استعمال کریں)۔"</string>
-    <string name="no_voip" msgid="3366395789297981738">"‏SIP کالنگ تعاون یافتہ نہیں ہے"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"خودکار"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"ہمیشہ بھیجیں"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"‏پہلے سے شامل SIP کالنگ"</string>
-</resources>
diff --git a/sip/res/values-uz/strings.xml b/sip/res/values-uz/strings.xml
deleted file mode 100644
index f951de2..0000000
--- a/sip/res/values-uz/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"SIP sozlamalari"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"SIP hisoblari"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Hisoblar"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Kiruvchi chaqiruvlarni qabul qilish"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Batareya quvvati tezroq sarflanadi"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"SIP orqali chaqiruv"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP-qo‘ng‘iroq (faqat Wi-Fi)"</string>
-    <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 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>
-    <string name="removing_account" msgid="1544132880414780408">"Hisob o‘chirilmoqda…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Saqlash"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Bekor qilish"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Profilni yoping"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Yopish"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Holati tekshirilmoqda…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Ro‘yxatdan o‘tkazilmoqda…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Hanuzgacha urinilmoqda…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Qo‘ng‘iroqlar qabul qilinmayapti."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Hisobni ro‘yxatdan o‘tkazish to‘xtatildi, chunki internetga ulanilmagan."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Hisobni ro‘yxatdan o‘tkazish to‘xtatildi, chunki Wi-Fi ulanishlari mavjud emas."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Hisobni ro‘yxatdan o‘tkazish muvaffaqiyatsiz tugadi."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Qabul qilingan qo‘ng‘iroqlar."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Hisobni ro‘yxatdan o‘tkazish amalga oshmadi: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); keyinroq urinib ko‘riladi"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Hisobni ro‘yxatdan o‘tkazish amalga oshmadi: foydalanuvchi nomi yoki parol xato."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Hisobni ro‘yxatdan o‘tkazish muvaffaqiyatsiz tugadi: server nomini tekshirib ko‘ring."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Ushbu hisob <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> ilovasi tomonidan hozirda foydalanilmoqda."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP hisobi"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP hisobi"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Server"</string>
-    <string name="username_title" msgid="298416796886107970">"Foydalanuvchi nomi"</string>
-    <string name="password_title" msgid="8035579335591959021">"Parol"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Chiqadigan ism"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Proksi-server manzili"</string>
-    <string name="port_title" msgid="1703586046264385110">"Port raqami"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Protokol"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Keep-alive elementini yuborish"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Kengaytirilgan sozlamalar"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Foydalanuvchi nomi"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Haqiqiylikni tekshirish uchun foydalanuvchi nomi"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Kiritilmagan&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Kiritilmagan&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Kiritilmagan&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Foydalanuvchi nomi bilan bir xil&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Ixtiyoriy&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Hammasini ochish uchun bosing"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Berkitish uchun bu yerga bosing"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Yangi SIP hisobingiz ma’lumotlarini kiriting."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>ni to‘ldirish shart, u bo‘sh qolmasligi kerak."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Port raqami 1000 va 65534 oralig‘ida bo‘lishi kerak."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"SIP qo‘ng‘irog‘ini amalga oshirish uchun avval internetga ulanishni tekshiring."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"SIP qo‘ng‘iroqlarini amalga oshirish uchun biror Wi-Fi tarmog‘iga ulanish lozim (“Simsiz tarmoqlar” sozlamalaridan foydalaning)"</string>
-    <string name="no_voip" msgid="3366395789297981738">"SIP qo‘ng‘iroqlari qo‘llab-quvvatlanmaydi"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Avtomatik"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Doim yuborilsin"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Ichki o‘rnatilgan SIP qo‘ng‘iroqlari"</string>
-</resources>
diff --git a/sip/res/values-vi/strings.xml b/sip/res/values-vi/strings.xml
deleted file mode 100644
index aa6b326..0000000
--- a/sip/res/values-vi/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Cài đặt SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Tài khoản SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Tài khoản"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Nhận cuộc gọi đến"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Tốn pin hơn"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Sử dụng tính năng gọi điện SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Sử dụng tính năng gọi điện SIP (chỉ Wi-Fi)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Dành cho tất cả các cuộc gọi khi mạng dữ liệu sẵn có"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Chỉ cho cuộc gọi SIP"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Cho tất cả cuộc gọi"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Thêm tài khoản"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Xóa tài khoản"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Tài khoản SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Đang lưu tài khoản..."</string>
-    <string name="removing_account" msgid="1544132880414780408">"Đang xóa tài khoản..."</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Lưu"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Hủy"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Đóng tiểu sử"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"OK"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Đóng"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Đang kiểm tra trạng thái..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Đang đăng ký…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Vẫn đang thử..."</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Đang không nhận cuộc gọi."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Đăng ký tài khoản đã dừng do không có kết nối Internet."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Đăng ký tài khoản đã dừng do không có kết nối Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Đăng ký tài khoản không thành công."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Đang nhận cuộc gọi."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Đăng ký tài khoản không thành công: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); sẽ thử sau"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Đăng ký tài khoản không thành công: Tên người dùng hoặc mật khẩu không chính xác."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Đăng ký tài khoản không thành công: Kiểm tra tên máy chủ."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Tài khoản này hiện đang được ứng dụng <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> sử dụng."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Chi tiết tài khoản SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Chi tiết tài khoản SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Máy chủ"</string>
-    <string name="username_title" msgid="298416796886107970">"Tên người dùng"</string>
-    <string name="password_title" msgid="8035579335591959021">"Mật khẩu"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Tên hiển thị"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Địa chỉ proxy đi"</string>
-    <string name="port_title" msgid="1703586046264385110">"Số cổng"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Loại truyền tải"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Gửi gói tin giữ kết nối"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Các mục cài đặt khác"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Tên người dùng xác thực"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Tên người dùng để xác thực"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Chưa đặt&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Chưa đặt&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Chưa đặt&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Giống như tên người dùng&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Tùy chọn&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Chạm để hiển thị tất cả"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Chạm để ẩn tất cả"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Nhập chi tiết của tài khoản SIP mới."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> là bắt buộc và không thể để trống."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Số cổng phải trong khoảng từ 1000 đến 65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Để thực hiện cuộc gọi SIP, trước tiên hãy kiểm tra kết nối Internet của bạn."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Bạn cần kết nối với mạng Wi-Fi cho cuộc gọi SIP (hãy sử dụng cài đặt Không dây và Mạng)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Tính năng gọi điện SIP không được hỗ trợ"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Tự động"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Luôn luôn gửi"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Tính năng gọi điện SIP tích hợp sẵn"</string>
-</resources>
diff --git a/sip/res/values-zh-rCN/strings.xml b/sip/res/values-zh-rCN/strings.xml
deleted file mode 100644
index 98b55e9..0000000
--- a/sip/res/values-zh-rCN/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"接听来电"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"会消耗更多电量"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"使用 SIP 通话功能"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"使用 SIP 通话功能（仅通过 WLAN 网络）"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"移除帐号"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"互联网电话帐号"</string>
-    <string name="saving_account" msgid="3390358043846687266">"正在保存帐号…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"正在移除帐号…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"保存"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"舍弃"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"关闭个人资料"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"确定"</string>
-    <string name="close_profile" msgid="3756064641769751774">"关闭"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"正在检查状态…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"正在注册…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"仍在尝试…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"无法接听电话。"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"由于未连接到互联网，帐号注册已停止。"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"由于未连接到WLAN网络，帐号注册已停止。"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"帐号注册失败。"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"可以接听电话。"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"帐号注册失败：（<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>）；系统会在稍后重试"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"帐号注册失败：用户名或密码有误。"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"帐号注册失败：请检查服务器名称。"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"<xliff:g id="ACCOUNT_OWNER">%s</xliff:g>应用目前正在使用此帐号。"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP 帐号详情"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP 帐号详情"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"服务器"</string>
-    <string name="username_title" msgid="298416796886107970">"用户名"</string>
-    <string name="password_title" msgid="8035579335591959021">"密码"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"显示名称"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"出站代理地址"</string>
-    <string name="port_title" msgid="1703586046264385110">"端口号"</string>
-    <string name="transport_title" msgid="1661659138226029178">"传输类型"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"发送持续连接消息"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"可选设置"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"身份验证用户名"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"用于验证身份的用户名"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;未设置&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;未设置&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;未设置&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;与用户名相同&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;可选&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ 点按可全部显示"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ 点按可全部隐藏"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"请输入新 SIP 帐号的详情。"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"“<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>”属于必填字段，不得留空。"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"端口号应在1000与65534之间。"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"要拨打 SIP 电话，请先检查您的互联网连接。"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"您需要连接到 WLAN 网络才能拨打 SIP 电话（使用“无线和网络”设置）。"</string>
-    <string name="no_voip" msgid="3366395789297981738">"不支持 SIP 通话功能"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"自动"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"一律发送"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"内置 SIP 通话功能"</string>
-</resources>
diff --git a/sip/res/values-zh-rHK/strings.xml b/sip/res/values-zh-rHK/strings.xml
deleted file mode 100644
index 23b3d19..0000000
--- a/sip/res/values-zh-rHK/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"接聽來電"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"耗電量更多"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"使用 SIP 通話"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"使用 SIP 通話 (只限 Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"移除帳戶"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP 帳戶"</string>
-    <string name="saving_account" msgid="3390358043846687266">"正在儲存帳戶…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"正在移除帳戶…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"儲存"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"捨棄"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"關閉個人檔案"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"確定"</string>
-    <string name="close_profile" msgid="3756064641769751774">"關閉"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"正在檢查狀態…"</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"正在註冊…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"仍在嘗試…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"無法接聽電話。"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"由於未連結互聯網，帳戶的註冊已停止。"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"由於未連結 Wi-Fi 網絡，帳戶的註冊已停止。"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"帳戶註冊失敗。"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"可以接聽電話。"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"帳戶註冊失敗：(<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>)；將於稍後重試"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"帳戶註冊失敗：使用者名稱或密碼不正確。"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"帳戶註冊失敗：請查看伺服器名稱。"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"這個帳戶目前正由 <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> 應用程式使用。"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP 帳戶詳情"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP 帳戶詳情"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"伺服器"</string>
-    <string name="username_title" msgid="298416796886107970">"使用者名稱"</string>
-    <string name="password_title" msgid="8035579335591959021">"密碼"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"顯示名稱"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"對外代理伺服器位址"</string>
-    <string name="port_title" msgid="1703586046264385110">"通訊埠號碼"</string>
-    <string name="transport_title" msgid="1661659138226029178">"傳輸類型"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"傳送 keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"可選設定"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"驗證使用者名稱"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"用於驗證的使用者名稱"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;未設定&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;未設定&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;未設定&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;與使用者名稱相同&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;非必填&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ 輕觸即可全部顯示"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ 輕觸即可全部隱藏"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"請輸入新 SIP 帳戶的詳細資料。"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"「<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>」為必填欄位，不得留空。"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"通訊埠號碼必須介乎 1000 至 65534 之間。"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"如要進行 SIP 通話，請先檢查您的互聯網連線。"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"如要進行 SIP 通話，您需要連線至 Wi-Fi 網絡 (使用無線和網絡設定)。"</string>
-    <string name="no_voip" msgid="3366395789297981738">"不支援 SIP 通話"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"自動"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"永遠傳送"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"內置 SIP 通話"</string>
-</resources>
diff --git a/sip/res/values-zh-rTW/strings.xml b/sip/res/values-zh-rTW/strings.xml
deleted file mode 100644
index ab828ea..0000000
--- a/sip/res/values-zh-rTW/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="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_receive_calls" msgid="3403644006618369349">"接聽來電"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"耗電量會因此增加"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"使用 SIP 通話功能"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"使用 SIP 通話功能 (僅限 Wi-Fi)"</string>
-    <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="remove_sip_account" msgid="8272617403399636513">"移除帳戶"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"SIP 帳戶"</string>
-    <string name="saving_account" msgid="3390358043846687266">"正在儲存帳戶…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"正在移除帳戶…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"儲存"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"捨棄"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"關閉個人資料"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"確定"</string>
-    <string name="close_profile" msgid="3756064641769751774">"關閉"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"正在檢查狀態..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"註冊中…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"仍在嘗試中…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"無法接聽電話。"</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"因沒有網際網路連線，帳戶的註冊作業已停止。"</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"找不到 Wi-Fi 連線，帳戶註冊作業已中止。"</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"帳戶註冊失敗。"</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"可以接聽電話。"</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"帳戶註冊失敗：(<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>)；將於稍後重試"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"帳戶註冊失敗：使用者名稱或密碼不正確。"</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"帳戶註冊失敗：請檢查伺服器名稱。"</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"這個帳戶目前由 <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> 應用程式使用中。"</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"SIP 帳戶詳細資料"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP 帳戶詳細資料"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"伺服器"</string>
-    <string name="username_title" msgid="298416796886107970">"使用者名稱"</string>
-    <string name="password_title" msgid="8035579335591959021">"密碼"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"顯示名稱"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"連出 Proxy 位址"</string>
-    <string name="port_title" msgid="1703586046264385110">"通訊埠號碼"</string>
-    <string name="transport_title" msgid="1661659138226029178">"傳輸類型"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"傳送 keep-alive"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"選用設定"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"驗證使用者名稱"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"用於進行驗證的使用者名稱"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;未設定&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;未設定&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;未設定&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;與使用者名稱相同&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;選用&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ 輕觸即可全部顯示"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ 輕觸即可全部隱藏"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"請輸入新 SIP 帳戶的詳細資料。"</string>
-    <string name="empty_alert" msgid="3693655518612836718">"「<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g>」為必填欄位，不得留空。"</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"通訊埠號碼必須介於 1000 到 65534 間。"</string>
-    <string name="no_internet_available" msgid="161720645084325479">"如要撥打 SIP 電話，請先檢查您的網際網路連線。"</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"您必須連上 Wi-Fi 網路，才能使用 SIP 通話功能 (透過「無線與網路」設定)。"</string>
-    <string name="no_voip" msgid="3366395789297981738">"不支援 SIP 通話功能"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"自動"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"一律傳送"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"內建 SIP 通話功能"</string>
-</resources>
diff --git a/sip/res/values-zu/strings.xml b/sip/res/values-zu/strings.xml
deleted file mode 100644
index c4ee307..0000000
--- a/sip/res/values-zu/strings.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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="sip_settings" msgid="7452587325305604702">"Izilungiselelo ze-SIP"</string>
-    <string name="sip_accounts" msgid="7297896885665783239">"Ama-akhawunti we-SIP"</string>
-    <string name="sip_accounts_title" msgid="3061686404598143943">"Ama-akhawunti"</string>
-    <string name="sip_receive_calls" msgid="3403644006618369349">"Thola amakholi angenayo"</string>
-    <string name="sip_receive_calls_summary" msgid="5306603671778761443">"Isebenzisa impilo yebhethri eningi"</string>
-    <string name="sip_call_options_title" msgid="5027066677561068192">"Sebenzisa ukushaya kwe-SIP"</string>
-    <string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"Sebenzisa ukushaya kwe-SIP (i-Wi-Fi kuphela)"</string>
-    <string name="sip_call_options_entry_1" msgid="4722647332760934261">"Yawo wonke amakholi uma inethiwekhi yedatha itholakala"</string>
-    <string name="sip_call_options_entry_2" msgid="7338504256051655013">"Ngeyamakholi we-SIP kuphela"</string>
-    <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Yamakholi wonke"</string>
-    <string name="add_sip_account" msgid="5754758646745144384">"Engeza i-akhawunti"</string>
-    <string name="remove_sip_account" msgid="8272617403399636513">"Susa i-akhawunti"</string>
-    <string name="sip_account_list" msgid="2596262496233721769">"Ama-akhawunti we-SIP"</string>
-    <string name="saving_account" msgid="3390358043846687266">"Ilondoloza i-akhawunti…"</string>
-    <string name="removing_account" msgid="1544132880414780408">"Isusa i-akhawunti…"</string>
-    <string name="sip_menu_save" msgid="4377112554203123060">"Londoloza"</string>
-    <string name="sip_menu_discard" msgid="1883166691772895243">"Lahla"</string>
-    <string name="alert_dialog_close" msgid="1734746505531110706">"Vala iphrofayela"</string>
-    <string name="alert_dialog_ok" msgid="7806760618798687406">"KULUNGILE"</string>
-    <string name="close_profile" msgid="3756064641769751774">"Vala"</string>
-    <string name="registration_status_checking_status" msgid="884179594507591180">"Ihlola isimo..."</string>
-    <string name="registration_status_registering" msgid="7986331597809521791">"Iyabhalisa…"</string>
-    <string name="registration_status_still_trying" msgid="7178623685868766282">"Isazama namanje…"</string>
-    <string name="registration_status_not_receiving" msgid="3873074208531938401">"Ayamukeli amakholi."</string>
-    <string name="registration_status_no_data" msgid="2987064560116584121">"Ukubhaliswa kwe-akhawunti kumisiwe ngoba akukho ukuxhumeka kwe-inthanethi."</string>
-    <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Ukubhaliswa kwe-akhawunti kumisiwe ngoba akukho ukuxhumeka kwe-Wi-Fi."</string>
-    <string name="registration_status_not_running" msgid="6236403137652262659">"Ukubhaliswa kwe-akhawunti akuphumelelanga."</string>
-    <string name="registration_status_done" msgid="6787397199273357721">"Yamukela amakholi."</string>
-    <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Ukubhaliswa kwe-akhawunti akuphumelelanga: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>; izozama emuva kwesikhathi"</string>
-    <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Ukubhaliswa kwe-akhawunti akuphumelelanga: Igama lomsebenzisi elingalungile noma iphasiwedi."</string>
-    <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Ukubhaliswa kwe-akhawunti akuphumelelanga: Hlola igama leseva."</string>
-    <string name="third_party_account_summary" msgid="5918779106950859167">"Le akhawunti okwamanje isetshenziswa nguhlelo lokusebenza lwe-<xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
-    <string name="sip_edit_title" msgid="7438891546610820307">"Imininingwane ye-akhawunti ye-SIP"</string>
-    <string name="sip_edit_new_title" msgid="8394790068979636381">"Imininingwane ye-akhawunti ye-SIP"</string>
-    <string name="domain_address_title" msgid="8238078615181248579">"Iseva"</string>
-    <string name="username_title" msgid="298416796886107970">"Igama lomsebenzisi"</string>
-    <string name="password_title" msgid="8035579335591959021">"Iphasiwedi"</string>
-    <string name="display_name_title" msgid="3730105783656830160">"Bonisa igama"</string>
-    <string name="proxy_address_title" msgid="4120361943254795287">"Ikheli lommeleli ophumayo"</string>
-    <string name="port_title" msgid="1703586046264385110">"Inombolo yembobo"</string>
-    <string name="transport_title" msgid="1661659138226029178">"Uhlobo lwendlela yezokuthutha"</string>
-    <string name="send_keepalive_title" msgid="5319788151608946049">"Thumula igcina kuphila"</string>
-    <string name="advanced_settings" msgid="2704644977548662872">"Izilungiselelo ongazikhetha"</string>
-    <string name="auth_username_title" msgid="9002505242616662698">"Igama lomsebenzisi lokufakazela ubuqiniso"</string>
-    <string name="auth_username_summary" msgid="6346313945275377230">"Igama lomsebenzisi elisetshenziselwa ukufakazela ubuqiniso"</string>
-    <string name="default_preference_summary_username" msgid="8788114717555599222">"&lt;Ayisethiwe&gt;"</string>
-    <string name="default_preference_summary_password" msgid="3695366978153175549">"&lt;Ayisethiwe&gt;"</string>
-    <string name="default_preference_summary_domain_address" msgid="443247296785732364">"&lt;Ayisethiwe&gt;"</string>
-    <string name="display_name_summary" msgid="6749135030093260358">"&lt;Ifana negama lomsebenzisi&gt;"</string>
-    <string name="optional_summary" msgid="620379377865437488">"&lt;Ongakukhetha&gt;"</string>
-    <string name="advanced_settings_show" msgid="2318728080037568529">"▷ Thinta ukuze ubonise konke"</string>
-    <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Thinta ukuze ufihle konke"</string>
-    <string name="all_empty_alert" msgid="6085603517610199098">"Faka imininingwane ye-akhawunti entsha ye-SIP."</string>
-    <string name="empty_alert" msgid="3693655518612836718">"I-<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> iyadingeka futhi ayikwazi ukungabi nalutho."</string>
-    <string name="not_a_valid_port" msgid="3664668836663491376">"Inombolo yembobo kumele ibe phakathi kokungu-1000 nokungu-65534."</string>
-    <string name="no_internet_available" msgid="161720645084325479">"Ukuze wenze ikholi ye-SIP, hlola ukuxhumeka kwe-inthanethi yakho kuqala."</string>
-    <string name="no_wifi_available" msgid="1179092018692306312">"Kuzomele uxhumeke kunethiwekhi ye-Wi-Fi ngamakholi we-SIP (sebenzisa izilungiselelo ezingenantambo nenethiwekhi)."</string>
-    <string name="no_voip" msgid="3366395789297981738">"Ukushaya kwe-SIP akusekelwe"</string>
-    <string name="sip_system_decide" msgid="197230378376326430">"Okuzenzakalelayo"</string>
-    <string name="sip_always_send_keepalive" msgid="4986533673960084769">"Thumela njalo"</string>
-    <string name="sip_connection_service_label" msgid="8796284274240316006">"Ukushaya okwakhelwe ngaphakathi kwe-SIP"</string>
-</resources>
diff --git a/sip/res/values/array.xml b/sip/res/values/array.xml
deleted file mode 100644
index 1f33204..0000000
--- a/sip/res/values/array.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<!-- Array resources for the Phone app. -->
-<resources>
-    <string-array translatable="false" name="transport_types">
-        <item>UDP</item>
-        <item>TCP</item>
-    </string-array>
-
-    <string-array translatable="true" name="sip_call_options_entries">
-        <item>@string/sip_call_options_entry_1</item>
-        <item>@string/sip_call_options_entry_2</item>
-    </string-array>
-
-    <string-array translatable="true" name="sip_call_options_wifi_only_entries">
-        <item>@string/sip_call_options_wifi_only_entry_1</item>
-        <item>@string/sip_call_options_entry_2</item>
-    </string-array>
-
-    <string-array translatable="false" name="sip_call_options_values">
-        <item>@string/sip_always</item>
-        <item>@string/sip_address_only</item>
-    </string-array>
-
-    <string-array translatable="true" name="sip_send_keepalive_options">
-        <item>@string/sip_system_decide</item>
-        <item>@string/sip_always_send_keepalive</item>
-    </string-array>
-
-</resources>
diff --git a/sip/res/values/strings.xml b/sip/res/values/strings.xml
deleted file mode 100644
index d515736..0000000
--- a/sip/res/values/strings.xml
+++ /dev/null
@@ -1,177 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-
-    <!-- Title displayed SIP settings coming after other call settings in the call features screen. [CHAR LIMIT=NONE] -->
-    <string name="sip_settings">SIP settings</string>
-    <!-- Title displayed SIP account settings in the sip settings category. [CHAR LIMIT=NONE] -->
-    <string name="sip_accounts">SIP accounts</string>
-    <!-- Title displayed SIP account settings in the sip settings category. [CHAR LIMIT=NONE] -->
-    <string name="sip_accounts_title">Accounts</string>
-    <!-- Title displayed for the button of receiving incoming SIP calls flag. Enabled for receiving calls. [CHAR LIMIT=NONE] -->
-    <string name="sip_receive_calls">Receive incoming calls</string>
-    <!-- Help user to understand that it will require more battery usage if the 'receiving incoming call' is enabled. [CHAR LIMIT=NONE] -->
-    <string name="sip_receive_calls_summary">Uses more battery life</string>
-    <!-- Title for the dialog of selecting the way we handle an outgoing call. [CHAR LIMIT=NONE] -->
-    <string name="sip_call_options_title">Use SIP calling</string>
-    <!-- Title for the dialog of selecting the way we handle an outgoing call (Wi-Fi only). [CHAR LIMIT=NONE] -->
-    <string name="sip_call_options_wifi_only_title">Use SIP calling (Wi-Fi only)</string>
-
-    <!-- Item of the SIP call option dialog: for routing all outgoing calls via SIP. [CHAR LIMIT=NONE] -->
-    <string name="sip_call_options_entry_1">For all calls when data network is available</string>
-    <!-- Item of the SIP call option dialog: for routing a outgoing call via SIP if the destination is a SIP URI. [CHAR LIMIT=NONE] -->
-    <string name="sip_call_options_entry_2">Only for SIP calls</string>
-    <!-- Item of the SIP call (Wi-Fi only) option dialog: for routing all outgoing calls via SIP. [CHAR LIMIT=NONE] -->
-    <string name="sip_call_options_wifi_only_entry_1">For all calls</string>
-
-    <!-- Title for the button to add a new sip account. [CHAR LIMIT=NONE] -->
-    <string name="add_sip_account">Add account</string>
-    <!-- Title for the button to remove a sip account. [CHAR LIMIT=NONE] -->
-    <string name="remove_sip_account">Remove account</string>
-    <!-- String of the category which lists all sip accounts. [CHAR LIMIT=NONE] -->
-    <string name="sip_account_list">SIP accounts</string>
-    <!-- Toast message to indicate that the system is saving the account. [CHAR LIMIT=NONE] -->
-    <string name="saving_account">Saving the account\u2026</string>
-    <!-- Toast message to indicate that the system is removing the account. [CHAR LIMIT=NONE] -->
-    <string name="removing_account">Removing the account\u2026</string>
-
-    <!-- Menu item when the menu button is pressed in the sip account editor. [CHAR LIMIT=NONE] -->
-    <string name="sip_menu_save">Save</string>
-    <!-- Menu item when the menu button is pressed in the sip account editor. [CHAR LIMIT=NONE] -->
-    <string name="sip_menu_discard">Discard</string>
-
-    <!-- Title of the alert dialog. [CHAR LIMIT=NONE] -->
-    <string name="alert_dialog_close">Close the profile</string>
-    <!-- Title of the button to show in a alert dialog. [CHAR LIMIT=NONE] -->
-    <string name="alert_dialog_ok">OK</string>
-    <!-- Title of the button to show in a alert dialog. [CHAR LIMIT=NONE] -->
-    <string name="close_profile">Close</string>
-
-    <!-- Text of SIP-call registration status, checking current registration status with SIP service [CHAR LIMIT=NONE] -->
-    <string name="registration_status_checking_status">Checking status...</string>
-    <!-- Text of SIP-call registration status, registering with SIP server in order to receive calls on this account [CHAR LIMIT=NONE] -->
-    <string name="registration_status_registering">Registering\u2026</string>
-    <!-- Text of SIP-call registration status, still trying to register with SIP server [CHAR LIMIT=NONE] -->
-    <string name="registration_status_still_trying">Still trying\u2026</string>
-    <!-- Text of SIP-call registration status, currently not receiving calls on this account [CHAR LIMIT=NONE] -->
-    <string name="registration_status_not_receiving">Not receiving calls.</string>
-    <!-- Text of SIP-call registration status, no data connection [CHAR LIMIT=NONE] -->
-    <string name="registration_status_no_data">Account registration stopped because there is no Internet connection.</string>
-    <!-- Text of SIP-call registration status, no Wi-Fi connection [CHAR LIMIT=NONE] -->
-    <string name="registration_status_no_wifi_data">Account registration stopped because there is no Wi-Fi connection.</string>
-    <!-- Text of SIP-call registration status, registration process is not running due to some error [CHAR LIMIT=NONE] -->
-    <string name="registration_status_not_running">Account registration unsuccessful.</string>
-    <!-- Text of SIP-call registration status, currently we can receive calls on this account [CHAR LIMIT=NONE] -->
-    <string name="registration_status_done">Receiving calls.</string>
-    <!-- Text of SIP-call registration status, registration failed with a reason; will try again later [CHAR LIMIT=NONE] -->
-    <string name="registration_status_failed_try_later">Account registration unsuccessful: (<xliff:g id="registration_error_message" example="timed out">%s</xliff:g>); will try later</string>
-    <!-- Text of SIP-call registration status, registration failed due to invalid credentials [CHAR LIMIT=NONE] -->
-    <string name="registration_status_invalid_credentials">Account registration unsuccessful: Incorrect username or password.</string>
-    <!-- Text of SIP-call registration status, registration failed due to unknown host exception [CHAR LIMIT=NONE] -->
-    <string name="registration_status_server_unreachable">Account registration unsuccessful: Check the server name.</string>
-    <!-- Text for describing the account's owner and status. For example, 'Active, in use by Google Talk', it means that the account managed by SIP service was registered by the application 'Google Talk' and the status is active. [CHAR LIMIT=NONE] -->
-    <string name="third_party_account_summary">This account is currently in use by the <xliff:g id="account_owner" example="Google Talk">%s</xliff:g> app.</string>
-
-
-    <!-- Title of the sip editor screen. [CHAR LIMIT=NONE] -->
-    <string name="sip_edit_title">SIP account details</string>
-    <!-- Title of the sip editor screen. [CHAR LIMIT=NONE] -->
-    <string name="sip_edit_new_title">SIP account details</string>
-
-    <!-- Text of the domain address preference. [CHAR LIMIT=NONE] -->
-    <string name="domain_address_title">Server</string>
-    <!-- Text of the username preference. [CHAR LIMIT=NONE] -->
-    <string name="username_title">Username</string>
-    <!-- Text of the password preference. [CHAR LIMIT=NONE] -->
-    <string name="password_title">Password</string>
-    <!-- Text of the display name preference. [CHAR LIMIT=NONE] -->
-    <string name="display_name_title">Display name</string>
-    <!-- Text of the outbound proxy address preference. [CHAR LIMIT=NONE] -->
-    <string name="proxy_address_title">Outbound proxy address</string>
-    <!-- Text of the sip server/proxy port number. [CHAR LIMIT=NONE] -->
-    <string name="port_title">Port number</string>
-    <!-- Text of the transport type preference. [CHAR LIMIT=NONE] -->
-    <string name="transport_title">Transport type</string>
-    <!-- Text of the keepalive preference. [CHAR LIMIT=NONE] -->
-    <string name="send_keepalive_title">Send keep-alive</string>
-    <!-- Text of the advanced settings section. [CHAR LIMIT=NONE] -->
-    <string name="advanced_settings">Optional settings</string>
-    <!-- Text of the username used in authentication. [CHAR LIMIT=NONE] -->
-    <string name="auth_username_title">Authentication username</string>
-    <!-- Help text of the auth_username field. [CHAR LIMIT=NONE] -->
-    <string name="auth_username_summary">Username used for authentication</string>
-
-    <!-- Initial status of the username preference is '<Not set>'. [CHAR LIMIT=NONE] -->
-    <string name="default_preference_summary_username">&lt;Not set&gt;</string>
-    <!-- Initial status of the password preference is '<Not set>'. [CHAR LIMIT=NONE] -->
-    <string name="default_preference_summary_password">&lt;Not set&gt;</string>
-    <!-- Initial status of the domain address preference is '<Not set>'. [CHAR LIMIT=NONE] -->
-    <string name="default_preference_summary_domain_address">&lt;Not set&gt;</string>
-    <!-- Default value for the display-name preference summary. [CHAR LIMIT=NONE] -->
-    <string name="display_name_summary">&lt;Same as username&gt;</string>
-    <!-- Default value for the outbound-proxy-address preference summary. [CHAR LIMIT=NONE] -->
-    <string name="optional_summary">&lt;Optional&gt;</string>
-
-    <!-- Default sip server/proxy port number. -->
-    <string translatable="false" name="default_port">5060</string>
-    <!-- Default sip server/proxy transport protocol. -->
-    <string translatable="false" name="default_transport">UDP</string>
-
-
-    <!-- Hint to show the advanced settings section. [CHAR LIMIT=NONE] -->
-    <string name="advanced_settings_show">▷ Touch to show all</string>
-    <!-- Hint to hide the advanced settings section. [CHAR LIMIT=NONE] -->
-    <string name="advanced_settings_hide">▽ Touch to hide all</string>
-
-    <!-- Text in an alert dialog telling the user that all input fields can not be left blank. [CHAR LIMIT=NONE] -->
-    <string name="all_empty_alert">Enter details of new SIP account.</string>
-    <!-- Text in an alert dialog telling the user that some input field (name of which is also part of the strings being translated above) is required and can not be left blank. [CHAR LIMIT=NONE] -->
-    <string name="empty_alert"><xliff:g id="input_field_name" example="Username, Password...">%s</xliff:g> is required and can\'t be left blank.</string>
-    <!-- Showing that port number is out of range in an alert dialog. [CHAR LIMIT=NONE] -->
-    <string name="not_a_valid_port">Port number should be within 1000 and 65534.</string>
-
-    <!-- Message of the alert dialog to notify user that there is no Internet connectivity. [CHAR LIMIT=NONE] -->
-    <string name="no_internet_available">To place a SIP call, check your Internet connection first.</string>
-    <!-- Message of the alert dialog to notify user that there is no Wi-Fi connectivity. [CHAR LIMIT=NONE] -->
-    <string name="no_wifi_available">You need to be connected to a Wi-Fi network for SIP calls (use the Wireless &amp; Network settings).</string>
-    <!-- Message of the alert dialog to notify user that SIP call is not supported. [CHAR LIMIT=NONE] -->
-    <string name="no_voip">SIP calling not supported</string>
-
-    <!-- Option for whether the SIP service should send keepalive messages. [CHAR LIMIT=40] -->
-    <string translatable="true" name="sip_system_decide">Automatic</string>
-    <!-- Option for whether the SIP service should send keepalive messages. [CHAR LIMIT=40] -->
-    <string translatable="true" name="sip_always_send_keepalive">Always send</string>
-
-    <!-- Do not translate the following strings. Used for the SIP call options. Need to be in-sync with Settings.System.SIP_ strings. -->
-    <string translatable="false" name="sip_always">SIP_ALWAYS</string>
-    <string translatable="false" name="sip_address_only">SIP_ADDRESS_ONLY</string>
-
-    <!-- Do not translate the following strings. Used for the preference keys -->
-    <string translatable="false" name="domain_address">SipDomain</string>
-    <string translatable="false" name="username">UserName</string>
-    <string translatable="false" name="password">Password</string>
-    <string translatable="false" name="display_name">DisplayName</string>
-    <string translatable="false" name="proxy_address">ProxyAddress</string>
-    <string translatable="false" name="port">Port</string>
-    <string translatable="false" name="transport">Protocol</string>
-    <string translatable="false" name="send_keepalive">SendKeepAlive</string>
-    <string translatable="false" name="advanced_settings_container">advanced settings container</string>
-    <string translatable="false" name="auth_username">AuthUserName</string>
-
-    <!-- Label for SIP connection service. -->
-    <string name="sip_connection_service_label">Built-in SIP calling</string>
-</resources>
diff --git a/sip/res/xml/sip_advanced_edit.xml b/sip/res/xml/sip_advanced_edit.xml
deleted file mode 100644
index b7974ba..0000000
--- a/sip/res/xml/sip_advanced_edit.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-        android:persistent="false">
-
-    <PreferenceCategory
-        android:key="@string/advanced_settings_container"
-        android:persistent="false">
-
-        <EditTextPreference
-            android:key="@string/auth_username"
-            android:title="@string/auth_username_title"
-            android:dialogTitle="@string/auth_username_title"
-            android:summary="@string/auth_username_summary"
-            android:persistent="false"
-            android:singleLine="true"/>
-
-        <EditTextPreference
-            android:key="@string/display_name"
-            android:title="@string/display_name_title"
-            android:dialogTitle="@string/display_name_title"
-            android:summary="@string/display_name_summary"
-            android:persistent="false"
-            android:singleLine="true"/>
-
-        <EditTextPreference
-            android:key="@string/proxy_address"
-            android:title="@string/proxy_address_title"
-            android:dialogTitle="@string/proxy_address_title"
-            android:summary="@string/optional_summary"
-            android:persistent="false"
-            android:singleLine="true"/>
-
-        <EditTextPreference
-            android:key="@string/port"
-            android:title="@string/port_title"
-            android:summary="@string/default_port"
-            android:dialogTitle="@string/port_title"
-            android:persistent="false"
-            android:inputType="number|numberDecimal"
-            android:singleLine="true"/>
-
-        <ListPreference
-            android:key="@string/transport"
-            android:title="@string/transport_title"
-            android:entries="@array/transport_types"
-            android:entryValues="@array/transport_types"
-            android:summary="@string/default_transport"
-            android:persistent="false"
-            android:dialogTitle="@string/transport_title"/>
-
-        <ListPreference
-            android:key="@string/send_keepalive"
-            android:title="@string/send_keepalive_title"
-            android:entries="@array/sip_send_keepalive_options"
-            android:entryValues="@array/sip_send_keepalive_options"
-            android:persistent="false"
-            android:summary="@string/sip_system_decide"/>
-    </PreferenceCategory>
-</PreferenceScreen>
diff --git a/sip/res/xml/sip_edit.xml b/sip/res/xml/sip_edit.xml
deleted file mode 100644
index 58a8a92..0000000
--- a/sip/res/xml/sip_edit.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-        android:title="@string/sip_edit_title"
-        android:persistent="false">
-
-    <EditTextPreference
-        android:key="@string/username"
-        android:title="@string/username_title"
-        android:dialogTitle="@string/username_title"
-        android:summary="@string/default_preference_summary_username"
-        android:persistent="false"
-        android:singleLine="true"
-        android:inputType="textNoSuggestions"/>
-
-    <EditTextPreference
-        android:key="@string/password"
-        android:title="@string/password_title"
-        android:dialogTitle="@string/password_title"
-        android:password="true"
-        android:summary="@string/default_preference_summary_password"
-        android:persistent="false"
-        android:singleLine="true"/>
-
-    <EditTextPreference
-        android:key="@string/domain_address"
-        android:title="@string/domain_address_title"
-        android:dialogTitle="@string/domain_address_title"
-        android:summary="@string/default_preference_summary_domain_address"
-        android:persistent="false"
-        android:singleLine="true"
-        android:inputType="textNoSuggestions"/>
-
-    <PreferenceScreen
-        android:key="@string/advanced_settings"
-        android:title="@string/advanced_settings"
-        android:summary="@string/advanced_settings_show"
-        android:persistent="false"/>
-</PreferenceScreen>
diff --git a/sip/res/xml/sip_setting.xml b/sip/res/xml/sip_setting.xml
deleted file mode 100644
index fa31e7c..0000000
--- a/sip/res/xml/sip_setting.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-    android:title="@string/sip_accounts">
-
-    <PreferenceCategory android:key="sip_account_list" android:title="@string/sip_account_list"/>
-
-</PreferenceScreen>
diff --git a/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java b/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java
deleted file mode 100644
index 6b34f00..0000000
--- a/sip/src/com/android/services/telephony/sip/SipAccountRegistry.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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;
-
-import android.app.Notification;
-import android.app.NotificationChannel;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.net.sip.SipManager;
-import android.net.sip.SipProfile;
-import android.telecom.PhoneAccount;
-import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
-import android.util.Log;
-
-import com.android.phone.R;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.Objects;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.stream.Collectors;
-
-/**
- * Manages the {@link PhoneAccount} entries for SIP calling.
- */
-public final class SipAccountRegistry {
-    private final class AccountEntry {
-        private final SipProfile mProfile;
-
-        AccountEntry(SipProfile profile) {
-            mProfile = profile;
-        }
-
-        SipProfile getProfile() {
-            return mProfile;
-        }
-
-        /**
-         * Stops the SIP service associated with the SIP profile.  The {@code SipAccountRegistry} is
-         * informed when the service has been stopped via an intent which triggers
-         * {@link SipAccountRegistry#removeSipProfile(String)}.
-         *
-         * @param sipManager The SIP manager.
-         * @return {@code True} if stop was successful.
-         */
-        boolean stopSipService(SipManager sipManager) {
-            try {
-                sipManager.close(mProfile.getUriString());
-                return true;
-            } catch (Exception e) {
-                log("stopSipService, stop failed for profile: " + mProfile.getUriString() +
-                        ", exception: " + e);
-            }
-            return false;
-        }
-    }
-
-    private static final String PREFIX = "[SipAccountRegistry] ";
-    private static final boolean VERBOSE = false; /* STOP SHIP if true */
-    private static final SipAccountRegistry INSTANCE = new SipAccountRegistry();
-    private static final String NOTIFICATION_TAG = SipAccountRegistry.class.getSimpleName();
-    private static final int SIP_ACCOUNTS_REMOVED_NOTIFICATION_ID = 1;
-
-    private static final String CHANNEL_ID_SIP_ACCOUNTS_REMOVED = "sipAccountsRemoved";
-
-    private final List<AccountEntry> mAccounts = new CopyOnWriteArrayList<>();
-
-    private NotificationChannel mNotificationChannel;
-    private NotificationManager mNm;
-
-    private SipAccountRegistry() {}
-
-    public static SipAccountRegistry getInstance() {
-        return INSTANCE;
-    }
-
-    /**
-     * Sets up the Account registry and performs any upgrade operations before it is used.
-     */
-    public void setup(Context context) {
-        setupNotificationChannel(context);
-        verifyAndPurgeInvalidPhoneAccounts(context);
-        startSipProfilesAsync(context);
-    }
-
-    private void setupNotificationChannel(Context context) {
-        mNotificationChannel = new NotificationChannel(
-                CHANNEL_ID_SIP_ACCOUNTS_REMOVED,
-                context.getText(R.string.notification_channel_sip_account),
-                NotificationManager.IMPORTANCE_HIGH);
-        mNm = context.getSystemService(NotificationManager.class);
-        if (mNm != null) {
-            mNm.createNotificationChannel(mNotificationChannel);
-        }
-    }
-
-    /**
-     * Checks the existing SIP phone {@link PhoneAccount}s registered with telecom and deletes any
-     * invalid accounts.
-     *
-     * @param context The context.
-     */
-    void verifyAndPurgeInvalidPhoneAccounts(Context context) {
-        TelecomManager telecomManager = context.getSystemService(TelecomManager.class);
-        SipProfileDb profileDb = new SipProfileDb(context);
-        List<PhoneAccountHandle> accountHandles = telecomManager.getPhoneAccountsSupportingScheme(
-                PhoneAccount.SCHEME_SIP);
-
-        for (PhoneAccountHandle accountHandle : accountHandles) {
-            String profileName = SipUtil.getSipProfileNameFromPhoneAccount(accountHandle);
-            SipProfile profile = profileDb.retrieveSipProfileFromName(profileName);
-            if (profile == null) {
-                log("verifyAndPurgeInvalidPhoneAccounts, deleting account: " + accountHandle);
-                telecomManager.unregisterPhoneAccount(accountHandle);
-            }
-        }
-    }
-
-    /**
-     * Starts the SIP service for the specified SIP profile and ensures it has a valid registered
-     * {@link PhoneAccount}.
-     *
-     * @param context The context.
-     * @param sipProfileName The name of the {@link SipProfile} to start, or {@code null} for all.
-     * @param enableProfile Sip account should be enabled
-     */
-    void startSipService(Context context, String sipProfileName, boolean enabledProfile) {
-        startSipProfilesAsync(context);
-    }
-
-    /**
-     * Removes a {@link SipProfile} from the account registry.  Does not stop/close the associated
-     * SIP service (this method is invoked via an intent from the SipService once a profile has
-     * been stopped/closed).
-     *
-     * @param sipProfileName Name of the SIP profile.
-     */
-    public void removeSipProfile(String sipProfileName) {
-        AccountEntry accountEntry = getAccountEntry(sipProfileName);
-
-        if (accountEntry != null) {
-            mAccounts.remove(accountEntry);
-        }
-    }
-
-    /**
-     * Stops a SIP profile and un-registers its associated {@link android.telecom.PhoneAccount}.
-     * Called after a SIP profile is deleted.  The {@link AccountEntry} will be removed when the
-     * service has been stopped.  The {@code SipService} fires the {@code ACTION_SIP_REMOVE_PHONE}
-     * intent, which triggers {@link SipAccountRegistry#removeSipProfile(String)} to perform the
-     * removal.
-     *
-     * @param context The context.
-     * @param sipProfileName Name of the SIP profile.
-     */
-    void stopSipService(Context context, String sipProfileName) {
-        // Stop the sip service for the profile.
-        AccountEntry accountEntry = getAccountEntry(sipProfileName);
-        if (accountEntry != null ) {
-            SipManager sipManager = SipManager.newInstance(context);
-            accountEntry.stopSipService(sipManager);
-        }
-
-        // Un-register its PhoneAccount.
-        PhoneAccountHandle handle = SipUtil.createAccountHandle(context, sipProfileName);
-        TelecomManager tm = context.getSystemService(TelecomManager.class);
-        tm.unregisterPhoneAccount(handle);
-    }
-
-    /**
-     * Performs an asynchronous call to
-     * {@link SipAccountRegistry#startSipProfiles(android.content.Context, String)}, starting the
-     * specified SIP profile and registering its {@link android.telecom.PhoneAccount}.
-     *
-     * @param context The context.
-     */
-    private void startSipProfilesAsync(
-            final Context context) {
-        if (VERBOSE) log("startSipProfiles, start auto registration");
-
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                startSipProfiles(context);
-            }}
-        ).start();
-    }
-
-    /**
-     * Loops through all SIP accounts from the SIP database, starts each service and registers
-     * each with the telecom framework. If a specific sipProfileName is specified, this will only
-     * register the associated SIP account.
-     *
-     * @param context The context.
-     */
-    private void startSipProfiles(Context context) {
-        SipProfileDb profileDb = new SipProfileDb(context);
-        List<SipProfile> sipProfileList = profileDb.retrieveSipProfileList();
-
-        // If there're SIP profiles existing in DB, display a notification and delete all these
-        // profiles.
-        if (!sipProfileList.isEmpty()) {
-            for (SipProfile profile : sipProfileList) {
-                stopSipService(context, profile.getProfileName());
-                removeSipProfile(profile.getProfileName());
-                try {
-                    profileDb.deleteProfile(profile);
-                } catch (IOException e) {
-                    // Ignore
-                }
-            }
-            sendSipAccountsRemovedNotification(context, sipProfileList);
-        }
-    }
-
-    private void sendSipAccountsRemovedNotification(Context context, List<SipProfile> profiles) {
-        String sipAccounts = profiles.stream().map(p -> p.getProfileName())
-                .collect(Collectors.joining(","));
-
-        Intent intent = new Intent(TelecomManager.ACTION_CHANGE_PHONE_ACCOUNTS);
-        intent.setFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
-        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent,
-                PendingIntent.FLAG_IMMUTABLE);
-
-        Notification.Action action = new Notification.Action.Builder(R.drawable.ic_sim_card,
-                context.getString(R.string.sip_accounts_removed_notification_action),
-                pendingIntent).build();
-        Notification.Builder builder = new Notification.Builder(context)
-                .setSmallIcon(R.drawable.ic_sim_card)
-                .setChannelId(CHANNEL_ID_SIP_ACCOUNTS_REMOVED)
-                .setContentTitle(context.getText(R.string.sip_accounts_removed_notification_title))
-                .setStyle(new Notification.BigTextStyle()
-                .bigText(context.getString(
-                        R.string.sip_accounts_removed_notification_message,
-                        sipAccounts)))
-                .setAutoCancel(true)
-                .addAction(action);
-        Notification notification = builder.build();
-        if (mNm != null) {
-            mNm.notify(NOTIFICATION_TAG, SIP_ACCOUNTS_REMOVED_NOTIFICATION_ID,
-                    notification);
-        } else {
-            log("NotificationManager is null when send the notification of removed SIP accounts");
-        }
-    }
-
-    /**
-     * Retrieves the {@link AccountEntry} from the registry with the specified name.
-     *
-     * @param sipProfileName Name of the SIP profile to retrieve.
-     * @return The {@link AccountEntry}, or {@code null} is it was not found.
-     */
-    private AccountEntry getAccountEntry(String sipProfileName) {
-        for (AccountEntry entry : mAccounts) {
-            if (Objects.equals(sipProfileName, entry.getProfile().getProfileName())) {
-                return entry;
-            }
-        }
-        return null;
-    }
-
-    private void log(String message) {
-        Log.d(SipUtil.LOG_TAG, PREFIX + message);
-    }
-}
diff --git a/sip/src/com/android/services/telephony/sip/SipConnection.java b/sip/src/com/android/services/telephony/sip/SipConnection.java
deleted file mode 100644
index 2dde5b5..0000000
--- a/sip/src/com/android/services/telephony/sip/SipConnection.java
+++ /dev/null
@@ -1,365 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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;
-
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.telecom.AudioState;
-import android.telecom.Connection;
-import android.telecom.PhoneAccount;
-import android.telecom.TelecomManager;
-import android.util.EventLog;
-import android.util.Log;
-
-import com.android.internal.telephony.Call;
-import com.android.internal.telephony.CallStateException;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.internal.telephony.sip.SipPhone;
-import com.android.services.telephony.DisconnectCauseUtil;
-
-import java.util.Objects;
-
-final class SipConnection extends Connection {
-    private static final String PREFIX = "[SipConnection] ";
-    private static final boolean VERBOSE = false; /* STOP SHIP if true */
-
-    private static final int MSG_PRECISE_CALL_STATE_CHANGED = 1;
-
-    private final Handler mHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MSG_PRECISE_CALL_STATE_CHANGED:
-                    updateState(false);
-                    break;
-            }
-        }
-    };
-
-    private com.android.internal.telephony.Connection mOriginalConnection;
-    private Call.State mOriginalConnectionState = Call.State.IDLE;
-
-    SipConnection() {
-        if (VERBOSE) log("new SipConnection");
-        setInitializing();
-    }
-
-    void initialize(com.android.internal.telephony.Connection connection) {
-        if (VERBOSE) log("init SipConnection, connection: " + connection);
-        mOriginalConnection = connection;
-        if (getPhone() != null) {
-            getPhone().registerForPreciseCallStateChanged(mHandler, MSG_PRECISE_CALL_STATE_CHANGED,
-                    null);
-        }
-        updateAddress();
-        setTechnologyTypeExtra();
-        setInitialized();
-    }
-
-    @Override
-    public void onAudioStateChanged(AudioState state) {
-        if (VERBOSE) log("onAudioStateChanged: " + state);
-        if (getPhone() != null) {
-            getPhone().setEchoSuppressionEnabled();
-        }
-    }
-
-    @Override
-    public void onStateChanged(int state) {
-        if (VERBOSE) log("onStateChanged, state: " + Connection.stateToString(state));
-    }
-
-    @Override
-    public void onPlayDtmfTone(char c) {
-        if (VERBOSE) log("onPlayDtmfTone");
-        if (getPhone() != null) {
-            getPhone().startDtmf(c);
-        }
-    }
-
-    @Override
-    public void onStopDtmfTone() {
-        if (VERBOSE) log("onStopDtmfTone");
-        if (getPhone() != null) {
-            getPhone().stopDtmf();
-        }
-    }
-
-    @Override
-    public void onDisconnect() {
-        if (VERBOSE) log("onDisconnect");
-        try {
-            if (getCall() != null && !getCall().isMultiparty()) {
-                getCall().hangup();
-            } else if (mOriginalConnection != null) {
-                mOriginalConnection.hangup();
-            }
-        } catch (CallStateException e) {
-            log("onDisconnect, exception: " + e);
-        }
-    }
-
-    @Override
-    public void onSeparate() {
-        if (VERBOSE) log("onSeparate");
-        try {
-            if (mOriginalConnection != null) {
-                mOriginalConnection.separate();
-            }
-        } catch (CallStateException e) {
-            log("onSeparate, exception: " + e);
-        }
-    }
-
-    @Override
-    public void onAbort() {
-        if (VERBOSE) log("onAbort");
-        onDisconnect();
-    }
-
-    @Override
-    public void onHold() {
-        if (VERBOSE) log("onHold");
-        try {
-            if (getPhone() != null && getState() == STATE_ACTIVE
-                    && getPhone().getRingingCall().getState() != Call.State.WAITING) {
-                // Double check with the internal state since a discrepancy in states could mean
-                // that the transactions is already in progress from a previous request.
-                if (mOriginalConnection != null &&
-                        mOriginalConnection.getState() == Call.State.ACTIVE) {
-                    getPhone().switchHoldingAndActive();
-                } else {
-                    log("skipping switch from onHold due to internal state:");
-                }
-            }
-        } catch (CallStateException e) {
-            log("onHold, exception: " + e);
-        }
-    }
-
-    @Override
-    public void onUnhold() {
-        if (VERBOSE) log("onUnhold");
-        try {
-            if (getPhone() != null && getState() == STATE_HOLDING &&
-                    getPhone().getForegroundCall().getState() != Call.State.DIALING) {
-                // Double check with the internal state since a discrepancy in states could mean
-                // that the transaction is already in progress from a previous request.
-                if (mOriginalConnection != null &&
-                        mOriginalConnection.getState() == Call.State.HOLDING) {
-                    getPhone().switchHoldingAndActive();
-                } else {
-                    log("skipping switch from onUnHold due to internal state.");
-                }
-            }
-        } catch (CallStateException e) {
-            log("onUnhold, exception: " + e);
-        }
-    }
-
-    @Override
-    public void onAnswer(int videoState) {
-        if (VERBOSE) log("onAnswer");
-        try {
-            if (isValidRingingCall() && getPhone() != null) {
-                getPhone().acceptCall(videoState);
-            }
-        } catch (CallStateException e) {
-            log("onAnswer, exception: " + e);
-        } catch (IllegalStateException e) {
-            // Call could not be answered due to an invalid audio-codec offered by the caller.  We
-            // will reject the call to stop it from ringing.
-            log("onAnswer, IllegalStateException: " + e);
-            EventLog.writeEvent(0x534e4554, "31752213", -1, "Invalid codec.");
-            onReject();
-        } catch (IllegalArgumentException e) {
-            // Call could not be answered due to an error parsing the SDP.  We will reject the call
-            // to stop it from ringing.
-            log("onAnswer, IllegalArgumentException: " + e);
-            EventLog.writeEvent(0x534e4554, "31752213", -1, "Invalid SDP.");
-            onReject();
-        }
-    }
-
-    @Override
-    public void onReject() {
-        if (VERBOSE) log("onReject");
-        try {
-            if (isValidRingingCall() && getPhone() != null) {
-                getPhone().rejectCall();
-            }
-        } catch (CallStateException e) {
-            log("onReject, exception: " + e);
-        }
-    }
-
-    @Override
-    public void onPostDialContinue(boolean proceed) {
-        if (VERBOSE) log("onPostDialContinue, proceed: " + proceed);
-        // SIP doesn't have post dial support.
-    }
-
-    private Call getCall() {
-        if (mOriginalConnection != null) {
-            return mOriginalConnection.getCall();
-        }
-        return null;
-    }
-
-    SipPhone getPhone() {
-        Call call = getCall();
-        if (call != null) {
-            return (SipPhone) call.getPhone();
-        }
-        return null;
-    }
-
-    private boolean isValidRingingCall() {
-        Call call = getCall();
-        return call != null && call.getState().isRinging() &&
-                call.getEarliestConnection() == mOriginalConnection;
-    }
-
-    private void updateState(boolean force) {
-        if (mOriginalConnection == null) {
-            return;
-        }
-
-        Call.State newState = mOriginalConnection.getState();
-        if (VERBOSE) log("updateState, " + mOriginalConnectionState + " -> " + newState);
-        if (force || mOriginalConnectionState != newState) {
-            mOriginalConnectionState = newState;
-            switch (newState) {
-                case IDLE:
-                    break;
-                case ACTIVE:
-                    setActive();
-                    break;
-                case HOLDING:
-                    setOnHold();
-                    break;
-                case DIALING:
-                case ALERTING:
-                    setDialing();
-                    // For SIP calls, we need to ask the framework to play the ringback for us.
-                    setRingbackRequested(true);
-                    break;
-                case INCOMING:
-                case WAITING:
-                    setRinging();
-                    break;
-                case DISCONNECTED:
-                    setDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
-                            mOriginalConnection.getDisconnectCause()));
-                    close();
-                    break;
-                case DISCONNECTING:
-                    break;
-            }
-            updateCallCapabilities(force);
-        }
-    }
-
-    private int buildCallCapabilities() {
-        int capabilities = CAPABILITY_MUTE | CAPABILITY_SUPPORT_HOLD;
-        if (getState() == STATE_ACTIVE || getState() == STATE_HOLDING) {
-            capabilities |= CAPABILITY_HOLD;
-        }
-        return capabilities;
-    }
-
-    void updateCallCapabilities(boolean force) {
-        int newCallCapabilities = buildCallCapabilities();
-        if (force || getConnectionCapabilities() != newCallCapabilities) {
-            setConnectionCapabilities(newCallCapabilities);
-        }
-    }
-
-    void onAddedToCallService() {
-        if (VERBOSE) log("onAddedToCallService");
-        updateState(true);
-        updateCallCapabilities(true);
-        setAudioModeIsVoip(true);
-        if (mOriginalConnection != null) {
-            setCallerDisplayName(mOriginalConnection.getCnapName(),
-                    mOriginalConnection.getCnapNamePresentation());
-        }
-    }
-
-    /**
-     * Updates the handle on this connection based on the original connection.
-     */
-    private void updateAddress() {
-        if (mOriginalConnection != null) {
-            Uri address = getAddressFromNumber(mOriginalConnection.getAddress());
-            int presentation = mOriginalConnection.getNumberPresentation();
-            if (!Objects.equals(address, getAddress()) ||
-                    presentation != getAddressPresentation()) {
-                com.android.services.telephony.Log.v(this, "updateAddress, address changed");
-                setAddress(address, presentation);
-            }
-
-            String name = mOriginalConnection.getCnapName();
-            int namePresentation = mOriginalConnection.getCnapNamePresentation();
-            if (!Objects.equals(name, getCallerDisplayName()) ||
-                    namePresentation != getCallerDisplayNamePresentation()) {
-                com.android.services.telephony.Log
-                        .v(this, "updateAddress, caller display name changed");
-                setCallerDisplayName(name, namePresentation);
-            }
-        }
-    }
-
-    private void setTechnologyTypeExtra() {
-        int phoneType = PhoneConstants.PHONE_TYPE_SIP;
-        if (getExtras() == null) {
-            Bundle b = new Bundle();
-            b.putInt(TelecomManager.EXTRA_CALL_TECHNOLOGY_TYPE, phoneType);
-            setExtras(b);
-        } else {
-            getExtras().putInt(TelecomManager.EXTRA_CALL_TECHNOLOGY_TYPE, phoneType);
-        }
-    }
-
-    /**
-     * Determines the address for an incoming number.
-     *
-     * @param number The incoming number.
-     * @return The Uri representing the number.
-     */
-    private static Uri getAddressFromNumber(String number) {
-        // Address can be null for blocked calls.
-        if (number == null) {
-            number = "";
-        }
-        return Uri.fromParts(PhoneAccount.SCHEME_SIP, number, null);
-    }
-
-    private void close() {
-        if (getPhone() != null) {
-            getPhone().unregisterForPreciseCallStateChanged(mHandler);
-        }
-        mOriginalConnection = null;
-        destroy();
-    }
-
-    private static void log(String msg) {
-        Log.d(SipUtil.LOG_TAG, PREFIX + msg);
-    }
-}
diff --git a/sip/src/com/android/services/telephony/sip/SipConnectionService.java b/sip/src/com/android/services/telephony/sip/SipConnectionService.java
deleted file mode 100644
index 27be9b4..0000000
--- a/sip/src/com/android/services/telephony/sip/SipConnectionService.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.net.ConnectivityManager;
-import android.net.NetworkInfo;
-import android.net.sip.SipAudioCall;
-import android.net.sip.SipException;
-import android.net.sip.SipManager;
-import android.net.sip.SipProfile;
-import android.os.Bundle;
-import android.os.Handler;
-import android.telecom.Connection;
-import android.telecom.ConnectionRequest;
-import android.telecom.ConnectionService;
-import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
-import android.telephony.DisconnectCause;
-import android.util.Log;
-
-import com.android.internal.telephony.CallStateException;
-import com.android.internal.telephony.PhoneFactory;
-import com.android.internal.telephony.PhoneInternalInterface;
-import com.android.internal.telephony.sip.SipPhone;
-import com.android.services.telephony.DisconnectCauseUtil;
-
-import java.util.List;
-import java.util.Objects;
-
-public final class SipConnectionService extends ConnectionService {
-    private interface IProfileFinderCallback {
-        void onFound(SipProfile profile);
-    }
-
-    private static final String PREFIX = "[SipConnectionService] ";
-    private static final boolean VERBOSE = false; /* STOP SHIP if true */
-
-    private SipProfileDb mSipProfileDb;
-    private Handler mHandler;
-
-    @Override
-    public void onCreate() {
-        mSipProfileDb = new SipProfileDb(this);
-        mHandler = new Handler();
-        super.onCreate();
-    }
-
-    @Override
-    public Connection onCreateOutgoingConnection(
-            PhoneAccountHandle connectionManagerAccount,
-            final ConnectionRequest request) {
-        if (VERBOSE) log("onCreateOutgoingConnection, request: " + request);
-
-        Bundle extras = request.getExtras();
-        if (extras != null &&
-                extras.getString(TelecomManager.GATEWAY_PROVIDER_PACKAGE) != null) {
-            return Connection.createFailedConnection(DisconnectCauseUtil.toTelecomDisconnectCause(
-                    DisconnectCause.CALL_BARRED, "Cannot make a SIP call with a gateway number."));
-        }
-
-        PhoneAccountHandle accountHandle = request.getAccountHandle();
-        ComponentName sipComponentName = new ComponentName(this, SipConnectionService.class);
-        if (!Objects.equals(accountHandle.getComponentName(), sipComponentName)) {
-            return Connection.createFailedConnection(DisconnectCauseUtil.toTelecomDisconnectCause(
-                    DisconnectCause.OUTGOING_FAILURE, "Did not match service connection"));
-        }
-
-        final SipConnection connection = new SipConnection();
-        connection.setAddress(request.getAddress(), TelecomManager.PRESENTATION_ALLOWED);
-        connection.setInitializing();
-        connection.onAddedToCallService();
-        boolean attemptCall = true;
-
-        if (!SipUtil.isVoipSupported(this)) {
-            final CharSequence description = getString(R.string.no_voip);
-            connection.setDisconnected(new android.telecom.DisconnectCause(
-                    android.telecom.DisconnectCause.ERROR, null, description,
-                    "VoIP unsupported"));
-            attemptCall = false;
-        }
-
-        if (attemptCall && !isNetworkConnected()) {
-            if (VERBOSE) log("start, network not connected, dropping call");
-            final boolean wifiOnly = SipManager.isSipWifiOnly(this);
-            final CharSequence description = getString(wifiOnly ? R.string.no_wifi_available
-                    : R.string.no_internet_available);
-            connection.setDisconnected(new android.telecom.DisconnectCause(
-                    android.telecom.DisconnectCause.ERROR, null, description,
-                    "Network not connected"));
-            attemptCall = false;
-        }
-
-        if (attemptCall) {
-            // The ID used for SIP-based phone account is the SIP profile Uri. Use it to find
-            // the actual profile.
-            String profileName = accountHandle.getId();
-            findProfile(profileName, new IProfileFinderCallback() {
-                @Override
-                public void onFound(SipProfile profile) {
-                    if (profile == null) {
-                        connection.setDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
-                                DisconnectCause.OUTGOING_FAILURE, "SIP profile not found."));
-                        connection.destroy();
-                    } else {
-                        com.android.internal.telephony.Connection chosenConnection =
-                                createConnectionForProfile(profile, request);
-                        if (chosenConnection == null) {
-                            connection.setDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
-                                    DisconnectCause.OUTGOING_FAILURE, "Connection failed."));
-                            connection.destroy();
-                        } else {
-                            if (VERBOSE) log("initializing connection");
-                            connection.initialize(chosenConnection);
-                        }
-                    }
-                }
-            });
-        }
-
-        return connection;
-    }
-
-    @Override
-    public Connection onCreateIncomingConnection(
-            PhoneAccountHandle connectionManagerAccount,
-            ConnectionRequest request) {
-        if (VERBOSE) log("onCreateIncomingConnection, request: " + request);
-
-        if (request.getExtras() == null) {
-            if (VERBOSE) log("onCreateIncomingConnection, no extras");
-            return Connection.createFailedConnection(DisconnectCauseUtil.toTelecomDisconnectCause(
-                    DisconnectCause.ERROR_UNSPECIFIED, "No extras on request."));
-        }
-
-        Intent sipIntent = (Intent) request.getExtras().getParcelable(
-                SipUtil.EXTRA_INCOMING_CALL_INTENT);
-        if (sipIntent == null) {
-            if (VERBOSE) log("onCreateIncomingConnection, no SIP intent");
-            return Connection.createFailedConnection(DisconnectCauseUtil.toTelecomDisconnectCause(
-                    DisconnectCause.ERROR_UNSPECIFIED, "No SIP intent."));
-        }
-
-        SipAudioCall sipAudioCall;
-        try {
-            sipAudioCall = SipManager.newInstance(this).takeAudioCall(sipIntent, null);
-        } catch (SipException e) {
-            log("onCreateIncomingConnection, takeAudioCall exception: " + e);
-            return Connection.createCanceledConnection();
-        }
-
-        SipPhone phone = findPhoneForProfile(sipAudioCall.getLocalProfile());
-        if (phone == null) {
-            phone = createPhoneForProfile(sipAudioCall.getLocalProfile());
-        }
-        if (phone != null) {
-            com.android.internal.telephony.Connection originalConnection = phone.takeIncomingCall(
-                    sipAudioCall);
-            if (VERBOSE) log("onCreateIncomingConnection, new connection: " + originalConnection);
-            if (originalConnection != null) {
-                SipConnection sipConnection = new SipConnection();
-                sipConnection.initialize(originalConnection);
-                sipConnection.onAddedToCallService();
-                return sipConnection;
-            } else {
-                if (VERBOSE) log("onCreateIncomingConnection, takingIncomingCall failed");
-                return Connection.createCanceledConnection();
-            }
-        }
-        return Connection.createFailedConnection(DisconnectCauseUtil.toTelecomDisconnectCause(
-                DisconnectCause.ERROR_UNSPECIFIED));
-    }
-
-    private com.android.internal.telephony.Connection createConnectionForProfile(
-            SipProfile profile,
-            ConnectionRequest request) {
-        SipPhone phone = findPhoneForProfile(profile);
-        if (phone == null) {
-            phone = createPhoneForProfile(profile);
-        }
-        if (phone != null) {
-            return startCallWithPhone(phone, request);
-        }
-        return null;
-    }
-
-    /**
-     * Searched for the specified profile in the SIP profile database.  This can take a long time
-     * in communicating with the database, so it is done asynchronously with a separate thread and a
-     * callback interface.
-     */
-    private void findProfile(final String profileName, final IProfileFinderCallback callback) {
-        if (VERBOSE) log("findProfile");
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                SipProfile profileToUse = null;
-                List<SipProfile> profileList = mSipProfileDb.retrieveSipProfileList();
-                if (profileList != null) {
-                    for (SipProfile profile : profileList) {
-                        if (Objects.equals(profileName, profile.getProfileName())) {
-                            profileToUse = profile;
-                            break;
-                        }
-                    }
-                }
-
-                final SipProfile profileFound = profileToUse;
-                mHandler.post(new Runnable() {
-                    @Override
-                    public void run() {
-                        callback.onFound(profileFound);
-                    }
-                });
-            }
-        }).start();
-    }
-
-    private SipPhone findPhoneForProfile(SipProfile profile) {
-        if (VERBOSE) log("findPhoneForProfile, profile: " + profile);
-        for (Connection connection : getAllConnections()) {
-            if (connection instanceof SipConnection) {
-                SipPhone phone = ((SipConnection) connection).getPhone();
-                if (phone != null && phone.getSipUri().equals(profile.getUriString())) {
-                    if (VERBOSE) log("findPhoneForProfile, found existing phone: " + phone);
-                    return phone;
-                }
-            }
-        }
-        if (VERBOSE) log("findPhoneForProfile, no phone found");
-        return null;
-    }
-
-    private SipPhone createPhoneForProfile(SipProfile profile) {
-        if (VERBOSE) log("createPhoneForProfile, profile: " + profile);
-        return PhoneFactory.makeSipPhone(profile.getUriString());
-    }
-
-    private com.android.internal.telephony.Connection startCallWithPhone(
-            SipPhone phone, ConnectionRequest request) {
-        String number = request.getAddress().getSchemeSpecificPart();
-        if (VERBOSE) log("startCallWithPhone, number: " + number);
-
-        try {
-            com.android.internal.telephony.Connection originalConnection =
-                    phone.dial(number, new PhoneInternalInterface.DialArgs.Builder<>()
-                            .setVideoState(request.getVideoState())
-                            .build());
-            return originalConnection;
-        } catch (CallStateException e) {
-            log("startCallWithPhone, exception: " + e);
-            return null;
-        }
-    }
-
-    private boolean isNetworkConnected() {
-        ConnectivityManager cm =
-                (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
-        if (cm != null) {
-            NetworkInfo ni = cm.getActiveNetworkInfo();
-            if (ni != null && ni.isConnected()) {
-                return ni.getType() == ConnectivityManager.TYPE_WIFI ||
-                        !SipManager.isSipWifiOnly(this);
-            }
-        }
-        return false;
-    }
-
-    private static void log(String msg) {
-        Log.d(SipUtil.LOG_TAG, PREFIX + msg);
-    }
-}
diff --git a/sip/src/com/android/services/telephony/sip/SipEditor.java b/sip/src/com/android/services/telephony/sip/SipEditor.java
deleted file mode 100644
index dd475e6..0000000
--- a/sip/src/com/android/services/telephony/sip/SipEditor.java
+++ /dev/null
@@ -1,630 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.services.telephony.sip;
-
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.DialogFragment;
-import android.content.Intent;
-import android.net.sip.SipProfile;
-import android.os.Bundle;
-import android.os.Parcelable;
-import android.preference.CheckBoxPreference;
-import android.preference.EditTextPreference;
-import android.preference.ListPreference;
-import android.preference.Preference;
-import android.preference.PreferenceActivity;
-import android.preference.PreferenceGroup;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.KeyEvent;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.widget.Button;
-import android.widget.Toast;
-
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.util.Arrays;
-
-/**
- * The activity class for editing a new or existing SIP profile.
- */
-public class SipEditor extends PreferenceActivity
-        implements Preference.OnPreferenceChangeListener {
-    private static final String PREFIX = "[SipEditor] ";
-    private static final boolean VERBOSE = false; /* STOP SHIP if true */
-
-    private static final int MENU_SAVE = Menu.FIRST;
-    private static final int MENU_DISCARD = Menu.FIRST + 1;
-    private static final int MENU_REMOVE = Menu.FIRST + 2;
-
-    private static final String KEY_PROFILE = "profile";
-    private static final String GET_METHOD_PREFIX = "get";
-    private static final char SCRAMBLED = '*';
-    private static final int NA = 0;
-
-    private AdvancedSettings mAdvancedSettings;
-    private SipPreferences mSipPreferences;
-    private boolean mDisplayNameSet;
-    private boolean mHomeButtonClicked;
-    private boolean mUpdateRequired;
-
-    private SipProfileDb mProfileDb;
-    private SipProfile mOldProfile;
-    private Button mRemoveButton;
-    private SipAccountRegistry mSipAccountRegistry;
-
-    /**
-     * Dialog fragment class to be used for displaying an alert dialog.
-     */
-    public static class AlertDialogFragment extends DialogFragment {
-        private static final String KEY_MESSAGE = "message";
-
-        /**
-         * Initialize the AlertDialogFragment instance.
-         *
-         * @param message the dialog message to display.
-         * @return the AlertDialogFragment.
-         */
-        public static AlertDialogFragment newInstance(String message) {
-            AlertDialogFragment frag = new AlertDialogFragment();
-            Bundle args = new Bundle();
-            args.putString(KEY_MESSAGE, message);
-            frag.setArguments(args);
-            return frag;
-        }
-
-        @Override
-        public Dialog onCreateDialog(Bundle savedInstanceState) {
-            String message = getArguments().getString(KEY_MESSAGE);
-
-            return new AlertDialog.Builder(getActivity())
-                    .setTitle(android.R.string.dialog_alert_title)
-                    .setIconAttribute(android.R.attr.alertDialogIcon)
-                    .setMessage(message)
-                    .setPositiveButton(R.string.alert_dialog_ok, null)
-                    .create();
-        }
-    }
-
-    enum PreferenceKey {
-        Username(R.string.username, 0, R.string.default_preference_summary_username),
-        Password(R.string.password, 0, R.string.default_preference_summary_password),
-        DomainAddress(R.string.domain_address, 0,
-                R.string.default_preference_summary_domain_address),
-        DisplayName(R.string.display_name, 0, R.string.display_name_summary),
-        ProxyAddress(R.string.proxy_address, 0, R.string.optional_summary),
-        Port(R.string.port, R.string.default_port, R.string.default_port),
-        Transport(R.string.transport, R.string.default_transport, NA),
-        SendKeepAlive(R.string.send_keepalive, R.string.sip_system_decide, NA),
-        AuthUserName(R.string.auth_username, 0, R.string.optional_summary);
-
-        final int text;
-        final int initValue;
-        final int defaultSummary;
-        Preference preference;
-
-        /**
-         * @param key The key name of the preference.
-         * @param initValue The initial value of the preference.
-         * @param defaultSummary The default summary value of the preference
-         *        when the preference value is empty.
-         */
-        PreferenceKey(int text, int initValue, int defaultSummary) {
-            this.text = text;
-            this.initValue = initValue;
-            this.defaultSummary = defaultSummary;
-        }
-
-        String getValue() {
-            if (preference instanceof EditTextPreference) {
-                return ((EditTextPreference) preference).getText();
-            } else if (preference instanceof ListPreference) {
-                return ((ListPreference) preference).getValue();
-            }
-            throw new RuntimeException("getValue() for the preference " + this);
-        }
-
-        void setValue(String value) {
-            if (preference instanceof EditTextPreference) {
-                String oldValue = getValue();
-                ((EditTextPreference) preference).setText(value);
-                if (this != Password) {
-                    if (VERBOSE) {
-                        log(this + ": setValue() " + value + ": " + oldValue + " --> " +
-                                getValue());
-                    }
-                }
-            } else if (preference instanceof ListPreference) {
-                ((ListPreference) preference).setValue(value);
-            }
-
-            if (TextUtils.isEmpty(value)) {
-                preference.setSummary(defaultSummary);
-            } else if (this == Password) {
-                preference.setSummary(scramble(value));
-            } else if ((this == DisplayName)
-                    && value.equals(getDefaultDisplayName())) {
-                preference.setSummary(defaultSummary);
-            } else {
-                preference.setSummary(value);
-            }
-        }
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        mHomeButtonClicked = false;
-        if (!SipUtil.isPhoneIdle(this)) {
-            mAdvancedSettings.show();
-            getPreferenceScreen().setEnabled(false);
-            if (mRemoveButton != null) mRemoveButton.setEnabled(false);
-        } else {
-            getPreferenceScreen().setEnabled(true);
-            if (mRemoveButton != null) mRemoveButton.setEnabled(true);
-        }
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        if (VERBOSE) log("onCreate, start profile editor");
-        super.onCreate(savedInstanceState);
-
-        mSipPreferences = new SipPreferences(this);
-        mProfileDb = new SipProfileDb(this);
-        mSipAccountRegistry = SipAccountRegistry.getInstance();
-
-        setContentView(R.layout.sip_settings_ui);
-        addPreferencesFromResource(R.xml.sip_edit);
-
-        SipProfile p = mOldProfile = (SipProfile) ((savedInstanceState == null)
-                ? getIntent().getParcelableExtra(SipSettings.KEY_SIP_PROFILE)
-                : savedInstanceState.getParcelable(KEY_PROFILE));
-
-        PreferenceGroup screen = (PreferenceGroup) getPreferenceScreen();
-        for (int i = 0, n = screen.getPreferenceCount(); i < n; i++) {
-            setupPreference(screen.getPreference(i));
-        }
-
-        if (p == null) {
-            screen.setTitle(R.string.sip_edit_new_title);
-        }
-
-        mAdvancedSettings = new AdvancedSettings();
-
-        loadPreferencesFromProfile(p);
-    }
-
-    @Override
-    public void onPause() {
-        if (VERBOSE) log("onPause, finishing: " + isFinishing());
-        if (!isFinishing()) {
-            mHomeButtonClicked = true;
-            validateAndSetResult();
-        }
-        super.onPause();
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        super.onCreateOptionsMenu(menu);
-        menu.add(0, MENU_DISCARD, 0, R.string.sip_menu_discard)
-                .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
-        menu.add(0, MENU_SAVE, 0, R.string.sip_menu_save)
-                .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
-        menu.add(0, MENU_REMOVE, 0, R.string.remove_sip_account)
-                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
-        return true;
-    }
-
-    @Override
-    public boolean onPrepareOptionsMenu(Menu menu) {
-        MenuItem removeMenu = menu.findItem(MENU_REMOVE);
-        removeMenu.setVisible(mOldProfile != null);
-        menu.findItem(MENU_SAVE).setEnabled(mUpdateRequired);
-        return super.onPrepareOptionsMenu(menu);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case MENU_SAVE:
-                validateAndSetResult();
-                return true;
-
-            case MENU_DISCARD:
-                finish();
-                return true;
-
-            case MENU_REMOVE: {
-                setRemovedProfileAndFinish();
-                return true;
-            }
-            case android.R.id.home: {
-                finish();
-                return true;
-            }
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-    @Override
-    public boolean onKeyDown(int keyCode, KeyEvent event) {
-        switch (keyCode) {
-            case KeyEvent.KEYCODE_BACK:
-                validateAndSetResult();
-                return true;
-        }
-        return super.onKeyDown(keyCode, event);
-    }
-
-    /**
-     * Saves a {@link SipProfile} and registers the associated
-     * {@link android.telecom.PhoneAccount}.
-     *
-     * @param p The {@link SipProfile} to register.
-     * @param enableProfile {@code true} if profile should be enabled, too.
-     * @throws IOException Exception resulting from profile save.
-     */
-    private void saveAndRegisterProfile(SipProfile p, boolean enableProfile) throws IOException {
-        if (p == null) return;
-        mProfileDb.saveProfile(p);
-        mSipAccountRegistry.startSipService(this, p.getProfileName(), enableProfile);
-    }
-
-    /**
-     * Deletes a {@link SipProfile} and un-registers the associated
-     * {@link android.telecom.PhoneAccount}.
-     *
-     * @param p The {@link SipProfile} to delete.
-     */
-    private void deleteAndUnregisterProfile(SipProfile p) throws IOException {
-        if (p == null) return;
-        mProfileDb.deleteProfile(p);
-        mSipAccountRegistry.stopSipService(this, p.getProfileName());
-    }
-
-    private void setRemovedProfileAndFinish() {
-        Intent intent = new Intent(this, SipSettings.class);
-        setResult(RESULT_FIRST_USER, intent);
-        Toast.makeText(this, R.string.removing_account, Toast.LENGTH_SHORT)
-                .show();
-        replaceProfile(mOldProfile, null);
-        // do finish() in replaceProfile() in a background thread
-    }
-
-    private void showAlert(Throwable e) {
-        String msg = e.getMessage();
-        if (TextUtils.isEmpty(msg)) msg = e.toString();
-        showAlert(msg);
-    }
-
-    private void showAlert(final String message) {
-        if (mHomeButtonClicked) {
-            if (VERBOSE) log("Home button clicked, don't show dialog: " + message);
-            return;
-        }
-
-        AlertDialogFragment newFragment = AlertDialogFragment.newInstance(message);
-        newFragment.show(getFragmentManager(), null);
-    }
-
-    private boolean isEditTextEmpty(PreferenceKey key) {
-        EditTextPreference pref = (EditTextPreference) key.preference;
-        return TextUtils.isEmpty(pref.getText())
-                || pref.getSummary().equals(getString(key.defaultSummary));
-    }
-
-    private void validateAndSetResult() {
-        boolean allEmpty = true;
-        CharSequence firstEmptyFieldTitle = null;
-        for (PreferenceKey key : PreferenceKey.values()) {
-            Preference p = key.preference;
-            if (p instanceof EditTextPreference) {
-                EditTextPreference pref = (EditTextPreference) p;
-                boolean fieldEmpty = isEditTextEmpty(key);
-                if (allEmpty && !fieldEmpty) allEmpty = false;
-
-                // use default value if display name is empty
-                if (fieldEmpty) {
-                    switch (key) {
-                        case DisplayName:
-                            pref.setText(getDefaultDisplayName());
-                            break;
-                        case AuthUserName:
-                        case ProxyAddress:
-                            // optional; do nothing
-                            break;
-                        case Port:
-                            pref.setText(getString(R.string.default_port));
-                            break;
-                        default:
-                            if (firstEmptyFieldTitle == null) {
-                                firstEmptyFieldTitle = pref.getTitle();
-                            }
-                    }
-                } else if (key == PreferenceKey.Port) {
-                    int port;
-                    try {
-                        port = Integer.parseInt(PreferenceKey.Port.getValue());
-                    } catch (NumberFormatException e) {
-                        showAlert(getString(R.string.not_a_valid_port));
-                        return;
-                    }
-                    if ((port < 1000) || (port > 65534)) {
-                        showAlert(getString(R.string.not_a_valid_port));
-                        return;
-                    }
-                }
-            }
-        }
-
-        if (!mUpdateRequired) {
-            finish();
-            return;
-        } else if (allEmpty) {
-            showAlert(getString(R.string.all_empty_alert));
-            return;
-        } else if (firstEmptyFieldTitle != null) {
-            showAlert(getString(R.string.empty_alert, firstEmptyFieldTitle));
-            return;
-        }
-        try {
-            SipProfile profile = createSipProfile();
-            Intent intent = new Intent(this, SipSettings.class);
-            intent.putExtra(SipSettings.KEY_SIP_PROFILE, (Parcelable) profile);
-            setResult(RESULT_OK, intent);
-            Toast.makeText(this, R.string.saving_account, Toast.LENGTH_SHORT).show();
-
-            replaceProfile(mOldProfile, profile);
-            // do finish() in replaceProfile() in a background thread
-        } catch (Exception e) {
-            log("validateAndSetResult, can not create new SipProfile, exception: " + e);
-            showAlert(e);
-        }
-    }
-
-    private void replaceProfile(final SipProfile oldProfile, final SipProfile newProfile) {
-        // Replace profile in a background thread as it takes time to access the
-        // storage; do finish() once everything goes fine.
-        // newProfile may be null if the old profile is to be deleted rather
-        // than being modified.
-        new Thread(new Runnable() {
-            public void run() {
-                try {
-                    deleteAndUnregisterProfile(oldProfile);
-                    boolean autoEnableNewProfile = oldProfile == null;
-                    saveAndRegisterProfile(newProfile, autoEnableNewProfile);
-                    finish();
-                } catch (Exception e) {
-                    log("replaceProfile, can not save/register new SipProfile, exception: " + e);
-                    showAlert(e);
-                }
-            }
-        }, "SipEditor").start();
-    }
-
-    private String getProfileName() {
-        return PreferenceKey.Username.getValue() + "@"
-                + PreferenceKey.DomainAddress.getValue();
-    }
-
-    private SipProfile createSipProfile() throws Exception {
-        return new SipProfile.Builder(
-                PreferenceKey.Username.getValue(),
-                PreferenceKey.DomainAddress.getValue())
-                .setProfileName(getProfileName())
-                .setPassword(PreferenceKey.Password.getValue())
-                .setOutboundProxy(PreferenceKey.ProxyAddress.getValue())
-                .setProtocol(PreferenceKey.Transport.getValue())
-                .setDisplayName(PreferenceKey.DisplayName.getValue())
-                .setPort(Integer.parseInt(PreferenceKey.Port.getValue()))
-                .setSendKeepAlive(isAlwaysSendKeepAlive())
-                .setAutoRegistration(
-                        mSipPreferences.isReceivingCallsEnabled())
-                .setAuthUserName(PreferenceKey.AuthUserName.getValue())
-                .build();
-    }
-
-    public boolean onPreferenceChange(Preference pref, Object newValue) {
-        if (!mUpdateRequired) {
-            mUpdateRequired = true;
-        }
-
-        if (pref instanceof CheckBoxPreference) {
-            invalidateOptionsMenu();
-            return true;
-        }
-        String value = (newValue == null) ? "" : newValue.toString();
-        if (TextUtils.isEmpty(value)) {
-            pref.setSummary(getPreferenceKey(pref).defaultSummary);
-        } else if (pref == PreferenceKey.Password.preference) {
-            pref.setSummary(scramble(value));
-        } else {
-            pref.setSummary(value);
-        }
-
-        if (pref == PreferenceKey.DisplayName.preference) {
-            ((EditTextPreference) pref).setText(value);
-            checkIfDisplayNameSet();
-        }
-
-        // SAVE menu should be enabled once the user modified some preference.
-        invalidateOptionsMenu();
-        return true;
-    }
-
-    private PreferenceKey getPreferenceKey(Preference pref) {
-        for (PreferenceKey key : PreferenceKey.values()) {
-            if (key.preference == pref) return key;
-        }
-        throw new RuntimeException("not possible to reach here");
-    }
-
-    private void loadPreferencesFromProfile(SipProfile p) {
-        if (p != null) {
-            if (VERBOSE) log("loadPreferencesFromProfile, existing profile: " + p.getProfileName());
-            try {
-                Class profileClass = SipProfile.class;
-                for (PreferenceKey key : PreferenceKey.values()) {
-                    Method meth = profileClass.getMethod(GET_METHOD_PREFIX
-                            + getString(key.text), (Class[])null);
-                    if (key == PreferenceKey.SendKeepAlive) {
-                        boolean value = ((Boolean) meth.invoke(p, (Object[]) null)).booleanValue();
-                        key.setValue(getString(value
-                                ? R.string.sip_always_send_keepalive
-                                : R.string.sip_system_decide));
-                    } else {
-                        Object value = meth.invoke(p, (Object[])null);
-                        key.setValue((value == null) ? "" : value.toString());
-                    }
-                }
-                checkIfDisplayNameSet();
-            } catch (Exception e) {
-                log("loadPreferencesFromProfile, can not load pref from profile, exception: " + e);
-            }
-        } else {
-            if (VERBOSE) log("loadPreferencesFromProfile, edit a new profile");
-            for (PreferenceKey key : PreferenceKey.values()) {
-                key.preference.setOnPreferenceChangeListener(this);
-
-                // FIXME: android:defaultValue in preference xml file doesn't
-                // work. Even if we setValue() for each preference in the case
-                // of (p != null), the dialog still shows android:defaultValue,
-                // not the value set by setValue(). This happens if
-                // android:defaultValue is not empty. Is it a bug?
-                if (key.initValue != 0) {
-                    key.setValue(getString(key.initValue));
-                }
-            }
-            mDisplayNameSet = false;
-        }
-    }
-
-    private boolean isAlwaysSendKeepAlive() {
-        ListPreference pref = (ListPreference) PreferenceKey.SendKeepAlive.preference;
-        return getString(R.string.sip_always_send_keepalive).equals(pref.getValue());
-    }
-
-    private void setCheckBox(PreferenceKey key, boolean checked) {
-        CheckBoxPreference pref = (CheckBoxPreference) key.preference;
-        pref.setChecked(checked);
-    }
-
-    private void setupPreference(Preference pref) {
-        pref.setOnPreferenceChangeListener(this);
-        for (PreferenceKey key : PreferenceKey.values()) {
-            String name = getString(key.text);
-            if (name.equals(pref.getKey())) {
-                key.preference = pref;
-                return;
-            }
-        }
-    }
-
-    private void checkIfDisplayNameSet() {
-        String displayName = PreferenceKey.DisplayName.getValue();
-        mDisplayNameSet = !TextUtils.isEmpty(displayName)
-                && !displayName.equals(getDefaultDisplayName());
-        if (VERBOSE) log("checkIfDisplayNameSet, displayName set: " + mDisplayNameSet);
-        if (mDisplayNameSet) {
-            PreferenceKey.DisplayName.preference.setSummary(displayName);
-        } else {
-            PreferenceKey.DisplayName.setValue("");
-        }
-    }
-
-    private static String getDefaultDisplayName() {
-        return PreferenceKey.Username.getValue();
-    }
-
-    private static String scramble(String s) {
-        char[] cc = new char[s.length()];
-        Arrays.fill(cc, SCRAMBLED);
-        return new String(cc);
-    }
-
-    private class AdvancedSettings implements Preference.OnPreferenceClickListener {
-        private Preference mAdvancedSettingsTrigger;
-        private Preference[] mPreferences;
-        private boolean mShowing = false;
-
-        AdvancedSettings() {
-            mAdvancedSettingsTrigger = getPreferenceScreen().findPreference(
-                    getString(R.string.advanced_settings));
-            mAdvancedSettingsTrigger.setOnPreferenceClickListener(this);
-
-            loadAdvancedPreferences();
-        }
-
-        private void loadAdvancedPreferences() {
-            PreferenceGroup screen = (PreferenceGroup) getPreferenceScreen();
-
-            addPreferencesFromResource(R.xml.sip_advanced_edit);
-            PreferenceGroup group = (PreferenceGroup) screen.findPreference(
-                    getString(R.string.advanced_settings_container));
-            screen.removePreference(group);
-
-            mPreferences = new Preference[group.getPreferenceCount()];
-            int order = screen.getPreferenceCount();
-            for (int i = 0, n = mPreferences.length; i < n; i++) {
-                Preference pref = group.getPreference(i);
-                pref.setOrder(order++);
-                setupPreference(pref);
-                mPreferences[i] = pref;
-            }
-        }
-
-        void show() {
-            mShowing = true;
-            mAdvancedSettingsTrigger.setSummary(R.string.advanced_settings_hide);
-            PreferenceGroup screen = (PreferenceGroup) getPreferenceScreen();
-            for (Preference pref : mPreferences) {
-                screen.addPreference(pref);
-                if (VERBOSE) {
-                    log("AdvancedSettings.show, pref: " + pref.getKey() + ", order: " +
-                            pref.getOrder());
-                }
-            }
-        }
-
-        private void hide() {
-            mShowing = false;
-            mAdvancedSettingsTrigger.setSummary(R.string.advanced_settings_show);
-            PreferenceGroup screen = (PreferenceGroup) getPreferenceScreen();
-            for (Preference pref : mPreferences) {
-                screen.removePreference(pref);
-            }
-        }
-
-        public boolean onPreferenceClick(Preference preference) {
-            if (VERBOSE) log("AdvancedSettings.onPreferenceClick");
-            if (!mShowing) {
-                show();
-            } else {
-                hide();
-            }
-            return true;
-        }
-    }
-
-    private static void log(String msg) {
-        Log.d(SipUtil.LOG_TAG, PREFIX + msg);
-    }
-}
diff --git a/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java b/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java
deleted file mode 100644
index 2dbd707..0000000
--- a/sip/src/com/android/services/telephony/sip/SipIncomingCallReceiver.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.services.telephony.sip;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.net.sip.SipManager;
-import android.os.Bundle;
-import android.os.UserHandle;
-import android.telecom.PhoneAccount;
-import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
-import android.text.TextUtils;
-import android.util.Log;
-
-/**
- * Broadcast receiver that handles explicit incoming call intents
- */
-public class SipIncomingCallReceiver extends BroadcastReceiver {
-    private static final String PREFIX = "[SipIncomingCallReceiver] ";
-    private static final boolean VERBOSE = false; /* STOP SHIP if true */
-
-    @Override
-    public void onReceive(Context context, final Intent intent) {
-        String action = intent.getAction();
-
-        if (TextUtils.isEmpty(action)) {
-            log("SipIncomingCallReceiver called with no action");
-            return;
-        }
-
-        if (!isRunningInSystemUser()) {
-            if (VERBOSE) log("SipIncomingCallReceiver only run in system user, ignore " + action);
-            return;
-        }
-
-        if (!SipUtil.isVoipSupported(context)) {
-            if (VERBOSE) log("SIP VOIP not supported: " + action);
-            return;
-        }
-
-        if (action.equals(SipManager.ACTION_SIP_INCOMING_CALL)) {
-            takeCall(context, intent);
-        } else {
-            if (VERBOSE) log("onReceive, action not processed: " + action);
-        }
-    }
-
-    private void takeCall(Context context, Intent intent) {
-        if (VERBOSE) log("takeCall, intent: " + intent);
-        PhoneAccountHandle accountHandle = null;
-        try {
-            accountHandle = intent.getParcelableExtra(SipUtil.EXTRA_PHONE_ACCOUNT);
-        } catch (ClassCastException e) {
-            log("takeCall, Bad account handle detected. Bailing!");
-            return;
-        }
-        if (accountHandle != null) {
-            Bundle extras = new Bundle();
-            extras.putParcelable(SipUtil.EXTRA_INCOMING_CALL_INTENT, intent);
-            TelecomManager tm = context.getSystemService(TelecomManager.class);
-            PhoneAccount phoneAccount = tm.getPhoneAccount(accountHandle);
-            if (phoneAccount != null && phoneAccount.isEnabled()) {
-                tm.addNewIncomingCall(accountHandle, extras);
-            } else {
-                log("takeCall, PhoneAccount is disabled. Not accepting incoming call...");
-            }
-        }
-    }
-
-    private boolean isRunningInSystemUser() {
-        return UserHandle.myUserId() == UserHandle.SYSTEM.getIdentifier();
-    }
-
-    private static void log(String msg) {
-        Log.d(SipUtil.LOG_TAG, PREFIX + msg);
-    }
-}
diff --git a/sip/src/com/android/services/telephony/sip/SipPreferences.java b/sip/src/com/android/services/telephony/sip/SipPreferences.java
deleted file mode 100644
index f344497..0000000
--- a/sip/src/com/android/services/telephony/sip/SipPreferences.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.services.telephony.sip;
-
-import android.content.Context;
-import android.content.Intent;
-import android.net.sip.SipManager;
-import android.provider.Settings;
-import android.provider.Settings.SettingNotFoundException;
-import android.util.Log;
-
-/**
- * Wrapper for SIP's preferences.
- */
-public class SipPreferences {
-    private static final String PREFIX = "[SipPreferences] ";
-    private static final boolean VERBOSE = false; /* STOP SHIP if true */
-
-    // Used to clear out old SharedPreferences file during SipProfile Database Migration
-    private static final String SIP_SHARED_PREFERENCES = "SIP_PREFERENCES";
-
-    private Context mContext;
-
-    public SipPreferences(Context context) {
-        mContext = context;
-    }
-
-    public void setSipCallOption(String option) {
-        Settings.System.putString(mContext.getContentResolver(),
-                Settings.System.SIP_CALL_OPTIONS, option);
-
-        // Notify SipAccountRegistry in the telephony layer that the configuration has changed.
-        // This causes the SIP PhoneAccounts to be re-registered.  This ensures the supported URI
-        // schemes for the SIP PhoneAccounts matches the new SIP_CALL_OPTIONS setting.
-        Intent intent = new Intent(SipManager.ACTION_SIP_CALL_OPTION_CHANGED);
-        mContext.sendBroadcast(intent);
-    }
-
-    public String getSipCallOption() {
-        String option = Settings.System.getString(mContext.getContentResolver(),
-                Settings.System.SIP_CALL_OPTIONS);
-        return (option != null) ? option
-                                : mContext.getString(R.string.sip_address_only);
-    }
-
-    public void setReceivingCallsEnabled(boolean enabled) {
-        Settings.System.putInt(mContext.getContentResolver(),
-                Settings.System.SIP_RECEIVE_CALLS, (enabled ? 1 : 0));
-    }
-
-    public boolean isReceivingCallsEnabled() {
-        try {
-            return (Settings.System.getInt(mContext.getContentResolver(),
-                    Settings.System.SIP_RECEIVE_CALLS) != 0);
-        } catch (SettingNotFoundException e) {
-            log("isReceivingCallsEnabled, option not set; use default value, exception: " + e);
-            return false;
-        }
-    }
-
-    /**
-     * Remove obsolete SharedPreferences File upon upgrade from M->N.
-     */
-    public void clearSharedPreferences() {
-        mContext.deleteSharedPreferences(SIP_SHARED_PREFERENCES);
-    }
-
-    // TODO: back up to Android Backup
-
-    private static void log(String msg) {
-        Log.d(SipUtil.LOG_TAG, PREFIX + msg);
-    }
-}
diff --git a/sip/src/com/android/services/telephony/sip/SipProfileDb.java b/sip/src/com/android/services/telephony/sip/SipProfileDb.java
deleted file mode 100644
index 812ebb4..0000000
--- a/sip/src/com/android/services/telephony/sip/SipProfileDb.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.services.telephony.sip;
-
-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;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Utility class that helps perform operations on the SipProfile database.
- */
-class SipProfileDb {
-    private static final String PREFIX = "[SipProfileDb] ";
-    private static final boolean VERBOSE = false; /* STOP SHIP if true */
-
-    private static final String PROFILES_DIR = "/profiles/";
-    private static final String PROFILE_OBJ_FILE = ".pobj";
-
-    private static final String SCHEME_PREFIX = "sip:";
-
-    private Context mContext;
-    private String mProfilesDirectory;
-    private SipPreferences mSipPreferences;
-    private int mProfilesCount = -1;
-
-    public SipProfileDb(Context context) {
-        // Sip Profile Db should always reference CE storage.
-        mContext = context.createCredentialProtectedStorageContext();
-        setupDatabase();
-    }
-
-    // Only should be used during migration from M->N to move database
-    public void accessDEStorageForMigration() {
-        mContext = mContext.createDeviceProtectedStorageContext();
-        setupDatabase();
-    }
-
-    private void setupDatabase() {
-        mProfilesDirectory = mContext.getFilesDir().getAbsolutePath() + PROFILES_DIR;
-        mSipPreferences = new SipPreferences(mContext);
-    }
-
-    public void deleteProfile(SipProfile p) throws IOException {
-        synchronized(SipProfileDb.class) {
-            File profileFile = new File(mProfilesDirectory, p.getProfileName());
-            if (!isChild(new File(mProfilesDirectory), profileFile)) {
-                throw new IOException("Invalid Profile Credentials!");
-            }
-            deleteProfile(profileFile);
-            if (mProfilesCount < 0) retrieveSipProfileListInternal();
-        }
-    }
-
-    private void deleteProfile(File file) {
-        if (file.isDirectory()) {
-            for (File child : file.listFiles()) deleteProfile(child);
-        }
-        file.delete();
-    }
-
-    public void cleanupUponMigration() {
-        // Remove empty .../profiles/ directory
-        File dbDir = new File(mProfilesDirectory);
-        if(dbDir.isDirectory()) {
-            dbDir.delete();
-        }
-        // Remove SharedPreferences file as well
-        mSipPreferences.clearSharedPreferences();
-    }
-
-    public void saveProfile(SipProfile p) throws IOException {
-        synchronized(SipProfileDb.class) {
-            if (mProfilesCount < 0) retrieveSipProfileListInternal();
-            File f = new File(mProfilesDirectory, p.getProfileName());
-            if (!isChild(new File(mProfilesDirectory), f)) {
-                throw new IOException("Invalid Profile Credentials!");
-            }
-            if (!f.exists()) f.mkdirs();
-            AtomicFile atomicFile = new AtomicFile(new File(f, PROFILE_OBJ_FILE));
-            FileOutputStream fos = null;
-            ObjectOutputStream oos = null;
-            try {
-                fos = atomicFile.startWrite();
-                oos = new ObjectOutputStream(fos);
-                oos.writeObject(p);
-                oos.flush();
-                atomicFile.finishWrite(fos);
-            } catch (IOException e) {
-                atomicFile.failWrite(fos);
-                throw e;
-            } finally {
-                if (oos != null) oos.close();
-            }
-        }
-    }
-
-    public List<SipProfile> retrieveSipProfileList() {
-        synchronized(SipProfileDb.class) {
-            return retrieveSipProfileListInternal();
-        }
-    }
-
-    private List<SipProfile> retrieveSipProfileListInternal() {
-        List<SipProfile> sipProfileList = Collections.synchronizedList(
-                new ArrayList<SipProfile>());
-
-        File root = new File(mProfilesDirectory);
-        String[] dirs = root.list();
-        if (dirs == null) return sipProfileList;
-        for (String dir : dirs) {
-            SipProfile p = retrieveSipProfileFromName(dir);
-            if (p == null) continue;
-            sipProfileList.add(p);
-        }
-        mProfilesCount = sipProfileList.size();
-        return sipProfileList;
-    }
-
-    public SipProfile retrieveSipProfileFromName(String name) {
-        if (TextUtils.isEmpty(name)) {
-            return null;
-        }
-
-        File root = new File(mProfilesDirectory);
-        File f = new File(new File(root, name), PROFILE_OBJ_FILE);
-        if (f.exists()) {
-            try {
-                SipProfile p = deserialize(f);
-                if (p != null && name.equals(p.getProfileName())) {
-                    return p;
-                }
-            } catch (IOException e) {
-                log("retrieveSipProfileListInternal, exception: " + e);
-            }
-        }
-        return null;
-    }
-
-    private SipProfile deserialize(File profileObjectFile) throws IOException {
-        AtomicFile atomicFile = new AtomicFile(profileObjectFile);
-        ObjectInputStream ois = null;
-        try {
-            ois = new ObjectInputStream(atomicFile.openRead());
-            SipProfile p = (SipProfile) ois.readObject();
-            return p;
-        } catch (ClassNotFoundException e) {
-            log("deserialize, exception: " + e);
-        } finally {
-            if (ois!= null) ois.close();
-        }
-        return null;
-    }
-
-    private static void log(String msg) {
-        Log.d(SipUtil.LOG_TAG, PREFIX + msg);
-    }
-
-    /**
-     * Verifies that the file is a direct child of the base directory.
-     */
-    private boolean isChild(File base, File file) {
-        if (base == null || file == null) {
-            return false;
-        }
-        if (!base.equals(file.getAbsoluteFile().getParentFile())) {
-            Log.w(SipUtil.LOG_TAG, "isChild, file is not a child of the base dir.");
-            EventLog.writeEvent(0x534e4554, "31530456", -1, "");
-            return false;
-        }
-        return true;
-    }
-}
diff --git a/sip/src/com/android/services/telephony/sip/SipSettings.java b/sip/src/com/android/services/telephony/sip/SipSettings.java
deleted file mode 100644
index 813ba51..0000000
--- a/sip/src/com/android/services/telephony/sip/SipSettings.java
+++ /dev/null
@@ -1,444 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.services.telephony.sip;
-
-import android.app.ActionBar;
-import android.app.AlertDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.net.sip.SipErrorCode;
-import android.net.sip.SipException;
-import android.net.sip.SipManager;
-import android.net.sip.SipProfile;
-import android.net.sip.SipRegistrationListener;
-import android.os.Bundle;
-import android.os.Parcelable;
-import android.os.Process;
-import android.preference.Preference;
-import android.preference.PreferenceActivity;
-import android.preference.PreferenceCategory;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.Menu;
-import android.view.MenuItem;
-
-import com.android.phone.R;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * The PreferenceActivity class for managing sip profile preferences.
- */
-public class SipSettings extends PreferenceActivity {
-    public static final String SIP_SHARED_PREFERENCES = "SIP_PREFERENCES";
-
-    static final String KEY_SIP_PROFILE = "sip_profile";
-    static final int REQUEST_ADD_OR_EDIT_SIP_PROFILE = 1;
-
-    private static final String PREFIX = "[SipSettings] ";
-    private static final boolean VERBOSE = false; /* STOP SHIP if true */
-    private static final int MENU_ADD_ACCOUNT = Menu.FIRST;
-    private static final String PREF_SIP_LIST = "sip_account_list";
-
-    private PackageManager mPackageManager;
-    private SipManager mSipManager;
-    private SipProfileDb mProfileDb;
-    private SipProfile mProfile; // profile that's being edited
-    private PreferenceCategory mSipListContainer;
-    private Map<String, SipPreference> mSipPreferenceMap;
-    private List<SipProfile> mSipProfileList;
-    private SipPreferences mSipPreferences;
-    private int mUid = Process.myUid();
-
-    private class SipPreference extends Preference {
-        SipProfile mProfile;
-        SipPreference(Context c, SipProfile p) {
-            super(c);
-            setProfile(p);
-        }
-
-        SipProfile getProfile() {
-            return mProfile;
-        }
-
-        void setProfile(SipProfile p) {
-            mProfile = p;
-            setTitle(getProfileName(p));
-            updateSummary(mSipPreferences.isReceivingCallsEnabled()
-                    ? getString(R.string.registration_status_checking_status)
-                    : getString(R.string.registration_status_not_receiving));
-        }
-
-        void updateSummary(String registrationStatus) {
-            int profileUid = mProfile.getCallingUid();
-            if (VERBOSE) {
-                log("SipPreference.updateSummary, profile uid: " + profileUid +
-                        " registration: " + registrationStatus +
-                        " status: " + registrationStatus);
-            }
-            String summary = "";
-            if ((profileUid > 0) && (profileUid != mUid)) {
-                // from third party apps
-                summary = getString(R.string.third_party_account_summary,
-                        getPackageNameFromUid(profileUid));
-            } else {
-                summary = registrationStatus;
-            }
-            setSummary(summary);
-        }
-    }
-
-    private String getPackageNameFromUid(int uid) {
-        try {
-            String[] pkgs = mPackageManager.getPackagesForUid(uid);
-            ApplicationInfo ai = mPackageManager.getApplicationInfo(pkgs[0], 0);
-            return ai.loadLabel(mPackageManager).toString();
-        } catch (PackageManager.NameNotFoundException e) {
-            log("getPackageNameFromUid, cannot find name of uid: " + uid + ", exception: " + e);
-        }
-        return "uid:" + uid;
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mSipManager = SipManager.newInstance(this);
-        mSipPreferences = new SipPreferences(this);
-        mProfileDb = new SipProfileDb(this);
-
-        mPackageManager = getPackageManager();
-        setContentView(R.layout.sip_settings_ui);
-        addPreferencesFromResource(R.xml.sip_setting);
-        mSipListContainer = (PreferenceCategory) findPreference(PREF_SIP_LIST);
-
-        ActionBar actionBar = getActionBar();
-        if (actionBar != null) {
-            actionBar.setDisplayHomeAsUpEnabled(true);
-        }
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        updateProfilesStatus();
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        unregisterForContextMenu(getListView());
-    }
-
-    @Override
-    protected void onActivityResult(final int requestCode, final int resultCode,
-            final Intent intent) {
-        if (resultCode != RESULT_OK && resultCode != RESULT_FIRST_USER) return;
-        new Thread() {
-            @Override
-            public void run() {
-                try {
-                    if (mProfile != null) {
-                        if (VERBOSE) log("onActivityResult, remove: " + mProfile.getProfileName());
-                        deleteProfile(mProfile);
-                    }
-
-                    SipProfile profile = intent.getParcelableExtra(KEY_SIP_PROFILE);
-                    if (resultCode == RESULT_OK) {
-                        if (VERBOSE) log("onActivityResult, new: " + profile.getProfileName());
-                        addProfile(profile);
-                    }
-                    updateProfilesStatus();
-                } catch (IOException e) {
-                    log("onActivityResult, can not handle the profile:  " + e);
-                }
-            }
-        }.start();
-    }
-
-    private void updateProfilesStatus() {
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    retrieveSipLists();
-                } catch (Exception e) {
-                    log("updateProfilesStatus, exception: " + e);
-                }
-            }
-        }).start();
-    }
-
-    private String getProfileName(SipProfile profile) {
-        String profileName = profile.getProfileName();
-        if (TextUtils.isEmpty(profileName)) {
-            profileName = profile.getUserName() + "@" + profile.getSipDomain();
-        }
-        return profileName;
-    }
-
-    private void retrieveSipLists() {
-        mSipPreferenceMap = new LinkedHashMap<String, SipPreference>();
-        mSipProfileList = mProfileDb.retrieveSipProfileList();
-        processActiveProfilesFromSipService();
-        Collections.sort(mSipProfileList, new Comparator<SipProfile>() {
-            @Override
-            public int compare(SipProfile p1, SipProfile p2) {
-                return getProfileName(p1).compareTo(getProfileName(p2));
-            }
-
-            public boolean equals(SipProfile p) {
-                // not used
-                return false;
-            }
-        });
-        mSipListContainer.removeAll();
-        if (mSipProfileList.isEmpty()) {
-            getPreferenceScreen().removePreference(mSipListContainer);
-        } else {
-            getPreferenceScreen().addPreference(mSipListContainer);
-            for (SipProfile p : mSipProfileList) {
-                addPreferenceFor(p);
-            }
-        }
-
-        if (!mSipPreferences.isReceivingCallsEnabled()) return;
-        for (SipProfile p : mSipProfileList) {
-            if (mUid == p.getCallingUid()) {
-                try {
-                    mSipManager.setRegistrationListener(
-                            p.getUriString(), createRegistrationListener());
-                } catch (SipException e) {
-                    log("retrieveSipLists, cannot set registration listener: " + e);
-                }
-            }
-        }
-    }
-
-    private void processActiveProfilesFromSipService() {
-        List<SipProfile> activeList = new ArrayList<>();
-        try {
-            activeList = mSipManager.getProfiles();
-        } catch (SipException e) {
-            log("SipManager could not retrieve SIP profiles: " + e);
-        }
-        for (SipProfile activeProfile : activeList) {
-            SipProfile profile = getProfileFromList(activeProfile);
-            if (profile == null) {
-                mSipProfileList.add(activeProfile);
-            } else {
-                profile.setCallingUid(activeProfile.getCallingUid());
-            }
-        }
-    }
-
-    private SipProfile getProfileFromList(SipProfile activeProfile) {
-        for (SipProfile p : mSipProfileList) {
-            if (p.getUriString().equals(activeProfile.getUriString())) {
-                return p;
-            }
-        }
-        return null;
-    }
-
-    private void addPreferenceFor(SipProfile p) {
-        String status;
-        if (VERBOSE) log("addPreferenceFor, profile uri: " + p.getUri());
-        SipPreference pref = new SipPreference(this, p);
-        mSipPreferenceMap.put(p.getUriString(), pref);
-        mSipListContainer.addPreference(pref);
-
-        pref.setOnPreferenceClickListener(
-                new Preference.OnPreferenceClickListener() {
-                    @Override
-                    public boolean onPreferenceClick(Preference pref) {
-                        handleProfileClick(((SipPreference) pref).mProfile);
-                        return true;
-                    }
-                });
-    }
-
-    private void handleProfileClick(final SipProfile profile) {
-        int uid = profile.getCallingUid();
-        if (uid == mUid || uid == 0) {
-            startSipEditor(profile);
-            return;
-        }
-        new AlertDialog.Builder(this)
-                .setTitle(R.string.alert_dialog_close)
-                .setIconAttribute(android.R.attr.alertDialogIcon)
-                .setPositiveButton(R.string.close_profile,
-                        new DialogInterface.OnClickListener() {
-                            @Override
-                            public void onClick(DialogInterface dialog, int w) {
-                                deleteProfile(profile);
-                                unregisterProfile(profile);
-                            }
-                        })
-                .setNegativeButton(android.R.string.cancel, null)
-                .show();
-    }
-
-    private void unregisterProfile(final SipProfile p) {
-        // run it on background thread for better UI response
-        new Thread(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    mSipManager.close(p.getUriString());
-                } catch (Exception e) {
-                    log("unregisterProfile, unregister failed, SipService died? Exception: " + e);
-                }
-            }
-        }, "unregisterProfile").start();
-    }
-
-    void deleteProfile(SipProfile p) {
-        mSipProfileList.remove(p);
-        SipPreference pref = mSipPreferenceMap.remove(p.getUriString());
-        if (pref != null) {
-            mSipListContainer.removePreference(pref);
-        }
-    }
-
-    private void addProfile(SipProfile p) throws IOException {
-        try {
-            mSipManager.setRegistrationListener(p.getUriString(),
-                    createRegistrationListener());
-        } catch (Exception e) {
-            log("addProfile, cannot set registration listener: " + e);
-        }
-        mSipProfileList.add(p);
-        addPreferenceFor(p);
-    }
-
-    private void startSipEditor(final SipProfile profile) {
-        mProfile = profile;
-        Intent intent = new Intent(this, SipEditor.class);
-        intent.putExtra(KEY_SIP_PROFILE, (Parcelable) profile);
-        startActivityForResult(intent, REQUEST_ADD_OR_EDIT_SIP_PROFILE);
-    }
-
-    private void showRegistrationMessage(final String profileUri,
-            final String message) {
-        runOnUiThread(new Runnable() {
-            @Override
-            public void run() {
-                SipPreference pref = mSipPreferenceMap.get(profileUri);
-                if (pref != null) {
-                    pref.updateSummary(message);
-                }
-            }
-        });
-    }
-
-    private SipRegistrationListener createRegistrationListener() {
-        return new SipRegistrationListener() {
-            @Override
-            public void onRegistrationDone(String profileUri, long expiryTime) {
-                showRegistrationMessage(profileUri, getString(
-                        R.string.registration_status_done));
-            }
-
-            @Override
-            public void onRegistering(String profileUri) {
-                showRegistrationMessage(profileUri, getString(
-                        R.string.registration_status_registering));
-            }
-
-            @Override
-            public void onRegistrationFailed(String profileUri, int errorCode,
-                    String message) {
-                switch (errorCode) {
-                    case SipErrorCode.IN_PROGRESS:
-                        showRegistrationMessage(profileUri, getString(
-                                R.string.registration_status_still_trying));
-                        break;
-                    case SipErrorCode.INVALID_CREDENTIALS:
-                        showRegistrationMessage(profileUri, getString(
-                                R.string.registration_status_invalid_credentials));
-                        break;
-                    case SipErrorCode.SERVER_UNREACHABLE:
-                        showRegistrationMessage(profileUri, getString(
-                                R.string.registration_status_server_unreachable));
-                        break;
-                    case SipErrorCode.DATA_CONNECTION_LOST:
-                        if (SipManager.isSipWifiOnly(getApplicationContext())){
-                            showRegistrationMessage(profileUri, getString(
-                                    R.string.registration_status_no_wifi_data));
-                        } else {
-                            showRegistrationMessage(profileUri, getString(
-                                    R.string.registration_status_no_data));
-                        }
-                        break;
-                    case SipErrorCode.CLIENT_ERROR:
-                        showRegistrationMessage(profileUri, getString(
-                                R.string.registration_status_not_running));
-                        break;
-                    default:
-                        showRegistrationMessage(profileUri, getString(
-                                R.string.registration_status_failed_try_later,
-                                message));
-                }
-            }
-        };
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        super.onCreateOptionsMenu(menu);
-        MenuItem addAccountMenuItem = menu.add(0, MENU_ADD_ACCOUNT, 0, R.string.add_sip_account);
-        addAccountMenuItem.setIcon(R.drawable.ic_add_gnu_grey);
-        addAccountMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
-        return true;
-    }
-
-    @Override
-    public boolean onPrepareOptionsMenu(Menu menu) {
-        menu.findItem(MENU_ADD_ACCOUNT).setEnabled(SipUtil.isPhoneIdle(this));
-        return super.onPrepareOptionsMenu(menu);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        final int itemId = item.getItemId();
-        switch (itemId) {
-            case MENU_ADD_ACCOUNT: {
-                startSipEditor(null);
-                return true;
-            }
-            case android.R.id.home: {
-                onBackPressed();
-                return true;
-            }
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-    private static void log(String msg) {
-        Log.d(SipUtil.LOG_TAG, PREFIX + msg);
-    }
-}
diff --git a/sip/src/com/android/services/telephony/sip/SipUtil.java b/sip/src/com/android/services/telephony/sip/SipUtil.java
deleted file mode 100644
index a5793d0..0000000
--- a/sip/src/com/android/services/telephony/sip/SipUtil.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.services.telephony.sip;
-
-import android.app.PendingIntent;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.drawable.Icon;
-import android.net.Uri;
-import android.net.sip.SipManager;
-import android.net.sip.SipProfile;
-import android.os.Bundle;
-import android.provider.Settings;
-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 java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class SipUtil {
-    static final String LOG_TAG = "SIP";
-    static final String EXTRA_INCOMING_CALL_INTENT =
-            "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)
-                        && ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE))
-                        .isVoiceCapable();
-    }
-
-    static PendingIntent createIncomingCallPendingIntent(
-            Context context, String sipProfileName) {
-        Intent intent = new Intent(context, SipIncomingCallReceiver.class);
-        intent.setAction(SipManager.ACTION_SIP_INCOMING_CALL);
-        intent.putExtra(EXTRA_PHONE_ACCOUNT, SipUtil.createAccountHandle(context, sipProfileName));
-        return PendingIntent.getBroadcast(context, 0, intent,
-                // Mutable because information associated with the call is passed back here.
-                PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);
-    }
-
-    public static boolean isPhoneIdle(Context context) {
-        TelecomManager manager = (TelecomManager) context.getSystemService(
-                Context.TELECOM_SERVICE);
-        if (manager != null) {
-            return !manager.isInCall();
-        }
-        return true;
-    }
-
-    /**
-     * Creates a {@link PhoneAccountHandle} from the specified SIP profile name.
-     */
-    static PhoneAccountHandle createAccountHandle(Context context, String sipProfileName) {
-        return new PhoneAccountHandle(
-                new ComponentName(context, SipConnectionService.class), sipProfileName);
-    }
-
-    /**
-     * Determines the SIP profile name for a specified {@link PhoneAccountHandle}.
-     *
-     * @param phoneAccountHandle The {@link PhoneAccountHandle}.
-     * @return The SIP profile name.
-     */
-    static String getSipProfileNameFromPhoneAccount(PhoneAccountHandle phoneAccountHandle) {
-        if (phoneAccountHandle == null) {
-            return null;
-        }
-
-        String sipProfileName = phoneAccountHandle.getId();
-        if (TextUtils.isEmpty(sipProfileName)) {
-            return null;
-        }
-        return sipProfileName;
-    }
-
-    /**
-     * Creates a PhoneAccount for a SipProfile.
-     *
-     * @param context The context
-     * @param profile The SipProfile.
-     * @return The PhoneAccount.
-     */
-    static PhoneAccount createPhoneAccount(Context context, SipProfile profile) {
-        // Build a URI to represent the SIP account.  Does not use SipProfile#getUriString() since
-        // that prototype can include transport information which we do not want to see in the
-        // phone account.
-        String sipAddress = profile.getUserName() + "@" + profile.getSipDomain();
-        Uri sipUri = Uri.parse(profile.getUriString());
-
-        PhoneAccountHandle accountHandle =
-                SipUtil.createAccountHandle(context, profile.getProfileName());
-
-        final ArrayList<String> supportedUriSchemes = new ArrayList<String>();
-        supportedUriSchemes.add(PhoneAccount.SCHEME_SIP);
-        if (useSipForPstnCalls(context)) {
-            supportedUriSchemes.add(PhoneAccount.SCHEME_TEL);
-        }
-
-        Bundle phoneAccountExtras = new Bundle();
-        phoneAccountExtras.putBoolean(PhoneAccount.EXTRA_ALWAYS_USE_VOIP_AUDIO_MODE,
-                true);
-
-        PhoneAccount.Builder builder = PhoneAccount.builder(accountHandle, profile.getDisplayName())
-                .setCapabilities(PhoneAccount.CAPABILITY_CALL_PROVIDER
-                        | PhoneAccount.CAPABILITY_MULTI_USER)
-                .setAddress(sipUri)
-                .setShortDescription(sipAddress)
-                .setIcon(Icon.createWithResource(
-                        context, R.drawable.ic_dialer_sip_black_24dp))
-                .setExtras(phoneAccountExtras)
-                .setSupportedUriSchemes(supportedUriSchemes);
-
-        return builder.build();
-    }
-
-    /**
-     * Upon migration from M->N, the SIP Profile database will be moved into DE storage. This will
-     * not be a problem for non-FBE enabled devices, since DE and CE storage is available at the
-     * same time. This will be a problem for backup/restore, however if the SIP Profile DB is
-     * restored onto a new FBE enabled device.
-     *
-     * Checks if the Sip Db is in DE storage. If it is, the Db is moved to CE storage and
-     * deleted.
-     */
-    private static void possiblyMigrateSipDb(Context context) {
-        SipProfileDb dbDeStorage = new SipProfileDb(context);
-        dbDeStorage.accessDEStorageForMigration();
-        List<SipProfile> profilesDeStorage = dbDeStorage.retrieveSipProfileList();
-        if(profilesDeStorage.size() != 0) {
-            Log.i(LOG_TAG, "Migrating SIP Profiles over!");
-            SipProfileDb dbCeStorage = new SipProfileDb(context);
-            //Perform Profile Migration
-            for (SipProfile profileToMove : profilesDeStorage) {
-                if (dbCeStorage.retrieveSipProfileFromName(
-                        profileToMove.getProfileName()) == null) {
-                    try {
-                        dbCeStorage.saveProfile(profileToMove);
-                    } catch (IOException e) {
-                        Log.w(LOG_TAG, "Error Migrating file to CE: " +
-                                profileToMove.getProfileName(), e);
-                    }
-                }
-                Log.i(LOG_TAG, "(Migration) Deleting SIP profile: " +
-                        profileToMove.getProfileName());
-                try {
-                    dbDeStorage.deleteProfile(profileToMove);
-                } catch (IOException e) {
-                    Log.w(LOG_TAG, "Error Deleting file: " +
-                            profileToMove.getProfileName(), e);
-                }
-            }
-        }
-        // Delete supporting structures if they exist
-        dbDeStorage.cleanupUponMigration();
-    }
-
-    /**
-     * Migrates the DB files over from CE->DE storage and starts the SipService.
-     */
-    public static void startSipService() {
-        Context phoneGlobalsContext = PhoneGlobals.getInstance();
-        // 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.
-        Intent startSipIntent = new Intent();
-        startSipIntent.setAction(SipManager.ACTION_START_SIP);
-        startSipIntent.setPackage(PHONE_PACKAGE);
-        phoneGlobalsContext.startService(startSipIntent);
-    }
-
-    /**
-     * Determines if the user has chosen to use SIP for PSTN calls as well as SIP calls.
-     * @param context The context.
-     * @return {@code True} if SIP should be used for PSTN calls.
-     */
-    private static boolean useSipForPstnCalls(Context context) {
-        final SipPreferences sipPreferences = new SipPreferences(context);
-        return sipPreferences.getSipCallOption().equals(Settings.System.SIP_ALWAYS);
-    }
-
-    /**
-     * Updates SIP accounts to indicate whether they are enabled to receive incoming SIP calls.
-     *
-     * @param isEnabled {@code True} if receiving incoming SIP calls.
-     */
-    public static void useSipToReceiveIncomingCalls(Context context, boolean isEnabled) {
-        SipProfileDb profileDb = new SipProfileDb(context);
-
-        // Mark all profiles as auto-register if we are now receiving calls.
-        List<SipProfile> sipProfileList = profileDb.retrieveSipProfileList();
-        for (SipProfile p : sipProfileList) {
-            updateAutoRegistrationFlag(p, profileDb, isEnabled);
-        }
-    }
-
-    private static void updateAutoRegistrationFlag(
-            SipProfile p, SipProfileDb db, boolean isEnabled) {
-        SipProfile newProfile = new SipProfile.Builder(p).setAutoRegistration(isEnabled).build();
-
-        try {
-            // Note: The profile is updated, but the associated PhoneAccount is left alone since
-            // the only thing that changed is the auto-registration flag, which is not part of the
-            // PhoneAccount.
-            db.deleteProfile(p);
-            db.saveProfile(newProfile);
-        } catch (Exception e) {
-            Log.d(LOG_TAG, "updateAutoRegistrationFlag, exception: " + e);
-        }
-    }
-}
diff --git a/sip/src/com/android/services/telephony/sip/components/TelephonySipService.java b/sip/src/com/android/services/telephony/sip/components/TelephonySipService.java
deleted file mode 100644
index 5b863b1..0000000
--- a/sip/src/com/android/services/telephony/sip/components/TelephonySipService.java
+++ /dev/null
@@ -1,43 +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.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/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index ec6ea2b..e64c81c 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -220,7 +220,7 @@
             if (mImsMgr.isEnhanced4gLteModeSettingEnabledByUser()) {
                 mImsMgr.setVtSetting((boolean) objValue);
             } else {
-                AlertDialog.Builder builder = new AlertDialog.Builder(this);
+                AlertDialog.Builder builder = FrameworksUtils.makeAlertDialogBuilder(this);
                 DialogInterface.OnClickListener networkSettingsClickListener =
                         new Dialog.OnClickListener() {
                             @Override
@@ -455,10 +455,16 @@
         boolean useWfcHomeModeForRoaming = carrierConfig.getBoolean(
                     CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL,
                     false);
+        boolean isDataEnabled;
+        if (mPhone.isUsingNewDataStack()) {
+            isDataEnabled = mPhone.getDataSettingsManager().isDataEnabled();
+        } else {
+            isDataEnabled = mPhone.getDataEnabledSettings().isDataEnabled();
+        }
         if (mImsMgr.isVtEnabledByPlatform() && mImsMgr.isVtProvisionedOnDevice()
                 && (carrierConfig.getBoolean(
                         CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
-                || mPhone.getDataEnabledSettings().isDataEnabled())) {
+                || isDataEnabled)) {
             boolean currentValue =
                     mImsMgr.isEnhanced4gLteModeSettingEnabledByUser()
                     ? mImsMgr.isVtEnabledByUser() : false;
diff --git a/src/com/android/phone/CallForwardEditPreference.java b/src/com/android/phone/CallForwardEditPreference.java
index 45121f7..2cbb7c5 100644
--- a/src/com/android/phone/CallForwardEditPreference.java
+++ b/src/com/android/phone/CallForwardEditPreference.java
@@ -428,7 +428,8 @@
                                     default: // not reachable
                                         s = getContext().getText(R.string.disable_cfnrc_forbidden);
                                 }
-                                AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
+                                AlertDialog.Builder builder =
+                                        FrameworksUtils.makeAlertDialogBuilder(getContext());
                                 builder.setNeutralButton(R.string.close_dialog, null);
                                 builder.setTitle(getContext()
                                         .getText(R.string.error_updating_title));
@@ -441,7 +442,8 @@
                                 // Handle the fail-to-enable case.
                                 CharSequence s = getContext()
                                     .getText(R.string.registration_cf_forbidden);
-                                AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
+                                AlertDialog.Builder builder =
+                                        FrameworksUtils.makeAlertDialogBuilder(getContext());
                                 builder.setNeutralButton(R.string.close_dialog, null);
                                 builder.setTitle(getContext()
                                         .getText(R.string.error_updating_title));
diff --git a/src/com/android/phone/CallNotifier.java b/src/com/android/phone/CallNotifier.java
index a8ef220..7f61f78 100644
--- a/src/com/android/phone/CallNotifier.java
+++ b/src/com/android/phone/CallNotifier.java
@@ -276,23 +276,10 @@
         private int mState;
         // The possible tones we can play.
         public static final int TONE_NONE = 0;
-        public static final int TONE_CALL_WAITING = 1;
-        public static final int TONE_BUSY = 2;
-        public static final int TONE_CONGESTION = 3;
-        public static final int TONE_CALL_ENDED = 4;
         public static final int TONE_VOICE_PRIVACY = 5;
-        public static final int TONE_REORDER = 6;
-        public static final int TONE_INTERCEPT = 7;
-        public static final int TONE_CDMA_DROP = 8;
-        public static final int TONE_OUT_OF_SERVICE = 9;
-        public static final int TONE_REDIAL = 10;
-        public static final int TONE_OTA_CALL_END = 11;
-        public static final int TONE_UNOBTAINABLE_NUMBER = 13;
 
         // The tone volume relative to other sounds in the stream
-        static final int TONE_RELATIVE_VOLUME_EMERGENCY = 100;
         static final int TONE_RELATIVE_VOLUME_HIPRI = 80;
-        static final int TONE_RELATIVE_VOLUME_LOPRI = 50;
 
         // Buffer time (in msec) to add on to tone timeout value.
         // Needed mainly when the timeout value for a tone is the
@@ -320,70 +307,11 @@
             int phoneType = mCM.getFgPhone().getPhoneType();
 
             switch (mToneId) {
-                case TONE_CALL_WAITING:
-                    toneType = ToneGenerator.TONE_SUP_CALL_WAITING;
-                    toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
-                    // Call waiting tone is stopped by stopTone() method
-                    toneLengthMillis = Integer.MAX_VALUE - TONE_TIMEOUT_BUFFER;
-                    break;
-                case TONE_BUSY:
-                    if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
-                        toneType = ToneGenerator.TONE_CDMA_NETWORK_BUSY_ONE_SHOT;
-                        toneVolume = TONE_RELATIVE_VOLUME_LOPRI;
-                        toneLengthMillis = 1000;
-                    } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM
-                            || phoneType == PhoneConstants.PHONE_TYPE_SIP
-                            || phoneType == PhoneConstants.PHONE_TYPE_IMS
-                            || phoneType == PhoneConstants.PHONE_TYPE_THIRD_PARTY) {
-                        toneType = ToneGenerator.TONE_SUP_BUSY;
-                        toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
-                        toneLengthMillis = 4000;
-                    } else {
-                        throw new IllegalStateException("Unexpected phone type: " + phoneType);
-                    }
-                    break;
-                case TONE_CONGESTION:
-                    toneType = ToneGenerator.TONE_SUP_CONGESTION;
-                    toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
-                    toneLengthMillis = 4000;
-                    break;
-
-                case TONE_CALL_ENDED:
-                    toneType = ToneGenerator.TONE_PROP_PROMPT;
-                    toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
-                    toneLengthMillis = 200;
-                    break;
                 case TONE_VOICE_PRIVACY:
                     toneType = ToneGenerator.TONE_CDMA_ALERT_NETWORK_LITE;
                     toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
                     toneLengthMillis = 5000;
                     break;
-                case TONE_REORDER:
-                    toneType = ToneGenerator.TONE_CDMA_REORDER;
-                    toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
-                    toneLengthMillis = 4000;
-                    break;
-                case TONE_INTERCEPT:
-                    toneType = ToneGenerator.TONE_CDMA_ABBR_INTERCEPT;
-                    toneVolume = TONE_RELATIVE_VOLUME_LOPRI;
-                    toneLengthMillis = 500;
-                    break;
-                case TONE_CDMA_DROP:
-                case TONE_OUT_OF_SERVICE:
-                    toneType = ToneGenerator.TONE_CDMA_CALLDROP_LITE;
-                    toneVolume = TONE_RELATIVE_VOLUME_LOPRI;
-                    toneLengthMillis = 375;
-                    break;
-                case TONE_REDIAL:
-                    toneType = ToneGenerator.TONE_CDMA_ALERT_AUTOREDIAL_LITE;
-                    toneVolume = TONE_RELATIVE_VOLUME_LOPRI;
-                    toneLengthMillis = 5000;
-                    break;
-                case TONE_UNOBTAINABLE_NUMBER:
-                    toneType = ToneGenerator.TONE_SUP_ERROR;
-                    toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
-                    toneLengthMillis = 4000;
-                    break;
                 default:
                     throw new IllegalArgumentException("Bad toneId: " + mToneId);
             }
diff --git a/src/com/android/phone/CallWaitingSwitchPreference.java b/src/com/android/phone/CallWaitingSwitchPreference.java
index 609488c..00407f3 100644
--- a/src/com/android/phone/CallWaitingSwitchPreference.java
+++ b/src/com/android/phone/CallWaitingSwitchPreference.java
@@ -1,6 +1,7 @@
 package com.android.phone;
 
 import static com.android.phone.TimeConsumingPreferenceActivity.EXCEPTION_ERROR;
+import static com.android.phone.TimeConsumingPreferenceActivity.FDN_CHECK_FAILURE;
 import static com.android.phone.TimeConsumingPreferenceActivity.RESPONSE_ERROR;
 
 import android.content.Context;
@@ -128,17 +129,27 @@
                 }
             }
 
-            if (mIsDuringUpdateProcess && (
-                    mUpdateStatus == TelephonyManager.CALL_WAITING_STATUS_NOT_SUPPORTED
-                            || mUpdateStatus
-                            == TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR)) {
-                Log.d(LOG_TAG, "handleSetCallWaitingResponse: Exception");
-                if (mTcpListener != null) {
-                    mTcpListener.onError(CallWaitingSwitchPreference.this, EXCEPTION_ERROR);
+            if (mQueryStatus != TelephonyManager.CALL_WAITING_STATUS_ENABLED
+                    && mQueryStatus != TelephonyManager.CALL_WAITING_STATUS_DISABLED
+                    && mQueryStatus != TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR) {
+                Log.d(LOG_TAG, "handleGetCallWaitingResponse: Exception:" + mQueryStatus);
+                int error = EXCEPTION_ERROR;
+                switch (mQueryStatus) {
+                    case TelephonyManager.CALL_WAITING_STATUS_FDN_CHECK_FAILURE:
+                        error = FDN_CHECK_FAILURE;
+                        break;
+                    default:
+                        error = EXCEPTION_ERROR;
+                        break;
                 }
-            } else if (mQueryStatus == TelephonyManager.CALL_WAITING_STATUS_NOT_SUPPORTED
-                    || mQueryStatus == TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR) {
-                Log.d(LOG_TAG, "handleGetCallWaitingResponse: Exception");
+                if (mTcpListener != null) {
+                    mTcpListener.onError(CallWaitingSwitchPreference.this, error);
+                }
+            } else if (mQueryStatus == TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR
+                    || (mIsDuringUpdateProcess && (
+                    mUpdateStatus != TelephonyManager.CALL_WAITING_STATUS_ENABLED
+                            && mUpdateStatus != TelephonyManager.CALL_WAITING_STATUS_DISABLED))) {
+                Log.d(LOG_TAG, "handleSetCallWaitingResponse: Exception");
                 if (mTcpListener != null) {
                     mTcpListener.onError(CallWaitingSwitchPreference.this, RESPONSE_ERROR);
                 }
diff --git a/src/com/android/phone/CallerInfoCache.java b/src/com/android/phone/CallerInfoCache.java
deleted file mode 100644
index 2707c7c..0000000
--- a/src/com/android/phone/CallerInfoCache.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.os.AsyncTask;
-import android.os.PowerManager;
-import android.os.SystemProperties;
-import android.provider.ContactsContract.CommonDataKinds.Callable;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.Data;
-import android.telephony.PhoneNumberUtils;
-import android.util.Log;
-
-import java.util.HashMap;
-import java.util.Map.Entry;
-
-/**
- * Holds "custom ringtone" and "send to voicemail" information for each contact as a fallback of
- * contacts database. The cached information is refreshed periodically and used when database
- * lookup (via ContentResolver) takes longer time than expected.
- *
- * The data inside this class shouldn't be treated as "primary"; they may not reflect the
- * latest information stored in the original database.
- */
-public class CallerInfoCache {
-    private static final String LOG_TAG = CallerInfoCache.class.getSimpleName();
-    private static final boolean DBG =
-            (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
-
-    /** This must not be set to true when submitting changes. */
-    private static final boolean VDBG = false;
-
-    public static final int MESSAGE_UPDATE_CACHE = 0;
-
-    // Assuming DATA.DATA1 corresponds to Phone.NUMBER and SipAddress.ADDRESS, we just use
-    // Data columns as much as we can. One exception: because normalized numbers won't be used in
-    // SIP cases, Phone.NORMALIZED_NUMBER is used as is instead of using Data.
-    private static final String[] PROJECTION = new String[] {
-        Data.DATA1,                  // 0
-        Phone.NORMALIZED_NUMBER,     // 1
-        Data.CUSTOM_RINGTONE,        // 2
-        Data.SEND_TO_VOICEMAIL       // 3
-    };
-
-    private static final int INDEX_NUMBER            = 0;
-    private static final int INDEX_NORMALIZED_NUMBER = 1;
-    private static final int INDEX_CUSTOM_RINGTONE   = 2;
-    private static final int INDEX_SEND_TO_VOICEMAIL = 3;
-
-    private static final String SELECTION = "("
-            + "(" + Data.CUSTOM_RINGTONE + " IS NOT NULL OR " + Data.SEND_TO_VOICEMAIL + "=1)"
-            + " AND " + Data.DATA1 + " IS NOT NULL)";
-
-    public static class CacheEntry {
-        public final String customRingtone;
-        public final boolean sendToVoicemail;
-        public CacheEntry(String customRingtone, boolean shouldSendToVoicemail) {
-            this.customRingtone = customRingtone;
-            this.sendToVoicemail = shouldSendToVoicemail;
-        }
-
-        @Override
-        public String toString() {
-            return "ringtone: " + customRingtone + ", " + sendToVoicemail;
-        }
-    }
-
-    private class CacheAsyncTask extends AsyncTask<Void, Void, Void> {
-
-        private PowerManager.WakeLock mWakeLock;
-
-        /**
-         * Call {@link PowerManager.WakeLock#acquire} and call {@link AsyncTask#execute(Object...)},
-         * guaranteeing the lock is held during the asynchronous task.
-         */
-        public void acquireWakeLockAndExecute() {
-            // Prepare a separate partial WakeLock than what PhoneApp has so to avoid
-            // unnecessary conflict.
-            PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
-            mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, LOG_TAG);
-            mWakeLock.acquire();
-            execute();
-        }
-
-        @Override
-        protected Void doInBackground(Void... params) {
-            if (DBG) log("Start refreshing cache.");
-            refreshCacheEntry();
-            return null;
-        }
-
-        @Override
-        protected void onPostExecute(Void result) {
-            if (VDBG) log("CacheAsyncTask#onPostExecute()");
-            super.onPostExecute(result);
-            releaseWakeLock();
-        }
-
-        @Override
-        protected void onCancelled(Void result) {
-            if (VDBG) log("CacheAsyncTask#onCanceled()");
-            super.onCancelled(result);
-            releaseWakeLock();
-        }
-
-        private void releaseWakeLock() {
-            if (mWakeLock != null && mWakeLock.isHeld()) {
-                mWakeLock.release();
-            }
-        }
-    }
-
-    private final Context mContext;
-
-    /**
-     * The mapping from number to CacheEntry.
-     *
-     * The number will be:
-     * - last 7 digits of each "normalized phone number when it is for PSTN phone call, or
-     * - a full SIP address for SIP call
-     *
-     * When cache is being refreshed, this whole object will be replaced with a newer object,
-     * instead of updating elements inside the object.  "volatile" is used to make
-     * {@link #getCacheEntry(String)} access to the newer one every time when the object is
-     * being replaced.
-     */
-    private volatile HashMap<String, CacheEntry> mNumberToEntry;
-
-    /**
-     * Used to remember if the previous task is finished or not. Should be set to null when done.
-     */
-    private CacheAsyncTask mCacheAsyncTask;
-
-    public static CallerInfoCache init(Context context) {
-        if (DBG) log("init()");
-        CallerInfoCache cache = new CallerInfoCache(context);
-        // The first cache should be available ASAP.
-        cache.startAsyncCache();
-        return cache;
-    }
-
-    private CallerInfoCache(Context context) {
-        mContext = context;
-        mNumberToEntry = new HashMap<String, CacheEntry>();
-    }
-
-    /* package */ void startAsyncCache() {
-        if (DBG) log("startAsyncCache");
-
-        if (mCacheAsyncTask != null) {
-            Log.w(LOG_TAG, "Previous cache task is remaining.");
-            mCacheAsyncTask.cancel(true);
-        }
-        mCacheAsyncTask = new CacheAsyncTask();
-        mCacheAsyncTask.acquireWakeLockAndExecute();
-    }
-
-    private void refreshCacheEntry() {
-        if (VDBG) log("refreshCacheEntry() started");
-
-        // There's no way to know which part of the database was updated. Also we don't want
-        // to block incoming calls asking for the cache. So this method just does full query
-        // and replaces the older cache with newer one. To refrain from blocking incoming calls,
-        // it keeps older one as much as it can, and replaces it with newer one inside a very small
-        // synchronized block.
-
-        Cursor cursor = null;
-        try {
-            cursor = mContext.getContentResolver().query(Callable.CONTENT_URI,
-                    PROJECTION, SELECTION, null, null);
-            if (cursor != null) {
-                // We don't want to block real in-coming call, so prepare a completely fresh
-                // cache here again, and replace it with older one.
-                final HashMap<String, CacheEntry> newNumberToEntry =
-                        new HashMap<String, CacheEntry>(cursor.getCount());
-
-                while (cursor.moveToNext()) {
-                    final String number = cursor.getString(INDEX_NUMBER);
-                    String normalizedNumber = cursor.getString(INDEX_NORMALIZED_NUMBER);
-                    if (normalizedNumber == null) {
-                        // There's no guarantee normalized numbers are available every time and
-                        // it may become null sometimes. Try formatting the original number.
-                        normalizedNumber = PhoneNumberUtils.normalizeNumber(number);
-                    }
-                    final String customRingtone = cursor.getString(INDEX_CUSTOM_RINGTONE);
-                    final boolean sendToVoicemail = cursor.getInt(INDEX_SEND_TO_VOICEMAIL) == 1;
-
-                    if (PhoneNumberUtils.isUriNumber(number)) {
-                        // SIP address case
-                        putNewEntryWhenAppropriate(
-                                newNumberToEntry, number, customRingtone, sendToVoicemail);
-                    } else {
-                        // PSTN number case
-                        // Each normalized number may or may not have full content of the number.
-                        // Contacts database may contain +15001234567 while a dialed number may be
-                        // just 5001234567. Also we may have inappropriate country
-                        // code in some cases (e.g. when the location of the device is inconsistent
-                        // with the device's place). So to avoid confusion we just rely on the last
-                        // 7 digits here. It may cause some kind of wrong behavior, which is
-                        // unavoidable anyway in very rare cases..
-                        final int length = normalizedNumber.length();
-                        final String key = length > 7
-                                ? normalizedNumber.substring(length - 7, length)
-                                        : normalizedNumber;
-                        putNewEntryWhenAppropriate(
-                                newNumberToEntry, key, customRingtone, sendToVoicemail);
-                    }
-                }
-
-                if (VDBG) {
-                    Log.d(LOG_TAG, "New cache size: " + newNumberToEntry.size());
-                    for (Entry<String, CacheEntry> entry : newNumberToEntry.entrySet()) {
-                        Log.d(LOG_TAG, "Number: " + entry.getKey() + " -> " + entry.getValue());
-                    }
-                }
-
-                mNumberToEntry = newNumberToEntry;
-
-                if (DBG) {
-                    log("Caching entries are done. Total: " + newNumberToEntry.size());
-                }
-            } else {
-                // Let's just wait for the next refresh..
-                //
-                // If the cursor became null at that exact moment, probably we don't want to
-                // drop old cache. Also the case is fairly rare in usual cases unless acore being
-                // killed, so we don't take care much of this case.
-                Log.w(LOG_TAG, "cursor is null");
-            }
-        } finally {
-            if (cursor != null) {
-                cursor.close();
-            }
-        }
-
-        if (VDBG) log("refreshCacheEntry() ended");
-    }
-
-    private void putNewEntryWhenAppropriate(HashMap<String, CacheEntry> newNumberToEntry,
-            String numberOrSipAddress, String customRingtone, boolean sendToVoicemail) {
-        if (newNumberToEntry.containsKey(numberOrSipAddress)) {
-            // There may be duplicate entries here and we should prioritize
-            // "send-to-voicemail" flag in any case.
-            final CacheEntry entry = newNumberToEntry.get(numberOrSipAddress);
-            if (!entry.sendToVoicemail && sendToVoicemail) {
-                newNumberToEntry.put(numberOrSipAddress,
-                        new CacheEntry(customRingtone, sendToVoicemail));
-            }
-        } else {
-            newNumberToEntry.put(numberOrSipAddress,
-                    new CacheEntry(customRingtone, sendToVoicemail));
-        }
-    }
-
-    /**
-     * Returns CacheEntry for the given number (PSTN number or SIP address).
-     *
-     * @param number OK to be unformatted.
-     * @return CacheEntry to be used. Maybe null if there's no cache here. Note that this may
-     * return null when the cache itself is not ready. BE CAREFUL. (or might be better to throw
-     * an exception)
-     */
-    public CacheEntry getCacheEntry(String number) {
-        if (mNumberToEntry == null) {
-            // Very unusual state. This implies the cache isn't ready during the request, while
-            // it should be prepared on the boot time (i.e. a way before even the first request).
-            Log.w(LOG_TAG, "Fallback cache isn't ready.");
-            return null;
-        }
-
-        CacheEntry entry;
-        if (PhoneNumberUtils.isUriNumber(number)) {
-            if (VDBG) log("Trying to lookup " + number);
-
-            entry = mNumberToEntry.get(number);
-        } else {
-            final String normalizedNumber = PhoneNumberUtils.normalizeNumber(number);
-            final int length = normalizedNumber.length();
-            final String key =
-                    (length > 7 ? normalizedNumber.substring(length - 7, length)
-                            : normalizedNumber);
-            if (VDBG) log("Trying to lookup " + key);
-
-            entry = mNumberToEntry.get(key);
-        }
-        if (VDBG) log("Obtained " + entry);
-        return entry;
-    }
-
-    private static void log(String msg) {
-        Log.d(LOG_TAG, msg);
-    }
-}
diff --git a/src/com/android/phone/CarrierConfigLoader.java b/src/com/android/phone/CarrierConfigLoader.java
index 45ca974..307170a 100644
--- a/src/com/android/phone/CarrierConfigLoader.java
+++ b/src/com/android/phone/CarrierConfigLoader.java
@@ -35,6 +35,7 @@
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.HandlerExecutor;
 import android.os.IBinder;
 import android.os.Looper;
 import android.os.Message;
@@ -88,42 +89,48 @@
     private static final String LOG_TAG = "CarrierConfigLoader";
 
     // Package name for platform carrier config app, bundled with system image.
-    private final String mPlatformCarrierConfigPackage;
+    @NonNull private final String mPlatformCarrierConfigPackage;
 
     /** The singleton instance. */
-    private static CarrierConfigLoader sInstance;
+    @Nullable private static CarrierConfigLoader sInstance;
     // The context for phone app, passed from PhoneGlobals.
-    private Context mContext;
-    // Carrier configs from default app, indexed by phoneID.
-    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;
-    // Carrier configs to override code default when there is no SIM inserted
-    private PersistableBundle mNoSimConfig;
-    // Service connection for binding to config app.
-    private CarrierServiceConnection[] mServiceConnection;
-    // Service connection for binding to carrier config app for no SIM config.
-    private CarrierServiceConnection[] mServiceConnectionForNoSimConfig;
-    // Whether we are bound to a service for each phone
-    private boolean[] mServiceBound;
-    // Whether we are bound to a service for no SIM config
-    private boolean[] mServiceBoundForNoSimConfig;
-    // 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;
+    @NonNull private Context mContext;
 
-    // Broadcast receiver for Boot intents, register intent filter in construtor.
-    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(100);
+    // All the states below (array indexed by phoneId) are non-null. But the member of the array
+    // is nullable, when e.g. the config for the phone is not loaded yet
+    // Carrier configs from default app, indexed by phoneID.
+    @NonNull private PersistableBundle[] mConfigFromDefaultApp;
+    // Carrier configs from privileged carrier config app, indexed by phoneID.
+    @NonNull private PersistableBundle[] mConfigFromCarrierApp;
+    // Persistent Carrier configs that are provided via the override test API, indexed by phone ID.
+    @NonNull private PersistableBundle[] mPersistentOverrideConfigs;
+    // Carrier configs that are provided via the override test API, indexed by phone ID.
+    @NonNull private PersistableBundle[] mOverrideConfigs;
+    // Carrier configs to override code default when there is no SIM inserted
+    @NonNull private PersistableBundle mNoSimConfig;
+    // Service connection for binding to config app.
+    @NonNull private CarrierServiceConnection[] mServiceConnection;
+    // Service connection for binding to carrier config app for no SIM config.
+    @NonNull private CarrierServiceConnection[] mServiceConnectionForNoSimConfig;
+    // Whether we are bound to a service for each phone
+    @NonNull private boolean[] mServiceBound;
+    // Whether we are bound to a service for no SIM config
+    @NonNull private boolean[] mServiceBoundForNoSimConfig;
+    // Whether we have sent config change broadcast for each phone id.
+    @NonNull private boolean[] mHasSentConfigChange;
+    // Whether the broadcast was sent from EVENT_SYSTEM_UNLOCKED, to track rebroadcasts
+    @NonNull private boolean[] mFromSystemUnlocked;
+    // CarrierService change monitoring
+    @NonNull private CarrierServiceChangeCallback[] mCarrierServiceChangeCallbacks;
+
+    // SubscriptionInfoUpdater
+    @NonNull private final SubscriptionInfoUpdater mSubscriptionInfoUpdater;
+    // Broadcast receiver for system events (BootCompleted, MultiSimConfigChanged etc.)
+    @NonNull
+    private final BroadcastReceiver mSystemBroadcastReceiver = new ConfigLoaderBroadcastReceiver();
+    @NonNull private final LocalLog mCarrierConfigLoadingLog = new LocalLog(100);
+    // Number of phone instances (active modem count)
+    private int mNumPhones;
 
 
     // Message codes; see mHandler below.
@@ -210,7 +217,7 @@
         }
 
         @Override
-        public void handleMessage(Message msg) {
+        public void handleMessage(@NonNull Message msg) {
             final int phoneId = msg.arg1;
             logdWithLocalLog("mHandler: " + eventToString(msg.what) + " phoneId: " + phoneId);
             if (!SubscriptionManager.isValidPhoneId(phoneId)
@@ -224,8 +231,7 @@
                 }
 
                 case EVENT_SYSTEM_UNLOCKED: {
-                    for (int i = 0; i < TelephonyManager.from(mContext).getActiveModemCount();
-                            ++i) {
+                    for (int i = 0; i < mNumPhones; ++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
@@ -241,16 +247,12 @@
 
                 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).getActiveModemCount();
-                        for (int i = 0; i < numPhones; ++i) {
-                            logdWithLocalLog("Package changed: " + carrierPackageName
-                                    + ", phone=" + i);
-                            updateConfigForPhoneId(i);
-                        }
-                    }
+                    // Always clear up the cache and re-load config from scratch since the carrier
+                    // service change is reliable and specific to the phoneId now.
+                    clearCachedConfigForPackage(carrierPackageName);
+                    logdWithLocalLog("Package changed: " + carrierPackageName
+                            + ", phone=" + phoneId);
+                    updateConfigForPhoneId(phoneId);
                     break;
                 }
 
@@ -349,7 +351,7 @@
                     try {
                         ICarrierService carrierService =
                                 ICarrierService.Stub.asInterface(conn.service);
-                        carrierService.getCarrierConfig(carrierId, resultReceiver);
+                        carrierService.getCarrierConfig(phoneId, carrierId, resultReceiver);
                         logdWithLocalLog("Fetch config for default app: "
                                 + mPlatformCarrierConfigPackage
                                 + " carrierid: " + carrierId.toString());
@@ -489,7 +491,7 @@
                     try {
                         ICarrierService carrierService =
                                 ICarrierService.Stub.asInterface(conn.service);
-                        carrierService.getCarrierConfig(carrierId, resultReceiver);
+                        carrierService.getCarrierConfig(phoneId, carrierId, resultReceiver);
                         logdWithLocalLog("Fetch config for carrier app: "
                                 + getCarrierPackageForPhoneId(phoneId)
                                 + " carrierid: " + carrierId.toString());
@@ -657,7 +659,7 @@
                     try {
                         ICarrierService carrierService =
                                 ICarrierService.Stub.asInterface(conn.service);
-                        carrierService.getCarrierConfig(null, resultReceiver);
+                        carrierService.getCarrierConfig(phoneId, null, resultReceiver);
                         logdWithLocalLog("Fetch no sim config from default app: "
                                 + mPlatformCarrierConfigPackage);
                     } catch (RemoteException e) {
@@ -676,45 +678,43 @@
         }
     }
 
-    private final Handler mHandler;
+    @NonNull private final Handler mHandler;
 
     /**
      * Constructs a CarrierConfigLoader, registers it as a service, and registers a broadcast
      * receiver for relevant events.
      */
     @VisibleForTesting
-    /* package */ CarrierConfigLoader(Context context,
-            SubscriptionInfoUpdater subscriptionInfoUpdater, @NonNull Looper looper) {
+    /* package */ CarrierConfigLoader(@NonNull Context context,
+            @NonNull SubscriptionInfoUpdater subscriptionInfoUpdater, @NonNull Looper looper) {
         mContext = context;
         mPlatformCarrierConfigPackage =
                 mContext.getString(R.string.platform_carrier_config_package);
         mHandler = new ConfigHandler(looper);
 
-        IntentFilter bootFilter = new IntentFilter();
-        bootFilter.addAction(Intent.ACTION_BOOT_COMPLETED);
-        context.registerReceiver(mBootReceiver, bootFilter);
+        IntentFilter systemEventsFilter = new IntentFilter();
+        systemEventsFilter.addAction(Intent.ACTION_BOOT_COMPLETED);
+        systemEventsFilter.addAction(TelephonyManager.ACTION_MULTI_SIM_CONFIG_CHANGED);
+        context.registerReceiver(mSystemBroadcastReceiver, systemEventsFilter);
 
-        // Register for package updates. Update app or uninstall app update will have all 3 intents,
-        // in the order or removed, added, replaced, all with extra_replace set to true.
-        IntentFilter pkgFilter = new IntentFilter();
-        pkgFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
-        pkgFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
-        pkgFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);
-        pkgFilter.addDataScheme("package");
-        context.registerReceiver(mPackageReceiver, pkgFilter);
-
-        int numPhones = TelephonyManager.from(context).getSupportedModemCount();
-        mConfigFromDefaultApp = new PersistableBundle[numPhones];
-        mConfigFromCarrierApp = new PersistableBundle[numPhones];
-        mPersistentOverrideConfigs = new PersistableBundle[numPhones];
-        mOverrideConfigs = new PersistableBundle[numPhones];
+        mNumPhones = TelephonyManager.from(context).getActiveModemCount();
+        mConfigFromDefaultApp = new PersistableBundle[mNumPhones];
+        mConfigFromCarrierApp = new PersistableBundle[mNumPhones];
+        mPersistentOverrideConfigs = new PersistableBundle[mNumPhones];
+        mOverrideConfigs = new PersistableBundle[mNumPhones];
         mNoSimConfig = new PersistableBundle();
-        mServiceConnection = new CarrierServiceConnection[numPhones];
-        mServiceBound = new boolean[numPhones];
-        mHasSentConfigChange = new boolean[numPhones];
-        mFromSystemUnlocked = new boolean[numPhones];
-        mServiceConnectionForNoSimConfig = new CarrierServiceConnection[numPhones];
-        mServiceBoundForNoSimConfig = new boolean[numPhones];
+        mServiceConnection = new CarrierServiceConnection[mNumPhones];
+        mServiceBound = new boolean[mNumPhones];
+        mHasSentConfigChange = new boolean[mNumPhones];
+        mFromSystemUnlocked = new boolean[mNumPhones];
+        mServiceConnectionForNoSimConfig = new CarrierServiceConnection[mNumPhones];
+        mServiceBoundForNoSimConfig = new boolean[mNumPhones];
+        mCarrierServiceChangeCallbacks = new CarrierServiceChangeCallback[mNumPhones];
+        for (int phoneId = 0; phoneId < mNumPhones; phoneId++) {
+            mCarrierServiceChangeCallbacks[phoneId] = new CarrierServiceChangeCallback(phoneId);
+            TelephonyManager.from(context).registerCarrierPrivilegesCallback(phoneId,
+                    new HandlerExecutor(mHandler), mCarrierServiceChangeCallbacks[phoneId]);
+        }
         logd("CarrierConfigLoader has started");
         mSubscriptionInfoUpdater = subscriptionInfoUpdater;
         mHandler.sendEmptyMessage(EVENT_CHECK_SYSTEM_UPDATE);
@@ -725,7 +725,8 @@
      *
      * This is only done once, at startup, from {@link com.android.phone.PhoneApp#onCreate}.
      */
-    /* package */ static CarrierConfigLoader init(Context context) {
+    @NonNull
+    /* package */ static CarrierConfigLoader init(@NonNull Context context) {
         synchronized (CarrierConfigLoader.class) {
             if (sInstance == null) {
                 sInstance = new CarrierConfigLoader(context,
@@ -835,7 +836,7 @@
     }
 
     /** Binds to the default or carrier config app. */
-    private boolean bindToConfigPackage(String pkgName, int phoneId, int eventId) {
+    private boolean bindToConfigPackage(@NonNull String pkgName, int phoneId, int eventId) {
         logdWithLocalLog("Binding to " + pkgName + " for phone " + phoneId);
         Intent carrierService = new Intent(CarrierService.CARRIER_SERVICE_INTERFACE);
         carrierService.setPackage(pkgName);
@@ -864,6 +865,7 @@
     }
 
     @VisibleForTesting
+    @NonNull
     /* package */ CarrierIdentifier getCarrierIdentifierForPhoneId(int phoneId) {
         String mcc = "";
         String mnc = "";
@@ -890,25 +892,19 @@
         return new CarrierIdentifier(mcc, mnc, spn, imsi, gid1, gid2, carrierId, specificCarrierId);
     }
 
-    /** Returns the package name of a priveleged carrier app, or null if there is none. */
+    /** Returns the package name of a privileged carrier app, or null if there is none. */
     @Nullable
     private String getCarrierPackageForPhoneId(int phoneId) {
-        List<String> carrierPackageNames;
         final long token = Binder.clearCallingIdentity();
         try {
-            carrierPackageNames = TelephonyManager.from(mContext)
-                .getCarrierPackageNamesForIntentAndPhone(
-                    new Intent(CarrierService.CARRIER_SERVICE_INTERFACE), phoneId);
+            return TelephonyManager.from(mContext)
+                    .getCarrierServicePackageNameForLogicalSlot(phoneId);
         } finally {
             Binder.restoreCallingIdentity(token);
         }
-        if (carrierPackageNames != null && carrierPackageNames.size() > 0) {
-            return carrierPackageNames.get(0);
-        } else {
-            return null;
-        }
     }
 
+    @Nullable
     private String getIccIdForPhoneId(int phoneId) {
         if (!SubscriptionManager.isValidPhoneId(phoneId)) {
             return null;
@@ -970,8 +966,9 @@
      * @param config        the bundle to be written. Null will be treated as an empty bundle.
      * @param isNoSimConfig whether this is invoked for noSimConfig or not.
      */
-    private void saveConfigToXml(String packageName, @NonNull String extraString, int phoneId,
-            CarrierIdentifier carrierId, PersistableBundle config, boolean isNoSimConfig) {
+    private void saveConfigToXml(@Nullable String packageName, @NonNull String extraString,
+            int phoneId, @Nullable CarrierIdentifier carrierId, @NonNull PersistableBundle config,
+            boolean isNoSimConfig) {
         if (packageName == null) {
             loge("Cannot save config with null packageName");
             return;
@@ -988,7 +985,8 @@
             }
 
             final String iccid = getIccIdForPhoneId(phoneId);
-            final int cid = carrierId.getSpecificCarrierId();
+            final int cid = carrierId != null ? carrierId.getSpecificCarrierId()
+                    : TelephonyManager.UNKNOWN_CARRIER_ID;
             if (iccid == null) {
                 loge("Cannot save config with null iccid.");
                 return;
@@ -1027,13 +1025,14 @@
     }
 
     @VisibleForTesting
-    /* package */ void saveConfigToXml(String packageName, @NonNull String extraString, int phoneId,
-            CarrierIdentifier carrierId, PersistableBundle config) {
+    /* package */ void saveConfigToXml(@Nullable String packageName, @NonNull String extraString,
+            int phoneId, @NonNull CarrierIdentifier carrierId, @NonNull PersistableBundle config) {
         saveConfigToXml(packageName, extraString, phoneId, carrierId, config, false);
     }
 
     @VisibleForTesting
-    /* package */ void saveNoSimConfigToXml(String packageName, PersistableBundle config) {
+    /* package */ void saveNoSimConfigToXml(@Nullable String packageName,
+            @NonNull PersistableBundle config) {
         saveConfigToXml(packageName, "", -1, null, config, true);
     }
 
@@ -1053,8 +1052,9 @@
      * @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.
      */
-    private PersistableBundle restoreConfigFromXml(String packageName, @NonNull String extraString,
-            int phoneId, boolean isNoSimConfig) {
+    @Nullable
+    private PersistableBundle restoreConfigFromXml(@Nullable String packageName,
+            @NonNull String extraString, int phoneId, boolean isNoSimConfig) {
         if (packageName == null) {
             loge("Cannot restore config with null packageName");
         }
@@ -1123,7 +1123,8 @@
     /**
      * This method will mask most part of iccid in the filepath for logging on userbuild
      */
-    private String getFilePathForLogging(String filePath, String iccid) {
+    @NonNull
+    private String getFilePathForLogging(@Nullable String filePath, @Nullable String iccid) {
         // If loggable then return with actual file path
         if (Rlog.isLoggable(LOG_TAG, Log.VERBOSE)) {
             return filePath;
@@ -1136,12 +1137,14 @@
         return path;
     }
 
-    private PersistableBundle restoreConfigFromXml(String packageName, @NonNull String extraString,
-            int phoneId) {
+    @Nullable
+    private PersistableBundle restoreConfigFromXml(@Nullable String packageName,
+            @NonNull String extraString, int phoneId) {
         return restoreConfigFromXml(packageName, extraString, phoneId, false);
     }
 
-    private PersistableBundle restoreNoSimConfigFromXml(String packageName) {
+    @Nullable
+    private PersistableBundle restoreNoSimConfigFromXml(@Nullable String packageName) {
         return restoreConfigFromXml(packageName, "", -1, true);
     }
 
@@ -1154,7 +1157,7 @@
      *                    cleared.
      * @return true iff one or more files were deleted.
      */
-    private boolean clearCachedConfigForPackage(final String packageName) {
+    private boolean clearCachedConfigForPackage(@Nullable final String packageName) {
         File dir = mContext.getFilesDir();
         File[] packageFiles = dir.listFiles(new FilenameFilter() {
             public boolean accept(File dir, String filename) {
@@ -1174,6 +1177,7 @@
     }
 
     /** Builds a canonical file name for a config file. */
+    @NonNull
     private static String getFilenameForConfig(
             @NonNull String packageName, @NonNull String extraString,
             @NonNull String iccid, int cid) {
@@ -1185,12 +1189,14 @@
     }
 
     /** Builds a canonical file name for no SIM config file. */
+    @NonNull
     private String getFilenameForNoSimConfig(@NonNull String packageName) {
         return "carrierconfig-" + packageName + "-" + "nosim" + ".xml";
     }
 
     /** Return the current version code of a package, or null if the name is not found. */
-    private String getPackageVersion(String packageName) {
+    @Nullable
+    private String getPackageVersion(@NonNull String packageName) {
         try {
             PackageInfo info = mContext.getPackageManager().getPackageInfo(packageName, 0);
             return Long.toString(info.getLongVersionCode());
@@ -1211,22 +1217,65 @@
     }
 
     private void onMultiSimConfigChanged() {
-        for (int i = TelephonyManager.from(mContext).getActiveModemCount();
-                i < mConfigFromDefaultApp.length; i++) {
-            clearConfigForPhone(i, false);
+        int oldNumPhones = mNumPhones;
+        mNumPhones = TelephonyManager.from(mContext).getActiveModemCount();
+        if (mNumPhones == oldNumPhones) {
+            return;
+        }
+        logdWithLocalLog("mNumPhones change from " + oldNumPhones + " to " + mNumPhones);
+
+        // If DS -> SS switch, release the resources BEFORE truncating the arrays to avoid leaking
+        for (int phoneId = mNumPhones; phoneId < oldNumPhones; phoneId++) {
+            if (mServiceConnection[phoneId] != null) {
+                unbindIfBound(mContext, mServiceConnection[phoneId], phoneId);
+            }
+            if (mServiceConnectionForNoSimConfig[phoneId] != null) {
+                unbindIfBoundForNoSimConfig(mContext, mServiceConnectionForNoSimConfig[phoneId],
+                        phoneId);
+            }
+        }
+
+        // The phone to slot mapping may change, unregister here and re-register callbacks later
+        for (int phoneId = 0; phoneId < oldNumPhones; phoneId++) {
+            if (mCarrierServiceChangeCallbacks[phoneId] != null) {
+                TelephonyManager.from(mContext).unregisterCarrierPrivilegesCallback(
+                        mCarrierServiceChangeCallbacks[phoneId]);
+            }
+        }
+
+        // Copy the original arrays, truncate or padding with zeros (if necessary) to new length
+        mConfigFromDefaultApp = Arrays.copyOf(mConfigFromDefaultApp, mNumPhones);
+        mConfigFromCarrierApp = Arrays.copyOf(mConfigFromCarrierApp, mNumPhones);
+        mPersistentOverrideConfigs = Arrays.copyOf(mPersistentOverrideConfigs, mNumPhones);
+        mOverrideConfigs = Arrays.copyOf(mOverrideConfigs, mNumPhones);
+        mServiceConnection = Arrays.copyOf(mServiceConnection, mNumPhones);
+        mServiceConnectionForNoSimConfig =
+                Arrays.copyOf(mServiceConnectionForNoSimConfig, mNumPhones);
+        mServiceBound = Arrays.copyOf(mServiceBound, mNumPhones);
+        mServiceBoundForNoSimConfig = Arrays.copyOf(mServiceBoundForNoSimConfig, mNumPhones);
+        mHasSentConfigChange = Arrays.copyOf(mHasSentConfigChange, mNumPhones);
+        mFromSystemUnlocked = Arrays.copyOf(mFromSystemUnlocked, mNumPhones);
+        mCarrierServiceChangeCallbacks = Arrays.copyOf(mCarrierServiceChangeCallbacks, mNumPhones);
+
+        // Load the config for all the phones and re-register callback AFTER padding the arrays.
+        for (int phoneId = 0; phoneId < mNumPhones; phoneId++) {
+            updateConfigForPhoneId(phoneId);
+            mCarrierServiceChangeCallbacks[phoneId] = new CarrierServiceChangeCallback(phoneId);
+            TelephonyManager.from(mContext).registerCarrierPrivilegesCallback(phoneId,
+                    new HandlerExecutor(mHandler), mCarrierServiceChangeCallbacks[phoneId]);
         }
     }
 
     @Override
     @NonNull
-    public PersistableBundle getConfigForSubId(int subscriptionId, String callingPackage) {
+    public PersistableBundle getConfigForSubId(int subscriptionId, @NonNull String callingPackage) {
         return getConfigForSubIdWithFeature(subscriptionId, callingPackage, null);
     }
 
     @Override
     @NonNull
-    public PersistableBundle getConfigForSubIdWithFeature(int subscriptionId, String callingPackage,
-            String callingFeatureId) {
+    public PersistableBundle getConfigForSubIdWithFeature(int subscriptionId,
+            @NonNull String callingPackage, @Nullable String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mContext, subscriptionId,
                 callingPackage, callingFeatureId, "getCarrierConfig")) {
             return new PersistableBundle();
@@ -1339,7 +1388,7 @@
     }
 
     @Override
-    public void updateConfigForPhoneId(int phoneId, String simState) {
+    public void updateConfigForPhoneId(int phoneId, @NonNull String simState) {
         mContext.enforceCallingOrSelfPermission(
                 android.Manifest.permission.MODIFY_PHONE_STATE, null);
         logdWithLocalLog("Update config for phoneId: " + phoneId + " simState: " + simState);
@@ -1363,6 +1412,7 @@
     }
 
     @Override
+    @NonNull
     public String getDefaultCarrierServicePackageName() {
         mContext.enforceCallingOrSelfPermission(
                 android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
@@ -1371,31 +1421,37 @@
     }
 
     @VisibleForTesting
+    @NonNull
     /* package */ Handler getHandler() {
         return mHandler;
     }
 
     @VisibleForTesting
+    @Nullable
     /* package */ PersistableBundle getConfigFromDefaultApp(int phoneId) {
         return mConfigFromDefaultApp[phoneId];
     }
 
     @VisibleForTesting
+    @Nullable
     /* package */ PersistableBundle getConfigFromCarrierApp(int phoneId) {
         return mConfigFromCarrierApp[phoneId];
     }
 
     @VisibleForTesting
+    @NonNull
      /* package */ PersistableBundle getNoSimConfig() {
         return mNoSimConfig;
     }
 
     @VisibleForTesting
+    @Nullable
     /* package */ PersistableBundle getOverrideConfig(int phoneId) {
         return mOverrideConfigs[phoneId];
     }
 
-    private void unbindIfBound(Context context, CarrierServiceConnection conn,
+    // TODO(b/185129900): always call unbindService after bind, no matter if it succeeded
+    private void unbindIfBound(@NonNull Context context, @NonNull CarrierServiceConnection conn,
             int phoneId) {
         if (mServiceBound[phoneId]) {
             mServiceBound[phoneId] = false;
@@ -1403,8 +1459,8 @@
         }
     }
 
-    private void unbindIfBoundForNoSimConfig(Context context, CarrierServiceConnection conn,
-            int phoneId) {
+    private void unbindIfBoundForNoSimConfig(@NonNull Context context,
+            @NonNull CarrierServiceConnection conn, int phoneId) {
         if (mServiceBoundForNoSimConfig[phoneId]) {
             mServiceBoundForNoSimConfig[phoneId] = false;
             context.unbindService(conn);
@@ -1415,6 +1471,7 @@
      * Returns a boxed Integer object for phoneId, services as message token to distinguish messages
      * with same code when calling {@link Handler#removeMessages(int, Object)}.
      */
+    @NonNull
     private Integer getMessageToken(int phoneId) {
         if (phoneId < -128 || phoneId > 127) {
             throw new IllegalArgumentException("phoneId should be in range [-128, 127], inclusive");
@@ -1432,7 +1489,7 @@
      * too much info, but we still want to let carrier apps include their diagnostics.
      */
     @Override
-    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+    public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) {
         IndentingPrintWriter indentPW = new IndentingPrintWriter(pw, "    ");
         if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
                 != PackageManager.PERMISSION_GRANTED) {
@@ -1451,7 +1508,7 @@
         }
 
         indentPW.println("CarrierConfigLoader: " + this);
-        for (int i = 0; i < TelephonyManager.from(mContext).getActiveModemCount(); i++) {
+        for (int i = 0; i < mNumPhones; i++) {
             indentPW.println("Phone Id = " + i);
             // display default values in CarrierConfigManager
             printConfig(CarrierConfigManager.getDefaultConfig(), indentPW,
@@ -1480,8 +1537,8 @@
         }
     }
 
-    private void printConfig(PersistableBundle configApp, IndentingPrintWriter indentPW,
-            String name) {
+    private void printConfig(@NonNull PersistableBundle configApp,
+            @NonNull IndentingPrintWriter indentPW, @NonNull String name) {
         indentPW.increaseIndent();
         if (configApp == null) {
             indentPW.println(name + " : null ");
@@ -1518,7 +1575,7 @@
      *
      * @throws SecurityException if none of the above conditions are met.
      */
-    private void enforceCallerIsSystemOrRequestingPackage(String requestingPackage)
+    private void enforceCallerIsSystemOrRequestingPackage(@NonNull String requestingPackage)
             throws SecurityException {
         final int callingUid = Binder.getCallingUid();
         if (callingUid == Process.ROOT_UID || callingUid == Process.SYSTEM_UID
@@ -1546,8 +1603,9 @@
      *                                  otherwise, only dump a carrier service if it is {@code
      *                                  targetPkgName}
      */
-    private void dumpCarrierServiceIfBound(FileDescriptor fd, IndentingPrintWriter indentPW,
-            String prefix, String targetPkgName, boolean considerCarrierPrivileges) {
+    private void dumpCarrierServiceIfBound(@NonNull FileDescriptor fd,
+            @NonNull IndentingPrintWriter indentPW, @NonNull String prefix,
+            @NonNull 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
@@ -1616,7 +1674,7 @@
         indentPW.decreaseIndent();
     }
 
-    private boolean hasCarrierPrivileges(String pkgName, int phoneId) {
+    private boolean hasCarrierPrivileges(@NonNull String pkgName, int phoneId) {
         int[] subIds = SubscriptionManager.getSubId(phoneId);
         if (ArrayUtils.isEmpty(subIds)) {
             return false;
@@ -1628,37 +1686,37 @@
 
     private class CarrierServiceConnection implements ServiceConnection {
         final int phoneId;
-        final String pkgName;
+        @NonNull final String pkgName;
         final int eventId;
         IBinder service;
 
-        CarrierServiceConnection(int phoneId, String pkgName, int eventId) {
+        CarrierServiceConnection(int phoneId, @NonNull String pkgName, int eventId) {
             this.phoneId = phoneId;
             this.pkgName = pkgName;
             this.eventId = eventId;
         }
 
         @Override
-        public void onServiceConnected(ComponentName name, IBinder service) {
+        public void onServiceConnected(@NonNull ComponentName name, @NonNull IBinder service) {
             logd("Connected to config app: " + name.flattenToShortString());
             this.service = service;
             mHandler.sendMessage(mHandler.obtainMessage(eventId, phoneId, -1, this));
         }
 
         @Override
-        public void onServiceDisconnected(ComponentName name) {
+        public void onServiceDisconnected(@NonNull ComponentName name) {
             logd("Disconnected from config app: " + name.flattenToShortString());
             this.service = null;
         }
 
         @Override
-        public void onBindingDied(ComponentName name) {
+        public void onBindingDied(@NonNull ComponentName name) {
             logd("Binding died from config app: " + name.flattenToShortString());
             this.service = null;
         }
 
         @Override
-        public void onNullBinding(ComponentName name) {
+        public void onNullBinding(@NonNull ComponentName name) {
             logd("Null binding from config app: " + name.flattenToShortString());
             this.service = null;
         }
@@ -1666,35 +1724,55 @@
 
     private class ConfigLoaderBroadcastReceiver extends BroadcastReceiver {
         @Override
-        public void onReceive(Context context, Intent intent) {
-            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)) {
-                return;
-            }
-
-            switch (action) {
+        public void onReceive(@NonNull Context context, @NonNull Intent intent) {
+            switch (intent.getAction()) {
                 case Intent.ACTION_BOOT_COMPLETED:
                     mHandler.sendMessage(mHandler.obtainMessage(EVENT_SYSTEM_UNLOCKED, null));
                     break;
 
-                case Intent.ACTION_PACKAGE_ADDED:
-                case Intent.ACTION_PACKAGE_REMOVED:
-                case Intent.ACTION_PACKAGE_REPLACED:
-                    int uid = intent.getIntExtra(Intent.EXTRA_UID, -1);
-                    String packageName = mContext.getPackageManager().getNameForUid(uid);
-                    if (packageName != null) {
-                        // We don't have a phoneId for arg1.
-                        mHandler.sendMessage(
-                                mHandler.obtainMessage(EVENT_PACKAGE_CHANGED, packageName));
-                    }
+                case TelephonyManager.ACTION_MULTI_SIM_CONFIG_CHANGED:
+                    mHandler.sendEmptyMessage(EVENT_MULTI_SIM_CONFIG_CHANGED);
                     break;
             }
         }
     }
 
+    private class CarrierServiceChangeCallback implements
+            TelephonyManager.CarrierPrivilegesCallback {
+        final int mPhoneId;
+        // CarrierPrivilegesCallback will be triggered upon registration. Filter the first callback
+        // here since we really care of the *change* of carrier service instead of the content
+        private boolean mHasSentServiceChangeCallback;
+
+        CarrierServiceChangeCallback(int phoneId) {
+            this.mPhoneId = phoneId;
+            this.mHasSentServiceChangeCallback = false;
+        }
+
+        @Override
+        public void onCarrierPrivilegesChanged(
+                @androidx.annotation.NonNull Set<String> privilegedPackageNames,
+                @androidx.annotation.NonNull Set<Integer> privilegedUids) {
+            // Ignored, not interested here
+        }
+
+        @Override
+        public void onCarrierServiceChanged(
+                @androidx.annotation.Nullable String carrierServicePackageName,
+                int carrierServiceUid) {
+            // Ignore the first callback which is triggered upon registration
+            if (!mHasSentServiceChangeCallback) {
+                mHasSentServiceChangeCallback = true;
+                return;
+            }
+            mHandler.sendMessage(
+                    mHandler.obtainMessage(EVENT_PACKAGE_CHANGED, mPhoneId, -1,
+                            carrierServicePackageName));
+        }
+    }
+
     // Get readable string for the message code supported in this class.
+    @NonNull
     private static String eventToString(int code) {
         switch (code) {
             case EVENT_CLEAR_CONFIG:
@@ -1744,20 +1822,20 @@
         }
     }
 
-    private void logd(String msg) {
+    private void logd(@NonNull String msg) {
         Log.d(LOG_TAG, msg);
     }
 
-    private void logd(String msg, Throwable tr) {
+    private void logd(@NonNull String msg, Throwable tr) {
         Log.d(LOG_TAG, msg, tr);
     }
 
-    private void logdWithLocalLog(String msg) {
+    private void logdWithLocalLog(@NonNull String msg) {
         Log.d(LOG_TAG, msg);
         mCarrierConfigLoadingLog.log(msg);
     }
 
-    private void loge(String msg) {
+    private void loge(@NonNull String msg) {
         Log.e(LOG_TAG, msg);
         mCarrierConfigLoadingLog.log(msg);
     }
diff --git a/src/com/android/phone/CdmaCallWaitingPreference.java b/src/com/android/phone/CdmaCallWaitingPreference.java
index 3713b19..6ff47d2 100644
--- a/src/com/android/phone/CdmaCallWaitingPreference.java
+++ b/src/com/android/phone/CdmaCallWaitingPreference.java
@@ -78,7 +78,7 @@
     public void onClick() {
         super.onClick();
 
-        AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
+        AlertDialog.Builder builder = FrameworksUtils.makeAlertDialogBuilder(mContext);
         builder.setTitle(mContext.getText(R.string.cdma_call_waiting));
         builder.setMessage(mContext.getText(R.string.enable_cdma_call_waiting_setting));
         builder.setPositiveButton(R.string.enable_cdma_cw, new DialogInterface.OnClickListener() {
diff --git a/src/com/android/phone/ChangeIccPinScreen.java b/src/com/android/phone/ChangeIccPinScreen.java
index 70bf431..5369aa3 100644
--- a/src/com/android/phone/ChangeIccPinScreen.java
+++ b/src/com/android/phone/ChangeIccPinScreen.java
@@ -277,7 +277,7 @@
     private AlertDialog mPUKAlert;
     private void displayPUKAlert () {
         if (mPUKAlert == null) {
-            mPUKAlert = new AlertDialog.Builder(this)
+            mPUKAlert = FrameworksUtils.makeAlertDialogBuilder(this)
             .setMessage (R.string.puk_requested)
             .setCancelable(false)
             .show();
diff --git a/src/com/android/phone/EmergencyActionGroup.java b/src/com/android/phone/EmergencyActionGroup.java
deleted file mode 100644
index 4961a69..0000000
--- a/src/com/android/phone/EmergencyActionGroup.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.phone;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.annotation.Nullable;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ResolveInfo;
-import android.telephony.TelephonyManager;
-import android.text.Layout;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.util.TypedValue;
-import android.view.Gravity;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewAnimationUtils;
-import android.view.ViewGroup;
-import android.view.accessibility.AccessibilityManager;
-import android.view.animation.AnimationUtils;
-import android.view.animation.Interpolator;
-import android.widget.Button;
-import android.widget.FrameLayout;
-import android.widget.TextView;
-
-import java.util.List;
-
-public class EmergencyActionGroup extends FrameLayout implements View.OnClickListener {
-
-    private static final long HIDE_DELAY = 3000;
-    private static final int RIPPLE_DURATION = 600;
-    private static final long RIPPLE_PAUSE = 1000;
-
-    private final Interpolator mFastOutLinearInInterpolator;
-
-    private ViewGroup mSelectedContainer;
-    private TextView mSelectedLabel;
-    private View mRippleView;
-    private View mLaunchHint;
-
-    private View mLastRevealed;
-
-    private MotionEvent mPendingTouchEvent;
-
-    private boolean mHiding;
-
-    public EmergencyActionGroup(Context context, @Nullable AttributeSet attrs) {
-        super(context, attrs);
-        mFastOutLinearInInterpolator = AnimationUtils.loadInterpolator(context,
-                android.R.interpolator.fast_out_linear_in);
-    }
-
-    @Override
-    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
-        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-    }
-
-    @Override
-    protected void onFinishInflate() {
-        super.onFinishInflate();
-
-        mSelectedContainer = (ViewGroup) findViewById(R.id.selected_container);
-        mSelectedContainer.setOnClickListener(this);
-        mSelectedLabel = (TextView) findViewById(R.id.selected_label);
-        mSelectedLabel.addOnLayoutChangeListener(mLayoutChangeListener);
-        mRippleView = findViewById(R.id.ripple_view);
-        mLaunchHint = findViewById(R.id.launch_hint);
-        mLaunchHint.addOnLayoutChangeListener(mLayoutChangeListener);
-    }
-
-    @Override
-    protected void onWindowVisibilityChanged(int visibility) {
-        super.onWindowVisibilityChanged(visibility);
-        if (visibility == View.VISIBLE) {
-            setupAssistActions();
-        }
-    }
-
-    /**
-     * Called by the activity before a touch event is dispatched to the view hierarchy.
-     */
-    public void onPreTouchEvent(MotionEvent event) {
-        mPendingTouchEvent = event;
-    }
-
-    @Override
-    public boolean dispatchTouchEvent(MotionEvent event) {
-        boolean handled = super.dispatchTouchEvent(event);
-        if (mPendingTouchEvent == event && handled) {
-            mPendingTouchEvent = null;
-        }
-        return handled;
-    }
-
-    /**
-     * Called by the activity after a touch event is dispatched to the view hierarchy.
-     */
-    public void onPostTouchEvent(MotionEvent event) {
-        // Hide the confirmation button if a touch event was delivered to the activity but not to
-        // this view.
-        if (mPendingTouchEvent != null) {
-            hideTheButton();
-        }
-        mPendingTouchEvent = null;
-    }
-
-    private void setupAssistActions() {
-        int[] buttonIds = new int[] {R.id.action1, R.id.action2, R.id.action3};
-
-        List<ResolveInfo> infos;
-
-        if (TelephonyManager.EMERGENCY_ASSISTANCE_ENABLED) {
-            infos = EmergencyAssistanceHelper.resolveAssistPackageAndQueryActivities(getContext());
-        } else {
-            infos = null;
-        }
-
-        for (int i = 0; i < 3; i++) {
-            Button button = (Button) findViewById(buttonIds[i]);
-            boolean visible = false;
-
-            button.setOnClickListener(this);
-
-            if (infos != null && infos.size() > i && infos.get(i) != null) {
-                ResolveInfo info = infos.get(i);
-                ComponentName name = EmergencyAssistanceHelper.getComponentName(info);
-
-                button.setTag(R.id.tag_intent,
-                        new Intent(EmergencyAssistanceHelper.getIntentAction())
-                                .setComponent(name));
-                button.setText(info.loadLabel(getContext().getPackageManager()));
-                visible = true;
-            }
-
-            button.setVisibility(visible ? View.VISIBLE : View.GONE);
-        }
-    }
-
-    @Override
-    public void onClick(View v) {
-        Intent intent = (Intent) v.getTag(R.id.tag_intent);
-
-        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);
-            }
-        }
-    }
-
-    private void revealTheButton(View v) {
-        CharSequence buttonText = ((Button) v).getText();
-        mSelectedLabel.setText(buttonText);
-        mSelectedLabel.setAutoSizeTextTypeWithDefaults(TextView.AUTO_SIZE_TEXT_TYPE_UNIFORM);
-
-        // In order to trigger OnLayoutChangeListener for reset default minimum font size.
-        mSelectedLabel.requestLayout();
-        mLaunchHint.requestLayout();
-
-        mSelectedContainer.setVisibility(VISIBLE);
-        int centerX = v.getLeft() + v.getWidth() / 2;
-        int centerY = v.getTop() + v.getHeight() / 2;
-        Animator reveal = ViewAnimationUtils.createCircularReveal(
-                mSelectedContainer,
-                centerX,
-                centerY,
-                0,
-                Math.max(centerX, mSelectedContainer.getWidth() - centerX)
-                        + Math.max(centerY, mSelectedContainer.getHeight() - centerY));
-        reveal.start();
-
-        animateHintText(mSelectedLabel, v, reveal);
-        animateHintText(mLaunchHint, v, reveal);
-
-        mSelectedContainer.setTag(R.id.tag_intent, v.getTag(R.id.tag_intent));
-        mLastRevealed = v;
-        postDelayed(mHideRunnable, HIDE_DELAY);
-        postDelayed(mRippleRunnable, RIPPLE_PAUSE / 2);
-
-        // Transfer focus from the originally clicked button to the expanded button.
-        mSelectedContainer.requestFocus();
-    }
-
-
-    private final OnLayoutChangeListener mLayoutChangeListener = new OnLayoutChangeListener() {
-        @Override
-        public void onLayoutChange(View v, int left, int top, int right, int bottom,
-                int oldLeft,
-                int oldTop, int oldRight, int oldBottom) {
-            decreaseAutoSizeMinTextSize(v);
-        }
-    };
-
-    /**
-     * Prevent some localization string will be truncated if there is low resolution screen
-     * or font size and display size of setting is largest.
-     */
-    private void decreaseAutoSizeMinTextSize(View selectedView) {
-        if (selectedView != null) {
-            if (selectedView instanceof TextView) {
-                TextView textView = (TextView) selectedView;
-                textView.setEllipsize(TextUtils.TruncateAt.END);
-
-                // The textView layout will be null due to it's property is hiding when
-                // initialization.
-                Layout layout = textView.getLayout();
-                if (layout != null) {
-                    if (layout.getEllipsisCount(textView.getMaxLines() - 1) > 0) {
-                        textView.setAutoSizeTextTypeUniformWithConfiguration(
-                                8,
-                                textView.getAutoSizeMaxTextSize(),
-                                textView.getAutoSizeStepGranularity(),
-                                TypedValue.COMPLEX_UNIT_SP);
-                        textView.setGravity(Gravity.CENTER);
-                    }
-                }
-            }
-        }
-    }
-
-    private void animateHintText(View selectedView, View v, Animator reveal) {
-        selectedView.setTranslationX(
-                (v.getLeft() + v.getWidth() / 2 - mSelectedContainer.getWidth() / 2) / 5);
-        selectedView.animate()
-                .setDuration(reveal.getDuration() / 3)
-                .setStartDelay(reveal.getDuration() / 5)
-                .translationX(0)
-                .setInterpolator(mFastOutLinearInInterpolator)
-                .start();
-    }
-
-    private void hideTheButton() {
-        if (mHiding || mSelectedContainer.getVisibility() != VISIBLE) {
-            return;
-        }
-
-        mHiding = true;
-
-        removeCallbacks(mHideRunnable);
-
-        View v = mLastRevealed;
-        int centerX = v.getLeft() + v.getWidth() / 2;
-        int centerY = v.getTop() + v.getHeight() / 2;
-        Animator reveal = ViewAnimationUtils.createCircularReveal(
-                mSelectedContainer,
-                centerX,
-                centerY,
-                Math.max(centerX, mSelectedContainer.getWidth() - centerX)
-                        + Math.max(centerY, mSelectedContainer.getHeight() - centerY),
-                0);
-        reveal.addListener(new AnimatorListenerAdapter() {
-            @Override
-            public void onAnimationEnd(Animator animation) {
-                mSelectedContainer.setVisibility(INVISIBLE);
-                removeCallbacks(mRippleRunnable);
-                mHiding = false;
-            }
-        });
-        reveal.start();
-
-        // Transfer focus back to the originally clicked button.
-        if (mSelectedContainer.isFocused()) {
-            v.requestFocus();
-        }
-    }
-
-    private void startRipple() {
-        final View ripple = mRippleView;
-        ripple.animate().cancel();
-        ripple.setVisibility(VISIBLE);
-        Animator reveal = ViewAnimationUtils.createCircularReveal(
-                ripple,
-                ripple.getLeft() + ripple.getWidth() / 2,
-                ripple.getTop() + ripple.getHeight() / 2,
-                0,
-                ripple.getWidth() / 2);
-        reveal.setDuration(RIPPLE_DURATION);
-        reveal.start();
-
-        ripple.setAlpha(0);
-        ripple.animate().alpha(1).setDuration(RIPPLE_DURATION / 2)
-                .withEndAction(new Runnable() {
-            @Override
-            public void run() {
-                ripple.animate().alpha(0).setDuration(RIPPLE_DURATION / 2)
-                        .withEndAction(new Runnable() {
-                            @Override
-                            public void run() {
-                                ripple.setVisibility(INVISIBLE);
-                                postDelayed(mRippleRunnable, RIPPLE_PAUSE);
-                            }
-                        }).start();
-            }
-        }).start();
-    }
-
-    private final Runnable mHideRunnable = new Runnable() {
-        @Override
-        public void run() {
-            if (!isAttachedToWindow()) return;
-            hideTheButton();
-        }
-    };
-
-    private final Runnable mRippleRunnable = new Runnable() {
-        @Override
-        public void run() {
-            if (!isAttachedToWindow()) return;
-            startRipple();
-        }
-    };
-}
diff --git a/src/com/android/phone/EmergencyCallbackModeExitDialog.java b/src/com/android/phone/EmergencyCallbackModeExitDialog.java
index adba850..fc0e513 100644
--- a/src/com/android/phone/EmergencyCallbackModeExitDialog.java
+++ b/src/com/android/phone/EmergencyCallbackModeExitDialog.java
@@ -30,6 +30,7 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.ServiceConnection;
+import android.icu.text.MessageFormat;
 import android.os.AsyncResult;
 import android.os.Bundle;
 import android.os.CountDownTimer;
@@ -43,6 +44,9 @@
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.TelephonyIntents;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * Displays dialog that enables users to exit Emergency Callback Mode
  *
@@ -297,20 +301,22 @@
         int minutes = (int)(millisUntilFinished / 60000);
         String time = String.format("%d:%02d", minutes,
                 (millisUntilFinished % 60000) / 1000);
+        Map<String, Object> msgArgs = new HashMap<>();
+        msgArgs.put("count", minutes);
 
         switch (mDialogType) {
         case EXIT_ECM_BLOCK_OTHERS:
-            return String.format(getResources().getQuantityText(
-                    R.plurals.alert_dialog_not_avaialble_in_ecm, minutes).toString(), time);
+            return MessageFormat.format(getResources().getString(
+                    R.string.alert_dialog_not_avaialble_in_ecm, time), msgArgs);
         case EXIT_ECM_DIALOG:
                 boolean shouldRestrictData = mPhone.getImsPhone() != null
                         && mPhone.getImsPhone().isInImsEcm();
-                return String.format(getResources().getQuantityText(
+                return MessageFormat.format(getResources().getString(
                         // 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);
+                        ? R.string.alert_dialog_exit_ecm_without_data_restriction_hint
+                        : R.string.alert_dialog_exit_ecm,
+                        time), msgArgs);
         }
         return null;
     }
diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
index 42bfb24..9b7a43e 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -173,9 +173,8 @@
     // determines if we want to playback local DTMF tones.
     private boolean mDTMFToneEnabled;
 
-    private EmergencyActionGroup mEmergencyActionGroup;
-
-    private EmergencyInfoGroup mEmergencyInfoGroup;
+    private EmergencyInfoGroup mEmergencyInfoInDialpad;
+    private EmergencyInfoGroup mEmergencyInfoInShortcut;
 
     // close activity when screen turns off
     private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@@ -357,9 +356,13 @@
         intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
         registerReceiver(mBroadcastReceiver, intentFilter);
 
-        mEmergencyActionGroup = (EmergencyActionGroup) findViewById(R.id.emergency_action_group);
+        mEmergencyInfoInDialpad = findViewById(R.id.emergency_dialer)
+                .findViewById(R.id.emergency_info_button);
 
-        mEmergencyInfoGroup = (EmergencyInfoGroup) findViewById(R.id.emergency_info_button);
+        mEmergencyInfoInShortcut = findViewById(R.id.emergency_dialer_shortcuts)
+                .findViewById(R.id.emergency_info_button);
+
+        setupEmergencyDialpadViews();
 
         if (mShortcutViewConfig.isEnabled()) {
             setupEmergencyShortcutsView();
@@ -968,6 +971,10 @@
         }
     }
 
+    private void setupEmergencyDialpadViews() {
+        mEmergencyInfoInDialpad.setOnConfirmClickListener(this);
+    }
+
     private void setupEmergencyShortcutsView() {
         mEmergencyShortcutView = findViewById(R.id.emergency_dialer_shortcuts);
         mDialpadView = findViewById(R.id.emergency_dialer);
@@ -978,7 +985,7 @@
         final View dialpadButton = findViewById(R.id.floating_action_button_dialpad);
         dialpadButton.setOnClickListener(this);
 
-        mEmergencyInfoGroup.setOnConfirmClickListener(this);
+        mEmergencyInfoInShortcut.setOnConfirmClickListener(this);
 
         mEmergencyShortcutButtonList = new ArrayList<>();
         setupEmergencyCallShortcutButton();
@@ -1076,8 +1083,8 @@
      * Called by the activity before a touch event is dispatched to the view hierarchy.
      */
     private void onPreTouchEvent(MotionEvent event) {
-        mEmergencyActionGroup.onPreTouchEvent(event);
-        mEmergencyInfoGroup.onPreTouchEvent(event);
+        mEmergencyInfoInDialpad.onPreTouchEvent(event);
+        mEmergencyInfoInShortcut.onPreTouchEvent(event);
 
         if (mEmergencyShortcutButtonList != null) {
             for (EmergencyShortcutButton button : mEmergencyShortcutButtonList) {
@@ -1090,8 +1097,8 @@
      * Called by the activity after a touch event is dispatched to the view hierarchy.
      */
     private void onPostTouchEvent(MotionEvent event) {
-        mEmergencyActionGroup.onPostTouchEvent(event);
-        mEmergencyInfoGroup.onPostTouchEvent(event);
+        mEmergencyInfoInDialpad.onPostTouchEvent(event);
+        mEmergencyInfoInShortcut.onPostTouchEvent(event);
 
         if (mEmergencyShortcutButtonList != null) {
             for (EmergencyShortcutButton button : mEmergencyShortcutButtonList) {
diff --git a/src/com/android/phone/FrameworksUtils.java b/src/com/android/phone/FrameworksUtils.java
new file mode 100644
index 0000000..dcf10bd
--- /dev/null
+++ b/src/com/android/phone/FrameworksUtils.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.res.Configuration;
+
+/**
+ * This class provides utility functions over framework APIs
+ */
+public class FrameworksUtils {
+    /**
+     * Create a new instance of {@link AlertDialog.Builder}.
+     * @param context reference to a Context
+     * @return an instance of AlertDialog.Builder
+     */
+    public static AlertDialog.Builder makeAlertDialogBuilder(Context context) {
+        boolean isDarkTheme = (context.getResources().getConfiguration().uiMode
+                & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES;
+        return new AlertDialog.Builder(context, isDarkTheme
+                ? android.R.style.Theme_DeviceDefault_Dialog_Alert : 0);
+    }
+}
diff --git a/src/com/android/phone/GsmUmtsCallBarringOptions.java b/src/com/android/phone/GsmUmtsCallBarringOptions.java
index 30e9b5c..99dc92f 100644
--- a/src/com/android/phone/GsmUmtsCallBarringOptions.java
+++ b/src/com/android/phone/GsmUmtsCallBarringOptions.java
@@ -236,8 +236,13 @@
                                     "change password for call barring failed with exception: "
                                             + ar.exception);
                         }
-                        onException(mButtonChangePW, (CommandException) ar.exception);
-                        mButtonChangePW.setEnabled(true);
+                        CommandException commandException = (CommandException) ar.exception;
+                        onException(mButtonChangePW, commandException);
+                        if (commandException.getCommandError()
+                                != CommandException.Error.FDN_CHECK_FAILURE) {
+                            // Not a FDN_CHECK_FAILURE, enable mButtonChangePW
+                            mButtonChangePW.setEnabled(true);
+                        }
                     } else if (ar.userObj instanceof Throwable) {
                         onError(mButtonChangePW, RESPONSE_ERROR);
                     } else {
diff --git a/src/com/android/phone/ImsProvisioningController.java b/src/com/android/phone/ImsProvisioningController.java
new file mode 100644
index 0000000..54fc547
--- /dev/null
+++ b/src/com/android/phone/ImsProvisioningController.java
@@ -0,0 +1,1489 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.telephony.ims.ImsRcsManager.CAPABILITY_TYPE_OPTIONS_UCE;
+import static android.telephony.ims.ImsRcsManager.CAPABILITY_TYPE_PRESENCE_UCE;
+import static android.telephony.ims.ProvisioningManager.KEY_EAB_PROVISIONING_STATUS;
+import static android.telephony.ims.ProvisioningManager.KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE;
+import static android.telephony.ims.ProvisioningManager.KEY_VOLTE_PROVISIONING_STATUS;
+import static android.telephony.ims.ProvisioningManager.KEY_VT_PROVISIONING_STATUS;
+import static android.telephony.ims.ProvisioningManager.PROVISIONING_VALUE_DISABLED;
+import static android.telephony.ims.ProvisioningManager.PROVISIONING_VALUE_ENABLED;
+import static android.telephony.ims.feature.ImsFeature.FEATURE_MMTEL;
+import static android.telephony.ims.feature.ImsFeature.FEATURE_RCS;
+import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_CALL_COMPOSER;
+import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_SMS;
+import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT;
+import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO;
+import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE;
+import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM;
+import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN;
+import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_LTE;
+import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_MAX;
+import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_NONE;
+import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_NR;
+
+import android.annotation.Nullable;
+import android.content.Context;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Looper;
+import android.os.Message;
+import android.os.PersistableBundle;
+import android.os.RemoteCallbackList;
+import android.os.RemoteException;
+import android.telephony.CarrierConfigManager;
+import android.telephony.CarrierConfigManager.Ims;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyRegistryManager;
+import android.telephony.ims.ProvisioningManager;
+import android.telephony.ims.aidl.IFeatureProvisioningCallback;
+import android.telephony.ims.aidl.IImsConfig;
+import android.telephony.ims.feature.MmTelFeature.MmTelCapabilities;
+import android.telephony.ims.feature.RcsFeature.RcsImsCapabilities;
+import android.telephony.ims.stub.ImsConfigImplBase;
+import android.telephony.ims.stub.ImsRegistrationImplBase;
+import android.util.SparseArray;
+
+import com.android.ims.FeatureConnector;
+import com.android.ims.ImsConfig;
+import com.android.ims.ImsException;
+import com.android.ims.ImsManager;
+import com.android.ims.RcsFeatureManager;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.PhoneConfigurationManager;
+import com.android.internal.telephony.util.HandlerExecutor;
+import com.android.telephony.Rlog;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.concurrent.Executor;
+
+/**
+ * Provides APIs for MMTEL and RCS provisioning status. This class handles provisioning status and
+ * notifies the status changing for each capability
+ * {{@link MmTelCapabilities.MmTelCapability} for MMTel services}
+ * {{@link RcsImsCapabilities.RcsImsCapabilityFlag} for RCS services}
+ */
+public class ImsProvisioningController {
+    private static final String TAG = "ImsProvisioningController";
+    private static final int INVALID_VALUE = -1;
+
+    private static final int EVENT_SUB_CHANGED = 1;
+    private static final int EVENT_PROVISIONING_CAPABILITY_CHANGED = 2;
+    @VisibleForTesting
+    protected static final int EVENT_MULTI_SIM_CONFIGURATION_CHANGE = 3;
+
+    // Provisioning Keys that are handled via AOSP cache and not sent to the ImsService
+    private static final int[] LOCAL_IMS_CONFIG_KEYS = {
+            KEY_VOLTE_PROVISIONING_STATUS,
+            KEY_VT_PROVISIONING_STATUS,
+            KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE,
+            KEY_EAB_PROVISIONING_STATUS
+    };
+    private static final int[] LOCAL_RADIO_TECHS = {
+            REGISTRATION_TECH_LTE,
+            REGISTRATION_TECH_IWLAN,
+            REGISTRATION_TECH_CROSS_SIM,
+            REGISTRATION_TECH_NR
+    };
+
+    private static final int MMTEL_CAPABILITY_MIN = MmTelCapabilities.CAPABILITY_TYPE_NONE;
+    private static final int MMTEL_CAPABILITY_MAX = MmTelCapabilities.CAPABILITY_TYPE_MAX;
+
+    private static final int RCS_CAPABILITY_MIN = RcsImsCapabilities.CAPABILITY_TYPE_NONE;
+    private static final int RCS_CAPABILITY_MAX = RcsImsCapabilities.CAPABILITY_TYPE_MAX;
+
+    private static final int[] LOCAL_MMTEL_CAPABILITY = {
+            CAPABILITY_TYPE_VOICE,
+            CAPABILITY_TYPE_VIDEO,
+            CAPABILITY_TYPE_UT,
+            CAPABILITY_TYPE_SMS,
+            CAPABILITY_TYPE_CALL_COMPOSER
+    };
+
+    /**
+     * map the MmTelCapabilities.MmTelCapability and
+     * CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VOICE_INT
+     * CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VIDEO_INT
+     * CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_UT_INT
+     * CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_SMS_INT
+     * CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_CALL_COMPOSER_INT
+     */
+    private static final Map<Integer, String> KEYS_MMTEL_CAPABILITY = Map.of(
+            CAPABILITY_TYPE_VOICE, Ims.KEY_CAPABILITY_TYPE_VOICE_INT_ARRAY,
+            CAPABILITY_TYPE_VIDEO, Ims.KEY_CAPABILITY_TYPE_VIDEO_INT_ARRAY,
+            CAPABILITY_TYPE_UT, Ims.KEY_CAPABILITY_TYPE_UT_INT_ARRAY,
+            CAPABILITY_TYPE_SMS, Ims.KEY_CAPABILITY_TYPE_SMS_INT_ARRAY,
+            CAPABILITY_TYPE_CALL_COMPOSER, Ims.KEY_CAPABILITY_TYPE_CALL_COMPOSER_INT_ARRAY
+    );
+
+    /**
+     * map the RcsImsCapabilities.RcsImsCapabilityFlag and
+     * CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_OPTIONS_UCE
+     * CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_PRESENCE_UCE
+     */
+    private static final Map<Integer, String> KEYS_RCS_CAPABILITY = Map.of(
+            CAPABILITY_TYPE_OPTIONS_UCE, Ims.KEY_CAPABILITY_TYPE_OPTIONS_UCE_INT_ARRAY,
+            CAPABILITY_TYPE_PRESENCE_UCE, Ims.KEY_CAPABILITY_TYPE_PRESENCE_UCE_INT_ARRAY
+    );
+
+    /**
+     * Create a FeatureConnector for this class to use to connect to an ImsManager.
+     */
+    @VisibleForTesting
+    public interface MmTelFeatureConnector {
+        /**
+         * Create a FeatureConnector for this class to use to connect to an ImsManager.
+         * @param listener will receive ImsManager instance.
+         * @param executor that the Listener callbacks will be called on.
+         * @return A FeatureConnector
+         */
+        FeatureConnector<ImsManager> create(Context context, int slotId,
+                String logPrefix, FeatureConnector.Listener<ImsManager> listener,
+                Executor executor);
+    }
+
+    /**
+     * Create a FeatureConnector for this class to use to connect to an RcsFeatureManager.
+     */
+    @VisibleForTesting
+    public interface RcsFeatureConnector {
+        /**
+         * Create a FeatureConnector for this class to use to connect to an RcsFeatureManager.
+         * @param listener will receive RcsFeatureManager instance.
+         * @param executor that the Listener callbacks will be called on.
+         * @return A FeatureConnector
+         */
+        FeatureConnector<RcsFeatureManager> create(Context context, int slotId,
+                FeatureConnector.Listener<RcsFeatureManager> listener,
+                Executor executor, String logPrefix);
+    }
+
+    private static ImsProvisioningController sInstance;
+
+    private final PhoneGlobals mApp;
+    private final Handler mHandler;
+    private final CarrierConfigManager mCarrierConfigManager;
+    private final SubscriptionManager mSubscriptionManager;
+    private final TelephonyRegistryManager mTelephonyRegistryManager;
+    private final MmTelFeatureConnector mMmTelFeatureConnector;
+    private final RcsFeatureConnector mRcsFeatureConnector;
+
+    // maps a slotId to a list of MmTelFeatureListeners
+    private final SparseArray<MmTelFeatureListener> mMmTelFeatureListenersSlotMap =
+            new SparseArray<>();
+    // maps a slotId to a list of RcsFeatureListeners
+    private final SparseArray<RcsFeatureListener> mRcsFeatureListenersSlotMap =
+            new SparseArray<>();
+    // map a slotId to a list of ProvisioningCallbackManager
+    private final SparseArray<ProvisioningCallbackManager> mProvisioningCallbackManagersSlotMap =
+            new SparseArray<>();
+    private final ImsProvisioningLoader mImsProvisioningLoader;
+
+    private int mNumSlot;
+
+    /**
+     * This class contains the provisioning status to notify changes.
+     * {{@link MmTelCapabilities.MmTelCapability} for MMTel services}
+     * {{@link android.telephony.ims.ImsRcsManager.RcsImsCapabilityFlag} for RCS services}
+     * {{@link ImsRegistrationImplBase.ImsRegistrationTech} for Registration tech}
+     */
+    private static final class FeatureProvisioningData {
+        public final int mCapability;
+        public final int mTech;
+        public final boolean mProvisioned;
+        public final boolean mIsMmTel;
+
+        FeatureProvisioningData(int capability, int tech, boolean provisioned, boolean isMmTel) {
+            mCapability = capability;
+            mTech = tech;
+            mProvisioned = provisioned;
+            mIsMmTel = isMmTel;
+        }
+    }
+
+    private final class MessageHandler extends Handler {
+        private static final String LOG_PREFIX = "Handler";
+        MessageHandler(Looper looper) {
+            super(looper);
+        }
+
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case EVENT_SUB_CHANGED:
+                    onSubscriptionsChanged();
+                    break;
+                case EVENT_PROVISIONING_CAPABILITY_CHANGED:
+                    try {
+                        mProvisioningCallbackManagersSlotMap.get(msg.arg1)
+                                .notifyProvisioningCapabilityChanged(
+                                        (FeatureProvisioningData) msg.obj);
+                    } catch (NullPointerException e) {
+                        logw(LOG_PREFIX, msg.arg1,
+                                "can not find callback manager message" + msg.what);
+                    }
+                    break;
+                case EVENT_MULTI_SIM_CONFIGURATION_CHANGE:
+                    int activeModemCount = (int) ((AsyncResult) msg.obj).result;
+                    onMultiSimConfigChanged(activeModemCount);
+                    break;
+                default:
+                    log("unknown message " + msg);
+                    break;
+            }
+        }
+    }
+
+    private final SubscriptionManager.OnSubscriptionsChangedListener mSubChangedListener =
+            new SubscriptionManager.OnSubscriptionsChangedListener() {
+                @Override
+                public void onSubscriptionsChanged() {
+                    if (!mHandler.hasMessages(EVENT_SUB_CHANGED)) {
+                        mHandler.sendEmptyMessage(EVENT_SUB_CHANGED);
+                    }
+                }
+            };
+
+    private final class ProvisioningCallbackManager {
+        private static final String LOG_PREFIX = "ProvisioningCallbackManager";
+        private RemoteCallbackList<IFeatureProvisioningCallback> mIFeatureProvisioningCallbackList;
+        private int mSubId;
+        private int mSlotId;
+
+        ProvisioningCallbackManager(int slotId) {
+            mIFeatureProvisioningCallbackList =
+                    new RemoteCallbackList<IFeatureProvisioningCallback>();
+            mSlotId = slotId;
+            mSubId = getSubId(slotId);
+            log(LOG_PREFIX, mSlotId, "ProvisioningCallbackManager create");
+        }
+
+        public void clear() {
+            log(LOG_PREFIX, mSlotId, "ProvisioningCallbackManager clear ");
+
+            mIFeatureProvisioningCallbackList.kill();
+
+            // All registered callbacks are unregistered, and the list is disabled
+            // need to create again
+            mIFeatureProvisioningCallbackList =
+                    new RemoteCallbackList<IFeatureProvisioningCallback>();
+        }
+
+        public void registerCallback(IFeatureProvisioningCallback localCallback) {
+            if (!mIFeatureProvisioningCallbackList.register(localCallback, (Object) mSubId)) {
+                log(LOG_PREFIX, mSlotId, "registration callback fail");
+            }
+        }
+
+        public void unregisterCallback(IFeatureProvisioningCallback localCallback) {
+            mIFeatureProvisioningCallbackList.unregister(localCallback);
+        }
+
+        public void setSubId(int subId) {
+            if (mSubId == subId) {
+                log(LOG_PREFIX, mSlotId, "subId is not changed ");
+                return;
+            }
+
+            mSubId = subId;
+            mSlotId = getSlotId(subId);
+
+            // subId changed means the registered callbacks are not available.
+            clear();
+        }
+
+        public boolean hasCallblacks() {
+            int size = mIFeatureProvisioningCallbackList.beginBroadcast();
+            mIFeatureProvisioningCallbackList.finishBroadcast();
+
+            return (size > 0);
+        }
+
+        public void notifyProvisioningCapabilityChanged(FeatureProvisioningData data) {
+            int size = mIFeatureProvisioningCallbackList.beginBroadcast();
+            for (int index = 0; index < size; index++) {
+                try {
+                    IFeatureProvisioningCallback imsFeatureProvisioningCallback =
+                            mIFeatureProvisioningCallbackList.getBroadcastItem(index);
+
+                    // MMTEL
+                    if (data.mIsMmTel
+                            && Arrays.stream(LOCAL_MMTEL_CAPABILITY)
+                            .anyMatch(value -> value == data.mCapability)) {
+                        imsFeatureProvisioningCallback.onFeatureProvisioningChanged(
+                                data.mCapability, data.mTech, data.mProvisioned);
+                        logi(LOG_PREFIX, mSlotId, "notifyProvisioningCapabilityChanged : "
+                                + "onFeatureProvisioningChanged"
+                                + " capability " + data.mCapability
+                                + " tech "  + data.mTech
+                                + " isProvisioned " + data.mProvisioned);
+                    } else if (data.mCapability == CAPABILITY_TYPE_PRESENCE_UCE) {
+                        imsFeatureProvisioningCallback.onRcsFeatureProvisioningChanged(
+                                data.mCapability, data.mTech, data.mProvisioned);
+                        logi(LOG_PREFIX, mSlotId, "notifyProvisioningCapabilityChanged : "
+                                + "onRcsFeatureProvisioningChanged"
+                                + " capability " + data.mCapability
+                                + " tech "  + data.mTech
+                                + " isProvisioned " + data.mProvisioned);
+                    } else {
+                        loge(LOG_PREFIX, mSlotId, "notifyProvisioningCapabilityChanged : "
+                                + "unknown capability "
+                                + data.mCapability);
+                    }
+                } catch (RemoteException e) {
+                    loge(LOG_PREFIX, mSlotId,
+                            "notifyProvisioningChanged: callback #" + index + " failed");
+                }
+            }
+            mIFeatureProvisioningCallbackList.finishBroadcast();
+        }
+    }
+
+    private final class MmTelFeatureListener implements FeatureConnector.Listener<ImsManager> {
+        private static final String LOG_PREFIX = "MmTelFeatureListener";
+        private FeatureConnector<ImsManager> mConnector;
+        private ImsManager mImsManager;
+        private boolean mReady = false;
+        // stores whether the initial provisioning key value should be notified to ImsService
+        private boolean mRequiredNotify = false;
+        private int mSubId;
+        private int mSlotId;
+
+        MmTelFeatureListener(int slotId) {
+            log(LOG_PREFIX, slotId, "created");
+
+            mSlotId = slotId;
+            mSubId = getSubId(slotId);
+            mConnector = mMmTelFeatureConnector.create(
+                    mApp, slotId, TAG, this, new HandlerExecutor(mHandler));
+            mConnector.connect();
+        }
+
+        public void setSubId(int subId) {
+            if (mRequiredNotify && mReady) {
+                mRequiredNotify = false;
+                setInitialProvisioningKeys(subId);
+            }
+            if (mSubId == subId) {
+                log(LOG_PREFIX, mSlotId, "subId is not changed");
+                return;
+            }
+
+            mSubId = subId;
+            mSlotId = getSlotId(subId);
+        }
+
+        public void destroy() {
+            log("destroy");
+            mConnector.disconnect();
+            mConnector = null;
+            mReady = false;
+            mImsManager = null;
+        }
+
+        public @Nullable ImsManager getImsManager() {
+            return mImsManager;
+        }
+
+        @Override
+        public void connectionReady(ImsManager manager, int subId) {
+            log(LOG_PREFIX, mSlotId, "connection ready");
+            mReady = true;
+            mImsManager = manager;
+
+            onMmTelAvailable();
+        }
+
+        @Override
+        public void connectionUnavailable(int reason) {
+            log(LOG_PREFIX, mSlotId, "connection unavailable " + reason);
+
+            mReady = false;
+            mImsManager = null;
+
+            // keep the callback for other reason
+            if (reason == FeatureConnector.UNAVAILABLE_REASON_IMS_UNSUPPORTED) {
+                onMmTelUnavailable();
+            }
+        }
+
+        public int setProvisioningValue(int key, int value) {
+            int retVal = ImsConfigImplBase.CONFIG_RESULT_FAILED;
+
+            if (!mReady) {
+                loge(LOG_PREFIX, mSlotId, "service is Unavailable");
+                return retVal;
+            }
+            try {
+                // getConfigInterface() will return not null or throw the ImsException
+                // need not null checking
+                ImsConfig imsConfig = getImsConfig(mImsManager);
+                retVal = imsConfig.setConfig(key, value);
+                log(LOG_PREFIX, mSlotId, "setConfig called with key " + key + " value " + value);
+            } catch (ImsException e) {
+                logw(LOG_PREFIX, mSlotId,
+                        "setConfig operation failed for key =" + key
+                        + ", value =" + value + ". Exception:" + e.getMessage());
+            }
+            return retVal;
+        }
+
+        public int getProvisioningValue(int key) {
+            if (!mReady) {
+                loge(LOG_PREFIX, mSlotId, "service is Unavailable");
+                return INVALID_VALUE;
+            }
+
+            int retValue = INVALID_VALUE;
+            try {
+                // getConfigInterface() will return not null or throw the ImsException
+                // need not null checking
+                ImsConfig imsConfig = getImsConfig(mImsManager);
+                retValue = imsConfig.getConfigInt(key);
+            } catch (ImsException e) {
+                logw(LOG_PREFIX, mSlotId,
+                        "getConfig operation failed for key =" + key
+                        + ", value =" + retValue + ". Exception:" + e.getMessage());
+            }
+            return retValue;
+        }
+
+        public void onMmTelAvailable() {
+            log(LOG_PREFIX, mSlotId, "onMmTelAvailable");
+
+            if (isValidSubId(mSubId)) {
+                mRequiredNotify = false;
+
+                // notify provisioning key value to ImsService
+                setInitialProvisioningKeys(mSubId);
+            } else {
+                // wait until subId is valid
+                mRequiredNotify = true;
+            }
+        }
+
+        public void onMmTelUnavailable() {
+            log(LOG_PREFIX, mSlotId, "onMmTelUnavailable");
+
+            try {
+                // delete all callbacks reference from ProvisioningManager
+                mProvisioningCallbackManagersSlotMap.get(getSlotId(mSubId)).clear();
+            } catch (NullPointerException e) {
+                logw(LOG_PREFIX, getSlotId(mSubId), "can not find callback manager to clear");
+            }
+        }
+
+        private void setInitialProvisioningKeys(int subId) {
+            boolean required;
+            int value = ImsProvisioningLoader.STATUS_NOT_SET;
+
+            // updating KEY_VOLTE_PROVISIONING_STATUS
+            required = isProvisioningRequired(subId, CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE,
+                    /*isMmTel*/true);
+            log(LOG_PREFIX, mSlotId,
+                    "setInitialProvisioningKeys provisioning required(voice, lte) " + required);
+            if (required) {
+                value = mImsProvisioningLoader.getProvisioningStatus(subId, FEATURE_MMTEL,
+                        CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE);
+                if (value != ImsProvisioningLoader.STATUS_NOT_SET) {
+                    value = (value == ImsProvisioningLoader.STATUS_PROVISIONED)
+                            ? PROVISIONING_VALUE_ENABLED : PROVISIONING_VALUE_DISABLED;
+                    setProvisioningValue(KEY_VOLTE_PROVISIONING_STATUS, value);
+                }
+            }
+
+            // updating KEY_VT_PROVISIONING_STATUS
+            required = isProvisioningRequired(subId, CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE,
+                    /*isMmTel*/true);
+            log(LOG_PREFIX, mSlotId,
+                    "setInitialProvisioningKeys provisioning required(video, lte) " + required);
+            if (required) {
+                value = mImsProvisioningLoader.getProvisioningStatus(subId, FEATURE_MMTEL,
+                        CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE);
+                if (value != ImsProvisioningLoader.STATUS_NOT_SET) {
+                    value = (value == ImsProvisioningLoader.STATUS_PROVISIONED)
+                            ? PROVISIONING_VALUE_ENABLED : PROVISIONING_VALUE_DISABLED;
+                    setProvisioningValue(KEY_VT_PROVISIONING_STATUS, value);
+                }
+            }
+
+            // updating KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE
+            required = isProvisioningRequired(subId, CAPABILITY_TYPE_VOICE,
+                    REGISTRATION_TECH_IWLAN, /*isMmTel*/true);
+            log(LOG_PREFIX, mSlotId,
+                    "setInitialProvisioningKeys provisioning required(voice, iwlan) " + required);
+            if (required) {
+                value = mImsProvisioningLoader.getProvisioningStatus(subId, FEATURE_MMTEL,
+                        CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN);
+                if (value != ImsProvisioningLoader.STATUS_NOT_SET) {
+                    value = (value == ImsProvisioningLoader.STATUS_PROVISIONED)
+                            ? PROVISIONING_VALUE_ENABLED : PROVISIONING_VALUE_DISABLED;
+                    setProvisioningValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value);
+                }
+            }
+        }
+    }
+
+    private final class RcsFeatureListener implements FeatureConnector.Listener<RcsFeatureManager> {
+        private static final String LOG_PREFIX = "RcsFeatureListener";
+        private FeatureConnector<RcsFeatureManager> mConnector;
+        private RcsFeatureManager mRcsFeatureManager;
+        private boolean mReady = false;
+        // stores whether the initial provisioning key value should be notified to ImsService
+        private boolean mRequiredNotify = false;
+        private int mSubId;
+        private int mSlotId;
+
+        RcsFeatureListener(int slotId) {
+            log(LOG_PREFIX, slotId, "created");
+
+            mSlotId = slotId;
+            mSubId = getSubId(slotId);
+            mConnector = mRcsFeatureConnector.create(
+                    mApp, slotId, this, new HandlerExecutor(mHandler), TAG);
+            mConnector.connect();
+        }
+
+        public void setSubId(int subId) {
+            if (mRequiredNotify && mReady) {
+                mRequiredNotify = false;
+                setInitialProvisioningKeys(subId);
+            }
+            if (mSubId == subId) {
+                log(LOG_PREFIX, mSlotId, "subId is not changed");
+                return;
+            }
+
+            mSubId = subId;
+            mSlotId = getSlotId(subId);
+        }
+
+        public void destroy() {
+            log(LOG_PREFIX, mSlotId, "destroy");
+            mConnector.disconnect();
+            mConnector = null;
+            mReady = false;
+            mRcsFeatureManager = null;
+        }
+
+        @Override
+        public void connectionReady(RcsFeatureManager manager, int subId) {
+            log(LOG_PREFIX, mSlotId, "connection ready");
+            mReady = true;
+            mRcsFeatureManager = manager;
+
+            onRcsAvailable();
+        }
+
+        @Override
+        public void connectionUnavailable(int reason) {
+            log(LOG_PREFIX, mSlotId, "connection unavailable");
+            mReady = false;
+            mRcsFeatureManager = null;
+
+            // keep the callback for other reason
+            if (reason == FeatureConnector.UNAVAILABLE_REASON_IMS_UNSUPPORTED) {
+                onRcsUnavailable();
+            }
+        }
+
+        public int setProvisioningValue(int key, int value) {
+            int retVal = ImsConfigImplBase.CONFIG_RESULT_FAILED;
+
+            if (!mReady) {
+                loge(LOG_PREFIX, mSlotId, "service is Unavailable");
+                return retVal;
+            }
+
+            try {
+                // getConfigInterface() will return not null or throw the ImsException
+                // need not null checking
+                ImsConfig imsConfig = getImsConfig(mRcsFeatureManager.getConfig());
+                retVal = imsConfig.setConfig(key, value);
+                log(LOG_PREFIX, mSlotId, "setConfig called with key " + key + " value " + value);
+            } catch (ImsException e) {
+                logw(LOG_PREFIX, mSlotId,
+                        "setConfig operation failed for key =" + key
+                        + ", value =" + value + ". Exception:" + e.getMessage());
+            }
+            return retVal;
+        }
+
+        public int getProvisioningValue(int key) {
+            if (!mReady) {
+                loge(LOG_PREFIX, mSlotId, "service is Unavailable");
+                return INVALID_VALUE;
+            }
+
+            int retValue = INVALID_VALUE;
+            try {
+                // getConfigInterface() will return not null or throw the ImsException
+                // need not null checking
+                ImsConfig imsConfig = getImsConfig(mRcsFeatureManager.getConfig());
+                retValue = imsConfig.getConfigInt(key);
+            } catch (ImsException e) {
+                logw(LOG_PREFIX, mSlotId,
+                        "getConfig operation failed for key =" + key
+                        + ", value =" + retValue + ". Exception:" + e.getMessage());
+            }
+            return retValue;
+        }
+
+        public void onRcsAvailable() {
+            log(LOG_PREFIX, mSlotId, "onRcsAvailable");
+
+            if (isValidSubId(mSubId)) {
+                mRequiredNotify = false;
+
+                // notify provisioning key value to ImsService
+                setInitialProvisioningKeys(mSubId);
+            } else {
+                // wait until subId is valid
+                mRequiredNotify = true;
+            }
+        }
+
+        public void onRcsUnavailable() {
+            log(LOG_PREFIX, mSlotId, "onRcsUnavailable");
+
+            try {
+                // delete all callbacks reference from ProvisioningManager
+                mProvisioningCallbackManagersSlotMap.get(getSlotId(mSubId)).clear();
+            } catch (NullPointerException e) {
+                logw(LOG_PREFIX, getSlotId(mSubId), "can not find callback manager to clear");
+            }
+        }
+
+        private void setInitialProvisioningKeys(int subId) {
+            boolean required;
+            int value = ImsProvisioningLoader.STATUS_NOT_SET;
+
+            // KEY_EAB_PROVISIONING_STATUS
+            int capability = CAPABILITY_TYPE_PRESENCE_UCE;
+            // Assume that all radio techs have the same provisioning value
+            int tech = REGISTRATION_TECH_LTE;
+
+            required = isProvisioningRequired(subId, capability, tech, /*isMmTel*/false);
+            if (required) {
+                value = mImsProvisioningLoader.getProvisioningStatus(subId, FEATURE_RCS,
+                        capability, tech);
+                if (value != ImsProvisioningLoader.STATUS_NOT_SET) {
+                    value = (value == ImsProvisioningLoader.STATUS_PROVISIONED)
+                            ? PROVISIONING_VALUE_ENABLED : PROVISIONING_VALUE_DISABLED;
+                    setProvisioningValue(KEY_EAB_PROVISIONING_STATUS, value);
+                }
+            }
+        }
+    }
+
+    /**
+     * Do NOT use this directly, instead use {@link #getInstance()}.
+     */
+    @VisibleForTesting
+    public ImsProvisioningController(PhoneGlobals app, int numSlot, Looper looper,
+            MmTelFeatureConnector mmTelFeatureConnector, RcsFeatureConnector rcsFeatureConnector,
+            ImsProvisioningLoader imsProvisioningLoader) {
+        log("ImsProvisioningController");
+        mApp = app;
+        mNumSlot = numSlot;
+        mHandler = new MessageHandler(looper);
+        mMmTelFeatureConnector = mmTelFeatureConnector;
+        mRcsFeatureConnector = rcsFeatureConnector;
+        mCarrierConfigManager = mApp.getSystemService(CarrierConfigManager.class);
+        mSubscriptionManager = mApp.getSystemService(SubscriptionManager.class);
+        mTelephonyRegistryManager = mApp.getSystemService(TelephonyRegistryManager.class);
+        mTelephonyRegistryManager.addOnSubscriptionsChangedListener(
+                mSubChangedListener, mSubChangedListener.getHandlerExecutor());
+        mImsProvisioningLoader = imsProvisioningLoader;
+
+        PhoneConfigurationManager.registerForMultiSimConfigChange(mHandler,
+                EVENT_MULTI_SIM_CONFIGURATION_CHANGE, null);
+
+        initialize(numSlot);
+    }
+
+    private void initialize(int numSlot) {
+        for (int i = 0; i < numSlot; i++) {
+            MmTelFeatureListener m = new MmTelFeatureListener(i);
+            mMmTelFeatureListenersSlotMap.put(i, m);
+
+            RcsFeatureListener r = new RcsFeatureListener(i);
+            mRcsFeatureListenersSlotMap.put(i, r);
+
+            ProvisioningCallbackManager p = new ProvisioningCallbackManager(i);
+            mProvisioningCallbackManagersSlotMap.put(i, p);
+        }
+    }
+
+    private void onMultiSimConfigChanged(int newNumSlot) {
+        log("onMultiSimConfigChanged: NumSlot " + mNumSlot + " newNumSlot " + newNumSlot);
+
+        if (mNumSlot < newNumSlot) {
+            for (int i = mNumSlot; i < newNumSlot; i++) {
+                MmTelFeatureListener m = new MmTelFeatureListener(i);
+                mMmTelFeatureListenersSlotMap.put(i, m);
+
+                RcsFeatureListener r = new RcsFeatureListener(i);
+                mRcsFeatureListenersSlotMap.put(i, r);
+
+                ProvisioningCallbackManager p = new ProvisioningCallbackManager(i);
+                mProvisioningCallbackManagersSlotMap.put(i, p);
+            }
+        } else if (mNumSlot > newNumSlot) {
+            for (int i = (mNumSlot - 1); i > (newNumSlot - 1); i--) {
+                MmTelFeatureListener m = mMmTelFeatureListenersSlotMap.get(i);
+                mMmTelFeatureListenersSlotMap.remove(i);
+                m.destroy();
+
+                RcsFeatureListener r = mRcsFeatureListenersSlotMap.get(i);
+                mRcsFeatureListenersSlotMap.remove(i);
+                r.destroy();
+
+                ProvisioningCallbackManager p = mProvisioningCallbackManagersSlotMap.get(i);
+                mProvisioningCallbackManagersSlotMap.remove(i);
+                p.clear();
+            }
+        }
+
+        mNumSlot = newNumSlot;
+    }
+
+    /**
+     * destroy the instance
+     */
+    @VisibleForTesting
+    public void destroy() {
+        log("destroy");
+
+        mHandler.getLooper().quit();
+
+        mTelephonyRegistryManager.removeOnSubscriptionsChangedListener(mSubChangedListener);
+
+        for (int i = 0; i < mMmTelFeatureListenersSlotMap.size(); i++) {
+            mMmTelFeatureListenersSlotMap.get(i).destroy();
+        }
+        mMmTelFeatureListenersSlotMap.clear();
+
+        for (int i = 0; i < mRcsFeatureListenersSlotMap.size(); i++) {
+            mRcsFeatureListenersSlotMap.get(i).destroy();
+        }
+        mRcsFeatureListenersSlotMap.clear();
+
+        for (int i = 0; i < mProvisioningCallbackManagersSlotMap.size(); i++) {
+            mProvisioningCallbackManagersSlotMap.get(i).clear();
+        }
+    }
+
+    /**
+     * create an instance
+     */
+    @VisibleForTesting
+    public static ImsProvisioningController make(PhoneGlobals app, int numSlot) {
+        synchronized (ImsProvisioningController.class) {
+            if (sInstance == null) {
+                Rlog.i(TAG, "ImsProvisioningController created");
+                HandlerThread handlerThread = new HandlerThread(TAG);
+                handlerThread.start();
+                sInstance = new ImsProvisioningController(app, numSlot, handlerThread.getLooper(),
+                        ImsManager::getConnector, RcsFeatureManager::getConnector,
+                        new ImsProvisioningLoader(app));
+            }
+        }
+        return sInstance;
+    }
+
+    /**
+     * Gets a ImsProvisioningController instance
+     */
+    @VisibleForTesting
+    public static ImsProvisioningController getInstance() {
+        synchronized (ImsProvisioningController.class) {
+            return sInstance;
+        }
+    }
+
+    /**
+     * Register IFeatureProvisioningCallback from ProvisioningManager
+     */
+
+    @VisibleForTesting
+    public void addFeatureProvisioningChangedCallback(int subId,
+            IFeatureProvisioningCallback callback) {
+        if (callback == null) {
+            throw new IllegalArgumentException("provisioning callback can't be null");
+        }
+        int slotId = getSlotId(subId);
+        if (slotId < 0 || slotId >= mNumSlot) {
+            throw new IllegalArgumentException("subscription id is not available");
+        }
+
+        try {
+            mProvisioningCallbackManagersSlotMap.get(slotId).registerCallback(callback);
+            log("Feature Provisioning Callback registered.");
+        } catch (NullPointerException e) {
+            logw("can not access callback manager to add callback");
+        }
+    }
+
+    /**
+     * Remove IFeatureProvisioningCallback
+     */
+    @VisibleForTesting
+    public void removeFeatureProvisioningChangedCallback(int subId,
+            IFeatureProvisioningCallback callback) {
+        if (callback == null) {
+            throw new IllegalArgumentException("provisioning callback can't be null");
+        }
+
+        int slotId = getSlotId(subId);
+        if (slotId < 0 || slotId >= mNumSlot) {
+            throw new IllegalArgumentException("subscription id is not available");
+        }
+
+        try {
+            mProvisioningCallbackManagersSlotMap.get(slotId).unregisterCallback(callback);
+            log("Feature Provisioning Callback removed.");
+        } catch (NullPointerException e) {
+            logw("can not access callback manager to remove callback");
+        }
+    }
+
+    /**
+     * return the boolean whether MmTel capability is required provisioning or not
+     */
+    @VisibleForTesting
+    public boolean isImsProvisioningRequiredForCapability(int subId, int capability, int tech) {
+        // check subId
+        int slotId = getSlotId(subId);
+        if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX || slotId >= mNumSlot) {
+            loge("Fail to retrieve slotId from subId");
+            throw new IllegalArgumentException("subscribe id is invalid");
+        }
+
+        // check valid capability
+        if (!(MMTEL_CAPABILITY_MIN < capability && capability < MMTEL_CAPABILITY_MAX)) {
+            throw new IllegalArgumentException("MmTel capability '" + capability + "' is invalid");
+        }
+
+        // check valid radio tech
+        if (!(REGISTRATION_TECH_NONE < tech && tech < REGISTRATION_TECH_MAX)) {
+            log("Ims not matched radio tech " + tech);
+            throw new IllegalArgumentException("Registration technology '" + tech + "' is invalid");
+        }
+
+        boolean retVal = isProvisioningRequired(subId, capability, tech, /*isMmTel*/true);
+
+        log("isImsProvisioningRequiredForCapability capability " + capability
+                + " tech " + tech + " return value " + retVal);
+
+        return retVal;
+    }
+
+    /**
+     * return the boolean whether RCS capability is required provisioning or not
+     */
+    @VisibleForTesting
+    public boolean isRcsProvisioningRequiredForCapability(int subId, int capability, int tech) {
+        // check slotId and Phone object
+        int slotId = getSlotId(subId);
+        if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX || slotId >= mNumSlot) {
+            loge("Fail to retrieve slotId from subId");
+            throw new IllegalArgumentException("subscribe id is invalid");
+        }
+
+        // check valid capability
+        if (!(RCS_CAPABILITY_MIN < capability && capability < RCS_CAPABILITY_MAX)) {
+            throw new IllegalArgumentException("Rcs capability '" + capability + "' is invalid");
+        }
+
+        // check valid radio tech
+        if (!(REGISTRATION_TECH_NONE < tech && tech < REGISTRATION_TECH_MAX)) {
+            log("Rcs not matched radio tech " + tech);
+            throw new IllegalArgumentException("Registration technology '" + tech + "' is invalid");
+        }
+
+        boolean retVal = isProvisioningRequired(subId, capability, tech, /*isMmTel*/false);
+
+        log("isRcsProvisioningRequiredForCapability capability " + capability
+                + " tech " + tech + " return value " + retVal);
+
+        return retVal;
+    }
+
+    /**
+     * return the provisioning status for MmTel capability in specific radio tech
+     */
+    @VisibleForTesting
+    public boolean getImsProvisioningStatusForCapability(int subId, int capability, int tech) {
+        boolean mmTelProvisioned = isImsProvisioningRequiredForCapability(subId, capability, tech);
+        if (!mmTelProvisioned) { // provisioning not required
+            log("getImsProvisioningStatusForCapability : not required "
+                    + " capability " + capability + " tech " + tech);
+            return true;
+        }
+
+        // read value from ImsProvisioningLoader
+        int result = mImsProvisioningLoader.getProvisioningStatus(subId, FEATURE_MMTEL,
+                capability, tech);
+        if (result == ImsProvisioningLoader.STATUS_NOT_SET) {
+            // not set means initial value
+            // read data from vendor ImsService and store that in ImsProvisioningLoader
+            result = getValueFromImsService(subId, capability, tech);
+            mmTelProvisioned = getBoolValue(result);
+            if (result != ProvisioningManager.PROVISIONING_RESULT_UNKNOWN) {
+                setAndNotifyMmTelProvisioningValue(subId, capability, tech, mmTelProvisioned);
+            }
+        } else {
+            mmTelProvisioned = getBoolValue(result);
+        }
+
+        log("getImsProvisioningStatusForCapability : "
+                + " capability " + capability
+                + " tech " + tech
+                + " result " + mmTelProvisioned);
+        return mmTelProvisioned;
+    }
+
+    /**
+     * set MmTel provisioning status in specific tech
+     */
+    @VisibleForTesting
+    public void setImsProvisioningStatusForCapability(int subId, int capability, int tech,
+            boolean isProvisioned) {
+        boolean mmTelProvisioned = isImsProvisioningRequiredForCapability(subId, capability, tech);
+        if (!mmTelProvisioned) { // provisioning not required
+            log("setImsProvisioningStatusForCapability : not required "
+                    + " capability " + capability + " tech " + tech);
+            return;
+        }
+
+        // write value to ImsProvisioningLoader
+        boolean isChanged = setAndNotifyMmTelProvisioningValue(subId, capability, tech,
+                isProvisioned);
+        if (!isChanged) {
+            log("status not changed mmtel capability " + capability + " tech " + tech);
+            return;
+        }
+
+        int slotId = getSlotId(subId);
+        // find matched key from capability and tech
+        int value = getIntValue(isProvisioned);
+        int key = getKeyFromCapability(capability, tech);
+        if (key != INVALID_VALUE) {
+            log("setImsProvisioningStatusForCapability : matched key " + key);
+            try {
+                // set key and value to vendor ImsService for MmTel
+                mMmTelFeatureListenersSlotMap.get(slotId).setProvisioningValue(key, value);
+            } catch (NullPointerException e) {
+                loge("can not access MmTelFeatureListener with capability " + capability);
+            }
+        }
+    }
+
+    /**
+     * return the provisioning status for RCS capability in specific radio tech
+     */
+    @VisibleForTesting
+    public boolean getRcsProvisioningStatusForCapability(int subId, int capability, int tech) {
+        boolean rcsProvisioned = isRcsProvisioningRequiredForCapability(subId, capability, tech);
+        if (!rcsProvisioned) { // provisioning not required
+            log("getRcsProvisioningStatusForCapability : not required"
+                    + " capability " + capability + " tech " + tech);
+            return true;
+        }
+
+        // read data from ImsProvisioningLoader
+        int result = mImsProvisioningLoader.getProvisioningStatus(subId, FEATURE_RCS,
+                capability, tech);
+        if (result == ImsProvisioningLoader.STATUS_NOT_SET) {
+            // not set means initial value
+            // read data from vendor ImsService and store that in ImsProvisioningLoader
+            result = getRcsValueFromImsService(subId, capability);
+            rcsProvisioned = getBoolValue(result);
+            if (result != ProvisioningManager.PROVISIONING_RESULT_UNKNOWN) {
+                setAndNotifyRcsProvisioningValueForAllTech(subId, capability, rcsProvisioned);
+            }
+        } else {
+            rcsProvisioned = getBoolValue(result);
+        }
+
+        log("getRcsProvisioningStatusForCapability : "
+                + " capability " + capability
+                + " tech " + tech
+                + " result " + rcsProvisioned);
+        return rcsProvisioned;
+    }
+
+    /**
+     * set RCS provisioning status in specific tech
+     */
+    @VisibleForTesting
+    public void setRcsProvisioningStatusForCapability(int subId, int capability, int tech,
+            boolean isProvisioned) {
+        boolean rcsProvisioned = isRcsProvisioningRequiredForCapability(subId, capability, tech);
+        if (!rcsProvisioned) { // provisioning not required
+            log("set rcs provisioning status but not required");
+            return;
+        }
+
+        // write status using ImsProvisioningLoader
+        boolean isChanged = setAndNotifyRcsProvisioningValue(subId, capability, tech,
+                isProvisioned);
+        if (!isChanged) {
+            log("status not changed rcs capability " + capability + " tech " + tech);
+            return;
+        }
+
+        int slotId = getSlotId(subId);
+        int key =  ProvisioningManager.KEY_EAB_PROVISIONING_STATUS;
+        int value = getIntValue(isProvisioned);
+        try {
+            // set key and value to vendor ImsService for Rcs
+            mRcsFeatureListenersSlotMap.get(slotId).setProvisioningValue(key, value);
+        } catch (NullPointerException e) {
+            loge("can not access RcsFeatureListener with capability " + capability);
+        }
+    }
+
+    /**
+     * set RCS provisioning status in specific key and value
+     * @param key integer key, defined as one of
+     * {@link ProvisioningManager#KEY_VOLTE_PROVISIONING_STATUS}
+     * {@link ProvisioningManager#KEY_VT_PROVISIONING_STATUS}
+     * {@link ProvisioningManager#KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE}
+     * {@link ProvisioningManager#KEY_EAB_PROVISIONING_STATUS}
+     * @param value in Integer format.
+     * @return the result of setting the configuration value, defined as one of
+     * {@link ImsConfigImplBase#CONFIG_RESULT_FAILED} or
+     * {@link ImsConfigImplBase#CONFIG_RESULT_SUCCESS} or
+     */
+    @VisibleForTesting
+    public int setProvisioningValue(int subId, int key, int value) {
+        log("setProvisioningValue");
+
+        int retVal = ImsConfigImplBase.CONFIG_RESULT_FAILED;
+        // check key value
+        if (!Arrays.stream(LOCAL_IMS_CONFIG_KEYS).anyMatch(keyValue -> keyValue == key)) {
+            log("not matched key " + key);
+            return ImsConfigImplBase.CONFIG_RESULT_UNKNOWN;
+        }
+
+        // check subId
+        int slotId = getSlotId(subId);
+        if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX || slotId >= mNumSlot) {
+            loge("Fail to retrieve slotId from subId");
+            return ImsConfigImplBase.CONFIG_RESULT_FAILED;
+        }
+
+        try {
+            if (key == KEY_EAB_PROVISIONING_STATUS) {
+                // set key and value to vendor ImsService for Rcs
+                retVal = mRcsFeatureListenersSlotMap.get(slotId)
+                        .setProvisioningValue(key, value);
+            } else {
+                // set key and value to vendor ImsService for MmTel
+                retVal = mMmTelFeatureListenersSlotMap.get(slotId)
+                        .setProvisioningValue(key, value);
+            }
+        } catch (NullPointerException e) {
+            loge("can not access FeatureListener to set provisioning value");
+            return ImsConfigImplBase.CONFIG_RESULT_FAILED;
+        }
+
+        // update and notify provisioning status changed capability and tech from key
+        updateCapabilityTechFromKey(subId, key, value);
+
+        return retVal;
+    }
+
+    /**
+     * get RCS provisioning status in specific key and value
+     * @param key integer key, defined as one of
+     * {@link ProvisioningManager#KEY_VOLTE_PROVISIONING_STATUS}
+     * {@link ProvisioningManager#KEY_VT_PROVISIONING_STATUS}
+     * {@link ProvisioningManager#KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE}
+     * {@link ProvisioningManager#KEY_EAB_PROVISIONING_STATUS}
+     * @return the result of setting the configuration value, defined as one of
+     * {@link ImsConfigImplBase#CONFIG_RESULT_FAILED} or
+     * {@link ImsConfigImplBase#CONFIG_RESULT_SUCCESS} or
+     * {@link ImsConfigImplBase#CONFIG_RESULT_UNKNOWN}
+     */
+    @VisibleForTesting
+    public int getProvisioningValue(int subId, int key) {
+        // check key value
+        if (!Arrays.stream(LOCAL_IMS_CONFIG_KEYS).anyMatch(keyValue -> keyValue == key)) {
+            log("not matched key " + key);
+            return ImsConfigImplBase.CONFIG_RESULT_UNKNOWN;
+        }
+
+        // check subId
+        int slotId = getSlotId(subId);
+        if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX || slotId >= mNumSlot) {
+            loge("Fail to retrieve slotId from subId");
+            return ImsConfigImplBase.CONFIG_RESULT_UNKNOWN;
+        }
+
+        // check data from ImsProvisioningLoader
+        int capability = getCapabilityFromKey(key);
+        int tech = getTechFromKey(key);
+        int result;
+        if (capability != INVALID_VALUE && tech != INVALID_VALUE) {
+            if (key == KEY_EAB_PROVISIONING_STATUS) {
+                result = mImsProvisioningLoader.getProvisioningStatus(subId, FEATURE_RCS,
+                        capability, tech);
+            } else {
+                result = mImsProvisioningLoader.getProvisioningStatus(subId, FEATURE_MMTEL,
+                        capability, tech);
+            }
+            if (result != ImsProvisioningLoader.STATUS_NOT_SET) {
+                log("getProvisioningValue from loader : key " + key + " result " + result);
+                return result;
+            }
+        }
+
+        // get data from ImsService, update it in ImsProvisioningLoader
+        if (key == KEY_EAB_PROVISIONING_STATUS) {
+            result = getRcsValueFromImsService(subId, capability);
+            if (result == ImsConfigImplBase.CONFIG_RESULT_UNKNOWN) {
+                logw("getProvisioningValue : fail to get data from ImsService capability"
+                        + capability);
+                return result;
+            }
+            log("getProvisioningValue from vendor : key " + key + " result " + result);
+
+            setAndNotifyRcsProvisioningValueForAllTech(subId, capability, getBoolValue(result));
+            return result;
+        } else {
+            result = getValueFromImsService(subId, capability, tech);
+            if (result == ImsConfigImplBase.CONFIG_RESULT_UNKNOWN) {
+                logw("getProvisioningValue : fail to get data from ImsService capability"
+                        + capability);
+                return result;
+            }
+            log("getProvisioningValue from vendor : key " + key + " result " + result);
+
+            setAndNotifyMmTelProvisioningValue(subId, capability, tech, getBoolValue(result));
+            return result;
+        }
+    }
+
+    /**
+     * get the handler
+     */
+    @VisibleForTesting
+    public Handler getHandler() {
+        return mHandler;
+    }
+
+    private boolean isProvisioningRequired(int subId, int capability, int tech, boolean isMmTel) {
+        int[] techArray;
+        techArray = getTechsFromCarrierConfig(subId, capability, isMmTel);
+        if (techArray == null) {
+            logw("isProvisioningRequired : getTechsFromCarrierConfig failed");
+            // not exist in CarrierConfig that means provisioning is not required
+            return false;
+        }
+
+        // compare with carrier config
+        if (Arrays.stream(techArray).anyMatch(keyValue -> keyValue == tech)) {
+            // existing same tech means provisioning required
+            return true;
+        }
+
+        log("isProvisioningRequired : not matched capability " + capability + " tech " + tech);
+        return false;
+    }
+
+    @VisibleForTesting
+    protected int[] getTechsFromCarrierConfig(int subId, int capability, boolean isMmTel) {
+        String featureKey;
+        String capabilityKey;
+        if (isMmTel) {
+            featureKey = CarrierConfigManager.Ims.KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE;
+            capabilityKey = KEYS_MMTEL_CAPABILITY.get(capability);
+        } else {
+            featureKey = CarrierConfigManager.Ims.KEY_RCS_REQUIRES_PROVISIONING_BUNDLE;
+            capabilityKey = KEYS_RCS_CAPABILITY.get(capability);
+        }
+
+        if (capabilityKey != null) {
+            PersistableBundle imsCarrierConfigs = mCarrierConfigManager.getConfigForSubId(subId);
+            if (imsCarrierConfigs == null) {
+                log("getTechsFromCarrierConfig : imsCarrierConfigs null");
+                return null;
+            }
+
+            PersistableBundle provisioningBundle =
+                    imsCarrierConfigs.getPersistableBundle(featureKey);
+            if (provisioningBundle == null) {
+                log("getTechsFromCarrierConfig : provisioningBundle null");
+                return null;
+            }
+
+            return provisioningBundle.getIntArray(capabilityKey);
+        }
+
+        return null;
+    }
+
+    private int getValueFromImsService(int subId, int capability, int tech) {
+        int config = ImsConfigImplBase.CONFIG_RESULT_UNKNOWN;
+
+        // operation is based on capability
+        switch (capability) {
+            case CAPABILITY_TYPE_VOICE:
+                int item = (tech == ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN)
+                        ? ProvisioningManager.KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE
+                        : ProvisioningManager.KEY_VOLTE_PROVISIONING_STATUS;
+                // read data from vendor ImsService
+                config = mMmTelFeatureListenersSlotMap.get(getSlotId(subId))
+                        .getProvisioningValue(item);
+                break;
+            case CAPABILITY_TYPE_VIDEO:
+                // read data from vendor ImsService
+                config = mMmTelFeatureListenersSlotMap.get(getSlotId(subId))
+                        .getProvisioningValue(ProvisioningManager.KEY_VT_PROVISIONING_STATUS);
+                break;
+            default:
+                log("Capability " + capability + " has been provisioning");
+                break;
+        }
+
+        return config;
+    }
+
+    private int getRcsValueFromImsService(int subId, int capability) {
+        int config = ImsConfigImplBase.CONFIG_RESULT_UNKNOWN;
+
+        if (capability == CAPABILITY_TYPE_PRESENCE_UCE) {
+            try {
+                config = mRcsFeatureListenersSlotMap.get(getSlotId(subId))
+                        .getProvisioningValue(ProvisioningManager.KEY_EAB_PROVISIONING_STATUS);
+            } catch (NullPointerException e) {
+                logw("can not access RcsFeatureListener");
+            }
+        } else {
+            log("Capability " + capability + " has been provisioning");
+        }
+
+        return config;
+    }
+
+    private void onSubscriptionsChanged() {
+        for (int index = 0; index < mMmTelFeatureListenersSlotMap.size(); index++) {
+            MmTelFeatureListener m = mMmTelFeatureListenersSlotMap.get(index);
+            m.setSubId(getSubId(index));
+        }
+        for (int index = 0; index < mRcsFeatureListenersSlotMap.size(); index++) {
+            RcsFeatureListener r = mRcsFeatureListenersSlotMap.get(index);
+            r.setSubId(getSubId(index));
+        }
+        for (int index = 0; index < mProvisioningCallbackManagersSlotMap.size(); index++) {
+            ProvisioningCallbackManager m = mProvisioningCallbackManagersSlotMap.get(index);
+            m.setSubId(getSubId(index));
+        }
+    }
+
+    private void  updateCapabilityTechFromKey(int subId, int key, int value) {
+        boolean isProvisioned = getBoolValue(value);
+        int capability = getCapabilityFromKey(key);
+        int tech = getTechFromKey(key);
+
+        if (capability == INVALID_VALUE || tech == INVALID_VALUE) {
+            logw("updateCapabilityTechFromKey : unknown key " + key);
+            return;
+        }
+
+        if (key == KEY_VOLTE_PROVISIONING_STATUS
+                || key == KEY_VT_PROVISIONING_STATUS
+                || key == KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE) {
+            setAndNotifyMmTelProvisioningValue(subId, capability, tech, isProvisioned);
+        }
+        if (key == KEY_EAB_PROVISIONING_STATUS) {
+            setAndNotifyRcsProvisioningValueForAllTech(subId, capability, isProvisioned);
+        }
+    }
+
+    private int getCapabilityFromKey(int key) {
+        int capability;
+        switch (key) {
+            case ProvisioningManager.KEY_VOLTE_PROVISIONING_STATUS:
+                // intentional fallthrough
+            case ProvisioningManager.KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE:
+                capability = CAPABILITY_TYPE_VOICE;
+                break;
+            case ProvisioningManager.KEY_VT_PROVISIONING_STATUS:
+                capability = CAPABILITY_TYPE_VIDEO;
+                break;
+            case ProvisioningManager.KEY_EAB_PROVISIONING_STATUS:
+                // default CAPABILITY_TYPE_PRESENCE_UCE used for KEY_EAB_PROVISIONING_STATUS
+                capability = CAPABILITY_TYPE_PRESENCE_UCE;
+                break;
+            default:
+                capability = INVALID_VALUE;
+                break;
+        }
+        return capability;
+    }
+
+    private int getTechFromKey(int key) {
+        int tech;
+        switch (key) {
+            case ProvisioningManager.KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE:
+                tech = ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN;
+                break;
+            case ProvisioningManager.KEY_VOLTE_PROVISIONING_STATUS:
+                // intentional fallthrough
+            case ProvisioningManager.KEY_VT_PROVISIONING_STATUS:
+                // intentional fallthrough
+            case ProvisioningManager.KEY_EAB_PROVISIONING_STATUS:
+                tech = ImsRegistrationImplBase.REGISTRATION_TECH_LTE;
+                break;
+            default:
+                tech = INVALID_VALUE;
+                break;
+        }
+        return tech;
+    }
+
+    private int getKeyFromCapability(int capability, int tech) {
+        int key = INVALID_VALUE;
+        if (capability == CAPABILITY_TYPE_VOICE && tech == REGISTRATION_TECH_IWLAN) {
+            key = ProvisioningManager.KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE;
+        } else if (capability == CAPABILITY_TYPE_VOICE && tech == REGISTRATION_TECH_LTE) {
+            key = ProvisioningManager.KEY_VOLTE_PROVISIONING_STATUS;
+        } else if (capability == CAPABILITY_TYPE_VIDEO && tech == REGISTRATION_TECH_LTE) {
+            key = ProvisioningManager.KEY_VT_PROVISIONING_STATUS;
+        }
+
+        return key;
+    }
+
+    protected int getSubId(int slotId) {
+        final int[] subIds = mSubscriptionManager.getSubscriptionIds(slotId);
+        int subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+        if (subIds != null && subIds.length >= 1) {
+            subId = subIds[0];
+        }
+
+        return subId;
+    }
+
+    protected int getSlotId(int subId) {
+        return mSubscriptionManager.getPhoneId(subId);
+    }
+
+    protected ImsConfig getImsConfig(ImsManager imsManager) throws ImsException {
+        return imsManager.getConfigInterface();
+    }
+
+    protected ImsConfig getImsConfig(IImsConfig iImsConfig) {
+        return new ImsConfig(iImsConfig);
+    }
+
+    private int getIntValue(boolean isProvisioned) {
+        return isProvisioned ? ProvisioningManager.PROVISIONING_VALUE_ENABLED
+                : ProvisioningManager.PROVISIONING_VALUE_DISABLED;
+    }
+
+    private boolean getBoolValue(int value) {
+        return value == ProvisioningManager.PROVISIONING_VALUE_ENABLED ? true : false;
+    }
+
+    private boolean setAndNotifyMmTelProvisioningValue(int subId, int capability, int tech,
+            boolean isProvisioned) {
+        boolean changed = mImsProvisioningLoader.setProvisioningStatus(subId, FEATURE_MMTEL,
+                capability, tech, isProvisioned);
+        // notify MmTel capability changed
+        if (changed) {
+            mHandler.sendMessage(mHandler.obtainMessage(EVENT_PROVISIONING_CAPABILITY_CHANGED,
+                    getSlotId(subId), 0, (Object) new FeatureProvisioningData(
+                            capability, tech, isProvisioned, /*isMmTel*/true)));
+        }
+
+        return changed;
+    }
+
+    private boolean setAndNotifyRcsProvisioningValue(int subId, int capability, int tech,
+            boolean isProvisioned) {
+        boolean isChanged = mImsProvisioningLoader.setProvisioningStatus(subId, FEATURE_RCS,
+                capability, tech, isProvisioned);
+
+        if (isChanged) {
+            int slotId = getSlotId(subId);
+
+            // notify RCS capability changed
+            mHandler.sendMessage(mHandler.obtainMessage(EVENT_PROVISIONING_CAPABILITY_CHANGED,
+                    slotId, 0, (Object) new FeatureProvisioningData(
+                            capability, tech, isProvisioned, /*isMmtel*/false)));
+        }
+
+        return isChanged;
+    }
+
+    private boolean setAndNotifyRcsProvisioningValueForAllTech(int subId, int capability,
+            boolean isProvisioned) {
+        boolean isChanged = false;
+
+        for (int tech : LOCAL_RADIO_TECHS) {
+            isChanged |= setAndNotifyRcsProvisioningValue(subId, capability, tech, isProvisioned);
+        }
+
+        return isChanged;
+    }
+
+    protected boolean isValidSubId(int subId) {
+        int slotId = getSlotId(subId);
+        if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX || slotId >= mNumSlot) {
+            return false;
+        }
+
+        return true;
+    }
+
+    private void log(String s) {
+        Rlog.d(TAG, s);
+    }
+
+    private void log(String prefix, int slotId, String s) {
+        Rlog.d(TAG, prefix + "[" + slotId + "] " + s);
+    }
+
+    private void logi(String prefix, int slotId, String s) {
+        Rlog.i(TAG, prefix + "[" + slotId + "] " + s);
+    }
+
+    private void logw(String s) {
+        Rlog.w(TAG, s);
+    }
+
+    private void logw(String prefix, int slotId, String s) {
+        Rlog.w(TAG, prefix + "[" + slotId + "] " + s);
+    }
+
+    private void loge(String s) {
+        Rlog.e(TAG, s);
+    }
+
+    private void loge(String prefix, int slotId, String s) {
+        Rlog.e(TAG, prefix + "[" + slotId + "] " + s);
+    }
+}
diff --git a/src/com/android/phone/ImsProvisioningLoader.java b/src/com/android/phone/ImsProvisioningLoader.java
new file mode 100644
index 0000000..1238b9a
--- /dev/null
+++ b/src/com/android/phone/ImsProvisioningLoader.java
@@ -0,0 +1,311 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.SharedPreferences;
+import android.os.PersistableBundle;
+import android.preference.PreferenceManager;
+import android.telephony.ims.ProvisioningManager;
+import android.telephony.ims.feature.ImsFeature;
+import android.telephony.ims.feature.MmTelFeature;
+import android.telephony.ims.stub.ImsRegistrationImplBase;
+import android.util.Log;
+import android.util.SparseArray;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+/**
+ * Provides a function to set/get Ims feature provisioning status in storage.
+ */
+public class ImsProvisioningLoader {
+    private static final String LOG_TAG = ImsProvisioningLoader.class.getSimpleName();
+
+    public static final int STATUS_NOT_SET = -1;
+    public static final int STATUS_NOT_PROVISIONED =
+            ProvisioningManager.PROVISIONING_VALUE_DISABLED;
+    public static final int STATUS_PROVISIONED =
+            ProvisioningManager.PROVISIONING_VALUE_ENABLED;
+
+    public static final int IMS_FEATURE_MMTEL = ImsFeature.FEATURE_MMTEL;
+    public static final int IMS_FEATURE_RCS = ImsFeature.FEATURE_RCS;
+
+    private static final String PROVISIONING_FILE_NAME_PREF = "imsprovisioningstatus_";
+    private static final String PREF_PROVISION_IMS_MMTEL_PREFIX = "provision_ims_mmtel_";
+
+    private Context mContext;
+    private SharedPreferences mTelephonySharedPreferences;
+    // key : sub Id, value : read from sub Id's xml and it's in-memory cache
+    private SparseArray<PersistableBundle> mSubIdBundleArray = new SparseArray<>();
+    private final Object mLock = new Object();
+
+    public ImsProvisioningLoader(Context context) {
+        mContext = context;
+        mTelephonySharedPreferences =
+                PreferenceManager.getDefaultSharedPreferences(context);
+    }
+
+    /**
+     * Get Ims feature provisioned status in storage
+     */
+    public int getProvisioningStatus(int subId, @ImsFeature.FeatureType int imsFeature,
+            int capability, @ImsRegistrationImplBase.ImsRegistrationTech int tech) {
+        initCache(subId);
+        return getImsProvisioningStatus(subId, imsFeature, tech,
+                capability);
+    }
+
+    /**
+     * Set Ims feature provisioned status in storage
+     */
+    public boolean setProvisioningStatus(int subId, @ImsFeature.FeatureType int imsFeature,
+            int capability, @ImsRegistrationImplBase.ImsRegistrationTech int tech,
+            boolean isProvisioned) {
+        initCache(subId);
+        return setImsFeatureProvisioning(subId, imsFeature, tech, capability,
+                isProvisioned);
+    }
+
+    private boolean isFileExist(int subId) {
+        File file = new File(mContext.getFilesDir(), getFileName(subId));
+        return file.exists();
+    }
+
+    private void initCache(int subId) {
+        synchronized (mLock) {
+            PersistableBundle subIdBundle = mSubIdBundleArray.get(subId, null);
+            if (subIdBundle != null) {
+                // initCache() has already been called for the subId
+                return;
+            }
+            if (isFileExist(subId)) {
+                subIdBundle = readSubIdBundleFromXml(subId);
+            } else {
+                // It should read the MMTEL capability cache as part of shared prefs and migrate
+                // over any configs for UT.
+                final int[] regTech = {ImsRegistrationImplBase.REGISTRATION_TECH_LTE,
+                        ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN,
+                        ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM,
+                        ImsRegistrationImplBase.REGISTRATION_TECH_NR};
+                subIdBundle = new PersistableBundle();
+                for (int tech : regTech) {
+                    int UtProvisioningStatus = getUTProvisioningStatus(subId, tech);
+                    logd("check UT provisioning status " + UtProvisioningStatus);
+
+                    if (STATUS_PROVISIONED == UtProvisioningStatus) {
+                        setProvisioningStatusToSubIdBundle(ImsFeature.FEATURE_MMTEL, tech,
+                                MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT, subIdBundle,
+                                UtProvisioningStatus);
+                    }
+                }
+                saveSubIdBundleToXml(subId, subIdBundle);
+            }
+            mSubIdBundleArray.put(subId, subIdBundle);
+        }
+    }
+
+    private int getImsProvisioningStatus(int subId, int imsFeature, int tech, int capability) {
+        PersistableBundle subIdBundle = null;
+        synchronized (mLock) {
+            subIdBundle = mSubIdBundleArray.get(subId, null);
+        }
+
+        return getProvisioningStatusFromSubIdBundle(imsFeature, tech,
+                capability, subIdBundle);
+    }
+
+    private boolean setImsFeatureProvisioning(int subId, int imsFeature, int tech, int capability,
+            boolean isProvisioned) {
+        synchronized (mLock) {
+            int preValue = getImsProvisioningStatus(subId, imsFeature, tech, capability);
+            int newValue = isProvisioned ? STATUS_PROVISIONED : STATUS_NOT_PROVISIONED;
+            if (preValue == newValue) {
+                logd("already stored provisioning status " + isProvisioned + " ImsFeature "
+                        + imsFeature + " tech " + tech + " capa " + capability);
+                return false;
+            }
+
+            PersistableBundle subIdBundle = mSubIdBundleArray.get(subId, null);
+            setProvisioningStatusToSubIdBundle(imsFeature, tech, capability, subIdBundle,
+                    newValue);
+            saveSubIdBundleToXml(subId, subIdBundle);
+        }
+        return true;
+    }
+
+    private int getProvisioningStatusFromSubIdBundle(int imsFeature, int tech,
+            int capability, PersistableBundle subIdBundle) {
+        // If it doesn't exist in xml, return STATUS_NOT_SET
+        if (subIdBundle == null || subIdBundle.isEmpty()) {
+            logd("xml is empty");
+            return STATUS_NOT_SET;
+        }
+
+        PersistableBundle regTechBundle = subIdBundle.getPersistableBundle(
+                String.valueOf(imsFeature));
+        if (regTechBundle == null) {
+            logd("ImsFeature " + imsFeature + " is not exist in xml");
+            return STATUS_NOT_SET;
+        }
+
+        PersistableBundle capabilityBundle = regTechBundle.getPersistableBundle(
+                String.valueOf(tech));
+        if (capabilityBundle == null) {
+            logd("RegistrationTech " + tech + " is not exist in xml");
+            return STATUS_NOT_SET;
+        }
+
+        return getIntValueFromBundle(String.valueOf(capability), capabilityBundle);
+    }
+
+    private void setProvisioningStatusToSubIdBundle(int imsFeature, int tech,
+            int capability, PersistableBundle subIdBundle, int newStatus) {
+        logd("set provisioning status " + newStatus + " ImsFeature "
+                + imsFeature + " tech " + tech + " capa " + capability);
+
+        PersistableBundle regTechBundle = subIdBundle.getPersistableBundle(
+                String.valueOf(imsFeature));
+        if (regTechBundle == null) {
+            regTechBundle = new PersistableBundle();
+            subIdBundle.putPersistableBundle(String.valueOf(imsFeature), regTechBundle);
+        }
+
+        PersistableBundle capabilityBundle = regTechBundle.getPersistableBundle(
+                String.valueOf(tech));
+        if (capabilityBundle == null) {
+            capabilityBundle = new PersistableBundle();
+            regTechBundle.putPersistableBundle(String.valueOf(tech), capabilityBundle);
+        }
+
+        capabilityBundle.putInt(String.valueOf(capability), newStatus);
+    }
+
+    // Default value is STATUS_NOT_SET
+    private int getIntValueFromBundle(String key, PersistableBundle bundle) {
+        int value = bundle.getInt(key, STATUS_NOT_SET);
+        logd("get value " + value);
+        return value;
+    }
+
+    // Return subIdBundle from imsprovisioningstatus_{subId}.xml
+    private PersistableBundle readSubIdBundleFromXml(int subId) {
+        String fileName = getFileName(subId);
+
+        PersistableBundle subIdBundles = new PersistableBundle();
+        File file = null;
+        FileInputStream inFile = null;
+        synchronized (mLock) {
+            try {
+                file = new File(mContext.getFilesDir(), fileName);
+                inFile = new FileInputStream(file);
+                subIdBundles = PersistableBundle.readFromStream(inFile);
+                inFile.close();
+            } catch (FileNotFoundException e) {
+                logd(e.toString());
+            } catch (IOException e) {
+                loge(e.toString());
+            } catch (RuntimeException e) {
+                loge(e.toString());
+            }
+        }
+
+        return subIdBundles;
+    }
+
+    private void saveSubIdBundleToXml(int subId, PersistableBundle subIdBundle) {
+        String fileName = getFileName(subId);
+
+        if (subIdBundle == null || subIdBundle.isEmpty()) {
+            logd("subIdBundle is empty");
+            return;
+        }
+
+        FileOutputStream outFile = null;
+        synchronized (mLock) {
+            try {
+                outFile = new FileOutputStream(new File(mContext.getFilesDir(), fileName));
+                subIdBundle.writeToStream(outFile);
+                outFile.flush();
+                outFile.close();
+            } catch (IOException e) {
+                loge(e.toString());
+            } catch (RuntimeException e) {
+                loge(e.toString());
+            }
+        }
+    }
+
+    private int getUTProvisioningStatus(int subId, int tech) {
+        return getMmTelCapabilityProvisioningBitfield(subId, tech) > 0 ? STATUS_PROVISIONED
+                : STATUS_NOT_SET;
+    }
+
+    /**
+     * @return the bitfield containing the MmTel provisioning for the provided subscription and
+     * technology. The bitfield should mirror the bitfield defined by
+     * {@link MmTelFeature.MmTelCapabilities.MmTelCapability}.
+     */
+    private int getMmTelCapabilityProvisioningBitfield(int subId, int tech) {
+        String key = getMmTelProvisioningKey(subId, tech);
+        // Default is no capabilities are provisioned.
+        return mTelephonySharedPreferences.getInt(key, 0 /*default*/);
+    }
+
+    private String getMmTelProvisioningKey(int subId, int tech) {
+        // Resulting key is provision_ims_mmtel_{subId}_{tech}
+        return PREF_PROVISION_IMS_MMTEL_PREFIX + subId + "_" + tech;
+    }
+
+    private String getFileName(int subId) {
+        // Resulting name is imsprovisioningstatus_{subId}.xml
+        return PROVISIONING_FILE_NAME_PREF + subId + ".xml";
+    }
+
+    @VisibleForTesting
+    void clear() {
+        synchronized (mLock) {
+            mSubIdBundleArray.clear();
+        }
+    }
+
+    @VisibleForTesting
+    void setProvisioningToXml(int subId, PersistableBundle subIdBundle,
+            String[] infoArray) {
+        for (String info : infoArray) {
+            String[] paramArray = info.split(",");
+            setProvisioningStatusToSubIdBundle(Integer.valueOf(paramArray[0]),
+                    Integer.valueOf(paramArray[1]), Integer.valueOf(paramArray[2]),
+                    subIdBundle, Integer.valueOf(paramArray[3]));
+        }
+        saveSubIdBundleToXml(subId, subIdBundle);
+    }
+
+    private void loge(String contents) {
+        Log.e(LOG_TAG, contents);
+    }
+
+    private void logd(String contents) {
+        Log.d(LOG_TAG, contents);
+    }
+
+}
diff --git a/src/com/android/phone/ImsRcsController.java b/src/com/android/phone/ImsRcsController.java
index 7d594d1..bf55764 100644
--- a/src/com/android/phone/ImsRcsController.java
+++ b/src/com/android/phone/ImsRcsController.java
@@ -17,9 +17,13 @@
 package com.android.phone;
 
 import android.Manifest;
+import android.app.compat.CompatChanges;
+import android.compat.annotation.ChangeId;
+import android.compat.annotation.EnabledAfter;
 import android.content.pm.PackageManager;
 import android.net.Uri;
 import android.os.Binder;
+import android.os.Build;
 import android.os.RemoteException;
 import android.os.ServiceSpecificException;
 import android.os.UserHandle;
@@ -73,6 +77,15 @@
     private Boolean mSingleRegistrationOverride;
 
     /**
+     * For apps targeting Android T and above, support the publishing state on APIs, such as
+     * {@code RcsUceAdapter#PUBLISH_STATE_PUBLISHING}
+     * @hide
+     */
+    @ChangeId
+    @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.S)
+    public static final long SUPPORT_PUBLISHING_STATE = 202894742;
+
+    /**
      * Initialize the singleton ImsRcsController instance.
      * This is only done once, at startup, from PhoneApp.onCreate().
      */
@@ -316,7 +329,9 @@
     @Override
     public @PublishState int getUcePublishState(int subId) {
         enforceReadPrivilegedPermission("getUcePublishState");
+        final int uid = Binder.getCallingUid();
         final long token = Binder.clearCallingIdentity();
+        boolean isSupportPublishingState = false;
         try {
             UceControllerManager uceCtrlManager = getRcsFeatureController(subId).getFeature(
                     UceControllerManager.class);
@@ -324,7 +339,10 @@
                 throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
                         "This subscription does not support UCE.");
             }
-            return uceCtrlManager.getUcePublishState();
+            if (CompatChanges.isChangeEnabled(SUPPORT_PUBLISHING_STATE, uid)) {
+                isSupportPublishingState = true;
+            }
+            return uceCtrlManager.getUcePublishState(isSupportPublishingState);
         } catch (ImsException e) {
             throw new ServiceSpecificException(e.getCode(), e.getMessage());
         } finally {
@@ -466,7 +484,9 @@
     @Override
     public void registerUcePublishStateCallback(int subId, IRcsUcePublishStateCallback c) {
         enforceReadPrivilegedPermission("registerUcePublishStateCallback");
+        final int uid = Binder.getCallingUid();
         final long token = Binder.clearCallingIdentity();
+        boolean isSupportPublishingState = false;
         try {
             UceControllerManager uceCtrlManager = getRcsFeatureController(subId).getFeature(
                     UceControllerManager.class);
@@ -474,7 +494,11 @@
                 throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
                         "This subscription does not support UCE.");
             }
-            uceCtrlManager.registerPublishStateCallback(c);
+
+            if (CompatChanges.isChangeEnabled(SUPPORT_PUBLISHING_STATE, uid)) {
+                isSupportPublishingState = true;
+            }
+            uceCtrlManager.registerPublishStateCallback(c, isSupportPublishingState);
         } catch (ImsException e) {
             throw new ServiceSpecificException(e.getCode(), e.getMessage());
         } finally {
@@ -582,6 +606,7 @@
             throw new SecurityException("Passed in PackageName can not be found on device");
         }
 
+        final int uid = Binder.getCallingUid();
         final long identity = Binder.clearCallingIdentity();
         SipTransportController transport = getRcsFeatureController(subId).getFeature(
                 SipTransportController.class);
@@ -590,7 +615,7 @@
                     "This subscription does not support the creation of SIP delegates");
         }
         try {
-            transport.createSipDelegate(subId, request, packageName, delegateState,
+            transport.createSipDelegate(subId, uid, request, packageName, delegateState,
                     delegateMessage);
         } catch (ImsException e) {
             throw new ServiceSpecificException(e.getCode(), e.getMessage());
diff --git a/src/com/android/phone/ImsStateCallbackController.java b/src/com/android/phone/ImsStateCallbackController.java
new file mode 100644
index 0000000..57c1787
--- /dev/null
+++ b/src/com/android/phone/ImsStateCallbackController.java
@@ -0,0 +1,1192 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.telephony.ims.ImsStateCallback.REASON_IMS_SERVICE_DISCONNECTED;
+import static android.telephony.ims.ImsStateCallback.REASON_IMS_SERVICE_NOT_READY;
+import static android.telephony.ims.ImsStateCallback.REASON_NO_IMS_SERVICE_CONFIGURED;
+import static android.telephony.ims.ImsStateCallback.REASON_SUBSCRIPTION_INACTIVE;
+import static android.telephony.ims.ImsStateCallback.REASON_UNKNOWN_PERMANENT_ERROR;
+import static android.telephony.ims.ImsStateCallback.REASON_UNKNOWN_TEMPORARY_ERROR;
+import static android.telephony.ims.feature.ImsFeature.FEATURE_MMTEL;
+import static android.telephony.ims.feature.ImsFeature.FEATURE_RCS;
+import static android.telephony.ims.feature.ImsFeature.STATE_READY;
+import static android.telephony.ims.feature.ImsFeature.STATE_UNAVAILABLE;
+
+import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_DISCONNECTED;
+import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_IMS_UNSUPPORTED;
+import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_NOT_READY;
+import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_SERVER_UNAVAILABLE;
+
+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.HandlerThread;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.Message;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyRegistryManager;
+import android.telephony.ims.feature.ImsFeature;
+import android.util.LocalLog;
+import android.util.Log;
+import android.util.SparseArray;
+
+import com.android.ims.FeatureConnector;
+import com.android.ims.ImsManager;
+import com.android.ims.RcsFeatureManager;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.IImsStateCallback;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConfigurationManager;
+import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.ims.ImsResolver;
+import com.android.internal.telephony.util.HandlerExecutor;
+import com.android.internal.util.IndentingPrintWriter;
+import com.android.services.telephony.rcs.RcsFeatureController;
+import com.android.telephony.Rlog;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.concurrent.Executor;
+
+/**
+ * Implementation of the controller managing {@link ImsStateCallback}s
+ */
+public class ImsStateCallbackController {
+    private static final String TAG = "ImsStateCallbackController";
+    private static final boolean VDBG = false;
+    private static final int LOG_SIZE = 50;
+
+    /**
+     * Create a FeatureConnector for this class to use to connect to an ImsManager.
+     */
+    @VisibleForTesting
+    public interface MmTelFeatureConnectorFactory {
+        /**
+         * Create a FeatureConnector for this class to use to connect to an ImsManager.
+         * @param listener will receive ImsManager instance.
+         * @param executor that the Listener callbacks will be called on.
+         * @return A FeatureConnector
+         */
+        FeatureConnector<ImsManager> create(Context context, int slotId,
+                String logPrefix, FeatureConnector.Listener<ImsManager> listener,
+                Executor executor);
+    }
+
+    /**
+     * Create a FeatureConnector for this class to use to connect to an RcsFeatureManager.
+     */
+    @VisibleForTesting
+    public interface RcsFeatureConnectorFactory {
+        /**
+         * Create a FeatureConnector for this class to use to connect to an RcsFeatureManager.
+         * @param listener will receive RcsFeatureManager instance.
+         * @param executor that the Listener callbacks will be called on.
+         * @return A FeatureConnector
+         */
+        FeatureConnector<RcsFeatureManager> create(Context context, int slotId,
+                FeatureConnector.Listener<RcsFeatureManager> listener,
+                Executor executor, String logPrefix);
+    }
+
+    /** Indicates that the state is not valid, used in ExternalRcsFeatureState only */
+    private static final int STATE_UNKNOWN = -1;
+
+    /** The unavailable reason of ImsFeature is not initialized */
+    private static final int NOT_INITIALIZED = -1;
+    /** The ImsFeature is available. */
+    private static final int AVAILABLE = 0;
+
+    private static final int EVENT_SUB_CHANGED = 1;
+    private static final int EVENT_REGISTER_CALLBACK = 2;
+    private static final int EVENT_UNREGISTER_CALLBACK = 3;
+    private static final int EVENT_CARRIER_CONFIG_CHANGED = 4;
+    private static final int EVENT_EXTERNAL_RCS_STATE_CHANGED = 5;
+    private static final int EVENT_MSIM_CONFIGURATION_CHANGE = 6;
+
+    private static ImsStateCallbackController sInstance;
+    private static final LocalLog sLocalLog = new LocalLog(LOG_SIZE);
+
+    /**
+     * get the instance
+     */
+    public static ImsStateCallbackController getInstance() {
+        synchronized (ImsStateCallbackController.class) {
+            return sInstance;
+        }
+    }
+
+    private final PhoneGlobals mApp;
+    private final Handler mHandler;
+    private final ImsResolver mImsResolver;
+    private final SparseArray<MmTelFeatureListener> mMmTelFeatureListeners = new SparseArray<>();
+    private final SparseArray<RcsFeatureListener> mRcsFeatureListeners = new SparseArray<>();
+
+    private final SubscriptionManager mSubscriptionManager;
+    private final TelephonyRegistryManager mTelephonyRegistryManager;
+    private MmTelFeatureConnectorFactory mMmTelFeatureFactory;
+    private RcsFeatureConnectorFactory mRcsFeatureFactory;
+
+    private HashMap<IBinder, CallbackWrapper> mWrappers = new HashMap<>();
+
+    private final Object mDumpLock = new Object();
+
+    private int mNumSlots;
+
+    private BroadcastReceiver mReceiver = 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);
+
+                if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
+                    loge("onReceive ACTION_CARRIER_CONFIG_CHANGED invalid slotId");
+                    return;
+                }
+
+                if (subId <= SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+                    loge("onReceive ACTION_CARRIER_CONFIG_CHANGED invalid subId");
+                    //subscription changed will be notified by mSubChangedListener
+                    return;
+                }
+
+                notifyCarrierConfigChanged(slotId);
+            }
+        }
+    };
+
+    private final SubscriptionManager.OnSubscriptionsChangedListener mSubChangedListener =
+            new SubscriptionManager.OnSubscriptionsChangedListener() {
+        @Override
+        public void onSubscriptionsChanged() {
+            if (!mHandler.hasMessages(EVENT_SUB_CHANGED)) {
+                mHandler.sendEmptyMessage(EVENT_SUB_CHANGED);
+            }
+        }
+    };
+
+    private final class MyHandler extends Handler {
+        MyHandler(Looper looper) {
+            super(looper);
+        }
+
+        @Override
+        public void handleMessage(Message msg) {
+            if (VDBG) logv("handleMessage: " + msg);
+            synchronized (mDumpLock) {
+                switch (msg.what) {
+                    case EVENT_SUB_CHANGED:
+                        onSubChanged();
+                        break;
+
+                    case EVENT_REGISTER_CALLBACK:
+                        onRegisterCallback((ImsStateCallbackController.CallbackWrapper) msg.obj);
+                        break;
+
+                    case EVENT_UNREGISTER_CALLBACK:
+                        onUnregisterCallback((IImsStateCallback) msg.obj);
+                        break;
+
+                    case EVENT_CARRIER_CONFIG_CHANGED:
+                        onCarrierConfigChanged(msg.arg1);
+                        break;
+
+                    case EVENT_EXTERNAL_RCS_STATE_CHANGED:
+                        if (msg.obj == null) break;
+                        onExternalRcsStateChanged((ExternalRcsFeatureState) msg.obj);
+                        break;
+
+                    case EVENT_MSIM_CONFIGURATION_CHANGE:
+                        AsyncResult result = (AsyncResult) msg.obj;
+                        Integer numSlots = (Integer) result.result;
+                        if (numSlots == null) {
+                            Log.w(TAG, "msim config change with null num slots");
+                            break;
+                        }
+                        updateFeatureControllerSize(numSlots);
+                        break;
+
+                    default:
+                        loge("Unhandled event " + msg.what);
+                }
+            }
+        }
+    }
+
+    private final class MmTelFeatureListener implements FeatureConnector.Listener<ImsManager> {
+        private FeatureConnector<ImsManager> mConnector;
+        private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+        private int mState = STATE_UNAVAILABLE;
+        private int mReason = REASON_IMS_SERVICE_DISCONNECTED;
+
+        /*
+         * Remember the last return of verifyImsMmTelConfigured().
+         * true means ImsResolver found an IMS package for FEATURE_MMTEL.
+         *
+         * mReason is updated through connectionUnavailable triggered by ImsResolver.
+         * mHasConfig is update through notifyConfigChanged triggered by mReceiver.
+         * mHasConfig can be a redundancy of (mReason == REASON_NO_IMS_SERVICE_CONFIGURED).
+         * However, when a carrier config changes, we are not sure the order
+         * of execution of connectionUnavailable and notifyConfigChanged.
+         * So, it's safe to use a separated state to retain it.
+         * We assume mHasConfig is true, until it's determined explicitly.
+         */
+        private boolean mHasConfig = true;
+
+        private int mSlotId = -1;
+        private String mLogPrefix = "";
+
+        MmTelFeatureListener(int slotId) {
+            mSlotId = slotId;
+            mLogPrefix = "[" + slotId + ", MMTEL] ";
+            if (VDBG) logv(mLogPrefix + "created");
+
+            mConnector = mMmTelFeatureFactory.create(
+                    mApp, slotId, TAG, this, new HandlerExecutor(mHandler));
+            mConnector.connect();
+        }
+
+        void setSubId(int subId) {
+            if (VDBG) logv(mLogPrefix + "setSubId mSubId=" + mSubId + ", subId=" + subId);
+            if (mSubId == subId) return;
+            logd(mLogPrefix + "setSubId changed subId=" + subId);
+
+            mSubId = subId;
+        }
+
+        void destroy() {
+            if (VDBG) logv(mLogPrefix + "destroy");
+            mConnector.disconnect();
+            mConnector = null;
+        }
+
+        @Override
+        public void connectionReady(ImsManager manager, int subId) {
+            logd(mLogPrefix + "connectionReady " + subId);
+
+            mSubId = subId;
+            if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) return;
+
+            mState = STATE_READY;
+            mReason = AVAILABLE;
+            mHasConfig = true;
+            onFeatureStateChange(mSubId, FEATURE_MMTEL, mState, mReason);
+        }
+
+        @Override
+        public void connectionUnavailable(int reason) {
+            logd(mLogPrefix + "connectionUnavailable reason=" + connectorReasonToString(reason));
+
+            reason = convertReasonType(reason);
+            if (mReason == reason) return;
+
+            connectionUnavailableInternal(reason);
+        }
+
+        private void connectionUnavailableInternal(int reason) {
+            mState = STATE_UNAVAILABLE;
+            mReason = reason;
+
+            /* If having no IMS package for MMTEL,
+             * dicard the reason except REASON_NO_IMS_SERVICE_CONFIGURED. */
+            if (!mHasConfig && reason != REASON_NO_IMS_SERVICE_CONFIGURED) return;
+
+            onFeatureStateChange(mSubId, FEATURE_MMTEL, mState, mReason);
+        }
+
+        void notifyConfigChanged(boolean hasConfig) {
+            if (mHasConfig == hasConfig) return;
+
+            logd(mLogPrefix + "notifyConfigChanged " + hasConfig);
+
+            mHasConfig = hasConfig;
+            if (hasConfig) {
+                // REASON_NO_IMS_SERVICE_CONFIGURED is already reported to the clients,
+                // since there is no configuration of IMS package for MMTEL.
+                // Now, a carrier configuration change is notified and
+                // the response from ImsResolver is changed from false to true.
+                if (mState != STATE_READY) {
+                    if (mReason == REASON_NO_IMS_SERVICE_CONFIGURED) {
+                        // In this case, notify clients the reason, REASON_DISCONNCTED,
+                        // to update the state.
+                        connectionUnavailable(UNAVAILABLE_REASON_DISCONNECTED);
+                    } else {
+                        // ImsResolver and ImsStateCallbackController run with different Looper.
+                        // In this case, FeatureConnectorListener is updated ahead of this.
+                        // But, connectionUnavailable didn't notify clients since mHasConfig is
+                        // false. So, notify clients here.
+                        connectionUnavailableInternal(mReason);
+                    }
+                }
+            } else {
+                // FeatureConnector doesn't report UNAVAILABLE_REASON_IMS_UNSUPPORTED,
+                // so report the reason here.
+                connectionUnavailable(UNAVAILABLE_REASON_IMS_UNSUPPORTED);
+            }
+        }
+
+        // called from onRegisterCallback
+        boolean notifyState(CallbackWrapper wrapper) {
+            if (VDBG) logv(mLogPrefix + "notifyState subId=" + wrapper.mSubId);
+
+            return wrapper.notifyState(mSubId, FEATURE_MMTEL, mState, mReason);
+        }
+
+        void dump(IndentingPrintWriter pw) {
+            pw.println("Listener={slotId=" + mSlotId
+                    + ", subId=" + mSubId
+                    + ", state=" + ImsFeature.STATE_LOG_MAP.get(mState)
+                    + ", reason=" + imsStateReasonToString(mReason)
+                    + ", hasConfig=" + mHasConfig
+                    + "}");
+        }
+    }
+
+    private final class RcsFeatureListener implements FeatureConnector.Listener<RcsFeatureManager> {
+        private FeatureConnector<RcsFeatureManager> mConnector;
+        private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+        private int mState = STATE_UNAVAILABLE;
+        private int mReason = REASON_IMS_SERVICE_DISCONNECTED;
+
+        /*
+         * Remember the last return of verifyImsMmTelConfigured().
+         * true means ImsResolver found an IMS package for FEATURE_RCS.
+         *
+         * mReason is updated through connectionUnavailable triggered by ImsResolver.
+         * mHasConfig is update through notifyConfigChanged triggered by mReceiver,
+         * and notifyExternalRcsState which triggered by TelephonyRcsService refers it.
+         * mHasConfig can be a redundancy of (mReason == REASON_NO_IMS_SERVICE_CONFIGURED).
+         * However, when a carrier config changes, we are not sure the order
+         * of execution of connectionUnavailable, notifyConfigChanged and notifyExternalRcsState.
+         * So, it's safe to use a separated state to retain it.
+         * We assume mHasConfig is true, until it's determined explicitly.
+         */
+        private boolean mHasConfig = true;
+
+        /*
+         * TelephonyRcsService doesn’t try to connect to RcsFeature if there is no active feature
+         * for a given subscription. The active features are declared by carrier configs and
+         * configuration resources. The APIs of ImsRcsManager and SipDelegateManager are available
+         * only when the RcsFeatureController has a STATE_READY state connection.
+         * This configuration is different from the configuration of IMS package for RCS.
+         * ImsStateCallbackController's FeatureConnectorListener can be STATE_READY state,
+         * even in case there is no active RCS feature. But Manager's APIs throws exception.
+         *
+         * For RCS, in addition to mHasConfig, the sate of TelephonyRcsService and
+         * RcsFeatureConnector will be traced to determine the state to be notified to clients.
+         */
+        private ExternalRcsFeatureState mExternalState = null;
+
+        private int mSlotId = -1;
+        private String mLogPrefix = "";
+
+        RcsFeatureListener(int slotId) {
+            mSlotId = slotId;
+            mLogPrefix = "[" + slotId + ", RCS] ";
+            if (VDBG) logv(mLogPrefix + "created");
+
+            mConnector = mRcsFeatureFactory.create(
+                    mApp, slotId, this, new HandlerExecutor(mHandler), TAG);
+            mConnector.connect();
+        }
+
+        void setSubId(int subId) {
+            if (VDBG) logv(mLogPrefix + "setSubId mSubId=" + mSubId + ", subId=" + subId);
+            if (mSubId == subId) return;
+            logd(mLogPrefix + "setSubId changed subId=" + subId);
+
+            mSubId = subId;
+        }
+
+        void destroy() {
+            if (VDBG) logv(mLogPrefix + "destroy");
+
+            mConnector.disconnect();
+            mConnector = null;
+        }
+
+        @Override
+        public void connectionReady(RcsFeatureManager manager, int subId) {
+            logd(mLogPrefix + "connectionReady " + subId);
+
+            mSubId = subId;
+            if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) return;
+
+            mState = STATE_READY;
+            mReason = AVAILABLE;
+            mHasConfig = true;
+
+            if (mExternalState != null && mExternalState.isReady()) {
+                onFeatureStateChange(mSubId, FEATURE_RCS, mState, mReason);
+            }
+        }
+
+        @Override
+        public void connectionUnavailable(int reason) {
+            logd(mLogPrefix + "connectionUnavailable reason=" + connectorReasonToString(reason));
+
+            reason = convertReasonType(reason);
+            if (mReason == reason) return;
+
+            connectionUnavailableInternal(reason);
+        }
+
+        private void connectionUnavailableInternal(int reason) {
+            mState = STATE_UNAVAILABLE;
+            mReason = reason;
+
+            /* If having no IMS package for RCS,
+             * dicard the reason except REASON_NO_IMS_SERVICE_CONFIGURED. */
+            if (!mHasConfig && reason != REASON_NO_IMS_SERVICE_CONFIGURED) return;
+
+            if (mExternalState == null && reason != REASON_NO_IMS_SERVICE_CONFIGURED) {
+                // Wait until TelephonyRcsService notifies its state.
+                return;
+            }
+
+            if (mExternalState != null && !mExternalState.hasActiveFeatures()) {
+                // notifyExternalRcsState has notified REASON_NO_IMS_SERVICE_CONFIGURED already
+                // ignore it
+                return;
+            }
+
+            if ((mExternalState != null && mExternalState.hasActiveFeatures())
+                    || mReason == REASON_NO_IMS_SERVICE_CONFIGURED) {
+                onFeatureStateChange(mSubId, FEATURE_RCS, mState, mReason);
+            }
+        }
+
+        void notifyConfigChanged(boolean hasConfig) {
+            if (mHasConfig == hasConfig) return;
+
+            logd(mLogPrefix + "notifyConfigChanged " + hasConfig);
+
+            mHasConfig = hasConfig;
+            if (hasConfig) {
+                // REASON_NO_IMS_SERVICE_CONFIGURED is already reported to the clients,
+                // since there is no configuration of IMS package for RCS.
+                // Now, a carrier configuration change is notified and
+                // the response from ImsResolver is changed from false to true.
+                if (mState != STATE_READY) {
+                    if (mReason == REASON_NO_IMS_SERVICE_CONFIGURED) {
+                        // In this case, notify clients the reason, REASON_DISCONNCTED,
+                        // to update the state.
+                        connectionUnavailable(UNAVAILABLE_REASON_DISCONNECTED);
+                    } else {
+                        // ImsResolver and ImsStateCallbackController run with different Looper.
+                        // In this case, FeatureConnectorListener is updated ahead of this.
+                        // But, connectionUnavailable didn't notify clients since mHasConfig is
+                        // false. So, notify clients here.
+                        connectionUnavailableInternal(mReason);
+                    }
+                }
+            } else {
+                // FeatureConnector doesn't report UNAVAILABLE_REASON_IMS_UNSUPPORTED,
+                // so report the reason here.
+                connectionUnavailable(UNAVAILABLE_REASON_IMS_UNSUPPORTED);
+            }
+        }
+
+        void notifyExternalRcsState(ExternalRcsFeatureState fs) {
+            if (VDBG) {
+                logv(mLogPrefix + "notifyExternalRcsState"
+                        + " state=" + (fs.mState == STATE_UNKNOWN
+                                ? "" : ImsFeature.STATE_LOG_MAP.get(fs.mState))
+                        + ", reason=" + imsStateReasonToString(fs.mReason));
+            }
+
+            ExternalRcsFeatureState oldFs = mExternalState;
+            // External state is from TelephonyRcsService while a feature is added or removed.
+            if (fs.mState == STATE_UNKNOWN) {
+                if (oldFs != null) fs.mState = oldFs.mState;
+                else fs.mState = STATE_UNAVAILABLE;
+            }
+
+            mExternalState = fs;
+
+            // No IMS package found.
+            // REASON_NO_IMS_SERVICE_CONFIGURED is notified to clients already.
+            if (!mHasConfig) return;
+
+            if (fs.hasActiveFeatures()) {
+                if (mState == STATE_READY) {
+                    if ((oldFs == null || !oldFs.isReady()) && fs.isReady()) {
+                        // it is waiting RcsFeatureConnector's notification.
+                        // notify clients here.
+                        onFeatureStateChange(mSubId, FEATURE_RCS, mState, mReason);
+                    } else if (!fs.isReady()) {
+                        // Wait RcsFeatureConnector's notification
+                    } else {
+                        // ignore duplicated notification
+                    }
+                }
+            } else {
+                // notify only once
+                if (oldFs == null || oldFs.hasActiveFeatures()) {
+                    if (mReason != REASON_NO_IMS_SERVICE_CONFIGURED) {
+                        onFeatureStateChange(
+                                mSubId, FEATURE_RCS, STATE_UNAVAILABLE,
+                                REASON_NO_IMS_SERVICE_CONFIGURED);
+                    }
+                } else {
+                    // ignore duplicated notification
+                }
+            }
+        }
+
+        // called from onRegisterCallback
+        boolean notifyState(CallbackWrapper wrapper) {
+            if (VDBG) logv(mLogPrefix + "notifyState subId=" + wrapper.mSubId);
+
+            if (mHasConfig) {
+                if (mExternalState == null) {
+                    // Wait until TelephonyRcsService notifies its state.
+                    return wrapper.notifyState(mSubId, FEATURE_RCS, STATE_UNAVAILABLE,
+                            REASON_IMS_SERVICE_DISCONNECTED);
+                } else if (!mExternalState.hasActiveFeatures()) {
+                    return wrapper.notifyState(mSubId, FEATURE_RCS, STATE_UNAVAILABLE,
+                            REASON_NO_IMS_SERVICE_CONFIGURED);
+                }
+            }
+
+            return wrapper.notifyState(mSubId, FEATURE_RCS, mState, mReason);
+        }
+
+        void dump(IndentingPrintWriter pw) {
+            pw.println("Listener={slotId=" + mSlotId
+                    + ", subId=" + mSubId
+                    + ", state=" + ImsFeature.STATE_LOG_MAP.get(mState)
+                    + ", reason=" + imsStateReasonToString(mReason)
+                    + ", hasConfig=" + mHasConfig
+                    + ", isReady=" + (mExternalState == null ? false : mExternalState.isReady())
+                    + ", hasFeatures=" + (mExternalState == null ? false
+                            : mExternalState.hasActiveFeatures())
+                    + "}");
+        }
+    }
+
+    /**
+     * A wrapper class for the callback registered
+     */
+    private static class CallbackWrapper {
+        private final int mSubId;
+        private final int mRequiredFeature;
+        private final IImsStateCallback mCallback;
+        private final IBinder mBinder;
+        private final String mCallingPackage;
+        private int mLastReason = NOT_INITIALIZED;
+
+        CallbackWrapper(int subId, int feature, IImsStateCallback callback,
+                String callingPackage) {
+            mSubId = subId;
+            mRequiredFeature = feature;
+            mCallback = callback;
+            mBinder = callback.asBinder();
+            mCallingPackage = callingPackage;
+        }
+
+        /**
+         * @return false when accessing callback binder throws an Exception.
+         * That means the callback binder is not valid any longer.
+         * The death of remote process can cause this.
+         * This instance shall be removed from the list.
+         */
+        boolean notifyState(int subId, int feature, int state, int reason) {
+            if (VDBG) {
+                logv("CallbackWrapper notifyState subId=" + subId
+                        + ", feature=" + ImsFeature.FEATURE_LOG_MAP.get(feature)
+                        + ", state=" + ImsFeature.STATE_LOG_MAP.get(state)
+                        + ", reason=" + imsStateReasonToString(reason));
+            }
+
+            try {
+                if (state == STATE_READY) {
+                    mCallback.onAvailable();
+                } else {
+                    mCallback.onUnavailable(reason);
+                }
+                mLastReason = reason;
+            } catch (Exception e) {
+                loge("CallbackWrapper notifyState e=" + e);
+                return false;
+            }
+
+            return true;
+        }
+
+        void notifyInactive() {
+            logd("CallbackWrapper notifyInactive subId=" + mSubId);
+
+            try {
+                mCallback.onUnavailable(REASON_SUBSCRIPTION_INACTIVE);
+            } catch (Exception e) {
+                // ignored
+            }
+        }
+
+        void dump(IndentingPrintWriter pw) {
+            pw.println("CallbackWrapper={subId=" + mSubId
+                    + ", feature=" + ImsFeature.FEATURE_LOG_MAP.get(mRequiredFeature)
+                    + ", reason=" + imsStateReasonToString(mLastReason)
+                    + ", pkg=" + mCallingPackage
+                    + "}");
+        }
+    }
+
+    private static class ExternalRcsFeatureState {
+        private int mSlotId;
+        private int mState = STATE_UNAVAILABLE;
+        private int mReason = NOT_INITIALIZED;
+
+        ExternalRcsFeatureState(int slotId, int state, int reason) {
+            mSlotId = slotId;
+            mState = state;
+            mReason = reason;
+        }
+
+        boolean hasActiveFeatures() {
+            return mReason != REASON_NO_IMS_SERVICE_CONFIGURED;
+        }
+
+        boolean isReady() {
+            return mState == STATE_READY;
+        }
+    }
+
+    /**
+     * create an instance
+     */
+    public static ImsStateCallbackController make(PhoneGlobals app, int numSlots) {
+        synchronized (ImsStateCallbackController.class) {
+            if (sInstance == null) {
+                logd("ImsStateCallbackController created");
+
+                HandlerThread handlerThread = new HandlerThread(TAG);
+                handlerThread.start();
+                sInstance = new ImsStateCallbackController(app, handlerThread.getLooper(), numSlots,
+                        ImsManager::getConnector, RcsFeatureManager::getConnector,
+                        ImsResolver.getInstance());
+            }
+        }
+        return sInstance;
+    }
+
+    @VisibleForTesting
+    public ImsStateCallbackController(PhoneGlobals app, Looper looper, int numSlots,
+            MmTelFeatureConnectorFactory mmTelFactory, RcsFeatureConnectorFactory rcsFactory,
+            ImsResolver imsResolver) {
+        mApp = app;
+        mHandler = new MyHandler(looper);
+        mImsResolver = imsResolver;
+        mSubscriptionManager = mApp.getSystemService(SubscriptionManager.class);
+        mTelephonyRegistryManager = mApp.getSystemService(TelephonyRegistryManager.class);
+        mMmTelFeatureFactory = mmTelFactory;
+        mRcsFeatureFactory = rcsFactory;
+
+        updateFeatureControllerSize(numSlots);
+
+        mTelephonyRegistryManager.addOnSubscriptionsChangedListener(
+                mSubChangedListener, mSubChangedListener.getHandlerExecutor());
+
+        PhoneConfigurationManager.registerForMultiSimConfigChange(mHandler,
+                EVENT_MSIM_CONFIGURATION_CHANGE, null);
+
+        mApp.registerReceiver(mReceiver, new IntentFilter(
+                CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED));
+
+        onSubChanged();
+    }
+
+    /**
+     * 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) {
+        if (mNumSlots != newNumSlots) {
+            logd("updateFeatures: oldSlots=" + mNumSlots
+                    + ", newNumSlots=" + newNumSlots);
+            if (mNumSlots < newNumSlots) {
+                for (int i = mNumSlots; i < newNumSlots; i++) {
+                    MmTelFeatureListener m = new MmTelFeatureListener(i);
+                    mMmTelFeatureListeners.put(i, m);
+                    RcsFeatureListener r = new RcsFeatureListener(i);
+                    mRcsFeatureListeners.put(i, r);
+                }
+            } else {
+                for (int i = (mNumSlots - 1); i > (newNumSlots - 1); i--) {
+                    MmTelFeatureListener m = mMmTelFeatureListeners.get(i);
+                    if (m != null) {
+                        mMmTelFeatureListeners.remove(i);
+                        m.destroy();
+                    }
+                    RcsFeatureListener r = mRcsFeatureListeners.get(i);
+                    if (r != null) {
+                        mRcsFeatureListeners.remove(i);
+                        r.destroy();
+                    }
+                }
+            }
+        }
+        mNumSlots = newNumSlots;
+    }
+
+    /**
+     * Dependencies for testing.
+     */
+    @VisibleForTesting
+    public void onSubChanged() {
+        for (int i = 0; i < mMmTelFeatureListeners.size(); i++) {
+            MmTelFeatureListener l = mMmTelFeatureListeners.valueAt(i);
+            l.setSubId(getSubId(i));
+        }
+
+        for (int i = 0; i < mRcsFeatureListeners.size(); i++) {
+            RcsFeatureListener l = mRcsFeatureListeners.valueAt(i);
+            l.setSubId(getSubId(i));
+        }
+
+        if (mWrappers.size() == 0) return;
+
+        ArrayList<IBinder> inactiveCallbacks = new ArrayList<>();
+        final int[] activeSubs = mSubscriptionManager.getActiveSubscriptionIdList();
+
+        if (VDBG) logv("onSubChanged activeSubs=" + Arrays.toString(activeSubs));
+
+        // Remove callbacks for inactive subscriptions
+        for (IBinder binder : mWrappers.keySet()) {
+            CallbackWrapper wrapper = mWrappers.get(binder);
+            if (wrapper != null) {
+                if (!isActive(activeSubs, wrapper.mSubId)) {
+                    // inactive subscription
+                    inactiveCallbacks.add(binder);
+                }
+            } else {
+                // unexpected, remove it
+                inactiveCallbacks.add(binder);
+            }
+        }
+        removeInactiveCallbacks(inactiveCallbacks, "onSubChanged");
+    }
+
+    private void onFeatureStateChange(int subId, int feature, int state, int reason) {
+        if (VDBG) {
+            logv("onFeatureStateChange subId=" + subId
+                    + ", feature=" + ImsFeature.FEATURE_LOG_MAP.get(feature)
+                    + ", state=" + ImsFeature.STATE_LOG_MAP.get(state)
+                    + ", reason=" + imsStateReasonToString(reason));
+        }
+
+        ArrayList<IBinder> inactiveCallbacks = new ArrayList<>();
+        mWrappers.values().forEach(wrapper -> {
+            if (subId == wrapper.mSubId
+                    && feature == wrapper.mRequiredFeature
+                    && !wrapper.notifyState(subId, feature, state, reason)) {
+                // callback has exception, remove it
+                inactiveCallbacks.add(wrapper.mBinder);
+            }
+        });
+        removeInactiveCallbacks(inactiveCallbacks, "onFeatureStateChange");
+    }
+
+    private void onRegisterCallback(CallbackWrapper wrapper) {
+        if (wrapper == null) return;
+
+        if (VDBG) logv("onRegisterCallback before size=" + mWrappers.size());
+        if (VDBG) {
+            logv("onRegisterCallback subId=" + wrapper.mSubId
+                    + ", feature=" + wrapper.mRequiredFeature);
+        }
+
+        // Not sure the following case can happen or not:
+        // step1) Subscription changed
+        // step2) ImsStateCallbackController not processed onSubChanged yet
+        // step3) Client registers with a strange subId
+        // The validity of the subId is checked PhoneInterfaceManager#registerImsStateCallback.
+        // So, register the wrapper here before trying to notifyState.
+        // TODO: implement the recovery for this case, notifying the current reson, in onSubChanged
+        mWrappers.put(wrapper.mBinder, wrapper);
+
+        if (wrapper.mRequiredFeature == FEATURE_MMTEL) {
+            for (int i = 0; i < mMmTelFeatureListeners.size(); i++) {
+                if (wrapper.mSubId == getSubId(i)) {
+                    MmTelFeatureListener l = mMmTelFeatureListeners.valueAt(i);
+                    if (!l.notifyState(wrapper)) {
+                        mWrappers.remove(wrapper.mBinder);
+                    }
+                    break;
+                }
+            }
+        } else if (wrapper.mRequiredFeature == FEATURE_RCS) {
+            for (int i = 0; i < mRcsFeatureListeners.size(); i++) {
+                if (wrapper.mSubId == getSubId(i)) {
+                    RcsFeatureListener l = mRcsFeatureListeners.valueAt(i);
+                    if (!l.notifyState(wrapper)) {
+                        mWrappers.remove(wrapper.mBinder);
+                    }
+                    break;
+                }
+            }
+        }
+
+        if (VDBG) logv("onRegisterCallback after size=" + mWrappers.size());
+    }
+
+    private void onUnregisterCallback(IImsStateCallback cb) {
+        if (cb == null) return;
+        mWrappers.remove(cb.asBinder());
+    }
+
+    private void onCarrierConfigChanged(int slotId) {
+        if (slotId >= mNumSlots) {
+            logd("onCarrierConfigChanged invalid slotId "
+                    + slotId + ", mNumSlots=" + mNumSlots);
+            return;
+        }
+
+        logv("onCarrierConfigChanged slotId=" + slotId);
+
+        boolean hasConfig = verifyImsMmTelConfigured(slotId);
+        if (slotId < mMmTelFeatureListeners.size()) {
+            MmTelFeatureListener listener = mMmTelFeatureListeners.valueAt(slotId);
+            listener.notifyConfigChanged(hasConfig);
+        }
+
+        hasConfig = verifyImsRcsConfigured(slotId);
+        if (slotId < mRcsFeatureListeners.size()) {
+            RcsFeatureListener listener = mRcsFeatureListeners.valueAt(slotId);
+            listener.notifyConfigChanged(hasConfig);
+        }
+    }
+
+    private void onExternalRcsStateChanged(ExternalRcsFeatureState fs) {
+        logv("onExternalRcsStateChanged slotId=" + fs.mSlotId
+                + ", state=" + (fs.mState == STATE_UNKNOWN
+                        ? "" : ImsFeature.STATE_LOG_MAP.get(fs.mState))
+                + ", reason=" + imsStateReasonToString(fs.mReason));
+
+        RcsFeatureListener listener = mRcsFeatureListeners.get(fs.mSlotId);
+        if (listener != null) {
+            listener.notifyExternalRcsState(fs);
+        } else {
+            // unexpected state
+            loge("onExternalRcsStateChanged slotId=" + fs.mSlotId + ", no listener.");
+        }
+    }
+
+    /**
+     * Interface to be notified from TelephonyRcsSerice and RcsFeatureController
+     *
+     * @param ready true if feature's state is STATE_READY. Valid only when it is true.
+     * @param hasActiveFeatures true if the RcsFeatureController has active features.
+     */
+    public void notifyExternalRcsStateChanged(
+            int slotId, boolean ready, boolean hasActiveFeatures) {
+        int state = STATE_UNKNOWN;
+        int reason = REASON_IMS_SERVICE_DISCONNECTED;
+
+        if (ready) {
+            // From RcsFeatureController
+            state = STATE_READY;
+            reason = AVAILABLE;
+        } else if (!hasActiveFeatures) {
+            // From TelephonyRcsService
+            reason = REASON_NO_IMS_SERVICE_CONFIGURED;
+            state = STATE_UNAVAILABLE;
+        } else {
+            // From TelephonyRcsService
+            // TelephonyRcsService doesn't know the exact state of FeatureConnection.
+            // Only when there is no feature, we can assume the state.
+        }
+
+        if (VDBG) {
+            logv("notifyExternalRcsStateChanged slotId=" + slotId
+                    + ", ready=" + ready
+                    + ", hasActiveFeatures=" + hasActiveFeatures);
+        }
+
+        ExternalRcsFeatureState fs = new ExternalRcsFeatureState(slotId, state, reason);
+        mHandler.sendMessage(mHandler.obtainMessage(EVENT_EXTERNAL_RCS_STATE_CHANGED, fs));
+    }
+
+    /**
+     * Notifies carrier configuration has changed.
+     */
+    @VisibleForTesting
+    public void notifyCarrierConfigChanged(int slotId) {
+        if (VDBG) logv("notifyCarrierConfigChanged slotId=" + slotId);
+        mHandler.sendMessage(mHandler.obtainMessage(EVENT_CARRIER_CONFIG_CHANGED, slotId, 0));
+    }
+    /**
+     * Register IImsStateCallback
+     *
+     * @param feature for which state is changed, ImsFeature.FEATURE_*
+     */
+    public void registerImsStateCallback(int subId, int feature, IImsStateCallback cb,
+            String callingPackage) {
+        if (VDBG) {
+            logv("registerImsStateCallback subId=" + subId
+                    + ", feature=" + feature + ", pkg=" + callingPackage);
+        }
+
+        CallbackWrapper wrapper = new CallbackWrapper(subId, feature, cb, callingPackage);
+        mHandler.sendMessage(mHandler.obtainMessage(EVENT_REGISTER_CALLBACK, wrapper));
+    }
+
+    /**
+     * Unegister previously registered callback
+     */
+    public void unregisterImsStateCallback(IImsStateCallback cb) {
+        if (VDBG) logv("unregisterImsStateCallback");
+
+        mHandler.sendMessage(mHandler.obtainMessage(EVENT_UNREGISTER_CALLBACK, cb));
+    }
+
+    private void removeInactiveCallbacks(
+            ArrayList<IBinder> inactiveCallbacks, String message) {
+        if (inactiveCallbacks == null || inactiveCallbacks.size() == 0) return;
+
+        if (VDBG) {
+            logv("removeInactiveCallbacks size="
+                    + inactiveCallbacks.size() + " from " + message);
+        }
+
+        for (IBinder binder : inactiveCallbacks) {
+            CallbackWrapper wrapper = mWrappers.get(binder);
+            if (wrapper != null) {
+                // Send the reason REASON_SUBSCRIPTION_INACTIVE to the client
+                wrapper.notifyInactive();
+                mWrappers.remove(binder);
+            }
+        }
+        inactiveCallbacks.clear();
+    }
+
+    private int getSubId(int slotId) {
+        Phone phone = mPhoneFactoryProxy.getPhone(slotId);
+        if (phone != null) return phone.getSubId();
+        return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+    }
+
+    private static boolean isActive(final int[] activeSubs, int subId) {
+        for (int i : activeSubs) {
+            if (i == subId) return true;
+        }
+        return false;
+    }
+
+    private static int convertReasonType(int reason) {
+        switch(reason) {
+            case UNAVAILABLE_REASON_NOT_READY:
+                return REASON_IMS_SERVICE_NOT_READY;
+            case UNAVAILABLE_REASON_IMS_UNSUPPORTED:
+                return REASON_NO_IMS_SERVICE_CONFIGURED;
+            default:
+                break;
+        }
+
+        return REASON_IMS_SERVICE_DISCONNECTED;
+    }
+
+    private boolean verifyImsMmTelConfigured(int slotId) {
+        boolean ret = false;
+        if (mImsResolver == null) {
+            loge("verifyImsMmTelConfigured mImsResolver is null");
+        } else {
+            ret = mImsResolver.isImsServiceConfiguredForFeature(slotId, FEATURE_MMTEL);
+        }
+        if (VDBG) logv("verifyImsMmTelConfigured slotId=" + slotId + ", ret=" + ret);
+        return ret;
+    }
+
+    private boolean verifyImsRcsConfigured(int slotId) {
+        boolean ret = false;
+        if (mImsResolver == null) {
+            loge("verifyImsRcsConfigured mImsResolver is null");
+        } else {
+            ret = mImsResolver.isImsServiceConfiguredForFeature(slotId, FEATURE_RCS);
+        }
+        if (VDBG) logv("verifyImsRcsConfigured slotId=" + slotId + ", ret=" + ret);
+        return ret;
+    }
+
+    private static String connectorReasonToString(int reason) {
+        switch(reason) {
+            case UNAVAILABLE_REASON_DISCONNECTED:
+                return "DISCONNECTED";
+            case UNAVAILABLE_REASON_NOT_READY:
+                return "NOT_READY";
+            case UNAVAILABLE_REASON_IMS_UNSUPPORTED:
+                return "IMS_UNSUPPORTED";
+            case UNAVAILABLE_REASON_SERVER_UNAVAILABLE:
+                return "SERVER_UNAVAILABLE";
+            default:
+                break;
+        }
+        return "";
+    }
+
+    private static String imsStateReasonToString(int reason) {
+        switch(reason) {
+            case AVAILABLE:
+                return "READY";
+            case REASON_UNKNOWN_TEMPORARY_ERROR:
+                return "UNKNOWN_TEMPORARY_ERROR";
+            case REASON_UNKNOWN_PERMANENT_ERROR:
+                return "UNKNOWN_PERMANENT_ERROR";
+            case REASON_IMS_SERVICE_DISCONNECTED:
+                return "IMS_SERVICE_DISCONNECTED";
+            case REASON_NO_IMS_SERVICE_CONFIGURED:
+                return "NO_IMS_SERVICE_CONFIGURED";
+            case REASON_SUBSCRIPTION_INACTIVE:
+                return "SUBSCRIPTION_INACTIVE";
+            case REASON_IMS_SERVICE_NOT_READY:
+                return "IMS_SERVICE_NOT_READY";
+            default:
+                break;
+        }
+        return "";
+    }
+
+    /**
+     * PhoneFactory Dependencies for testing.
+     */
+    @VisibleForTesting
+    public interface PhoneFactoryProxy {
+        /**
+         * Override getPhone for testing.
+         */
+        Phone getPhone(int index);
+    }
+
+    private PhoneFactoryProxy mPhoneFactoryProxy = new PhoneFactoryProxy() {
+        @Override
+        public Phone getPhone(int index) {
+            return PhoneFactory.getPhone(index);
+        }
+    };
+
+    private void release() {
+        if (VDBG) logv("release");
+
+        mTelephonyRegistryManager.removeOnSubscriptionsChangedListener(mSubChangedListener);
+        mApp.unregisterReceiver(mReceiver);
+
+        for (int i = 0; i < mMmTelFeatureListeners.size(); i++) {
+            mMmTelFeatureListeners.valueAt(i).destroy();
+        }
+        mMmTelFeatureListeners.clear();
+
+        for (int i = 0; i < mRcsFeatureListeners.size(); i++) {
+            mRcsFeatureListeners.valueAt(i).destroy();
+        }
+        mRcsFeatureListeners.clear();
+    }
+
+    /**
+     * destroy the instance
+     */
+    @VisibleForTesting
+    public void destroy() {
+        if (VDBG) logv("destroy it");
+
+        release();
+        mHandler.getLooper().quit();
+    }
+
+    /**
+     * get the handler
+     */
+    @VisibleForTesting
+    public Handler getHandler() {
+        return mHandler;
+    }
+
+    /**
+     * Determine whether the callback is registered or not
+     */
+    @VisibleForTesting
+    public boolean isRegistered(IImsStateCallback cb) {
+        if (cb == null) return false;
+        return mWrappers.containsKey(cb.asBinder());
+    }
+
+    /**
+     * Dump this instance into a readable format for dumpsys usage.
+     */
+    public void dump(IndentingPrintWriter pw) {
+        pw.increaseIndent();
+        synchronized (mDumpLock) {
+            pw.println("CallbackWrappers:");
+            pw.increaseIndent();
+            mWrappers.values().forEach(wrapper -> wrapper.dump(pw));
+            pw.decreaseIndent();
+            pw.println("MmTelFeatureListeners:");
+            pw.increaseIndent();
+            for (int i = 0; i < mNumSlots; i++) {
+                MmTelFeatureListener l = mMmTelFeatureListeners.get(i);
+                if (l == null) continue;
+                l.dump(pw);
+            }
+            pw.decreaseIndent();
+            pw.println("RcsFeatureListeners:");
+            pw.increaseIndent();
+            for (int i = 0; i < mNumSlots; i++) {
+                RcsFeatureListener l = mRcsFeatureListeners.get(i);
+                if (l == null) continue;
+                l.dump(pw);
+            }
+            pw.decreaseIndent();
+            pw.println("Most recent logs:");
+            pw.increaseIndent();
+            sLocalLog.dump(pw);
+            pw.decreaseIndent();
+        }
+        pw.decreaseIndent();
+    }
+
+    private static void logv(String msg) {
+        Rlog.d(TAG, msg);
+    }
+
+    private static void logd(String msg) {
+        Rlog.d(TAG, msg);
+        sLocalLog.log(msg);
+    }
+
+    private static void loge(String msg) {
+        Rlog.e(TAG, msg);
+        sLocalLog.log(msg);
+    }
+}
diff --git a/src/com/android/phone/NotificationMgr.java b/src/com/android/phone/NotificationMgr.java
index fb45f4c..f2641a1 100644
--- a/src/com/android/phone/NotificationMgr.java
+++ b/src/com/android/phone/NotificationMgr.java
@@ -567,8 +567,6 @@
 
             Intent intent = new Intent(TelecomManager.ACTION_SHOW_CALL_SETTINGS);
             intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
-            intent.setPackage(mContext.getResources().getString(
-                    R.string.call_settings_package_name));
             SubscriptionInfoHelper.addExtrasToIntent(
                     intent, mSubscriptionManager.getActiveSubscriptionInfo(subId));
             builder.setContentIntent(PendingIntent.getActivity(mContext, subId /* requestCode */,
diff --git a/src/com/android/phone/PhoneDisplayMessage.java b/src/com/android/phone/PhoneDisplayMessage.java
index 199fbb8..be7fc7f 100644
--- a/src/com/android/phone/PhoneDisplayMessage.java
+++ b/src/com/android/phone/PhoneDisplayMessage.java
@@ -68,7 +68,7 @@
         // 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.
-        sDisplayMessageDialog = new AlertDialog.Builder(context)
+        sDisplayMessageDialog = FrameworksUtils.makeAlertDialogBuilder(context)
                 .setIcon(android.R.drawable.ic_dialog_info)
                 .setTitle(title)
                 .setMessage(msg)
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 2535365..426c473 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -31,7 +31,6 @@
 import android.media.AudioManager;
 import android.net.ConnectivityManager;
 import android.net.Uri;
-import android.net.sip.SipManager;
 import android.os.AsyncResult;
 import android.os.Bundle;
 import android.os.Handler;
@@ -39,7 +38,6 @@
 import android.os.PersistableBundle;
 import android.os.PowerManager;
 import android.os.SystemProperties;
-import android.os.UserManager;
 import android.preference.PreferenceManager;
 import android.provider.Settings;
 import android.sysprop.TelephonyProperties;
@@ -68,19 +66,18 @@
 import com.android.internal.telephony.TelephonyCapabilities;
 import com.android.internal.telephony.TelephonyComponentFactory;
 import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.telephony.data.DataEvaluation.DataDisallowedReason;
 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.telephony.imsphone.ImsPhone;
 import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
-import com.android.internal.telephony.uicc.UiccCard;
+import com.android.internal.telephony.uicc.UiccPort;
 import com.android.internal.telephony.uicc.UiccProfile;
 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;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -124,7 +121,6 @@
     private static final int EVENT_DATA_ROAMING_CONNECTED = 11;
     private static final int EVENT_DATA_ROAMING_OK = 12;
     private static final int EVENT_UNSOL_CDMA_INFO_RECORD = 13;
-    private static final int EVENT_RESTART_SIP = 14;
     private static final int EVENT_DATA_ROAMING_SETTINGS_CHANGED = 15;
     private static final int EVENT_MOBILE_DATA_SETTINGS_CHANGED = 16;
     private static final int EVENT_CARRIER_CONFIG_CHANGED = 17;
@@ -155,11 +151,12 @@
 
     CallManager mCM;
     CallNotifier notifier;
-    CallerInfoCache callerInfoCache;
     NotificationMgr notificationMgr;
     TelephonyRcsService mTelephonyRcsService;
     public PhoneInterfaceManager phoneMgr;
     public ImsRcsController imsRcsController;
+    public ImsStateCallbackController mImsStateCallbackController;
+    public ImsProvisioningController mImsProvisioningController;
     CarrierConfigLoader configLoader;
 
     private Phone phoneInEcm;
@@ -204,8 +201,6 @@
 
     // Broadcast receiver for various intent broadcasts (see onCreate())
     private final BroadcastReceiver mReceiver = new PhoneAppBroadcastReceiver();
-    // Broadcast receiver for SIP based intents (see onCreate())
-    private final SipReceiver mSipReceiver = new SipReceiver();
 
     private final CarrierVvmPackageInstalledReceiver mCarrierVvmPackageInstalledReceiver =
             new CarrierVvmPackageInstalledReceiver();
@@ -242,13 +237,13 @@
 
         // if passed in subType is unknown, retrieve it here.
         if (subType == -1) {
-            final UiccCard uiccCard = phone.getUiccCard();
-            if (uiccCard == null) {
+            final UiccPort uiccPort = phone.getUiccPort();
+            if (uiccPort == null) {
                 Log.e(LOG_TAG,
-                        "handleSimLock: uiccCard for phone " + phone.getPhoneId() + " is null");
+                        "handleSimLock: uiccPort for phone " + phone.getPhoneId() + " is null");
                 return;
             }
-            final UiccProfile uiccProfile = uiccCard.getUiccProfile();
+            final UiccProfile uiccProfile = uiccPort.getUiccProfile();
             if (uiccProfile == null) {
                 Log.e(LOG_TAG,
                         "handleSimLock: uiccProfile for phone " + phone.getPhoneId() + " is null");
@@ -334,17 +329,6 @@
                 case EVENT_UNSOL_CDMA_INFO_RECORD:
                     //TODO: handle message here;
                     break;
-                case EVENT_RESTART_SIP:
-                    // This should only run if the Phone process crashed and was restarted. We do
-                    // 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) sMe.getSystemService(Context.USER_SERVICE);
-                    if (userManager != null && userManager.isUserUnlocked()) {
-                        SipUtil.startSipService();
-                    }
-                    break;
                 case EVENT_DATA_ROAMING_SETTINGS_CHANGED:
                 case EVENT_MOBILE_DATA_SETTINGS_CHANGED:
                     updateDataRoamingStatus();
@@ -442,9 +426,6 @@
             // status bar icons and control other status bar behavior.
             notificationMgr = NotificationMgr.init(this);
 
-            // If PhoneGlobals has crashed and is being restarted, then restart.
-            mHandler.sendEmptyMessage(EVENT_RESTART_SIP);
-
             // Create an instance of CdmaPhoneCallState and initialize it to IDLE
             cdmaPhoneCallState = new CdmaPhoneCallState();
             cdmaPhoneCallState.CdmaPhoneCallStateInit();
@@ -458,21 +439,19 @@
 
             mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
 
-            // Create the CallerInfoCache singleton, which remembers custom ring tone and
-            // send-to-voicemail settings.
-            //
-            // The asynchronous caching will start just after this call.
-            callerInfoCache = CallerInfoCache.init(this);
-
             phoneMgr = PhoneInterfaceManager.init(this);
 
             imsRcsController = ImsRcsController.init(this);
 
             if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS)) {
+                mImsStateCallbackController =
+                        ImsStateCallbackController.make(this, PhoneFactory.getPhones().length);
                 mTelephonyRcsService = new TelephonyRcsService(this,
                         PhoneFactory.getPhones().length);
                 mTelephonyRcsService.initialize();
                 imsRcsController.setRcsService(mTelephonyRcsService);
+                mImsProvisioningController =
+                        ImsProvisioningController.make(this, PhoneFactory.getPhones().length);
             }
 
             configLoader = CarrierConfigLoader.init(this);
@@ -489,8 +468,12 @@
             mCM.registerForMmiComplete(mHandler, MMI_COMPLETE, null);
 
             // Initialize cell status using current airplane mode.
-            handleAirplaneModeChange(this, Settings.Global.getInt(getContentResolver(),
-                    Settings.Global.AIRPLANE_MODE_ON, AIRPLANE_OFF));
+            handleAirplaneModeChange(
+                    Settings.Global.getInt(
+                                    getContentResolver(),
+                                    Settings.Global.AIRPLANE_MODE_ON,
+                                    AIRPLANE_OFF)
+                            == AIRPLANE_ON);
 
             // Register for misc other intent broadcasts.
             IntentFilter intentFilter =
@@ -503,12 +486,6 @@
             intentFilter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
             registerReceiver(mReceiver, intentFilter);
 
-            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_PROFILE);
-            registerReceiver(mSipReceiver, sipIntentFilter);
-
             mCarrierVvmPackageInstalledReceiver.register(this);
 
             //set the default values for the preferences in the phone.
@@ -649,20 +626,20 @@
         notifier.updateCallNotifierRegistrationsAfterRadioTechnologyChange();
     }
 
-    private void handleAirplaneModeChange(Context context, int newMode) {
-        int cellState = Settings.Global.getInt(context.getContentResolver(),
-                Settings.Global.CELL_ON, PhoneConstants.CELL_ON_FLAG);
-        boolean isAirplaneNewlyOn = (newMode == 1);
+    private void handleAirplaneModeChange(boolean isAirplaneNewlyOn) {
+        int cellState =
+                Settings.Global.getInt(
+                        getContentResolver(), Settings.Global.CELL_ON, PhoneConstants.CELL_ON_FLAG);
         switch (cellState) {
             case PhoneConstants.CELL_OFF_FLAG:
                 // Airplane mode does not affect the cell radio if user
                 // has turned it off.
                 break;
             case PhoneConstants.CELL_ON_FLAG:
-                maybeTurnCellOff(context, isAirplaneNewlyOn);
+                maybeTurnCellOff(isAirplaneNewlyOn);
                 break;
             case PhoneConstants.CELL_OFF_DUE_TO_AIRPLANE_MODE_FLAG:
-                maybeTurnCellOn(context, isAirplaneNewlyOn);
+                maybeTurnCellOn(isAirplaneNewlyOn);
                 break;
         }
         for (Phone phone : PhoneFactory.getPhones()) {
@@ -673,57 +650,59 @@
     /*
      * Returns true if the radio must be turned off when entering airplane mode.
      */
-    private boolean isCellOffInAirplaneMode(Context context) {
-        String airplaneModeRadios = Settings.Global.getString(context.getContentResolver(),
-                Settings.Global.AIRPLANE_MODE_RADIOS);
+    private boolean isCellOffInAirplaneMode() {
+        String airplaneModeRadios =
+                Settings.Global.getString(
+                        getContentResolver(), Settings.Global.AIRPLANE_MODE_RADIOS);
         return airplaneModeRadios == null
                 || airplaneModeRadios.contains(Settings.Global.RADIO_CELL);
     }
 
-    private void setRadioPowerOff(Context context) {
+    private void setRadioPowerOff() {
         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);
-        TelephonyProperties.airplane_mode_on(true); // true means int value 1
+        Settings.Global.putInt(
+                getContentResolver(),
+                Settings.Global.CELL_ON,
+                PhoneConstants.CELL_OFF_DUE_TO_AIRPLANE_MODE_FLAG);
         Settings.Global.putInt(getContentResolver(), Settings.Global.ENABLE_CELLULAR_ON_BOOT, 0);
+        TelephonyProperties.airplane_mode_on(true); // true means int value 1
         PhoneUtils.setRadioPower(false);
     }
 
-    private void setRadioPowerOn(Context context) {
+    private void setRadioPowerOn() {
         Log.i(LOG_TAG, "Turning radio on - airplane");
-        Settings.Global.putInt(context.getContentResolver(), Settings.Global.CELL_ON,
-                PhoneConstants.CELL_ON_FLAG);
-        Settings.Global.putInt(getContentResolver(), Settings.Global.ENABLE_CELLULAR_ON_BOOT,
-                1);
+        Settings.Global.putInt(
+                getContentResolver(), Settings.Global.CELL_ON, PhoneConstants.CELL_ON_FLAG);
+        Settings.Global.putInt(getContentResolver(), Settings.Global.ENABLE_CELLULAR_ON_BOOT, 1);
         TelephonyProperties.airplane_mode_on(false); // false means int value 0
         PhoneUtils.setRadioPower(true);
     }
 
-    private void maybeTurnCellOff(Context context, boolean isAirplaneNewlyOn) {
+    private void maybeTurnCellOff(boolean isAirplaneNewlyOn) {
         if (isAirplaneNewlyOn) {
             // If we are trying to turn off the radio, make sure there are no active
             // emergency calls.  If there are, switch airplane mode back to off.
-            TelecomManager tm = (TelecomManager) context.getSystemService(TELECOM_SERVICE);
+            TelecomManager tm = (TelecomManager) getSystemService(TELECOM_SERVICE);
 
             if (tm != null && tm.isInEmergencyCall()) {
                 // Switch airplane mode back to off.
                 ConnectivityManager cm =
-                        (ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE);
+                        (ConnectivityManager) 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");
-            } else if (isCellOffInAirplaneMode(context)) {
-                setRadioPowerOff(context);
+            } else if (isCellOffInAirplaneMode()) {
+                setRadioPowerOff();
             } else {
                 Log.i(LOG_TAG, "Ignoring airplane mode: settings prevent cell radio power off");
             }
         }
     }
 
-    private void maybeTurnCellOn(Context context, boolean isAirplaneNewlyOn) {
+    private void maybeTurnCellOn(boolean isAirplaneNewlyOn) {
         if (!isAirplaneNewlyOn) {
-            setRadioPowerOn(context);
+            setRadioPowerOn();
         }
     }
 
@@ -735,13 +714,8 @@
         public void onReceive(Context context, Intent intent) {
             String action = intent.getAction();
             if (action.equals(Intent.ACTION_AIRPLANE_MODE_CHANGED)) {
-                int airplaneMode = Settings.Global.getInt(getContentResolver(),
-                        Settings.Global.AIRPLANE_MODE_ON, AIRPLANE_OFF);
-                // Treat any non-OFF values as ON.
-                if (airplaneMode != AIRPLANE_OFF) {
-                    airplaneMode = AIRPLANE_ON;
-                }
-                handleAirplaneModeChange(context, airplaneMode);
+                boolean airplaneMode = intent.getBooleanExtra("state", false);
+                handleAirplaneModeChange(airplaneMode);
             } else if (action.equals(TelephonyIntents.ACTION_SIM_STATE_CHANGED)) {
                 // re-register as it may be a new IccCard
                 int phoneId = intent.getIntExtra(PhoneConstants.PHONE_KEY,
@@ -808,31 +782,6 @@
         }
     }
 
-    private class SipReceiver extends BroadcastReceiver {
-
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            String action = intent.getAction();
-
-            SipAccountRegistry sipAccountRegistry = SipAccountRegistry.getInstance();
-            if (action.equals(Intent.ACTION_BOOT_COMPLETED)) {
-                SipUtil.startSipService();
-            } 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_PROFILE)) {
-                if (DBG) {
-                    Log.d(LOG_TAG, "SIP_REMOVE_PHONE "
-                            + intent.getStringExtra(SipManager.EXTRA_LOCAL_URI));
-                }
-                sipAccountRegistry.removeSipProfile(intent.getStringExtra(
-                        SipManager.EXTRA_LOCAL_URI));
-            } else {
-                if (DBG) Log.d(LOG_TAG, "onReceive, action not processed: " + action);
-            }
-        }
-    }
-
     private void handleServiceStateChanged(Intent intent) {
         /**
          * This used to handle updating EriTextWidgetProvider this routine
@@ -886,11 +835,26 @@
             return;
         }
 
-        DataConnectionReasons reasons = new DataConnectionReasons();
-        boolean dataAllowed = phone.isDataAllowed(ApnSetting.TYPE_DEFAULT, reasons);
-        mDataRoamingNotifLog.log("dataAllowed=" + dataAllowed + ", reasons=" + reasons);
-        if (VDBG) Log.v(LOG_TAG, "dataAllowed=" + dataAllowed + ", reasons=" + reasons);
-        if (!dataAllowed && reasons.containsOnly(DataDisallowedReasonType.ROAMING_DISABLED)) {
+        boolean dataAllowed;
+        boolean notAllowedDueToRoamingOff;
+        if (phone.isUsingNewDataStack()) {
+            List<DataDisallowedReason> reasons = phone.getDataNetworkController()
+                    .getInternetDataDisallowedReasons();
+            dataAllowed = reasons.isEmpty();
+            notAllowedDueToRoamingOff = (reasons.size() == 1
+                    && reasons.contains(DataDisallowedReason.ROAMING_DISABLED));
+            mDataRoamingNotifLog.log("dataAllowed=" + dataAllowed + ", reasons=" + reasons);
+            if (VDBG) Log.v(LOG_TAG, "dataAllowed=" + dataAllowed + ", reasons=" + reasons);
+        } else {
+            DataConnectionReasons reasons = new DataConnectionReasons();
+            dataAllowed = phone.isDataAllowed(ApnSetting.TYPE_DEFAULT, reasons);
+            notAllowedDueToRoamingOff = reasons.containsOnly(
+                    DataDisallowedReasonType.ROAMING_DISABLED);
+            mDataRoamingNotifLog.log("dataAllowed=" + dataAllowed + ", reasons=" + reasons);
+            if (VDBG) Log.v(LOG_TAG, "dataAllowed=" + dataAllowed + ", reasons=" + reasons);
+        }
+
+        if (!dataAllowed && notAllowedDueToRoamingOff) {
             // No need to show it again if we never cancelled it explicitly.
             if (mPrevRoamingNotification == ROAMING_NOTIFICATION_DISCONNECTED) return;
             // If the only reason of no data is data roaming disabled, then we notify the user
@@ -918,7 +882,7 @@
             // showed earlier.
             mPrevRoamingNotification = ROAMING_NOTIFICATION_NO_NOTIFICATION;
             Log.d(LOG_TAG, "Dismiss roaming notification");
-            mDataRoamingNotifLog.log("Hide. data allowed=" + dataAllowed + ", reasons=" + reasons);
+            mDataRoamingNotifLog.log("Hide. data allowed=" + dataAllowed);
             mHandler.sendEmptyMessage(EVENT_DATA_ROAMING_OK);
         }
     }
@@ -1040,6 +1004,12 @@
         } catch (Exception e) {
             e.printStackTrace();
         }
+        pw.println("ImsStateCallbackController:");
+        try {
+            if (mImsStateCallbackController != null) mImsStateCallbackController.dump(pw);
+        } 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 d96c0c5..c1db593 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -28,17 +28,20 @@
 import android.Manifest.permission;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.RequiresPermission;
 import android.app.AppOpsManager;
 import android.app.PendingIntent;
+import android.app.PropertyInvalidatedCache;
 import android.app.compat.CompatChanges;
 import android.app.role.RoleManager;
+import android.compat.annotation.ChangeId;
+import android.compat.annotation.EnabledSince;
 import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.pm.ComponentInfo;
-import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.net.Uri;
 import android.os.AsyncResult;
@@ -69,7 +72,10 @@
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
+import android.telephony.AccessNetworkConstants;
+import android.telephony.ActivityStatsTechSpecificInfo;
 import android.telephony.Annotation.ApnType;
+import android.telephony.Annotation.DataActivityType;
 import android.telephony.Annotation.ThermalMitigationResult;
 import android.telephony.CallForwardingInfo;
 import android.telephony.CarrierConfigManager;
@@ -105,10 +111,11 @@
 import android.telephony.TelephonyScanManager;
 import android.telephony.ThermalMitigationRequest;
 import android.telephony.UiccCardInfo;
+import android.telephony.UiccPortInfo;
 import android.telephony.UiccSlotInfo;
+import android.telephony.UiccSlotMapping;
 import android.telephony.UssdResponse;
 import android.telephony.VisualVoicemailSmsFilterSettings;
-import android.telephony.data.ApnSetting;
 import android.telephony.data.NetworkSlicingConfig;
 import android.telephony.emergency.EmergencyNumber;
 import android.telephony.gba.GbaAuthRequest;
@@ -118,6 +125,7 @@
 import android.telephony.ims.RcsClientConfiguration;
 import android.telephony.ims.RcsContactUceCapability;
 import android.telephony.ims.RegistrationManager;
+import android.telephony.ims.aidl.IFeatureProvisioningCallback;
 import android.telephony.ims.aidl.IImsCapabilityCallback;
 import android.telephony.ims.aidl.IImsConfig;
 import android.telephony.ims.aidl.IImsConfigCallback;
@@ -125,8 +133,6 @@
 import android.telephony.ims.aidl.IImsRegistrationCallback;
 import android.telephony.ims.aidl.IRcsConfigCallback;
 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;
@@ -143,20 +149,22 @@
 import com.android.internal.telephony.CallManager;
 import com.android.internal.telephony.CallStateException;
 import com.android.internal.telephony.CallTracker;
+import com.android.internal.telephony.CarrierPrivilegesTracker;
 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.GbaManager;
 import com.android.internal.telephony.GsmCdmaPhone;
 import com.android.internal.telephony.HalVersion;
 import com.android.internal.telephony.IBooleanConsumer;
 import com.android.internal.telephony.ICallForwardingInfoCallback;
+import com.android.internal.telephony.IImsStateCallback;
 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.IccLogicalChannelRequest;
 import com.android.internal.telephony.LocaleTracker;
 import com.android.internal.telephony.NetworkScanRequestTracker;
 import com.android.internal.telephony.OperatorInfo;
@@ -175,6 +183,7 @@
 import com.android.internal.telephony.SubscriptionController;
 import com.android.internal.telephony.TelephonyIntents;
 import com.android.internal.telephony.TelephonyPermissions;
+import com.android.internal.telephony.data.DataUtils;
 import com.android.internal.telephony.dataconnection.ApnSettingUtils;
 import com.android.internal.telephony.emergency.EmergencyNumberTracker;
 import com.android.internal.telephony.euicc.EuiccConnector;
@@ -185,12 +194,12 @@
 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;
 import com.android.internal.telephony.uicc.UiccCardApplication;
 import com.android.internal.telephony.uicc.UiccController;
+import com.android.internal.telephony.uicc.UiccPort;
 import com.android.internal.telephony.uicc.UiccProfile;
 import com.android.internal.telephony.uicc.UiccSlot;
 import com.android.internal.telephony.util.LocaleUtils;
@@ -216,6 +225,8 @@
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -404,6 +415,25 @@
     private static final int SET_NETWORK_SELECTION_MODE_AUTOMATIC_TIMEOUT_MS = 2000; // 2 seconds
 
     /**
+     * With support for MEP(multiple enabled profile) in Android T, a SIM card can have more than
+     * one ICCID active at the same time.
+     * Apps should use below API signatures if targeting SDK is T and beyond.
+     *
+     * @hide
+     */
+    @ChangeId
+    @EnabledSince(targetSdkVersion = Build.VERSION_CODES.TIRAMISU)
+    public static final long GET_API_SIGNATURES_FROM_UICC_PORT_INFO = 202110963L;
+
+    /**
+     * Apps targeting on Android T and beyond will get exception whenever icc close channel
+     * operation fails.
+     */
+    @ChangeId
+    @EnabledSince(targetSdkVersion = Build.VERSION_CODES.TIRAMISU)
+    public static final long ICC_CLOSE_CHANNEL_EXCEPTION_ON_FAILURE = 208739934L;
+
+    /**
      * A request object to use for transmitting data to an ICC.
      */
     private static final class IccAPDUArgument {
@@ -505,7 +535,7 @@
             MainThreadRequest request;
             Message onCompleted;
             AsyncResult ar;
-            UiccCard uiccCard;
+            UiccPort uiccPort;
             IccAPDUArgument iccArgument;
             final Phone defaultPhone = getDefaultPhone();
 
@@ -514,7 +544,7 @@
                     request = (MainThreadRequest) msg.obj;
                     final Phone phone = getPhoneFromRequest(request);
                     Pair<String, ResultReceiver> ussdObject = (Pair) request.argument;
-                    String ussdRequest =  ussdObject.first;
+                    String ussdRequest = ussdObject.first;
                     ResultReceiver wrappedCallback = ussdObject.second;
 
                     if (!isUssdApiAllowed(request.subId)) {
@@ -555,18 +585,18 @@
                 case CMD_TRANSMIT_APDU_LOGICAL_CHANNEL:
                     request = (MainThreadRequest) msg.obj;
                     iccArgument = (IccAPDUArgument) request.argument;
-                    uiccCard = getUiccCardFromRequest(request);
-                    if (uiccCard == null) {
+                    uiccPort = getUiccPortFromRequest(request);
+                    if (uiccPort == null) {
                         loge("iccTransmitApduLogicalChannel: No UICC");
-                        request.result = new IccIoResult(0x6F, 0, (byte[])null);
+                        request.result = new IccIoResult(0x6F, 0, (byte[]) null);
                         notifyRequester(request);
                     } else {
                         onCompleted = obtainMessage(EVENT_TRANSMIT_APDU_LOGICAL_CHANNEL_DONE,
-                            request);
-                        uiccCard.iccTransmitApduLogicalChannel(
-                            iccArgument.channel, iccArgument.cla, iccArgument.command,
-                            iccArgument.p1, iccArgument.p2, iccArgument.p3, iccArgument.data,
-                            onCompleted);
+                                request);
+                        uiccPort.iccTransmitApduLogicalChannel(
+                                iccArgument.channel, iccArgument.cla, iccArgument.command,
+                                iccArgument.p1, iccArgument.p2, iccArgument.p3, iccArgument.data,
+                                onCompleted);
                     }
                     break;
 
@@ -576,7 +606,7 @@
                     if (ar.exception == null && ar.result != null) {
                         request.result = ar.result;
                     } else {
-                        request.result = new IccIoResult(0x6F, 0, (byte[])null);
+                        request.result = new IccIoResult(0x6F, 0, (byte[]) null);
                         if (ar.result == null) {
                             loge("iccTransmitApduLogicalChannel: Empty response");
                         } else if (ar.exception instanceof CommandException) {
@@ -592,17 +622,18 @@
                 case CMD_TRANSMIT_APDU_BASIC_CHANNEL:
                     request = (MainThreadRequest) msg.obj;
                     iccArgument = (IccAPDUArgument) request.argument;
-                    uiccCard = getUiccCardFromRequest(request);
-                    if (uiccCard == null) {
+                    uiccPort = getUiccPortFromRequest(request);
+                    if (uiccPort == null) {
                         loge("iccTransmitApduBasicChannel: No UICC");
-                        request.result = new IccIoResult(0x6F, 0, (byte[])null);
+                        request.result = new IccIoResult(0x6F, 0, (byte[]) null);
                         notifyRequester(request);
                     } else {
                         onCompleted = obtainMessage(EVENT_TRANSMIT_APDU_BASIC_CHANNEL_DONE,
-                            request);
-                        uiccCard.iccTransmitApduBasicChannel(
-                            iccArgument.cla, iccArgument.command, iccArgument.p1, iccArgument.p2,
-                            iccArgument.p3, iccArgument.data, onCompleted);
+                                request);
+                        uiccPort.iccTransmitApduBasicChannel(
+                                iccArgument.cla, iccArgument.command, iccArgument.p1,
+                                iccArgument.p2,
+                                iccArgument.p3, iccArgument.data, onCompleted);
                     }
                     break;
 
@@ -612,7 +643,7 @@
                     if (ar.exception == null && ar.result != null) {
                         request.result = ar.result;
                     } else {
-                        request.result = new IccIoResult(0x6F, 0, (byte[])null);
+                        request.result = new IccIoResult(0x6F, 0, (byte[]) null);
                         if (ar.result == null) {
                             loge("iccTransmitApduBasicChannel: Empty response");
                         } else if (ar.exception instanceof CommandException) {
@@ -628,15 +659,15 @@
                 case CMD_EXCHANGE_SIM_IO:
                     request = (MainThreadRequest) msg.obj;
                     iccArgument = (IccAPDUArgument) request.argument;
-                    uiccCard = getUiccCardFromRequest(request);
-                    if (uiccCard == null) {
+                    uiccPort = getUiccPortFromRequest(request);
+                    if (uiccPort == null) {
                         loge("iccExchangeSimIO: No UICC");
-                        request.result = new IccIoResult(0x6F, 0, (byte[])null);
+                        request.result = new IccIoResult(0x6F, 0, (byte[]) null);
                         notifyRequester(request);
                     } else {
                         onCompleted = obtainMessage(EVENT_EXCHANGE_SIM_IO_DONE,
                                 request);
-                        uiccCard.iccExchangeSimIO(iccArgument.cla, /* fileID */
+                        uiccPort.iccExchangeSimIO(iccArgument.cla, /* fileID */
                                 iccArgument.command, iccArgument.p1, iccArgument.p2, iccArgument.p3,
                                 iccArgument.data, onCompleted);
                     }
@@ -648,21 +679,21 @@
                     if (ar.exception == null && ar.result != null) {
                         request.result = ar.result;
                     } else {
-                        request.result = new IccIoResult(0x6f, 0, (byte[])null);
+                        request.result = new IccIoResult(0x6f, 0, (byte[]) null);
                     }
                     notifyRequester(request);
                     break;
 
                 case CMD_SEND_ENVELOPE:
                     request = (MainThreadRequest) msg.obj;
-                    uiccCard = getUiccCardFromRequest(request);
-                    if (uiccCard == null) {
+                    uiccPort = getUiccPortFromRequest(request);
+                    if (uiccPort == null) {
                         loge("sendEnvelopeWithStatus: No UICC");
-                        request.result = new IccIoResult(0x6F, 0, (byte[])null);
+                        request.result = new IccIoResult(0x6F, 0, (byte[]) null);
                         notifyRequester(request);
                     } else {
                         onCompleted = obtainMessage(EVENT_SEND_ENVELOPE_DONE, request);
-                        uiccCard.sendEnvelopeWithStatus((String)request.argument, onCompleted);
+                        uiccPort.sendEnvelopeWithStatus((String) request.argument, onCompleted);
                     }
                     break;
 
@@ -672,7 +703,7 @@
                     if (ar.exception == null && ar.result != null) {
                         request.result = ar.result;
                     } else {
-                        request.result = new IccIoResult(0x6F, 0, (byte[])null);
+                        request.result = new IccIoResult(0x6F, 0, (byte[]) null);
                         if (ar.result == null) {
                             loge("sendEnvelopeWithStatus: Empty response");
                         } else if (ar.exception instanceof CommandException) {
@@ -687,17 +718,18 @@
 
                 case CMD_OPEN_CHANNEL:
                     request = (MainThreadRequest) msg.obj;
-                    uiccCard = getUiccCardFromRequest(request);
-                    Pair<String, Integer> openChannelArgs = (Pair<String, Integer>) request.argument;
-                    if (uiccCard == null) {
+                    uiccPort = getUiccPortFromRequest(request);
+                    IccLogicalChannelRequest openChannelRequest =
+                            (IccLogicalChannelRequest) request.argument;
+                    if (uiccPort == null) {
                         loge("iccOpenLogicalChannel: No UICC");
                         request.result = new IccOpenLogicalChannelResponse(-1,
-                            IccOpenLogicalChannelResponse.STATUS_MISSING_RESOURCE, null);
+                                IccOpenLogicalChannelResponse.STATUS_MISSING_RESOURCE, null);
                         notifyRequester(request);
                     } else {
                         onCompleted = obtainMessage(EVENT_OPEN_CHANNEL_DONE, request);
-                        uiccCard.iccOpenLogicalChannel(openChannelArgs.first,
-                                openChannelArgs.second, onCompleted);
+                        uiccPort.iccOpenLogicalChannel(openChannelRequest.aid,
+                                openChannelRequest.p2, onCompleted);
                     }
                     break;
 
@@ -716,7 +748,13 @@
                             }
                         }
                         openChannelResp = new IccOpenLogicalChannelResponse(channelId,
-                            IccOpenLogicalChannelResponse.STATUS_NO_ERROR, selectResponse);
+                                IccOpenLogicalChannelResponse.STATUS_NO_ERROR, selectResponse);
+
+                        uiccPort = getUiccPortFromRequest(request);
+                        IccLogicalChannelRequest channelRequest =
+                                (IccLogicalChannelRequest) request.argument;
+                        channelRequest.channel = channelId;
+                        uiccPort.onLogicalChannelOpened(channelRequest);
                     } else {
                         if (ar.result == null) {
                             loge("iccOpenLogicalChannel: Empty response");
@@ -728,7 +766,7 @@
                         int errorCode = IccOpenLogicalChannelResponse.STATUS_UNKNOWN_ERROR;
                         if (ar.exception instanceof CommandException) {
                             CommandException.Error error =
-                                ((CommandException) (ar.exception)).getCommandError();
+                                    ((CommandException) (ar.exception)).getCommandError();
                             if (error == CommandException.Error.MISSING_RESOURCE) {
                                 errorCode = IccOpenLogicalChannelResponse.STATUS_MISSING_RESOURCE;
                             } else if (error == CommandException.Error.NO_SUCH_ELEMENT) {
@@ -736,7 +774,7 @@
                             }
                         }
                         openChannelResp = new IccOpenLogicalChannelResponse(
-                            IccOpenLogicalChannelResponse.INVALID_CHANNEL, errorCode, null);
+                                IccOpenLogicalChannelResponse.INVALID_CHANNEL, errorCode, null);
                     }
                     request.result = openChannelResp;
                     notifyRequester(request);
@@ -744,19 +782,46 @@
 
                 case CMD_CLOSE_CHANNEL:
                     request = (MainThreadRequest) msg.obj;
-                    uiccCard = getUiccCardFromRequest(request);
-                    if (uiccCard == null) {
+                    uiccPort = getUiccPortFromRequest(request);
+                    if (uiccPort == null) {
                         loge("iccCloseLogicalChannel: No UICC");
-                        request.result = false;
+                        request.result = new IllegalArgumentException(
+                                    "iccCloseLogicalChannel: No UICC");
                         notifyRequester(request);
                     } else {
                         onCompleted = obtainMessage(EVENT_CLOSE_CHANNEL_DONE, request);
-                        uiccCard.iccCloseLogicalChannel((Integer) request.argument, onCompleted);
+                        uiccPort.iccCloseLogicalChannel((Integer) request.argument, onCompleted);
                     }
                     break;
 
                 case EVENT_CLOSE_CHANNEL_DONE:
-                    handleNullReturnEvent(msg, "iccCloseLogicalChannel");
+                    ar = (AsyncResult) msg.obj;
+                    request = (MainThreadRequest) ar.userObj;
+                    if (ar.exception == null) {
+                        request.result = true;
+                        uiccPort = getUiccPortFromRequest(request);
+                        final int channelId = (Integer) request.argument;
+                        uiccPort.onLogicalChannelClosed(channelId);
+                    } else {
+                        request.result = false;
+                        Exception exception = null;
+                        if (ar.exception instanceof CommandException) {
+                            loge("iccCloseLogicalChannel: CommandException: " + ar.exception);
+                            CommandException.Error error =
+                                    ((CommandException) (ar.exception)).getCommandError();
+                            if (error == CommandException.Error.INVALID_ARGUMENTS) {
+                                // should only throw exceptions from the binder threads.
+                                exception = new IllegalArgumentException(
+                                        "iccCloseLogicalChannel: invalid argument ");
+                            }
+                        } else {
+                            loge("iccCloseLogicalChannel: Unknown exception");
+                        }
+                        request.result = (exception != null) ? exception :
+                                new IllegalStateException(
+                                        "exception from modem to close iccLogical Channel");
+                    }
+                    notifyRequester(request);
                     break;
 
                 case CMD_NV_READ_ITEM:
@@ -1098,7 +1163,9 @@
                             // any service for voice call.
                             if ((callForwardInfo.serviceClass
                                     & CommandsInterface.SERVICE_CLASS_VOICE) > 0) {
-                                callForwardingInfo = new CallForwardingInfo(true,
+                                callForwardingInfo = new CallForwardingInfo(
+                                        callForwardInfo.status
+                                                == CommandsInterface.CF_ACTION_ENABLE,
                                         callForwardInfo.reason,
                                         callForwardInfo.number,
                                         callForwardInfo.timeSeconds);
@@ -1192,7 +1259,7 @@
                     ar = (AsyncResult) msg.obj;
                     request = (MainThreadRequest) ar.userObj;
                     Consumer<Integer> callback = (Consumer<Integer>) request.argument;
-                    int callForwardingStatus = TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR;
+                    int callWaitingStatus = 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.
@@ -1200,11 +1267,11 @@
                         if (callForwardResults.length > 1
                                 && ((callForwardResults[1]
                                 & CommandsInterface.SERVICE_CLASS_VOICE) > 0)) {
-                            callForwardingStatus = callForwardResults[0] == 0
+                            callWaitingStatus = callForwardResults[0] == 0
                                     ? TelephonyManager.CALL_WAITING_STATUS_DISABLED
                                     : TelephonyManager.CALL_WAITING_STATUS_ENABLED;
                         } else {
-                            callForwardingStatus = TelephonyManager.CALL_WAITING_STATUS_DISABLED;
+                            callWaitingStatus = TelephonyManager.CALL_WAITING_STATUS_DISABLED;
                         }
                     } else {
                         if (ar.result == null) {
@@ -1217,12 +1284,15 @@
                             CommandException.Error error =
                                     ((CommandException) (ar.exception)).getCommandError();
                             if (error == CommandException.Error.REQUEST_NOT_SUPPORTED) {
-                                callForwardingStatus =
+                                callWaitingStatus =
                                         TelephonyManager.CALL_WAITING_STATUS_NOT_SUPPORTED;
+                            } else if (error == CommandException.Error.FDN_CHECK_FAILURE) {
+                                callWaitingStatus =
+                                        TelephonyManager.CALL_WAITING_STATUS_FDN_CHECK_FAILURE;
                             }
                         }
                     }
-                    callback.accept(callForwardingStatus);
+                    callback.accept(callWaitingStatus);
                     break;
                 }
 
@@ -1247,6 +1317,9 @@
                                     ((CommandException) (ar.exception)).getCommandError();
                             if (error == CommandException.Error.REQUEST_NOT_SUPPORTED) {
                                 callback.accept(TelephonyManager.CALL_WAITING_STATUS_NOT_SUPPORTED);
+                            } else if (error == CommandException.Error.FDN_CHECK_FAILURE) {
+                                callback.accept(
+                                        TelephonyManager.CALL_WAITING_STATUS_FDN_CHECK_FAILURE);
                             } else {
                                 callback.accept(TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR);
                             }
@@ -1332,43 +1405,39 @@
                     ar = (AsyncResult) msg.obj;
                     request = (MainThreadRequest) ar.userObj;
                     ResultReceiver result = (ResultReceiver) request.argument;
-
-                    ModemActivityInfo ret = null;
                     int error = 0;
+                    if (mLastModemActivityInfo == null) {
+                        mLastModemActivitySpecificInfo = new ActivityStatsTechSpecificInfo[1];
+                        mLastModemActivitySpecificInfo[0] =
+                                new ActivityStatsTechSpecificInfo(
+                                        0,
+                                        0,
+                                        new int[ModemActivityInfo.getNumTxPowerLevels()],
+                                        0);
+                        mLastModemActivityInfo =
+                                new ModemActivityInfo(0, 0, 0, mLastModemActivitySpecificInfo);
+                    }
+
                     if (ar.exception == null && ar.result != null) {
                         // 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.getNumTxPowerLevels()];
-                            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.getTimestampMillis());
-                            mLastModemActivityInfo.setSleepTimeMillis(info.getSleepTimeMillis()
-                                    + mLastModemActivityInfo.getSleepTimeMillis());
-                            mLastModemActivityInfo.setIdleTimeMillis(info.getIdleTimeMillis()
-                                    + mLastModemActivityInfo.getIdleTimeMillis());
-                            mLastModemActivityInfo.setTransmitTimeMillis(mergedTxTimeMs);
-                            mLastModemActivityInfo.setReceiveTimeMillis(
-                                    info.getReceiveTimeMillis()
-                                            + mLastModemActivityInfo.getReceiveTimeMillis());
+                            mergeModemActivityInfo(info);
                         }
-                        ret = new ModemActivityInfo(mLastModemActivityInfo.getTimestampMillis(),
-                                mLastModemActivityInfo.getSleepTimeMillis(),
-                                mLastModemActivityInfo.getIdleTimeMillis(),
-                                mLastModemActivityInfo.getTransmitTimeMillis(),
-                                mLastModemActivityInfo.getReceiveTimeMillis());
+                        mLastModemActivityInfo =
+                                new ModemActivityInfo(
+                                        mLastModemActivityInfo.getTimestampMillis(),
+                                        mLastModemActivityInfo.getSleepTimeMillis(),
+                                        mLastModemActivityInfo.getIdleTimeMillis(),
+                                        mLastModemActivitySpecificInfo);
+
                     } else {
                         if (ar.result == null) {
                             loge("queryModemActivityInfo: Empty response");
                             error = TelephonyManager.ModemActivityInfoException
                                     .ERROR_INVALID_INFO_RECEIVED;
                         } else if (ar.exception instanceof CommandException) {
-                            loge("queryModemActivityInfo: CommandException: " +
-                                    ar.exception);
+                            loge("queryModemActivityInfo: CommandException: " + ar.exception);
                             error = TelephonyManager.ModemActivityInfoException
                                     .ERROR_MODEM_RESPONSE_ERROR;
                         } else {
@@ -1378,8 +1447,10 @@
                         }
                     }
                     Bundle bundle = new Bundle();
-                    if (ret != null) {
-                        bundle.putParcelable(TelephonyManager.MODEM_ACTIVITY_RESULT_KEY, ret);
+                    if (mLastModemActivityInfo != null) {
+                        bundle.putParcelable(
+                                TelephonyManager.MODEM_ACTIVITY_RESULT_KEY,
+                                mLastModemActivityInfo);
                     } else {
                         bundle.putInt(TelephonyManager.EXCEPTION_RESULT_KEY, error);
                     }
@@ -1463,16 +1534,16 @@
 
                 case CMD_GET_FORBIDDEN_PLMNS:
                     request = (MainThreadRequest) msg.obj;
-                    uiccCard = getUiccCardFromRequest(request);
-                    if (uiccCard == null) {
-                        loge("getForbiddenPlmns() UiccCard is null");
+                    uiccPort = getUiccPortFromRequest(request);
+                    if (uiccPort == null) {
+                        loge("getForbiddenPlmns() UiccPort is null");
                         request.result = new IllegalArgumentException(
-                                "getForbiddenPlmns() UiccCard is null");
+                                "getForbiddenPlmns() UiccPort is null");
                         notifyRequester(request);
                         break;
                     }
                     Integer appType = (Integer) request.argument;
-                    UiccCardApplication uiccApp = uiccCard.getApplicationByType(appType);
+                    UiccCardApplication uiccApp = uiccPort.getApplicationByType(appType);
                     if (uiccApp == null) {
                         loge("getForbiddenPlmns() no app with specified type -- "
                                 + appType);
@@ -1490,9 +1561,9 @@
 
                 case CMD_SWITCH_SLOTS:
                     request = (MainThreadRequest) msg.obj;
-                    int[] physicalSlots = (int[]) request.argument;
+                    List<UiccSlotMapping> slotMapping = (List<UiccSlotMapping>) request.argument;
                     onCompleted = obtainMessage(EVENT_SWITCH_SLOTS_DONE, request);
-                    UiccController.getInstance().switchSlots(physicalSlots, onCompleted);
+                    UiccController.getInstance().switchSlots(slotMapping, onCompleted);
                     break;
 
                 case EVENT_SWITCH_SLOTS_DONE:
@@ -1768,9 +1839,9 @@
                     break;
                 case CMD_SET_FORBIDDEN_PLMNS:
                     request = (MainThreadRequest) msg.obj;
-                    uiccCard = getUiccCardFromRequest(request);
-                    if (uiccCard == null) {
-                        loge("setForbiddenPlmns: UiccCard is null");
+                    uiccPort = getUiccPortFromRequest(request);
+                    if (uiccPort == null) {
+                        loge("setForbiddenPlmns: UiccPort is null");
                         request.result = -1;
                         notifyRequester(request);
                         break;
@@ -1779,7 +1850,7 @@
                             (Pair<Integer, List<String>>) request.argument;
                     appType = setFplmnsArgs.first;
                     List<String> fplmns = setFplmnsArgs.second;
-                    uiccApp = uiccCard.getApplicationByType(appType);
+                    uiccApp = uiccPort.getApplicationByType(appType);
                     if (uiccApp == null) {
                         loge("setForbiddenPlmns: no app with specified type -- " + appType);
                         request.result = -1;
@@ -1977,7 +2048,7 @@
                             (Pair<Integer, SignalStrengthUpdateRequest>) request.argument;
                     onCompleted = obtainMessage(EVENT_SET_SIGNAL_STRENGTH_UPDATE_REQUEST_DONE,
                             request);
-                    phone.getServiceStateTracker().setSignalStrengthUpdateRequest(
+                    phone.getSignalStrengthController().setSignalStrengthUpdateRequest(
                                     request.subId, pair.first /*callingUid*/,
                                     pair.second /*request*/, onCompleted);
                     break;
@@ -2005,7 +2076,7 @@
                             (Pair<Integer, SignalStrengthUpdateRequest>) request.argument;
                     onCompleted = obtainMessage(EVENT_CLEAR_SIGNAL_STRENGTH_UPDATE_REQUEST_DONE,
                             request);
-                    phone.getServiceStateTracker().clearSignalStrengthUpdateRequest(
+                    phone.getSignalStrengthController().clearSignalStrengthUpdateRequest(
                                     request.subId, pair.first /*callingUid*/,
                                     pair.second /*request*/, onCompleted);
                     break;
@@ -2267,7 +2338,7 @@
         mPhoneConfigurationManager = PhoneConfigurationManager.getInstance();
         mRadioInterfaceCapabilities = RadioInterfaceCapabilityController.getInstance();
         mNotifyUserActivity = new AtomicBoolean(false);
-
+        PropertyInvalidatedCache.invalidateCache(TelephonyManager.CACHE_KEY_PHONE_ACCOUNT_TO_SUBID);
         publish();
     }
 
@@ -2298,10 +2369,10 @@
                 ? getDefaultPhone() : getPhone(subId);
     }
 
-    private UiccCard getUiccCardFromRequest(MainThreadRequest request) {
+    private UiccPort getUiccPortFromRequest(MainThreadRequest request) {
         Phone phone = getPhoneFromRequest(request);
         return phone == null ? null :
-                UiccController.getInstance().getUiccCard(phone.getPhoneId());
+                UiccController.getInstance().getUiccPort(phone.getPhoneId());
     }
 
     // returns phone associated with the subId.
@@ -2773,7 +2844,7 @@
 
     // FIXME: subId version needed
     @Override
-    public boolean enableDataConnectivity() {
+    public boolean enableDataConnectivity(String callingPackage) {
         enforceModifyPermission();
 
         final long identity = Binder.clearCallingIdentity();
@@ -2781,8 +2852,13 @@
             int subId = mSubscriptionController.getDefaultDataSubId();
             final Phone phone = getPhone(subId);
             if (phone != null) {
-                phone.getDataEnabledSettings().setDataEnabled(
-                        TelephonyManager.DATA_ENABLED_REASON_USER, true);
+                if (phone.isUsingNewDataStack()) {
+                    phone.getDataSettingsManager().setDataEnabled(
+                            TelephonyManager.DATA_ENABLED_REASON_USER, true, callingPackage);
+                } else {
+                    phone.getDataEnabledSettings().setDataEnabled(
+                            TelephonyManager.DATA_ENABLED_REASON_USER, true);
+                }
                 return true;
             } else {
                 return false;
@@ -2794,7 +2870,7 @@
 
     // FIXME: subId version needed
     @Override
-    public boolean disableDataConnectivity() {
+    public boolean disableDataConnectivity(String callingPackage) {
         enforceModifyPermission();
 
         final long identity = Binder.clearCallingIdentity();
@@ -2802,8 +2878,13 @@
             int subId = mSubscriptionController.getDefaultDataSubId();
             final Phone phone = getPhone(subId);
             if (phone != null) {
-                phone.getDataEnabledSettings().setDataEnabled(
-                        TelephonyManager.DATA_ENABLED_REASON_USER, false);
+                if (phone.isUsingNewDataStack()) {
+                    phone.getDataSettingsManager().setDataEnabled(
+                            TelephonyManager.DATA_ENABLED_REASON_USER, false, callingPackage);
+                } else {
+                    phone.getDataEnabledSettings().setDataEnabled(
+                            TelephonyManager.DATA_ENABLED_REASON_USER, false);
+                }
                 return true;
             } else {
                 return false;
@@ -2819,7 +2900,7 @@
         try {
             final Phone phone = getPhone(subId);
             if (phone != null) {
-                return phone.isDataAllowed(ApnSetting.TYPE_DEFAULT);
+                return phone.isDataAllowed();
             } else {
                 return false;
             }
@@ -2919,6 +3000,9 @@
         try {
             final Phone phone = getPhone(subId);
             if (phone != null) {
+                if (phone.isUsingNewDataStack()) {
+                    return phone.getDataNetworkController().getInternetDataNetworkState();
+                }
                 return PhoneConstantConversions.convertDataState(phone.getDataConnectionState());
             } else {
                 return PhoneConstantConversions.convertDataState(
@@ -2930,17 +3014,17 @@
     }
 
     @Override
-    public int getDataActivity() {
+    public @DataActivityType int getDataActivity() {
         return getDataActivityForSubId(mSubscriptionController.getDefaultDataSubId());
     }
 
     @Override
-    public int getDataActivityForSubId(int subId) {
+    public @DataActivityType int getDataActivityForSubId(int subId) {
         final long identity = Binder.clearCallingIdentity();
         try {
             final Phone phone = getPhone(subId);
             if (phone != null) {
-                return DefaultPhoneNotifier.convertDataActivityState(phone.getDataActivityState());
+                return phone.getDataActivityState();
             } else {
                 return TelephonyManager.DATA_ACTIVITY_NONE;
             }
@@ -3224,7 +3308,12 @@
         String tac = null;
         if (phone != null) {
             String imei = phone.getImei();
-            tac = imei == null ? null : imei.substring(0, TYPE_ALLOCATION_CODE_LENGTH);
+            try {
+                tac = imei == null ? null : imei.substring(0, TYPE_ALLOCATION_CODE_LENGTH);
+            } catch (IndexOutOfBoundsException e) {
+                Log.e(LOG_TAG, "IMEI length shorter than upper index.");
+                return null;
+            }
         }
         return tac;
     }
@@ -3263,7 +3352,13 @@
         String manufacturerCode = null;
         if (phone != null) {
             String meid = phone.getMeid();
-            manufacturerCode = meid == null ? null : meid.substring(0, MANUFACTURER_CODE_LENGTH);
+            try {
+                manufacturerCode =
+                        meid == null ? null : meid.substring(0, MANUFACTURER_CODE_LENGTH);
+            } catch (IndexOutOfBoundsException e) {
+                Log.e(LOG_TAG, "MEID length shorter than upper index.");
+                return null;
+            }
         }
         return manufacturerCode;
     }
@@ -3385,17 +3480,6 @@
         mApp.enforceCallingOrSelfPermission(android.Manifest.permission.MODIFY_PHONE_STATE, null);
     }
 
-    /**
-     * Make sure the caller is system.
-     *
-     * @throws SecurityException if the caller is not system.
-     */
-    private static 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);
@@ -4505,6 +4589,7 @@
     @Override
     public void registerImsProvisioningChangedCallback(int subId, IImsConfigCallback callback) {
         enforceReadPrivilegedPermission("registerImsProvisioningChangedCallback");
+
         final long identity = Binder.clearCallingIdentity();
         try {
             if (!isImsAvailableOnDevice()) {
@@ -4525,6 +4610,7 @@
     @Override
     public void unregisterImsProvisioningChangedCallback(int subId, IImsConfigCallback callback) {
         enforceReadPrivilegedPermission("unregisterImsProvisioningChangedCallback");
+
         final long identity = Binder.clearCallingIdentity();
         if (!SubscriptionManager.isValidSubscriptionId(subId)) {
             throw new IllegalArgumentException("Invalid Subscription ID: " + subId);
@@ -4542,86 +4628,70 @@
         }
     }
 
+    @Override
+    public void registerFeatureProvisioningChangedCallback(int subId,
+            IFeatureProvisioningCallback callback) {
+        TelephonyPermissions.enforceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "registerFeatureProvisioningChangedCallback");
+
+        final long identity = Binder.clearCallingIdentity();
+        if (!SubscriptionManager.isValidSubscriptionId(subId)) {
+            throw new IllegalArgumentException("Invalid Subscription ID: " + subId);
+        }
+
+        ImsProvisioningController.getInstance()
+                .addFeatureProvisioningChangedCallback(subId, callback);
+
+        Binder.restoreCallingIdentity(identity);
+    }
+
+    @Override
+    public void unregisterFeatureProvisioningChangedCallback(int subId,
+            IFeatureProvisioningCallback callback) {
+        TelephonyPermissions.enforceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "unregisterFeatureProvisioningChangedCallback");
+
+        final long identity = Binder.clearCallingIdentity();
+        if (!SubscriptionManager.isValidSubscriptionId(subId)) {
+            throw new IllegalArgumentException("Invalid Subscription ID: " + subId);
+        }
+
+        ImsProvisioningController.getInstance()
+                .removeFeatureProvisioningChangedCallback(subId, callback);
+
+        Binder.restoreCallingIdentity(identity);
+    }
 
     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,
+    public void setRcsProvisioningStatusForCapability(int subId, int capability, int tech,
             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.");
-                }
-            }
+            ImsProvisioningController.getInstance()
+                    .setRcsProvisioningStatusForCapability(subId, capability, tech, isProvisioned);
+            return;
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
-
     }
 
 
     @Override
-    public boolean getRcsProvisioningStatusForCapability(int subId, int capability) {
-        enforceReadPrivilegedPermission("getRcsProvisioningStatusForCapability");
+    public boolean getRcsProvisioningStatusForCapability(int subId, int capability, int tech) {
+        TelephonyPermissions.enforceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "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.");
-                }
-            }
-
+            return ImsProvisioningController.getInstance()
+                    .getRcsProvisioningStatusForCapability(subId, capability, tech);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4630,66 +4700,12 @@
     @Override
     public void setImsProvisioningStatusForCapability(int subId, int capability, int tech,
             boolean isProvisioned) {
-        if (tech != ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN
-                && tech != ImsRegistrationImplBase.REGISTRATION_TECH_LTE
-                && tech != ImsRegistrationImplBase.REGISTRATION_TECH_NR
-                && tech != ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM) {
-            throw new IllegalArgumentException("Registration technology '" + tech + "' is invalid");
-        }
         checkModifyPhoneStatePermission(subId, "setImsProvisioningStatusForCapability");
+
         final long identity = Binder.clearCallingIdentity();
         try {
-            // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
-            if (!isImsProvisioningRequired(subId, capability, true)) {
-                return;
-            }
-            if (tech == ImsRegistrationImplBase.REGISTRATION_TECH_NR
-                    || tech == ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM) {
-                loge("setImsProvisioningStatusForCapability: called for technology that does "
-                        + "not support provisioning - " + tech);
-                return;
-            }
-
-            // this capability requires provisioning, route to the correct API.
-            ImsManager ims = ImsManager.getInstance(mApp, getSlotIndex(subId));
-            switch (capability) {
-                case MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE: {
-                    if (tech == ImsRegistrationImplBase.REGISTRATION_TECH_LTE) {
-                        ims.setVolteProvisioned(isProvisioned);
-                    } else if (tech == ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN) {
-                        ims.setWfcProvisioned(isProvisioned);
-                    }
-                    break;
-                }
-                case MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO: {
-                    // There is currently no difference in VT provisioning type.
-                    ims.setVtProvisioned(isProvisioned);
-                    break;
-                }
-                case MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT: {
-                    // There is no "deprecated" UT provisioning mechanism through ImsConfig, so
-                    // change the capability of the feature instead if needed.
-                    if (isMmTelCapabilityProvisionedInCache(subId, capability, tech)
-                            == isProvisioned) {
-                        // No change in provisioning.
-                        return;
-                    }
-                    cacheMmTelCapabilityProvisioning(subId, capability, tech, isProvisioned);
-                    try {
-                        ims.changeMmTelCapability(isProvisioned, capability, tech);
-                    } 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 "
-                            + "MmTel capability '" + capability + "', which does not require "
-                            + "provisioning. ");
-                }
-            }
-
+            ImsProvisioningController.getInstance()
+                    .setImsProvisioningStatusForCapability(subId, capability, tech, isProvisioned);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -4697,54 +4713,13 @@
 
     @Override
     public boolean getImsProvisioningStatusForCapability(int subId, int capability, int tech) {
-        if (tech != ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN
-                && tech != ImsRegistrationImplBase.REGISTRATION_TECH_LTE
-                && tech != ImsRegistrationImplBase.REGISTRATION_TECH_NR
-                && tech != ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM) {
-            throw new IllegalArgumentException("Registration technology '" + tech + "' is invalid");
-        }
-        enforceReadPrivilegedPermission("getProvisioningStatusForCapability");
+        TelephonyPermissions.enforceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "getProvisioningStatusForCapability");
+
         final long identity = Binder.clearCallingIdentity();
         try {
-            // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
-            if (!isImsProvisioningRequired(subId, capability, true)) {
-                return true;
-            }
-
-            if (tech == ImsRegistrationImplBase.REGISTRATION_TECH_NR
-                    || tech == ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM) {
-                loge("getImsProvisioningStatusForCapability: called for technology that does "
-                        + "not support provisioning - " + tech);
-                return true;
-            }
-
-            ImsManager ims = ImsManager.getInstance(mApp, getSlotIndex(subId));
-            switch (capability) {
-                case MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE: {
-                    if (tech == ImsRegistrationImplBase.REGISTRATION_TECH_LTE) {
-                        return ims.isVolteProvisionedOnDevice();
-                    } else if (tech == ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN) {
-                        return ims.isWfcProvisionedOnDevice();
-                    }
-                    // This should never happen, since we are checking tech above to make sure it
-                    // is either LTE or IWLAN.
-                    throw new IllegalArgumentException("Invalid radio technology for voice "
-                            + "capability.");
-                }
-                case MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO: {
-                    // There is currently no difference in VT provisioning type.
-                    return ims.isVtProvisionedOnDevice();
-                }
-                case MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT: {
-                    // There is no "deprecated" UT provisioning mechanism, so get from shared prefs.
-                    return isMmTelCapabilityProvisionedInCache(subId, capability, tech);
-                }
-                default: {
-                    throw new IllegalArgumentException(
-                            "Tried to get provisioning for MmTel capability '" + capability
-                                    + "', which does not require provisioning.");
-                }
-            }
+            return ImsProvisioningController.getInstance()
+                    .getImsProvisioningStatusForCapability(subId, capability, tech);
 
         } finally {
             Binder.restoreCallingIdentity(identity);
@@ -4752,126 +4727,31 @@
     }
 
     @Override
-    public boolean isMmTelCapabilityProvisionedInCache(int subId, int capability, int tech) {
-        if (tech != ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN
-                && tech != ImsRegistrationImplBase.REGISTRATION_TECH_LTE) {
-            throw new IllegalArgumentException("Registration technology '" + tech + "' is invalid");
+    public boolean isProvisioningRequiredForCapability(int subId, int capability, int tech) {
+        TelephonyPermissions.enforceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "isProvisioningRequiredForCapability");
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            return ImsProvisioningController.getInstance()
+                    .isImsProvisioningRequiredForCapability(subId, capability, tech);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
         }
-        enforceReadPrivilegedPermission("isMmTelCapabilityProvisionedInCache");
-        int provisionedBits = getMmTelCapabilityProvisioningBitfield(subId, tech);
-        return (provisionedBits & capability) > 0;
     }
 
     @Override
-    public void cacheMmTelCapabilityProvisioning(int subId, int capability, int tech,
-            boolean isProvisioned) {
-        if (tech != ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN
-                && tech != ImsRegistrationImplBase.REGISTRATION_TECH_LTE) {
-            throw new IllegalArgumentException("Registration technology '" + tech + "' is invalid");
+    public boolean isRcsProvisioningRequiredForCapability(int subId, int capability, int tech) {
+        TelephonyPermissions.enforceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "isProvisioningRequiredForCapability");
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            return ImsProvisioningController.getInstance()
+                    .isRcsProvisioningRequiredForCapability(subId, capability, tech);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
         }
-        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp, subId,
-                "setProvisioningStatusForCapability");
-        int provisionedBits = getMmTelCapabilityProvisioningBitfield(subId, tech);
-        // If the current provisioning status for capability already matches isProvisioned,
-        // do nothing.
-        if (((provisionedBits & capability) > 0) == isProvisioned) {
-            return;
-        }
-        if (isProvisioned) {
-            setMmTelCapabilityProvisioningBitfield(subId, tech, (provisionedBits | capability));
-        } else {
-            setMmTelCapabilityProvisioningBitfield(subId, tech, (provisionedBits & ~capability));
-        }
-    }
-
-    /**
-     * @return the bitfield containing the MmTel provisioning for the provided subscription and
-     * technology. The bitfield should mirror the bitfield defined by
-     * {@link MmTelFeature.MmTelCapabilities.MmTelCapability}.
-     */
-    private int getMmTelCapabilityProvisioningBitfield(int subId, int tech) {
-        String key = getMmTelProvisioningKey(subId, tech);
-        // Default is no capabilities are provisioned.
-        return mTelephonySharedPreferences.getInt(key, 0 /*default*/);
-    }
-
-    /**
-     * Sets the MmTel capability provisioning bitfield (defined by
-     *     {@link MmTelFeature.MmTelCapabilities.MmTelCapability}) for the subscription and
-     *     technology specified.
-     *
-     * Note: This is a synchronous command and should not be called on UI thread.
-     */
-    private void setMmTelCapabilityProvisioningBitfield(int subId, int tech, int newField) {
-        final SharedPreferences.Editor editor = mTelephonySharedPreferences.edit();
-        String key = getMmTelProvisioningKey(subId, tech);
-        editor.putInt(key, newField);
-        editor.commit();
-    }
-
-    private static String getMmTelProvisioningKey(int subId, int tech) {
-        // resulting key is provision_ims_mmtel_{subId}_{tech}
-        return PREF_PROVISION_IMS_MMTEL_PREFIX + subId + "_" + tech;
-    }
-
-    /**
-     * Query CarrierConfig to see if the specified capability requires provisioning for the
-     * carrier associated with the subscription id.
-     */
-    private boolean doesImsCapabilityRequireProvisioning(Context context, int subId,
-            int capability) {
-        CarrierConfigManager configManager = new CarrierConfigManager(context);
-        PersistableBundle c = configManager.getConfigForSubId(subId);
-        boolean requireUtProvisioning = c.getBoolean(
-                CarrierConfigManager.KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL, false)
-                && c.getBoolean(CarrierConfigManager.KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL,
-                false);
-        boolean requireVoiceVtProvisioning = c.getBoolean(
-                CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL, false);
-
-        // First check to make sure that the capability requires provisioning.
-        switch (capability) {
-            case MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE:
-                // intentional fallthrough
-            case MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO: {
-                if (requireVoiceVtProvisioning) {
-                    // Voice and Video requires provisioning
-                    return true;
-                }
-                break;
-            }
-            case MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT: {
-                if (requireUtProvisioning) {
-                    // UT requires provisioning
-                    return true;
-                }
-                break;
-            }
-        }
-        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
@@ -4879,7 +4759,9 @@
         if (!SubscriptionManager.isValidSubscriptionId(subId)) {
             throw new IllegalArgumentException("Invalid Subscription id '" + subId + "'");
         }
-        enforceReadPrivilegedPermission("getImsProvisioningInt");
+        TelephonyPermissions.enforceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "getImsProvisioningInt");
+
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
@@ -4889,6 +4771,12 @@
                         + subId + "' for key:" + key);
                 return ImsConfigImplBase.CONFIG_RESULT_UNKNOWN;
             }
+
+            int retVal = ImsProvisioningController.getInstance().getProvisioningValue(subId, key);
+            if (retVal != ImsConfigImplBase.CONFIG_RESULT_UNKNOWN) {
+                return retVal;
+            }
+
             return ImsManager.getInstance(mApp, slotId).getConfigInt(key);
         } catch (com.android.ims.ImsException e) {
             Log.w(LOG_TAG, "getImsProvisioningInt: ImsService is not available for subscription '"
@@ -4904,7 +4792,9 @@
         if (!SubscriptionManager.isValidSubscriptionId(subId)) {
             throw new IllegalArgumentException("Invalid Subscription id '" + subId + "'");
         }
-        enforceReadPrivilegedPermission("getImsProvisioningString");
+        TelephonyPermissions.enforceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                mApp, subId, "getImsProvisioningString");
+
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
@@ -4931,6 +4821,7 @@
         }
         TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp, subId,
                 "setImsProvisioningInt");
+
         final long identity = Binder.clearCallingIdentity();
         try {
             // TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
@@ -4940,6 +4831,13 @@
                         + subId + "' for key:" + key);
                 return ImsConfigImplBase.CONFIG_RESULT_FAILED;
             }
+
+            int retVal = ImsProvisioningController.getInstance()
+                    .setProvisioningValue(subId, key, value);
+            if (retVal != ImsConfigImplBase.CONFIG_RESULT_UNKNOWN) {
+                return retVal;
+            }
+
             return ImsManager.getInstance(mApp, slotId).setConfig(key, value);
         } catch (com.android.ims.ImsException | RemoteException e) {
             Log.w(LOG_TAG, "setImsProvisioningInt: ImsService unavailable for sub '" + subId
@@ -5058,10 +4956,13 @@
     @Override
     public int getDataNetworkTypeForSubscriber(int subId, String callingPackage,
             String callingFeatureId) {
-        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, callingFeatureId,
-                "getDataNetworkTypeForSubscriber")) {
-            return TelephonyManager.NETWORK_TYPE_UNKNOWN;
+        String functionName = "getDataNetworkTypeForSubscriber";
+        if (!TelephonyPermissions.checkCallingOrSelfReadNonDangerousPhoneStateNoThrow(
+                mApp, functionName)) {
+            if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
+                    mApp, subId, callingPackage, callingFeatureId, functionName)) {
+                return TelephonyManager.NETWORK_TYPE_UNKNOWN;
+            }
         }
 
         final long identity = Binder.clearCallingIdentity();
@@ -5083,10 +4984,13 @@
     @Override
     public int getVoiceNetworkTypeForSubscriber(int subId, String callingPackage,
             String callingFeatureId) {
-        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
-                mApp, subId, callingPackage, callingFeatureId,
-                "getDataNetworkTypeForSubscriber")) {
-            return TelephonyManager.NETWORK_TYPE_UNKNOWN;
+        String functionName = "getVoiceNetworkTypeForSubscriber";
+        if (!TelephonyPermissions.checkCallingOrSelfReadNonDangerousPhoneStateNoThrow(
+                mApp, functionName)) {
+            if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
+                    mApp, subId, callingPackage, callingFeatureId, functionName)) {
+                return TelephonyManager.NETWORK_TYPE_UNKNOWN;
+            }
         }
 
         final long identity = Binder.clearCallingIdentity();
@@ -5220,51 +5124,55 @@
         return TelephonyManager.WifiCallingChoices.ALWAYS_USE;
     }
 
-    private Phone getPhoneFromSlotIdOrThrowException(int slotIndex) {
-        int phoneId = UiccController.getInstance().getPhoneIdFromSlotId(slotIndex);
+    private Phone getPhoneFromSlotPortIndexOrThrowException(int slotIndex, int portIndex) {
+        int phoneId = UiccController.getInstance().getPhoneIdFromSlotPortIndex(slotIndex,
+                portIndex);
         if (phoneId == -1) {
-            throw new IllegalArgumentException("Given slot index: " + slotIndex
-                    + " does not correspond to an active phone");
+            throw new IllegalArgumentException("Given slot index: " + slotIndex + " port index: "
+                     + portIndex + " does not correspond to an active phone");
         }
         return PhoneFactory.getPhone(phoneId);
     }
 
     @Override
     public IccOpenLogicalChannelResponse iccOpenLogicalChannel(
-            int subId, String callingPackage, String aid, int p2) {
-        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
-                mApp, subId, "iccOpenLogicalChannel");
-        mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
-        if (DBG) {
-            log("iccOpenLogicalChannel: subId=" + subId + " aid=" + aid + " p2=" + p2);
-        }
-        return iccOpenLogicalChannelWithPermission(getPhoneFromSubId(subId), callingPackage, aid,
-                p2);
+            @NonNull IccLogicalChannelRequest request) {
+        Phone phone = getPhoneFromValidIccLogicalChannelRequest(request,
+                /*message=*/ "iccOpenLogicalChannel");
+
+        if (DBG) log("iccOpenLogicalChannel: request=" + request);
+        // Verify that the callingPackage in the request belongs to the calling UID
+        mAppOps.checkPackage(Binder.getCallingUid(), request.callingPackage);
+
+        return iccOpenLogicalChannelWithPermission(phone, request);
     }
 
-
-    @Override
-    public IccOpenLogicalChannelResponse iccOpenLogicalChannelBySlot(
-            int slotIndex, String callingPackage, String aid, int p2) {
-        enforceModifyPermission();
-        mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
-        if (DBG) {
-            log("iccOpenLogicalChannelBySlot: slot=" + slotIndex + " aid=" + aid + " p2=" + p2);
+    private Phone getPhoneFromValidIccLogicalChannelRequest(
+            @NonNull IccLogicalChannelRequest request, String message) {
+        Phone phone;
+        if (request.subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+            TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
+                    mApp, request.subId, message);
+            phone = getPhoneFromSubId(request.subId);
+        } else if (request.slotIndex != SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
+            enforceModifyPermission();
+            phone = getPhoneFromSlotPortIndexOrThrowException(request.slotIndex, request.portIndex);
+        } else {
+            throw new IllegalArgumentException("Both subId and slotIndex in request are invalid.");
         }
-        return iccOpenLogicalChannelWithPermission(getPhoneFromSlotIdOrThrowException(slotIndex),
-                callingPackage, aid, p2);
+        return phone;
     }
 
     private IccOpenLogicalChannelResponse iccOpenLogicalChannelWithPermission(Phone phone,
-            String callingPackage, String aid, int p2) {
+            IccLogicalChannelRequest channelRequest) {
         final long identity = Binder.clearCallingIdentity();
         try {
-            if (TextUtils.equals(ISDR_AID, aid)) {
+            if (TextUtils.equals(ISDR_AID, channelRequest.aid)) {
                 // Only allows LPA to open logical channel to ISD-R.
                 ComponentInfo bestComponent = EuiccConnector.findBestComponent(getDefaultPhone()
                         .getContext().getPackageManager());
-                if (bestComponent == null
-                        || !TextUtils.equals(callingPackage, bestComponent.packageName)) {
+                if (bestComponent == null || !TextUtils.equals(channelRequest.callingPackage,
+                        bestComponent.packageName)) {
                     loge("The calling package is not allowed to access ISD-R.");
                     throw new SecurityException(
                             "The calling package is not allowed to access ISD-R.");
@@ -5272,9 +5180,8 @@
             }
 
             IccOpenLogicalChannelResponse response = (IccOpenLogicalChannelResponse) sendRequest(
-                    CMD_OPEN_CHANNEL, new Pair<String, Integer>(aid, p2), phone,
-                    null /* workSource */);
-            if (DBG) log("iccOpenLogicalChannelWithPermission: " + response);
+                    CMD_OPEN_CHANNEL, channelRequest, phone, null /* workSource */);
+            if (DBG) log("iccOpenLogicalChannelWithPermission: response=" + response);
             return response;
         } finally {
             Binder.restoreCallingIdentity(identity);
@@ -5282,30 +5189,43 @@
     }
 
     @Override
-    public boolean iccCloseLogicalChannel(int subId, int channel) {
-        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
-                mApp, subId, "iccCloseLogicalChannel");
-        if (DBG) log("iccCloseLogicalChannel: subId=" + subId + " chnl=" + channel);
-        return iccCloseLogicalChannelWithPermission(getPhoneFromSubId(subId), channel);
+    public boolean iccCloseLogicalChannel(@NonNull IccLogicalChannelRequest request) {
+        Phone phone = getPhoneFromValidIccLogicalChannelRequest(request,
+                /*message=*/"iccCloseLogicalChannel");
+
+        if (DBG) log("iccCloseLogicalChannel: request=" + request);
+
+        return iccCloseLogicalChannelWithPermission(phone, request);
     }
 
-    @Override
-    public boolean iccCloseLogicalChannelBySlot(int slotIndex, int channel) {
-        enforceModifyPermission();
-        if (DBG) log("iccCloseLogicalChannelBySlot: slotIndex=" + slotIndex + " chnl=" + channel);
-        return iccCloseLogicalChannelWithPermission(getPhoneFromSlotIdOrThrowException(slotIndex),
-                channel);
-    }
-
-    private boolean iccCloseLogicalChannelWithPermission(Phone phone, int channel) {
+    private boolean iccCloseLogicalChannelWithPermission(Phone phone,
+            IccLogicalChannelRequest request) {
+        // before this feature is enabled, this API should only return false if
+        // the operation fails instead of throwing runtime exception for
+        // backward-compatibility.
+        final boolean shouldThrowExceptionOnFailure = CompatChanges.isChangeEnabled(
+                ICC_CLOSE_CHANNEL_EXCEPTION_ON_FAILURE, Binder.getCallingUid());
         final long identity = Binder.clearCallingIdentity();
         try {
-            if (channel < 0) {
-                return false;
+            if (request.channel < 0) {
+                throw new IllegalArgumentException("request.channel is less than 0");
             }
-            Boolean success = (Boolean) sendRequest(CMD_CLOSE_CHANNEL, channel, phone,
+            Object result = sendRequest(CMD_CLOSE_CHANNEL, request.channel, phone,
                     null /* workSource */);
-            if (DBG) log("iccCloseLogicalChannelWithPermission: " + success);
+            Boolean success = false;
+            if (result instanceof RuntimeException) {
+                // if there is an exception returned, throw from the binder thread here.
+                if (shouldThrowExceptionOnFailure) {
+                    throw (RuntimeException) result;
+                } else {
+                    return false;
+                }
+            } else if (result instanceof Boolean) {
+                success = (Boolean) result;
+            } else {
+                loge("iccCloseLogicalChannelWithPermission: supported return type " + result);
+            }
+            if (DBG) log("iccCloseLogicalChannelWithPermission: success=" + success);
             return success;
         } finally {
             Binder.restoreCallingIdentity(identity);
@@ -5327,17 +5247,17 @@
     }
 
     @Override
-    public String iccTransmitApduLogicalChannelBySlot(int slotIndex, int channel, int cla,
-            int command, int p1, int p2, int p3, String data) {
+    public String iccTransmitApduLogicalChannelByPort(int slotIndex, int portIndex, int channel,
+             int cla, int command, int p1, int p2, int p3, String data) {
         enforceModifyPermission();
         if (DBG) {
-            log("iccTransmitApduLogicalChannelBySlot: slotIndex=" + slotIndex + " chnl=" + channel
-                    + " cla=" + cla + " cmd=" + command + " p1=" + p1 + " p2=" + p2 + " p3="
-                    + p3 + " data=" + data);
+            log("iccTransmitApduLogicalChannelByPort: slotIndex=" + slotIndex + " portIndex="
+                     + portIndex + " chnl=" + channel + " cla=" + cla + " cmd=" + command + " p1="
+                     + p1 + " p2=" + p2 + " p3=" + p3 + " data=" + data);
         }
         return iccTransmitApduLogicalChannelWithPermission(
-                getPhoneFromSlotIdOrThrowException(slotIndex), channel, cla, command, p1, p2, p3,
-                data);
+                getPhoneFromSlotPortIndexOrThrowException(slotIndex, portIndex), channel, cla,
+                command, p1, p2, p3, data);
     }
 
     private String iccTransmitApduLogicalChannelWithPermission(Phone phone, int channel, int cla,
@@ -5380,19 +5300,19 @@
     }
 
     @Override
-    public String iccTransmitApduBasicChannelBySlot(int slotIndex, String callingPackage, int cla,
-            int command, int p1, int p2, int p3, String data) {
+    public String iccTransmitApduBasicChannelByPort(int slotIndex, int portIndex,
+             String callingPackage, int cla, int command, int p1, int p2, int p3, String data) {
         enforceModifyPermission();
         mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
         if (DBG) {
-            log("iccTransmitApduBasicChannelBySlot: slotIndex=" + slotIndex + " cla=" + cla
-                    + " cmd=" + command + " p1=" + p1 + " p2=" + p2 + " p3=" + p3
-                    + " data=" + data);
+            log("iccTransmitApduBasicChannelByPort: slotIndex=" + slotIndex + " portIndex="
+                     + portIndex + " cla=" + cla + " cmd=" + command + " p1=" + p1 + " p2="
+                     + p2 + " p3=" + p3 + " data=" + data);
         }
 
         return iccTransmitApduBasicChannelWithPermission(
-                getPhoneFromSlotIdOrThrowException(slotIndex), callingPackage, cla, command, p1,
-                p2, p3, data);
+                getPhoneFromSlotPortIndexOrThrowException(slotIndex, portIndex), callingPackage,
+                cla, command, p1, p2, p3, data);
     }
 
     // open APDU basic channel assuming the caller has sufficient permissions
@@ -5689,22 +5609,6 @@
         return false;
     }
 
-    public String[] getPcscfAddress(String apnType, String callingPackage,
-            String callingFeatureId) {
-        final Phone defaultPhone = getDefaultPhone();
-        if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, defaultPhone.getSubId(),
-                callingPackage, callingFeatureId, "getPcscfAddress")) {
-            return new String[0];
-        }
-
-        final long identity = Binder.clearCallingIdentity();
-        try {
-            return defaultPhone.getPcscfAddress(apnType);
-        } finally {
-            Binder.restoreCallingIdentity(identity);
-        }
-    }
-
     /**
      * Toggle IMS disable and enable for the framework to reset it. See {@link #enableIms(int)} and
      * {@link #disableIms(int)}.
@@ -6312,28 +6216,35 @@
      * Starts a new network scan and returns the id of this scan.
      *
      * @param subId id of the subscription
+     * @param renounceFineLocationAccess Set this to true if the caller would not like to receive
+     * location related information which will be sent if the caller already possess
+     * {@android.Manifest.permission.ACCESS_FINE_LOCATION} and do not renounce the permission
      * @param request contains the radio access networks with bands/channels to scan
      * @param messenger callback messenger for scan results or errors
      * @param binder for the purpose of auto clean when the user thread crashes
      * @return the id of the requested scan which can be used to stop the scan.
      */
     @Override
-    public int requestNetworkScan(int subId, NetworkScanRequest request, Messenger messenger,
+    public int requestNetworkScan(int subId, boolean renounceFineLocationAccess,
+            NetworkScanRequest request, Messenger messenger,
             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")
-                                .setMinSdkVersionForFine(Build.VERSION_CODES.Q)
-                                .setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
-                                .setMinSdkVersionForEnforcement(Build.VERSION_CODES.Q)
-                                .build());
+                LocationAccessPolicy.LocationPermissionResult.DENIED_HARD;
+        if (!renounceFineLocationAccess) {
+            locationResult = LocationAccessPolicy.checkLocationPermission(mApp,
+                            new LocationAccessPolicy.LocationPermissionQuery.Builder()
+                                    .setCallingPackage(callingPackage)
+                                    .setCallingFeatureId(callingFeatureId)
+                                    .setCallingPid(Binder.getCallingPid())
+                                    .setCallingUid(Binder.getCallingUid())
+                                    .setMethod("requestNetworkScan")
+                                    .setMinSdkVersionForFine(Build.VERSION_CODES.Q)
+                                    .setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
+                                    .setMinSdkVersionForEnforcement(Build.VERSION_CODES.Q)
+                                    .build());
+        }
         if (locationResult != LocationAccessPolicy.LocationPermissionResult.ALLOWED) {
             SecurityException e = checkNetworkRequestForSanitizedLocationAccess(
                     request, subId, callingPackage);
@@ -6351,7 +6262,7 @@
         final long identity = Binder.clearCallingIdentity();
         try {
             return mNetworkScanRequestTracker.startNetworkScan(
-                    request, messenger, binder, getPhone(subId),
+                    renounceFineLocationAccess, request, messenger, binder, getPhone(subId),
                     callingUid, callingPid, callingPackage);
         } finally {
             Binder.restoreCallingIdentity(identity);
@@ -6577,34 +6488,6 @@
     }
 
     /**
-     * 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.
@@ -6625,18 +6508,25 @@
      * There are other factors deciding whether mobile data is actually enabled, but they are
      * not considered here. See {@link #isDataEnabled(int)} for more details.
      *
-     * Accepts either ACCESS_NETWORK_STATE, MODIFY_PHONE_STATE or carrier privileges.
+     * Accepts either READ_BASIC_PHONE_STATE, ACCESS_NETWORK_STATE, MODIFY_PHONE_STATE
+     * or carrier privileges.
      *
      * @return {@code true} if data is enabled else {@code false}
      */
     @Override
     public boolean isUserDataEnabled(int subId) {
+        String functionName = "isUserDataEnabled";
         try {
-            mApp.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NETWORK_STATE,
-                    null);
+            try {
+                mApp.enforceCallingOrSelfPermission(permission.READ_BASIC_PHONE_STATE,
+                        functionName);
+            } catch (Exception e) {
+                mApp.enforceCallingOrSelfPermission(permission.ACCESS_NETWORK_STATE, functionName);
+            }
         } catch (Exception e) {
             TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
-                    mApp, subId, "isUserDataEnabled");
+                    mApp, subId, functionName);
+
         }
 
         final long identity = Binder.clearCallingIdentity();
@@ -6666,27 +6556,38 @@
      */
     @Override
     public boolean isDataEnabled(int subId) {
+        String functionName = "isDataEnabled";
         try {
             try {
                 mApp.enforceCallingOrSelfPermission(
                         android.Manifest.permission.ACCESS_NETWORK_STATE,
-                        null);
+                        functionName);
             } catch (Exception e) {
-                mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE,
-                        "isDataEnabled");
+                try {
+                    mApp.enforceCallingOrSelfPermission(
+                            android.Manifest.permission.READ_PHONE_STATE,
+                            functionName);
+                } catch (Exception e2) {
+                    mApp.enforceCallingOrSelfPermission(
+                            permission.READ_BASIC_PHONE_STATE, functionName);
+                }
             }
         } catch (Exception e) {
-            enforceReadPrivilegedPermission("isDataEnabled");
+            enforceReadPrivilegedPermission(functionName);
         }
 
         final long identity = Binder.clearCallingIdentity();
         try {
             int phoneId = mSubscriptionController.getPhoneId(subId);
-            if (DBG) log("isDataEnabled: subId=" + subId + " phoneId=" + phoneId);
             Phone phone = PhoneFactory.getPhone(phoneId);
             if (phone != null) {
-                boolean retVal = phone.getDataEnabledSettings().isDataEnabled();
-                if (DBG) log("isDataEnabled: subId=" + subId + " retVal=" + retVal);
+                boolean retVal;
+                if (phone.isUsingNewDataStack()) {
+                    retVal = phone.getDataSettingsManager().isDataEnabled();
+                } else {
+                    retVal = phone.getDataEnabledSettings().isDataEnabled();
+                }
+                if (DBG) log("isDataEnabled: " + retVal + ", subId=" + subId);
                 return retVal;
             } else {
                 if (DBG) loge("isDataEnabled: no phone subId=" + subId + " retVal=false");
@@ -6706,12 +6607,24 @@
     @Override
     public boolean isDataEnabledForReason(int subId,
             @TelephonyManager.DataEnabledReason int reason) {
+        String functionName = "isDataEnabledForReason";
         try {
-            mApp.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NETWORK_STATE,
-                    null);
+            try {
+                mApp.enforceCallingOrSelfPermission(
+                        android.Manifest.permission.ACCESS_NETWORK_STATE,
+                        functionName);
+            } catch (Exception e) {
+                mApp.enforceCallingOrSelfPermission(permission.READ_BASIC_PHONE_STATE,
+                        functionName);
+            }
         } catch (Exception e) {
-            mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE,
-                    "isDataEnabledForReason");
+            try {
+                mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE,
+                        functionName);
+            } catch (Exception e2) {
+                TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
+                        mApp, subId, functionName);
+            }
         }
 
 
@@ -6725,10 +6638,14 @@
             Phone phone = PhoneFactory.getPhone(phoneId);
             if (phone != null) {
                 boolean retVal;
-                if (reason == TelephonyManager.DATA_ENABLED_REASON_USER) {
-                    retVal = phone.isUserDataEnabled();
+                if (phone.isUsingNewDataStack()) {
+                    retVal = phone.getDataSettingsManager().isDataEnabledForReason(reason);
                 } else {
-                    retVal = phone.getDataEnabledSettings().isDataEnabledForReason(reason);
+                    if (reason == TelephonyManager.DATA_ENABLED_REASON_USER) {
+                        retVal = phone.isUserDataEnabled();
+                    } else {
+                        retVal = phone.getDataEnabledSettings().isDataEnabledForReason(reason);
+                    }
                 }
                 if (DBG) log("isDataEnabledForReason: retVal=" + retVal);
                 return retVal;
@@ -6744,104 +6661,30 @@
         }
     }
 
-    private int getCarrierPrivilegeStatusFromCarrierConfigRules(int privilegeFromSim, int uid,
-            Phone phone) {
-        if (uid == Process.PHONE_UID) {
-            // Skip the check if it's the phone UID (system UID removed in b/184713596)
-            // TODO (b/184954344): Check for system/phone UID at call site instead of here
-            return TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
-        }
-
-        //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;
-
-        PackageManager pkgMgr = phone.getContext().getPackageManager();
-        String[] packages = pkgMgr.getPackagesForUid(uid);
-
-        final long identity = Binder.clearCallingIdentity();
-        try {
-            int subId = phone.getSubId();
-            if (mCarrierPrivilegeTestOverrideSubIds.contains(subId)) {
-                // A test override is in place for the privileges for this subId, so don't try to
-                // read the subscription privileges.
-                return privilegeFromSim;
-            }
-            SubscriptionInfo subInfo = subController.getSubscriptionInfo(subId);
-            SubscriptionManager subManager = (SubscriptionManager)
-                    phone.getContext().getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
-            for (String pkg : packages) {
-                if (subManager.canManageSubscription(subInfo, pkg)) {
-                    return TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
-                }
-            }
-            return privilegeFromSim;
-        } finally {
-            Binder.restoreCallingIdentity(identity);
-        }
-    }
-
-    private int getCarrierPrivilegeStatusFromCarrierConfigRules(int privilegeFromSim, Phone phone,
-            String pkgName) {
-        //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;
-
-        final long identity = Binder.clearCallingIdentity();
-        try {
-            int subId = phone.getSubId();
-            if (mCarrierPrivilegeTestOverrideSubIds.contains(subId)) {
-                // A test override is in place for the privileges for this subId, so don't try to
-                // read the subscription privileges.
-                return privilegeFromSim;
-            }
-            SubscriptionInfo subInfo = subController.getSubscriptionInfo(subId);
-            SubscriptionManager subManager = (SubscriptionManager)
-                    phone.getContext().getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
-            return subManager.canManageSubscription(subInfo, pkgName)
-                ? TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS : privilegeFromSim;
-        } finally {
-            Binder.restoreCallingIdentity(identity);
-        }
-    }
-
     @Override
     public int getCarrierPrivilegeStatus(int subId) {
-        final Phone phone = getPhone(subId);
-        if (phone == null) {
-            loge("getCarrierPrivilegeStatus: Invalid subId");
-            return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
-        }
-        UiccCard card = UiccController.getInstance().getUiccCard(phone.getPhoneId());
-        if (card == null) {
-            loge("getCarrierPrivilegeStatus: No UICC");
-            return TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
-        }
-
-        return getCarrierPrivilegeStatusFromCarrierConfigRules(
-            card.getCarrierPrivilegeStatusForCurrentTransaction(
-                phone.getContext().getPackageManager()), Binder.getCallingUid(), phone);
+        // No permission needed; this only lets the caller inspect their own status.
+        return getCarrierPrivilegeStatusForUidWithPermission(subId, Binder.getCallingUid());
     }
 
     @Override
     public int getCarrierPrivilegeStatusForUid(int subId, int uid) {
         enforceReadPrivilegedPermission("getCarrierPrivilegeStatusForUid");
-        final Phone phone = getPhone(subId);
+        return getCarrierPrivilegeStatusForUidWithPermission(subId, uid);
+    }
+
+    private int getCarrierPrivilegeStatusForUidWithPermission(int subId, int uid) {
+        Phone phone = getPhone(subId);
         if (phone == null) {
             loge("getCarrierPrivilegeStatusForUid: Invalid subId");
             return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
         }
-        UiccProfile profile =
-                UiccController.getInstance().getUiccProfileForPhone(phone.getPhoneId());
-        if (profile == null) {
-            loge("getCarrierPrivilegeStatusForUid: No UICC");
+        CarrierPrivilegesTracker cpt = phone.getCarrierPrivilegesTracker();
+        if (cpt == null) {
+            loge("getCarrierPrivilegeStatusForUid: No CarrierPrivilegesTracker");
             return TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
         }
-        return getCarrierPrivilegeStatusFromCarrierConfigRules(
-                profile.getCarrierPrivilegeStatusForUid(
-                        phone.getContext().getPackageManager(), uid), uid, phone);
+        return cpt.getCarrierPrivilegeStatusForUid(uid);
     }
 
     @Override
@@ -6850,97 +6693,80 @@
         if (TextUtils.isEmpty(pkgName)) {
             return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
         }
-
-        int phoneId = SubscriptionManager.getPhoneId(subId);
-        UiccCard card = UiccController.getInstance().getUiccCard(phoneId);
-        if (card == null) {
-            loge("checkCarrierPrivilegesForPackage: No UICC on subId " + subId);
+        Phone phone = getPhone(subId);
+        if (phone == null) {
+            loge("checkCarrierPrivilegesForPackage: Invalid subId");
+            return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
+        }
+        CarrierPrivilegesTracker cpt = phone.getCarrierPrivilegesTracker();
+        if (cpt == null) {
+            loge("checkCarrierPrivilegesForPackage: No CarrierPrivilegesTracker");
             return TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
         }
-        return getCarrierPrivilegeStatusFromCarrierConfigRules(
-            card.getCarrierPrivilegeStatus(mApp.getPackageManager(), pkgName),
-            getPhone(phoneId), pkgName);
+        return cpt.getCarrierPrivilegeStatusForPackage(pkgName);
     }
 
     @Override
     public int checkCarrierPrivilegesForPackageAnyPhone(String pkgName) {
-        // TODO(b/186774706): Remove @RequiresPermission from TelephonyManager API
-        if (TextUtils.isEmpty(pkgName))
-            return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
-        int result = TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
-        for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
-            UiccCard card = UiccController.getInstance().getUiccCard(i);
-            if (card == null) {
-              // No UICC in that slot.
-              continue;
-            }
+        enforceReadPrivilegedPermission("checkCarrierPrivilegesForPackageAnyPhone");
+        return checkCarrierPrivilegesForPackageAnyPhoneWithPermission(pkgName);
+    }
 
-            result = getCarrierPrivilegeStatusFromCarrierConfigRules(
-                card.getCarrierPrivilegeStatus(mApp.getPackageManager(), pkgName),
-                getPhone(i), pkgName);
+    private int checkCarrierPrivilegesForPackageAnyPhoneWithPermission(String pkgName) {
+        if (TextUtils.isEmpty(pkgName)) {
+            return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
+        }
+        int result = TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
+        for (int phoneId = 0; phoneId < TelephonyManager.getDefault().getPhoneCount(); phoneId++) {
+            Phone phone = PhoneFactory.getPhone(phoneId);
+            if (phone == null) {
+                continue;
+            }
+            CarrierPrivilegesTracker cpt = phone.getCarrierPrivilegesTracker();
+            if (cpt == null) {
+                continue;
+            }
+            result = cpt.getCarrierPrivilegeStatusForPackage(pkgName);
             if (result == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
                 break;
             }
         }
-
         return result;
     }
 
     @Override
     public List<String> getCarrierPackageNamesForIntentAndPhone(Intent intent, int phoneId) {
         enforceReadPrivilegedPermission("getCarrierPackageNamesForIntentAndPhone");
-        if (!SubscriptionManager.isValidPhoneId(phoneId)) {
-            loge("phoneId " + phoneId + " is not valid.");
-            return null;
+        Phone phone = PhoneFactory.getPhone(phoneId);
+        if (phone == null) {
+            return Collections.emptyList();
         }
-        UiccCard card = UiccController.getInstance().getUiccCard(phoneId);
-        if (card == null) {
-            loge("getCarrierPackageNamesForIntentAndPhone: No UICC");
-            return null ;
+        CarrierPrivilegesTracker cpt = phone.getCarrierPrivilegesTracker();
+        if (cpt == null) {
+            return Collections.emptyList();
         }
-        return card.getCarrierPackageNamesForIntent(mApp.getPackageManager(), intent);
+        return cpt.getCarrierPackageNamesForIntent(intent);
     }
 
     @Override
     public List<String> getPackagesWithCarrierPrivileges(int phoneId) {
         enforceReadPrivilegedPermission("getPackagesWithCarrierPrivileges");
-        PackageManager pm = mApp.getPackageManager();
-        List<String> privilegedPackages = new ArrayList<>();
-        List<PackageInfo> packages = null;
-        UiccCard card = UiccController.getInstance().getUiccCard(phoneId);
-        // has UICC in that slot.
-        if (card != null) {
-            if (card.hasCarrierPrivilegeRules()) {
-                if (packages == null) {
-                    // Only check packages in user 0 for now
-                    packages = pm.getInstalledPackagesAsUser(
-                        PackageManager.MATCH_DISABLED_COMPONENTS
-                            | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
-                            | PackageManager.GET_SIGNING_CERTIFICATES,
-                            UserHandle.SYSTEM.getIdentifier());
-                }
-                for (int p = packages.size() - 1; p >= 0; p--) {
-                    PackageInfo pkgInfo = packages.get(p);
-                    if (pkgInfo != null && pkgInfo.packageName != null
-                            && getCarrierPrivilegeStatusFromCarrierConfigRules(
-                                    card.getCarrierPrivilegeStatus(pkgInfo),
-                                    getPhone(phoneId), pkgInfo.packageName)
-                            == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
-                        privilegedPackages.add(pkgInfo.packageName);
-                    }
-                }
-            }
+        Phone phone = PhoneFactory.getPhone(phoneId);
+        if (phone == null) {
+            return Collections.emptyList();
         }
-        return privilegedPackages;
+        CarrierPrivilegesTracker cpt = phone.getCarrierPrivilegesTracker();
+        if (cpt == null) {
+            return Collections.emptyList();
+        }
+        return new ArrayList<>(cpt.getPackagesWithCarrierPrivileges());
     }
 
     @Override
     public List<String> getPackagesWithCarrierPrivilegesForAllPhones() {
         enforceReadPrivilegedPermission("getPackagesWithCarrierPrivilegesForAllPhones");
-
+        Set<String> privilegedPackages = new ArraySet<>();
         final long identity = Binder.clearCallingIdentity();
-
-        List<String> privilegedPackages = new ArrayList<>();
         try {
             for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
                 privilegedPackages.addAll(getPackagesWithCarrierPrivileges(i));
@@ -6948,16 +6774,31 @@
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
-        return privilegedPackages;
+        return new ArrayList<>(privilegedPackages);
+    }
+
+    @Override
+    public @Nullable String getCarrierServicePackageNameForLogicalSlot(int logicalSlotIndex) {
+        enforceReadPrivilegedPermission("getCarrierServicePackageNameForLogicalSlot");
+
+        final Phone phone = PhoneFactory.getPhone(logicalSlotIndex);
+        if (phone == null) {
+            return null;
+        }
+        final CarrierPrivilegesTracker cpt = phone.getCarrierPrivilegesTracker();
+        if (cpt == null) {
+            return null;
+        }
+        return cpt.getCarrierServicePackageName();
     }
 
     private String getIccId(int subId) {
         final Phone phone = getPhone(subId);
-        UiccCard card = phone == null ? null : phone.getUiccCard();
-        if (card == null) {
+        UiccPort port = phone == null ? null : phone.getUiccPort();
+        if (port == null) {
             return null;
         }
-        String iccId = card.getIccId();
+        String iccId = port.getIccId();
         if (TextUtils.isEmpty(iccId)) {
             return null;
         }
@@ -7614,16 +7455,6 @@
     }
 
     @Override
-    public int getSubIdForPhoneAccount(PhoneAccount phoneAccount) {
-        final long identity = Binder.clearCallingIdentity();
-        try {
-            return PhoneUtils.getSubIdForPhoneAccount(phoneAccount);
-        } finally {
-            Binder.restoreCallingIdentity(identity);
-        }
-    }
-
-    @Override
     public int getSubIdForPhoneAccountHandle(
             PhoneAccountHandle phoneAccountHandle, String callingPackage, String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(mApp, getDefaultSubscription(),
@@ -7710,7 +7541,7 @@
     }
 
     @Override
-    public void factoryReset(int subId) {
+    public void factoryReset(int subId, String callingPackage) {
         enforceSettingsPermission();
         if (mUserManager.hasUserRestriction(UserManager.DISALLOW_NETWORK_RESET)) {
             return;
@@ -7726,7 +7557,7 @@
             if (SubscriptionManager.isUsableSubIdValue(subId) && !mUserManager.hasUserRestriction(
                     UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)) {
                 setDataEnabledForReason(subId, TelephonyManager.DATA_ENABLED_REASON_USER,
-                        getDefaultDataEnabled());
+                        getDefaultDataEnabled(), callingPackage);
                 setNetworkSelectionModeAutomatic(subId);
                 Phone phone = getPhone(subId);
                 cleanUpAllowedNetworkTypes(phone, subId);
@@ -7842,8 +7673,8 @@
                 mApp.getAttributionTag());
     }
 
-    private final ModemActivityInfo mLastModemActivityInfo =
-            new ModemActivityInfo(0, 0, 0, new int[ModemActivityInfo.getNumTxPowerLevels()], 0);
+    private ActivityStatsTechSpecificInfo[] mLastModemActivitySpecificInfo = null;
+    private ModemActivityInfo mLastModemActivityInfo = null;
 
     /**
      * Responds to the ResultReceiver with the {@link android.telephony.ModemActivityInfo} object
@@ -7883,50 +7714,140 @@
             && (totalTxTimeMs <= activityDurationMs));
     }
 
+    private void updateLastModemActivityInfo(ModemActivityInfo info, int rat, int freq) {
+        int[] mergedTxTimeMs = new int [ModemActivityInfo.getNumTxPowerLevels()];
+        int[] txTimeMs = info.getTransmitTimeMillis(rat, freq);
+        int[] lastModemTxTimeMs = mLastModemActivityInfo.getTransmitTimeMillis(rat, freq);
+
+        for (int lvl = 0; lvl < mergedTxTimeMs.length; lvl++) {
+            mergedTxTimeMs[lvl] = txTimeMs[lvl] + lastModemTxTimeMs[lvl];
+        }
+
+        mLastModemActivityInfo.setTransmitTimeMillis(rat, freq, mergedTxTimeMs);
+        mLastModemActivityInfo.setReceiveTimeMillis(
+                rat,
+                freq,
+                info.getReceiveTimeMillis(rat, freq)
+                        + mLastModemActivityInfo.getReceiveTimeMillis(rat, freq));
+    }
+
+    private void updateLastModemActivityInfo(ModemActivityInfo info, int rat) {
+        int[] mergedTxTimeMs = new int [ModemActivityInfo.getNumTxPowerLevels()];
+        int[] txTimeMs = info.getTransmitTimeMillis(rat);
+        int[] lastModemTxTimeMs = mLastModemActivityInfo.getTransmitTimeMillis(rat);
+
+        for (int lvl = 0; lvl < mergedTxTimeMs.length; lvl++) {
+            mergedTxTimeMs[lvl] = txTimeMs[lvl] + lastModemTxTimeMs[lvl];
+        }
+        mLastModemActivityInfo.setTransmitTimeMillis(rat, mergedTxTimeMs);
+        mLastModemActivityInfo.setReceiveTimeMillis(
+                rat,
+                info.getReceiveTimeMillis(rat) + mLastModemActivityInfo.getReceiveTimeMillis(rat));
+    }
+
+   /**
+    * Merge this ModemActivityInfo with mLastModemActivitySpecificInfo
+    * @param info recent ModemActivityInfo
+    */
+    private void mergeModemActivityInfo(ModemActivityInfo info) {
+        List<ActivityStatsTechSpecificInfo> merged = new ArrayList<>();
+        ActivityStatsTechSpecificInfo mDeltaSpecificInfo;
+        boolean matched;
+        for (int i = 0; i < info.getSpecificInfoLength(); i++) {
+            matched = false;
+            int rat = info.getSpecificInfoRat(i);
+            int freq = info.getSpecificInfoFrequencyRange(i);
+            //Check each ActivityStatsTechSpecificInfo in this ModemActivityInfo for new rat returns
+            //Add a new ActivityStatsTechSpecificInfo if is a new rat, and merge with the original
+            //if it already exists
+            for (int j = 0; j < mLastModemActivitySpecificInfo.length; j++) {
+                if (rat == mLastModemActivityInfo.getSpecificInfoRat(j) && !matched) {
+                    //Merged based on frequency range (MMWAVE vs SUB6) for 5G
+                    if (rat == AccessNetworkConstants.AccessNetworkType.NGRAN) {
+                        if (freq == mLastModemActivityInfo.getSpecificInfoFrequencyRange(j)) {
+                            updateLastModemActivityInfo(info, rat, freq);
+                            matched = true;
+                        }
+                    } else {
+                        updateLastModemActivityInfo(info, rat);
+                        matched = true;
+                    }
+                }
+            }
+
+            if (!matched) {
+                mDeltaSpecificInfo =
+                        new ActivityStatsTechSpecificInfo(
+                                rat,
+                                freq,
+                                info.getTransmitTimeMillis(rat, freq),
+                                (int) info.getReceiveTimeMillis(rat, freq));
+                merged.addAll(Arrays.asList(mDeltaSpecificInfo));
+            }
+        }
+        merged.addAll(Arrays.asList(mLastModemActivitySpecificInfo));
+        mLastModemActivitySpecificInfo =
+                new ActivityStatsTechSpecificInfo[merged.size()];
+        merged.toArray(mLastModemActivitySpecificInfo);
+
+        mLastModemActivityInfo.setTimestamp(info.getTimestampMillis());
+        mLastModemActivityInfo.setSleepTimeMillis(
+                info.getSleepTimeMillis()
+                + mLastModemActivityInfo.getSleepTimeMillis());
+        mLastModemActivityInfo.setIdleTimeMillis(
+                info.getIdleTimeMillis()
+                + mLastModemActivityInfo.getIdleTimeMillis());
+    }
+
     /**
-     * {@hide}
      * Returns the service state information on specified subscription.
      */
     @Override
-    public ServiceState getServiceStateForSubscriber(int subId, String callingPackage,
-            String callingFeatureId) {
+    public ServiceState getServiceStateForSubscriber(int subId,
+            boolean renounceFineLocationAccess, boolean renounceCoarseLocationAccess,
+            String callingPackage, String callingFeatureId) {
         if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
                 mApp, subId, callingPackage, callingFeatureId, "getServiceStateForSubscriber")) {
             return null;
         }
 
-        LocationAccessPolicy.LocationPermissionResult fineLocationResult =
-                LocationAccessPolicy.checkLocationPermission(mApp,
-                        new LocationAccessPolicy.LocationPermissionQuery.Builder()
-                                .setCallingPackage(callingPackage)
-                                .setCallingFeatureId(callingFeatureId)
-                                .setCallingPid(Binder.getCallingPid())
-                                .setCallingUid(Binder.getCallingUid())
-                                .setMethod("getServiceStateForSubscriber")
-                                .setLogAsInfo(true)
-                                .setMinSdkVersionForFine(Build.VERSION_CODES.Q)
-                                .setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
-                                .setMinSdkVersionForEnforcement(Build.VERSION_CODES.Q)
-                                .build());
+        boolean hasFinePermission = false;
+        boolean hasCoarsePermission = false;
+        if (!renounceFineLocationAccess) {
+            LocationAccessPolicy.LocationPermissionResult fineLocationResult =
+                    LocationAccessPolicy.checkLocationPermission(mApp,
+                            new LocationAccessPolicy.LocationPermissionQuery.Builder()
+                                    .setCallingPackage(callingPackage)
+                                    .setCallingFeatureId(callingFeatureId)
+                                    .setCallingPid(Binder.getCallingPid())
+                                    .setCallingUid(Binder.getCallingUid())
+                                    .setMethod("getServiceStateForSubscriber")
+                                    .setLogAsInfo(true)
+                                    .setMinSdkVersionForFine(Build.VERSION_CODES.Q)
+                                    .setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
+                                    .setMinSdkVersionForEnforcement(Build.VERSION_CODES.Q)
+                                    .build());
+            hasFinePermission =
+                    fineLocationResult == LocationAccessPolicy.LocationPermissionResult.ALLOWED;
+        }
 
-        LocationAccessPolicy.LocationPermissionResult coarseLocationResult =
-                LocationAccessPolicy.checkLocationPermission(mApp,
-                        new LocationAccessPolicy.LocationPermissionQuery.Builder()
-                                .setCallingPackage(callingPackage)
-                                .setCallingFeatureId(callingFeatureId)
-                                .setCallingPid(Binder.getCallingPid())
-                                .setCallingUid(Binder.getCallingUid())
-                                .setMethod("getServiceStateForSubscriber")
-                                .setLogAsInfo(true)
-                                .setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
-                                .setMinSdkVersionForFine(Integer.MAX_VALUE)
-                                .setMinSdkVersionForEnforcement(Build.VERSION_CODES.Q)
-                                .build());
-        // We don't care about hard or soft here -- all we need to know is how much info to scrub.
-        boolean hasFinePermission =
-                fineLocationResult == LocationAccessPolicy.LocationPermissionResult.ALLOWED;
-        boolean hasCoarsePermission =
-                coarseLocationResult == LocationAccessPolicy.LocationPermissionResult.ALLOWED;
+        if (!renounceCoarseLocationAccess) {
+            LocationAccessPolicy.LocationPermissionResult coarseLocationResult =
+                    LocationAccessPolicy.checkLocationPermission(mApp,
+                            new LocationAccessPolicy.LocationPermissionQuery.Builder()
+                                    .setCallingPackage(callingPackage)
+                                    .setCallingFeatureId(callingFeatureId)
+                                    .setCallingPid(Binder.getCallingPid())
+                                    .setCallingUid(Binder.getCallingUid())
+                                    .setMethod("getServiceStateForSubscriber")
+                                    .setLogAsInfo(true)
+                                    .setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
+                                    .setMinSdkVersionForFine(Integer.MAX_VALUE)
+                                    .setMinSdkVersionForEnforcement(Build.VERSION_CODES.Q)
+                                    .build());
+            hasCoarsePermission =
+                    coarseLocationResult == LocationAccessPolicy.LocationPermissionResult.ALLOWED;
+        }
 
         final Phone phone = getPhone(subId);
         if (phone == null) {
@@ -8135,7 +8056,7 @@
             }
             String aid = null;
             try {
-                aid = UiccController.getInstance().getUiccCard(phone.getPhoneId())
+                aid = UiccController.getInstance().getUiccPort(phone.getPhoneId())
                         .getApplicationByType(appType).getAid();
             } catch (Exception e) {
                 Log.e(LOG_TAG, "Not getting aid. Exception ex=" + e);
@@ -8437,13 +8358,14 @@
     /**
      * Policy control of data connection with reason {@@TelephonyManager.DataEnabledReason}
      * @param subId Subscription index
-     * @param reason the reason the data enable change is taking place
+     * @param reason The reason the data enable change is taking place.
      * @param enabled True if enabling the data, otherwise disabling.
+     * @param callingPackage The package that changed the data enabled state.
      * @hide
      */
     @Override
     public void setDataEnabledForReason(int subId, @TelephonyManager.DataEnabledReason int reason,
-            boolean enabled) {
+            boolean enabled, String callingPackage) {
         if (reason == TelephonyManager.DATA_ENABLED_REASON_USER
                 || reason == TelephonyManager.DATA_ENABLED_REASON_CARRIER) {
             try {
@@ -8463,7 +8385,12 @@
                 if (reason == TelephonyManager.DATA_ENABLED_REASON_CARRIER) {
                     phone.carrierActionSetMeteredApnsEnabled(enabled);
                 } else {
-                    phone.getDataEnabledSettings().setDataEnabled(reason, enabled);
+                    if (phone.isUsingNewDataStack()) {
+                        phone.getDataSettingsManager().setDataEnabled(
+                                reason, enabled, callingPackage);
+                    } else {
+                        phone.getDataEnabledSettings().setDataEnabled(reason, enabled);
+                    }
                 }
             }
         } finally {
@@ -8499,6 +8426,16 @@
 
     private WorkSource getWorkSource(int uid) {
         String packageName = mApp.getPackageManager().getNameForUid(uid);
+        if (uid == Process.ROOT_UID && packageName == null) {
+            // Downstream WorkSource attribution inside the RIL requires both a UID and package name
+            // to be set for wakelock tracking, otherwise RIL requests fail with a runtime
+            // exception. ROOT_UID seems not to have a valid package name returned by
+            // PackageManager, so just fake it here to avoid issues when running telephony shell
+            // commands that plumb through the RIL as root, like so:
+            // $ adb root
+            // $ adb shell cmd phone ...
+            packageName = "root";
+        }
         return new WorkSource(uid, packageName);
     }
 
@@ -8648,6 +8585,7 @@
      *
      * <p>Requires one of the following permissions:
      * {@link android.Manifest.permission#ACCESS_NETWORK_STATE},
+     * {@link android.Manifest.permission#READ_BASIC_PHONE_STATE},
      * {@link android.Manifest.permission#READ_PHONE_STATE} or that the calling app has carrier
      * privileges.
      *
@@ -8657,12 +8595,19 @@
      */
     @Override
     public boolean isDataRoamingEnabled(int subId) {
+        String functionName = "isDataRoamingEnabled";
         try {
-            mApp.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NETWORK_STATE,
-                    null);
+            try {
+                mApp.enforceCallingOrSelfPermission(
+                        android.Manifest.permission.ACCESS_NETWORK_STATE,
+                        functionName);
+            } catch (Exception e) {
+                mApp.enforceCallingOrSelfPermission(
+                        permission.READ_BASIC_PHONE_STATE, functionName);
+            }
         } catch (Exception e) {
             TelephonyPermissions.enforceCallingOrSelfReadPhoneStatePermissionOrCarrierPrivilege(
-                    mApp, subId, "isDataRoamingEnabled");
+                    mApp, subId, functionName);
         }
 
         boolean isEnabled = false;
@@ -8722,25 +8667,44 @@
         return isAllowed;
     }
 
+    private boolean haveCarrierPrivilegeAccess(UiccPort port, String callingPackage) {
+        UiccProfile profile = port.getUiccProfile();
+        if (profile == null) {
+            return false;
+        }
+        Phone phone = PhoneFactory.getPhone(profile.getPhoneId());
+        if (phone == null) {
+            return false;
+        }
+        CarrierPrivilegesTracker cpt = phone.getCarrierPrivilegesTracker();
+        return cpt != null && cpt.getCarrierPrivilegeStatusForPackage(callingPackage)
+                == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
+    }
+
     @Override
     public List<UiccCardInfo> getUiccCardsInfo(String callingPackage) {
-        // Verify that tha callingPackage belongs to the calling UID
+        // Verify that the callingPackage belongs to the calling UID
         mApp.getSystemService(AppOpsManager.class)
                 .checkPackage(Binder.getCallingUid(), callingPackage);
 
         boolean hasReadPermission = false;
+        boolean isIccIdAccessRestricted = false;
         try {
             enforceReadPrivilegedPermission("getUiccCardsInfo");
             hasReadPermission = true;
         } catch (SecurityException e) {
             // even without READ_PRIVILEGED_PHONE_STATE, we allow the call to continue if the caller
             // has carrier privileges on an active UICC
-            if (checkCarrierPrivilegesForPackageAnyPhone(callingPackage)
+            if (checkCarrierPrivilegesForPackageAnyPhoneWithPermission(callingPackage)
                         != TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
                 throw new SecurityException("Caller does not have permission.");
             }
         }
-
+        // checking compatibility, if calling app's target SDK is T and beyond.
+        if (CompatChanges.isChangeEnabled(GET_API_SIGNATURES_FROM_UICC_PORT_INFO,
+                Binder.getCallingUid())) {
+            isIccIdAccessRestricted = true;
+        }
         final long identity = Binder.clearCallingIdentity();
         try {
             UiccController uiccController = UiccController.getInstance();
@@ -8752,21 +8716,44 @@
             // Remove private info if the caller doesn't have access
             ArrayList<UiccCardInfo> filteredInfos = new ArrayList<>();
             for (UiccCardInfo cardInfo : cardInfos) {
+                //setting the value after compatibility check
+                cardInfo.setIccIdAccessRestricted(isIccIdAccessRestricted);
                 // For an inactive eUICC, the UiccCard will be null even though the UiccCardInfo
                 // is available
-                UiccCard card = uiccController.getUiccCardForSlot(cardInfo.getSlotIndex());
-                if (card == null || card.getUiccProfile() == null) {
-                    // assume no access if the card or profile is unavailable
-                    filteredInfos.add(cardInfo.getUnprivileged());
+                UiccCard card = uiccController.getUiccCardForSlot(cardInfo.getPhysicalSlotIndex());
+                if (card == null) {
+                    // assume no access if the card is unavailable
+                    filteredInfos.add(getUiccCardInfoUnPrivileged(cardInfo));
                     continue;
                 }
-                UiccProfile profile = card.getUiccProfile();
-                if (profile.getCarrierPrivilegeStatus(mApp.getPackageManager(), callingPackage)
-                        == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
-                    filteredInfos.add(cardInfo);
-                } else {
-                    filteredInfos.add(cardInfo.getUnprivileged());
+                Collection<UiccPortInfo> portInfos = cardInfo.getPorts();
+                if (portInfos.isEmpty()) {
+                    filteredInfos.add(getUiccCardInfoUnPrivileged(cardInfo));
+                    continue;
                 }
+                List<UiccPortInfo> uiccPortInfos = new  ArrayList<>();
+                for (UiccPortInfo portInfo : portInfos) {
+                    UiccPort port = uiccController.getUiccPortForSlot(
+                            cardInfo.getPhysicalSlotIndex(), portInfo.getPortIndex());
+                    if (port == null) {
+                        // assume no access if port is null
+                        uiccPortInfos.add(getUiccPortInfoUnPrivileged(portInfo));
+                        continue;
+                    }
+                    if (haveCarrierPrivilegeAccess(port, callingPackage)) {
+                        uiccPortInfos.add(portInfo);
+                    } else {
+                        uiccPortInfos.add(getUiccPortInfoUnPrivileged(portInfo));
+                    }
+                }
+                filteredInfos.add(new UiccCardInfo(
+                        cardInfo.isEuicc(),
+                        cardInfo.getCardId(),
+                        null,
+                        cardInfo.getPhysicalSlotIndex(),
+                        cardInfo.isRemovable(),
+                        cardInfo.isMultipleEnabledProfilesSupported(),
+                        uiccPortInfos));
             }
             return filteredInfos;
         } finally {
@@ -8774,18 +8761,67 @@
         }
     }
 
+    /**
+     * Returns a copy of the UiccCardinfo with the EID and ICCID set to null. These values are
+     * generally private and require carrier privileges to view.
+     *
+     * @hide
+     */
+    @NonNull
+    public UiccCardInfo getUiccCardInfoUnPrivileged(UiccCardInfo cardInfo) {
+        List<UiccPortInfo> portinfo = new  ArrayList<>();
+        for (UiccPortInfo portinfos : cardInfo.getPorts()) {
+            portinfo.add(getUiccPortInfoUnPrivileged(portinfos));
+        }
+        return new UiccCardInfo(
+                cardInfo.isEuicc(),
+                cardInfo.getCardId(),
+                null,
+                cardInfo.getPhysicalSlotIndex(),
+                cardInfo.isRemovable(),
+                cardInfo.isMultipleEnabledProfilesSupported(),
+                portinfo
+        );
+    }
+
+    /**
+     * @hide
+     * @return a copy of the UiccPortInfo with ICCID set to {@link UiccPortInfo#ICCID_REDACTED}.
+     * These values are generally private and require carrier privileges to view.
+     */
+    @NonNull
+    public UiccPortInfo getUiccPortInfoUnPrivileged(UiccPortInfo portInfo) {
+        return new UiccPortInfo(
+                UiccPortInfo.ICCID_REDACTED,
+                portInfo.getPortIndex(),
+                portInfo.getLogicalSlotIndex(),
+                portInfo.isActive()
+        );
+    }
     @Override
-    public UiccSlotInfo[] getUiccSlotsInfo() {
+    public UiccSlotInfo[] getUiccSlotsInfo(String callingPackage) {
+        // Verify that the callingPackage belongs to the calling UID
+        mApp.getSystemService(AppOpsManager.class)
+                .checkPackage(Binder.getCallingUid(), callingPackage);
+
+        boolean isLogicalSlotAccessRestricted = false;
+
+        // This will make sure caller has the READ_PRIVILEGED_PHONE_STATE. Do not remove this as
+        // we are reading iccId which is PII data.
         enforceReadPrivilegedPermission("getUiccSlotsInfo");
 
+        // checking compatibility, if calling app's target SDK is T and beyond.
+        if (CompatChanges.isChangeEnabled(GET_API_SIGNATURES_FROM_UICC_PORT_INFO,
+                Binder.getCallingUid())) {
+            isLogicalSlotAccessRestricted  = true;
+        }
         final long identity = Binder.clearCallingIdentity();
         try {
             UiccSlot[] slots = UiccController.getInstance().getUiccSlots();
-            if (slots == null) {
-                Rlog.i(LOG_TAG, "slots is null.");
+            if (slots == null || slots.length == 0) {
+                Rlog.i(LOG_TAG, "slots is null or empty.");
                 return null;
             }
-
             UiccSlotInfo[] infos = new UiccSlotInfo[slots.length];
             for (int i = 0; i < slots.length; i++) {
                 UiccSlot slot = slots[i];
@@ -8800,7 +8836,8 @@
                 } else {
                     cardId = slot.getEid();
                     if (TextUtils.isEmpty(cardId)) {
-                        cardId = slot.getIccId();
+                        // If cardId is null, use iccId of default port as cardId.
+                        cardId = slot.getIccId(TelephonyManager.DEFAULT_PORT_INDEX);
                     }
                 }
 
@@ -8828,15 +8865,22 @@
                         break;
 
                 }
-
+                List<UiccPortInfo> portInfos = new ArrayList<>();
+                int[] portIndexes = slot.getPortList();
+                for (int portIdx : portIndexes) {
+                    String iccId = IccUtils.stripTrailingFs(getIccId(slot, portIdx,
+                            callingPackage, /* hasReadPermission= */ true));
+                    portInfos.add(new UiccPortInfo(iccId, portIdx,
+                            slot.getPhoneIdFromPortIndex(portIdx), slot.isPortActive(portIdx)));
+                }
                 infos[i] = new UiccSlotInfo(
-                        slot.isActive(),
                         slot.isEuicc(),
                         cardId,
                         cardState,
-                        slot.getPhoneId(),
                         slot.isExtendedApduSupported(),
-                        slot.isRemovable());
+                        slot.isRemovable(), portInfos);
+                //setting the value after compatibility check
+                infos[i].setLogicalSlotAccessRestricted(isLogicalSlotAccessRestricted);
             }
             return infos;
         } finally {
@@ -8844,13 +8888,52 @@
         }
     }
 
+    /* Returns null if doesn't have read permission or carrier privilege access. */
+    private String getIccId(UiccSlot slot, int portIndex, String callingPackage,
+            boolean hasReadPermission) {
+        String iccId = slot.getIccId(portIndex);
+        if (hasReadPermission) { // if has read permission
+            return iccId;
+        } else {
+            if (slot.getUiccCard() != null && slot.getUiccCard().getUiccPort(portIndex) != null) {
+                UiccPort port = slot.getUiccCard().getUiccPort(portIndex);
+                // if no read permission, checking carrier privilege access
+                if (haveCarrierPrivilegeAccess(port, callingPackage)) {
+                    return iccId;
+                }
+            }
+        }
+        // No read permission or carrier privilege access.
+        return UiccPortInfo.ICCID_REDACTED;
+    }
+
     @Override
+    @Deprecated
     public boolean switchSlots(int[] physicalSlots) {
         enforceModifyPermission();
 
         final long identity = Binder.clearCallingIdentity();
         try {
-            return (Boolean) sendRequest(CMD_SWITCH_SLOTS, physicalSlots);
+            List<UiccSlotMapping> slotMappings = new ArrayList<>();
+            for (int i = 0; i < physicalSlots.length; i++) {
+                // Deprecated API, hence MEP is not supported. Adding default portIndex 0.
+                slotMappings.add(new UiccSlotMapping(TelephonyManager.DEFAULT_PORT_INDEX,
+                        physicalSlots[i], i));
+            }
+            return (Boolean) sendRequest(CMD_SWITCH_SLOTS, slotMappings);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
+    @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
+    public boolean setSimSlotMapping(@NonNull List<UiccSlotMapping> slotMapping) {
+        enforceModifyPermission();
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            return (Boolean) sendRequest(CMD_SWITCH_SLOTS, slotMapping);
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -8883,11 +8966,11 @@
             if (phone == null) {
                 return;
             }
-            UiccCard uiccCard = phone.getUiccCard();
-            if (uiccCard == null) {
+            UiccPort uiccPort = phone.getUiccPort();
+            if (uiccPort == null) {
                 return;
             }
-            UiccProfile uiccProfile = uiccCard.getUiccProfile();
+            UiccProfile uiccProfile = uiccPort.getUiccProfile();
             if (uiccProfile == null) {
                 return;
             }
@@ -8943,6 +9026,11 @@
                 loge("setCarrierTestOverride fails with invalid subId: " + subId);
                 return;
             }
+            CarrierPrivilegesTracker cpt = phone.getCarrierPrivilegesTracker();
+            if (cpt != null) {
+                cpt.setTestOverrideCarrierPrivilegeRules(carrierPrivilegeRules);
+            }
+            // TODO(b/211796398): remove the legacy logic below once CPT migration is done.
             phone.setCarrierTestOverride(mccmnc, imsi, iccid, gid1, gid2, plmn, spn,
                     carrierPrivilegeRules, apn);
             if (carrierPrivilegeRules == null) {
@@ -9394,11 +9482,11 @@
         }
         final long identity = Binder.clearCallingIdentity();
         try {
-            UiccCard uiccCard = phone.getUiccCard();
-            if (uiccCard == null) {
+            UiccPort uiccPort = phone.getUiccPort();
+            if (uiccPort == null) {
                 return false;
             }
-            UiccProfile uiccProfile = uiccCard.getUiccProfile();
+            UiccProfile uiccProfile = uiccPort.getUiccProfile();
             if (uiccProfile == null) {
                 return false;
             }
@@ -9439,21 +9527,26 @@
     }
 
     @Override
-    public int[] getSlotsMapping() {
+    public List<UiccSlotMapping> getSlotsMapping(String callingPackage) {
         enforceReadPrivilegedPermission("getSlotsMapping");
-
+        // Verify that the callingPackage belongs to the calling UID
+        mApp.getSystemService(AppOpsManager.class)
+                .checkPackage(Binder.getCallingUid(), callingPackage);
         final long identity = Binder.clearCallingIdentity();
+        List<UiccSlotMapping> slotMap = new ArrayList<>();
         try {
-            int phoneCount = TelephonyManager.getDefault().getPhoneCount();
-            // All logical slots should have a mapping to a physical slot.
-            int[] logicalSlotsMapping = new int[phoneCount];
-            UiccSlotInfo[] slotInfos = getUiccSlotsInfo();
-            for (int i = 0; i < slotInfos.length; i++) {
-                if (SubscriptionManager.isValidPhoneId(slotInfos[i].getLogicalSlotIdx())) {
-                    logicalSlotsMapping[slotInfos[i].getLogicalSlotIdx()] = i;
+            UiccSlotInfo[] slotInfos = getUiccSlotsInfo(mApp.getOpPackageName());
+            if (slotInfos != null) {
+                for (int i = 0; i < slotInfos.length; i++) {
+                    for (UiccPortInfo portInfo : slotInfos[i].getPorts()) {
+                        if (SubscriptionManager.isValidPhoneId(portInfo.getLogicalSlotIndex())) {
+                            slotMap.add(new UiccSlotMapping(portInfo.getPortIndex(), i,
+                                    portInfo.getLogicalSlotIndex()));
+                        }
+                    }
                 }
             }
-            return logicalSlotsMapping;
+            return slotMap;
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -9505,8 +9598,18 @@
             Phone phone = getPhone(subId);
             if (phone == null) return false;
 
-            boolean isMetered = ApnSettingUtils.isMeteredApnType(apnType, phone);
-            return !isMetered || phone.getDataEnabledSettings().isDataEnabled(apnType);
+            boolean isMetered;
+            boolean isDataEnabled;
+            if (phone.isUsingNewDataStack()) {
+                isMetered = phone.getDataNetworkController().getDataConfigManager()
+                        .isMeteredCapability(DataUtils.apnTypeToNetworkCapability(apnType),
+                                phone.getServiceState().getDataRoaming());
+                isDataEnabled = phone.getDataSettingsManager().isDataEnabled(apnType);
+            } else {
+                isMetered = ApnSettingUtils.isMeteredApnType(apnType, phone);
+                isDataEnabled = phone.getDataEnabledSettings().isDataEnabled(apnType);
+            }
+            return !isMetered || isDataEnabled;
         } finally {
             Binder.restoreCallingIdentity(identity);
         }
@@ -9521,6 +9624,11 @@
         try {
             Phone phone = getPhone(subId);
             if (phone == null) return true; // By default return true.
+            if (phone.isUsingNewDataStack()) {
+                return phone.getDataNetworkController().getDataConfigManager().isMeteredCapability(
+                        DataUtils.apnTypeToNetworkCapability(apnType),
+                        phone.getServiceState().getDataRoaming());
+            }
 
             return ApnSettingUtils.isMeteredApnType(apnType, phone);
         } finally {
@@ -9582,15 +9690,9 @@
     }
 
     @Override
-    public boolean isMvnoMatched(int subId, int mvnoType, @NonNull String mvnoMatchData) {
+    public boolean isMvnoMatched(int slotIndex, 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);
+        return UiccController.getInstance().mvnoMatches(slotIndex, mvnoType, mvnoMatchData);
     }
 
     @Override
@@ -9660,9 +9762,17 @@
 
             switch (policy) {
                 case TelephonyManager.MOBILE_DATA_POLICY_DATA_ON_NON_DEFAULT_DURING_VOICE_CALL:
-                    return phone.getDataEnabledSettings().isDataAllowedInVoiceCall();
+                    if (phone.isUsingNewDataStack()) {
+                        return phone.getDataSettingsManager().isDataAllowedInVoiceCall();
+                    } else {
+                        return phone.getDataEnabledSettings().isDataAllowedInVoiceCall();
+                    }
                 case TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED:
-                    return phone.getDataEnabledSettings().isMmsAlwaysAllowed();
+                    if (phone.isUsingNewDataStack()) {
+                        return phone.getDataSettingsManager().isMmsAlwaysAllowed();
+                    } else {
+                        return phone.getDataEnabledSettings().isMmsAlwaysAllowed();
+                    }
                 default:
                     throw new IllegalArgumentException(policy + " is not a valid policy");
             }
@@ -9683,10 +9793,18 @@
 
             switch (policy) {
                 case TelephonyManager.MOBILE_DATA_POLICY_DATA_ON_NON_DEFAULT_DURING_VOICE_CALL:
-                    phone.getDataEnabledSettings().setAllowDataDuringVoiceCall(enabled);
+                    if (phone.isUsingNewDataStack()) {
+                        phone.getDataSettingsManager().setAllowDataDuringVoiceCall(enabled);
+                    } else {
+                        phone.getDataEnabledSettings().setAllowDataDuringVoiceCall(enabled);
+                    }
                     break;
                 case TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED:
-                    phone.getDataEnabledSettings().setAlwaysAllowMmsData(enabled);
+                    if (phone.isUsingNewDataStack()) {
+                        phone.getDataSettingsManager().setAlwaysAllowMmsData(enabled);
+                    } else {
+                        phone.getDataEnabledSettings().setAlwaysAllowMmsData(enabled);
+                    }
                     break;
                 default:
                     throw new IllegalArgumentException(policy + " is not a valid policy");
@@ -9977,7 +10095,7 @@
     }
 
     private int handleDataThrottlingRequest(int subId,
-            DataThrottlingRequest dataThrottlingRequest) {
+            DataThrottlingRequest dataThrottlingRequest, String callingPackage) {
         boolean isDataThrottlingSupported = isRadioInterfaceCapabilitySupported(
                 TelephonyManager.CAPABILITY_THERMAL_MITIGATION_DATA_THROTTLING);
         if (!isDataThrottlingSupported && dataThrottlingRequest.getDataThrottlingAction()
@@ -9991,7 +10109,8 @@
             return TelephonyManager.THERMAL_MITIGATION_RESULT_MODEM_NOT_AVAILABLE;
         }
 
-        setDataEnabledForReason(subId, TelephonyManager.DATA_ENABLED_REASON_THERMAL, true);
+        setDataEnabledForReason(
+                subId, TelephonyManager.DATA_ENABLED_REASON_THERMAL, true, callingPackage);
 
         if (isDataThrottlingSupported) {
             int thermalMitigationResult =
@@ -10093,7 +10212,8 @@
                 case ThermalMitigationRequest.THERMAL_MITIGATION_ACTION_DATA_THROTTLING:
                     thermalMitigationResult =
                         handleDataThrottlingRequest(subId,
-                                thermalMitigationRequest.getDataThrottlingRequest());
+                                thermalMitigationRequest.getDataThrottlingRequest(),
+                                callingPackage);
                     break;
                 case ThermalMitigationRequest.THERMAL_MITIGATION_ACTION_VOICE_ONLY:
                     if (thermalMitigationRequest.getDataThrottlingRequest() != null) {
@@ -10110,7 +10230,7 @@
                     }
 
                     setDataEnabledForReason(subId, TelephonyManager.DATA_ENABLED_REASON_THERMAL,
-                            false);
+                            false, callingPackage);
                     thermalMitigationResult = TelephonyManager.THERMAL_MITIGATION_RESULT_SUCCESS;
                     break;
                 case ThermalMitigationRequest.THERMAL_MITIGATION_ACTION_RADIO_OFF:
@@ -10807,7 +10927,7 @@
         mApp.getSystemService(AppOpsManager.class)
                 .checkPackage(callingUid, callingPackage);
 
-        validateSignalStrengthUpdateRequest(request, callingUid);
+        validateSignalStrengthUpdateRequest(mApp, request, callingUid);
 
         final long identity = Binder.clearCallingIdentity();
         try {
@@ -10846,19 +10966,19 @@
         }
     }
 
-    private static void validateSignalStrengthUpdateRequest(SignalStrengthUpdateRequest request,
-            int callingUid) {
+    private static void validateSignalStrengthUpdateRequest(Context context,
+            SignalStrengthUpdateRequest request, int callingUid) {
         if (callingUid == Process.PHONE_UID || callingUid == Process.SYSTEM_UID) {
             // phone/system process do not have further restriction on request
             return;
         }
 
         // Applications has restrictions on how to use the request:
-        // Only system caller can set mIsSystemThresholdReportingRequestedWhileIdle
+        // Non-system callers need permission to set mIsSystemThresholdReportingRequestedWhileIdle
         if (request.isSystemThresholdReportingRequestedWhileIdle()) {
-            // This is not system caller which has been checked above
-            throw new IllegalArgumentException(
-                    "Only system can set isSystemThresholdReportingRequestedWhileIdle");
+            context.enforceCallingOrSelfPermission(
+                    android.Manifest.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH,
+                    "validateSignalStrengthUpdateRequest");
         }
 
         for (SignalThresholdInfo info : request.getSignalThresholdInfos()) {
@@ -10929,7 +11049,9 @@
      */
     @Override
     public void getSlicingConfig(ResultReceiver callback) {
-        enforceReadPrivilegedPermission("getSlicingConfig");
+        TelephonyPermissions
+                .enforceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
+                        mApp, SubscriptionManager.INVALID_SUBSCRIPTION_ID, "getSlicingConfig");
 
         final long identity = Binder.clearCallingIdentity();
         try {
@@ -10939,4 +11061,179 @@
             Binder.restoreCallingIdentity(identity);
         }
     }
+
+    /**
+     * Register an IMS connection state callback
+     */
+    @Override
+    public void registerImsStateCallback(int subId, int feature, IImsStateCallback cb,
+            String callingPackage) {
+        if (feature == ImsFeature.FEATURE_MMTEL) {
+            // ImsMmTelManager
+            // The following also checks READ_PRIVILEGED_PHONE_STATE.
+            TelephonyPermissions
+                    .enforceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+                            mApp, subId, "registerImsStateCallback");
+        } else if (feature == ImsFeature.FEATURE_RCS) {
+            // ImsRcsManager or SipDelegateManager
+            TelephonyPermissions.enforceAnyPermissionGrantedOrCarrierPrivileges(mApp, subId,
+                    Binder.getCallingUid(), "registerImsStateCallback",
+                    Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
+                    Manifest.permission.READ_PRECISE_PHONE_STATE,
+                    Manifest.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE,
+                    Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION);
+        }
+
+        if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS not available on device.");
+        }
+
+        if (subId == SubscriptionManager.DEFAULT_SUBSCRIPTION_ID) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION);
+        }
+
+        ImsStateCallbackController controller = ImsStateCallbackController.getInstance();
+        if (controller == null) {
+            throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+                    "IMS not available on device.");
+        }
+
+        if (callingPackage == null) {
+            callingPackage = getCurrentPackageName();
+        }
+
+        final long token = Binder.clearCallingIdentity();
+        try {
+            int slotId = getSlotIndexOrException(subId);
+            controller.registerImsStateCallback(subId, feature, cb, callingPackage);
+        } catch (ImsException e) {
+            throw new ServiceSpecificException(e.getCode());
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Unregister an IMS connection state callback
+     */
+    @Override
+    public void unregisterImsStateCallback(IImsStateCallback cb) {
+        final long token = Binder.clearCallingIdentity();
+        ImsStateCallbackController controller = ImsStateCallbackController.getInstance();
+        if (controller == null) {
+            return;
+        }
+        try {
+            controller.unregisterImsStateCallback(cb);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * @return {@CellIdentity} last known cell identity {@CellIdentity}.
+     *
+     * Require {@link android.Manifest.permission#ACCESS_FINE_LOCATION} and
+     * com.android.phone.permission.ACCESS_LAST_KNOWN_CELL_ID, otherwise throws
+     * SecurityException.
+     * If there is current registered network this value will be same as the registered cell
+     * identity. If the device goes out of service the previous cell identity is cached and
+     * will be returned. If the cache age of the Cell identity is more than 24 hours
+     * it will be cleared and null will be returned.
+     *
+     */
+    @Override
+    public @Nullable CellIdentity getLastKnownCellIdentity(int subId, String callingPackage,
+            String callingFeatureId) {
+        mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
+        LocationAccessPolicy.LocationPermissionResult fineLocationResult =
+                LocationAccessPolicy.checkLocationPermission(mApp,
+                        new LocationAccessPolicy.LocationPermissionQuery.Builder()
+                                .setCallingPackage(callingPackage)
+                                .setCallingFeatureId(callingFeatureId)
+                                .setCallingPid(Binder.getCallingPid())
+                                .setCallingUid(Binder.getCallingUid())
+                                .setMethod("getLastKnownCellIdentity")
+                                .setLogAsInfo(true)
+                                .setMinSdkVersionForFine(Build.VERSION_CODES.Q)
+                                .setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
+                                .setMinSdkVersionForEnforcement(Build.VERSION_CODES.Q)
+                                .build());
+
+        boolean hasFinePermission =
+                fineLocationResult == LocationAccessPolicy.LocationPermissionResult.ALLOWED;
+        if (!hasFinePermission
+                || !TelephonyPermissions.checkLastKnownCellIdAccessPermission(mApp)) {
+            throw new SecurityException("getLastKnownCellIdentity need ACCESS_FINE_LOCATION "
+                    + "and BIND_CONNECTION_SERVICE permission.");
+        }
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            Phone phone = getPhone(subId);
+            if (phone == null) return null;
+            ServiceStateTracker sst = phone.getServiceStateTracker();
+            if (sst == null) return null;
+            return sst.getLastKnownCellIdentity();
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
+
+    @Override
+    public boolean isUsingNewDataStack() {
+        TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "isUsingNewDataStack");
+        return getDefaultPhone().isUsingNewDataStack();
+    }
+
+    /**
+     * Sets the modem service class Name that Telephony will bind to.
+     *
+     * @param serviceName The class name of the modem service.
+     * @return true if the operation is succeed, otherwise false.
+     */
+    public boolean setModemService(String serviceName) {
+        Log.d(LOG_TAG, "setModemService - " + serviceName);
+        TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "setModemService");
+        TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp,
+                        SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+                        "setModemService");
+        return mPhoneConfigurationManager.setModemService(serviceName);
+    }
+
+    /**
+     * Return the class name of the currently bounded modem service.
+     *
+     * @return the class name of the modem service.
+     */
+    public String getModemService() {
+        String result;
+        Log.d(LOG_TAG, "getModemService");
+        TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "getModemService");
+        TelephonyPermissions
+                        .enforceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
+                        mApp, SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+                        "getModemService");
+        result = mPhoneConfigurationManager.getModemService();
+        Log.d(LOG_TAG, "result = " + result);
+        return result;
+    }
+
+    @Override
+    public void setVoiceServiceStateOverride(int subId, boolean hasService, String callingPackage) {
+        // Only telecom (and shell, for CTS purposes) is allowed to call this method.
+        mApp.enforceCallingOrSelfPermission(
+                permission.BIND_TELECOM_CONNECTION_SERVICE, "setVoiceServiceStateOverride");
+        mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            Phone phone = getPhone(subId);
+            if (phone == null) return;
+            phone.setVoiceServiceStateOverride(hasService);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
 }
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index c520063..22cff07 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -468,7 +468,8 @@
                     };
 
                 // build the dialog
-                final AlertDialog newDialog = new AlertDialog.Builder(contextThemeWrapper)
+                final AlertDialog newDialog =
+                        FrameworksUtils.makeAlertDialogBuilder(contextThemeWrapper)
                         .setMessage(text)
                         .setView(dialogView)
                         .setPositiveButton(R.string.send_button, mUSSDDialogListener)
@@ -715,7 +716,7 @@
         // TODO: Should use some sort of special hidden flag to decorate this account as
         // an emergency-only account
         String id = isEmergency ? EMERGENCY_ACCOUNT_HANDLE_ID : prefix +
-                String.valueOf(phone.getFullIccSerialNumber());
+                String.valueOf(phone.getSubId());
         return makePstnPhoneAccountHandleWithPrefix(id, prefix, isEmergency);
     }
 
@@ -743,7 +744,7 @@
 
     public static Phone getPhoneForPhoneAccountHandle(PhoneAccountHandle handle) {
         if (handle != null && handle.getComponentName().equals(getPstnConnectionServiceName())) {
-            return getPhoneFromIccId(handle.getId());
+            return getPhoneFromSubId(handle.getId());
         }
         return null;
     }
@@ -758,18 +759,18 @@
      * {@code false} otherwise.
      */
     public static boolean isPhoneAccountActive(SubscriptionManager sm, PhoneAccountHandle handle) {
-        return sm.getActiveSubscriptionInfoForIcc(handle.getId()) != null;
+        return sm.getActiveSubscriptionInfo(Integer.parseInt(handle.getId())) != null;
     }
 
     private static ComponentName getPstnConnectionServiceName() {
         return PSTN_CONNECTION_SERVICE_COMPONENT;
     }
 
-    private static Phone getPhoneFromIccId(String iccId) {
-        if (!TextUtils.isEmpty(iccId)) {
+    private static Phone getPhoneFromSubId(String subId) {
+        if (!TextUtils.isEmpty(subId)) {
             for (Phone phone : PhoneFactory.getPhones()) {
-                String phoneIccId = phone.getFullIccSerialNumber();
-                if (iccId.equals(phoneIccId)) {
+                String phoneSubId = Integer.toString(phone.getSubId());
+                if (subId.equals(phoneSubId)) {
                     return phone;
                 }
             }
diff --git a/src/com/android/phone/RcsProvisioningMonitor.java b/src/com/android/phone/RcsProvisioningMonitor.java
index e819afc..1ed0d72 100644
--- a/src/com/android/phone/RcsProvisioningMonitor.java
+++ b/src/com/android/phone/RcsProvisioningMonitor.java
@@ -467,7 +467,7 @@
         }
 
         @Override
-        public void connectionReady(RcsFeatureManager manager) {
+        public void connectionReady(RcsFeatureManager manager, int subId) {
             mRcsFeatureManager = manager;
             mRcsProvisioningInfos.forEach(v -> v.onRcsStatusChanged(manager.getConfig()));
         }
diff --git a/src/com/android/phone/ServiceStateProvider.java b/src/com/android/phone/ServiceStateProvider.java
index 7df5b7c..3fa1e58 100644
--- a/src/com/android/phone/ServiceStateProvider.java
+++ b/src/com/android/phone/ServiceStateProvider.java
@@ -28,6 +28,9 @@
 import static android.provider.Telephony.ServiceStateTable.getUriForSubscriptionIdAndField;
 
 import android.Manifest;
+import android.app.compat.CompatChanges;
+import android.compat.annotation.ChangeId;
+import android.compat.annotation.EnabledAfter;
 import android.content.ContentProvider;
 import android.content.ContentValues;
 import android.content.Context;
@@ -230,6 +233,15 @@
      */
     public static final String OPERATOR_ALPHA_SHORT_RAW = "operator_alpha_short_raw";
 
+    /**
+     * If the change Id is enabled, location permission is required to access location sensitive
+     * columns in the ServiceStateTable.
+     */
+    @ChangeId
+    @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.R)
+    @VisibleForTesting
+    /* package */ static final long ENFORCE_LOCATION_PERMISSION_CHECK = 191911306;
+
     private final HashMap<Integer, ServiceState> mServiceStates = new HashMap<>();
 
     @VisibleForTesting
@@ -398,7 +410,8 @@
                 return null;
             }
 
-            // TODO(b/182384053): replace targetSdk check with CompatChanges#isChangeEnabled
+            final boolean enforceLocationPermission =
+                    CompatChanges.isChangeEnabled(ENFORCE_LOCATION_PERMISSION_CHECK);
             final boolean targetingAtLeastS = TelephonyPermissions.getTargetSdk(getContext(),
                     getCallingPackage()) >= Build.VERSION_CODES.S;
             final boolean canReadPrivilegedPhoneState = getContext().checkCallingOrSelfPermission(
@@ -406,45 +419,51 @@
 
             final String[] availableColumns;
             final ServiceState ss;
-            if (targetingAtLeastS && !canReadPrivilegedPhoneState) {
+            if (enforceLocationPermission && targetingAtLeastS && !canReadPrivilegedPhoneState) {
                 // targetSdkVersion S+ without read privileged phone state permission can only
                 // access public columns which have no location sensitive info.
                 availableColumns = PUBLIC_COLUMNS;
                 ss = unredactedServiceState;
             } else {
                 availableColumns = ALL_COLUMNS;
-                boolean implicitlyQueryLocation = projection == null;
-                boolean explicitlyQueryLocation = false;
-                if (projection != null) {
-                    for (String requiredColumn : projection) {
-                        if (LOCATION_PROTECTED_COLUMNS_SET.contains(requiredColumn)) {
-                            explicitlyQueryLocation = true;
-                            break;
-                        }
-                    }
-                }
-
-                // Check location permission only when location sensitive info are queried
-                // (either explicitly or implicitly) to avoid caller get blamed with location
-                // permission when query non sensitive info.
-                if (implicitlyQueryLocation || explicitlyQueryLocation) {
-                    if (hasLocationPermission()) {
-                        ss = unredactedServiceState;
-                    } else {
-                        if (targetingAtLeastS) {
-                            // Throw SecurityException to fail loudly if caller is targetSDK S+
-                            throw new SecurityException(
-                                    "Querying location sensitive info requires location "
-                                            + "permissions");
-                        } else {
-                            // For backward compatibility, return redacted value for old SDK
-                            ss = getLocationRedactedServiceState(unredactedServiceState);
-                        }
-                    }
+                if (!enforceLocationPermission) {
+                    // No matter the targetSdkVersion, return unredacted ServiceState if location
+                    // permission enforcement is not introduced
+                    ss = unredactedServiceState;
                 } else {
-                    // The caller is not interested in location sensitive info, return result
-                    // that scrub out all sensitive info. And no permission check is needed.
-                    ss = getLocationRedactedServiceState(unredactedServiceState);
+                    boolean implicitlyQueryLocation = projection == null;
+                    boolean explicitlyQueryLocation = false;
+                    if (projection != null) {
+                        for (String requiredColumn : projection) {
+                            if (LOCATION_PROTECTED_COLUMNS_SET.contains(requiredColumn)) {
+                                explicitlyQueryLocation = true;
+                                break;
+                            }
+                        }
+                    }
+
+                    // Check location permission only when location sensitive info are queried
+                    // (either explicitly or implicitly) to avoid caller get blamed with location
+                    // permission when query non sensitive info.
+                    if (implicitlyQueryLocation || explicitlyQueryLocation) {
+                        if (hasLocationPermission()) {
+                            ss = unredactedServiceState;
+                        } else {
+                            if (targetingAtLeastS) {
+                                // Throw SecurityException to fail loudly if caller is targetSDK S+
+                                throw new SecurityException(
+                                        "Querying location sensitive info requires location "
+                                                + "permissions");
+                            } else {
+                                // For backward compatibility, return redacted value for old SDK
+                                ss = getLocationRedactedServiceState(unredactedServiceState);
+                            }
+                        }
+                    } else {
+                        // The caller is not interested in location sensitive info, return result
+                        // that scrub out all sensitive info. And no permission check is needed.
+                        ss = getLocationRedactedServiceState(unredactedServiceState);
+                    }
                 }
             }
 
@@ -695,8 +714,6 @@
     /* package */ static ServiceState getLocationRedactedServiceState(ServiceState serviceState) {
         ServiceState ss =
                 serviceState.createLocationInfoSanitizedCopy(true /*removeCoarseLocation*/);
-        // TODO(b/188061647): remove the additional redaction once it is fixed in SS
-        ss.setCdmaSystemAndNetworkId(ServiceState.UNKNOWN_ID, ServiceState.UNKNOWN_ID);
         return ss;
     }
 }
diff --git a/src/com/android/phone/SimPhonebookProvider.java b/src/com/android/phone/SimPhonebookProvider.java
index 04c4f48..8952865 100644
--- a/src/com/android/phone/SimPhonebookProvider.java
+++ b/src/com/android/phone/SimPhonebookProvider.java
@@ -43,7 +43,7 @@
 import android.telephony.TelephonyFrameworkInitializer;
 import android.telephony.TelephonyManager;
 import android.util.ArraySet;
-import android.util.Pair;
+import android.util.SparseArray;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -55,10 +55,10 @@
 
 import com.google.common.base.Joiner;
 import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.util.concurrent.MoreExecutors;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -333,19 +333,25 @@
         if (recordsSize == null || getRecordCount(recordsSize) == 0) {
             return;
         }
+        int efid = efIdForEfType(efType);
+        // Have to load the existing records to get the size because there may be more than one
+        // phonebook set in which case the total capacity is the sum of the capacity of EF_ADN for
+        // all the phonebook sets whereas the recordsSize is just the size for a single EF.
+        List<AdnRecord> existingRecords = mIccPhoneBookSupplier.get()
+                .getAdnRecordsInEfForSubscriber(subscriptionInfo.getSubscriptionId(), efid);
+        if (existingRecords == null) {
+            existingRecords = ImmutableList.of();
+        }
         MatrixCursor.RowBuilder row = result.newRow()
                 .add(ElementaryFiles.SLOT_INDEX, subscriptionInfo.getSimSlotIndex())
                 .add(ElementaryFiles.SUBSCRIPTION_ID, subscriptionInfo.getSubscriptionId())
                 .add(ElementaryFiles.EF_TYPE, efType)
-                .add(ElementaryFiles.MAX_RECORDS, getRecordCount(recordsSize))
+                .add(ElementaryFiles.MAX_RECORDS, existingRecords.size())
                 .add(ElementaryFiles.NAME_MAX_LENGTH,
                         AdnRecord.getMaxAlphaTagBytes(getRecordSize(recordsSize)))
                 .add(ElementaryFiles.PHONE_NUMBER_MAX_LENGTH,
                         AdnRecord.getMaxPhoneNumberDigits());
         if (result.getColumnIndex(ElementaryFiles.RECORD_COUNT) != -1) {
-            int efid = efIdForEfType(efType);
-            List<AdnRecord> existingRecords = mIccPhoneBookSupplier.get()
-                    .getAdnRecordsInEfForSubscriber(subscriptionInfo.getSubscriptionId(), efid);
             int nonEmptyCount = 0;
             for (AdnRecord record : existingRecords) {
                 if (!record.isEmpty()) {
@@ -368,39 +374,46 @@
             return new MatrixCursor(projection, 0);
         }
         MatrixCursor result = new MatrixCursor(projection, records.size());
-        List<Pair<AdnRecord, MatrixCursor.RowBuilder>> rowBuilders = new ArrayList<>(
-                records.size());
-        for (AdnRecord record : records) {
+        SparseArray<MatrixCursor.RowBuilder> rowBuilders = new SparseArray<>(records.size());
+        for (int i = 0; i < records.size(); i++) {
+            AdnRecord record = records.get(i);
             if (!record.isEmpty()) {
-                rowBuilders.add(Pair.create(record, result.newRow()));
+                rowBuilders.put(i, result.newRow());
             }
         }
         // This is kind of ugly but avoids looking up columns in an inner loop.
         for (String column : projection) {
             switch (column) {
                 case SimRecords.SUBSCRIPTION_ID:
-                    for (Pair<AdnRecord, MatrixCursor.RowBuilder> row : rowBuilders) {
-                        row.second.add(args.subscriptionId);
+                    for (int i = 0; i < rowBuilders.size(); i++) {
+                        rowBuilders.valueAt(i).add(args.subscriptionId);
                     }
                     break;
                 case SimRecords.ELEMENTARY_FILE_TYPE:
-                    for (Pair<AdnRecord, MatrixCursor.RowBuilder> row : rowBuilders) {
-                        row.second.add(args.efType);
+                    for (int i = 0; i < rowBuilders.size(); i++) {
+                        rowBuilders.valueAt(i).add(args.efType);
                     }
                     break;
                 case SimRecords.RECORD_NUMBER:
-                    for (Pair<AdnRecord, MatrixCursor.RowBuilder> row : rowBuilders) {
-                        row.second.add(row.first.getRecId());
+                    for (int i = 0; i < rowBuilders.size(); i++) {
+                        int index = rowBuilders.keyAt(i);
+                        MatrixCursor.RowBuilder rowBuilder = rowBuilders.valueAt(i);
+                        // See b/201685690. The logical record number, i.e. the 1-based index in the
+                        // list, is used the rather than AdnRecord.getRecId() because getRecId is
+                        // not offset when a single logical EF is made up of multiple physical EFs.
+                        rowBuilder.add(index + 1);
                     }
                     break;
                 case SimRecords.NAME:
-                    for (Pair<AdnRecord, MatrixCursor.RowBuilder> row : rowBuilders) {
-                        row.second.add(row.first.getAlphaTag());
+                    for (int i = 0; i < rowBuilders.size(); i++) {
+                        AdnRecord record = records.get(rowBuilders.keyAt(i));
+                        rowBuilders.valueAt(i).add(record.getAlphaTag());
                     }
                     break;
                 case SimRecords.PHONE_NUMBER:
-                    for (Pair<AdnRecord, MatrixCursor.RowBuilder> row : rowBuilders) {
-                        row.second.add(row.first.getNumber());
+                    for (int i = 0; i < rowBuilders.size(); i++) {
+                        AdnRecord record = records.get(rowBuilders.keyAt(i));
+                        rowBuilders.valueAt(i).add(record.getNumber());
                     }
                     break;
                 default:
@@ -765,20 +778,9 @@
         if (records == null || args.recordNumber > records.size()) {
             return null;
         }
-        AdnRecord result = records.get(args.recordNumber - 1);
-        // This should be true but the service could have a different implementation.
-        if (result.getRecId() == args.recordNumber) {
-            return result;
-        }
-        for (AdnRecord record : records) {
-            if (record.getRecId() == args.recordNumber) {
-                return result;
-            }
-        }
-        return null;
+        return records.get(args.recordNumber - 1);
     }
 
-
     private int[] getRecordsSizeForEf(PhonebookArgs args) {
         try {
             return mIccPhoneBookSupplier.get().getAdnRecordsSizeForSubscriber(
diff --git a/src/com/android/phone/SpecialCharSequenceMgr.java b/src/com/android/phone/SpecialCharSequenceMgr.java
index 674449e..3bf0e1a 100644
--- a/src/com/android/phone/SpecialCharSequenceMgr.java
+++ b/src/com/android/phone/SpecialCharSequenceMgr.java
@@ -264,7 +264,7 @@
                 }
                 return isMMIHandled;
             } else {
-                AlertDialog dialog = new AlertDialog.Builder(context)
+                AlertDialog dialog = FrameworksUtils.makeAlertDialogBuilder(context)
                         .setMessage(R.string.pin_puk_system_user_only)
                         .setPositiveButton(R.string.ok, null)
                         .setCancelable(true).create();
@@ -294,7 +294,7 @@
         int labelId = TelephonyCapabilities.getDeviceIdLabel(phone);
         String deviceId = phone.getDeviceId();
 
-        AlertDialog alert = new AlertDialog.Builder(context)
+        AlertDialog alert = FrameworksUtils.makeAlertDialogBuilder(context)
                 .setTitle(labelId)
                 .setMessage(deviceId)
                 .setPositiveButton(R.string.ok, null)
diff --git a/src/com/android/phone/SubscriptionInfoHelper.java b/src/com/android/phone/SubscriptionInfoHelper.java
index 7c373e0..14faebc 100644
--- a/src/com/android/phone/SubscriptionInfoHelper.java
+++ b/src/com/android/phone/SubscriptionInfoHelper.java
@@ -91,7 +91,8 @@
 
         intent.putExtra(SubscriptionInfoHelper.SUB_ID_EXTRA, subscription.getSubscriptionId());
         intent.putExtra(
-                SubscriptionInfoHelper.SUB_LABEL_EXTRA, subscription.getDisplayName().toString());
+                SubscriptionInfoHelper.SUB_LABEL_EXTRA, subscription.getDisplayName() == null ? null
+                        : subscription.getDisplayName().toString());
     }
 
     /**
diff --git a/src/com/android/phone/TelephonyShellCommand.java b/src/com/android/phone/TelephonyShellCommand.java
index dbeb7ce..669e830 100644
--- a/src/com/android/phone/TelephonyShellCommand.java
+++ b/src/com/android/phone/TelephonyShellCommand.java
@@ -56,6 +56,7 @@
 import com.android.modules.utils.BasicShellCommandHandler;
 import com.android.phone.callcomposer.CallComposerPictureManager;
 
+import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -112,6 +113,7 @@
 
     private static final String CC_GET_VALUE = "get-value";
     private static final String CC_SET_VALUE = "set-value";
+    private static final String CC_SET_VALUES_FROM_XML = "set-values-from-xml";
     private static final String CC_CLEAR_VALUES = "clear-values";
 
     private static final String GBA_SUBCOMMAND = "gba";
@@ -151,6 +153,10 @@
     private static final String UCE_SET_CAPABILITY_REQUEST_TIMEOUT =
             "set-capabilities-request-timeout";
 
+    private static final String RADIO_SUBCOMMAND = "radio";
+    private static final String RADIO_SET_MODEM_SERVICE = "set-modem-service";
+    private static final String RADIO_GET_MODEM_SERVICE = "get-modem-service";
+
     // Check if a package has carrier privileges on any SIM, regardless of subId/phoneId.
     private static final String HAS_CARRIER_PRIVILEGES_COMMAND = "has-carrier-privileges";
 
@@ -165,6 +171,10 @@
             "get-allowed-network-types-for-users";
     private static final String SET_ALLOWED_NETWORK_TYPES_FOR_USER =
             "set-allowed-network-types-for-users";
+    // Check if telephony new data stack is enabled.
+    private static final String GET_DATA_MODE = "get-data-mode";
+    private static final String GET_IMEI = "get-imei";
+    private static final String GET_SIM_SLOTS_MAPPING = "get-sim-slots-mapping";
     // Take advantage of existing methods that already contain permissions checks when possible.
     private final ITelephony mInterface;
 
@@ -175,7 +185,7 @@
 
     private enum CcType {
         BOOLEAN, DOUBLE, DOUBLE_ARRAY, INT, INT_ARRAY, LONG, LONG_ARRAY, STRING,
-                STRING_ARRAY, UNKNOWN
+                STRING_ARRAY, PERSISTABLE_BUNDLE, UNKNOWN
     }
 
     private class CcOptionParseResult {
@@ -246,13 +256,13 @@
                 FeatureTags.FEATURE_TAG_CHATBOT_VERSION_SUPPORTED)));
         map.put("chatbot_v2", new ArraySet<>(Arrays.asList(
                 FeatureTags.FEATURE_TAG_CHATBOT_COMMUNICATION_USING_SESSION,
-                FeatureTags.FEATURE_TAG_CHATBOT_VERSION_SUPPORTED)));
+                FeatureTags.FEATURE_TAG_CHATBOT_VERSION_V2_SUPPORTED)));
         map.put("chatbot_sa", new ArraySet<>(Arrays.asList(
                 FeatureTags.FEATURE_TAG_CHATBOT_COMMUNICATION_USING_STANDALONE_MSG,
                 FeatureTags.FEATURE_TAG_CHATBOT_VERSION_SUPPORTED)));
         map.put("chatbot_sa_v2", new ArraySet<>(Arrays.asList(
                 FeatureTags.FEATURE_TAG_CHATBOT_COMMUNICATION_USING_STANDALONE_MSG,
-                FeatureTags.FEATURE_TAG_CHATBOT_VERSION_SUPPORTED)));
+                FeatureTags.FEATURE_TAG_CHATBOT_VERSION_V2_SUPPORTED)));
         map.put("chatbot_role", Collections.singleton(FeatureTags.FEATURE_TAG_CHATBOT_ROLE));
         TEST_FEATURE_TAG_MAP = Collections.unmodifiableMap(map);
     }
@@ -319,6 +329,14 @@
             case GET_ALLOWED_NETWORK_TYPES_FOR_USER:
             case SET_ALLOWED_NETWORK_TYPES_FOR_USER:
                 return handleAllowedNetworkTypesCommand(cmd);
+            case GET_DATA_MODE:
+                return handleGetDataMode();
+            case GET_IMEI:
+                return handleGetImei();
+            case GET_SIM_SLOTS_MAPPING:
+                return handleGetSimSlotsMapping();
+            case RADIO_SUBCOMMAND:
+                return handleRadioCommand();
             default: {
                 return handleDefaultCommands(cmd);
             }
@@ -357,6 +375,8 @@
         pw.println("    Get the Allowed Network Types.");
         pw.println("  set-allowed-network-types-for-users");
         pw.println("    Set the Allowed Network Types.");
+        pw.println("  radio");
+        pw.println("    Radio Commands.");
         onHelpIms();
         onHelpUce();
         onHelpEmergencyNumber();
@@ -368,6 +388,8 @@
         onHelpD2D();
         onHelpDisableOrEnablePhysicalSubscription();
         onHelpAllowedNetworkTypes();
+        onHelpRadio();
+        onHelpImei();
     }
 
     private void onHelpD2D() {
@@ -561,9 +583,17 @@
         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 set-values-from-xml [-s SLOT_ID] [-p] < XML_FILE_PATH");
+        pw.println("    Set carrier config based on the contents of the XML_FILE. File must be");
+        pw.println("    provided through standard input and follow CarrierConfig XML format.");
+        pw.println("    Example: packages/apps/CarrierConfig/assets/*.xml");
+        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("  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("    with set-value or set-values-from-xml");
         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.");
@@ -656,6 +686,30 @@
         pw.println("        LTE only                   : 01000001000000000000");
     }
 
+    private void onHelpRadio() {
+        PrintWriter pw = getOutPrintWriter();
+        pw.println("Radio Commands:");
+        pw.println("  radio set-modem-service [-s SERVICE_NAME]");
+        pw.println("    Sets the class name of modem service defined in SERVICE_NAME");
+        pw.println("    to be the bound. Options are:");
+        pw.println("      -s: the service name that the modem service should be bound for.");
+        pw.println("          If no option is specified, it will bind to the default.");
+        pw.println("  radio get-modem-service");
+        pw.println("    Gets the service name of the currently defined modem service.");
+        pw.println("    If it is binding to default, 'default' returns.");
+        pw.println("    If it doesn't bind to any modem service for some reasons,");
+        pw.println("    the result would be 'unknown'.");
+    }
+
+    private void onHelpImei() {
+        PrintWriter pw = getOutPrintWriter();
+        pw.println("IMEI Commands:");
+        pw.println("  get-imei [-s SLOT_ID]");
+        pw.println("    Gets the device IMEI. Options are:");
+        pw.println("      -s: the slot ID to get the IMEI. If no option");
+        pw.println("          is specified, it will choose the default voice SIM slot.");
+    }
+
     private int handleImsCommand() {
         String arg = getNextArg();
         if (arg == null) {
@@ -697,7 +751,7 @@
         switch (arg) {
             case ENABLE: {
                 try {
-                    mInterface.enableDataConnectivity();
+                    mInterface.enableDataConnectivity(mContext.getOpPackageName());
                 } catch (RemoteException ex) {
                     Log.w(LOG_TAG, "data enable, error " + ex.getMessage());
                     errPw.println("Exception: " + ex.getMessage());
@@ -707,7 +761,7 @@
             }
             case DISABLE: {
                 try {
-                    mInterface.disableDataConnectivity();
+                    mInterface.disableDataConnectivity(mContext.getOpPackageName());
                 } catch (RemoteException ex) {
                     Log.w(LOG_TAG, "data disable, error " + ex.getMessage());
                     errPw.println("Exception: " + ex.getMessage());
@@ -1458,6 +1512,9 @@
             case CC_SET_VALUE: {
                 return handleCcSetValue();
             }
+            case CC_SET_VALUES_FROM_XML: {
+                return handleCcSetValuesFromXml();
+            }
             case CC_CLEAR_VALUES: {
                 return handleCcClearValues();
             }
@@ -1475,7 +1532,7 @@
         String key = null;
 
         // Parse all options
-        CcOptionParseResult options =  parseCcOptions(tag, false);
+        CcOptionParseResult options = parseCcOptions(tag, false);
         if (options == null) {
             return -1;
         }
@@ -1515,7 +1572,7 @@
         String tag = CARRIER_CONFIG_SUBCOMMAND + " " + CC_SET_VALUE + ": ";
 
         // Parse all options
-        CcOptionParseResult options =  parseCcOptions(tag, true);
+        CcOptionParseResult options = parseCcOptions(tag, true);
         if (options == null) {
             return -1;
         }
@@ -1552,6 +1609,11 @@
             errPw.println(tag + "ERROR: Not possible to override key with unknown type.");
             return -1;
         }
+        if (type == CcType.PERSISTABLE_BUNDLE) {
+            errPw.println(tag + "ERROR: Overriding of persistable bundle type is not supported. "
+                    + "Use set-values-from-xml instead.");
+            return -1;
+        }
 
         // Create an override bundle containing the key and value that should be overriden.
         PersistableBundle overrideBundle = getOverrideBundle(tag, type, key, valueList);
@@ -1578,13 +1640,79 @@
         return 0;
     }
 
+    // cc set-values-from-xml
+    private int handleCcSetValuesFromXml() {
+        PrintWriter errPw = getErrPrintWriter();
+        String tag = CARRIER_CONFIG_SUBCOMMAND + " " + CC_SET_VALUES_FROM_XML + ": ";
+
+        // Parse all options
+        CcOptionParseResult options = parseCcOptions(tag, false);
+        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;
+        }
+
+        PersistableBundle overrideBundle = readPersistableBundleFromXml(tag);
+        if (overrideBundle == null) {
+            return -1;
+        }
+
+        // Verify all values are valid types
+        for (String key : overrideBundle.keySet()) {
+            CcType type = getType(tag, key, originalValues);
+            if (type == CcType.UNKNOWN) {
+                errPw.println(tag + "ERROR: Not possible to override key with unknown type.");
+                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 values
+        overrideBundle.keySet().forEach(key -> {
+            CcType type = getType(tag, key, originalValues);
+            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;
+    }
+
+    private PersistableBundle readPersistableBundleFromXml(String tag) {
+        PersistableBundle subIdBundles;
+        try {
+            subIdBundles = PersistableBundle.readFromStream(getRawInputStream());
+        } catch (IOException | RuntimeException e) {
+            PrintWriter errPw = getErrPrintWriter();
+            errPw.println(tag + e);
+            return null;
+        }
+
+        return subIdBundles;
+    }
+
     // 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);
+        CcOptionParseResult options = parseCcOptions(tag, false);
         if (options == null) {
             return -1;
         }
@@ -1605,23 +1733,34 @@
         } else if (value != null) {
             if (value instanceof Boolean) {
                 return CcType.BOOLEAN;
-            } else if (value instanceof Double) {
+            }
+            if (value instanceof Double) {
                 return CcType.DOUBLE;
-            } else if (value instanceof double[]) {
+            }
+            if (value instanceof double[]) {
                 return CcType.DOUBLE_ARRAY;
-            } else if (value instanceof Integer) {
+            }
+            if (value instanceof Integer) {
                 return CcType.INT;
-            } else if (value instanceof int[]) {
+            }
+            if (value instanceof int[]) {
                 return CcType.INT_ARRAY;
-            } else if (value instanceof Long) {
+            }
+            if (value instanceof Long) {
                 return CcType.LONG;
-            } else if (value instanceof long[]) {
+            }
+            if (value instanceof long[]) {
                 return CcType.LONG_ARRAY;
-            } else if (value instanceof String) {
+            }
+            if (value instanceof String) {
                 return CcType.STRING;
-            } else if (value instanceof String[]) {
+            }
+            if (value instanceof String[]) {
                 return CcType.STRING_ARRAY;
             }
+            if (value instanceof PersistableBundle) {
+                return CcType.PERSISTABLE_BUNDLE;
+            }
         } 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
@@ -1641,6 +1780,9 @@
             if (key.endsWith("string_array") || key.endsWith("strings")) {
                 return CcType.STRING_ARRAY;
             }
+            if (key.endsWith("bundle")) {
+                return CcType.PERSISTABLE_BUNDLE;
+            }
         }
 
         // Not possible to infer the type by looking at the current value or the key.
@@ -1890,6 +2032,37 @@
         return result ? 0 : -1;
     }
 
+    private int handleGetImei() {
+        // 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("Device IMEI: Permission denied.");
+            return -1;
+        }
+
+        final long identity = Binder.clearCallingIdentity();
+
+        String imei = null;
+        String arg = getNextArg();
+        if (arg != null) {
+            try {
+                int specifiedSlotIndex = Integer.parseInt(arg);
+                imei = TelephonyManager.from(mContext).getImei(specifiedSlotIndex);
+            } catch (NumberFormatException exception) {
+                PrintWriter errPw = getErrPrintWriter();
+                errPw.println("-s requires an integer as slot index.");
+                return -1;
+            }
+
+        } else {
+            imei = TelephonyManager.from(mContext).getImei();
+        }
+        getOutPrintWriter().println("Device IMEI: " + imei);
+
+        Binder.restoreCallingIdentity(identity);
+        return 0;
+    }
+
     private int handleUnattendedReboot() {
         // Verify that the user is allowed to run the command. Only allowed in rooted device in a
         // non user build.
@@ -1904,6 +2077,20 @@
         return result != TelephonyManager.PREPARE_UNATTENDED_REBOOT_ERROR ? 0 : -1;
     }
 
+    private int handleGetSimSlotsMapping() {
+        // 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("GetSimSlotsMapping: Permission denied.");
+            return -1;
+        }
+        TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class);
+        String result = telephonyManager.getSimSlotMapping().toString();
+        getOutPrintWriter().println("simSlotsMapping: " + result);
+
+        return 0;
+    }
+
     private int handleGbaCommand() {
         String arg = getNextArg();
         if (arg == null) {
@@ -2725,4 +2912,87 @@
             return -1;
         }
     }
+
+    private int handleGetDataMode() {
+        if (!checkShellUid()) {
+            return -1;
+        }
+
+        boolean newDataStackEnabled = false;
+        try {
+            newDataStackEnabled = mInterface.isUsingNewDataStack();
+        } catch (RemoteException e) {
+            getOutPrintWriter().println("Something went wrong. " + e);
+            return -1;
+        }
+
+        getOutPrintWriter().println("Telephony is running with the "
+                + (newDataStackEnabled ? "new" : "old") + " data stack.");
+        return 0;
+    }
+
+    private int handleRadioSetModemServiceCommand() {
+        PrintWriter errPw = getErrPrintWriter();
+        String serviceName = null;
+
+        String opt;
+        while ((opt = getNextOption()) != null) {
+            switch (opt) {
+                case "-s": {
+                    serviceName = getNextArgRequired();
+                    break;
+                }
+            }
+        }
+
+        try {
+            boolean result = mInterface.setModemService(serviceName);
+            if (VDBG) {
+                Log.v(LOG_TAG,
+                        "RadioSetModemService " + serviceName + ", result = " + result);
+            }
+            getOutPrintWriter().println(result);
+        } catch (RemoteException e) {
+            Log.w(LOG_TAG,
+                    "RadioSetModemService: " + serviceName + ", error = " + e.getMessage());
+            errPw.println("Exception: " + e.getMessage());
+            return -1;
+        }
+        return 0;
+    }
+
+    private int handleRadioGetModemServiceCommand() {
+        PrintWriter errPw = getErrPrintWriter();
+        String result;
+
+        try {
+            result = mInterface.getModemService();
+            getOutPrintWriter().println(result);
+        } catch (RemoteException e) {
+            errPw.println("Exception: " + e.getMessage());
+            return -1;
+        }
+        if (VDBG) {
+            Log.v(LOG_TAG, "RadioGetModemService, result = " + result);
+        }
+        return 0;
+    }
+
+    private int handleRadioCommand() {
+        String arg = getNextArg();
+        if (arg == null) {
+            onHelpRadio();
+            return 0;
+        }
+
+        switch (arg) {
+            case RADIO_SET_MODEM_SERVICE:
+                return handleRadioSetModemServiceCommand();
+
+            case RADIO_GET_MODEM_SERVICE:
+                return handleRadioGetModemServiceCommand();
+        }
+
+        return -1;
+    }
 }
diff --git a/src/com/android/phone/TimeConsumingPreferenceActivity.java b/src/com/android/phone/TimeConsumingPreferenceActivity.java
index 8c5ae6d..caef176 100644
--- a/src/com/android/phone/TimeConsumingPreferenceActivity.java
+++ b/src/com/android/phone/TimeConsumingPreferenceActivity.java
@@ -84,7 +84,7 @@
                 || id == FDN_CHECK_FAILURE || id == STK_CC_SS_TO_DIAL_ERROR
                 || id == STK_CC_SS_TO_USSD_ERROR || id == STK_CC_SS_TO_SS_ERROR
                 || id == STK_CC_SS_TO_DIAL_VIDEO_ERROR) {
-            AlertDialog.Builder builder = new AlertDialog.Builder(this);
+            AlertDialog.Builder builder = FrameworksUtils.makeAlertDialogBuilder(this);
 
             int msgId;
             int titleId = R.string.error_updating_title;
diff --git a/src/com/android/phone/euicc/EuiccPrivilegedActionUiDispatcherActivity.java b/src/com/android/phone/euicc/EuiccPrivilegedActionUiDispatcherActivity.java
index 389795b..53640f2 100644
--- a/src/com/android/phone/euicc/EuiccPrivilegedActionUiDispatcherActivity.java
+++ b/src/com/android/phone/euicc/EuiccPrivilegedActionUiDispatcherActivity.java
@@ -35,6 +35,10 @@
     @Nullable
     protected Intent getEuiccUiIntent() {
         String action = getIntent().getAction();
+        if (action == null) {
+            Log.w(TAG, "No action is specified in the intent");
+            return null;
+        }
 
         Intent intent = new Intent();
         // Propagate the extras from the original Intent.
diff --git a/src/com/android/phone/euicc/EuiccPublicActionUiDispatcherActivity.java b/src/com/android/phone/euicc/EuiccPublicActionUiDispatcherActivity.java
index 64a40b9..cbee45a 100644
--- a/src/com/android/phone/euicc/EuiccPublicActionUiDispatcherActivity.java
+++ b/src/com/android/phone/euicc/EuiccPublicActionUiDispatcherActivity.java
@@ -34,6 +34,10 @@
     @Nullable
     protected Intent getEuiccUiIntent() {
         String action = getIntent().getAction();
+        if (action == null) {
+            Log.w(TAG, "No action is specified in the intent");
+            return null;
+        }
 
         Intent intent = new Intent();
         // Propagate the extras from the original Intent.
diff --git a/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java b/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
index f24e7d6..804611f 100644
--- a/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
+++ b/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
@@ -134,6 +134,10 @@
     @Nullable
     protected Intent getEuiccUiIntent() {
         String action = getIntent().getAction();
+        if (action == null) {
+            Log.w(TAG, "No action is specified in the intent");
+            return null;
+        }
 
         Intent intent = new Intent();
         intent.putExtras(getIntent());
diff --git a/src/com/android/phone/otasp/OtaspSimStateReceiver.java b/src/com/android/phone/otasp/OtaspSimStateReceiver.java
index bb4022a..a47ab67 100644
--- a/src/com/android/phone/otasp/OtaspSimStateReceiver.java
+++ b/src/com/android/phone/otasp/OtaspSimStateReceiver.java
@@ -92,14 +92,22 @@
         mContext = context;
         if(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED.equals(intent.getAction())) {
             if (DBG) logd("Received intent: " + intent.getAction());
-            if (PhoneGlobals.getPhone().getIccRecordsLoaded() && isCarrierSupported()) {
-                registerOtaspChangedHandler();
-            }
+            // Allow the receiver to keep active after returning from onReceive().
+            final PendingResult result = goAsync();
+            // Do the actual work on another thread to prevent ANR.
+            new Thread(() -> {
+                if (DBG) logd("Start to process ACTION_CARRIER_CONFIG_CHANGED.");
+                if (PhoneGlobals.getPhone().getIccRecordsLoaded() && isCarrierSupported()) {
+                    registerOtaspChangedHandler();
+                }
+                result.finish();
+            }).start();
         }
     }
 
-    // It's fine to call mutiple times, as the registrants are de-duped by Handler object.
+    // It's fine to call multiple times, as the registrants are de-duped by Handler object.
     private void registerOtaspChangedHandler() {
+        if (DBG) logd("registerOtaspChangedHandler");
         final Phone phone = PhoneGlobals.getPhone();
         phone.registerForOtaspChange(mOtaspHandler, EVENT_OTASP_CHANGED, null);
     }
diff --git a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
index 224a1f9..49e1379 100644
--- a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
+++ b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
@@ -78,6 +78,9 @@
             new SubscriptionManager.OnSubscriptionsChangedListener() {
         @Override
         public void onSubscriptionsChanged() {
+            if (getActivity() == null) {
+                return;
+            }
             updateAccounts();
         }
     };
@@ -171,6 +174,7 @@
      */
     @Override
     public boolean onAccountSelected(AccountSelectionPreference pref, PhoneAccountHandle account) {
+        Log.d(LOG_TAG, String.format("onAccountSelected:  pref=[%s], account=[%s]", pref, account));
         if (pref == mDefaultOutgoingAccount) {
             mTelecomManager.setUserSelectedOutgoingPhoneAccount(account);
             return true;
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index d4c926e..b4c885e 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -17,6 +17,7 @@
 package com.android.phone.settings;
 
 import static android.net.ConnectivityManager.NetworkCallback;
+
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 
 import android.content.ComponentName;
@@ -46,18 +47,20 @@
 import android.telephony.CellIdentityCdma;
 import android.telephony.CellIdentityGsm;
 import android.telephony.CellIdentityLte;
+import android.telephony.CellIdentityNr;
 import android.telephony.CellIdentityWcdma;
 import android.telephony.CellInfo;
 import android.telephony.CellInfoCdma;
 import android.telephony.CellInfoGsm;
 import android.telephony.CellInfoLte;
+import android.telephony.CellInfoNr;
 import android.telephony.CellInfoWcdma;
 import android.telephony.CellSignalStrengthCdma;
 import android.telephony.CellSignalStrengthGsm;
 import android.telephony.CellSignalStrengthLte;
+import android.telephony.CellSignalStrengthNr;
 import android.telephony.CellSignalStrengthWcdma;
 import android.telephony.DataSpecificRegistrationInfo;
-import android.telephony.data.NetworkSlicingConfig;
 import android.telephony.NetworkRegistrationInfo;
 import android.telephony.PhysicalChannelConfig;
 import android.telephony.RadioAccessFamily;
@@ -65,7 +68,9 @@
 import android.telephony.SignalStrength;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyCallback;
+import android.telephony.TelephonyDisplayInfo;
 import android.telephony.TelephonyManager;
+import android.telephony.data.NetworkSlicingConfig;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.Menu;
@@ -99,11 +104,10 @@
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executor;
 import java.util.concurrent.LinkedBlockingDeque;
 import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeoutException;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 
 /**
  * Radio Information Class
@@ -233,6 +237,7 @@
     private TextView mGprsState;
     private TextView mVoiceNetwork;
     private TextView mDataNetwork;
+    private TextView mOverrideNetwork;
     private TextView mDBm;
     private TextView mMwi;
     private TextView mCfi;
@@ -318,7 +323,8 @@
             TelephonyCallback.CallForwardingIndicatorListener,
             TelephonyCallback.CellInfoListener,
             TelephonyCallback.SignalStrengthsListener,
-            TelephonyCallback.ServiceStateListener {
+            TelephonyCallback.ServiceStateListener,
+            TelephonyCallback.DisplayInfoListener {
 
         @Override
         public void onDataConnectionStateChanged(int state, int networkType) {
@@ -372,6 +378,10 @@
             updateNrStats(serviceState);
         }
 
+        @Override
+        public void onDisplayInfoChanged(TelephonyDisplayInfo displayInfo) {
+            updateNetworkType();
+        }
     }
 
     private void updatePhysicalChannelConfiguration(List<PhysicalChannelConfig> configs) {
@@ -484,6 +494,7 @@
         mGprsState = (TextView) findViewById(R.id.gprs);
         mVoiceNetwork = (TextView) findViewById(R.id.voice_network);
         mDataNetwork = (TextView) findViewById(R.id.data_network);
+        mOverrideNetwork = (TextView) findViewById(R.id.override_network);
         mDBm = (TextView) findViewById(R.id.dbm);
         mMwi = (TextView) findViewById(R.id.mwi);
         mCfi = (TextView) findViewById(R.id.cfi);
@@ -508,18 +519,7 @@
         // hide 5G stats on devices that don't support 5G
         if ((mTelephonyManager.getSupportedRadioAccessFamily()
                 & TelephonyManager.NETWORK_TYPE_BITMASK_NR) == 0) {
-            ((TextView) findViewById(R.id.endc_available_label)).setVisibility(View.GONE);
-            mEndcAvailable.setVisibility(View.GONE);
-            ((TextView) findViewById(R.id.dcnr_restricted_label)).setVisibility(View.GONE);
-            mDcnrRestricted.setVisibility(View.GONE);
-            ((TextView) findViewById(R.id.nr_available_label)).setVisibility(View.GONE);
-            mNrAvailable.setVisibility(View.GONE);
-            ((TextView) findViewById(R.id.nr_state_label)).setVisibility(View.GONE);
-            mNrState.setVisibility(View.GONE);
-            ((TextView) findViewById(R.id.nr_frequency_label)).setVisibility(View.GONE);
-            mNrFrequency.setVisibility(View.GONE);
-            ((TextView) findViewById(R.id.network_slicing_config_label)).setVisibility(View.GONE);
-            mNetworkSlicingConfig.setVisibility(View.GONE);
+            setNrStatsVisibility(View.GONE);
         }
 
         mPreferredNetworkType = (Spinner) findViewById(R.id.preferredNetworkType);
@@ -675,8 +675,8 @@
 
         new Thread(() -> {
             int networkType = (int) mTelephonyManager.getPreferredNetworkTypeBitmask();
-            updatePreferredNetworkType(
-                    RadioAccessFamily.getNetworkTypeFromRaf(networkType));
+            runOnUiThread(() -> updatePreferredNetworkType(
+                    RadioAccessFamily.getNetworkTypeFromRaf(networkType)));
         }).start();
 
         // set phone index
@@ -819,6 +819,7 @@
         mOperatorName.setText("");
         mGprsState.setText("");
         mDataNetwork.setText("");
+        mOverrideNetwork.setText("");
         mVoiceNetwork.setText("");
         mSent.setText("");
         mReceived.setText("");
@@ -841,6 +842,21 @@
                 mTelephonyCallback);
     }
 
+    private void setNrStatsVisibility(int visibility) {
+        ((TextView) findViewById(R.id.endc_available_label)).setVisibility(visibility);
+        mEndcAvailable.setVisibility(visibility);
+        ((TextView) findViewById(R.id.dcnr_restricted_label)).setVisibility(visibility);
+        mDcnrRestricted.setVisibility(visibility);
+        ((TextView) findViewById(R.id.nr_available_label)).setVisibility(visibility);
+        mNrAvailable.setVisibility(visibility);
+        ((TextView) findViewById(R.id.nr_state_label)).setVisibility(visibility);
+        mNrState.setVisibility(visibility);
+        ((TextView) findViewById(R.id.nr_frequency_label)).setVisibility(visibility);
+        mNrFrequency.setVisibility(visibility);
+        ((TextView) findViewById(R.id.network_slicing_config_label)).setVisibility(visibility);
+        mNetworkSlicingConfig.setVisibility(visibility);
+    }
+
     private void updateDnsCheckState() {
         //FIXME: Replace with a TelephonyManager call
         mDnsCheckState.setText(mPhone.isDnsCheckDisabled()
@@ -854,7 +870,6 @@
         mUplinkKbps.setText(String.format("%-5d", ulbw));
     }
 
-
     private void updateSignalStrength(SignalStrength signalStrength) {
         Resources r = getResources();
 
@@ -950,6 +965,23 @@
                 getCellInfoDisplayString(ssLte.getTimingAdvance()));
     }
 
+    private String buildNrInfoString(CellInfoNr ci) {
+        CellIdentityNr cidNr = (CellIdentityNr) ci.getCellIdentity();
+        CellSignalStrengthNr ssNr = (CellSignalStrengthNr) ci.getCellSignalStrength();
+
+        return String.format(
+                "%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-3.3s %-6.6s %-4.4s %-4.4s\n",
+                getConnectionStatusString(ci),
+                cidNr.getMccString(),
+                cidNr.getMncString(),
+                getCellInfoDisplayString(cidNr.getTac()),
+                getCellInfoDisplayString(cidNr.getNci()),
+                getCellInfoDisplayString(cidNr.getPci()),
+                getCellInfoDisplayString(cidNr.getNrarfcn()),
+                getCellInfoDisplayString(ssNr.getSsRsrp()),
+                getCellInfoDisplayString(ssNr.getSsRsrq()));
+    }
+
     private String buildWcdmaInfoString(CellInfoWcdma ci) {
         CellIdentityWcdma cidWcdma = ci.getCellIdentity();
         CellSignalStrengthWcdma ssWcdma = ci.getCellSignalStrength();
@@ -970,7 +1002,8 @@
         StringBuilder cdmaCells = new StringBuilder(),
                 gsmCells = new StringBuilder(),
                 lteCells = new StringBuilder(),
-                wcdmaCells = new StringBuilder();
+                wcdmaCells = new StringBuilder(),
+                nrCells = new StringBuilder();
 
         if (arrayCi != null) {
             for (CellInfo ci : arrayCi) {
@@ -983,8 +1016,19 @@
                     gsmCells.append(buildGsmInfoString((CellInfoGsm) ci));
                 } else if (ci instanceof CellInfoCdma) {
                     cdmaCells.append(buildCdmaInfoString((CellInfoCdma) ci));
+                } else if (ci instanceof CellInfoNr) {
+                    nrCells.append(buildNrInfoString((CellInfoNr) ci));
                 }
             }
+            if (nrCells.length() != 0) {
+                value += String.format(
+                        "NR\n%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-3.3s"
+                                + " %-6.6s %-4.4s %-4.4s\n",
+                        "SRV", "MCC", "MNC", "TAC", "NCI", "PCI",
+                        "NRARFCN", "SS-RSRP", "SS-RSRQ");
+                value += nrCells.toString();
+            }
+
             if (lteCells.length() != 0) {
                 value += String.format(
                         "LTE\n%-3.3s %-3.3s %-3.3s %-5.5s %-5.5s %-3.3s"
@@ -1048,6 +1092,8 @@
                 display = r.getString(R.string.radioInfo_service_in);
                 break;
             case ServiceState.STATE_OUT_OF_SERVICE:
+                display = r.getString(R.string.radioInfo_service_out);
+                break;
             case ServiceState.STATE_EMERGENCY_ONLY:
                 display = r.getString(R.string.radioInfo_service_emergency);
                 break;
@@ -1111,11 +1157,14 @@
 
     private void updateNetworkType() {
         if (mPhone != null) {
-            ServiceState ss = mPhone.getServiceState();
             mDataNetwork.setText(ServiceState.rilRadioTechnologyToString(
                     mPhone.getServiceState().getRilDataRadioTechnology()));
             mVoiceNetwork.setText(ServiceState.rilRadioTechnologyToString(
                     mPhone.getServiceState().getRilVoiceRadioTechnology()));
+            int overrideNetwork = mPhone.getDisplayInfoController().getTelephonyDisplayInfo()
+                    .getOverrideNetworkType();
+            mOverrideNetwork.setText(
+                    TelephonyDisplayInfo.overrideNetworkTypeToString(overrideNetwork));
         }
     }
 
@@ -1124,7 +1173,6 @@
                 & TelephonyManager.NETWORK_TYPE_BITMASK_NR) == 0) {
             return;
         }
-
         ServiceState ss = serviceState;
         if (ss == null && mPhone != null) {
             ss = mPhone.getServiceState();
@@ -1135,21 +1183,20 @@
             if (nri != null) {
                 DataSpecificRegistrationInfo dsri = nri.getDataSpecificInfo();
                 if (dsri != null) {
-                    mEndcAvailable.setText(dsri.isEnDcAvailable ? "True" : "False");
-                    mDcnrRestricted.setText(dsri.isDcNrRestricted ? "True" : "False");
-                    mNrAvailable.setText(dsri.isNrAvailable ? "True" : "False");
+                    mEndcAvailable.setText(String.valueOf(dsri.isEnDcAvailable));
+                    mDcnrRestricted.setText(String.valueOf(dsri.isDcNrRestricted));
+                    mNrAvailable.setText(String.valueOf(dsri.isNrAvailable));
                 }
             }
             mNrState.setText(NetworkRegistrationInfo.nrStateToString(ss.getNrState()));
             mNrFrequency.setText(ServiceState.frequencyRangeToString(ss.getNrFrequencyRange()));
         }
 
-        Executor simpleExecutor = (r) -> r.run();
         CompletableFuture<NetworkSlicingConfig> resultFuture = new CompletableFuture<>();
-        mTelephonyManager.getNetworkSlicingConfiguration(simpleExecutor, resultFuture::complete);
+        mTelephonyManager.getNetworkSlicingConfiguration(Runnable::run, resultFuture::complete);
         try {
             NetworkSlicingConfig networkSlicingConfig =
-                resultFuture.get(DEFAULT_TIMEOUT_MS, MILLISECONDS);
+                    resultFuture.get(DEFAULT_TIMEOUT_MS, MILLISECONDS);
             mNetworkSlicingConfig.setText(networkSlicingConfig.toString());
         } catch (ExecutionException | InterruptedException | TimeoutException e) {
             Log.e(TAG, "Unable to get slicing config: " + e.toString());
@@ -1170,9 +1217,16 @@
         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);
+        SubscriptionManager subMgr = getSystemService(SubscriptionManager.class);
+        int subId = mPhone.getSubId();
+        s = subMgr.getPhoneNumber(subId)
+                + " { CARRIER:"
+                + subMgr.getPhoneNumber(subId, SubscriptionManager.PHONE_NUMBER_SOURCE_CARRIER)
+                + ", UICC:"
+                + subMgr.getPhoneNumber(subId, SubscriptionManager.PHONE_NUMBER_SOURCE_UICC)
+                + ", IMS:"
+                + subMgr.getPhoneNumber(subId, SubscriptionManager.PHONE_NUMBER_SOURCE_IMS)
+                + " }";
         mLine1Number.setText(s);
     }
 
diff --git a/src/com/android/phone/settings/fdn/GetPin2Screen.java b/src/com/android/phone/settings/fdn/GetPin2Screen.java
index 2394a69..09cab46 100644
--- a/src/com/android/phone/settings/fdn/GetPin2Screen.java
+++ b/src/com/android/phone/settings/fdn/GetPin2Screen.java
@@ -56,6 +56,7 @@
         mPin2Field.setOnEditorActionListener(this);
         mPin2Field.setInputType(
                 InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
+        mPin2Field.requestFocus();
 
         mOkButton = (Button) findViewById(R.id.ok);
         mOkButton.setOnClickListener(mClicked);
diff --git a/src/com/android/phone/vvm/VvmSimStateTracker.java b/src/com/android/phone/vvm/VvmSimStateTracker.java
index a77bd7b..ab8329c 100644
--- a/src/com/android/phone/vvm/VvmSimStateTracker.java
+++ b/src/com/android/phone/vvm/VvmSimStateTracker.java
@@ -88,7 +88,7 @@
                 VvmLog.e(TAG, "Cannot create TelephonyManager from " + mPhoneAccountHandle);
                 return;
             }
-            telephonyManager.registerTelephonyCallback(
+            telephonyManager.registerTelephonyCallback(TelephonyManager.INCLUDE_LOCATION_DATA_NONE,
                     new HandlerExecutor(new Handler(Looper.getMainLooper())), this);
         }
 
diff --git a/src/com/android/services/telephony/PstnIncomingCallNotifier.java b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
index 4191367..8615325 100644
--- a/src/com/android/services/telephony/PstnIncomingCallNotifier.java
+++ b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
@@ -38,6 +38,8 @@
 import com.android.internal.telephony.cdma.CdmaCallWaitingNotification;
 import com.android.internal.telephony.imsphone.ImsExternalCallTracker;
 import com.android.internal.telephony.imsphone.ImsExternalConnection;
+import com.android.internal.telephony.imsphone.ImsPhone;
+import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
 import com.android.internal.telephony.imsphone.ImsPhoneConnection;
 import com.android.phone.NumberVerificationManager;
 import com.android.phone.PhoneUtils;
@@ -97,6 +99,12 @@
                     break;
             }
         }
+
+        @Override
+        public String toString() {
+            return String.format("[PstnIncomingCallNotifierHandler; phoneId=[%s]",
+                    getPhoneIdAsString());
+        }
     };
 
     /**
@@ -123,7 +131,7 @@
      */
     private void registerForNotifications() {
         if (mPhone != null) {
-            Log.i(this, "Registering: %s", mPhone);
+            Log.i(this, "Registering: [%s]", getPhoneIdAsString());
             mPhone.registerForNewRingingConnection(mHandler, EVENT_NEW_RINGING_CONNECTION, null);
             mPhone.registerForCallWaiting(mHandler, EVENT_CDMA_CALL_WAITING, null);
             mPhone.registerForUnknownConnection(mHandler, EVENT_UNKNOWN_CONNECTION, null);
@@ -132,7 +140,7 @@
 
     private void unregisterForNotifications() {
         if (mPhone != null) {
-            Log.i(this, "Unregistering: %s", mPhone);
+            Log.i(this, "Unregistering: [%s]", getPhoneIdAsString());
             mPhone.unregisterForNewRingingConnection(mHandler);
             mPhone.unregisterForCallWaiting(mHandler);
             mPhone.unregisterForUnknownConnection(mHandler);
@@ -145,7 +153,7 @@
      * @param asyncResult The result object from the new ringing event.
      */
     private void handleNewRingingConnection(AsyncResult asyncResult) {
-        Log.d(this, "handleNewRingingConnection");
+        Log.i(this, "handleNewRingingConnection: phoneId=[%s]", getPhoneIdAsString());
         Connection connection = (Connection) asyncResult.result;
         if (connection != null) {
             Call call = connection.getCall();
@@ -175,7 +183,7 @@
     }
 
     private void handleCdmaCallWaiting(AsyncResult asyncResult) {
-        Log.d(this, "handleCdmaCallWaiting");
+        Log.i(this, "handleCdmaCallWaiting: phoneId=[%s]", getPhoneIdAsString());
         CdmaCallWaitingNotification ccwi = (CdmaCallWaitingNotification) asyncResult.result;
         Call call = mPhone.getRingingCall();
         if (call.getState() == Call.State.WAITING) {
@@ -189,7 +197,7 @@
                     // Presentation of number not allowed, but the presentation of the Connection
                     // and the call waiting presentation match.
                     Log.i(this, "handleCdmaCallWaiting: inform telecom of waiting call; "
-                                    + "presentation = %d", presentation);
+                            + "presentation = %d", presentation);
                     sendIncomingCallIntent(connection);
                 } else if (!TextUtils.isEmpty(number) && Objects.equals(number, ccwi.number)) {
                     // Presentation of the number is allowed, so we ensure the number matches the
@@ -198,7 +206,7 @@
                             + "number = %s", Rlog.pii(LOG_TAG, number));
                     sendIncomingCallIntent(connection);
                 } else {
-                    Log.w(this, "handleCdmaCallWaiting: presentation or number do not match, not"
+                    Log.i(this, "handleCdmaCallWaiting: presentation or number do not match, not"
                             + " informing telecom of call: %s", ccwi);
                 }
             }
@@ -206,9 +214,9 @@
     }
 
     private void handleNewUnknownConnection(AsyncResult asyncResult) {
-        Log.i(this, "handleNewUnknownConnection");
+        Log.i(this, "handleNewUnknownConnection: phoneId=[%s]", getPhoneIdAsString());
         if (!(asyncResult.result instanceof Connection)) {
-            Log.w(this, "handleNewUnknownConnection called with non-Connection object");
+            Log.i(this, "handleNewUnknownConnection called with non-Connection object");
             return;
         }
         Connection connection = (Connection) asyncResult.result;
@@ -400,7 +408,7 @@
             Log.i(this, "Receiving MT call in ECM. Using Emergency PhoneAccount Instead.");
             return emergencyHandle;
         }
-        Log.w(this, "PhoneAccount not found.");
+        Log.i(this, "PhoneAccount not found.");
         return null;
     }
 
@@ -447,11 +455,12 @@
             if (unknown instanceof ImsExternalConnection &&
                     !(telephonyConnection
                             .getOriginalConnection() instanceof ImsExternalConnection)) {
-                Log.v(this, "maybeSwapWithUnknownConnection - not swapping regular connection " +
-                        "with external connection.");
+                Log.i(this, "maybeSwapWithUnknownConnection - not swapping "
+                        + "regular connection with external connection.");
                 return false;
             }
 
+            Log.i(this, "maybeSwapWithUnknownConnection: swapping %s with %s", original, unknown);
             telephonyConnection.setOriginalConnection(unknown);
 
             // Do not call hang up if the original connection is an ImsExternalConnection, it is
@@ -469,9 +478,25 @@
                 phone.getCallTracker().cleanupCalls();
                 Log.i(this, "maybeSwapWithUnknownConnection - Invoking call tracker cleanup "
                         + "for connection: " + original);
+            } else if (original.getCall() != null && original.getCall().getPhone() != null
+                    && original.getCall().getPhone() instanceof ImsPhone
+                    && original instanceof ImsPhoneConnection) {
+                // We're replacing an existing ImsPhoneConnection; ensure we don't orhan the
+                // original connection.
+                ImsPhone phone = (ImsPhone) original.getCall().getPhone();
+                ImsPhoneCallTracker tracker = (ImsPhoneCallTracker) phone.getCallTracker();
+                tracker.cleanupAndRemoveConnection((ImsPhoneConnection) original);
+                Log.i(this, "maybeSwapWithUnknownConnection - cleanup/remove: " + original);
             }
             return true;
         }
         return false;
     }
-}
+
+    private String getPhoneIdAsString() {
+        if (mPhone == null) {
+            return "-1";
+        }
+        return String.valueOf(mPhone.getPhoneId());
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/services/telephony/RadioOnHelper.java b/src/com/android/services/telephony/RadioOnHelper.java
index be2ddb2..63a648f 100644
--- a/src/com/android/services/telephony/RadioOnHelper.java
+++ b/src/com/android/services/telephony/RadioOnHelper.java
@@ -102,8 +102,20 @@
     private void powerOnRadio(boolean forEmergencyCall, Phone phoneForEmergencyCall,
             boolean isTestEmergencyNumber) {
 
+        // Always try to turn on the radio here independent of APM setting - if we got here in the
+        // first place, the radio is off independent of APM setting.
+        for (Phone phone : PhoneFactory.getPhones()) {
+            Log.d(this, "powerOnRadio, enabling Radio");
+            if (isTestEmergencyNumber) {
+                phone.setRadioPowerOnForTestEmergencyCall(phone == phoneForEmergencyCall);
+            } else {
+                phone.setRadioPower(true, forEmergencyCall, phone == phoneForEmergencyCall,
+                        false);
+            }
+        }
+
         // If airplane mode is on, we turn it off the same way that the Settings activity turns it
-        // off.
+        // off to keep the setting in sync.
         if (Settings.Global.getInt(mContext.getContentResolver(),
                 Settings.Global.AIRPLANE_MODE_ON, 0) > 0) {
             Log.d(this, "==> Turning off airplane mode for emergency call.");
@@ -112,16 +124,6 @@
             Settings.Global.putInt(mContext.getContentResolver(),
                     Settings.Global.AIRPLANE_MODE_ON, 0);
 
-            for (Phone phone : PhoneFactory.getPhones()) {
-                Log.d(this, "powerOnRadio, enabling Radio");
-                if (isTestEmergencyNumber) {
-                    phone.setRadioPowerOnForTestEmergencyCall(phone == phoneForEmergencyCall);
-                } else {
-                    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/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index 1d749f4..a9b4c71 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -16,6 +16,7 @@
 
 package com.android.services.telephony;
 
+import android.app.PropertyInvalidatedCache;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
@@ -831,6 +832,7 @@
                     // torn down.
                     return;
                 }
+
                 boolean isVideoPresenceSupported = isCarrierVideoPresenceSupported();
                 if (mIsVideoPresenceSupported != isVideoPresenceSupported) {
                     Log.i(this, "updateVideoPresenceCapability for subId=" + mPhone.getSubId()
@@ -841,30 +843,64 @@
         }
 
         public void updateRttCapability() {
-            boolean isRttEnabled = isRttCurrentlySupported();
-            if (isRttEnabled != mIsRttCapable) {
-                Log.i(this, "updateRttCapability - changed, new value: " + isRttEnabled);
-                mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
+            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;
+                }
+
+                boolean isRttEnabled = isRttCurrentlySupported();
+                if (isRttEnabled != mIsRttCapable) {
+                    Log.i(this, "updateRttCapability - changed, new value: " + isRttEnabled);
+                    mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
+                }
             }
         }
 
         public void updateCallComposerCapability(MmTelFeature.MmTelCapabilities capabilities) {
-            boolean isCallComposerCapable = capabilities.isCapable(
-                    MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_CALL_COMPOSER);
-            if (isCallComposerCapable != mIsCallComposerCapable) {
-                mIsCallComposerCapable = isCallComposerCapable;
-                Log.i(this, "updateCallComposerCapability - changed, new value: "
-                        + isCallComposerCapable);
-                mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
+            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;
+                }
+
+                boolean isCallComposerCapable = capabilities.isCapable(
+                        MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_CALL_COMPOSER);
+                if (isCallComposerCapable != mIsCallComposerCapable) {
+                    mIsCallComposerCapable = isCallComposerCapable;
+                    Log.i(this, "updateCallComposerCapability - changed, new value: "
+                            + isCallComposerCapable);
+                    mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
+                }
             }
         }
 
         public void updateDefaultDataSubId(int activeDataSubId) {
-            boolean isEmergencyPreferred = isEmergencyPreferredAccount(mPhone.getSubId(),
-                    activeDataSubId);
-            if (isEmergencyPreferred != mIsEmergencyPreferred) {
-                Log.i(this, "updateDefaultDataSubId - changed, new value: " + isEmergencyPreferred);
-                mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
+            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;
+                }
+
+                boolean isEmergencyPreferred = isEmergencyPreferredAccount(mPhone.getSubId(),
+                        activeDataSubId);
+                if (isEmergencyPreferred != mIsEmergencyPreferred) {
+                    Log.i(this,
+                            "updateDefaultDataSubId - changed, new value: " + isEmergencyPreferred);
+                    mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
+                }
             }
         }
 
@@ -1386,7 +1422,8 @@
 
         // We also need to listen for changes to the service state (e.g. emergency -> in service)
         // because this could signal a removal or addition of a SIM in a single SIM phone.
-        mTelephonyManager.registerTelephonyCallback(new HandlerExecutor(mHandler),
+        mTelephonyManager.registerTelephonyCallback(TelephonyManager.INCLUDE_LOCATION_DATA_NONE,
+                new HandlerExecutor(mHandler),
                 mTelephonyCallback);
 
         // Listen for user switches.  When the user switches, we need to ensure that if the current
@@ -1558,6 +1595,9 @@
             }
             mAccounts.clear();
         }
+        // Invalidate the TelephonyManager cache which maps phone account handles to sub ids since
+        // all the phone account handles are being recreated at this point.
+        PropertyInvalidatedCache.invalidateCache(TelephonyManager.CACHE_KEY_PHONE_ACCOUNT_TO_SUBID);
     }
 
     /**
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
old mode 100755
new mode 100644
index ce3cf01..ed07726
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -2707,6 +2707,10 @@
         capabilities = changeBitmask(capabilities, CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL,
                 isLocalVideoSupported);
 
+        capabilities = changeBitmask(capabilities, CAPABILITY_REMOTE_PARTY_SUPPORTS_RTT,
+                (mOriginalConnectionCapabilities & Capability.SUPPORTS_RTT_REMOTE)
+                == Capability.SUPPORTS_RTT_REMOTE);
+
         return capabilities;
     }
 
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 8c5fb66..071376d 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -58,13 +58,14 @@
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.PhoneFactory;
-import com.android.internal.telephony.PhoneSwitcher;
 import com.android.internal.telephony.RIL;
 import com.android.internal.telephony.SubscriptionController;
 import com.android.internal.telephony.d2d.Communicator;
+import com.android.internal.telephony.data.PhoneSwitcher;
 import com.android.internal.telephony.imsphone.ImsExternalCallTracker;
 import com.android.internal.telephony.imsphone.ImsPhone;
 import com.android.internal.telephony.imsphone.ImsPhoneConnection;
+import com.android.phone.FrameworksUtils;
 import com.android.phone.MMIDialogActivity;
 import com.android.phone.PhoneUtils;
 import com.android.phone.R;
@@ -499,7 +500,7 @@
         IntentFilter intentFilter = new IntentFilter(
                 TelecomManager.ACTION_TTY_PREFERRED_MODE_CHANGED);
         registerReceiver(mTtyBroadcastReceiver, intentFilter,
-                android.Manifest.permission.MODIFY_PHONE_STATE, null);
+                android.Manifest.permission.MODIFY_PHONE_STATE, null, Context.RECEIVER_EXPORTED);
     }
 
     @Override
@@ -2460,7 +2461,7 @@
                 if (showDialog) {
                     Log.d(this, "Creating UT Data enable dialog");
                     String message = SuppServicesUiUtil.makeMessage(context, suppKey, phone);
-                    AlertDialog.Builder builder = new AlertDialog.Builder(context);
+                    AlertDialog.Builder builder = FrameworksUtils.makeAlertDialogBuilder(context);
                     DialogInterface.OnClickListener networkSettingsClickListener =
                             new Dialog.OnClickListener() {
                                 @Override
diff --git a/src/com/android/services/telephony/rcs/DelegateStateTracker.java b/src/com/android/services/telephony/rcs/DelegateStateTracker.java
index 18aab88..29b8121 100644
--- a/src/com/android/services/telephony/rcs/DelegateStateTracker.java
+++ b/src/com/android/services/telephony/rcs/DelegateStateTracker.java
@@ -16,6 +16,10 @@
 
 package com.android.services.telephony.rcs;
 
+import android.app.compat.CompatChanges;
+import android.compat.annotation.ChangeId;
+import android.compat.annotation.EnabledAfter;
+import android.os.Build;
 import android.os.RemoteException;
 import android.telephony.ims.DelegateRegistrationState;
 import android.telephony.ims.FeatureTagState;
@@ -28,6 +32,7 @@
 import android.util.LocalLog;
 import android.util.Log;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.metrics.RcsStats;
 
 import java.io.PrintWriter;
@@ -43,25 +48,69 @@
     private static final String LOG_TAG = "DelegateST";
 
     private final int mSubId;
+    private final int mUid;
     private final ISipDelegateConnectionStateCallback mAppStateCallback;
     private final ISipDelegate mLocalDelegateImpl;
 
     private final LocalLog mLocalLog = new LocalLog(SipTransportController.LOG_SIZE);
 
+    private final RcsStats mRcsStats;
+
     private List<FeatureTagState> mDelegateDeniedTags;
     private DelegateRegistrationState mLastRegState;
     private boolean mCreatedCalled = false;
     private int mRegistrationStateOverride = -1;
-
+    private CompatChangesFactory mCompatChangesFactory;
     private Set<String> mDelegateSupportedTags;
-    private final RcsStats mRcsStats;
 
-    public DelegateStateTracker(int subId, ISipDelegateConnectionStateCallback appStateCallback,
+    /**
+     * Interface for checking compatibility of apps
+     */
+    public interface CompatChangesFactory {
+        /**
+         *  @param changeId The ID of the compatibility change.
+         *  @param uid      The UID of the app.
+         *  @return {@code true} if the change is enabled for the current app.
+         */
+        boolean isChangeEnabled(long changeId, int uid);
+    }
+
+    /**
+     * For apps targeting Android T and above, support the REGISTERING state on APIs, such as
+     * {@code DelegateRegistrationState#addRegisteringFeatureTags} and
+     * {@code DelegateRegistrationState#getRegisteringFeatureTags}
+     * @hide
+     */
+    @ChangeId
+    @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.S)
+    @VisibleForTesting
+    public static final long SUPPORT_REGISTERING_DELEGATE_STATE = 205194548;
+
+    /**
+     * For apps targeting Android T and above, support the DEREGISTERING_REASON_LOSING_PDN state
+     * on APIs, such as {@code DelegateRegistrationState#addDeregisteringFeatureTag} and
+     * {@code DelegateRegistrationState#getDeregisteringFeatureTags}
+     * @hide
+     */
+    @ChangeId
+    @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.S)
+    @VisibleForTesting
+    public static final long SUPPORT_DEREGISTERING_LOSING_PDN_STATE = 201522903;
+
+    public DelegateStateTracker(int subId, int uid,
+            ISipDelegateConnectionStateCallback appStateCallback,
             ISipDelegate localDelegateImpl, RcsStats rcsStats) {
         mSubId = subId;
+        mUid = uid;
         mAppStateCallback = appStateCallback;
         mLocalDelegateImpl = localDelegateImpl;
         mRcsStats = rcsStats;
+        setCompatChangesFactory((changeId, uid1) -> CompatChanges.isChangeEnabled(changeId, uid1));
+    }
+
+    @VisibleForTesting
+    protected void setCompatChangesFactory(CompatChangesFactory factory) {
+        mCompatChangesFactory = factory;
     }
 
     /**
@@ -140,6 +189,13 @@
      */
     @Override
     public void onRegistrationStateChanged(DelegateRegistrationState registrationState) {
+        if (!mCompatChangesFactory.isChangeEnabled(SUPPORT_DEREGISTERING_LOSING_PDN_STATE, mUid)) {
+            registrationState = overrideDeregisteringStateForCompatibility(registrationState);
+        }
+        if (!mCompatChangesFactory.isChangeEnabled(SUPPORT_REGISTERING_DELEGATE_STATE, mUid)) {
+            registrationState = overrideRegistrationForCompatibility(registrationState);
+        }
+
         if (mRegistrationStateOverride > DelegateRegistrationState.DEREGISTERED_REASON_UNKNOWN) {
             logi("onRegistrationStateChanged: overriding registered state to "
                     + mRegistrationStateOverride);
@@ -204,6 +260,7 @@
     private DelegateRegistrationState overrideRegistrationForDelegateChange(
             int registerOverrideReason, DelegateRegistrationState state) {
         Set<String> registeredFeatures = state.getRegisteredFeatureTags();
+        Set<String> registeringFeatures = state.getRegisteringFeatureTags();
         DelegateRegistrationState.Builder overriddenState = new DelegateRegistrationState.Builder();
         // keep other deregistering/deregistered tags the same.
         for (FeatureTagState dereging : state.getDeregisteringFeatureTags()) {
@@ -214,13 +271,78 @@
             overriddenState.addDeregisteredFeatureTag(dereged.getFeatureTag(),
                     dereged.getState());
         }
-        // Override REGISTERED only
+        // Override REGISTERING/REGISTERED
+        for (String ft : registeringFeatures) {
+            overriddenState.addDeregisteringFeatureTag(ft, registerOverrideReason);
+        }
         for (String ft : registeredFeatures) {
             overriddenState.addDeregisteringFeatureTag(ft, registerOverrideReason);
         }
         return overriddenState.build();
     }
 
+    private DelegateRegistrationState overrideRegistrationForCompatibility(
+            DelegateRegistrationState state) {
+        Set<String> registeredFeatures = state.getRegisteredFeatureTags();
+        Set<String> registeringFeatures = state.getRegisteringFeatureTags();
+        DelegateRegistrationState.Builder overriddenState = new DelegateRegistrationState.Builder();
+        // keep other registered/deregistering/deregistered tags the same.
+        for (FeatureTagState dereging : state.getDeregisteringFeatureTags()) {
+            overriddenState.addDeregisteringFeatureTag(dereging.getFeatureTag(),
+                    dereging.getState());
+        }
+        for (FeatureTagState dereged : state.getDeregisteredFeatureTags()) {
+            overriddenState.addDeregisteredFeatureTag(dereged.getFeatureTag(),
+                    dereged.getState());
+        }
+        overriddenState.addRegisteredFeatureTags(registeredFeatures);
+
+        // move the REGISTERING state to the DEREGISTERED state.
+        for (String tag : registeringFeatures) {
+            overriddenState.addDeregisteredFeatureTag(tag,
+                    DelegateRegistrationState.DEREGISTERED_REASON_NOT_REGISTERED);
+        }
+
+        return overriddenState.build();
+    }
+
+    /**
+     * @param state The RegistrationState reported by the SipDelegate to be sent to the
+     *              IMS application .
+     * @return DEREGISTERING_REASON_PDN_CHANGE instead of DEREGISTERING_REASON_LOSING_PDN
+     * if the SUPPORT_DEREGISTERING_LOSING_PDN_STATE compat key is not enabled for the application
+     * consuming the registration change events.
+     */
+    private DelegateRegistrationState overrideDeregisteringStateForCompatibility(
+            DelegateRegistrationState state) {
+        Set<String> registeredFeatures = state.getRegisteredFeatureTags();
+        Set<String> registeringFeatures = state.getRegisteringFeatureTags();
+        DelegateRegistrationState.Builder overriddenState = new DelegateRegistrationState.Builder();
+
+        // keep other registered/registering/deregistered tags the same.
+        for (FeatureTagState dereged : state.getDeregisteredFeatureTags()) {
+            overriddenState.addDeregisteredFeatureTag(dereged.getFeatureTag(),
+                    dereged.getState());
+        }
+        overriddenState.addRegisteredFeatureTags(registeredFeatures);
+        overriddenState.addRegisteringFeatureTags(registeringFeatures);
+
+        // change DEREGISTERING_REASON_LOSING_PDN to DEREGISTERING_REASON_PDN_CHANGE
+        for (FeatureTagState dereging : state.getDeregisteringFeatureTags()) {
+            overriddenState.addDeregisteringFeatureTag(dereging.getFeatureTag(),
+                    getDeregisteringReasonForCompatibility(dereging.getState()));
+        }
+
+        return overriddenState.build();
+    }
+
+    private int getDeregisteringReasonForCompatibility(int reason) {
+        if (reason == DelegateRegistrationState.DEREGISTERING_REASON_LOSING_PDN) {
+            reason = DelegateRegistrationState.DEREGISTERING_REASON_PDN_CHANGE;
+        }
+        return reason;
+    }
+
     private void notifySipDelegateCreated() {
         try {
             mAppStateCallback.onCreated(mLocalDelegateImpl);
diff --git a/src/com/android/services/telephony/rcs/RcsFeatureController.java b/src/com/android/services/telephony/rcs/RcsFeatureController.java
index 7834903..0e1cb4b 100644
--- a/src/com/android/services/telephony/rcs/RcsFeatureController.java
+++ b/src/com/android/services/telephony/rcs/RcsFeatureController.java
@@ -33,6 +33,7 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.imsphone.ImsRegistrationCallbackHelper;
 import com.android.internal.util.IndentingPrintWriter;
+import com.android.phone.ImsStateCallbackController;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -127,7 +128,7 @@
     private FeatureConnector.Listener<RcsFeatureManager> mFeatureConnectorListener =
             new FeatureConnector.Listener<RcsFeatureManager>() {
                 @Override
-                public void connectionReady(RcsFeatureManager manager)
+                public void connectionReady(RcsFeatureManager manager, int subId)
                         throws com.android.ims.ImsException {
                     if (manager == null) {
                         logw("connectionReady returned null RcsFeatureManager");
@@ -139,6 +140,8 @@
                         // ImsService is gone.
                         updateConnectionStatus(manager);
                         setupConnectionToService(manager);
+                        ImsStateCallbackController.getInstance()
+                                .notifyExternalRcsStateChanged(mSlotId, true, true);
                     } catch (ImsException e) {
                         updateConnectionStatus(null /*manager*/);
                         // Use deprecated Exception for compatibility.
diff --git a/src/com/android/services/telephony/rcs/SipDelegateController.java b/src/com/android/services/telephony/rcs/SipDelegateController.java
index c728141..860a6d9 100644
--- a/src/com/android/services/telephony/rcs/SipDelegateController.java
+++ b/src/com/android/services/telephony/rcs/SipDelegateController.java
@@ -78,6 +78,7 @@
     }
 
     private final int mSubId;
+    private final int mUid;
     private final String mPackageName;
     private final DelegateRequest mInitialRequest;
     private final ScheduledExecutorService mExecutorService;
@@ -89,12 +90,13 @@
     private DelegateBinderStateManager mBinderConnection;
     private Set<String> mTrackedFeatureTags;
 
-    public SipDelegateController(int subId, DelegateRequest initialRequest, String packageName,
-            ISipTransport transportImpl, IImsRegistration registrationImpl,
+    public SipDelegateController(int subId, int uid, DelegateRequest initialRequest,
+            String packageName, ISipTransport transportImpl, IImsRegistration registrationImpl,
             ScheduledExecutorService executorService,
             ISipDelegateConnectionStateCallback stateCallback,
             ISipDelegateMessageCallback messageCallback) {
         mSubId = subId;
+        mUid = uid;
         mPackageName = packageName;
         mInitialRequest = initialRequest;
         mExecutorService = executorService;
@@ -102,7 +104,8 @@
 
         mMessageTransportWrapper = new MessageTransportWrapper(mSubId, executorService,
                 messageCallback);
-        mDelegateStateTracker = new DelegateStateTracker(mSubId, stateCallback,
+
+        mDelegateStateTracker = new DelegateStateTracker(mSubId, mUid, stateCallback,
                 mMessageTransportWrapper.getDelegateConnection(), RcsStats.getInstance());
     }
 
@@ -110,12 +113,13 @@
      * Inject dependencies for testing only.
      */
     @VisibleForTesting
-    public SipDelegateController(int subId, DelegateRequest initialRequest, String packageName,
-            ScheduledExecutorService executorService,
+    public SipDelegateController(int subId, int uid, DelegateRequest initialRequest,
+            String packageName, ScheduledExecutorService executorService,
             MessageTransportWrapper messageTransportWrapper,
             DelegateStateTracker delegateStateTracker,
             DelegateBinderStateManager.Factory connectionFactory) {
         mSubId = subId;
+        mUid = uid;
         mInitialRequest = initialRequest;
         mPackageName = packageName;
         mExecutorService = executorService;
diff --git a/src/com/android/services/telephony/rcs/SipTransportController.java b/src/com/android/services/telephony/rcs/SipTransportController.java
index 709e142..0aa3aa0 100644
--- a/src/com/android/services/telephony/rcs/SipTransportController.java
+++ b/src/com/android/services/telephony/rcs/SipTransportController.java
@@ -243,9 +243,9 @@
     @VisibleForTesting
     public interface SipDelegateControllerFactory {
         /** See {@link SipDelegateController} */
-        SipDelegateController create(int subId, DelegateRequest initialRequest, String packageName,
-                ISipTransport sipTransportImpl,  IImsRegistration registrationImpl,
-                ScheduledExecutorService executorService,
+        SipDelegateController create(int subId, int uid, DelegateRequest initialRequest,
+                String packageName, ISipTransport sipTransportImpl,
+                IImsRegistration registrationImpl, ScheduledExecutorService executorService,
                 ISipDelegateConnectionStateCallback stateCallback,
                 ISipDelegateMessageCallback messageCallback);
     }
@@ -364,17 +364,18 @@
      * {@link ISipDelegateConnectionStateCallback#onCreated(ISipDelegate)} must be called with
      * the AIDL instance corresponding to the remote {@link SipDelegate}.
      * @param subId the subId associated with the request.
+     * @param uid the uid associated with the request
      * @param request The request parameters used to create the {@link SipDelegate}.
      * @param delegateState The {@link DelegateConnectionStateCallback} Binder connection.
      * @param delegateMessage The {@link DelegateConnectionMessageCallback} Binder Connection
      * @throws ImsException if the request to create the {@link SipDelegate} did not complete.
      */
-    public void createSipDelegate(int subId, DelegateRequest request, String packageName,
+    public void createSipDelegate(int subId, int uid, DelegateRequest request, String packageName,
             ISipDelegateConnectionStateCallback delegateState,
             ISipDelegateMessageCallback delegateMessage) throws ImsException {
         logi("createSipDelegate: request= " + request + ", packageName= " + packageName);
         CompletableFuture<ImsException> result = new CompletableFuture<>();
-        mExecutorService.submit(() -> createSipDelegateInternal(subId, request, packageName,
+        mExecutorService.submit(() -> createSipDelegateInternal(subId, uid, request, packageName,
                 delegateState,
                 // Capture any ImsExceptions generated during the process.
                 delegateMessage, result::complete));
@@ -423,8 +424,8 @@
         return result;
     }
 
-    private void createSipDelegateInternal(int subId, DelegateRequest request, String packageName,
-            ISipDelegateConnectionStateCallback delegateState,
+    private void createSipDelegateInternal(int subId, int uid, DelegateRequest request,
+            String packageName, ISipDelegateConnectionStateCallback delegateState,
             ISipDelegateMessageCallback delegateMessage,
             Consumer<ImsException> startedErrorConsumer) {
         ISipTransport transport;
@@ -450,8 +451,9 @@
             return;
         }
 
-        SipDelegateController c = mDelegateControllerFactory.create(subId, request, packageName,
-                transport, registration, mExecutorService, delegateState, delegateMessage);
+        SipDelegateController c = mDelegateControllerFactory.create(subId, uid, request,
+                packageName, transport, registration, mExecutorService, delegateState,
+                delegateMessage);
         logi("createSipDelegateInternal: request= " + request + ", packageName= " + packageName
                 + ", controller created: " + c);
         addPendingCreateAndEvaluate(c);
diff --git a/src/com/android/services/telephony/rcs/TelephonyRcsService.java b/src/com/android/services/telephony/rcs/TelephonyRcsService.java
index 046910c..dfcea74 100644
--- a/src/com/android/services/telephony/rcs/TelephonyRcsService.java
+++ b/src/com/android/services/telephony/rcs/TelephonyRcsService.java
@@ -34,6 +34,7 @@
 import com.android.internal.telephony.PhoneConfigurationManager;
 import com.android.internal.telephony.metrics.RcsStats;
 import com.android.internal.util.IndentingPrintWriter;
+import com.android.phone.ImsStateCallbackController;
 import com.android.phone.R;
 
 import java.io.FileDescriptor;
@@ -313,6 +314,9 @@
         }
         // Only start the connection procedure if we have active features.
         if (c.hasActiveFeatures()) c.connect();
+
+        ImsStateCallbackController.getInstance()
+                .notifyExternalRcsStateChanged(slotId, false, c.hasActiveFeatures());
     }
 
     /**
diff --git a/src/com/android/services/telephony/rcs/UceControllerManager.java b/src/com/android/services/telephony/rcs/UceControllerManager.java
index 995d685..02ae048 100644
--- a/src/com/android/services/telephony/rcs/UceControllerManager.java
+++ b/src/com/android/services/telephony/rcs/UceControllerManager.java
@@ -206,10 +206,11 @@
      *
      * @throws ImsException if the ImsService connected to this controller is currently down.
      */
-    public @PublishState int getUcePublishState() throws ImsException {
+    public @PublishState int getUcePublishState(boolean isSupportPublishingState)
+            throws ImsException {
         Future<Integer> future = mExecutorService.submit(() -> {
             checkUceControllerState();
-            return mUceController.getUcePublishState();
+            return mUceController.getUcePublishState(isSupportPublishingState);
         });
 
         try {
@@ -390,10 +391,11 @@
      *
      * @throws ImsException if the ImsService connected to this controller is currently down.
      */
-    public void registerPublishStateCallback(IRcsUcePublishStateCallback c) throws ImsException {
+    public void registerPublishStateCallback(IRcsUcePublishStateCallback c,
+            boolean supportPublishingState) throws ImsException {
         Future future = mExecutorService.submit(() -> {
             checkUceControllerState();
-            mUceController.registerPublishStateCallback(c);
+            mUceController.registerPublishStateCallback(c, supportPublishingState);
             return true;
         });
 
diff --git a/testapps/EmbmsServiceTestApp/Android.bp b/testapps/EmbmsServiceTestApp/Android.bp
index 584e5bd..236ba43 100644
--- a/testapps/EmbmsServiceTestApp/Android.bp
+++ b/testapps/EmbmsServiceTestApp/Android.bp
@@ -1,13 +1,9 @@
-// Build the Sample Embms Services
 package {
     // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "packages_services_Telephony_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
-    default_applicable_licenses: ["packages_services_Telephony_license"],
+    default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
+// Build the Sample Embms Services
 android_app {
     name: "EmbmsTestService",
     srcs: ["src/**/*.java"],
diff --git a/testapps/EmbmsTestDownloadApp/Android.bp b/testapps/EmbmsTestDownloadApp/Android.bp
index c1b9425..7a70221 100644
--- a/testapps/EmbmsTestDownloadApp/Android.bp
+++ b/testapps/EmbmsTestDownloadApp/Android.bp
@@ -1,10 +1,6 @@
 package {
     // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "packages_services_Telephony_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
-    default_applicable_licenses: ["packages_services_Telephony_license"],
+    default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
 src_dirs = ["src"]
diff --git a/testapps/EmbmsTestStreamingApp/Android.bp b/testapps/EmbmsTestStreamingApp/Android.bp
index 9f082ee..d2b8d46 100644
--- a/testapps/EmbmsTestStreamingApp/Android.bp
+++ b/testapps/EmbmsTestStreamingApp/Android.bp
@@ -1,10 +1,6 @@
 package {
     // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "packages_services_Telephony_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
-    default_applicable_licenses: ["packages_services_Telephony_license"],
+    default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
 android_test {
diff --git a/testapps/GbaTestApp/Android.bp b/testapps/GbaTestApp/Android.bp
index b3c45dd..76e02a0 100644
--- a/testapps/GbaTestApp/Android.bp
+++ b/testapps/GbaTestApp/Android.bp
@@ -14,11 +14,7 @@
 
 package {
     // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "packages_services_Telephony_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
-    default_applicable_licenses: ["packages_services_Telephony_license"],
+    default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
 android_test {
diff --git a/testapps/ImsTestService/Android.bp b/testapps/ImsTestService/Android.bp
index 7073749..a0bebce 100644
--- a/testapps/ImsTestService/Android.bp
+++ b/testapps/ImsTestService/Android.bp
@@ -1,10 +1,6 @@
 package {
     // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "packages_services_Telephony_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
-    default_applicable_licenses: ["packages_services_Telephony_license"],
+    default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
 android_app {
diff --git a/testapps/SmsManagerTestApp/Android.bp b/testapps/SmsManagerTestApp/Android.bp
index 4d4afcb..52fea61 100644
--- a/testapps/SmsManagerTestApp/Android.bp
+++ b/testapps/SmsManagerTestApp/Android.bp
@@ -1,10 +1,6 @@
 package {
     // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "packages_services_Telephony_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
-    default_applicable_licenses: ["packages_services_Telephony_license"],
+    default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
 android_app {
diff --git a/testapps/TelephonyManagerTestApp/Android.bp b/testapps/TelephonyManagerTestApp/Android.bp
index e95d62f..0ff917e 100644
--- a/testapps/TelephonyManagerTestApp/Android.bp
+++ b/testapps/TelephonyManagerTestApp/Android.bp
@@ -1,10 +1,6 @@
 package {
     // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "packages_services_Telephony_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
-    default_applicable_licenses: ["packages_services_Telephony_license"],
+    default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
 android_test {
diff --git a/testapps/TelephonyRegistryTestApp/Android.bp b/testapps/TelephonyRegistryTestApp/Android.bp
index 2439461..991e85c 100644
--- a/testapps/TelephonyRegistryTestApp/Android.bp
+++ b/testapps/TelephonyRegistryTestApp/Android.bp
@@ -1,10 +1,6 @@
 package {
     // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "packages_services_Telephony_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
-    default_applicable_licenses: ["packages_services_Telephony_license"],
+    default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
 android_test {
diff --git a/testapps/TestRcsApp/TestApp/Android.bp b/testapps/TestRcsApp/TestApp/Android.bp
index cda7d17..40254af 100644
--- a/testapps/TestRcsApp/TestApp/Android.bp
+++ b/testapps/TestRcsApp/TestApp/Android.bp
@@ -1,10 +1,6 @@
 package {
     // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "packages_services_Telephony_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
-    default_applicable_licenses: ["packages_services_Telephony_license"],
+    default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
 android_app {
diff --git a/testapps/TestRcsApp/aosp_test_rcsclient/Android.bp b/testapps/TestRcsApp/aosp_test_rcsclient/Android.bp
index 215c692..34b0a12 100644
--- a/testapps/TestRcsApp/aosp_test_rcsclient/Android.bp
+++ b/testapps/TestRcsApp/aosp_test_rcsclient/Android.bp
@@ -1,22 +1,6 @@
-
-
 package {
-    default_applicable_licenses: [
-        "packages_services_Telephony_testapps_TestRcsApp_aosp_test_rcsclient_license",
-    ],
-}
-
-// Added automatically by a large-scale-change
-// See: http://go/android-license-faq
-license {
-    name: "packages_services_Telephony_testapps_TestRcsApp_aosp_test_rcsclient_license",
-    visibility: [":__subpackages__"],
-    license_kinds: [
-        "SPDX-license-identifier-Apache-2.0",
-    ],
-    license_text: [
-        "LICENSE",
-    ],
+    // See: http://go/android-license-faq
+    default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
 android_library {
diff --git a/testapps/TestRcsApp/aosp_test_rcsclient/LICENSE b/testapps/TestRcsApp/aosp_test_rcsclient/LICENSE
deleted file mode 100644
index b9b9d2a..0000000
--- a/testapps/TestRcsApp/aosp_test_rcsclient/LICENSE
+++ /dev/null
@@ -1,176 +0,0 @@
-Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
\ No newline at end of file
diff --git a/testapps/TestRcsApp/aosp_test_rcsclient/src/com/android/libraries/rcs/simpleclient/protocol/sip/SipUtils.java b/testapps/TestRcsApp/aosp_test_rcsclient/src/com/android/libraries/rcs/simpleclient/protocol/sip/SipUtils.java
index 13fa53a..942588a 100644
--- a/testapps/TestRcsApp/aosp_test_rcsclient/src/com/android/libraries/rcs/simpleclient/protocol/sip/SipUtils.java
+++ b/testapps/TestRcsApp/aosp_test_rcsclient/src/com/android/libraries/rcs/simpleclient/protocol/sip/SipUtils.java
@@ -183,8 +183,8 @@
         // Set a Security-Verify header if exist.
         String securityVerify = configuration.getSecurityVerifyHeader();
         if (!TextUtils.isEmpty(securityVerify)) {
-            request.setHeader(
-                    sHeaderFactory.createHeader(SecurityVerifyHeader.NAME, securityVerify));
+            request.setHeaders(sHeaderFactory.createHeaders(SecurityVerifyHeader.NAME
+                    + ":" + securityVerify.trim()));
         }
 
         // Add Route headers.
diff --git a/testapps/TestSliceApp/.gitignore b/testapps/TestSliceApp/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/testapps/TestSliceApp/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/testapps/TestSliceApp/.idea/.gitignore b/testapps/TestSliceApp/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/testapps/TestSliceApp/.idea/compiler.xml b/testapps/TestSliceApp/.idea/compiler.xml
new file mode 100644
index 0000000..fb7f4a8
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/compiler.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <bytecodeTargetLevel target="11" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/.idea/gradle.xml b/testapps/TestSliceApp/.idea/gradle.xml
new file mode 100644
index 0000000..526b4c2
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/gradle.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="GradleMigrationSettings" migrationVersion="1" />
+  <component name="GradleSettings">
+    <option name="linkedExternalProjectsSettings">
+      <GradleProjectSettings>
+        <option name="testRunner" value="GRADLE" />
+        <option name="distributionType" value="DEFAULT_WRAPPED" />
+        <option name="externalProjectPath" value="$PROJECT_DIR$" />
+        <option name="modules">
+          <set>
+            <option value="$PROJECT_DIR$" />
+            <option value="$PROJECT_DIR$/app" />
+          </set>
+        </option>
+        <option name="resolveModulePerSourceSet" value="false" />
+      </GradleProjectSettings>
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/.idea/misc.xml b/testapps/TestSliceApp/.idea/misc.xml
new file mode 100644
index 0000000..a329266
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/misc.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="DesignSurface">
+    <option name="filePathToZoomLevelMap">
+      <map>
+        <entry key="app/src/main/res/drawable/ic_launcher_background.xml" value="0.38177083333333334" />
+        <entry key="app/src/main/res/layout/_copy.xml" value="0.365625" />
+        <entry key="app/src/main/res/layout/activity_main.xml" value="0.4891304347826087" />
+        <entry key="app/src/main/res/layout/copy.xml" value="0.37135416666666665" />
+        <entry key="app/src/main/res/layout/fragment_c_b_s.xml" value="0.473731884057971" />
+        <entry key="app/src/main/res/layout/fragment_c_b_s_copy.xml" value="0.365625" />
+        <entry key="app/src/main/res/layout/fragment_main.xml" value="0.46693840579710144" />
+        <entry key="app/src/main/res/layout/fragment_prioritize_bandwidth.xml" value="0.473731884057971" />
+        <entry key="app/src/main/res/layout/fragment_prioritize_bandwidth2.xml" value="0.365625" />
+        <entry key="app/src/main/res/layout/fragment_prioritize_latency.xml" value="0.473731884057971" />
+        <entry key="app/src/main/res/layout/fragment_prioritize_latency2.xml" value="0.365625" />
+      </map>
+    </option>
+  </component>
+  <component name="NullableNotNullManager">
+    <option name="myDefaultNullable" value="androidx.annotation.Nullable" />
+    <option name="myDefaultNotNull" value="androidx.annotation.NonNull" />
+    <option name="myNullables">
+      <value>
+        <list size="17">
+          <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
+          <item index="1" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
+          <item index="2" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
+          <item index="3" class="java.lang.String" itemvalue="androidx.annotation.Nullable" />
+          <item index="4" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
+          <item index="5" class="java.lang.String" itemvalue="com.android.annotations.Nullable" />
+          <item index="6" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
+          <item index="7" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
+          <item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
+          <item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
+          <item index="10" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
+          <item index="11" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.Nullable" />
+          <item index="12" class="java.lang.String" itemvalue="io.reactivex.annotations.Nullable" />
+          <item index="13" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.Nullable" />
+          <item index="14" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
+          <item index="15" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
+          <item index="16" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
+        </list>
+      </value>
+    </option>
+    <option name="myNotNulls">
+      <value>
+        <list size="17">
+          <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
+          <item index="1" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
+          <item index="2" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
+          <item index="3" class="java.lang.String" itemvalue="androidx.annotation.NonNull" />
+          <item index="4" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" />
+          <item index="5" class="java.lang.String" itemvalue="com.android.annotations.NonNull" />
+          <item index="6" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
+          <item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
+          <item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
+          <item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
+          <item index="10" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.NonNull" />
+          <item index="11" class="java.lang.String" itemvalue="io.reactivex.annotations.NonNull" />
+          <item index="12" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.NonNull" />
+          <item index="13" class="java.lang.String" itemvalue="lombok.NonNull" />
+          <item index="14" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
+          <item index="15" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
+          <item index="16" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
+        </list>
+      </value>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="JDK" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/build/classes" />
+  </component>
+  <component name="ProjectType">
+    <option name="id" value="Android" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/.idea/vcs.xml b/testapps/TestSliceApp/.idea/vcs.xml
new file mode 100644
index 0000000..498ba99
--- /dev/null
+++ b/testapps/TestSliceApp/.idea/vcs.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="IssueNavigationConfiguration">
+    <option name="links">
+      <list>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\bb/(\d+)(#\w+)?\b" />
+          <option name="linkRegexp" value="https://buganizer.corp.google.com/issues/$1$2" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\b(?:BUG=|FIXED=)(\d+)\b" />
+          <option name="linkRegexp" value="https://buganizer.corp.google.com/issues/$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\b(?:cl/|cr/|OCL=|DIFFBASE=|ROLLBACK_OF=)(\d+)\b" />
+          <option name="linkRegexp" value="https://critique.corp.google.com/$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\bomg/(\d+)\b" />
+          <option name="linkRegexp" value="https://omg.corp.google.com/$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\b(?:go/|goto/)([^,.&lt;&gt;()&quot;\s]+(?:[.,][^,.&lt;&gt;()&quot;\s]+)*)" />
+          <option name="linkRegexp" value="https://goto.google.com/$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="\bcs/([^\s]+[\w$])" />
+          <option name="linkRegexp" value="https://cs.corp.google.com/search/?q=$1" />
+        </IssueNavigationLink>
+        <IssueNavigationLink>
+          <option name="issueRegexp" value="(LINT\.IfChange)|(LINT\.ThenChange)" />
+          <option name="linkRegexp" value="https://goto.google.com/ifthisthenthatlint" />
+        </IssueNavigationLink>
+      </list>
+    </option>
+  </component>
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/.gitignore b/testapps/TestSliceApp/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/testapps/TestSliceApp/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/build.gradle b/testapps/TestSliceApp/app/build.gradle
new file mode 100644
index 0000000..2b20187
--- /dev/null
+++ b/testapps/TestSliceApp/app/build.gradle
@@ -0,0 +1,40 @@
+plugins {
+    id 'com.android.application'
+}
+
+android {
+    compileSdkPreview "android-Tiramisu"
+
+    defaultConfig {
+        applicationId "com.google.android.sample.testsliceapp"
+        minSdkPreview "Tiramisu"
+        targetSdkPreview "Tiramisu"
+        versionCode 1
+        versionName "1.0"
+
+        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+    }
+
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+        }
+    }
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
+    }
+}
+
+dependencies {
+
+    implementation 'androidx.appcompat:appcompat:1.4.1'
+    implementation 'com.google.android.material:material:1.5.0'
+    implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
+    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
+    testImplementation 'junit:junit:4.+'
+    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
+    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
+}
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/proguard-rules.pro b/testapps/TestSliceApp/app/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/testapps/TestSliceApp/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/androidTest/java/com/google/android/sample/testsliceapp/ExampleInstrumentedTest.java b/testapps/TestSliceApp/app/src/androidTest/java/com/google/android/sample/testsliceapp/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..7732215
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/androidTest/java/com/google/android/sample/testsliceapp/ExampleInstrumentedTest.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.google.android.sample.testsliceapp;
+
+import static org.junit.Assert.*;
+
+import android.content.Context;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+    @Test
+    public void useAppContext() {
+        // Context of the app under test.
+        Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+        assertEquals("com.google.android.sample.testsliceapp", appContext.getPackageName());
+    }
+}
diff --git a/testapps/TestSliceApp/app/src/main/Android.bp b/testapps/TestSliceApp/app/src/main/Android.bp
new file mode 100644
index 0000000..b02d5ff
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/Android.bp
@@ -0,0 +1,24 @@
+package {
+    // See: http://go/android-license-faq
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+android_app {
+    name: "TestSliceApp",
+    srcs: [
+        "java/com/google/android/sample/testsliceapp/*.java",
+    ],
+    static_libs: [
+        "androidx-constraintlayout_constraintlayout",
+        "androidx.appcompat_appcompat",
+    ],
+    libs: ["org.apache.http.legacy"],
+    certificate: "platform",
+    privileged: true,
+    product_specific: true,
+    sdk_version: "system_current",
+    min_sdk_version: "30",
+    optimize: {
+        proguard_flags_files: ["proguard.flags"],
+    },
+}
diff --git a/testapps/TestSliceApp/app/src/main/AndroidManifest.xml b/testapps/TestSliceApp/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..d28bbb0
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/AndroidManifest.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.google.android.sample.testsliceapp">
+
+  <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
+  <application
+      android:allowBackup="true"
+      android:icon="@mipmap/ic_launcher"
+      android:label="@string/app_name"
+      android:roundIcon="@mipmap/ic_launcher_round"
+      android:supportsRtl="true"
+      android:theme="@style/Theme.AppCompat"
+      android:versionCode="34">
+    <activity
+        android:name=".MainActivity"
+        android:exported="true">
+      <intent-filter>
+        <action android:name="android.intent.action.MAIN" />
+        <category android:name="android.intent.category.LAUNCHER" />
+      </intent-filter>
+    </activity>
+    <service android:name=".TestCarrierService"
+        android:permission="android.permission.BIND_CARRIER_SERVICES"
+        android:exported="true">
+      <intent-filter>
+        <action android:name="android.service.carrier.CarrierService" />
+      </intent-filter>
+      <meta-data android:name="android.service.carrier.LONG_LIVED_BINDING"
+          android:value="true" />
+    </service>
+  </application>
+</manifest>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/CBS.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/CBS.java
new file mode 100644
index 0000000..a555ce6
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/CBS.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.google.android.sample.testsliceapp;
+
+import android.net.ConnectivityManager;
+import android.net.ConnectivityManager.NetworkCallback;
+import android.net.Network;
+import android.net.NetworkCapabilities;
+import android.net.NetworkRequest;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.fragment.app.Fragment;
+
+/**
+ * A simple {@link Fragment} subclass. Use the {@link CBS#newInstance} factory method to create an
+ * instance of this fragment.
+ */
+public class CBS extends Fragment {
+    Button mRelease, mRequest, mPing;
+    Network mNetwork;
+    ConnectivityManager mConnectivityManager;
+    NetworkCallback mProfileCheckNetworkCallback;
+
+    public CBS() {
+        // Required empty public constructor
+    }
+
+    /**
+     * Use this factory method to create a new instance of this fragment using the provided
+     * parameters.
+     *
+     * @param param1 Parameter 1.
+     * @param param2 Parameter 2.
+     * @return A new instance of fragment CBS.
+     */
+    // TODO: Rename and change types and number of parameters
+    public static CBS newInstance(String param1, String param2) {
+        CBS fragment = new CBS();
+        Bundle args = new Bundle();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        // Inflate the layout for this fragment
+        View view = inflater.inflate(R.layout.fragment_c_b_s, container, false);
+        mProfileCheckNetworkCallback =
+                new NetworkCallback() {
+            @Override
+            public void onAvailable(final Network network) {
+                mNetwork = network;
+            }
+        };
+        mRelease = view.findViewById(R.id.releasecbs);
+        mRelease.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                mConnectivityManager.unregisterNetworkCallback(
+                        mProfileCheckNetworkCallback);
+            }
+        });
+        mRequest = view.findViewById(R.id.requestcbs);
+        mRequest.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                NetworkCallback mProfileCheckNetworkCallback = new NetworkCallback() {
+                    @Override
+                    public void onAvailable(final Network network) {
+                        mNetwork = network;
+                    }
+                };
+                NetworkRequest.Builder builder = new NetworkRequest.Builder();
+                builder.addCapability(NetworkCapabilities.NET_CAPABILITY_CBS);
+                mConnectivityManager.requestNetwork(builder.build(), mProfileCheckNetworkCallback);
+            }
+        });
+        mPing = view.findViewById(R.id.pingcbs);
+        mPing.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                if (mNetwork != null) {
+                    //mNetwork.
+                    try {
+                        new RequestTask().ping(mNetwork);
+                    } catch (Exception e) {
+                    }
+                }
+            }
+        });
+        return view;
+    }
+}
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/MainActivity.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/MainActivity.java
new file mode 100644
index 0000000..ef4d0ec
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/MainActivity.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.google.android.sample.testsliceapp;
+
+import android.os.Bundle;
+import android.util.Log;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+/**
+ * Main activity for slice test app.
+ **/
+public class MainActivity extends AppCompatActivity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_main);
+    }
+
+    /**
+     * Override the back press event handler.
+     */
+    @Override
+    public void onBackPressed() {
+        int count = getSupportFragmentManager().getBackStackEntryCount();
+        Log.d("MainActivity", "onBackPressed " + count);
+        if (count == 0) {
+            super.onBackPressed();
+            //additional code
+        } else {
+            getSupportFragmentManager().popBackStack();
+        }
+    }
+}
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/MainFragment.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/MainFragment.java
new file mode 100644
index 0000000..97b3393
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/MainFragment.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.google.android.sample.testsliceapp;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+
+/**
+ * A simple {@link Fragment} subclass. Use the {@link MainFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class MainFragment extends Fragment {
+    Button mBW, mLatency, mCBS;
+    public MainFragment() {
+      // Required empty public constructor
+    }
+
+    /**
+     * Use this factory method to create a new instance of this fragment using the provided
+     * parameters.
+     *
+     * @param param1 Parameter 1.
+     * @param param2 Parameter 2.
+     * @return A new instance of fragment MainFragment.
+     */
+    public static MainFragment newInstance(String param1, String param2) {
+        MainFragment fragment = new MainFragment();
+        Bundle args = new Bundle();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        // Inflate the layout for this fragment
+        View view = inflater.inflate(R.layout.fragment_main, container, false);
+        mBW = view.findViewById(R.id.bw);
+        mBW.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                replaceFragment(new PrioritizeBandwidth());
+            }
+        });
+        mLatency = view.findViewById(R.id.latency);
+        mLatency.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                replaceFragment(new PrioritizeLatency());
+            }
+        });
+        mCBS = view.findViewById(R.id.cbs);
+        mCBS.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                replaceFragment(new CBS());
+            }
+        });
+        return view;
+    }
+
+    private void replaceFragment(Fragment fragment) {
+        FragmentManager fragmentManager = getParentFragmentManager();
+        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
+        try {
+            getParentFragmentManager().popBackStackImmediate(fragment.toString(),
+                      FragmentManager.POP_BACK_STACK_INCLUSIVE);
+        } catch (java.lang.IllegalStateException e) {
+
+        }
+        fragmentTransaction.replace(R.id.frameLayoutMainFrag, fragment);
+        fragmentTransaction.commit();
+    }
+}
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeBandwidth.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeBandwidth.java
new file mode 100644
index 0000000..d997178
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeBandwidth.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.google.android.sample.testsliceapp;
+
+import android.net.ConnectivityManager;
+import android.net.ConnectivityManager.NetworkCallback;
+import android.net.Network;
+import android.net.NetworkCapabilities;
+import android.net.NetworkRequest;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.fragment.app.Fragment;
+
+/**
+ * A simple {@link Fragment} subclass. Use the {@link PrioritizeBandwidth#newInstance} factory
+ * method to create an instance of this fragment.
+ */
+public class PrioritizeBandwidth extends Fragment {
+
+    Button mRelease, mRequest, mPing;
+    Network mNetwork;
+    ConnectivityManager mConnectivityManager;
+    NetworkCallback mProfileCheckNetworkCallback;
+    public PrioritizeBandwidth() {
+      // Required empty public constructor
+    }
+
+    /**
+     * Use this factory method to create a new instance of this fragment using the provided
+     * parameters.
+     *
+     * @param param1 Parameter 1.
+     * @param param2 Parameter 2.
+     * @return A new instance of fragment PrioritizeBandwidth.
+     */
+    public static PrioritizeBandwidth newInstance(String param1, String param2) {
+        PrioritizeBandwidth fragment = new PrioritizeBandwidth();
+        Bundle args = new Bundle();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        mConnectivityManager = getContext().getSystemService(ConnectivityManager.class);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        // Inflate the layout for this fragment
+        View view = inflater.inflate(R.layout.fragment_prioritize_bandwidth, container, false);
+        mProfileCheckNetworkCallback =
+                new NetworkCallback() {
+            @Override
+            public void onAvailable(final Network network) {
+                mNetwork = network;
+            }
+        };
+        mRelease = view.findViewById(R.id.releasebw);
+        mRelease.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                mConnectivityManager.unregisterNetworkCallback(mProfileCheckNetworkCallback);
+            }
+        });
+        mRequest = view.findViewById(R.id.requestbw);
+        mRequest.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                NetworkCallback mProfileCheckNetworkCallback =
+                        new NetworkCallback() {
+                    @Override
+                    public void onAvailable(final Network network) {
+                        mNetwork = network;
+                    }
+                };
+                NetworkRequest.Builder builder = new NetworkRequest.Builder();
+                builder.addCapability(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_BANDWIDTH);
+                mConnectivityManager.requestNetwork(builder.build(), mProfileCheckNetworkCallback);
+            }
+        });
+        mPing = view.findViewById(R.id.pingbw);
+        mPing.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                if (mNetwork != null) {
+                    //mNetwork.
+                    try {
+                        new RequestTask().ping(mNetwork);
+                    } catch (Exception e) {
+                    }
+                }
+            }
+        });
+        return view;
+    }
+}
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeLatency.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeLatency.java
new file mode 100644
index 0000000..b45362c
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/PrioritizeLatency.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.google.android.sample.testsliceapp;
+
+import android.net.ConnectivityManager;
+import android.net.ConnectivityManager.NetworkCallback;
+import android.net.Network;
+import android.net.NetworkCapabilities;
+import android.net.NetworkRequest;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.fragment.app.Fragment;
+
+/**
+ * A simple {@link Fragment} subclass. Use the {@link PrioritizeLatency#newInstance} factory method
+ * to create an instance of this fragment.
+ */
+public class PrioritizeLatency extends Fragment {
+    Button mRelease, mRequest, mPing;
+    Network mNetwork;
+    ConnectivityManager mConnectivityManager;
+    NetworkCallback mProfileCheckNetworkCallback;
+    public PrioritizeLatency() {
+      // Required empty public constructor
+    }
+
+    /**
+     * Use this factory method to create a new instance of this fragment using the provided
+     * parameters.
+     *
+     * @param param1 Parameter 1.
+     * @param param2 Parameter 2.
+     * @return A new instance of fragment PrioritizeLatency.
+     */
+    // TODO: Rename and change types and number of parameters
+    public static PrioritizeLatency newInstance(String param1, String param2) {
+        PrioritizeLatency fragment = new PrioritizeLatency();
+        Bundle args = new Bundle();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        // Inflate the layout for this fragment
+        View view = inflater.inflate(R.layout.fragment_prioritize_latency, container, false);
+        mProfileCheckNetworkCallback =
+                new NetworkCallback() {
+            @Override
+            public void onAvailable(final Network network) {
+                mNetwork = network;
+            }
+        };
+        mRelease = view.findViewById(R.id.releaselatency);
+        mRelease.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                mConnectivityManager.unregisterNetworkCallback(mProfileCheckNetworkCallback);
+            }
+        });
+        mRequest = view.findViewById(R.id.requestlatency);
+        mRequest.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                NetworkCallback mProfileCheckNetworkCallback = new NetworkCallback() {
+                    @Override
+                    public void onAvailable(final Network network) {
+                        mNetwork = network;
+                    }
+                };
+                NetworkRequest.Builder builder = new NetworkRequest.Builder();
+                builder.addCapability(NetworkCapabilities.NET_CAPABILITY_PRIORITIZE_LATENCY);
+                mConnectivityManager.requestNetwork(builder.build(), mProfileCheckNetworkCallback);
+            }
+        });
+        mPing = view.findViewById(R.id.pinglatency);
+        mPing.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                if (mNetwork != null) {
+                    //mNetwork.
+                    try {
+                        new RequestTask().ping(mNetwork);
+                    } catch (Exception e) {
+                    }
+                }
+            }
+        });
+        return view;
+    }
+}
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/RequestTask.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/RequestTask.java
new file mode 100644
index 0000000..b12939e
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/RequestTask.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.google.android.sample.testsliceapp;
+
+import android.net.Network;
+
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+class RequestTask{
+    String ping(Network network) {
+        URL url = null;
+        try {
+            url = new URL("http://www.google.com");
+        } catch (Exception e) {
+        }
+        if (url != null) {
+            try {
+                return httpGet(network, url);
+            } catch (Exception e) {
+            }
+        }
+        return "";
+    }
+
+    /**
+    * Performs a HTTP GET to the specified URL on the specified Network, and returns
+    * the response body decoded as UTF-8.
+    */
+    private static String httpGet(Network network, URL httpUrl) throws IOException {
+        HttpURLConnection connection = (HttpURLConnection) network.openConnection(httpUrl);
+        try {
+            InputStream inputStream = connection.getInputStream();
+            return new BufferedInputStream(inputStream).toString();
+        } finally {
+            connection.disconnect();
+        }
+    }
+}
diff --git a/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/TestCarrierService.java b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/TestCarrierService.java
new file mode 100644
index 0000000..b1d019e
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/java/com/google/android/sample/testsliceapp/TestCarrierService.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.google.android.sample.testsliceapp;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.service.carrier.CarrierIdentifier;
+import android.service.carrier.CarrierService;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+
+/**
+ * Carrier Service that sets the carrier config upon being bound by the system. Requires UICC
+ * privileges.
+ */
+public class TestCarrierService extends CarrierService {
+    @Override
+    public void onCreate() {
+        CarrierConfigManager cfgMgr =
+                (CarrierConfigManager) getSystemService(Context.CARRIER_CONFIG_SERVICE);
+        cfgMgr.notifyConfigChangedForSubId(SubscriptionManager.getDefaultSubscriptionId());
+    }
+
+    @Override
+    public PersistableBundle onLoadConfig(CarrierIdentifier carrierIdentifier) {
+        PersistableBundle config = new PersistableBundle();
+        return config;
+    }
+}
diff --git a/testapps/TestSliceApp/app/src/main/proguard.flags b/testapps/TestSliceApp/app/src/main/proguard.flags
new file mode 100644
index 0000000..1854804
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/proguard.flags
@@ -0,0 +1,4 @@
+-dontobfuscate
+-dontoptimize
+
+-keep class com.google.android.sample.testsliceapp.*
diff --git a/testapps/TestSliceApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/testapps/TestSliceApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..966abaf
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:aapt="http://schemas.android.com/aapt"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportHeight="108"
+    android:viewportWidth="108">
+  <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
+    <aapt:attr name="android:fillColor">
+      <gradient
+          android:endX="85.84757"
+          android:endY="92.4963"
+          android:startX="42.9492"
+          android:startY="49.59793"
+          android:type="linear">
+        <item
+            android:color="#44000000"
+            android:offset="0.0" />
+        <item
+            android:color="#00000000"
+            android:offset="1.0" />
+      </gradient>
+    </aapt:attr>
+  </path>
+  <path
+      android:fillColor="#FFFFFF"
+      android:fillType="nonZero"
+      android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
+      android:strokeColor="#00000000"
+      android:strokeWidth="1" />
+</vector>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/drawable/ic_launcher_background.xml b/testapps/TestSliceApp/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..61bb79e
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportHeight="108"
+    android:viewportWidth="108">
+  <path
+      android:fillColor="#3DDC84"
+      android:pathData="M0,0h108v108h-108z" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M9,0L9,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M19,0L19,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M29,0L29,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M39,0L39,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M49,0L49,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M59,0L59,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M69,0L69,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M79,0L79,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M89,0L89,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M99,0L99,108"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,9L108,9"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,19L108,19"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,29L108,29"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,39L108,39"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,49L108,49"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,59L108,59"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,69L108,69"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,79L108,79"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,89L108,89"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M0,99L108,99"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M19,29L89,29"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M19,39L89,39"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M19,49L89,49"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M19,59L89,59"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M19,69L89,69"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M19,79L89,79"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M29,19L29,89"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M39,19L39,89"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M49,19L49,89"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M59,19L59,89"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M69,19L69,89"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+  <path
+      android:fillColor="#00000000"
+      android:pathData="M79,19L79,89"
+      android:strokeColor="#33FFFFFF"
+      android:strokeWidth="0.8" />
+</vector>
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/activity_main.xml b/testapps/TestSliceApp/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..a723e6f
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".MainActivity" >
+  <androidx.fragment.app.FragmentContainerView
+      xmlns:android="http://schemas.android.com/apk/res/android"
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:id="@+id/frameLayoutMainFrag"
+      android:name="com.google.android.sample.testsliceapp.MainFragment"/>
+</RelativeLayout>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/fragment_c_b_s.xml b/testapps/TestSliceApp/app/src/main/res/layout/fragment_c_b_s.xml
new file mode 100644
index 0000000..ac2ef9d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_c_b_s.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+<FrameLayout
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:id="@+id/frameLayoutCBS">
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/frameLayout3"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".CBS">
+  <TextView
+      android:id="@+id/textView3"
+      android:layout_width="342dp"
+      android:layout_height="49dp"
+      android:text="CBS"
+      tools:layout_editor_absoluteX="19dp"
+      tools:layout_editor_absoluteY="7dp" />
+  <Button
+      android:id="@+id/requestcbs"
+      android:layout_width="186dp"
+      android:layout_height="57dp"
+      android:text="Request Network"
+      tools:layout_editor_absoluteX="120dp"
+      tools:layout_editor_absoluteY="154dp" />
+  <Button
+      android:id="@+id/releasecbs"
+      android:layout_width="187dp"
+      android:layout_height="61dp"
+      android:text="Release Network"
+      tools:layout_editor_absoluteX="119dp"
+      tools:layout_editor_absoluteY="273dp" />
+  <Button
+      android:id="@+id/pingcbs"
+      android:layout_width="186dp"
+      android:layout_height="55dp"
+      android:text="Ping"
+      tools:layout_editor_absoluteX="120dp"
+      tools:layout_editor_absoluteY="379dp" />
+</androidx.constraintlayout.widget.ConstraintLayout>
+</FrameLayout>
+</RelativeLayout>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/fragment_main.xml b/testapps/TestSliceApp/app/src/main/res/layout/fragment_main.xml
new file mode 100644
index 0000000..11e95a8
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_main.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".MainFragment">
+
+  <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+      xmlns:app="http://schemas.android.com/apk/res-auto"
+      xmlns:tools="http://schemas.android.com/tools"
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:id="@+id/frameLayoutMain"
+      tools:context=".MainActivity">
+    <Button
+        android:id="@+id/cbs"
+        android:layout_width="222dp"
+        android:layout_height="51dp"
+        android:text="CBS"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.493"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.751" />
+    <Button
+        android:id="@+id/latency"
+        android:layout_width="222dp"
+        android:layout_height="46dp"
+        android:text="PRIORITIZE LATENCY"
+        app:layout_constraintBottom_toTopOf="@+id/cbs"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.497"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.783" />
+    <Button
+        android:id="@+id/bw"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="PRIORITIZE BANDWIDTH"
+        app:layout_constraintBottom_toTopOf="@+id/latency"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.497"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.623" />
+  </androidx.constraintlayout.widget.ConstraintLayout>
+
+</FrameLayout>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_bandwidth.xml b/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_bandwidth.xml
new file mode 100644
index 0000000..8933e7a
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_bandwidth.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+  <FrameLayout
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:id="@+id/frameLayoutBW">
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/frameLayout2"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".PrioritizeBandwidth">
+  <TextView
+      android:id="@+id/textView2"
+      android:layout_width="371dp"
+      android:layout_height="52dp"
+      android:text="Prioritize Bandwidth"
+      tools:layout_editor_absoluteX="20dp"
+      tools:layout_editor_absoluteY="4dp" />
+  <Button
+      android:id="@+id/releasebw"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginBottom="64dp"
+      android:text="Release Network"
+      app:layout_constraintBottom_toTopOf="@+id/requestbw"
+      app:layout_constraintEnd_toEndOf="parent"
+      app:layout_constraintStart_toStartOf="parent"
+      app:layout_constraintTop_toBottomOf="@+id/textView2"
+      app:layout_constraintVertical_bias="0.919" />
+  <Button
+      android:id="@+id/pingbw"
+      android:layout_width="182dp"
+      android:layout_height="42dp"
+      android:layout_marginBottom="228dp"
+      android:text="Ping"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintEnd_toEndOf="parent"
+      app:layout_constraintHorizontal_bias="0.493"
+      app:layout_constraintStart_toStartOf="parent" />
+  <Button
+      android:id="@+id/requestbw"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginTop="308dp"
+      android:text="RequestNetwork"
+      app:layout_constraintBottom_toTopOf="@+id/pingbw"
+      app:layout_constraintEnd_toEndOf="parent"
+      app:layout_constraintHorizontal_bias="0.495"
+      app:layout_constraintStart_toStartOf="parent"
+      app:layout_constraintTop_toTopOf="parent"
+      app:layout_constraintVertical_bias="0.314" />
+</androidx.constraintlayout.widget.ConstraintLayout>
+  </FrameLayout>
+</RelativeLayout>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_latency.xml b/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_latency.xml
new file mode 100644
index 0000000..9527d69
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/layout/fragment_prioritize_latency.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+  <FrameLayout
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:id="@+id/frameLayoutLatency">
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/frameLayout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".PrioritizeLatency" >
+  <Button
+      android:id="@+id/requestlatency"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:text="RequestNetwork"
+      app:layout_constraintBottom_toTopOf="@+id/button6"
+      app:layout_constraintEnd_toEndOf="parent"
+      app:layout_constraintHorizontal_bias="0.461"
+      app:layout_constraintStart_toStartOf="parent"
+      app:layout_constraintTop_toTopOf="parent"
+      app:layout_constraintVertical_bias="0.717" />
+  <Button
+      android:id="@+id/releaselatency"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginBottom="76dp"
+      android:text="Release Network"
+      app:layout_constraintBottom_toTopOf="@+id/button7"
+      app:layout_constraintEnd_toEndOf="parent"
+      app:layout_constraintHorizontal_bias="0.478"
+      app:layout_constraintStart_toStartOf="parent" />
+  <Button
+      android:id="@+id/pinglatency"
+      android:layout_width="182dp"
+      android:layout_height="42dp"
+      android:layout_marginBottom="308dp"
+      android:text="Ping"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintEnd_toEndOf="parent"
+      app:layout_constraintHorizontal_bias="0.471"
+      app:layout_constraintStart_toStartOf="parent" />
+  <TextView
+      android:id="@+id/textView"
+      android:layout_width="371dp"
+      android:layout_height="52dp"
+      android:text="Prioritize Latency"
+      tools:layout_editor_absoluteX="21dp"
+      tools:layout_editor_absoluteY="1dp" />
+</androidx.constraintlayout.widget.ConstraintLayout>
+    </FrameLayout>
+    </RelativeLayout>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/testapps/TestSliceApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..03eed25
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+  <background android:drawable="@drawable/ic_launcher_background" />
+  <foreground android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/testapps/TestSliceApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..03eed25
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+  <background android:drawable="@drawable/ic_launcher_background" />
+  <foreground android:drawable="@drawable/ic_launcher_foreground" />
+</adaptive-icon>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 0000000..c209e78
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-hdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..b2dfe3d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 0000000..4f0f1d6
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-mdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..62b611d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 0000000..948a307
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..1b9a695
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..28d4b77
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9287f50
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 0000000..aa7d642
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/testapps/TestSliceApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 0000000..9126ae3
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
Binary files differ
diff --git a/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml
new file mode 100644
index 0000000..d172f0f
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-af/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hallo leë fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-am/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-am/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-am/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ar/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ar/strings.xml
new file mode 100644
index 0000000..0cadb81
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ar/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"جزء فارغ للترحيب"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-as/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-as/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-as/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-az/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-az/strings.xml
new file mode 100644
index 0000000..3702d56
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-az/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Boş salamlama fraqmenti"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-b+sr+Latn/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-be/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-be/strings.xml
new file mode 100644
index 0000000..385f84e
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-be/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Вітаем,"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-bg/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-bg/strings.xml
new file mode 100644
index 0000000..943a70d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-bg/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Здравей, празен фрагмент"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-bn/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-bn/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-bn/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-bs/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-bs/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-bs/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ca/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ca/strings.xml
new file mode 100644
index 0000000..9799d39
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ca/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Fragment de benvinguda en blanc"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-cs/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-cs/strings.xml
new file mode 100644
index 0000000..793ab6f
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-cs/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Prázdný fragment pro pozdrav"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-da/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-da/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-da/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-de/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-de/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-de/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-el/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-el/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-el/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rAU/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rAU/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rAU/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rCA/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rCA/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rCA/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rGB/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rGB/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rIN/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rIN/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-en-rXC/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-en-rXC/strings.xml
new file mode 100644
index 0000000..dafc7d2
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-en-rXC/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‏‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‎‏‏‎‏‏‎‏‏‎‎‏‏‎‏‏‏‎‏‏‎‏‏‎‏‎‎‏‎‎‎‏‎‏‎‎TestSliceApp‎‏‎‎‏‎"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‎‏‎‎‎‏‏‏‎‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‎‏‎‎‎‎‎‏‎‏‏‎‏‏‏‎‏‎‏‎‎‏‏‏‎‎‏‎‎‏‏‏‎Hello blank fragment‎‏‎‎‏‎"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-es-rUS/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-es-rUS/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-es/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-es/strings.xml
new file mode 100644
index 0000000..355b912
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-es/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hola, (segmento en blanco):"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-et/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-et/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-et/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-eu/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-eu/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-eu/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-fa/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-fa/strings.xml
new file mode 100644
index 0000000..6f35108
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-fa/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"سلام بخش خالی"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-fi/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-fi/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-fi/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-fr-rCA/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-fr-rCA/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-fr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-fr/strings.xml
new file mode 100644
index 0000000..e9b3b45
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-fr/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Bonjour fragment vierge"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-gl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-gl/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-gl/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-gu/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-gu/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-gu/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-hi/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-hi/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-hi/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-hr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-hr/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-hr/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-hu/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-hu/strings.xml
new file mode 100644
index 0000000..0e73dba
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-hu/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Üres üdvözlő rész"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-hy/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-hy/strings.xml
new file mode 100644
index 0000000..31a60c6
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-hy/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Դատարկ հատված"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-in/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-in/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-in/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-is/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-is/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-is/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-it/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-it/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-it/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-iw/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-iw/strings.xml
new file mode 100644
index 0000000..4287a40
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-iw/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"שלום קטע ריק"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ja/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ja/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ja/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ka/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ka/strings.xml
new file mode 100644
index 0000000..8d91ed0
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ka/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"მოგესალმებით, ეს ცარიელი ფრაგმენტია"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-kk/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-kk/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-kk/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-km/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-km/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-km/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-kn/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-kn/strings.xml
new file mode 100644
index 0000000..13a202b
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-kn/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"ಹಲೋ, ಖಾಲಿ ಫ್ರಾಗ್ಮೆಂಟ್"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ko/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ko/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ko/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ky/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ky/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ky/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-lo/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-lo/strings.xml
new file mode 100644
index 0000000..3d47ad6
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-lo/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"​ສະ​ບາຍ​ດີ​ຈຸດ​ແຕກທີ່​ຫວ່າງ​ເປົ່າ"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-lt/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-lt/strings.xml
new file mode 100644
index 0000000..509fd2d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-lt/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Sveiki, tuščias fragmentas"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-lv/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-lv/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-lv/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-mk/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-mk/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-mk/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ml/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ml/strings.xml
new file mode 100644
index 0000000..47ca9c8
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ml/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"ഹലോ ബ്ലാങ്ക് ഫ്രാഗ്‌മെന്റ്"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-mn/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-mn/strings.xml
new file mode 100644
index 0000000..1aa5138
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-mn/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Сайн байна уу хоосон хэсэг"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-mr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-mr/strings.xml
new file mode 100644
index 0000000..7fbe792
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-mr/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"हॅलो ब्लँक फ्रॅग्मेंट"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ms/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ms/strings.xml
new file mode 100644
index 0000000..b928cd6
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ms/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Helo cebisan kosong"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-my/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-my/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-my/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-nb/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-nb/strings.xml
new file mode 100644
index 0000000..3d601ab
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-nb/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hei, tomt fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ne/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ne/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ne/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-nl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-nl/strings.xml
new file mode 100644
index 0000000..5d10fc6
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-nl/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hallo leeg fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-or/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-or/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-or/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-pa/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-pa/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-pa/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-pl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-pl/strings.xml
new file mode 100644
index 0000000..0bf147b
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-pl/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Tutaj jest pusty fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-pt-rPT/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..b94a687
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-pt-rPT/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Olá, fragmento em branco"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-pt/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-pt/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-pt/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ro/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ro/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ro/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ru/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ru/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ru/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-si/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-si/strings.xml
new file mode 100644
index 0000000..7c88afe
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-si/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"ආයුබෝවන් හිස් කොටස"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sk/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sk/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sk/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sl/strings.xml
new file mode 100644
index 0000000..b3fd35a
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sl/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Prazen del za pozdrav"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sq/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sq/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sq/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sr/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sr/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sv/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sv/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sv/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-sw/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-sw/strings.xml
new file mode 100644
index 0000000..5cc6a6a
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-sw/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Kipande cha salamu kisichokuwa na kitu"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ta/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ta/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ta/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-te/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-te/strings.xml
new file mode 100644
index 0000000..ad9cef8
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-te/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"హలో ఖాళీ విడిభాగము"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-th/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-th/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-th/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-tl/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-tl/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-tl/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-tr/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-tr/strings.xml
new file mode 100644
index 0000000..1e18a88
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-tr/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Merhaba boş bölüm"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-uk/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-uk/strings.xml
new file mode 100644
index 0000000..0219615
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-uk/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Пустий фрагмент із привітанням"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-ur/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-ur/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-ur/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-uz/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-uz/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-uz/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-vi/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-vi/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-vi/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-zh-rCN/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-zh-rCN/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-zh-rHK/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..93c0492
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-zh-rHK/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"歡迎詞空白片段"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-zh-rTW/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values-zu/strings.xml b/testapps/TestSliceApp/app/src/main/res/values-zu/strings.xml
new file mode 100644
index 0000000..229ff5d
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values-zu/strings.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name" msgid="1265450418387661962">"TestSliceApp"</string>
+    <string name="hello_blank_fragment" msgid="1245093642770491175">"Hello blank fragment"</string>
+</resources>
diff --git a/testapps/TestSliceApp/app/src/main/res/values/colors.xml b/testapps/TestSliceApp/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..09837df
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values/colors.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <color name="purple_200">#FFBB86FC</color>
+  <color name="purple_500">#FF6200EE</color>
+  <color name="purple_700">#FF3700B3</color>
+  <color name="teal_200">#FF03DAC5</color>
+  <color name="teal_700">#FF018786</color>
+  <color name="black">#FF000000</color>
+  <color name="white">#FFFFFFFF</color>
+</resources>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/main/res/values/strings.xml b/testapps/TestSliceApp/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..c2bb089
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/main/res/values/strings.xml
@@ -0,0 +1,5 @@
+<resources>
+  <string name="app_name">TestSliceApp</string>
+  <!-- TODO: Remove or change this placeholder text -->
+  <string name="hello_blank_fragment">Hello blank fragment</string>
+</resources>
\ No newline at end of file
diff --git a/testapps/TestSliceApp/app/src/test/java/com/google/android/sample/testsliceapp/ExampleUnitTest.java b/testapps/TestSliceApp/app/src/test/java/com/google/android/sample/testsliceapp/ExampleUnitTest.java
new file mode 100644
index 0000000..c011e75
--- /dev/null
+++ b/testapps/TestSliceApp/app/src/test/java/com/google/android/sample/testsliceapp/ExampleUnitTest.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.google.android.sample.testsliceapp;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+public class ExampleUnitTest {
+    @Test
+    public void addition_isCorrect() {
+        assertEquals(4, 2 + 2);
+    }
+}
diff --git a/testapps/TestSliceApp/build.gradle b/testapps/TestSliceApp/build.gradle
new file mode 100644
index 0000000..026daed
--- /dev/null
+++ b/testapps/TestSliceApp/build.gradle
@@ -0,0 +1,17 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+buildscript {
+    repositories {
+        google()
+        mavenCentral()
+    }
+    dependencies {
+        classpath "com.android.tools.build:gradle:7.0.4"
+
+        // NOTE: Do not place your application dependencies here; they belong
+        // in the individual module build.gradle files
+    }
+}
+
+task clean(type: Delete) {
+    delete rootProject.buildDir
+}
\ No newline at end of file
diff --git a/testapps/TestSliceApp/gradle.properties b/testapps/TestSliceApp/gradle.properties
new file mode 100644
index 0000000..52f5917
--- /dev/null
+++ b/testapps/TestSliceApp/gradle.properties
@@ -0,0 +1,19 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app"s APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Automatically convert third-party libraries to use AndroidX
+android.enableJetifier=true
\ No newline at end of file
diff --git a/testapps/TestSliceApp/gradle/wrapper/gradle-wrapper.jar b/testapps/TestSliceApp/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..e708b1c
--- /dev/null
+++ b/testapps/TestSliceApp/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/testapps/TestSliceApp/gradle/wrapper/gradle-wrapper.properties b/testapps/TestSliceApp/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..db8a139
--- /dev/null
+++ b/testapps/TestSliceApp/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Mon Feb 28 14:52:03 PST 2022
+distributionBase=GRADLE_USER_HOME
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip
+distributionPath=wrapper/dists
+zipStorePath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
diff --git a/testapps/TestSliceApp/gradlew b/testapps/TestSliceApp/gradlew
new file mode 100755
index 0000000..4f906e0
--- /dev/null
+++ b/testapps/TestSliceApp/gradlew
@@ -0,0 +1,185 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+    echo "$*"
+}
+
+die () {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=`expr $i + 1`
+    done
+    case $i in
+        0) set -- ;;
+        1) set -- "$args0" ;;
+        2) set -- "$args0" "$args1" ;;
+        3) set -- "$args0" "$args1" "$args2" ;;
+        4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Escape application args
+save () {
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+    echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/testapps/TestSliceApp/gradlew.bat b/testapps/TestSliceApp/gradlew.bat
new file mode 100644
index 0000000..ac1b06f
--- /dev/null
+++ b/testapps/TestSliceApp/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem      https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/testapps/TestSliceApp/settings.gradle b/testapps/TestSliceApp/settings.gradle
new file mode 100644
index 0000000..5d18e01
--- /dev/null
+++ b/testapps/TestSliceApp/settings.gradle
@@ -0,0 +1,10 @@
+dependencyResolutionManagement {
+    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+    repositories {
+        google()
+        mavenCentral()
+        jcenter() // Warning: this repository is going to shut down soon
+    }
+}
+rootProject.name = "TestSliceApp"
+include ':app'
diff --git a/tests/Android.bp b/tests/Android.bp
index c180476..08cac05 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -16,11 +16,7 @@
 
 package {
     // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "packages_services_Telephony_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
-    default_applicable_licenses: ["packages_services_Telephony_license"],
+    default_applicable_licenses: ["Android-Apache-2.0"],
 }
 
 android_test {
@@ -50,7 +46,8 @@
         "telephony-common-testing",
         "testng",
         "truth-prebuilt",
-	"testables",
+        "testables",
+        "platform-compat-test-rules",
     ],
 
     test_suites: [
diff --git a/tests/AndroidTest.xml b/tests/AndroidTest.xml
index 4188ee2..f616872 100644
--- a/tests/AndroidTest.xml
+++ b/tests/AndroidTest.xml
@@ -14,6 +14,9 @@
      limitations under the License.
 -->
 <configuration description="Run Phone application tests.">
+    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer">
+        <option name="force-root" value="true" />
+    </target_preparer>
     <option name="test-suite-tag" value="apct" />
     <option name="test-suite-tag" value="apct-instrumentation" />
     <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
@@ -26,5 +29,6 @@
         <option name="package" value="com.android.phone.tests" />
         <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
         <option name="hidden-api-checks" value="false"/>
+        <option name="test-filter-dir" value="/data/data/com.android.phone" />
     </test>
 </configuration>
diff --git a/tests/src/com/android/TestContext.java b/tests/src/com/android/TestContext.java
index 5456469..7edbed9 100644
--- a/tests/src/com/android/TestContext.java
+++ b/tests/src/com/android/TestContext.java
@@ -19,6 +19,7 @@
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.doAnswer;
 
+import android.content.AttributionSource;
 import android.content.BroadcastReceiver;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -29,6 +30,7 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.PersistableBundle;
+import android.os.Process;
 import android.telecom.TelecomManager;
 import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
@@ -96,6 +98,11 @@
     }
 
     @Override
+    public AttributionSource getAttributionSource() {
+        return new AttributionSource(Process.myUid(), getPackageName(), "");
+    }
+
+    @Override
     public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
         return null;
     }
diff --git a/tests/src/com/android/phone/CarrierConfigLoaderTest.java b/tests/src/com/android/phone/CarrierConfigLoaderTest.java
index 9c605da..60c3a84 100644
--- a/tests/src/com/android/phone/CarrierConfigLoaderTest.java
+++ b/tests/src/com/android/phone/CarrierConfigLoaderTest.java
@@ -25,7 +25,6 @@
 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.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.verify;
@@ -65,7 +64,6 @@
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
 import java.io.StringWriter;
-import java.util.List;
 
 /**
  * Unit Test for CarrierConfigLoader.
@@ -202,9 +200,8 @@
         mContext.grantPermission(STUB_PERMISSION_ENABLE_ALL);
 
         // Prepare to make sure we can save the config into the XML file which used as cache
-        List<String> carrierPackages = List.of(PLATFORM_CARRIER_CONFIG_PACKAGE);
-        doReturn(carrierPackages).when(mTelephonyManager).getCarrierPackageNamesForIntentAndPhone(
-                nullable(Intent.class), anyInt());
+        doReturn(PLATFORM_CARRIER_CONFIG_PACKAGE).when(mTelephonyManager)
+                .getCarrierServicePackageNameForLogicalSlot(anyInt());
 
         // Save the sample config into the XML file
         PersistableBundle config = getTestConfig();
diff --git a/tests/src/com/android/phone/ImsProvisioningControllerTest.java b/tests/src/com/android/phone/ImsProvisioningControllerTest.java
new file mode 100644
index 0000000..6494df4
--- /dev/null
+++ b/tests/src/com/android/phone/ImsProvisioningControllerTest.java
@@ -0,0 +1,1767 @@
+/*
+ * Copyright 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.telephony.ims.ImsRcsManager.CAPABILITY_TYPE_OPTIONS_UCE;
+import static android.telephony.ims.ImsRcsManager.CAPABILITY_TYPE_PRESENCE_UCE;
+import static android.telephony.ims.ProvisioningManager.KEY_EAB_PROVISIONING_STATUS;
+import static android.telephony.ims.ProvisioningManager.KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE;
+import static android.telephony.ims.ProvisioningManager.KEY_VOLTE_PROVISIONING_STATUS;
+import static android.telephony.ims.ProvisioningManager.KEY_VT_PROVISIONING_STATUS;
+import static android.telephony.ims.ProvisioningManager.PROVISIONING_VALUE_ENABLED;
+import static android.telephony.ims.feature.ImsFeature.FEATURE_MMTEL;
+import static android.telephony.ims.feature.ImsFeature.FEATURE_RCS;
+import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_CALL_COMPOSER;
+import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_SMS;
+import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT;
+import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO;
+import static android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE;
+import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM;
+import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN;
+import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_LTE;
+import static android.telephony.ims.stub.ImsRegistrationImplBase.REGISTRATION_TECH_NR;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.atLeast;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.clearInvocations;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyRegistryManager;
+import android.telephony.ims.ProvisioningManager;
+import android.telephony.ims.aidl.IFeatureProvisioningCallback;
+import android.telephony.ims.aidl.IImsConfig;
+import android.telephony.ims.feature.MmTelFeature.MmTelCapabilities;
+import android.telephony.ims.feature.RcsFeature.RcsImsCapabilities;
+import android.telephony.ims.stub.ImsConfigImplBase;
+import android.telephony.ims.stub.ImsRegistrationImplBase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.testing.TestableLooper;
+import android.util.Log;
+import android.util.SparseArray;
+
+import com.android.ims.FeatureConnector;
+import com.android.ims.ImsConfig;
+import com.android.ims.ImsManager;
+import com.android.ims.RcsFeatureManager;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
+/**
+ * Unit tests for ImsProvisioningContorller
+ */
+public class ImsProvisioningControllerTest {
+    private static final String TAG = "ImsProvisioningControllerTest";
+    private static final int[] MMTEL_CAPAS = new int[]{
+            CAPABILITY_TYPE_VOICE,
+            CAPABILITY_TYPE_VIDEO,
+            CAPABILITY_TYPE_UT,
+            CAPABILITY_TYPE_SMS,
+            CAPABILITY_TYPE_CALL_COMPOSER
+    };
+    private static final int MMTEL_CAPA_INVALID = 0;
+
+    private static final int RCS_CAPA_INVALID = RcsImsCapabilities.CAPABILITY_TYPE_NONE;
+
+    private static final int[] RADIO_TECHS = new int[]{
+            REGISTRATION_TECH_LTE,
+            REGISTRATION_TECH_IWLAN,
+            REGISTRATION_TECH_CROSS_SIM,
+            REGISTRATION_TECH_NR
+    };
+    private static final int RADIO_TECH_INVALID = ImsRegistrationImplBase.REGISTRATION_TECH_NONE;
+
+    @Mock
+    Context mContext;
+
+    @Mock
+    PhoneGlobals mPhone;
+    @Mock
+    CarrierConfigManager mCarrierConfigManager;
+    private PersistableBundle mPersistableBundle0;
+    private PersistableBundle mPersistableBundle1;
+    @Mock
+    SubscriptionManager mSubscriptionManager;
+    @Mock
+    TelephonyRegistryManager mTelephonyRegistryManager;
+    @Mock
+    ImsProvisioningLoader mImsProvisioningLoader;
+
+    @Mock
+    ImsManager mImsManager;
+    @Mock
+    ImsConfig mImsConfig;
+    @Mock
+    ImsProvisioningController.MmTelFeatureConnector mMmTelFeatureConnector;
+    @Mock
+    FeatureConnector<ImsManager> mMmTelFeatureConnector0;
+    @Mock
+    FeatureConnector<ImsManager> mMmTelFeatureConnector1;
+    @Captor
+    ArgumentCaptor<FeatureConnector.Listener<ImsManager>> mMmTelConnectorListener0;
+    @Captor
+    ArgumentCaptor<FeatureConnector.Listener<ImsManager>> mMmTelConnectorListener1;
+
+    @Mock
+    RcsFeatureManager mRcsFeatureManager;
+    @Mock
+    ImsProvisioningController.RcsFeatureConnector mRcsFeatureConnector;
+    @Mock
+    FeatureConnector<RcsFeatureManager> mRcsFeatureConnector0;
+    @Mock
+    FeatureConnector<RcsFeatureManager> mRcsFeatureConnector1;
+    @Captor
+    ArgumentCaptor<FeatureConnector.Listener<RcsFeatureManager>> mRcsConnectorListener0;
+    @Captor
+    ArgumentCaptor<FeatureConnector.Listener<RcsFeatureManager>> mRcsConnectorListener1;
+
+    @Mock
+    IFeatureProvisioningCallback mIFeatureProvisioningCallback0;
+    @Mock
+    IFeatureProvisioningCallback mIFeatureProvisioningCallback1;
+
+    @Mock
+    IBinder mIbinder0;
+    @Mock
+    IBinder mIbinder1;
+
+    private SubscriptionManager.OnSubscriptionsChangedListener mSubChangedListener;
+
+    private Handler mHandler;
+    private HandlerThread mHandlerThread;
+    private TestableLooper mLooper;
+
+    TestImsProvisioningController mTestImsProvisioningController;
+
+    int mPhoneId0 = 0;
+    int mPhoneId1 = 1;
+    int mSubId0 = 1234;
+    int mSubId1 = 5678;
+
+    SparseArray<int[]> mMmTelTechMap = new SparseArray<>();
+    SparseArray<int[]> mRcsTechMap = new SparseArray<>();
+
+    int[][] mMmTelProvisioningStorage;
+    int[][] mRcsProvisioningStorage;
+    int[][] mImsConfigStorage;
+
+    private class TestImsProvisioningController extends ImsProvisioningController {
+        boolean mIsValidSubId = true;
+
+        TestImsProvisioningController() {
+            super(mPhone, 2, mHandlerThread.getLooper(),
+                    mMmTelFeatureConnector, mRcsFeatureConnector,
+                    mImsProvisioningLoader);
+        }
+
+        protected int getSubId(int slotId) {
+            return (slotId == mPhoneId0) ? mSubId0 : mSubId1;
+        }
+
+        protected int getSlotId(int subId) {
+            return (subId == mSubId0) ? mPhoneId0 : mPhoneId1;
+        }
+
+        protected ImsConfig getImsConfig(ImsManager imsManager) {
+            return mImsConfig;
+        }
+
+        protected ImsConfig getImsConfig(IImsConfig iImsConfig) {
+            return mImsConfig;
+        }
+
+        protected int[] getTechsFromCarrierConfig(int subId, int capability, boolean isMmtel) {
+            if (isMmtel) {
+                return mMmTelTechMap.get(capability);
+            } else {
+                return mRcsTechMap.get(capability);
+            }
+        }
+
+        protected boolean isValidSubId(int subId) {
+            return mIsValidSubId;
+        }
+
+        public void setValidSubId(boolean valid) {
+            mIsValidSubId = valid;
+        }
+    }
+
+    @Before
+    public void setUp() throws Exception {
+        logd("setUp");
+        MockitoAnnotations.initMocks(this);
+
+        when(mPhone.getSystemServiceName(eq(CarrierConfigManager.class)))
+                .thenReturn(Context.CARRIER_CONFIG_SERVICE);
+        when(mPhone.getSystemService(eq(Context.CARRIER_CONFIG_SERVICE)))
+                .thenReturn(mCarrierConfigManager);
+
+        mPersistableBundle0 = new PersistableBundle();
+        mPersistableBundle1 = new PersistableBundle();
+
+        when(mCarrierConfigManager.getConfigForSubId(eq(mSubId0)))
+                .thenReturn(mPersistableBundle0);
+        when(mCarrierConfigManager.getConfigForSubId(eq(mSubId1)))
+                .thenReturn(mPersistableBundle1);
+
+        when(mPhone.getSystemServiceName(eq(SubscriptionManager.class)))
+                .thenReturn(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
+        when(mPhone.getSystemService(eq(Context.TELEPHONY_SUBSCRIPTION_SERVICE)))
+                .thenReturn(mSubscriptionManager);
+
+
+        when(mPhone.getSystemServiceName(eq(TelephonyRegistryManager.class)))
+                .thenReturn(Context.TELEPHONY_REGISTRY_SERVICE);
+        when(mPhone.getSystemService(eq(Context.TELEPHONY_REGISTRY_SERVICE)))
+                .thenReturn(mTelephonyRegistryManager);
+        doAnswer(new Answer<Void>() {
+            @Override
+            public Void answer(InvocationOnMock invocation) throws Throwable {
+                mSubChangedListener = (SubscriptionManager.OnSubscriptionsChangedListener)
+                        invocation.getArguments()[0];
+                return null;
+            }
+        }).when(mTelephonyRegistryManager).addOnSubscriptionsChangedListener(
+                any(SubscriptionManager.OnSubscriptionsChangedListener.class),
+                any());
+
+        mHandlerThread = new HandlerThread("ImsStateCallbackControllerTest");
+        mHandlerThread.start();
+
+        initializeDefaultData();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        logd("tearDown");
+        if (mTestImsProvisioningController != null) {
+            mTestImsProvisioningController.destroy();
+            mTestImsProvisioningController = null;
+        }
+
+        if (mLooper != null) {
+            mLooper.destroy();
+            mLooper = null;
+        }
+    }
+
+    @Test
+    @SmallTest
+    public void addFeatureProvisioningChangedCallback_withCallback() throws Exception {
+        createImsProvisioningController();
+
+        // add callback with valid obj
+        try {
+            mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                    mSubId0, mIFeatureProvisioningCallback0);
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+        // add callback with invalid obj
+        try {
+            mTestImsProvisioningController.addFeatureProvisioningChangedCallback(mSubId0, null);
+        } catch (IllegalArgumentException e) {
+            // expected result
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+        // remove callback with valid obj
+        try {
+            mTestImsProvisioningController.removeFeatureProvisioningChangedCallback(
+                    mSubId0, mIFeatureProvisioningCallback0);
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+        // remove callback with invalid obj
+        try {
+            mTestImsProvisioningController.removeFeatureProvisioningChangedCallback(mSubId0, null);
+        } catch (IllegalArgumentException e) {
+            // expected result
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+    }
+
+    @Test
+    @SmallTest
+    public void connectionReady_MmTelFeatureListener() throws Exception {
+        createImsProvisioningController();
+
+        try {
+            mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                    mSubId0, mIFeatureProvisioningCallback0);
+            mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                    mSubId1, mIFeatureProvisioningCallback1);
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+        clearInvocations(mIFeatureProvisioningCallback0);
+        clearInvocations(mIFeatureProvisioningCallback1);
+
+        // change subId to be invalid
+        mTestImsProvisioningController.setValidSubId(false);
+
+        mMmTelConnectorListener0.getValue().connectionReady(mImsManager, mSubId0);
+
+        // setConfig not called, wait until subId is valid
+        verify(mImsConfig, times(0)).setConfig(anyInt(), anyInt());
+
+        // change subId
+        mSubChangedListener.onSubscriptionsChanged();
+        processAllMessages();
+
+        int[] keys = {
+                ProvisioningManager.KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE,
+                ProvisioningManager.KEY_VOLTE_PROVISIONING_STATUS,
+                ProvisioningManager.KEY_VT_PROVISIONING_STATUS};
+
+        // verify # of read data times from storage : # of MmTel storage length
+        verify(mImsProvisioningLoader, atLeast(keys.length))
+                .getProvisioningStatus(eq(mSubId0), eq(FEATURE_MMTEL), anyInt(), anyInt());
+
+        for (int index = 0; index < keys.length; index++) {
+            // verify function call vendor interface
+            verify(mImsConfig, times(1)).setConfig(eq(keys[index]), anyInt());
+        }
+
+        // verify other interactions
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback1);
+        verifyNoMoreInteractions(mImsConfig);
+    }
+
+    @Test
+    @SmallTest
+    public void connectionReady_RcsFeatureListener() throws Exception {
+        createImsProvisioningController();
+
+        try {
+            mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                    mSubId0, mIFeatureProvisioningCallback0);
+            mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                    mSubId1, mIFeatureProvisioningCallback1);
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+        clearInvocations(mIFeatureProvisioningCallback0);
+        clearInvocations(mIFeatureProvisioningCallback1);
+
+        mRcsConnectorListener0.getValue().connectionReady(mRcsFeatureManager, mSubId0);
+        processAllMessages();
+
+        // verify # of read data times from storage : # of Rcs storage length
+        verify(mImsProvisioningLoader, times(1))
+                .getProvisioningStatus(eq(mSubId0), eq(FEATURE_RCS), anyInt(), anyInt());
+
+        int key = ProvisioningManager.KEY_EAB_PROVISIONING_STATUS;
+        // verify function call vendor interface
+        verify(mImsConfig, times(1)).setConfig(eq(key), anyInt());
+
+        // verify other interactions
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback1);
+        verifyNoMoreInteractions(mImsConfig);
+    }
+
+    @Test
+    @SmallTest
+    public void isImsProvisioningRequiredForCapability_withInvalidCapabilityTech()
+            throws Exception {
+        createImsProvisioningController();
+
+        // invalid Capa. and valid Radio tech - IllegalArgumentException OK
+        try {
+            mTestImsProvisioningController.isImsProvisioningRequiredForCapability(
+                    mSubId0, MMTEL_CAPA_INVALID, RADIO_TECHS[0]);
+        } catch (IllegalArgumentException e) {
+            // expected result
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+
+        // valid Capa. and invalid Radio tech - IllegalArumentException OK
+        try {
+            mTestImsProvisioningController.isImsProvisioningRequiredForCapability(
+                    mSubId0, MMTEL_CAPAS[0], RADIO_TECH_INVALID);
+        } catch (IllegalArgumentException e) {
+            // expected result
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+    }
+
+    @Test
+    @SmallTest
+    public void isImsProvisioningRequiredForCapability_withValidCapabilityTech() throws Exception {
+        createImsProvisioningController();
+
+        // provisioning required capability
+        // voice, all tech
+        // video, all tech
+        // UT, all tech
+        mMmTelTechMap.clear();
+        mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+        mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+        mMmTelTechMap.put(CAPABILITY_TYPE_UT,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+
+        boolean[][] expectedRequired = new boolean[][] {
+                {true, true, true, true},
+                {true, true, true, true},
+                {true, true, true, true},
+                {false, false, false, false},
+                {false, false, false, false}
+        };
+
+        boolean isRequired;
+        for (int i = 0; i < MMTEL_CAPAS.length; i++) {
+            for (int j = 0; j < RADIO_TECHS.length; j++) {
+                isRequired = mTestImsProvisioningController
+                .isImsProvisioningRequiredForCapability(
+                        mSubId0, MMTEL_CAPAS[i], RADIO_TECHS[j]);
+                assertEquals(expectedRequired[i][j], isRequired);
+            }
+        }
+    }
+
+    @Test
+    @SmallTest
+    public void isRcsProvisioningRequiredForCapability_withInvalidCapabilityTech()
+            throws Exception {
+        createImsProvisioningController();
+
+        // invalid Capa. and valid Radio tech - IllegalArgumentException OK
+        try {
+            mTestImsProvisioningController.isRcsProvisioningRequiredForCapability(
+                    mSubId0, RCS_CAPA_INVALID, RADIO_TECHS[0]);
+        } catch (IllegalArgumentException e) {
+            // expected result
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+
+        // valid Capa. and invalid Radio tech - IllegalArumentException OK
+        try {
+            mTestImsProvisioningController.isRcsProvisioningRequiredForCapability(
+                    mSubId0, CAPABILITY_TYPE_PRESENCE_UCE, RADIO_TECH_INVALID);
+        } catch (IllegalArgumentException e) {
+            // expected result
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+    }
+
+    @Test
+    @SmallTest
+    public void isRcsProvisioningRequiredForCapability_withValidCapabilityTech() throws Exception {
+        createImsProvisioningController();
+
+        // provisioning required capability : PRESENCE, tech : all
+        mRcsTechMap.clear();
+        mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+
+        boolean[] expectedRequired = new boolean[] {true, true, true, true};
+
+        boolean isRequired;
+        for (int i = 0; i < RADIO_TECHS.length; i++) {
+            isRequired = mTestImsProvisioningController
+            .isRcsProvisioningRequiredForCapability(
+                    mSubId0, CAPABILITY_TYPE_PRESENCE_UCE, RADIO_TECHS[i]);
+            assertEquals(expectedRequired[i], isRequired);
+        }
+    }
+
+    @Test
+    @SmallTest
+    public void getImsProvisioningRequiredForCapability_withVoiceVideoUt() throws Exception {
+        createImsProvisioningController();
+
+        // provisioning required capability
+        // voice, all tech
+        // video, all tech
+        // UT, all tech
+        mMmTelTechMap.clear();
+        mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+        mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+        mMmTelTechMap.put(CAPABILITY_TYPE_UT,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+
+        // provisioning Status
+        mMmTelProvisioningStorage = new int[][] {
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE, 0},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_CROSS_SIM, 1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_NR, 1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE, 0},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_IWLAN, 0},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_CROSS_SIM, 1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_NR, 1},
+                {CAPABILITY_TYPE_UT, REGISTRATION_TECH_LTE, 0},
+                {CAPABILITY_TYPE_UT, REGISTRATION_TECH_IWLAN, 0},
+                {CAPABILITY_TYPE_UT, REGISTRATION_TECH_CROSS_SIM, 0},
+                {CAPABILITY_TYPE_UT, REGISTRATION_TECH_NR, 0},
+        };
+
+        boolean[] expectedVoiceProvisioningStatus = new boolean[] {false, true, true, true};
+        boolean[] expectedVideoProvisioningStatus = new boolean[] {false, false, true, true};
+        boolean[] expectedUtProvisioningStatus = new boolean[] {false, false, false, false};
+
+        boolean provisioned = false;
+        int capability = CAPABILITY_TYPE_VOICE;
+        for (int i = 0; i < RADIO_TECHS.length; i++) {
+            // get provisioning status
+            provisioned = mTestImsProvisioningController
+                    .getImsProvisioningStatusForCapability(mSubId0, capability, RADIO_TECHS[i]);
+
+            // verify return value
+            assertEquals(expectedVoiceProvisioningStatus[i], provisioned);
+
+            // verify weather ImsProvisioningLoader is called or not
+            verify(mImsProvisioningLoader, times(1))
+                    .getProvisioningStatus(eq(mSubId0), eq(FEATURE_MMTEL), eq(capability),
+                            eq(RADIO_TECHS[i]));
+        }
+
+        capability = CAPABILITY_TYPE_VIDEO;
+        for (int i = 0; i < RADIO_TECHS.length; i++) {
+            // get provisioning status
+            provisioned = mTestImsProvisioningController
+                    .getImsProvisioningStatusForCapability(mSubId0, capability, RADIO_TECHS[i]);
+
+            // verify return value
+            assertEquals(expectedVideoProvisioningStatus[i], provisioned);
+
+            // verify weather ImsProvisioningLoader is called or not
+            verify(mImsProvisioningLoader, times(1))
+                    .getProvisioningStatus(eq(mSubId0), eq(FEATURE_MMTEL), eq(capability),
+                            eq(RADIO_TECHS[i]));
+        }
+
+        capability = CAPABILITY_TYPE_UT;
+        for (int i = 0; i < RADIO_TECHS.length; i++) {
+            // get provisioning status
+            provisioned = mTestImsProvisioningController
+                    .getImsProvisioningStatusForCapability(mSubId0, capability, RADIO_TECHS[i]);
+
+            // verify return value
+            assertEquals(expectedUtProvisioningStatus[i], provisioned);
+
+            // verify weather ImsProvisioningLoader is called or not
+            verify(mImsProvisioningLoader, times(1))
+                    .getProvisioningStatus(eq(mSubId0), eq(FEATURE_MMTEL), eq(capability),
+                            eq(RADIO_TECHS[i]));
+        }
+
+        verifyNoMoreInteractions(mImsProvisioningLoader);
+    }
+
+    @Test
+    @SmallTest
+    public void getImsProvisioningRequiredForCapability_withNotSet() throws Exception {
+        createImsProvisioningController();
+
+        mMmTelConnectorListener0.getValue().connectionReady(mImsManager, mSubId0);
+        processAllMessages();
+
+        clearInvocations(mImsConfig);
+        clearInvocations(mImsProvisioningLoader);
+
+        // provisioning required capability
+        // voice, LTE, IWLAN
+        // video, LTE
+        mMmTelTechMap.clear();
+        mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN});
+        mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
+                new int[] {REGISTRATION_TECH_LTE});
+
+        // provisioning StatusP, all of provisioning status is not provisioned
+        mMmTelProvisioningStorage = new int[][]{
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE, -1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN, -1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE, -1}
+        };
+        // provisioning status in vendor ImsService
+        mImsConfigStorage = new int[][] {
+                {KEY_VOLTE_PROVISIONING_STATUS, 1},
+                {KEY_VT_PROVISIONING_STATUS, 0},
+                {KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, 1},
+        };
+
+        boolean provisioned;
+
+        // for KEY_VOLTE_PROVISIONING_STATUS
+        int capability = CAPABILITY_TYPE_VOICE;
+        int tech = REGISTRATION_TECH_LTE;
+        provisioned = mTestImsProvisioningController
+                .getImsProvisioningStatusForCapability(mSubId0, capability, tech);
+
+        // verify return value default false - not provisioned
+        assertEquals(true, provisioned);
+
+        verify(mImsProvisioningLoader, times(1))
+                .getProvisioningStatus(eq(mSubId0), eq(FEATURE_MMTEL), eq(capability), eq(tech));
+
+        // verify weather ImsProvisioningLoader is called or not
+        verify(mImsConfig, times(1)).getConfigInt(eq(KEY_VOLTE_PROVISIONING_STATUS));
+
+        // verify weather ImsProvisioningLoader is called or not
+        verify(mImsProvisioningLoader, times(1))
+                .setProvisioningStatus(eq(mSubId0), eq(FEATURE_MMTEL), eq(capability), eq(tech),
+                        eq(provisioned));
+
+        clearInvocations(mImsConfig);
+        clearInvocations(mImsProvisioningLoader);
+
+        // for KEY_VT_PROVISIONING_STATUS
+        capability = CAPABILITY_TYPE_VIDEO;
+        tech = REGISTRATION_TECH_LTE;
+        provisioned = mTestImsProvisioningController
+                .getImsProvisioningStatusForCapability(mSubId0, capability, tech);
+
+        // verify return value default false - not provisioned
+        assertEquals(false, provisioned);
+
+        verify(mImsProvisioningLoader, times(1))
+                .getProvisioningStatus(eq(mSubId0), eq(FEATURE_MMTEL), eq(capability), eq(tech));
+
+        // verify weather ImsProvisioningLoader is called or not
+        verify(mImsConfig, times(1)).getConfigInt(eq(KEY_VT_PROVISIONING_STATUS));
+
+        // verify weather ImsProvisioningLoader is called or not
+        verify(mImsProvisioningLoader, times(1))
+                .setProvisioningStatus(eq(mSubId0), eq(FEATURE_MMTEL), eq(capability), eq(tech),
+                        eq(provisioned));
+
+        verifyNoMoreInteractions(mImsConfig);
+        verifyNoMoreInteractions(mImsProvisioningLoader);
+    }
+
+    @Test
+    @SmallTest
+    public void getRcsProvisioningRequiredForCapability_withPresence() throws Exception {
+        createImsProvisioningController();
+
+        // provisioning required capability
+        // PRESENCE, all tech
+        mRcsTechMap.clear();
+        mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+
+        // provisioning Status
+        mRcsProvisioningStorage = new int[][] {
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_CROSS_SIM, 1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_NR, 1}
+        };
+
+        boolean[] expectedPresenceProvisioningStatus = new boolean[] {true, true, true, true};
+
+        boolean provisioned = false;
+        int capability = CAPABILITY_TYPE_PRESENCE_UCE;
+        for (int i = 0; i < RADIO_TECHS.length; i++) {
+            // get provisioning status
+            provisioned = mTestImsProvisioningController
+                    .getRcsProvisioningStatusForCapability(mSubId0, capability, RADIO_TECHS[i]);
+
+            // verify return value
+            assertEquals(expectedPresenceProvisioningStatus[i], provisioned);
+
+            // verify weather ImsProvisioningLoader is called or not
+            verify(mImsProvisioningLoader, times(1)).getProvisioningStatus(
+                    eq(mSubId0), eq(FEATURE_RCS), eq(capability), eq(RADIO_TECHS[i]));
+        }
+
+        verifyNoMoreInteractions(mImsProvisioningLoader);
+    }
+
+    @Test
+    @SmallTest
+    public void getRcsProvisioningRequiredForCapability_withNotSet() throws Exception {
+        createImsProvisioningController();
+
+        mRcsConnectorListener0.getValue().connectionReady(mRcsFeatureManager, mSubId0);
+        processAllMessages();
+
+        clearInvocations(mImsConfig);
+        clearInvocations(mImsProvisioningLoader);
+
+        // provisioning required capability
+        // PRESENCE, LTE, IWLAN
+        mRcsTechMap.clear();
+        mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN});
+
+        // provisioning Status, all of provisioning status is not provisioned
+        mRcsProvisioningStorage = new int[][]{
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE, -1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_IWLAN, -1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_CROSS_SIM, -1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_NR, -1}
+        };
+        // provisioning status in vendor ImsService
+        mImsConfigStorage = new int[][] {
+                {KEY_EAB_PROVISIONING_STATUS, 1}
+        };
+
+        boolean provisioned;
+
+        // for KEY_EAB_PROVISIONING_STATUS
+        int capability = CAPABILITY_TYPE_PRESENCE_UCE;
+        int tech = REGISTRATION_TECH_LTE;
+        provisioned = mTestImsProvisioningController
+                .getRcsProvisioningStatusForCapability(mSubId0, capability, tech);
+
+        // verify return value default false - not provisioned
+        assertEquals(true, provisioned);
+
+        verify(mImsProvisioningLoader, times(1)).getProvisioningStatus(
+                eq(mSubId0), eq(FEATURE_RCS), eq(capability), eq(tech));
+
+        // verify weather ImsProvisioningLoader is called or not
+        verify(mImsConfig, times(1)).getConfigInt(eq(KEY_EAB_PROVISIONING_STATUS));
+
+        // verify weather ImsProvisioningLoader is called or not
+        verify(mImsProvisioningLoader, times(RADIO_TECHS.length)).setProvisioningStatus(
+                eq(mSubId0), eq(FEATURE_RCS), eq(capability), anyInt(), eq(provisioned));
+
+        verifyNoMoreInteractions(mImsConfig);
+        verifyNoMoreInteractions(mImsProvisioningLoader);
+    }
+
+    @Test
+    @SmallTest
+    public void setImsProvisioningRequiredForCapability_withVoice() throws Exception {
+        createImsProvisioningController();
+
+        mMmTelConnectorListener0.getValue().connectionReady(mImsManager, mSubId0);
+        processAllMessages();
+
+        // register callbacks
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId0, mIFeatureProvisioningCallback0);
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId1, mIFeatureProvisioningCallback1);
+
+        clearInvocations(mIFeatureProvisioningCallback0);
+        clearInvocations(mIFeatureProvisioningCallback1);
+        clearInvocations(mImsConfig);
+        clearInvocations(mImsProvisioningLoader);
+
+        // provisioning required capability
+        // voice, all tech
+        mMmTelTechMap.clear();
+        mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+
+        // provisioning Status, all of provisioning status is not provisioned
+        mMmTelProvisioningStorage = new int[][] {
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE, 0},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN, 0},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_CROSS_SIM, 0},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_NR, 0}
+        };
+
+        boolean provisionedFirst = false;
+        boolean provisionedSecond = false;
+        int capability = CAPABILITY_TYPE_VOICE;
+        for (int i = 0; i < RADIO_TECHS.length; i++) {
+            // get provisioning status
+            provisionedFirst = mTestImsProvisioningController
+                    .getImsProvisioningStatusForCapability(mSubId0, capability, RADIO_TECHS[i]);
+
+            // verify return value default false - not provisioned
+            assertEquals(false, provisionedFirst);
+
+            mTestImsProvisioningController.setImsProvisioningStatusForCapability(
+                    mSubId0, capability, RADIO_TECHS[i], !provisionedFirst);
+            processAllMessages();
+
+            provisionedSecond = mTestImsProvisioningController
+                    .getImsProvisioningStatusForCapability(mSubId0, capability, RADIO_TECHS[i]);
+
+            // verify return value default false - provisioned
+            assertEquals(!provisionedFirst, provisionedSecond);
+
+            // verify weather ImsProvisioningLoader is called or not
+            verify(mImsProvisioningLoader, times(2))
+                    .getProvisioningStatus(eq(mSubId0), eq(FEATURE_MMTEL), eq(capability),
+                            eq(RADIO_TECHS[i]));
+            verify(mImsProvisioningLoader, times(1))
+                    .setProvisioningStatus(eq(mSubId0), eq(FEATURE_MMTEL), eq(capability),
+                            eq(RADIO_TECHS[i]), eq(provisionedSecond));
+
+            // verify weather Callback is called or not
+            verify(mIFeatureProvisioningCallback0, times(1))
+                    .onFeatureProvisioningChanged(eq(capability), eq(RADIO_TECHS[i]),
+                            eq(provisionedSecond));
+        }
+
+        // verify weather ImsConfig is called or not
+        verify(mImsConfig, times(1)).setConfig(
+                eq(KEY_VOLTE_PROVISIONING_STATUS), eq(PROVISIONING_VALUE_ENABLED));
+        verify(mImsConfig, times(1)).setConfig(
+                eq(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE), eq(PROVISIONING_VALUE_ENABLED));
+
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback1);
+        verifyNoMoreInteractions(mImsConfig);
+        verifyNoMoreInteractions(mImsProvisioningLoader);
+    }
+
+    @Test
+    @SmallTest
+    public void setImsProvisioningRequiredForCapability_withVideo() throws Exception {
+        createImsProvisioningController();
+
+        mMmTelConnectorListener0.getValue().connectionReady(mImsManager, mSubId0);
+        processAllMessages();
+
+        // register callbacks
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId0, mIFeatureProvisioningCallback0);
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId1, mIFeatureProvisioningCallback1);
+
+        clearInvocations(mIFeatureProvisioningCallback0);
+        clearInvocations(mIFeatureProvisioningCallback1);
+        clearInvocations(mImsConfig);
+        clearInvocations(mImsProvisioningLoader);
+
+        // provisioning required capability
+        // video, all tech
+        mMmTelTechMap.clear();
+        mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+
+        // provisioning Status, all of provisioning status is not provisioned
+        mMmTelProvisioningStorage = new int[][] {
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE, 0},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_IWLAN, 0},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_CROSS_SIM, 0},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_NR, 0}
+        };
+
+        boolean provisionedFirst = false;
+        boolean provisionedSecond = false;
+        int capability = CAPABILITY_TYPE_VIDEO;
+        for (int i = 0; i < RADIO_TECHS.length; i++) {
+            // get provisioning status
+            provisionedFirst = mTestImsProvisioningController
+                    .getImsProvisioningStatusForCapability(mSubId0, capability, RADIO_TECHS[i]);
+
+            // verify return value default false - not provisioned
+            assertEquals(false, provisionedFirst);
+
+            mTestImsProvisioningController.setImsProvisioningStatusForCapability(
+                    mSubId0, capability, RADIO_TECHS[i], !provisionedFirst);
+            processAllMessages();
+
+            provisionedSecond = mTestImsProvisioningController
+                    .getImsProvisioningStatusForCapability(mSubId0, capability, RADIO_TECHS[i]);
+
+            // verify return value default false - provisioned
+            assertEquals(!provisionedFirst, provisionedSecond);
+
+            // verify weather ImsProvisioningLoader is called or not
+            verify(mImsProvisioningLoader, times(2))
+                    .getProvisioningStatus(eq(mSubId0), eq(FEATURE_MMTEL), eq(capability),
+                            eq(RADIO_TECHS[i]));
+            verify(mImsProvisioningLoader, times(1))
+                    .setProvisioningStatus(eq(mSubId0), eq(FEATURE_MMTEL), eq(capability),
+                            eq(RADIO_TECHS[i]), eq(provisionedSecond));
+
+            // verify weather Callback is called or not
+            verify(mIFeatureProvisioningCallback0, times(1))
+                    .onFeatureProvisioningChanged(eq(capability), eq(RADIO_TECHS[i]),
+                            eq(provisionedSecond));
+        }
+
+        // verify weather ImsConfig is called or not
+        verify(mImsConfig, times(1)).setConfig(
+                eq(KEY_VT_PROVISIONING_STATUS), eq(PROVISIONING_VALUE_ENABLED));
+
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback1);
+        verifyNoMoreInteractions(mImsConfig);
+        verifyNoMoreInteractions(mImsProvisioningLoader);
+    }
+
+    @Test
+    @SmallTest
+    public void setRcsProvisioningRequiredForCapability_withPresence() throws Exception {
+        createImsProvisioningController();
+
+        mRcsConnectorListener0.getValue().connectionReady(mRcsFeatureManager, mSubId0);
+        processAllMessages();
+
+        // register callbacks
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId0, mIFeatureProvisioningCallback0);
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId1, mIFeatureProvisioningCallback1);
+
+        clearInvocations(mIFeatureProvisioningCallback0);
+        clearInvocations(mIFeatureProvisioningCallback1);
+        clearInvocations(mImsConfig);
+        clearInvocations(mImsProvisioningLoader);
+
+        // provisioning required capability
+        // PRESENCE, all tech
+        mRcsTechMap.clear();
+        mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+
+        // provisioning Status, all of provisioning status is not provisioned
+        mRcsProvisioningStorage = new int[][] {
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE, 0},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_IWLAN, 0},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_CROSS_SIM, 0},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_NR, 0}
+        };
+
+        boolean provisionedFirst;
+        boolean provisionedSecond;
+        int capability = CAPABILITY_TYPE_PRESENCE_UCE;
+
+        // get provisioning status
+        provisionedFirst = mTestImsProvisioningController
+                .getRcsProvisioningStatusForCapability(mSubId0, capability, REGISTRATION_TECH_LTE);
+
+        // verify return value default false - not provisioned
+        assertEquals(false, provisionedFirst);
+
+        mTestImsProvisioningController.setRcsProvisioningStatusForCapability(
+                mSubId0, capability, REGISTRATION_TECH_LTE, !provisionedFirst);
+        processAllMessages();
+
+        provisionedSecond = mTestImsProvisioningController
+                .getRcsProvisioningStatusForCapability(mSubId0, capability, REGISTRATION_TECH_LTE);
+
+        // verify return value default false - provisioned
+        assertEquals(!provisionedFirst, provisionedSecond);
+
+        // verify weather ImsProvisioningLoader is called or not
+        verify(mImsProvisioningLoader, times(2)).getProvisioningStatus(
+                eq(mSubId0), eq(FEATURE_RCS), eq(capability), eq(REGISTRATION_TECH_LTE));
+        // verify setProvisioningStatus is called RADIO_TECHS.length times for all tech or not
+        verify(mImsProvisioningLoader, times(1)).setProvisioningStatus(
+                eq(mSubId0), eq(FEATURE_RCS), eq(capability), anyInt(), eq(provisionedSecond));
+
+        // verify weather Callback is called RADIO_TECHS.length times for all tech or not
+        verify(mIFeatureProvisioningCallback0, times(1))
+                .onRcsFeatureProvisioningChanged(eq(capability), eq(REGISTRATION_TECH_LTE),
+                        eq(provisionedSecond));
+
+        // verify weather ImsConfig is called or not
+        verify(mImsConfig, times(1)).setConfig(
+                eq(KEY_EAB_PROVISIONING_STATUS), eq(PROVISIONING_VALUE_ENABLED));
+
+        // verify reset
+        clearInvocations(mImsProvisioningLoader);
+
+        // only CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE - provisioned
+        boolean[] expected = {true, false, false, false};
+        for (int i = 0; i < RADIO_TECHS.length; i++) {
+            provisionedSecond = mTestImsProvisioningController
+                    .getRcsProvisioningStatusForCapability(mSubId0, capability, RADIO_TECHS[i]);
+
+            // verify return value
+            assertEquals(expected[i], provisionedSecond);
+
+            // verify weather ImsProvisioningLoader is called or not
+            verify(mImsProvisioningLoader, times(1)).getProvisioningStatus(
+                    eq(mSubId0), eq(FEATURE_RCS), eq(capability), eq(RADIO_TECHS[i]));
+        }
+
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback1);
+        verifyNoMoreInteractions(mImsConfig);
+        verifyNoMoreInteractions(mImsProvisioningLoader);
+    }
+
+    @Test
+    @SmallTest
+    public void setProvisioningValue_withMmTelKey() throws Exception {
+        createImsProvisioningController();
+
+        mMmTelConnectorListener0.getValue().connectionReady(mImsManager, mSubId0);
+        processAllMessages();
+
+        // add callback with valid obj
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId0, mIFeatureProvisioningCallback0);
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId1, mIFeatureProvisioningCallback1);
+
+        clearInvocations(mIFeatureProvisioningCallback0);
+        clearInvocations(mIFeatureProvisioningCallback1);
+        clearInvocations(mImsConfig);
+        clearInvocations(mImsProvisioningLoader);
+
+        // provisioning required capability
+        // voice, all tech
+        // video, all tech
+        mMmTelTechMap.clear();
+        mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+        mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+
+        // provisioning Status, all of provisioning status is not set
+        mMmTelProvisioningStorage = new int[][] {
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE, -1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN, -1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_CROSS_SIM, -1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_NR, -1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE, -1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_IWLAN, -1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_CROSS_SIM, -1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_NR, -1}
+        };
+
+        // MmTel valid
+        int[] keys = {
+                ProvisioningManager.KEY_VOLTE_PROVISIONING_STATUS,
+                ProvisioningManager.KEY_VT_PROVISIONING_STATUS,
+                ProvisioningManager.KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE
+        };
+        int[] capas = {
+                MmTelCapabilities.CAPABILITY_TYPE_VOICE,
+                MmTelCapabilities.CAPABILITY_TYPE_VIDEO,
+                MmTelCapabilities.CAPABILITY_TYPE_VOICE
+        };
+        int[] techs = {
+                ImsRegistrationImplBase.REGISTRATION_TECH_LTE,
+                ImsRegistrationImplBase.REGISTRATION_TECH_LTE,
+                ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN
+        };
+
+        int result;
+        for (int i = 0; i < keys.length; i++) {
+            clearInvocations(mIFeatureProvisioningCallback0);
+            result = mTestImsProvisioningController.setProvisioningValue(
+                    mSubId0, keys[i], PROVISIONING_VALUE_ENABLED);
+            processAllMessages();
+
+            // check return value
+            assertEquals(ImsConfig.OperationStatusConstants.SUCCESS, result);
+
+            // check weather to save
+            verify(mImsProvisioningLoader, times(1)).setProvisioningStatus(
+                    eq(mSubId0), eq(FEATURE_MMTEL), eq(capas[i]), eq(techs[i]), eq(true));
+
+            verify(mIFeatureProvisioningCallback0, times(1))
+                    .onFeatureProvisioningChanged(eq(capas[i]), eq(techs[i]), eq(true));
+
+            verify(mImsConfig, times(1)).setConfig(eq(keys[i]), eq(PROVISIONING_VALUE_ENABLED));
+        }
+
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback1);
+        verifyNoMoreInteractions(mImsConfig);
+        verifyNoMoreInteractions(mImsProvisioningLoader);
+    }
+
+    @Test
+    @SmallTest
+    public void setProvisioningValue_withRcsKey() throws Exception {
+        createImsProvisioningController();
+
+        mRcsConnectorListener0.getValue().connectionReady(mRcsFeatureManager, mSubId0);
+        processAllMessages();
+
+        // add callback with valid obj
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId0, mIFeatureProvisioningCallback0);
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId1, mIFeatureProvisioningCallback1);
+
+        clearInvocations(mIFeatureProvisioningCallback0);
+        clearInvocations(mIFeatureProvisioningCallback1);
+        clearInvocations(mImsConfig);
+        clearInvocations(mImsProvisioningLoader);
+
+        // provisioning required capability
+        // presence, all tech
+        mRcsTechMap.clear();
+        mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+
+        // provisioning Status, all of provisioning status is not set
+        mRcsProvisioningStorage = new int[][]{
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE, -1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_IWLAN, -1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_CROSS_SIM, -1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_NR, -1}
+        };
+
+        int key = KEY_EAB_PROVISIONING_STATUS;
+        int capa = CAPABILITY_TYPE_PRESENCE_UCE;
+
+        int result = mTestImsProvisioningController.setProvisioningValue(
+                    mSubId0, key, PROVISIONING_VALUE_ENABLED);
+        processAllMessages();
+
+        // check return value
+        assertEquals(ImsConfig.OperationStatusConstants.SUCCESS, result);
+
+        // check weather to save, for all techs 4 times
+        verify(mImsProvisioningLoader, times(RADIO_TECHS.length)).setProvisioningStatus(
+                eq(mSubId0), eq(FEATURE_RCS), eq(capa), anyInt(), eq(true));
+
+        verify(mIFeatureProvisioningCallback0, times(RADIO_TECHS.length))
+                .onRcsFeatureProvisioningChanged(eq(capa), anyInt(), eq(true));
+
+        verify(mImsConfig, times(1)).setConfig(eq(key), eq(PROVISIONING_VALUE_ENABLED));
+
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback1);
+        verifyNoMoreInteractions(mImsConfig);
+        verifyNoMoreInteractions(mImsProvisioningLoader);
+    }
+
+    @Test
+    @SmallTest
+    public void setProvisioningValue_withInvalidKey() throws Exception {
+        createImsProvisioningController();
+
+        mMmTelConnectorListener0.getValue().connectionReady(mImsManager, mSubId0);
+        mRcsConnectorListener0.getValue().connectionReady(mRcsFeatureManager, mSubId0);
+        processAllMessages();
+
+        // add callback with valid obj
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId0, mIFeatureProvisioningCallback0);
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId1, mIFeatureProvisioningCallback1);
+
+        clearInvocations(mIFeatureProvisioningCallback0);
+        clearInvocations(mIFeatureProvisioningCallback1);
+        clearInvocations(mImsConfig);
+        clearInvocations(mImsProvisioningLoader);
+
+        // invalid key
+        int[] keys = {
+                ProvisioningManager.KEY_SIP_SESSION_TIMER_SEC,
+                ProvisioningManager.KEY_MINIMUM_SIP_SESSION_EXPIRATION_TIMER_SEC,
+                ProvisioningManager.KEY_TF_TIMER_VALUE_MS
+        };
+        for (int key : keys) {
+            int result = mTestImsProvisioningController.setProvisioningValue(
+                    mSubId0, key, PROVISIONING_VALUE_ENABLED);
+            processAllMessages();
+
+            // check return value
+            assertEquals(ImsConfigImplBase.CONFIG_RESULT_UNKNOWN, result);
+        }
+
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback1);
+        verifyNoMoreInteractions(mImsConfig);
+        verifyNoMoreInteractions(mImsProvisioningLoader);
+    }
+
+    @Test
+    @SmallTest
+    public void getProvisioningValue_withValidKey() throws Exception {
+        createImsProvisioningController();
+
+        mMmTelConnectorListener0.getValue().connectionReady(mImsManager, mSubId0);
+        mRcsConnectorListener0.getValue().connectionReady(mRcsFeatureManager, mSubId0);
+        processAllMessages();
+
+        // add callback with valid obj
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId0, mIFeatureProvisioningCallback0);
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId1, mIFeatureProvisioningCallback1);
+
+        clearInvocations(mIFeatureProvisioningCallback0);
+        clearInvocations(mIFeatureProvisioningCallback1);
+        clearInvocations(mImsConfig);
+        clearInvocations(mImsProvisioningLoader);
+
+        // provisioning required capability
+        // voice, LTE, IWLAN
+        // video, LTE
+        mMmTelTechMap.clear();
+        mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN});
+        mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
+                new int[] {REGISTRATION_TECH_LTE});
+
+        // provisioning Status, all of provisioning status is not set
+        mMmTelProvisioningStorage = new int[][] {
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE, 1}
+        };
+
+        // provisioning required capability
+        // presence, all tech
+        mRcsTechMap.clear();
+        mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+
+        // provisioning Status, all of provisioning status is not set
+        mRcsProvisioningStorage = new int[][]{
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_CROSS_SIM, 1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_NR, 1}
+        };
+
+        // MmTel keys
+        int[] keys = {
+                KEY_VOLTE_PROVISIONING_STATUS,
+                KEY_VT_PROVISIONING_STATUS,
+                KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE,
+        };
+        int[] capas = {
+                CAPABILITY_TYPE_VOICE,
+                CAPABILITY_TYPE_VIDEO,
+                CAPABILITY_TYPE_VOICE
+        };
+        int[] techs = {
+                REGISTRATION_TECH_LTE,
+                REGISTRATION_TECH_LTE,
+                REGISTRATION_TECH_IWLAN
+        };
+        for (int i = 0; i < keys.length; i++) {
+            int result = mTestImsProvisioningController.getProvisioningValue(mSubId0, keys[i]);
+            processAllMessages();
+
+            // check return value
+            assertEquals(PROVISIONING_VALUE_ENABLED, result);
+
+            // verify weather ImsProvisioningLoader is called or not
+            verify(mImsProvisioningLoader, times(1)).getProvisioningStatus(eq(mSubId0),
+                    eq(FEATURE_MMTEL), eq(capas[i]), eq(techs[i]));
+        }
+        clearInvocations(mImsProvisioningLoader);
+
+        // Rcs keys
+        int key = KEY_EAB_PROVISIONING_STATUS;
+        int capa = CAPABILITY_TYPE_PRESENCE_UCE;
+
+        int result = mTestImsProvisioningController.getProvisioningValue(mSubId0, key);
+        processAllMessages();
+
+        // check return value
+        assertEquals(PROVISIONING_VALUE_ENABLED, result);
+
+        // verify weather ImsProvisioningLoader is called or not
+        verify(mImsProvisioningLoader, times(1)).getProvisioningStatus(
+                eq(mSubId0), eq(FEATURE_RCS), eq(capa), anyInt());
+
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback1);
+        verifyNoMoreInteractions(mImsConfig);
+        verifyNoMoreInteractions(mImsProvisioningLoader);
+    }
+
+    @Test
+    @SmallTest
+    public void getProvisioningValue_withNotSet() throws Exception {
+        createImsProvisioningController();
+
+        mMmTelConnectorListener0.getValue().connectionReady(mImsManager, mSubId0);
+        mRcsConnectorListener0.getValue().connectionReady(mRcsFeatureManager, mSubId0);
+        processAllMessages();
+
+        // add callback with valid obj
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId0, mIFeatureProvisioningCallback0);
+        mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                mSubId1, mIFeatureProvisioningCallback1);
+
+        clearInvocations(mIFeatureProvisioningCallback0);
+        clearInvocations(mIFeatureProvisioningCallback1);
+        clearInvocations(mImsConfig);
+        clearInvocations(mImsProvisioningLoader);
+
+        // provisioning required capability
+        // voice, LTE, IWLAN
+        // video, LTE
+        mMmTelTechMap.clear();
+        mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN});
+        mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
+                new int[] {REGISTRATION_TECH_LTE});
+
+        // provisioning Status, all of provisioning status is not set
+        mMmTelProvisioningStorage = new int[][] {
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE, -1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN, -1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE, -1}
+        };
+
+        // provisioning required capability
+        // presence, all tech
+        mRcsTechMap.clear();
+        mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+
+        // provisioning Status, all of provisioning status is not set
+        mRcsProvisioningStorage = new int[][]{
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE, -1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_IWLAN, -1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_CROSS_SIM, -1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_NR, -1}
+        };
+        // provisioning status in ImsService
+        mImsConfigStorage = new int[][] {
+                {KEY_VOLTE_PROVISIONING_STATUS, 1},
+                {KEY_VT_PROVISIONING_STATUS, 1},
+                {KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, 1},
+                {KEY_EAB_PROVISIONING_STATUS, 1}
+        };
+
+        // MmTel keys
+        int[] keys = {
+                KEY_VOLTE_PROVISIONING_STATUS,
+                KEY_VT_PROVISIONING_STATUS,
+                KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE,
+        };
+        int[] capas = {
+                CAPABILITY_TYPE_VOICE,
+                CAPABILITY_TYPE_VIDEO,
+                CAPABILITY_TYPE_VOICE
+        };
+        int[] techs = {
+                REGISTRATION_TECH_LTE,
+                REGISTRATION_TECH_LTE,
+                REGISTRATION_TECH_IWLAN
+        };
+        for (int i = 0; i < keys.length; i++) {
+            int result = mTestImsProvisioningController.getProvisioningValue(mSubId0, keys[i]);
+            processAllMessages();
+
+            // check return value
+            assertEquals(PROVISIONING_VALUE_ENABLED, result);
+
+            // verify weather ImsProvisioningLoader is called or not
+            verify(mImsProvisioningLoader, times(1)).getProvisioningStatus(eq(mSubId0),
+                    eq(FEATURE_MMTEL), eq(capas[i]), eq(techs[i]));
+
+            // verify weather ImsConfig is called or not
+            verify(mImsConfig, times(1)).getConfigInt(eq(keys[i]));
+
+            // verify weather ImsProvisioningLoader is called or not
+            verify(mImsProvisioningLoader, times(1)).setProvisioningStatus(eq(mSubId0),
+                    eq(FEATURE_MMTEL), eq(capas[i]), eq(techs[i]), eq(true));
+
+            // verify weather callback is called or not
+            verify(mIFeatureProvisioningCallback0, times(1)).onFeatureProvisioningChanged(
+                    eq(capas[i]), eq(techs[i]), eq(true));
+        }
+        clearInvocations(mImsConfig);
+        clearInvocations(mImsProvisioningLoader);
+
+        // Rcs keys
+        int key = KEY_EAB_PROVISIONING_STATUS;
+        int capa = CAPABILITY_TYPE_PRESENCE_UCE;
+
+        int result = mTestImsProvisioningController.getProvisioningValue(mSubId0, key);
+        processAllMessages();
+
+        // check return value
+        assertEquals(PROVISIONING_VALUE_ENABLED, result);
+
+        // verify weather ImsProvisioningLoader is called or not
+        verify(mImsProvisioningLoader, times(1)).getProvisioningStatus(
+                eq(mSubId0), eq(FEATURE_RCS), eq(capa), anyInt());
+
+        // verify weather ImsConfig is called or not
+        verify(mImsConfig, times(1)).getConfigInt(eq(key));
+
+        // verify weather ImsProvisioningLoader is called or not
+        verify(mImsProvisioningLoader, times(RADIO_TECHS.length)).setProvisioningStatus(
+                eq(mSubId0), eq(FEATURE_RCS), eq(capa), anyInt(), eq(true));
+
+        // verify weather callback is called or not
+        verify(mIFeatureProvisioningCallback0, times(RADIO_TECHS.length))
+                .onRcsFeatureProvisioningChanged(eq(capa), anyInt(), eq(true));
+
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback1);
+        verifyNoMoreInteractions(mImsConfig);
+        verifyNoMoreInteractions(mImsProvisioningLoader);
+    }
+
+    @Test
+    @SmallTest
+    public void onMultiSimConfigChanged() throws Exception {
+        createImsProvisioningController();
+
+        // change number of slot 2 -> 1
+        mHandler.sendMessage(mHandler.obtainMessage(
+                mTestImsProvisioningController.EVENT_MULTI_SIM_CONFIGURATION_CHANGE,
+                0, 0, (Object) new AsyncResult(null, 1, null)));
+        processAllMessages();
+
+        // add callback with mSubId0, mPhoneId0 : Ok.
+        try {
+            mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                    mSubId0, mIFeatureProvisioningCallback0);
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+
+        // add callbacks with new mSubId1, mPhoneId1 : IllegalArgumentException.
+        try {
+            mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                    mSubId1, mIFeatureProvisioningCallback1);
+        } catch (IllegalArgumentException e) {
+            // expected result
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+        // check isImsProvisioningRequiredForCapability with mSubId1 : IllegalArgumentException
+        try {
+            mTestImsProvisioningController.isImsProvisioningRequiredForCapability(
+                    mSubId1, CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE);
+        } catch (IllegalArgumentException e) {
+            // expected result
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+        clearInvocations(mIFeatureProvisioningCallback0);
+        clearInvocations(mIFeatureProvisioningCallback1);
+
+        // change number of slot 1 -> 2
+        mHandler.sendMessage(mHandler.obtainMessage(
+                mTestImsProvisioningController.EVENT_MULTI_SIM_CONFIGURATION_CHANGE,
+                0, 0, (Object) new AsyncResult(null, 2, null)));
+        processAllMessages();
+
+        // add callback with mSubId0, mPhoneId0 : Ok.
+        try {
+            mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                    mSubId0, mIFeatureProvisioningCallback0);
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+
+        // add callbacks with new mSubId1, mPhoneId1 : Ok.
+        try {
+            mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                    mSubId1, mIFeatureProvisioningCallback1);
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+        clearInvocations(mIFeatureProvisioningCallback0);
+        clearInvocations(mIFeatureProvisioningCallback1);
+
+        // check get,setImsProvisioningRequiredForCapability with mSubId1, mPhoneId1 : Ok
+        int capability = CAPABILITY_TYPE_VOICE;
+        int tech = REGISTRATION_TECH_LTE;
+        boolean provisioned;
+        provisioned = mTestImsProvisioningController.getImsProvisioningStatusForCapability(
+                mSubId1, capability, tech);
+        mTestImsProvisioningController.setImsProvisioningStatusForCapability(mSubId1,
+                capability, tech, !provisioned);
+        processAllMessages();
+
+        // verify weather Callback is called or not
+        verify(mIFeatureProvisioningCallback1, times(1))
+                .onFeatureProvisioningChanged(eq(capability), eq(tech), eq(!provisioned));
+
+        clearInvocations(mIFeatureProvisioningCallback0);
+        clearInvocations(mIFeatureProvisioningCallback1);
+        clearInvocations(mImsConfig);
+    }
+
+    private void createImsProvisioningController() throws Exception {
+        if (Looper.myLooper() == null) {
+            Looper.prepare();
+        }
+
+        when(mMmTelFeatureConnector
+                .create(any(), eq(0), any(), mMmTelConnectorListener0.capture(), any()))
+                .thenReturn(mMmTelFeatureConnector0);
+        when(mMmTelFeatureConnector
+                .create(any(), eq(1), any(), mMmTelConnectorListener1.capture(), any()))
+                .thenReturn(mMmTelFeatureConnector1);
+
+        when(mRcsFeatureConnector
+                .create(any(), eq(0), mRcsConnectorListener0.capture(), any(), any()))
+                .thenReturn(mRcsFeatureConnector0);
+        when(mRcsFeatureConnector
+                .create(any(), eq(1), mRcsConnectorListener1.capture(), any(), any()))
+                .thenReturn(mRcsFeatureConnector1);
+
+        when(mImsConfig.getConfigInt(anyInt()))
+                .thenAnswer(invocation -> {
+                    int i = (Integer) (invocation.getArguments()[0]);
+                    return getImsConfigValue(i);
+                });
+        when(mImsConfig.setConfig(anyInt(), anyInt()))
+                .thenAnswer(invocation -> {
+                    int i = (Integer) (invocation.getArguments()[0]);
+                    int j = (Integer) (invocation.getArguments()[1]);
+                    return setImsConfigValue(i, j);
+                });
+
+        when(mImsProvisioningLoader.getProvisioningStatus(anyInt(), eq(FEATURE_MMTEL), anyInt(),
+                anyInt()))
+                .thenAnswer(invocation -> {
+                    int i = (Integer) (invocation.getArguments()[2]);
+                    int j = (Integer) (invocation.getArguments()[3]);
+                    return getProvisionedValue(i, j);
+                });
+        when(mImsProvisioningLoader.getProvisioningStatus(anyInt(), eq(FEATURE_RCS), anyInt(),
+                anyInt()))
+                .thenAnswer(invocation -> {
+                    int i = (Integer) (invocation.getArguments()[2]);
+                    int j = (Integer) (invocation.getArguments()[3]);
+                    return getRcsProvisionedValue(i, j);
+                });
+        when(mImsProvisioningLoader
+                .setProvisioningStatus(anyInt(), eq(FEATURE_MMTEL), anyInt(), anyInt(),
+                        anyBoolean()))
+                .thenAnswer(invocation -> {
+                    int i = (Integer) (invocation.getArguments()[2]);
+                    int j = (Integer) (invocation.getArguments()[3]);
+                    int k = (Boolean) (invocation.getArguments()[4]) ? 1 : 0;
+                    return setProvisionedValue(i, j, k);
+                });
+        when(mImsProvisioningLoader
+                .setProvisioningStatus(anyInt(), eq(FEATURE_RCS), anyInt(), anyInt(),
+                        anyBoolean()))
+                .thenAnswer(invocation -> {
+                    int i = (Integer) (invocation.getArguments()[2]);
+                    int j = (Integer) (invocation.getArguments()[3]);
+                    int k = (Boolean) (invocation.getArguments()[4]) ? 1 : 0;
+                    return setRcsProvisionedValue(i, j, k);
+                });
+
+        when(mIFeatureProvisioningCallback0.asBinder()).thenReturn(mIbinder0);
+        when(mIFeatureProvisioningCallback1.asBinder()).thenReturn(mIbinder1);
+
+        doNothing().when(mIFeatureProvisioningCallback0)
+                .onFeatureProvisioningChanged(anyInt(), anyInt(), anyBoolean());
+        doNothing().when(mIFeatureProvisioningCallback0)
+                .onRcsFeatureProvisioningChanged(anyInt(), anyInt(), anyBoolean());
+        doNothing().when(mIFeatureProvisioningCallback1)
+                .onFeatureProvisioningChanged(anyInt(), anyInt(), anyBoolean());
+        doNothing().when(mIFeatureProvisioningCallback1)
+                .onRcsFeatureProvisioningChanged(anyInt(), anyInt(), anyBoolean());
+
+        mTestImsProvisioningController = new TestImsProvisioningController();
+
+        mHandler = mTestImsProvisioningController.getHandler();
+        try {
+            mLooper = new TestableLooper(mHandler.getLooper());
+        } catch (Exception e) {
+            logd("create looper from handler failed");
+        }
+
+        verify(mRcsFeatureConnector0, atLeastOnce()).connect();
+        verify(mMmTelFeatureConnector0, atLeastOnce()).connect();
+
+        verify(mRcsFeatureConnector1, atLeastOnce()).connect();
+        verify(mMmTelFeatureConnector1, atLeastOnce()).connect();
+    }
+
+    private void initializeDefaultData() throws Exception {
+        mMmTelTechMap.clear();
+        mMmTelTechMap.put(CAPABILITY_TYPE_VOICE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+        mMmTelTechMap.put(CAPABILITY_TYPE_VIDEO,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+        mMmTelTechMap.put(CAPABILITY_TYPE_UT,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+        mMmTelTechMap.put(CAPABILITY_TYPE_SMS,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+        mMmTelTechMap.put(CAPABILITY_TYPE_CALL_COMPOSER,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+        mMmTelProvisioningStorage = new int[][]{
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_CROSS_SIM, 1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_NR, 1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_CROSS_SIM, 1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_NR, 1},
+                {CAPABILITY_TYPE_UT, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_UT, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_UT, REGISTRATION_TECH_CROSS_SIM, 1},
+                {CAPABILITY_TYPE_UT, REGISTRATION_TECH_NR, 1},
+                {CAPABILITY_TYPE_SMS, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_SMS, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_SMS, REGISTRATION_TECH_CROSS_SIM, 1},
+                {CAPABILITY_TYPE_SMS, REGISTRATION_TECH_NR, 1},
+                {CAPABILITY_TYPE_CALL_COMPOSER, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_CALL_COMPOSER, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_CALL_COMPOSER, REGISTRATION_TECH_CROSS_SIM, 1},
+                {CAPABILITY_TYPE_CALL_COMPOSER, REGISTRATION_TECH_NR, 1}
+        };
+
+        mRcsTechMap.clear();
+        mRcsTechMap.put(CAPABILITY_TYPE_OPTIONS_UCE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+        mRcsTechMap.put(CAPABILITY_TYPE_PRESENCE_UCE,
+                new int[] {REGISTRATION_TECH_LTE, REGISTRATION_TECH_IWLAN,
+                        REGISTRATION_TECH_CROSS_SIM, REGISTRATION_TECH_NR});
+        mRcsProvisioningStorage = new int[][]{
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_CROSS_SIM, 1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_NR, 1}
+        };
+
+        mImsConfigStorage = new int[][] {
+                {KEY_VOLTE_PROVISIONING_STATUS, 1},
+                {KEY_VT_PROVISIONING_STATUS, 1},
+                {KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, 1},
+                {KEY_EAB_PROVISIONING_STATUS, 1}
+        };
+    }
+
+    private int getProvisionedValue(int i, int j) {
+        for (int[] data : mMmTelProvisioningStorage) {
+            if (data[0] == i && data[1] == j) {
+                return data[2];
+            }
+        }
+        return 0;
+    }
+
+    private int getRcsProvisionedValue(int i, int j) {
+        for (int[] data : mRcsProvisioningStorage) {
+            if (data[0] == i && data[1] == j) {
+                return data[2];
+            }
+        }
+        return 0;
+    }
+
+    private boolean setProvisionedValue(int i, int j, int k) {
+        boolean retVal = false;
+        for (int[] data : mMmTelProvisioningStorage) {
+            if (data[0] == i && data[1] == j) {
+                if (data[2] != k) {
+                    data[2] = k;
+                    return true;
+                }
+                return false;
+            }
+        }
+        return retVal;
+    }
+
+    private boolean setRcsProvisionedValue(int i, int j, int k) {
+        boolean retVal = false;
+        for (int[] data : mRcsProvisioningStorage) {
+            if (data[0] == i && data[1] == j) {
+                if (data[2] != k) {
+                    data[2] = k;
+                    return true;
+                }
+                return false;
+            }
+        }
+        return retVal;
+    }
+
+    private int getImsConfigValue(int i) {
+        for (int[] data : mImsConfigStorage) {
+            if (data[0] == i) {
+                return data[1];
+            }
+        }
+        return -1;
+    }
+
+    private int setImsConfigValue(int i, int j) {
+        for (int[] data : mImsConfigStorage) {
+            if (data[0] == i) {
+                data[1] = j;
+                return ImsConfig.OperationStatusConstants.SUCCESS;
+            }
+        }
+        return ImsConfig.OperationStatusConstants.SUCCESS;
+    }
+
+    private void processAllMessages() {
+        while (!mLooper.getLooper().getQueue().isIdle()) {
+            mLooper.processAllMessages();
+        }
+    }
+
+    private static void logd(String str) {
+        Log.d(TAG, str);
+    }
+}
diff --git a/tests/src/com/android/phone/ImsProvisioningLoaderTest.java b/tests/src/com/android/phone/ImsProvisioningLoaderTest.java
new file mode 100644
index 0000000..61cab1d
--- /dev/null
+++ b/tests/src/com/android/phone/ImsProvisioningLoaderTest.java
@@ -0,0 +1,260 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.Assert.assertEquals;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.doReturn;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.PersistableBundle;
+import android.telephony.ims.feature.MmTelFeature;
+import android.telephony.ims.feature.RcsFeature;
+import android.telephony.ims.stub.ImsRegistrationImplBase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.util.Log;
+
+import androidx.test.InstrumentationRegistry;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+/**
+ * Unit Test for ImsProvisioningLoader.
+ */
+public class ImsProvisioningLoaderTest {
+    private static final String LOG_TAG = ImsProvisioningLoaderTest.class.getSimpleName();
+
+    private static final int IMS_FEATURE_MMTEL = ImsProvisioningLoader.IMS_FEATURE_MMTEL;
+    private static final int IMS_FEATURE_RCS = ImsProvisioningLoader.IMS_FEATURE_RCS;
+
+    private static final int TECH_LTE = ImsRegistrationImplBase.REGISTRATION_TECH_LTE;
+    private static final int TECH_IWLAN = ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN;
+    private static final int TECH_NEW = Integer.MAX_VALUE;
+
+    private static final int CAPA_VOICE = MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE;
+    private static final int CAPA_VIDEO = MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO;
+    private static final int CAPA_UT = MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT;
+    private static final int CAPA_PRESENCE =
+            RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE;
+    private static final int CAPA_NEW = Integer.MAX_VALUE;
+
+    private static final int STATUS_NOT_PROVISIONED = ImsProvisioningLoader.STATUS_NOT_PROVISIONED;
+    private static final int STATUS_PROVISIONED = ImsProvisioningLoader.STATUS_PROVISIONED;
+
+    private static final int SUB_ID_1 = 111111;
+    private static final int SUB_ID_2 = 222222;
+
+    @Mock
+    Context mContext;
+    @Mock
+    SharedPreferences mSharedPreferences;
+    private ImsProvisioningLoader mImsProvisioningLoader;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        doReturn(mSharedPreferences).when(mContext).getSharedPreferences(anyString(), anyInt());
+        doReturn(InstrumentationRegistry.getTargetContext().getFilesDir()).when(
+                mContext).getFilesDir();
+
+        mImsProvisioningLoader = new ImsProvisioningLoader(mContext);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        if (mImsProvisioningLoader != null) {
+            mImsProvisioningLoader.clear();
+        }
+        deleteXml(SUB_ID_1, mContext);
+        deleteXml(SUB_ID_2, mContext);
+    }
+
+    @Test
+    @SmallTest
+    public void testSetProvisioningStatus_ExistFeature() {
+        // Set MMTEL IWLAN VOICE to STATUS_PROVISIONED
+        String[] info =
+                new String[]{IMS_FEATURE_MMTEL + "," + TECH_IWLAN + "," + CAPA_VOICE + "," + getInt(
+                        true)};
+        mImsProvisioningLoader.setProvisioningToXml(SUB_ID_1, new PersistableBundle(), info);
+
+        int curValue = mImsProvisioningLoader.getProvisioningStatus(SUB_ID_1, IMS_FEATURE_MMTEL,
+                CAPA_VOICE, TECH_IWLAN);
+        assertEquals(getXmlContents(SUB_ID_1), getInt(true), curValue);
+
+        // Change MMTEL IWLAN VOICE provisioning status
+        boolean saveResult = mImsProvisioningLoader.setProvisioningStatus(SUB_ID_1,
+                IMS_FEATURE_MMTEL, CAPA_VOICE, TECH_IWLAN, false);
+        curValue = mImsProvisioningLoader.getProvisioningStatus(SUB_ID_1,
+                IMS_FEATURE_MMTEL, CAPA_VOICE, TECH_IWLAN);
+        assertEquals(getXmlContents(SUB_ID_1), true, saveResult);
+        assertEquals(getXmlContents(SUB_ID_1), getInt(false), curValue);
+
+        // If set to the same provisioning status,  don't save it.
+        saveResult = mImsProvisioningLoader.setProvisioningStatus(SUB_ID_1,
+                IMS_FEATURE_MMTEL, CAPA_VOICE, TECH_IWLAN, false);
+        curValue = mImsProvisioningLoader.getProvisioningStatus(SUB_ID_1,
+                IMS_FEATURE_MMTEL, CAPA_VOICE, TECH_IWLAN);
+        assertEquals(getXmlContents(SUB_ID_1), false, saveResult);
+        assertEquals(getXmlContents(SUB_ID_1), getInt(false), curValue);
+    }
+
+    @Test
+    @SmallTest
+    public void testSetProvisioningStatus_NewFeature() {
+        // Set new capability
+        // Return true as a result to setProvisioningStatus()
+        boolean saveResult = mImsProvisioningLoader.setProvisioningStatus(SUB_ID_1,
+                IMS_FEATURE_MMTEL, CAPA_NEW, TECH_LTE, true);
+        int curValue = mImsProvisioningLoader.getProvisioningStatus(SUB_ID_1,
+                IMS_FEATURE_MMTEL, CAPA_NEW, TECH_LTE);
+        assertEquals(getXmlContents(SUB_ID_1), true, saveResult);
+        assertEquals(getXmlContents(SUB_ID_1), getInt(true), curValue);
+
+        // Set new tech
+        saveResult = mImsProvisioningLoader.setProvisioningStatus(SUB_ID_1,
+                IMS_FEATURE_MMTEL, CAPA_VOICE, TECH_NEW, false);
+        curValue = mImsProvisioningLoader.getProvisioningStatus(SUB_ID_1,
+                IMS_FEATURE_MMTEL, CAPA_VOICE, TECH_NEW);
+        assertEquals(getXmlContents(SUB_ID_1), true, saveResult);
+        assertEquals(getXmlContents(SUB_ID_1), getInt(false), curValue);
+    }
+
+    @Test
+    @SmallTest
+    public void testSetProvisioningStatus_DifferentSim() {
+        // Check whether the provisioning status does not change even if SIM is changed
+        // Sub id 2, set provisioning status
+        boolean prevValue = getBooleanFromProvisioningStatus(SUB_ID_2,
+                IMS_FEATURE_RCS, CAPA_PRESENCE, TECH_IWLAN);
+        boolean saveResult = mImsProvisioningLoader.setProvisioningStatus(
+                SUB_ID_2, IMS_FEATURE_RCS, CAPA_PRESENCE, TECH_IWLAN, !prevValue);
+        int curValue = mImsProvisioningLoader.getProvisioningStatus(SUB_ID_2,
+                IMS_FEATURE_RCS, CAPA_PRESENCE, TECH_IWLAN);
+        assertEquals(getXmlContents(SUB_ID_2), true, saveResult);
+        assertEquals(getXmlContents(SUB_ID_2), getInt(!prevValue), curValue);
+
+        // Sub id 1, set other provisioned status
+        mImsProvisioningLoader.setProvisioningStatus(
+                SUB_ID_1, IMS_FEATURE_RCS, CAPA_PRESENCE, TECH_IWLAN, prevValue);
+
+        // Sub id 2, check the previous provisioning status isn't changed
+        curValue = mImsProvisioningLoader.getProvisioningStatus(SUB_ID_2,
+                IMS_FEATURE_RCS, CAPA_PRESENCE, TECH_IWLAN);
+        assertEquals(getXmlContents(SUB_ID_2), getInt(!prevValue), curValue);
+    }
+
+    @Test
+    @SmallTest
+    public void testGetProvisioningStatus_UtProvisioningStatusIsExistInPref() {
+        // Ut provisioning status exists in preference
+        doReturn(1).when(mSharedPreferences).getInt(anyString(), anyInt());
+        int curValue = mImsProvisioningLoader.getProvisioningStatus(SUB_ID_1,
+                IMS_FEATURE_MMTEL, CAPA_UT, TECH_LTE);
+        assertEquals(getXmlContents(SUB_ID_1), getInt(true), curValue);
+    }
+
+    @Test
+    @SmallTest
+    public void testGetProvisioningStatus_ExistXml() {
+        // Set MMTEL LTE VOICE to STATUS_PROVISIONED, MMTEL LTE VIDEO to STATUS_NOT_PROVISIONED
+        String[] info =
+                new String[]{IMS_FEATURE_MMTEL + "," + TECH_LTE + "," + CAPA_VOICE + "," + getInt(
+                        true),
+                        IMS_FEATURE_MMTEL + "," + TECH_LTE + "," + CAPA_VIDEO + "," + getInt(
+                                false)};
+        mImsProvisioningLoader.setProvisioningToXml(SUB_ID_1, new PersistableBundle(), info);
+
+        int curValue = mImsProvisioningLoader.getProvisioningStatus(SUB_ID_1,
+                IMS_FEATURE_MMTEL, CAPA_VOICE, TECH_LTE);
+        assertEquals(getXmlContents(SUB_ID_1), getInt(true), curValue);
+
+        curValue = mImsProvisioningLoader.getProvisioningStatus(SUB_ID_1,
+                IMS_FEATURE_MMTEL, CAPA_VIDEO, TECH_LTE);
+        assertEquals(getXmlContents(SUB_ID_1), getInt(false), curValue);
+    }
+
+    private boolean getBooleanFromProvisioningStatus(int subId, int imsFeature, int capa,
+            int tech) {
+        // Return provisioning status to bool
+        return mImsProvisioningLoader.getProvisioningStatus(
+                subId, imsFeature, capa, tech) == STATUS_PROVISIONED ? true
+                : false;
+    }
+
+    private int getInt(boolean isProvisioned) {
+        return isProvisioned ? STATUS_PROVISIONED : STATUS_NOT_PROVISIONED;
+    }
+
+    private void deleteXml(int subId, Context context) {
+        String fileName = getFileName(subId);
+        File file = null;
+        try {
+            file = new File(context.getFilesDir(), fileName);
+        } catch (Exception e) {
+            logd(e.toString());
+        }
+        file.delete();
+    }
+
+    private String getXmlContents(int subId) {
+        String fileName = getFileName(subId);
+
+        File file = null;
+        FileInputStream inFile = null;
+        StringBuilder readString = new StringBuilder();
+        readString.append("file name " + fileName + "\n");
+        byte[] buffer = new byte[1024];
+        int n = 0;
+        try {
+            file = new File(mContext.getFilesDir(), fileName);
+            inFile = new FileInputStream(file);
+            while ((n = inFile.read(buffer)) != -1) {
+                readString.append(new String(buffer, 0, n));
+            }
+            inFile.close();
+        } catch (FileNotFoundException e) {
+            logd(e.toString());
+
+        } catch (IOException e) {
+            logd(e.toString());
+        }
+        return readString.toString();
+    }
+
+    private String getFileName(int subId) {
+        // Resulting name is imsprovisioningstatus_{subId}.xml
+        return "imsprovisioningstatus_" + subId + ".xml";
+    }
+
+    private static void logd(String contents) {
+        Log.d(LOG_TAG, contents);
+    }
+
+}
diff --git a/tests/src/com/android/phone/ImsStateCallbackControllerTest.java b/tests/src/com/android/phone/ImsStateCallbackControllerTest.java
new file mode 100644
index 0000000..cb4321c
--- /dev/null
+++ b/tests/src/com/android/phone/ImsStateCallbackControllerTest.java
@@ -0,0 +1,947 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.telephony.ims.ImsStateCallback.REASON_IMS_SERVICE_DISCONNECTED;
+import static android.telephony.ims.ImsStateCallback.REASON_IMS_SERVICE_NOT_READY;
+import static android.telephony.ims.ImsStateCallback.REASON_NO_IMS_SERVICE_CONFIGURED;
+import static android.telephony.ims.ImsStateCallback.REASON_SUBSCRIPTION_INACTIVE;
+import static android.telephony.ims.feature.ImsFeature.FEATURE_MMTEL;
+import static android.telephony.ims.feature.ImsFeature.FEATURE_RCS;
+
+import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_DISCONNECTED;
+import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_IMS_UNSUPPORTED;
+import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_NOT_READY;
+
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertTrue;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.os.Looper;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyRegistryManager;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.testing.TestableLooper;
+import android.util.Log;
+
+import com.android.ims.FeatureConnector;
+import com.android.ims.ImsManager;
+import com.android.ims.RcsFeatureManager;
+import com.android.internal.telephony.IImsStateCallback;
+import com.android.internal.telephony.ITelephony;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.ims.ImsResolver;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
+import java.lang.reflect.Field;
+import java.util.concurrent.Executor;
+
+/**
+ * Unit tests for RcsProvisioningMonitor
+ */
+public class ImsStateCallbackControllerTest {
+    private static final String TAG = "ImsStateCallbackControllerTest";
+    private static final int FAKE_SUB_ID_BASE = 0x0FFFFFF0;
+
+    private static final int SLOT_0 = 0;
+    private static final int SLOT_1 = 1;
+
+    private static final int SLOT_0_SUB_ID = 1;
+    private static final int SLOT_1_SUB_ID = 2;
+    private static final int SLOT_2_SUB_ID = 3;
+
+    private ImsStateCallbackController mImsStateCallbackController;
+    private Handler mHandler;
+    private HandlerThread mHandlerThread;
+    private TestableLooper mLooper;
+    @Mock private SubscriptionManager mSubscriptionManager;
+    private SubscriptionManager.OnSubscriptionsChangedListener mSubChangedListener;
+    @Mock private TelephonyRegistryManager mTelephonyRegistryManager;
+    @Mock private ITelephony.Stub mITelephony;
+    @Mock private RcsFeatureManager mRcsFeatureManager;
+    @Mock private ImsManager mMmTelFeatureManager;
+    @Mock private ImsStateCallbackController.MmTelFeatureConnectorFactory mMmTelFeatureFactory;
+    @Mock private ImsStateCallbackController.RcsFeatureConnectorFactory mRcsFeatureFactory;
+    @Mock private FeatureConnector<ImsManager> mMmTelFeatureConnectorSlot0;
+    @Mock private FeatureConnector<ImsManager> mMmTelFeatureConnectorSlot1;
+    @Mock private FeatureConnector<RcsFeatureManager> mRcsFeatureConnectorSlot0;
+    @Mock private FeatureConnector<RcsFeatureManager> mRcsFeatureConnectorSlot1;
+    @Captor ArgumentCaptor<FeatureConnector.Listener<ImsManager>> mMmTelConnectorListenerSlot0;
+    @Captor ArgumentCaptor<FeatureConnector.Listener<ImsManager>> mMmTelConnectorListenerSlot1;
+    @Captor ArgumentCaptor<FeatureConnector.Listener<RcsFeatureManager>> mRcsConnectorListenerSlot0;
+    @Captor ArgumentCaptor<FeatureConnector.Listener<RcsFeatureManager>> mRcsConnectorListenerSlot1;
+    @Mock private PhoneGlobals mPhone;
+    @Mock ImsStateCallbackController.PhoneFactoryProxy mPhoneFactoryProxy;
+    @Mock Phone mPhoneSlot0;
+    @Mock Phone mPhoneSlot1;
+    @Mock private IBinder mBinder0;
+    @Mock private IBinder mBinder1;
+    @Mock private IBinder mBinder2;
+    @Mock private IBinder mBinder3;
+    @Mock private IImsStateCallback mCallback0;
+    @Mock private IImsStateCallback mCallback1;
+    @Mock private IImsStateCallback mCallback2;
+    @Mock private IImsStateCallback mCallback3;
+    @Mock private ImsResolver mImsResolver;
+
+    private Executor mExecutor = new Executor() {
+        @Override
+        public void execute(Runnable r) {
+            r.run();
+        }
+    };
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+
+        when(mPhone.getMainExecutor()).thenReturn(mExecutor);
+        when(mPhone.getSystemServiceName(eq(SubscriptionManager.class)))
+                .thenReturn(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
+        when(mPhone.getSystemService(eq(Context.TELEPHONY_SUBSCRIPTION_SERVICE)))
+                .thenReturn(mSubscriptionManager);
+        when(mPhone.getSystemServiceName(eq(TelephonyRegistryManager.class)))
+                .thenReturn(Context.TELEPHONY_REGISTRY_SERVICE);
+        when(mPhone.getSystemService(eq(Context.TELEPHONY_REGISTRY_SERVICE)))
+                .thenReturn(mTelephonyRegistryManager);
+        when(mPhoneFactoryProxy.getPhone(eq(0))).thenReturn(mPhoneSlot0);
+        when(mPhoneFactoryProxy.getPhone(eq(1))).thenReturn(mPhoneSlot1);
+        when(mPhoneSlot0.getSubId()).thenReturn(SLOT_0_SUB_ID);
+        when(mPhoneSlot1.getSubId()).thenReturn(SLOT_1_SUB_ID);
+
+        when(mCallback0.asBinder()).thenReturn(mBinder0);
+        when(mCallback1.asBinder()).thenReturn(mBinder1);
+        when(mCallback2.asBinder()).thenReturn(mBinder2);
+        when(mCallback3.asBinder()).thenReturn(mBinder3);
+
+        // slot 0
+        when(mImsResolver.isImsServiceConfiguredForFeature(eq(0), eq(FEATURE_MMTEL)))
+                .thenReturn(true);
+        when(mImsResolver.isImsServiceConfiguredForFeature(eq(0), eq(FEATURE_RCS)))
+                .thenReturn(true);
+
+        // slot 1
+        when(mImsResolver.isImsServiceConfiguredForFeature(eq(1), eq(FEATURE_MMTEL)))
+                .thenReturn(true);
+        when(mImsResolver.isImsServiceConfiguredForFeature(eq(1), eq(FEATURE_RCS)))
+                .thenReturn(true);
+
+        doAnswer(new Answer<Void>() {
+            @Override
+            public Void answer(InvocationOnMock invocation) throws Throwable {
+                mSubChangedListener = (SubscriptionManager.OnSubscriptionsChangedListener)
+                        invocation.getArguments()[0];
+                return null;
+            }
+        }).when(mTelephonyRegistryManager).addOnSubscriptionsChangedListener(
+                any(SubscriptionManager.OnSubscriptionsChangedListener.class),
+                any());
+
+        mHandlerThread = new HandlerThread("ImsStateCallbackControllerTest");
+        mHandlerThread.start();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        if (mImsStateCallbackController != null) {
+            mImsStateCallbackController.destroy();
+            mImsStateCallbackController = null;
+        }
+
+        if (mLooper != null) {
+            mLooper.destroy();
+            mLooper = null;
+        }
+    }
+
+    @Test
+    @SmallTest
+    public void testMmTelRegisterThenUnregisterCallback() throws Exception {
+        createController(1);
+
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+        processAllMessages();
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+    }
+
+    @Test
+    @SmallTest
+    public void testMmTelConnectionUnavailable() throws Exception {
+        createController(1);
+
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+        processAllMessages();
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+        mMmTelConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+        processAllMessages();
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+
+        mMmTelConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_IMS_UNSUPPORTED);
+        processAllMessages();
+        verify(mCallback0, times(1)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+    }
+
+    @Test
+    @SmallTest
+    public void testMmTelConnectionReady() throws Exception {
+        createController(1);
+
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+        processAllMessages();
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+        verify(mCallback0, times(0)).onAvailable();
+
+        mMmTelConnectorListenerSlot0.getValue().connectionReady(null, SLOT_0_SUB_ID);
+        processAllMessages();
+        verify(mCallback0, atLeastOnce()).onAvailable();
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+    }
+
+    @Test
+    @SmallTest
+    public void testMmTelIgnoreDuplicatedConsecutiveReason() throws Exception {
+        createController(1);
+
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+        processAllMessages();
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+        mMmTelConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_IMS_UNSUPPORTED);
+        processAllMessages();
+        verify(mCallback0, times(1)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+        mMmTelConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_IMS_UNSUPPORTED);
+        processAllMessages();
+        verify(mCallback0, times(1)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+    }
+
+    @Test
+    @SmallTest
+    public void testRcsRegisterThenUnregisterCallback() throws Exception {
+        createController(1);
+
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_RCS, mCallback0, "callback0");
+        processAllMessages();
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+    }
+
+    @Test
+    @SmallTest
+    public void testRcsConnectionUnavailable() throws Exception {
+        createController(1);
+
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_RCS, mCallback0, "callback0");
+        processAllMessages();
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+        // TelephonyRcsService notifying active features
+        mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, false, true);
+        processAllMessages();
+
+        mRcsConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+        processAllMessages();
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+
+        mRcsConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_IMS_UNSUPPORTED);
+        processAllMessages();
+        verify(mCallback0, times(1)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+    }
+
+    @Test
+    @SmallTest
+    public void testRcsConnectionReady() throws Exception {
+        createController(1);
+
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_RCS, mCallback0, "callback0");
+        processAllMessages();
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+        // TelephonyRcsService notifying active features
+        mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, false, true);
+        processAllMessages();
+
+        mRcsConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+        processAllMessages();
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+
+        mRcsConnectorListenerSlot0.getValue().connectionReady(null, SLOT_0_SUB_ID);
+        processAllMessages();
+        verify(mCallback0, times(0)).onAvailable();
+
+        // RcsFeatureController notifying STATE_READY
+        mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, true, true);
+        processAllMessages();
+        verify(mCallback0, times(1)).onAvailable();
+
+        mRcsConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_DISCONNECTED);
+        processAllMessages();
+        verify(mCallback0, times(2)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+        mRcsConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+        processAllMessages();
+        verify(mCallback0, times(2)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+
+        // RcsFeatureController notifying STATE_READY
+        mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, true, true);
+        processAllMessages();
+        verify(mCallback0, times(1)).onAvailable();
+
+        mRcsConnectorListenerSlot0.getValue().connectionReady(null, SLOT_0_SUB_ID);
+        processAllMessages();
+        verify(mCallback0, times(2)).onAvailable();
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+    }
+
+    @Test
+    @SmallTest
+    public void testRcsHasNoActiveFeature() throws Exception {
+        createController(1);
+
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_RCS, mCallback0, "callback0");
+        processAllMessages();
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+        // TelephonyRcsService notifying NO active feature
+        mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, false, false);
+        processAllMessages();
+        verify(mCallback0, times(1)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+        mRcsConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+        processAllMessages();
+        verify(mCallback0, times(0)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+
+        mRcsConnectorListenerSlot0.getValue().connectionReady(null, SLOT_0_SUB_ID);
+        processAllMessages();
+        verify(mCallback0, times(0)).onAvailable();
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+    }
+
+    @Test
+    @SmallTest
+    public void testRcsIgnoreDuplicatedConsecutiveReason() throws Exception {
+        createController(1);
+
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_RCS, mCallback0, "callback0");
+        processAllMessages();
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+        // TelephonyRcsService notifying active features
+        mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, false, true);
+        processAllMessages();
+
+        mRcsConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+        processAllMessages();
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+
+        mRcsConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+        processAllMessages();
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+    }
+
+    @Test
+    @SmallTest
+    public void testCallbackRemovedWhenSubInfoChanged() throws Exception {
+        createController(2);
+
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_1_SUB_ID, FEATURE_RCS, mCallback1, "callback1");
+        processAllMessages();
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback1));
+
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+        verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+        makeFakeActiveSubIds(0);
+        mExecutor.execute(() -> mSubChangedListener.onSubscriptionsChanged());
+        processAllMessages();
+
+        verify(mCallback0, times(1)).onUnavailable(REASON_SUBSCRIPTION_INACTIVE);
+        verify(mCallback1, times(1)).onUnavailable(REASON_SUBSCRIPTION_INACTIVE);
+
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback1));
+    }
+
+    @Test
+    @SmallTest
+    public void testCarrierConfigurationChanged() throws Exception {
+        createController(2);
+
+        when(mImsResolver.isImsServiceConfiguredForFeature(eq(1), eq(FEATURE_MMTEL)))
+                .thenReturn(false);
+
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_1_SUB_ID, FEATURE_MMTEL, mCallback1, "callback1");
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_1_SUB_ID, FEATURE_RCS, mCallback2, "callback2");
+        processAllMessages();
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback1));
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback2));
+
+        // check initial reason
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+        verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+        verify(mCallback2, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+        verify(mCallback0, times(0)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+        verify(mCallback1, times(0)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+        verify(mCallback2, times(0)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+        // ensure only one reason reported until now
+        verify(mCallback0, times(1)).onUnavailable(anyInt());
+        verify(mCallback1, times(1)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+        // state change in RCS for slot 0
+        mRcsConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+
+        // ensure there is no change, since callbacks are not interested RCS on slot 0
+        verify(mCallback0, times(1)).onUnavailable(anyInt());
+        verify(mCallback1, times(1)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+        // carrier config changed, no MMTEL package for slot 1
+        mImsStateCallbackController.notifyCarrierConfigChanged(SLOT_1);
+        processAllMessages();
+
+        // only the callback for MMTEL of slot 1 received the reason
+        verify(mCallback0, times(0)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+        verify(mCallback1, times(1)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+        verify(mCallback2, times(0)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+        // ensure no other callbacks
+        verify(mCallback0, times(1)).onUnavailable(anyInt());
+        verify(mCallback1, times(2)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+        mMmTelConnectorListenerSlot1.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+        mMmTelConnectorListenerSlot1.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_DISCONNECTED);
+
+        // resons except REASON_NO_IMS_SERVICE_CONFIGURED are discared
+        verify(mCallback0, times(1)).onUnavailable(anyInt());
+        verify(mCallback1, times(2)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+        // IMS package for MMTEL of slot 1 is added
+        when(mImsResolver.isImsServiceConfiguredForFeature(eq(1), eq(FEATURE_MMTEL)))
+                .thenReturn(true);
+        mImsStateCallbackController.notifyCarrierConfigChanged(SLOT_1);
+        processAllMessages();
+
+        // ensure the callback to MMTEL of slot 1 only received REASON_IMS_SERVICE_DISCONNECTED
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+        verify(mCallback1, times(2)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+        verify(mCallback2, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+        // ensure no other reason repored
+        verify(mCallback0, times(1)).onUnavailable(anyInt());
+        verify(mCallback1, times(3)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+        // carrier config changed, no MMTEL package for slot 1
+        when(mImsResolver.isImsServiceConfiguredForFeature(eq(1), eq(FEATURE_MMTEL)))
+                .thenReturn(false);
+        mImsStateCallbackController.notifyCarrierConfigChanged(SLOT_1);
+        mImsStateCallbackController.notifyCarrierConfigChanged(SLOT_1);
+        processAllMessages();
+        // only the callback for MMTEL of slot 1 received the reason
+        verify(mCallback0, times(0)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+        verify(mCallback1, times(2)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+        verify(mCallback2, times(0)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+        // ensure no other reason repored
+        verify(mCallback0, times(1)).onUnavailable(anyInt());
+        verify(mCallback1, times(4)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+        mMmTelConnectorListenerSlot1.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+
+        // resons except REASON_NO_IMS_SERVICE_CONFIGURED are discared
+        verify(mCallback0, times(1)).onUnavailable(anyInt());
+        verify(mCallback1, times(4)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+        // IMS package for MMTEL of slot 1 is added
+        when(mImsResolver.isImsServiceConfiguredForFeature(eq(1), eq(FEATURE_MMTEL)))
+                .thenReturn(true);
+        mImsStateCallbackController.notifyCarrierConfigChanged(SLOT_1);
+        processAllMessages();
+
+        // ensure the callback to MMTEL of slot 1
+        // there is a pending reason UNAVAILABLE_REASON_NOT_READY
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+        verify(mCallback1, times(2)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+        verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+        verify(mCallback2, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+        // ensure no other reason repored
+        verify(mCallback0, times(1)).onUnavailable(anyInt());
+        verify(mCallback1, times(5)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback1));
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback2));
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback1);
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback2);
+        processAllMessages();
+
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback1));
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback2));
+    }
+
+    @Test
+    @SmallTest
+    public void testMultiSubscriptions() throws Exception {
+        createController(2);
+
+        // registration
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_RCS, mCallback1, "callback1");
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_1_SUB_ID, FEATURE_MMTEL, mCallback2, "callback2");
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_1_SUB_ID, FEATURE_RCS, mCallback3, "callback3");
+        processAllMessages();
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback1));
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback2));
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback3));
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+        verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+        verify(mCallback2, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+        verify(mCallback3, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+        // TelephonyRcsService notifying active features
+        // slot 0
+        mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, false, true);
+        // slot 1
+        mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_1, false, true);
+        processAllMessages();
+
+        verify(mCallback0, times(1)).onUnavailable(anyInt());
+        verify(mCallback1, times(1)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(anyInt());
+        verify(mCallback3, times(1)).onUnavailable(anyInt());
+
+        verify(mCallback0, times(0)).onAvailable();
+        verify(mCallback1, times(0)).onAvailable();
+        verify(mCallback2, times(0)).onAvailable();
+        verify(mCallback3, times(0)).onAvailable();
+
+        // connectionUnavailable
+        mMmTelConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+        processAllMessages();
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+        verify(mCallback0, times(2)).onUnavailable(anyInt());
+        verify(mCallback1, times(1)).onUnavailable(anyInt());
+        verify(mCallback1, times(1)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(anyInt());
+        verify(mCallback3, times(1)).onUnavailable(anyInt());
+        verify(mCallback3, times(1)).onUnavailable(anyInt());
+
+        mRcsConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+        processAllMessages();
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+        verify(mCallback0, times(2)).onUnavailable(anyInt());
+        verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+        verify(mCallback1, times(2)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(anyInt());
+        verify(mCallback3, times(1)).onUnavailable(anyInt());
+        verify(mCallback3, times(1)).onUnavailable(anyInt());
+
+        mMmTelConnectorListenerSlot1.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+        processAllMessages();
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+        verify(mCallback0, times(2)).onUnavailable(anyInt());
+        verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+        verify(mCallback1, times(2)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+        verify(mCallback2, times(2)).onUnavailable(anyInt());
+        verify(mCallback3, times(1)).onUnavailable(anyInt());
+        verify(mCallback3, times(1)).onUnavailable(anyInt());
+
+        mRcsConnectorListenerSlot1.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+        processAllMessages();
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+        verify(mCallback0, times(2)).onUnavailable(anyInt());
+        verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+        verify(mCallback1, times(2)).onUnavailable(anyInt());
+        verify(mCallback2, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+        verify(mCallback2, times(2)).onUnavailable(anyInt());
+        verify(mCallback3, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+        verify(mCallback3, times(2)).onUnavailable(anyInt());
+
+        // connectionReady
+        mMmTelConnectorListenerSlot0.getValue().connectionReady(null, SLOT_0_SUB_ID);
+        processAllMessages();
+        verify(mCallback0, times(1)).onAvailable();
+        verify(mCallback1, times(0)).onAvailable();
+        verify(mCallback2, times(0)).onAvailable();
+        verify(mCallback3, times(0)).onAvailable();
+        verify(mCallback0, times(2)).onUnavailable(anyInt());
+        verify(mCallback1, times(2)).onUnavailable(anyInt());
+        verify(mCallback2, times(2)).onUnavailable(anyInt());
+        verify(mCallback3, times(2)).onUnavailable(anyInt());
+
+        mRcsConnectorListenerSlot0.getValue().connectionReady(null, SLOT_0_SUB_ID);
+        processAllMessages();
+        verify(mCallback0, times(1)).onAvailable();
+        verify(mCallback1, times(0)).onAvailable();
+        verify(mCallback2, times(0)).onAvailable();
+        verify(mCallback3, times(0)).onAvailable();
+        verify(mCallback0, times(2)).onUnavailable(anyInt());
+        verify(mCallback1, times(2)).onUnavailable(anyInt());
+        verify(mCallback2, times(2)).onUnavailable(anyInt());
+        verify(mCallback3, times(2)).onUnavailable(anyInt());
+
+        mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, true, true);
+        processAllMessages();
+        verify(mCallback0, times(1)).onAvailable();
+        verify(mCallback1, times(1)).onAvailable();
+        verify(mCallback2, times(0)).onAvailable();
+        verify(mCallback3, times(0)).onAvailable();
+        verify(mCallback0, times(2)).onUnavailable(anyInt());
+        verify(mCallback1, times(2)).onUnavailable(anyInt());
+        verify(mCallback2, times(2)).onUnavailable(anyInt());
+        verify(mCallback3, times(2)).onUnavailable(anyInt());
+
+        mMmTelConnectorListenerSlot1.getValue().connectionReady(null, SLOT_1_SUB_ID);
+        processAllMessages();
+        verify(mCallback0, times(1)).onAvailable();
+        verify(mCallback1, times(1)).onAvailable();
+        verify(mCallback2, times(1)).onAvailable();
+        verify(mCallback3, times(0)).onAvailable();
+        verify(mCallback0, times(2)).onUnavailable(anyInt());
+        verify(mCallback1, times(2)).onUnavailable(anyInt());
+        verify(mCallback2, times(2)).onUnavailable(anyInt());
+        verify(mCallback3, times(2)).onUnavailable(anyInt());
+
+        mRcsConnectorListenerSlot1.getValue().connectionReady(null, SLOT_1_SUB_ID);
+        processAllMessages();
+        verify(mCallback0, times(1)).onAvailable();
+        verify(mCallback1, times(1)).onAvailable();
+        verify(mCallback2, times(1)).onAvailable();
+        verify(mCallback3, times(0)).onAvailable();
+        verify(mCallback0, times(2)).onUnavailable(anyInt());
+        verify(mCallback1, times(2)).onUnavailable(anyInt());
+        verify(mCallback2, times(2)).onUnavailable(anyInt());
+        verify(mCallback3, times(2)).onUnavailable(anyInt());
+
+        mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_1, true, true);
+        processAllMessages();
+        verify(mCallback0, times(1)).onAvailable();
+        verify(mCallback1, times(1)).onAvailable();
+        verify(mCallback2, times(1)).onAvailable();
+        verify(mCallback3, times(1)).onAvailable();
+        verify(mCallback0, times(2)).onUnavailable(anyInt());
+        verify(mCallback1, times(2)).onUnavailable(anyInt());
+        verify(mCallback2, times(2)).onUnavailable(anyInt());
+        verify(mCallback3, times(2)).onUnavailable(anyInt());
+
+        // unregistration
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback1));
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback2));
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback3));
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback1);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback1));
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback2));
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback3));
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback2);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback1));
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback2));
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback3));
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback3);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback1));
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback2));
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback3));
+    }
+
+    @Test
+    @SmallTest
+    public void testSlotUpdates() throws Exception {
+        createController(1);
+
+        verify(mMmTelFeatureConnectorSlot0, times(1)).connect();
+        verify(mRcsFeatureConnectorSlot0, times(1)).connect();
+        verify(mMmTelFeatureConnectorSlot0, times(0)).disconnect();
+        verify(mRcsFeatureConnectorSlot0, times(0)).disconnect();
+
+        // Add a new slot.
+        mImsStateCallbackController.updateFeatureControllerSize(2);
+
+        // connect in slot 1
+        verify(mMmTelFeatureConnectorSlot1, times(1)).connect();
+        verify(mRcsFeatureConnectorSlot1, times(1)).connect();
+
+        // no change in slot 0
+        verify(mMmTelFeatureConnectorSlot0, times(1)).connect();
+        verify(mRcsFeatureConnectorSlot0, times(1)).connect();
+
+        // Remove a slot.
+        mImsStateCallbackController.updateFeatureControllerSize(1);
+
+        // destroy in slot 1
+        verify(mMmTelFeatureConnectorSlot1, times(1)).disconnect();
+        verify(mRcsFeatureConnectorSlot1, times(1)).disconnect();
+
+        // no change in slot 0
+        verify(mMmTelFeatureConnectorSlot0, times(0)).disconnect();
+        verify(mRcsFeatureConnectorSlot0, times(0)).disconnect();
+    }
+
+    @Test
+    @SmallTest
+    public void testMmTelConnectionReadyWhenReEnableSim() throws Exception {
+        createController(1);
+
+        // MMTEL feature
+        mMmTelConnectorListenerSlot0.getValue().connectionReady(null, SLOT_0_SUB_ID);
+        processAllMessages();
+        mMmTelConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_DISCONNECTED);
+        processAllMessages();
+        mMmTelConnectorListenerSlot0.getValue().connectionReady(null,
+                SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+        processAllMessages();
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+        processAllMessages();
+
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+        verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+        verify(mCallback0, times(0)).onAvailable();
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+
+        // RCS feature
+        // TelephonyRcsService notifying active features
+        mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, false, true);
+        processAllMessages();
+        // RcsFeatureController notifying STATE_READY
+        mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, true, true);
+        processAllMessages();
+        mRcsConnectorListenerSlot0.getValue()
+                .connectionUnavailable(UNAVAILABLE_REASON_DISCONNECTED);
+        processAllMessages();
+        mRcsConnectorListenerSlot0.getValue().connectionReady(null,
+                SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+        processAllMessages();
+        mImsStateCallbackController
+                .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_RCS, mCallback1, "callback1");
+        processAllMessages();
+
+        assertTrue(mImsStateCallbackController.isRegistered(mCallback1));
+        verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+        verify(mCallback1, times(0)).onAvailable();
+
+        mImsStateCallbackController.unregisterImsStateCallback(mCallback1);
+        processAllMessages();
+        assertFalse(mImsStateCallbackController.isRegistered(mCallback1));
+    }
+
+    private void createController(int slotCount) throws Exception {
+        if (Looper.myLooper() == null) {
+            Looper.prepare();
+        }
+        makeFakeActiveSubIds(slotCount);
+
+        when(mMmTelFeatureFactory
+                .create(any(), eq(0), any(), mMmTelConnectorListenerSlot0.capture(), any()))
+                .thenReturn(mMmTelFeatureConnectorSlot0);
+        when(mMmTelFeatureFactory
+                .create(any(), eq(1), any(), mMmTelConnectorListenerSlot1.capture(), any()))
+                .thenReturn(mMmTelFeatureConnectorSlot1);
+        when(mRcsFeatureFactory
+                .create(any(), eq(0), mRcsConnectorListenerSlot0.capture(), any(), any()))
+                .thenReturn(mRcsFeatureConnectorSlot0);
+        when(mRcsFeatureFactory
+                .create(any(), eq(1), mRcsConnectorListenerSlot1.capture(), any(), any()))
+                .thenReturn(mRcsFeatureConnectorSlot1);
+
+        mImsStateCallbackController =
+                new ImsStateCallbackController(mPhone, mHandlerThread.getLooper(),
+                        slotCount, mMmTelFeatureFactory, mRcsFeatureFactory, mImsResolver);
+
+        replaceInstance(ImsStateCallbackController.class,
+                "mPhoneFactoryProxy", mImsStateCallbackController, mPhoneFactoryProxy);
+        mImsStateCallbackController.onSubChanged();
+
+        mHandler = mImsStateCallbackController.getHandler();
+        try {
+            mLooper = new TestableLooper(mHandler.getLooper());
+        } catch (Exception e) {
+            logd("Unable to create looper from handler.");
+        }
+
+        verify(mRcsFeatureConnectorSlot0, atLeastOnce()).connect();
+        verify(mMmTelFeatureConnectorSlot0, atLeastOnce()).connect();
+
+        if (slotCount == 1) {
+            verify(mRcsFeatureConnectorSlot1, times(0)).connect();
+            verify(mMmTelFeatureConnectorSlot1, times(0)).connect();
+        } else {
+            verify(mRcsFeatureConnectorSlot1, atLeastOnce()).connect();
+            verify(mMmTelFeatureConnectorSlot1, atLeastOnce()).connect();
+        }
+    }
+
+    private static void replaceInstance(final Class c,
+            final String instanceName, final Object obj, final Object newValue) throws Exception {
+        Field field = c.getDeclaredField(instanceName);
+        field.setAccessible(true);
+        field.set(obj, newValue);
+    }
+
+    private void makeFakeActiveSubIds(int count) {
+        final int[] subIds = new int[count];
+        for (int i = 0; i < count; i++) {
+            subIds[i] = FAKE_SUB_ID_BASE + i;
+        }
+        when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(subIds);
+    }
+
+    private void processAllMessages() {
+        while (!mLooper.getLooper().getQueue().isIdle()) {
+            mLooper.processAllMessages();
+        }
+    }
+
+    private static void logd(String str) {
+        Log.d(TAG, str);
+    }
+}
diff --git a/tests/src/com/android/phone/PhoneUtilsTest.java b/tests/src/com/android/phone/PhoneUtilsTest.java
new file mode 100644
index 0000000..df3a0ac
--- /dev/null
+++ b/tests/src/com/android/phone/PhoneUtilsTest.java
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.when;
+
+import android.content.ComponentName;
+import android.telecom.PhoneAccountHandle;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.internal.telephony.GsmCdmaPhone;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.HashMap;
+
+@RunWith(AndroidJUnit4.class)
+public class PhoneUtilsTest {
+    @Mock
+    private SubscriptionManager mMockSubscriptionManager;
+    @Mock
+    private SubscriptionInfo mMockSubscriptionInfo;
+    @Mock
+    private GsmCdmaPhone mMockPhone;
+
+    private final int mPhoneAccountHandleIdInteger = 123;
+    private final String mPhoneAccountHandleIdString = "123";
+    private static final ComponentName PSTN_CONNECTION_SERVICE_COMPONENT = new ComponentName(
+            "com.android.phone", "com.android.services.telephony.TelephonyConnectionService");
+    private PhoneAccountHandle mPhoneAccountHandleTest = new PhoneAccountHandle(
+            PSTN_CONNECTION_SERVICE_COMPONENT, mPhoneAccountHandleIdString);
+
+    private HashMap<InstanceKey, Object> mOldInstances = new HashMap<InstanceKey, Object>();
+
+    private ArrayList<InstanceKey> mInstanceKeys = new ArrayList<InstanceKey>();
+
+    private static class InstanceKey {
+        public final Class mClass;
+        public final String mInstName;
+        public final Object mObj;
+        InstanceKey(final Class c, final String instName, final Object obj) {
+            mClass = c;
+            mInstName = instName;
+            mObj = obj;
+        }
+
+        @Override
+        public int hashCode() {
+            return (mClass.getName().hashCode() * 31 + mInstName.hashCode()) * 31;
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (obj == null || !(obj instanceof InstanceKey)) {
+                return false;
+            }
+
+            InstanceKey other = (InstanceKey) obj;
+            return (other.mClass == mClass && other.mInstName.equals(mInstName)
+                    && other.mObj == mObj);
+        }
+    }
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        when(mMockSubscriptionManager.getActiveSubscriptionInfo(
+                eq(mPhoneAccountHandleIdInteger))).thenReturn(mMockSubscriptionInfo);
+        when(mMockPhone.getSubId()).thenReturn(mPhoneAccountHandleIdInteger);
+        setSinglePhone();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+    }
+
+    protected synchronized void replaceInstance(final Class c, final String instanceName,
+            final Object obj, final Object newValue)
+            throws Exception {
+        Field field = c.getDeclaredField(instanceName);
+        field.setAccessible(true);
+
+        InstanceKey key = new InstanceKey(c, instanceName, obj);
+        if (!mOldInstances.containsKey(key)) {
+            mOldInstances.put(key, field.get(obj));
+            mInstanceKeys.add(key);
+        }
+        field.set(obj, newValue);
+    }
+
+    private void setSinglePhone() throws Exception {
+        Phone[] mPhones = new Phone[] {mMockPhone};
+        replaceInstance(PhoneFactory.class, "sPhones", null, mPhones);
+    }
+
+    @Test
+    public void testIsPhoneAccountActive() throws Exception {
+        assertTrue(PhoneUtils.isPhoneAccountActive(
+                mMockSubscriptionManager, mPhoneAccountHandleTest));
+    }
+
+    @Test
+    public void testGetPhoneForPhoneAccountHandle() throws Exception {
+        assertEquals(mMockPhone, PhoneUtils.getPhoneForPhoneAccountHandle(
+                mPhoneAccountHandleTest));
+    }
+
+    @Test
+    public void testMakePstnPhoneAccountHandleWithPrefix() throws Exception {
+        PhoneAccountHandle phoneAccountHandleTest = new PhoneAccountHandle(
+                PSTN_CONNECTION_SERVICE_COMPONENT, mPhoneAccountHandleIdString);
+        assertEquals(phoneAccountHandleTest, PhoneUtils.makePstnPhoneAccountHandleWithPrefix(
+                mPhoneAccountHandleIdString, "", false));
+    }
+}
diff --git a/tests/src/com/android/phone/RcsProvisioningMonitorTest.java b/tests/src/com/android/phone/RcsProvisioningMonitorTest.java
index 8873402..57f9f6b 100644
--- a/tests/src/com/android/phone/RcsProvisioningMonitorTest.java
+++ b/tests/src/com/android/phone/RcsProvisioningMonitorTest.java
@@ -152,6 +152,7 @@
     private MockContentResolver mContentResolver = new MockContentResolver();
     private SimInfoContentProvider mProvider;
     private BroadcastReceiver mReceiver;
+    private static final int TEST_SUB_ID = 1;
     @Mock
     private Cursor mCursor;
     @Mock
@@ -853,7 +854,7 @@
         } catch (Exception e) {
             logd("Unable to create looper from handler.");
         }
-        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        mConnectorListener.getValue().connectionReady(mFeatureManager, TEST_SUB_ID);
 
         verify(mFeatureConnector, atLeastOnce()).connect();
     }
diff --git a/tests/src/com/android/phone/ServiceStateProviderTest.java b/tests/src/com/android/phone/ServiceStateProviderTest.java
index 4ace460..4bbde79 100644
--- a/tests/src/com/android/phone/ServiceStateProviderTest.java
+++ b/tests/src/com/android/phone/ServiceStateProviderTest.java
@@ -27,6 +27,7 @@
 import static android.provider.Telephony.ServiceStateTable.getUriForSubscriptionId;
 import static android.telephony.NetworkRegistrationInfo.REGISTRATION_STATE_HOME;
 
+import static com.android.phone.ServiceStateProvider.ENFORCE_LOCATION_PERMISSION_CHECK;
 import static com.android.phone.ServiceStateProvider.NETWORK_ID;
 
 import static org.junit.Assert.assertEquals;
@@ -46,6 +47,7 @@
 
 import android.Manifest;
 import android.app.AppOpsManager;
+import android.compat.testing.PlatformCompatChangeRule;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
@@ -66,10 +68,14 @@
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
+import libcore.junit.util.compat.CoreCompatChangeRule;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TestRule;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
@@ -95,6 +101,9 @@
     @Mock LocationManager mLocationManager;
     @Mock PackageManager mPackageManager;
 
+    @Rule
+    public TestRule compatChangeRule = new PlatformCompatChangeRule();
+
     // Exception used internally to verify if the Resolver#notifyChange has been called.
     private class TestNotifierException extends RuntimeException {
         TestNotifierException() {
@@ -174,6 +183,7 @@
     // TODO(b/191995565): Turn this on when location access can be off
     @Ignore
     @SmallTest
+    @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
     public void testQueryServiceState_withNoSubId_withoutLocation() {
         setLocationPermissions(false);
 
@@ -243,7 +253,19 @@
      * public columns of ServiceStateTable.
      */
     @Test
-    public void query_publicColumns_targetS_noReadPrivilege_getPublicColumns() {
+    @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+    public void
+    query_publicColumns_enforceLocatoinEnabled_targetS_noReadPrivilege_getPublicColumns() {
+        setTargetSdkVersion(Build.VERSION_CODES.S);
+        setCanReadPrivilegedPhoneState(false);
+
+        verifyServiceStateWithPublicColumns(mTestServiceState, null /*projection*/);
+    }
+
+    @Test
+    @CoreCompatChangeRule.DisableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+    public void
+    query_publicColumns_enforceLocationDisabled_targetS_noReadPrivilege_getPublicColumns() {
         setTargetSdkVersion(Build.VERSION_CODES.S);
         setCanReadPrivilegedPhoneState(false);
 
@@ -255,6 +277,7 @@
      * non-public columns should throw IllegalArgumentException.
      */
     @Test
+    @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
     public void query_hideColumn_targetS_noReadPrivilege_throwIllegalArgumentException() {
         setTargetSdkVersion(Build.VERSION_CODES.S);
         setCanReadPrivilegedPhoneState(false);
@@ -267,11 +290,30 @@
     }
 
     /**
-     * Verify that apps target S+ with READ_PRIVILEGED_PHONE_STATE and location permissions should
-     * be able to access all columns.
+     * Verify that with changeId ENFORCE_LOCATION_PERMISSION_CHECK enabled, apps target S+ with
+     * READ_PRIVILEGED_PHONE_STATE and location permissions should be able to access all columns.
      */
     @Test
-    public void query_allColumn_targetS_withReadPrivilegedAndLocation_getAllStateUnredacted() {
+    @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+    public void
+    query_allColumn_enforceLocationEnabled_targetS_withReadPrivilegedAndLocation_getUnredacted() {
+        setTargetSdkVersion(Build.VERSION_CODES.S);
+        setCanReadPrivilegedPhoneState(true);
+        setLocationPermissions(true);
+
+        verifyServiceStateForSubId(
+                getUriForSubscriptionId(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID),
+                mTestServiceState, true /*hasPermission*/);
+    }
+
+    /**
+     * Verify that with changeId ENFORCE_LOCATION_PERMISSION_CHECK disabled, apps target S+ with
+     * READ_PRIVILEGED_PHONE_STATE and location permissions should be able to access all columns.
+     */
+    @Test
+    @CoreCompatChangeRule.DisableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+    public void
+    query_allColumn_enforceLocationDisabled_targetS_withReadPrivilegedAndLocation_getUnredacted() {
         setTargetSdkVersion(Build.VERSION_CODES.S);
         setCanReadPrivilegedPhoneState(true);
         setLocationPermissions(true);
@@ -287,6 +329,7 @@
      */
     // TODO(b/191995565): Turn this on once b/191995565 is integrated
     @Ignore
+    @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
     public void query_locationColumn_targetS_withReadPrivilegeNoLocation_throwSecurityExecption() {
         setTargetSdkVersion(Build.VERSION_CODES.S);
         setCanReadPrivilegedPhoneState(true);
@@ -297,10 +340,12 @@
     }
 
     /**
-     * Verify that apps target R- with location permissions should be able to access all columns.
+     * Verify that when changeId ENFORCE_LOCATION_PERMISSION_CHECK is enabled, apps target R- with
+     * location permissions should be able to access all columns.
      */
     @Test
-    public void query_allColumn_targetR_withLocation_getAllStateUnredacted() {
+    @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+    public void query_allColumn_enforceLocationEnabled_targetR_withLocation_getUnredacted() {
         setTargetSdkVersion(Build.VERSION_CODES.R);
         setLocationPermissions(true);
 
@@ -310,12 +355,28 @@
     }
 
     /**
-     * Verify that apps target R- w/o location permissions should be able to access all columns but
-     * with redacted ServiceState.
+     * Verify that when changeId ENFORCE_LOCATION_PERMISSION_CHECK is disabled, apps target R- with
+     * location permissions should be able to access all columns.
+     */
+    @Test
+    @CoreCompatChangeRule.DisableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+    public void query_allColumn_enforceLocationDisabled_targetR_withLocation_getUnredacted() {
+        setTargetSdkVersion(Build.VERSION_CODES.R);
+        setLocationPermissions(true);
+
+        verifyServiceStateForSubId(
+                getUriForSubscriptionId(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID),
+                mTestServiceState, true /*hasPermission*/);
+    }
+
+    /**
+     * Verify that changeId ENFORCE_LOCATION_PERMISSION_CHECK is enabled, apps target R- w/o
+     * location permissions should be able to access all columns but with redacted ServiceState.
      */
     // TODO(b/191995565): Turn case on when location access can be off
     @Ignore
-    public void query_allColumn_targetR_noLocation_getRedacted() {
+    @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+    public void query_allColumn_enforceLocationEnabled_targetR_noLocation_getRedacted() {
         setTargetSdkVersion(Build.VERSION_CODES.R);
         setLocationPermissions(false);
 
@@ -326,10 +387,27 @@
     }
 
     /**
+     * Verify that changeId ENFORCE_LOCATION_PERMISSION_CHECK is disabled, apps target R- w/o
+     * location permissions should be able to access all columns and with unredacted ServiceState.
+     */
+    // TODO(b/191995565): Turn case on when location access can be off
+    @Ignore
+    @CoreCompatChangeRule.DisableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+    public void query_allColumn_enforceLocationDisabled_targetR_noLocation_getUnredacted() {
+        setTargetSdkVersion(Build.VERSION_CODES.R);
+        setLocationPermissions(false);
+
+        verifyServiceStateForSubId(
+                getUriForSubscriptionId(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID),
+                mTestServiceState, true /*hasPermission*/);
+    }
+
+    /**
      * Verify that when caller with targetSDK S+ has location permission and try to query
      * location non-sensitive info, it should not get blamed.
      */
     @Test
+    @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
     public void testQuery_noLocationBlamed_whenQueryNonLocationInfo_withPermission() {
         setTargetSdkVersion(Build.VERSION_CODES.S);
         setLocationPermissions(true);
@@ -339,6 +417,7 @@
     }
 
     private void verifyServiceStateWithLocationColumns(ServiceState ss) {
+        // NETWORK_ID is a location-sensitive column
         try (Cursor cursor = mContentResolver.query(ServiceStateTable.CONTENT_URI,
                 new String[]{NETWORK_ID}, null, null)) {
             assertNotNull(cursor);
@@ -349,7 +428,6 @@
         try (Cursor cursor = mContentResolver.query(ServiceStateTable.CONTENT_URI, projection, null,
                 null)) {
             assertNotNull(cursor);
-            assertEquals(cursor.getColumnCount(), ServiceStateProvider.PUBLIC_COLUMNS.length);
 
             cursor.moveToFirst();
             assertEquals(ss.getVoiceRegState(),
diff --git a/tests/src/com/android/phone/SimPhonebookProviderTest.java b/tests/src/com/android/phone/SimPhonebookProviderTest.java
index 29a653d..d8518f8 100644
--- a/tests/src/com/android/phone/SimPhonebookProviderTest.java
+++ b/tests/src/com/android/phone/SimPhonebookProviderTest.java
@@ -28,6 +28,7 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
@@ -180,16 +181,16 @@
     public void query_entityFiles_multiSim_returnsCursorWithRowForEachSimEf() {
         setupSimsWithSubscriptionIds(2, 3, 7);
 
-        mIccPhoneBook.setRecordsSize(2, IccConstants.EF_ADN, 10, 25);
-        mIccPhoneBook.setRecordsSize(2, IccConstants.EF_FDN, 5, 20);
-        mIccPhoneBook.setRecordsSize(2, IccConstants.EF_SDN, 15, 20);
-        mIccPhoneBook.setRecordsSize(3, IccConstants.EF_ADN, 100, 30);
+        mIccPhoneBook.setupEfWithSizes(2, IccConstants.EF_ADN, 10, 25);
+        mIccPhoneBook.setupEfWithSizes(2, IccConstants.EF_FDN, 5, 20);
+        mIccPhoneBook.setupEfWithSizes(2, IccConstants.EF_SDN, 15, 20);
+        mIccPhoneBook.setupEfWithSizes(3, IccConstants.EF_ADN, 100, 30);
         // These Will be omitted from results because zero size indicates the EF is not supported.
-        mIccPhoneBook.setRecordsSize(3, IccConstants.EF_FDN, 0, 0);
-        mIccPhoneBook.setRecordsSize(3, IccConstants.EF_SDN, 0, 0);
-        mIccPhoneBook.setRecordsSize(7, IccConstants.EF_ADN, 0, 0);
-        mIccPhoneBook.setRecordsSize(7, IccConstants.EF_FDN, 0, 0);
-        mIccPhoneBook.setRecordsSize(7, IccConstants.EF_SDN, 0, 0);
+        mIccPhoneBook.setupEfWithSizes(3, IccConstants.EF_FDN, 0, 0);
+        mIccPhoneBook.setupEfWithSizes(3, IccConstants.EF_SDN, 0, 0);
+        mIccPhoneBook.setupEfWithSizes(7, IccConstants.EF_ADN, 0, 0);
+        mIccPhoneBook.setupEfWithSizes(7, IccConstants.EF_FDN, 0, 0);
+        mIccPhoneBook.setupEfWithSizes(7, IccConstants.EF_SDN, 0, 0);
 
         String[] projection = {
                 ElementaryFiles.SLOT_INDEX, ElementaryFiles.SUBSCRIPTION_ID,
@@ -211,15 +212,44 @@
     public void query_entityFiles_simWithZeroSizes_returnsEmptyCursor() {
         setupSimsWithSubscriptionIds(1);
 
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 0, 0);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_FDN, 0, 0);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_SDN, 0, 0);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 0, 0);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_FDN, 0, 0);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_SDN, 0, 0);
 
         try (Cursor cursor = mResolver.query(ElementaryFiles.CONTENT_URI, null, null, null)) {
             assertThat(cursor).hasCount(0);
         }
     }
 
+    /**
+     * USIM cards support more than 255 records by having multiple files for one EF type but
+     * IIccPhoneBook.getAdnRecordsSizeForSubscriber returns the size for a single file and so is
+     * inaccurate for such SIMs.
+     *
+     * <p>See b/201385523#comment4 and b/201685690
+     */
+    @Test
+    public void query_entityFiles_adnRecordCountExceedsSize_returnsAdnRecordCountAsMaxRecords() {
+        setupSimsWithSubscriptionIds(1);
+
+        // There are 400 records returned by getAdnRecordsInEfForSubscriber but the count returned
+        // by getAdnRecordsSizeForSubscriber is only 200.
+        AdnRecord[] records = mIccPhoneBook.createEmptyRecords(IccConstants.EF_ADN, 400);
+        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 200, 20);
+        mIccPhoneBook.setRecords(1, IccConstants.EF_ADN, records);
+
+        String[] projection = {
+                ElementaryFiles.SUBSCRIPTION_ID, ElementaryFiles.EF_TYPE,
+                ElementaryFiles.MAX_RECORDS
+        };
+        try (Cursor cursor = mResolver.query(
+                ElementaryFiles.CONTENT_URI, projection, null, null)) {
+            assertThat(cursor).hasCount(1);
+            assertThat(cursor)
+                    .atRow(0).hasRowValues(1, ElementaryFiles.EF_ADN, 400);
+        }
+    }
+
     @Test
     public void query_entityFilesItem_nullProjection_returnsCursorWithCorrectProjection() {
         setupSimsWithSubscriptionIds(1);
@@ -548,7 +578,7 @@
     @Test
     public void query_adnRecords_zeroSizeEf_throwsCorrectException() {
         setupSimsWithSubscriptionIds(1);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 0, 0);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 0, 0);
 
         IllegalArgumentException e = assertThrows(IllegalArgumentException.class,
                 () -> mResolver.query(SimRecords.getContentUri(1, EF_ADN), null, null, null));
@@ -617,9 +647,9 @@
     @Test
     public void query_itemUriEmptyRecord_returnsEmptyCursor() {
         setupSimsWithSubscriptionIds(1);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 30);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_FDN, 1, 30);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_SDN, 1, 30);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 30);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_FDN, 1, 30);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_SDN, 1, 30);
 
         try (Cursor adnItem = mResolver.query(SimRecords.getItemUri(1, ElementaryFiles.EF_ADN, 1),
                 null, null, null);
@@ -637,9 +667,9 @@
     @Test
     public void query_itemUriIndexExceedsMax_returnsEmptyCursor() {
         setupSimsWithSubscriptionIds(1);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 30);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_FDN, 1, 30);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_SDN, 1, 30);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 30);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_FDN, 1, 30);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_SDN, 1, 30);
 
         try (Cursor adnItem = mResolver.query(SimRecords.getItemUri(1, ElementaryFiles.EF_ADN, 2),
                 null, null, null);
@@ -740,7 +770,7 @@
     @Test
     public void insert_efFull_throwsCorrectException() {
         setupSimsWithSubscriptionIds(1);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 30);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 30);
         mIccPhoneBook.addRecord(1, IccConstants.EF_ADN, "Existing", "8005550101");
 
         ContentValues values = new ContentValues();
@@ -842,7 +872,7 @@
     @Test
     public void insert_phoneNumberOmitted_throwsCorrectException() {
         setupSimsWithSubscriptionIds(1);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 25);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 25);
 
         ContentValues values = new ContentValues();
         values.put(SimRecords.NAME, "Name");
@@ -855,7 +885,7 @@
     @Test
     public void insert_nameTooLong_throwsCorrectException() {
         setupSimsWithSubscriptionIds(1);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 25);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 25);
 
         ContentValues values = new ContentValues();
         // Name is limited to 11 characters when the max record size is 25
@@ -878,7 +908,7 @@
     @Test
     public void insert_phoneNumberTooLong_throwsCorrectException() {
         setupSimsWithSubscriptionIds(1);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 25);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 25);
 
         ContentValues values = new ContentValues();
         values.put(SimRecords.NAME, "Name");
@@ -894,7 +924,7 @@
     @Test
     public void insert_numberWithInvalidCharacters_throwsCorrectException() {
         setupSimsWithSubscriptionIds(1);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 32);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 32);
 
         ContentValues values = new ContentValues();
         values.put(SimRecords.NAME, "Name");
@@ -914,7 +944,7 @@
     @Test
     public void insert_unsupportedColumn_throwsCorrectException() {
         setupSimsWithSubscriptionIds(1);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 25);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 25);
 
         ContentValues values = new ContentValues();
         values.put(SimRecords.NAME, "Name");
@@ -1006,7 +1036,7 @@
     @Test
     public void update_indexExceedingMax_returnsZero() {
         setupSimsWithSubscriptionIds(1);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 30);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 30);
 
         ContentValues values = new ContentValues();
         values.put(SimRecords.NAME, "name");
@@ -1045,7 +1075,7 @@
     public void delete_indexExceedingMax_returnsZero() {
         setupSimsWithSubscriptionIds(1);
         mIccPhoneBook.makeAllEfsSupported(1);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 30);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 30);
 
         int result = mResolver.delete(SimRecords.getItemUri(1, ElementaryFiles.EF_ADN, 2), null);
 
@@ -1066,7 +1096,7 @@
     @Test
     public void update_nameOrNumberTooLong_throwsCorrectException() {
         setupSimsWithSubscriptionIds(1);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 25);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 25);
         mIccPhoneBook.addRecord(1, IccConstants.EF_ADN, "Initial", "8005550101");
 
         ContentValues values = new ContentValues();
@@ -1096,7 +1126,7 @@
     @Test
     public void update_numberWithInvalidCharacters_throwsCorrectException() {
         setupSimsWithSubscriptionIds(1);
-        mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 32);
+        mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 32);
         mIccPhoneBook.addRecord(1, IccConstants.EF_ADN, "Initial", "8005550101");
 
         ContentValues values = new ContentValues();
@@ -1189,6 +1219,10 @@
     public void subscriptionsChange_callsNotifyChange() {
         // Clear invocations that happened in setUp
         Mockito.reset(mMockSubscriptionManager);
+        // Stubbing this prevents the spied instance from calling the listener when it is added
+        // which may cause flakiness.
+        doNothing().when(mMockSubscriptionManager)
+                .addOnSubscriptionsChangedListener(any(), any());
         setupSimsWithSubscriptionIds(1);
         mIccPhoneBook.makeAllEfsSupported(1);
         SimPhonebookProvider.ContentNotifier mockNotifier = mock(
@@ -1200,9 +1234,20 @@
                 mResolver, mMockSubscriptionManager, mIccPhoneBook, mockNotifier);
         verify(mMockSubscriptionManager).addOnSubscriptionsChangedListener(
                 any(), listenerCaptor.capture());
+
+        // Fake the initial call that is made by SubscriptionManager when a listener is registered
+        // with addOnSubscriptionsChangedListener
         listenerCaptor.getValue().onSubscriptionsChanged();
+
+        // First subscription change
         setupSimsWithSubscriptionIds(1, 2);
         listenerCaptor.getValue().onSubscriptionsChanged();
+
+        // Second subscription change
+        setupSimsWithSubscriptionIds(1);
+        listenerCaptor.getValue().onSubscriptionsChanged();
+
+        // Listener is called but subscriptions didn't change so this won't notify
         listenerCaptor.getValue().onSubscriptionsChanged();
 
         verify(mockNotifier, times(2)).notifyChange(eq(SimPhonebookContract.AUTHORITY_URI));
@@ -1308,7 +1353,7 @@
         // The key for both maps is the (subscription ID, efid)
         private Map<Pair<Integer, Integer>, AdnRecord[]> mRecords = new HashMap<>();
         // The value is the single record size
-        private Map<Pair<Integer, Integer>, Integer> mRecordSizes = new HashMap<>();
+        private Map<Pair<Integer, Integer>, int[]> mRecordSizes = new HashMap<>();
 
         private int mDefaultSubscriptionId = 101;
 
@@ -1316,7 +1361,7 @@
             // Assume that if records are being added then the test wants it to be a valid
             // elementary file so set sizes as well.
             if (!mRecordSizes.containsKey(key)) {
-                setRecordsSize(key.first, key.second,
+                setupEfWithSizes(key.first, key.second,
                         Math.max(record.getRecId(), DEFAULT_RECORDS_COUNT), DEFAULT_RECORD_SIZE);
             }
             mRecords.get(key)[record.getRecId() - 1] = record;
@@ -1386,18 +1431,33 @@
          * subscription IDs.
          */
         public void makeAllEfsSupported(int subscriptionId) {
-            setRecordsSize(subscriptionId, IccConstants.EF_ADN, DEFAULT_RECORDS_COUNT,
+            setupEfWithSizes(subscriptionId, IccConstants.EF_ADN, DEFAULT_RECORDS_COUNT,
                     DEFAULT_RECORD_SIZE);
-            setRecordsSize(subscriptionId, IccConstants.EF_FDN, DEFAULT_RECORDS_COUNT,
+            setupEfWithSizes(subscriptionId, IccConstants.EF_FDN, DEFAULT_RECORDS_COUNT,
                     DEFAULT_RECORD_SIZE);
-            setRecordsSize(subscriptionId, IccConstants.EF_SDN, DEFAULT_RECORDS_COUNT,
+            setupEfWithSizes(subscriptionId, IccConstants.EF_SDN, DEFAULT_RECORDS_COUNT,
                     DEFAULT_RECORD_SIZE);
         }
 
+        public void setRecords(int subscriptionId, int efid, AdnRecord[] records) {
+            mRecords.put(Pair.create(subscriptionId, efid), records);
+        }
+
         public void setRecordsSize(int subscriptionId, int efid, int maxRecordCount,
                 int maxRecordSize) {
+            setRecordsSize(Pair.create(subscriptionId, efid), maxRecordCount, maxRecordSize);
+        }
+
+        private void setRecordsSize(Pair<Integer, Integer> key, int maxRecordCount,
+                int maxRecordSize) {
+            int[] sizes = { maxRecordSize, maxRecordSize * maxRecordCount, maxRecordCount };
+            mRecordSizes.put(key, sizes);
+        }
+
+        public void setupEfWithSizes(int subscriptionId, int efid, int maxRecordCount,
+                int maxRecordSize) {
             Pair<Integer, Integer> key = Pair.create(subscriptionId, efid);
-            mRecordSizes.put(key, maxRecordSize);
+            setRecordsSize(key, maxRecordCount, maxRecordSize);
             AdnRecord[] records = mRecords.computeIfAbsent(key, unused ->
                     createEmptyRecords(efid, maxRecordCount));
             if (records.length < maxRecordCount) {
@@ -1405,7 +1465,7 @@
             }
         }
 
-        private AdnRecord[] createEmptyRecords(int efid, int count) {
+        AdnRecord[] createEmptyRecords(int efid, int count) {
             AdnRecord[] records = new AdnRecord[count];
             for (int i = 0; i < records.length; i++) {
                 if (records[i] == null) {
@@ -1483,12 +1543,11 @@
         @Override
         public int[] getAdnRecordsSizeForSubscriber(int subId, int efid) {
             Pair<Integer, Integer> key = Pair.create(subId, efid);
-            Integer recordSize = mRecordSizes.get(key);
-            if (recordSize == null) {
+            int[] recordsSize = mRecordSizes.get(key);
+            if (recordsSize == null) {
                 return new int[]{0, 0, 0};
             }
-            int count = mRecords.get(key).length;
-            return new int[]{recordSize, recordSize * count, count};
+            return recordsSize;
         }
 
         @Override
diff --git a/tests/src/com/android/phone/SubscriptionInfoHelperTest.java b/tests/src/com/android/phone/SubscriptionInfoHelperTest.java
new file mode 100644
index 0000000..90f682f
--- /dev/null
+++ b/tests/src/com/android/phone/SubscriptionInfoHelperTest.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import android.content.Intent;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+
+import org.junit.Test;
+
+public class SubscriptionInfoHelperTest {
+    private static final String EXTRA_SUBSCRIPTION_LABEL =
+            "com.android.phone.settings.SubscriptionInfoHelper.SubscriptionLabel";
+
+    /**
+     * Ensures {@link SubscriptionInfoHelper#addExtrasToIntent(Intent, SubscriptionInfo)} can
+     * properly handle a null display name without crashing.
+     */
+    @Test
+    public void testAddExtrasToIntentWithNullDisplayName() {
+        Intent intent = new Intent();
+        SubscriptionInfo info = new SubscriptionInfo(1, // id
+                "90210", // iccId
+                1, // simSlotIndex
+                null, // displayName
+                null, // carrierName
+                SubscriptionManager.NAME_SOURCE_CARRIER_ID, // nameSource
+                0, //iconTint
+                "555-1212", // number
+                0, // roaming
+                null, // icon
+                "401", // mcc
+                "384", // mnc
+                "us", // countryIso
+                false, // isEmbedded
+                null, // nativeAccessRules
+                ""); // cardString
+        SubscriptionInfoHelper.addExtrasToIntent(intent, info);
+        assertNull(intent.getStringExtra(EXTRA_SUBSCRIPTION_LABEL));
+        assertTrue(intent.hasExtra(EXTRA_SUBSCRIPTION_LABEL));
+    }
+}
diff --git a/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java b/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
index 85dba51..8b0ac5c 100644
--- a/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
+++ b/tests/src/com/android/phone/euicc/EuiccUiDispatcherActivityTest.java
@@ -75,6 +75,12 @@
     }
 
     @Test
+    public void testResolveEuiccUiIntent_nullAction() {
+        mIntent = new Intent();
+        assertNull(mActivity.resolveEuiccUiIntent());
+    }
+
+    @Test
     public void testResolveEuiccUiIntent_unsupportedAction() {
         mIntent = new Intent("fake.action");
         assertNull(mActivity.resolveEuiccUiIntent());
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
index 4ce94ca..efa906e 100644
--- a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
@@ -61,8 +61,8 @@
 import com.android.internal.telephony.CallStateException;
 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.data.PhoneSwitcher;
 import com.android.internal.telephony.emergency.EmergencyNumberTracker;
 import com.android.internal.telephony.gsm.SuppServiceNotification;
 
diff --git a/tests/src/com/android/services/telephony/TelephonyManagerTest.java b/tests/src/com/android/services/telephony/TelephonyManagerTest.java
index 2202bc7..cf1ae8f 100644
--- a/tests/src/com/android/services/telephony/TelephonyManagerTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyManagerTest.java
@@ -16,14 +16,19 @@
 
 package com.android.services.telephony;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.anyString;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.PropertyInvalidatedCache;
+import android.content.ComponentName;
 import android.content.Context;
+import android.telecom.PhoneAccountHandle;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.telephony.emergency.EmergencyNumber;
@@ -48,6 +53,12 @@
 public class TelephonyManagerTest {
     private static final String PKG_NAME = "Unittest.TelephonyManagerTest";
     private static final String TAG = "TelephonyManagerTest";
+    private static final PhoneAccountHandle TEST_HANDLE1 = new PhoneAccountHandle(
+            new ComponentName("com.test", "Test"), "1");
+    private static final int TEST_SUBID_1 = 1;
+    private static final PhoneAccountHandle TEST_HANDLE2 = new PhoneAccountHandle(
+            new ComponentName("com.test", "Test"), "2");
+    private static final int TEST_SUBID_2 = 2;
 
     private ITelephony mMockITelephony;
     private SubscriptionManager mMockSubscriptionManager;
@@ -180,4 +191,31 @@
                     EmergencyNumber.EMERGENCY_SERVICE_CATEGORY_POLICE));
         }
     }
+
+    /**
+     * Verifies that {@link TelephonyManager#getSubscriptionId(PhoneAccountHandle)} is properly
+     * using a property invalidated cache.
+     * @throws Exception
+     */
+    @Test
+    public void testGetSubscriptionIdCache() throws Exception {
+        PropertyInvalidatedCache.invalidateCache(TelephonyManager.CACHE_KEY_PHONE_ACCOUNT_TO_SUBID);
+        when(mMockITelephony.getSubIdForPhoneAccountHandle(eq(TEST_HANDLE1),
+                anyString(), anyString())).thenReturn(TEST_SUBID_1);
+        when(mMockITelephony.getSubIdForPhoneAccountHandle(eq(TEST_HANDLE2),
+                anyString(), anyString())).thenReturn(TEST_SUBID_2);
+
+        // Ensure queries for phone account handles come back consistently.
+        assertEquals(TEST_SUBID_1, mTelephonyManager.getSubscriptionId(TEST_HANDLE1));
+        assertEquals(TEST_SUBID_1, mTelephonyManager.getSubscriptionId(TEST_HANDLE1));
+        assertEquals(TEST_SUBID_2, mTelephonyManager.getSubscriptionId(TEST_HANDLE2));
+        assertEquals(TEST_SUBID_2, mTelephonyManager.getSubscriptionId(TEST_HANDLE2));
+
+        // We should have only had a single call to the underlying AIDL, however.  The cache should
+        // have protected us from calling this multiple times.
+        verify(mMockITelephony, times(1)).getSubIdForPhoneAccountHandle(eq(TEST_HANDLE1),
+                anyString(), anyString());
+        verify(mMockITelephony, times(1)).getSubIdForPhoneAccountHandle(eq(TEST_HANDLE2),
+                anyString(), anyString());
+    }
 }
diff --git a/tests/src/com/android/services/telephony/rcs/DelegateStateTrackerTest.java b/tests/src/com/android/services/telephony/rcs/DelegateStateTrackerTest.java
index 25b5339..ffbe5ce 100644
--- a/tests/src/com/android/services/telephony/rcs/DelegateStateTrackerTest.java
+++ b/tests/src/com/android/services/telephony/rcs/DelegateStateTrackerTest.java
@@ -16,6 +16,8 @@
 
 package com.android.services.telephony.rcs;
 
+import static com.android.services.telephony.rcs.DelegateStateTracker.SUPPORT_REGISTERING_DELEGATE_STATE;
+
 import static org.junit.Assert.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
@@ -24,7 +26,9 @@
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
+import android.app.compat.CompatChanges;
 import android.net.InetAddresses;
+import android.os.Binder;
 import android.telephony.ims.DelegateRegistrationState;
 import android.telephony.ims.FeatureTagState;
 import android.telephony.ims.SipDelegateConfiguration;
@@ -33,8 +37,8 @@
 import android.telephony.ims.aidl.ISipDelegateConnectionStateCallback;
 import android.util.ArraySet;
 
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
 
 import com.android.TelephonyTestBase;
 import com.android.internal.telephony.metrics.RcsStats;
@@ -77,8 +81,8 @@
     @SmallTest
     @Test
     public void testDelegateCreated() throws Exception {
-        DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID, mAppCallback,
-                mSipDelegate, mRcsStats);
+        DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID,
+                Binder.getCallingUid(), mAppCallback, mSipDelegate, mRcsStats);
         Set<FeatureTagState> deniedTags = getMmTelDeniedTag();
         Set<String> supportedTags = getSupportedTags();
         stateTracker.sipDelegateConnected(supportedTags, deniedTags);
@@ -114,8 +118,8 @@
     @SmallTest
     @Test
     public void testDelegateDestroyed() throws Exception {
-        DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID, mAppCallback,
-                mSipDelegate, mRcsStats);
+        DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID,
+                Binder.getCallingUid(), mAppCallback, mSipDelegate, mRcsStats);
         Set<FeatureTagState> deniedTags = getMmTelDeniedTag();
         Set<String> supportedTags = getSupportedTags();
         stateTracker.sipDelegateConnected(supportedTags, deniedTags);
@@ -139,39 +143,75 @@
     @SmallTest
     @Test
     public void testDelegateChangingRegisteredTagsOverride() throws Exception {
-        DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID, mAppCallback,
-                mSipDelegate, mRcsStats);
+        DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID,
+                Binder.getCallingUid(), mAppCallback, mSipDelegate, mRcsStats);
         Set<FeatureTagState> deniedTags = getMmTelDeniedTag();
         Set<String> supportedTags = getSupportedTags();
+        Set<String> registeringTags = getRegisteringTag();
         stateTracker.sipDelegateConnected(supportedTags, deniedTags);
+
         // SipDelegate created
         verify(mAppCallback).onCreated(mSipDelegate);
+
         DelegateRegistrationState regState = new DelegateRegistrationState.Builder()
                 .addRegisteredFeatureTag(ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG)
+                .addRegisteringFeatureTags(registeringTags)
                 .addDeregisteringFeatureTag(ImsSignallingUtils.FILE_TRANSFER_HTTP_TAG,
                         DelegateRegistrationState.DEREGISTERING_REASON_PROVISIONING_CHANGE)
                 .addDeregisteredFeatureTag(ImsSignallingUtils.GROUP_CHAT_TAG,
                         DelegateRegistrationState.DEREGISTERED_REASON_NOT_PROVISIONED)
                 .build();
+
         stateTracker.onRegistrationStateChanged(regState);
         // Simulate underlying SipDelegate switch
         stateTracker.sipDelegateChanging(
                 DelegateRegistrationState.DEREGISTERING_REASON_FEATURE_TAGS_CHANGING);
         // onFeatureTagStatusChanged should now be called with registered features overridden with
         // DEREGISTERING_REASON_FEATURE_TAGS_CHANGING
-        DelegateRegistrationState overrideRegState = new DelegateRegistrationState.Builder()
+        DelegateRegistrationState.Builder overrideBuilder =
+                new DelegateRegistrationState.Builder()
                 .addDeregisteringFeatureTag(ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG,
                         DelegateRegistrationState.DEREGISTERING_REASON_FEATURE_TAGS_CHANGING)
                 // Already Deregistering/Deregistered tags should not be overridden.
                 .addDeregisteringFeatureTag(ImsSignallingUtils.FILE_TRANSFER_HTTP_TAG,
                         DelegateRegistrationState.DEREGISTERING_REASON_PROVISIONING_CHANGE)
                 .addDeregisteredFeatureTag(ImsSignallingUtils.GROUP_CHAT_TAG,
-                        DelegateRegistrationState.DEREGISTERED_REASON_NOT_PROVISIONED)
-                .build();
+                        DelegateRegistrationState.DEREGISTERED_REASON_NOT_PROVISIONED);
+        if (CompatChanges.isChangeEnabled(SUPPORT_REGISTERING_DELEGATE_STATE,
+                Binder.getCallingUid())) {
+            for (String tag : registeringTags) {
+                overrideBuilder.addDeregisteringFeatureTag(tag,
+                        DelegateRegistrationState.DEREGISTERING_REASON_FEATURE_TAGS_CHANGING);
+            }
+        } else {
+            for (String tag : registeringTags) {
+                overrideBuilder.addDeregisteredFeatureTag(tag,
+                        DelegateRegistrationState.DEREGISTERED_REASON_NOT_REGISTERED);
+            }
+        }
+
+        DelegateRegistrationState overrideRegState = overrideBuilder.build();
+
         // new underlying SipDelegate created
         stateTracker.sipDelegateConnected(supportedTags, deniedTags);
         stateTracker.onRegistrationStateChanged(regState);
 
+        DelegateRegistrationState.Builder builder = new DelegateRegistrationState.Builder()
+                .addRegisteredFeatureTag(ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG)
+                .addDeregisteringFeatureTag(ImsSignallingUtils.FILE_TRANSFER_HTTP_TAG,
+                        DelegateRegistrationState.DEREGISTERING_REASON_PROVISIONING_CHANGE)
+                .addDeregisteredFeatureTag(ImsSignallingUtils.GROUP_CHAT_TAG,
+                        DelegateRegistrationState.DEREGISTERED_REASON_NOT_PROVISIONED);
+        if (CompatChanges.isChangeEnabled(SUPPORT_REGISTERING_DELEGATE_STATE,
+                Binder.getCallingUid())) {
+            builder.addRegisteringFeatureTags(registeringTags);
+        } else {
+            for (String tag : registeringTags) {
+                builder.addDeregisteredFeatureTag(tag,
+                        DelegateRegistrationState.DEREGISTERED_REASON_NOT_REGISTERED);
+            }
+        }
+        DelegateRegistrationState regStateResult = builder.build();
         // Verify registration state through the process:
         ArgumentCaptor<DelegateRegistrationState> regCaptor =
                 ArgumentCaptor.forClass(DelegateRegistrationState.class);
@@ -179,11 +219,11 @@
                 regCaptor.capture(), eq(new ArrayList<>(deniedTags)));
         List<DelegateRegistrationState> testStates = regCaptor.getAllValues();
         // feature tags should first be registered
-        assertEquals(regState, testStates.get(0));
+        assertEquals(regStateResult, testStates.get(0));
         // registered feature tags should have moved to deregistering
         assertEquals(overrideRegState, testStates.get(1));
         // and then moved back to registered after underlying FT change done.
-        assertEquals(regState, testStates.get(2));
+        assertEquals(regStateResult, testStates.get(2));
 
         //onCreate should only have been called once and onDestroy should have never been called.
         verify(mAppCallback).onCreated(mSipDelegate);
@@ -191,14 +231,108 @@
     }
 
     /**
+     * When registration states are changed in a case that an application doesn't support the new
+     * 'registering' state the 'registering' state will be moved to the 'registered' state
+     * as the old behavior.
+     *
+     * This method tests the case where the application doesn't support consuming the
+     * DEREGISTERING_REASON_LOSING_PDN reason.
+     */
+    @Test
+    public void testDelegateChangingRegisteredTagsRegisteringDisable() throws Exception {
+        DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID,
+                Binder.getCallingUid(), mAppCallback, mSipDelegate, mRcsStats);
+        stateTracker.setCompatChangesFactory((changeId, uid) -> false);
+        Set<FeatureTagState> deniedTags = getMmTelDeniedTag();
+        Set<String> supportedTags = getSupportedTags();
+        Set<String> registeringTags = getRegisteringTag();
+        stateTracker.sipDelegateConnected(supportedTags, deniedTags);
+        // SipDelegate created
+        verify(mAppCallback).onCreated(mSipDelegate);
+        DelegateRegistrationState regState = new DelegateRegistrationState.Builder()
+                .addRegisteredFeatureTag(ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG)
+                .addRegisteringFeatureTags(registeringTags)
+                .addDeregisteringFeatureTag(ImsSignallingUtils.FILE_TRANSFER_HTTP_TAG,
+                        DelegateRegistrationState.DEREGISTERING_REASON_LOSING_PDN)
+                .addDeregisteredFeatureTag(ImsSignallingUtils.GROUP_CHAT_TAG,
+                        DelegateRegistrationState.DEREGISTERED_REASON_NOT_PROVISIONED)
+                .build();
+        stateTracker.onRegistrationStateChanged(regState);
+
+        DelegateRegistrationState.Builder builder = new DelegateRegistrationState.Builder()
+                .addRegisteredFeatureTag(ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG)
+                .addDeregisteringFeatureTag(ImsSignallingUtils.FILE_TRANSFER_HTTP_TAG,
+                        DelegateRegistrationState.DEREGISTERING_REASON_PDN_CHANGE)
+                .addDeregisteredFeatureTag(ImsSignallingUtils.GROUP_CHAT_TAG,
+                        DelegateRegistrationState.DEREGISTERED_REASON_NOT_PROVISIONED);
+        for (String tag : registeringTags) {
+            builder.addDeregisteredFeatureTag(tag,
+                    DelegateRegistrationState.DEREGISTERED_REASON_NOT_REGISTERED);
+        }
+        DelegateRegistrationState overrideRegState = builder.build();
+
+
+        // Verify registration state through the process:
+        ArgumentCaptor<DelegateRegistrationState> regCaptor =
+                ArgumentCaptor.forClass(DelegateRegistrationState.class);
+        verify(mAppCallback, times(1)).onFeatureTagStatusChanged(
+                regCaptor.capture(), eq(new ArrayList<>(deniedTags)));
+        List<DelegateRegistrationState> testStates = regCaptor.getAllValues();
+
+        assertEquals(overrideRegState, testStates.get(0));
+        verify(mAppCallback).onCreated(mSipDelegate);
+    }
+
+    /**
+     * When registration states are changed in a case that an application supports the new
+     * 'registering' state the state will be kept.
+     *
+     *  This method tests the case where the application supports consuming the
+     *  DEREGISTERING_REASON_LOSING_PDN reason.
+     */
+    @Test
+    public void testDelegateChangingRegisteredTagsRegisteringEnable() throws Exception {
+        DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID,
+                Binder.getCallingUid(), mAppCallback, mSipDelegate, mRcsStats);
+        stateTracker.setCompatChangesFactory((changeId, uid) -> true);
+        Set<FeatureTagState> deniedTags = getMmTelDeniedTag();
+        Set<String> supportedTags = getSupportedTags();
+        Set<String> registeringTags = getRegisteringTag();
+        stateTracker.sipDelegateConnected(supportedTags, deniedTags);
+        // SipDelegate created
+        verify(mAppCallback).onCreated(mSipDelegate);
+
+        DelegateRegistrationState regState = new DelegateRegistrationState.Builder()
+                .addRegisteredFeatureTag(ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG)
+                .addRegisteringFeatureTags(registeringTags)
+                .addDeregisteringFeatureTag(ImsSignallingUtils.FILE_TRANSFER_HTTP_TAG,
+                        DelegateRegistrationState.DEREGISTERING_REASON_LOSING_PDN)
+                .addDeregisteredFeatureTag(ImsSignallingUtils.GROUP_CHAT_TAG,
+                        DelegateRegistrationState.DEREGISTERED_REASON_NOT_PROVISIONED)
+                .build();
+        stateTracker.onRegistrationStateChanged(regState);
+
+        // Verify registration state through the process:
+        ArgumentCaptor<DelegateRegistrationState> regCaptor =
+                ArgumentCaptor.forClass(DelegateRegistrationState.class);
+        verify(mAppCallback, times(1)).onFeatureTagStatusChanged(
+                regCaptor.capture(), eq(new ArrayList<>(deniedTags)));
+        List<DelegateRegistrationState> testStates = regCaptor.getAllValues();
+
+        assertEquals(regState, testStates.get(0));
+        verify(mAppCallback).onCreated(mSipDelegate);
+    }
+
+
+    /**
      * Test the case that when the underlying Denied tags change in the SipDelegate, the change is
      * properly shown in the registration update event.
      */
     @SmallTest
     @Test
     public void testDelegateChangingDeniedTagsChanged() throws Exception {
-        DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID, mAppCallback,
-                mSipDelegate, mRcsStats);
+        DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID,
+                Binder.getCallingUid(), mAppCallback, mSipDelegate, mRcsStats);
         Set<FeatureTagState> deniedTags = getMmTelDeniedTag();
         Set<String> supportedTags = getSupportedTags();
         stateTracker.sipDelegateConnected(supportedTags, deniedTags);
@@ -255,8 +389,8 @@
     @SmallTest
     @Test
     public void testDelegateChangingDeniedTagsChangingToDestroy() throws Exception {
-        DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID, mAppCallback,
-                mSipDelegate, mRcsStats);
+        DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID,
+                Binder.getCallingUid(), mAppCallback, mSipDelegate, mRcsStats);
         Set<FeatureTagState> deniedTags = getMmTelDeniedTag();
         Set<String> supportedTags = getSupportedTags();
         stateTracker.sipDelegateConnected(supportedTags, deniedTags);
@@ -316,4 +450,11 @@
         supportedTags.add(ImsSignallingUtils.GROUP_CHAT_TAG);
         return supportedTags;
     }
+
+    private Set<String> getRegisteringTag() {
+        Set<String> registeringTags = new ArraySet<>();
+        registeringTags.add(ImsSignallingUtils.CHATBOT_COMMUNICATION_USING_SESSION_TAG);
+        return registeringTags;
+
+    }
 }
diff --git a/tests/src/com/android/services/telephony/rcs/ImsSignallingUtils.java b/tests/src/com/android/services/telephony/rcs/ImsSignallingUtils.java
index d607f6d..0e725e0 100644
--- a/tests/src/com/android/services/telephony/rcs/ImsSignallingUtils.java
+++ b/tests/src/com/android/services/telephony/rcs/ImsSignallingUtils.java
@@ -28,4 +28,6 @@
             "+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gppservice.ims.icsi.oma.cpm.session\"";
     public static final String FILE_TRANSFER_HTTP_TAG =
             "+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gppapplication.ims.iari.rcs.fthttp\"";
+    public static final String CHATBOT_COMMUNICATION_USING_SESSION_TAG =
+            "+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.chatbot\"";
 }
diff --git a/tests/src/com/android/services/telephony/rcs/RcsFeatureControllerTest.java b/tests/src/com/android/services/telephony/rcs/RcsFeatureControllerTest.java
index da614fc..2a30e1a 100644
--- a/tests/src/com/android/services/telephony/rcs/RcsFeatureControllerTest.java
+++ b/tests/src/com/android/services/telephony/rcs/RcsFeatureControllerTest.java
@@ -96,7 +96,7 @@
         controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
         verify(mMockFeature).onRcsDisconnected();
         // Connect the RcsFeatureManager
-        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        mConnectorListener.getValue().connectionReady(mFeatureManager, TEST_SUB_ID);
 
         verify(mFeatureManager).updateCapabilities(TEST_SUB_ID);
         verify(mFeatureManager).registerImsRegistrationCallback(any());
@@ -114,7 +114,7 @@
     public void testFeatureManagerConnectedAddRemoveFeature() throws Exception {
         RcsFeatureController controller = createFeatureController();
         // Connect the RcsFeatureManager
-        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        mConnectorListener.getValue().connectionReady(mFeatureManager, TEST_SUB_ID);
         controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
 
         verify(mMockFeature).onRcsConnected(mFeatureManager);
@@ -131,7 +131,7 @@
         IImsRegistrationCallback regCb = mock(IImsRegistrationCallback.class);
         IImsCapabilityCallback capCb = mock(IImsCapabilityCallback.class);
         // Connect the RcsFeatureManager
-        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        mConnectorListener.getValue().connectionReady(mFeatureManager, TEST_SUB_ID);
 
         try {
             controller.registerImsRegistrationCallback(TEST_SUB_ID, regCb);
@@ -165,7 +165,7 @@
     public void testFeatureManagerConnectedHelper() throws Exception {
         RcsFeatureController controller = createFeatureController();
         // Connect the RcsFeatureManager
-        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        mConnectorListener.getValue().connectionReady(mFeatureManager, TEST_SUB_ID);
         ArgumentCaptor<IImsRegistrationCallback> captor =
                 ArgumentCaptor.forClass(IImsRegistrationCallback.class);
         verify(mFeatureManager).registerImsRegistrationCallback(captor.capture());
@@ -257,7 +257,7 @@
     public void testCarrierConfigChanged() throws Exception {
         RcsFeatureController controller = createFeatureController();
         // Connect the RcsFeatureManager
-        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        mConnectorListener.getValue().connectionReady(mFeatureManager, TEST_SUB_ID);
         verify(mFeatureManager).updateCapabilities(TEST_SUB_ID);
         controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
 
@@ -272,7 +272,7 @@
     public void testChangeSubId() throws Exception {
         RcsFeatureController controller = createFeatureController();
         // Connect the RcsFeatureManager
-        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        mConnectorListener.getValue().connectionReady(mFeatureManager, TEST_SUB_ID);
         verify(mFeatureManager).updateCapabilities(TEST_SUB_ID);
         controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
 
@@ -286,7 +286,7 @@
     public void testDestroy() throws Exception {
         RcsFeatureController controller = createFeatureController();
         // Connect the RcsFeatureManager
-        mConnectorListener.getValue().connectionReady(mFeatureManager);
+        mConnectorListener.getValue().connectionReady(mFeatureManager, TEST_SUB_ID);
         controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
         controller.destroy();
 
diff --git a/tests/src/com/android/services/telephony/rcs/SipDelegateControllerTest.java b/tests/src/com/android/services/telephony/rcs/SipDelegateControllerTest.java
index 78f6894..575b81e 100644
--- a/tests/src/com/android/services/telephony/rcs/SipDelegateControllerTest.java
+++ b/tests/src/com/android/services/telephony/rcs/SipDelegateControllerTest.java
@@ -30,6 +30,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.os.Binder;
 import android.telephony.ims.DelegateRegistrationState;
 import android.telephony.ims.DelegateRequest;
 import android.telephony.ims.FeatureTagState;
@@ -291,8 +292,8 @@
 
     private SipDelegateController getTestDelegateController(DelegateRequest request,
             Set<FeatureTagState> deniedSet) {
-        return new SipDelegateController(TEST_SUB_ID, request, "", mExecutorService,
-                mMockMessageTracker, mMockDelegateStateTracker,
+        return new SipDelegateController(TEST_SUB_ID, Binder.getCallingUid(), request, "",
+                mExecutorService, mMockMessageTracker, mMockDelegateStateTracker,
                 (a, b, deniedFeatureSet, d, e) ->  {
                     assertEquals(deniedSet, deniedFeatureSet);
                     return mMockBinderConnection;
diff --git a/tests/src/com/android/services/telephony/rcs/SipTransportControllerTest.java b/tests/src/com/android/services/telephony/rcs/SipTransportControllerTest.java
index 0f139f8..42a45f4 100644
--- a/tests/src/com/android/services/telephony/rcs/SipTransportControllerTest.java
+++ b/tests/src/com/android/services/telephony/rcs/SipTransportControllerTest.java
@@ -78,6 +78,7 @@
 @RunWith(AndroidJUnit4.class)
 public class SipTransportControllerTest extends TelephonyTestBase {
     private static final int TEST_SUB_ID = 1;
+    private static final int TEST_UID = 1001;
     private static final String TEST_PACKAGE_NAME = "com.test_pkg";
     private static final String TEST_PACKAGE_NAME_2 = "com.test_pkg2";
     private static final int TIMEOUT_MS = 200;
@@ -132,13 +133,13 @@
         mSmsPackageName.add(TEST_PACKAGE_NAME);
         doAnswer(invocation -> {
             Integer subId = invocation.getArgument(0);
-            String packageName = invocation.getArgument(2);
-            DelegateRequest request = invocation.getArgument(1);
+            String packageName = invocation.getArgument(3);
+            DelegateRequest request = invocation.getArgument(2);
             SipDelegateController c = getMockDelegateController(subId, packageName, request);
             assertNotNull("create called with no corresponding controller set up", c);
             return c;
-        }).when(mMockDelegateControllerFactory).create(anyInt(), any(), anyString(), any(), any(),
-                any(), any(), any());
+        }).when(mMockDelegateControllerFactory).create(anyInt(), anyInt(), any(), anyString(),
+                any(), any(), any(), any(), any());
         setFeatureAllowedConfig(TEST_SUB_ID, new String[]{ImsSignallingUtils.MMTEL_TAG,
                 ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG, ImsSignallingUtils.GROUP_CHAT_TAG,
                 ImsSignallingUtils.FILE_TRANSFER_HTTP_TAG});
@@ -254,7 +255,7 @@
         doReturn(mSipTransport).when(mRcsManager).getSipTransport();
         controller.onRcsConnected(mRcsManager);
         try {
-            controller.createSipDelegate(TEST_SUB_ID + 1,
+            controller.createSipDelegate(TEST_SUB_ID + 1, TEST_UID,
                     new DelegateRequest(Collections.emptySet()), TEST_PACKAGE_NAME,
                     mock(ISipDelegateConnectionStateCallback.class),
                     mock(ISipDelegateMessageCallback.class));
@@ -271,7 +272,7 @@
         doReturn(null).when(mRcsManager).getSipTransport();
         controller.onRcsConnected(mRcsManager);
         try {
-            controller.createSipDelegate(TEST_SUB_ID,
+            controller.createSipDelegate(TEST_SUB_ID, TEST_UID,
                     new DelegateRequest(Collections.emptySet()), TEST_PACKAGE_NAME,
                     mock(ISipDelegateConnectionStateCallback.class),
                     mock(ISipDelegateMessageCallback.class));
@@ -289,7 +290,7 @@
                 .when(mRcsManager).getSipTransport();
         // No RCS connected message
         try {
-            controller.createSipDelegate(TEST_SUB_ID,
+            controller.createSipDelegate(TEST_SUB_ID, TEST_UID,
                     new DelegateRequest(Collections.emptySet()), TEST_PACKAGE_NAME,
                     mock(ISipDelegateConnectionStateCallback.class),
                     mock(ISipDelegateMessageCallback.class));
@@ -812,7 +813,7 @@
         CompletableFuture<Boolean> pendingChange = setChangeSupportedFeatureTagsFuture(
                 delegateControllerContainer.delegateController, allowedTags, deniedTags);
         try {
-            controller.createSipDelegate(delegateControllerContainer.subId,
+            controller.createSipDelegate(delegateControllerContainer.subId, TEST_UID,
                     delegateControllerContainer.delegateRequest,
                     delegateControllerContainer.packageName,
                     delegateControllerContainer.mockDelegateConnectionCallback,
diff --git a/tests/src/com/android/services/telephony/rcs/UceControllerManagerTest.java b/tests/src/com/android/services/telephony/rcs/UceControllerManagerTest.java
index 8d719fd..17decb9 100644
--- a/tests/src/com/android/services/telephony/rcs/UceControllerManagerTest.java
+++ b/tests/src/com/android/services/telephony/rcs/UceControllerManagerTest.java
@@ -19,6 +19,7 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
@@ -199,9 +200,9 @@
         doReturn(false).when(mUceController).isUnavailable();
         uceCtrlManager.onRcsConnected(mRcsFeatureManager);
 
-        uceCtrlManager.getUcePublishState();
+        uceCtrlManager.getUcePublishState(true);
 
-        verify(mUceController).getUcePublishState();
+        verify(mUceController).getUcePublishState(eq(true));
     }
 
     @Test
@@ -211,7 +212,7 @@
         uceCtrlManager.onRcsDisconnected();
 
         try {
-            uceCtrlManager.getUcePublishState();
+            uceCtrlManager.getUcePublishState(true);
             fail();
         } catch (ImsException e) {
             assertEquals(ImsException.CODE_ERROR_SERVICE_UNAVAILABLE, e.getCode());
@@ -225,9 +226,9 @@
         UceControllerManager uceCtrlManager = getUceControllerManager();
         IRcsUcePublishStateCallback callback = Mockito.mock(IRcsUcePublishStateCallback.class);
 
-        uceCtrlManager.registerPublishStateCallback(callback);
+        uceCtrlManager.registerPublishStateCallback(callback, true);
 
-        verify(mUceController).registerPublishStateCallback(callback);
+        verify(mUceController).registerPublishStateCallback(callback, true);
     }
 
     @Test
@@ -238,7 +239,7 @@
 
         try {
             IRcsUcePublishStateCallback callback = Mockito.mock(IRcsUcePublishStateCallback.class);
-            uceCtrlManager.registerPublishStateCallback(callback);
+            uceCtrlManager.registerPublishStateCallback(callback, true);
             fail();
         } catch (ImsException e) {
             assertEquals(ImsException.CODE_ERROR_SERVICE_UNAVAILABLE, e.getCode());
