Merge rvc-release RP1A.201105.002 to stage-aosp-master - DO NOT MERGE
Merged-In: I6d7f94fdb0a7d123d7c9ef80276cb6f9efa81977
Change-Id: Iac3738fbb125e0ccad26c8aa9e69d46122e29f96
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index e8f9c3e..2b2df11 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -82,6 +82,7 @@
<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.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" />
@@ -94,6 +95,9 @@
<!-- 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" />
+
<!-- Allows granting runtime permissions to telephony related components. -->
<uses-permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS" />
@@ -209,11 +213,13 @@
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
<uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE" />
<uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" />
- <!-- Allows us to whitelist receivers of the
+ <!-- Allows us to allow list receivers of the
ACTION_SIM_SLOT_STATUS_CHANGED broadcast to start activities
from the background. -->
<uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
<uses-permission android:name="android.permission.NETWORK_STATS_PROVIDER" />
+ <uses-permission android:name="android.permission.HANDLE_CAR_MODE_CHANGES"/>
+ <uses-permission android:name="android.permission.MANAGE_SUBSCRIPTION_PLANS"/>
<application android:name="PhoneApp"
android:persistent="true"
@@ -237,6 +243,7 @@
android:label="@string/emergencyDialerIconLabel"
android:theme="@style/EmergencyDialerTheme"
android:screenOrientation="portrait"
+ android:exported="true"
android:resizeableActivity="false">
<intent-filter>
<action android:name="com.android.phone.EmergencyDialer.DIAL" />
@@ -264,6 +271,7 @@
android:label="@string/simContacts_title"
android:theme="@style/SimImportTheme"
android:screenOrientation="portrait"
+ android:exported="true"
android:icon="@mipmap/ic_launcher_contacts">
<intent-filter>
@@ -275,6 +283,7 @@
<activity android:name="com.android.phone.settings.fdn.FdnList"
android:label="@string/fdnListLabel"
+ android:exported="true"
android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
@@ -289,6 +298,7 @@
<activity android:name="GsmUmtsCallOptions"
android:label="@string/gsm_umts_options"
+ android:exported="true"
android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -297,6 +307,7 @@
<activity android:name="CdmaCallOptions"
android:label="@string/cdma_options"
+ android:exported="true"
android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -306,6 +317,17 @@
<activity android:name="GsmUmtsCallForwardOptions"
android:label="@string/labelCF"
android:configChanges="orientation|screenSize|keyboardHidden"
+ android:exported="true"
+ android:theme="@style/DialerSettingsLight">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ </intent-filter>
+ </activity>
+
+ <activity android:name="CdmaCallForwardOptions"
+ android:label="@string/labelCF"
+ android:configChanges="orientation|screenSize|keyboardHidden"
+ android:exported="true"
android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -315,6 +337,7 @@
<activity android:name="GsmUmtsCallBarringOptions"
android:label="@string/labelCallBarring"
android:configChanges="orientation|screenSize|keyboardHidden"
+ android:exported="true"
android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -324,6 +347,7 @@
<activity android:name="GsmUmtsAdditionalCallOptions"
android:label="@string/labelGSMMore"
android:configChanges="orientation|screenSize|keyboardHidden"
+ android:exported="true"
android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -333,6 +357,7 @@
<!-- fdn setting -->
<activity android:name="com.android.phone.settings.fdn.FdnSetting"
android:label="@string/fdn"
+ android:exported="true"
android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -342,6 +367,7 @@
<!-- SIM PIN setting -->
<activity android:name="EnableIccPinScreen"
android:label="@string/enable_pin"
+ android:exported="true"
android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -351,6 +377,7 @@
<activity android:name="ChangeIccPinScreen"
android:label="@string/change_pin"
+ android:exported="true"
android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -378,6 +405,7 @@
<activity android:name="CallFeaturesSetting"
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" />
@@ -390,6 +418,7 @@
<!-- Activation service that trigger OTASP sim provisioning -->
<service android:name=".otasp.OtaspActivationService" android:launchMode="singleInstance"
androidprv:systemUserOnly="true"
+ android:exported="true"
android:permission="android.permission.MODIFY_PHONE_STATE">
<intent-filter>
<action android:name="android.service.simActivation.SimActivationService" />
@@ -406,6 +435,7 @@
<!-- "Accessibility" settings UI. Referenced by Dialer application. -->
<activity android:name="com.android.phone.settings.AccessibilitySettingsActivity"
android:label="@string/accessibility_settings_activity_title"
+ android:exported="true"
android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -420,6 +450,7 @@
<!-- service to dump telephony information -->
<service android:name="com.android.phone.TelephonyDebugService"
+ android:exported="true"
android:permission="android.permission.DUMP">
<intent-filter>
<action android:name="com.android.phone.TelephonyDebugService" />
@@ -429,6 +460,7 @@
<!-- Handler for EuiccManager's public-facing intents. -->
<activity android:name=".euicc.EuiccUiDispatcherActivity"
android:theme="@android:style/Theme.NoDisplay"
+ android:exported="true"
android:permission="android.permission.MODIFY_PHONE_STATE">
<!-- Max out priority to ensure nobody else will handle these intents. -->
<intent-filter android:priority="1000">
@@ -449,6 +481,7 @@
EuiccController#RESOLUTION_ACTIVITY_CLASS_NAME
-->
<activity android:name=".euicc.EuiccResolutionUiDispatcherActivity"
+ android:exported="true"
android:permission="android.permission.CALL_PRIVILEGED">
<!-- Max out priority to ensure nobody else will handle these intents. -->
<intent-filter android:priority="1000">
@@ -464,6 +497,7 @@
-->
<activity android:name=".euicc.EuiccPrivilegedActionUiDispatcherActivity"
android:theme="@android:style/Theme.NoDisplay"
+ android:exported="true"
android:permission="android.permission.CALL_PRIVILEGED">
<!-- Max out priority to ensure nobody else will handle these intents. -->
<intent-filter android:priority="1000">
@@ -483,6 +517,7 @@
whitelisted by the underlying eUICC service implementation (i.e. the LPA).
-->
<activity android:name=".euicc.EuiccPublicActionUiDispatcherActivity"
+ android:exported="true"
android:theme="@android:style/Theme.NoDisplay">
<!-- Max out priority to ensure nobody else will handle these intents. -->
<intent-filter android:priority="1000">
@@ -496,6 +531,7 @@
android:excludeFromRecents="true"
android:label="@string/ecm_exit_dialog"
android:launchMode="singleTop"
+ android:exported="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
<intent-filter>
<action android:name="com.android.phone.action.ACTION_SHOW_ECM_EXIT_DIALOG" />
@@ -508,13 +544,15 @@
<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">
+ <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>
@@ -522,6 +560,7 @@
<activity android:name="com.android.services.telephony.sip.SipPhoneAccountSettingsActivity"
android:theme="@android:style/Theme.NoDisplay"
+ android:exported="true"
android:excludeFromRecents="true">
<intent-filter>
<action android:name="android.telecom.action.CONFIGURE_PHONE_ACCOUNT" />
@@ -535,6 +574,7 @@
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" />
@@ -547,7 +587,8 @@
android:uiOptions="splitActionBarWhenNarrow">
</activity>
- <service android:name="com.android.services.telephony.sip.components.TelephonySipService">
+ <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>
@@ -564,6 +605,7 @@
<activity android:name="com.android.phone.settings.PhoneAccountSettingsActivity"
android:label="@string/phone_accounts"
+ android:exported="true"
android:theme="@style/DialerSettingsLight">
<intent-filter>
<action android:name="android.telecom.action.CHANGE_PHONE_ACCOUNTS" />
@@ -575,6 +617,7 @@
android:label="@string/voicemail"
android:configChanges="orientation|screenSize|keyboardHidden|screenLayout"
android:screenOrientation="portrait"
+ android:exported="true"
android:theme="@style/DialerSettingsLight">
<intent-filter >
<!-- DO NOT RENAME. There are existing apps which use this string. -->
@@ -592,6 +635,7 @@
android:singleUser="true"
android:name="com.android.services.telephony.TelephonyConnectionService"
android:label="@string/pstn_connection_service_label"
+ android:exported="true"
android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE" >
<intent-filter>
<action android:name="android.telecom.ConnectionService" />
@@ -634,12 +678,14 @@
android:name="com.android.phone.vvm.RemoteVvmTaskManager"
android:exported="false"/>
<service android:name="com.android.internal.telephony.CellularNetworkService"
+ android:exported="true"
android:permission="android.permission.BIND_TELEPHONY_NETWORK_SERVICE" >
<intent-filter>
<action android:name="android.telephony.NetworkService" />
</intent-filter>
</service>
<service android:name="com.android.internal.telephony.dataconnection.CellularDataService"
+ android:exported="true"
android:permission="android.permission.BIND_TELEPHONY_DATA_SERVICE" >
<intent-filter>
<action android:name="android.telephony.data.DataService" />
@@ -649,6 +695,7 @@
<activity
android:name=".settings.RadioInfo"
android:label="@string/phone_info_label"
+ android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -658,6 +705,7 @@
<activity android:name=".settings.BandMode"
android:label="@string/band_mode_title"
+ android:exported="true"
android:theme="@style/Theme.AppCompat.DayNight">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
diff --git a/MODULE_LICENSE_APACHE2 b/MODULE_LICENSE_APACHE2
deleted file mode 100644
index e69de29..0000000
--- a/MODULE_LICENSE_APACHE2
+++ /dev/null
diff --git a/TEST_MAPPING b/TEST_MAPPING
index e75dcb0..75b9d49 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -7,6 +7,9 @@
"exclude-annotation": "androidx.test.filters.FlakyTest"
}
]
+ },
+ {
+ "name": "CarrierAppIntegrationTestCases"
}
]
}
diff --git a/ecc/input/OWNERS b/ecc/input/OWNERS
new file mode 100644
index 0000000..d9ecbb7
--- /dev/null
+++ b/ecc/input/OWNERS
@@ -0,0 +1,5 @@
+set noparent
+
+djkrause@google.com
+satk@google.com
+somakala@google.com
\ No newline at end of file
diff --git a/ecc/output/OWNERS b/ecc/output/OWNERS
new file mode 100644
index 0000000..d9ecbb7
--- /dev/null
+++ b/ecc/output/OWNERS
@@ -0,0 +1,5 @@
+set noparent
+
+djkrause@google.com
+satk@google.com
+somakala@google.com
\ No newline at end of file
diff --git a/res/layout/radio_info.xml b/res/layout/radio_info.xml
index 40c2e53..72627a3 100644
--- a/res/layout/radio_info.xml
+++ b/res/layout/radio_info.xml
@@ -122,6 +122,37 @@
<TextView android:id="@+id/ul_kbps" style="@style/info_value" />
</LinearLayout>
+
+ <!-- EN-DC Available -->
+ <LinearLayout style="@style/RadioInfo_entry_layout" android:orientation="horizontal">
+ <TextView android:id="@+id/endc_available_label" android:text="@string/radio_info_endc_available" style="@style/info_label" />
+ <TextView android:id="@+id/endc_available" style="@style/info_value" />
+ </LinearLayout>
+
+ <!-- DCNR Restricted -->
+ <LinearLayout style="@style/RadioInfo_entry_layout" android:orientation="horizontal">
+ <TextView android:id="@+id/dcnr_restricted_label" android:text="@string/radio_info_dcnr_restricted" style="@style/info_label" />
+ <TextView android:id="@+id/dcnr_restricted" style="@style/info_value" />
+ </LinearLayout>
+
+ <!-- NR Available -->
+ <LinearLayout style="@style/RadioInfo_entry_layout" android:orientation="horizontal">
+ <TextView android:id="@+id/nr_available_label" android:text="@string/radio_info_nr_available" style="@style/info_label" />
+ <TextView android:id="@+id/nr_available" style="@style/info_value" />
+ </LinearLayout>
+
+ <!-- NR State -->
+ <LinearLayout style="@style/RadioInfo_entry_layout" android:orientation="horizontal">
+ <TextView android:id="@+id/nr_state_label" android:text="@string/radio_info_nr_state" style="@style/info_label" />
+ <TextView android:id="@+id/nr_state" style="@style/info_value" />
+ </LinearLayout>
+
+ <!-- NR Frequency -->
+ <LinearLayout style="@style/RadioInfo_entry_layout" android:orientation="horizontal">
+ <TextView android:id="@+id/nr_frequency_label" android:text="@string/radio_info_nr_frequency" style="@style/info_label" />
+ <TextView android:id="@+id/nr_frequency" style="@style/info_value" />
+ </LinearLayout>
+
<!-- Physical Channel Config -->
<LinearLayout style="@style/RadioInfo_entry_layout">
<TextView android:text="@string/radio_info_phy_chan_config" style="@style/info_label" />
@@ -303,11 +334,6 @@
android:background="?android:attr/listDivider" />
<!-- CellInfoListRate Selection -->
- <!-- Location -->
- <LinearLayout style="@style/RadioInfo_entry_layout">
- <TextView android:text="@string/radio_info_signal_location_label" style="@style/info_label" />
- <TextView android:id="@+id/location" style="@style/info_value" />
- </LinearLayout>
<TextView
android:layout_width="match_parent"
diff --git a/res/layout/sim_ndp.xml b/res/layout/sim_ndp.xml
index 5f03d7b..e16f99a 100644
--- a/res/layout/sim_ndp.xml
+++ b/res/layout/sim_ndp.xml
@@ -35,6 +35,13 @@
android:layout_height="wrap_content"
android:text="@string/label_ndp"/>
+ <TextView
+ android:id="@+id/perso_phoneid_text"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/label_phoneid"/>
+
<EditText android:id="@+id/pin_entry"
android:inputType="textPassword"
android:imeOptions="actionDone"
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 5260467..cb0ec8b 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Stemboodskapinstellings kan slegs deur die primêre gebruiker gewysig word."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Jou SIM-kaart is oopgesluit. Jou foon sluit tans oop…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM-netwerk ontsluit PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM gesluit vir operateur"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Ontsluit"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Maak toe"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Versoek tans netwerkontsluiting…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Stuur aan na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Af"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Jou diensverskaffer ondersteun nie die deaktivering van oproepaanstuur wanneer jou foon onbereikbaar is nie."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Jou diensverskaffer ondersteun nie oproepaanstuur nie."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Skakel Oproep Wat Wag aan?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Jy sal tydens \'n oproep in kennis gestel word van inkomende oproepe"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Skakel aan"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Kanselleer"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA-Oproep Wat Wag onder IMS is Aan"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA-Oproep Wat Wag onder IMS is Af"</string>
<string name="updating_title" msgid="6130548922615719689">"Belinstellings"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Oproepinstellings kan net deur die administrateur verander word."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Instellings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Sub-ID van verstekdata-SIM:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Aflaaibandwydte (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Oplaaibandwydte (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Selligginginligting (opgeskort):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fisieke LTE-kanaalopstelling:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Herlaaikoers van selinligting:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alle selmetingsinligting:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Stel"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index d402b04..a2ebdf5 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"የድምፅ መልዕክት ቅንብሮች መለወጥ የሚችሉት በቀዳሚ ተጠቃሚው ብቻ ነው።"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"የSIM ካርድዎ አልታገደም። ስልክዎ በመከፈት ላይነው..."</string>
<string name="label_ndp" msgid="7617392683877410341">"የSIM አውታረመረብ መክፈቻ ፒን"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM ለከዋኙ ተቆልፏል"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"ክፈት"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"አሰናብት"</string>
<string name="requesting_unlock" msgid="930512210309437741">"አውታረመረብ ለማስከፈት በመጠየቅ ላይ..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"ወደ <xliff:g id="PHONENUMBER">{0}</xliff:g>በማስተላለፍ ላይ"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"ጠፍቷል"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"ስልክህ በማይደረስበት ጊዜ የድምጽ ተያያዥ ሞደምህ የጥሪ-ማስተላለፍን አይደግፍም።"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"አገልግሎት አቅራቢዎ ጥሪ ማስተላለፍን አይደግፍም።"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"ጥሪ መጠበቂያ ይብራ?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"በጥሪ ጊዜ፣ ስለ ገቢ ጥሪዎች እንዲያውቁት ይደረጋል"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"አብራ"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"ይቅር"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"በIMS ስር ያለው የCDMA ጥሪ መጠበቂያ በርቷል"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"በIMS ስር ያለው የCDMA ጥሪ መጠበቂያ ጠፍቷል"</string>
<string name="updating_title" msgid="6130548922615719689">"የጥሪ ቅንብሮች"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"የጥሪ ቅንብሮች በአስተዳዳሪ ተጠቃሚው ብቻ ነው ሊለወጡ የሚችሉት።"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"ቅንብሮች (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"የነባሪ ውሂብ ሲም SubId:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL መተላለፊያ ይዘት (ኪቢ/ሴ)፡"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"የUL መተላለፊያ ይዘት (ኪቢ/ሴ)፡"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"የሕዋስ የአካባቢ መረጃ (የተቋረጠ)፦"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"የLTE አካላዊ ሰርጥ ውቅረት:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"የሕዋስ መረጃ እድሳት ፍጥነት፡"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ሁሉም የሕዋስ መለኪያ መረጃ፡"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR ድግግሞሽ፦"</string>
<string name="band_mode_title" msgid="7988822920724576842">"የሬዲዮ ባንድ ሁነታን ያቀናጁ"</string>
<string name="band_mode_loading" msgid="795923726636735967">"የባንድ ዝርዝርን በመጫን ላይ…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"አዋቅር"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 0a60c04..cce064f 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"يمكن تعديل إعدادات البريد الصوتي عن طريق المستخدم الأساسي فقط."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"تم إلغاء حظر شريحة SIM. جارٍ فتح قفل الهاتف..."</string>
<string name="label_ndp" msgid="7617392683877410341">"رمز PIN لإلغاء تأمين شبكة SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"شريحة SIM مقيدَّة إلى مشغّل الشبكة"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"فتح قفل"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"استبعاد"</string>
<string name="requesting_unlock" msgid="930512210309437741">"جارٍ طلب فتح قفل الشبكة..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"إعادة التوجيه إلى <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"غير مفعّل"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"لا يتيح مشغل شبكة الجوال إيقاف اعادة توجيه المكالمة عند عدم التمكن من الوصول إلى هاتفك."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"لا يتيح مشغّل شبكة الجوّال ميزة إعادة توجيه المكالمات."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"هل تريد تفعيل ميزة انتظار المكالمات؟"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"خلال إحدى المكالمات، سيتم إخطارك بشأن المكالمات الواردة."</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"تفعيل"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"إلغاء"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"تفعيل ميزة انتظار مكالمات CDMA في ظل IMS"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"إيقاف ميزة انتظار مكالمات CDMA في ظل IMS"</string>
<string name="updating_title" msgid="6130548922615719689">"إعدادات الاتصال"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"لا يمكن تغيير إعدادات المكالمات إلا بواسطة المستخدم الإداري."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"الإعدادات (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -471,7 +479,7 @@
<string name="simContacts_emptyLoading" msgid="4989040293858675483">"جارٍ القراءة من شريحة SIM..."</string>
<string name="simContacts_empty" msgid="1135632055473689521">"ليس هناك جهات اتصال على شريحة SIM."</string>
<string name="simContacts_title" msgid="2714029230160136647">"حدد جهات اتصال لاستيرادها"</string>
- <string name="simContacts_airplaneMode" msgid="4654884030631503808">"عليك إيقاف وضع الطائرة لاستيراد جهات الاتصال من شريحة SIM."</string>
+ <string name="simContacts_airplaneMode" msgid="4654884030631503808">"عليك إيقاف وضع الطيران لاستيراد جهات الاتصال من شريحة SIM."</string>
<string name="enable_pin" msgid="967674051730845376">"تفعيل/إيقاف رمز PIN لبطاقة SIM"</string>
<string name="change_pin" msgid="3657869530942905790">"تغيير رمز PIN لبطاقة SIM"</string>
<string name="enter_pin_text" msgid="3182311451978663356">"رمز PIN لبطاقة SIM:"</string>
@@ -484,7 +492,7 @@
<string name="disable_sim_pin" msgid="3112303905548613752">"محو رقم التعريف الشخصي لبطاقة SIM"</string>
<string name="enable_sim_pin" msgid="445461050748318980">"تعيين رقم التعريف الشخصي لبطاقة SIM"</string>
<string name="enable_in_progress" msgid="4135305985717272592">"جارٍ تعيين رقم التعريف الشخصي…"</string>
- <string name="enable_pin_ok" msgid="2877428038280804256">"تم تعيين رقم التعريف الشخصي"</string>
+ <string name="enable_pin_ok" msgid="2877428038280804256">"تم ضبط رقم التعريف الشخصي"</string>
<string name="disable_pin_ok" msgid="888505244389647754">"تم محو رقم التعريف الشخصي"</string>
<string name="pin_failed" msgid="4527347792881939652">"رقم التعريف الشخصي غير صحيح"</string>
<string name="pin_changed" msgid="7291153750090452808">"تم تحديث رقم التعريف الشخصي"</string>
@@ -522,9 +530,9 @@
<string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"رقم البريد الصوتي غير معروف"</string>
<string name="notification_network_selection_title" msgid="255595526707809121">"لا خدمة"</string>
<string name="notification_network_selection_text" msgid="553288408722427659">"الشبكة المحدّدة (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) غير مُتاحة"</string>
- <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"شغَّل شبكة الجوال، ثم أوقف تفعيل وضع الطائرة أو أوقف تفعيل وضع توفير شحن البطارية لإجراء مكالمة."</string>
- <string name="incall_error_power_off" product="default" msgid="8131672264311208673">"عليك إيقاف وضع الطائرة لإجراء مكالمة."</string>
- <string name="incall_error_power_off_wfc" msgid="9125661184694727052">"عليك إيقاف وضع الطائرة أو الاتصال بشبكة لاسلكية لإجراء مكالمة."</string>
+ <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"شغَّل شبكة الجوال، ثم أوقف تفعيل وضع الطيران أو أوقف تفعيل وضع توفير شحن البطارية لإجراء مكالمة."</string>
+ <string name="incall_error_power_off" product="default" msgid="8131672264311208673">"عليك إيقاف وضع الطيران لإجراء مكالمة."</string>
+ <string name="incall_error_power_off_wfc" msgid="9125661184694727052">"عليك إيقاف وضع الطيران أو الاتصال بشبكة لاسلكية لإجراء مكالمة."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"ينبغي الخروج من وضع معاودة الاتصال بالطوارئ لإجراء مكالمة غير طارئة."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"غير مسجل على الشبكة."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"شبكة الجوال غير متاحة."</string>
@@ -552,7 +560,7 @@
<string name="emergency_call_shortcut_hint" msgid="1290485125107779500">"انقر مجددًا للاتصال بالرقم <xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>"</string>
<string name="emergency_enable_radio_dialog_message" msgid="1695305158151408629">"جارٍ تفعيل اللاسلكي..."</string>
<string name="emergency_enable_radio_dialog_retry" msgid="4329131876852608587">"لا تتوفر خدمة. جارٍ إعادة المحاولة…"</string>
- <string name="radio_off_during_emergency_call" msgid="8011154134040481609">"لا يمكن دخول وضع الطائرة أثناء إجراء مكالمة طوارئ."</string>
+ <string name="radio_off_during_emergency_call" msgid="8011154134040481609">"لا يمكن دخول وضع الطيران أثناء إجراء مكالمة طوارئ."</string>
<string name="dial_emergency_error" msgid="825822413209026039">"يتعذر الاتصال. لا يعد <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> رقم طوارئ."</string>
<string name="dial_emergency_empty_error" msgid="2785803395047793634">"يتعذر الاتصال. يمكنك طلب رقم طوارئ."</string>
<string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"مكالمة الطوارئ غير متوفرة"</string>
@@ -657,7 +665,7 @@
</plurals>
<string name="voicemail_provider" msgid="4158806657253745294">"الخدمة"</string>
<string name="voicemail_settings" msgid="4451045613238972776">"الإعداد"</string>
- <string name="voicemail_number_not_set" msgid="8831561283386938155">"<لم يتم التعيين>"</string>
+ <string name="voicemail_number_not_set" msgid="8831561283386938155">"<لم يتم الضبط>"</string>
<string name="other_settings" msgid="8895088007393598447">"اعدادات المكالمات الاخرى"</string>
<string name="calling_via_template" msgid="1791323450703751750">"الاتصال عبر <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
<string name="contactPhoto" msgid="7885089213135154834">"صورة جهة الاتصال"</string>
@@ -719,7 +727,7 @@
<string name="mobile_data_activate_button" msgid="1139792516354374612">"إضافة بيانات"</string>
<string name="mobile_data_activate_cancel_button" msgid="3530174817572005860">"إلغاء"</string>
<string name="clh_card_title_call_ended_txt" msgid="5977978317527299698">"تم إنهاء الاتصال"</string>
- <string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"تفعيل وضع الطائرة"</string>
+ <string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"تفعيل وضع الطيران"</string>
<string name="clh_callFailed_simError_txt" msgid="5128538525762326413">"تعذر الوصول إلى شريحة SIM"</string>
<string name="clh_incall_error_out_of_service_txt" msgid="2736010617446749869">"شبكة الجوّال غير متوفرة"</string>
<string name="clh_callFailed_unassigned_number_txt" msgid="141967660286695682">"حدثت مشكلة في رقم الهاتف الذي تحاول الاتصال به. رمز الخطأ 1."</string>
@@ -879,7 +887,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"المعرّف الفرعي لشريحة SIM التلقائية للبيانات:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"معدّل نقل بيانات DL (كيلوبت في الثانية):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"معدّل نقل بيانات UL (كيلوبت في الثانية):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"معلومات الموقع الخلوية (تم الإيقاف):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"ضبط قناة LTE Physical:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"معدّل إعادة تحميل المعلومات الخلوية:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"جميع معلومات القياس الخلوية:"</string>
@@ -910,6 +917,11 @@
<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_nr_frequency" msgid="1201156032796584128">"تردد NR:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"تحديد وضع النطاق اللاسلكي"</string>
<string name="band_mode_loading" msgid="795923726636735967">"جارٍ تحميل قائمة النطاقات…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"ضبط"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 873030b..6c653bd 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"ভইচমেইল ছেটিংসমূহ কেৱল মুখ্য ব্যৱহাৰকাৰীয়ে হে সংশোধন কৰিব পাৰে।"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"আপোনাৰ ছিম কাৰ্ডখন অৱৰোধৰ পৰা আঁতৰোৱা হ’ল। আপোনাৰ ফ\'নটো আনলক কৰি থকা হৈছে…"</string>
<string name="label_ndp" msgid="7617392683877410341">"ছিম নেটৱৰ্ক আনলক পিন"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"অপাৰেটৰৰ বাবে ছিম লক কৰা হৈছে"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"আনলক"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"অগ্ৰাহ্য কৰক"</string>
<string name="requesting_unlock" msgid="930512210309437741">"নেটৱৰ্ক আনলক কৰিবলৈ অনুৰোধ কৰি থকা হৈছে…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g>লৈ ফৰৱাৰ্ড কৰা হৈছে"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"অফ"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"আপোনাৰ অপাৰেটৰে আপোনাৰ ফ\'নটো সংযোগ সীমাৰ পৰা বাহিৰত থাকোতে কল ফৰৱাৰ্ডিং অক্ষম কৰাৰ সুবিধা নিদিয়ে।"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"আপোনাৰ বাহকে কল ফৰৱাৰ্ডিং সমৰ্থন নকৰে।"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"কল অপেক্ষাৰত সুবিধাটো অন কৰিবনে?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"এটা কল চলি থাকোঁতে আপোনাক অন্তৰ্গামী কলসমূহৰ বিষয়ে জনোৱা হ\'ব"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"অন কৰক"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"বাতিল কৰক"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMSত CDMA কল অপেক্ষাৰত সুবিধাটো অন আছে"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMSত CDMA কল অপেক্ষাৰত সুবিধাটো অফ আছে"</string>
<string name="updating_title" msgid="6130548922615719689">"কল ছেটিংসমূহ"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"কেৱল প্ৰশাসকে কল ছেটিংসমূহ সলনি কৰিব পাৰে।"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"ছেটিংসমূহ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"ডিফ’ল্ট ডেটা ছিমৰ ছাবআইডি:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL বেণ্ডৱিথ (কেবিপিএছ):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL বেণ্ডৱিথ (কেবিপিএছ):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"চেল অৱস্থানৰ তথ্য (অনুমোদিত নহয়):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ফিজিকেল চেনেলৰ কনফিগাৰেশ্বন:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"চেল তথ্য ৰিফ্ৰেশ্বৰ হাৰ:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"সকলো চেল পৰিমাপৰ তথ্য:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR ফ্ৰিকুৱেন্সী:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"ৰেডিঅ’ৰ বেণ্ড ম’ড ছেট কৰক"</string>
<string name="band_mode_loading" msgid="795923726636735967">"বেণ্ড সূচীখন ল’ড কৰি থকা হৈছে…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"ছেট কৰক"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 86bb6bc..c5bbc87 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Səsli E-məktub Ayarları yalnız Əsas İstifadəçi tərəfindən dəyişdirilə bilər."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM kartınızın kilidi açıldı. Telefonunuzun da kilidi açılır…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM şəbəkəni kiliddən çıxaran PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SİM operator üçün kilidlənib"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Kilidi aç"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Kənarlaşdır"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Şəbəkə kilidinin açılması tələbi göndərilir…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> nömrəsinə yönləndirilir"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Deaktiv"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Sizin mobil daşıyıcı telefon əlçatmaz olduğu zaman zəng yönləndirməni deaktiv etməyi dəstəkləmir."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Operatorunuz zəngin yönləndirilməsini dəstəkləmir."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Zəng gözlətmə aktiv edilsin?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Zəng zamanı gələn zənglər haqqında bildiriş alacaqsınız"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Aktiv edin"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Ləğv edin"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS ilə CDMA zəng gözlətməsi aktivdir"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS ilə CDMA zəng gözlətməsi deaktivdir"</string>
<string name="updating_title" msgid="6130548922615719689">"Zəng ayarları"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Zəng parametrləri yalnız admin olan istifadəçi tərəfindən dəyişdirilə bilər."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Ayarlar ( <xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g> )"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Defolt data SIM üçün alt Id:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL Buraxılışı (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL Buraxılışı (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Xananın məkan məlumatı (ləğv edilib):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE Fiziki Kanal Konfiqurasiyası:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobil məlumatın yenilənmə göstəricisi:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Operatorun bütün mobil ölçü məlumatı:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Ayarlayın"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 3b7ab40..4fe3501 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Samo primarni korisnik može da menja podešavanja govorne pošte."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Vaša SIM kartica je odblokirana. Telefon se otključava..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN za otključavanje mreže na SIM kartici"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM kartica je zaključana za operatera"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Otključaj"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Odbaci"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Traženje otključavanja mreže"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Prosleđuje se na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Isključeno"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Mobilni operater ne podržava onemogućavanje preusmeravanja poziva kada je telefon nedostupan."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Vaš mobilni operater ne podržava preusmeravanje poziva."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Želite da uključite stavljanje poziva na čekanje?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Tokom poziva ćete dobijati obaveštenja o dolaznim pozivima"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Uključi"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Otkaži"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Stavljanje CDMA poziva na čekanje u IMS-u je uključeno"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Stavljanje CDMA poziva na čekanje u IMS-u je isključeno"</string>
<string name="updating_title" msgid="6130548922615719689">"Podešavanja poziva"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Samo korisniku sa administratorskim pravima je dozvoljeno da menja podešavanja poziva."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Podešavanja (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -870,7 +878,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubID podrazumevanog SIM-a za podatke:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL propusni opseg (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL propusni opseg (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacije o lokaciji predajnika (zastarelo):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracija LTE fizičkog kanala:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Učestalost osvežavanja informacija o predajniku:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Sve informacije o merenju za predajnik:"</string>
@@ -901,6 +908,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Podesi"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 6952f90..a419870 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Налады галасавой пошты можа мяняць толькі першасны карыстальнік."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Ваша SIM-карта была разблакаваная. Ваш тэлефон разблакоўваецца..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN-код разблакавання сеткі SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Можна выкарыстоўваць толькі SIM-карту аператара"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Разблакаваць"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Адхіліць"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Запыт разблакавання сеткі..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Пераадрасацыя на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Выключаны"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Ваш аператар не падтрымлівае адключэнне пераадрасацыi выклікаў, калі тэлефон недаступны."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Ваш аператар не падтрымлівае пераадрасацыю выкліку."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Уключыць чаканне выкліку?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Вы будзеце атрымліваць апавяшчэнні аб уваходных выкліках падчас бягучых размоў"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Уключыць"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Скасаваць"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Чаканне выкліку па тэхналогіі CDMA (IMS) уключана"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Чаканне выкліку па тэхналогіі CDMA (IMS) выключана"</string>
<string name="updating_title" msgid="6130548922615719689">"Налады выклікаў"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Налады выклікаў можа мяняць толькі адміністратар."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Налады (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -442,7 +450,7 @@
<string name="sum_fdn_manage_list" msgid="3311397063233992907">"Кіраванне спісам тэлефонных нумароў"</string>
<string name="voice_privacy" msgid="7346935172372181951">"Палiтыка прыватнасцi Voice"</string>
<string name="voice_privacy_summary" msgid="3556460926168473346">"Уключыць пашыраны рэжым прыватнасці"</string>
- <string name="tty_mode_option_title" msgid="3843817710032641703">"Рэжым тэлетайпа"</string>
+ <string name="tty_mode_option_title" msgid="3843817710032641703">"Рэжым TTY"</string>
<string name="tty_mode_option_summary" msgid="4770510287236494371">"Задаць рэжым TTY"</string>
<string name="auto_retry_mode_title" msgid="2985801935424422340">"Аўтаматычны паўтор"</string>
<string name="auto_retry_mode_summary" msgid="2863919925349511402">"Уключыць рэжым аўтаматычнага паўтору"</string>
@@ -586,10 +594,10 @@
<string name="rtt_mode_more_information" msgid="587500128658756318">"Функцыя RTT дапамагае абанентам з парушэннямі слыху і маўлення.<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>Даведацца больш</a>\n <br><br> - RTT-выклікі захоўваюцца ў выглядзе расшыфроўкі паведамленняў\n <br> - Функцыя RTT недаступная для відэавыклікаў"</string>
<string name="no_rtt_when_roaming" msgid="5268008247378355389">"Заўвага. Функцыя RTT недаступная ў роўмінгу."</string>
<string-array name="tty_mode_entries">
- <item msgid="3238070884803849303">"Тэлетайп выключаны"</item>
- <item msgid="1449091874731375214">"Поўнафункцыянальны тэлетайп"</item>
- <item msgid="1044179293199519425">"Тэлетайп HCO"</item>
- <item msgid="2131559553795606483">"Тэлетайп VCO"</item>
+ <item msgid="3238070884803849303">"TTY выключаны"</item>
+ <item msgid="1449091874731375214">"Поўнафункцыянальны TTY"</item>
+ <item msgid="1044179293199519425">"TTY з магчымасцю чуць суразмоўніка"</item>
+ <item msgid="2131559553795606483">"TTY з магчымасцю перадачы голасу"</item>
</string-array>
<string name="dtmf_tones_title" msgid="7874845461117175236">"Сігналы DTMF"</string>
<string name="dtmf_tones_summary" msgid="2294822239899471201">"Задаць даўжыню тонаў DTMF"</string>
@@ -617,7 +625,7 @@
<string name="ota_unsuccessful" msgid="8531037653803955754">"Ваш тэлефон не актываваны. \nМагчыма, вам спатрэбіцца знайсці вобласць з лепшым пакрыццём (каля акна ці на вуліцы). \n\nПаўтарыце спробу ці звярнiцеся ў цэнтр абслугоўвання кліентаў, каб атрымаць дадатковую інфармацыю."</string>
<string name="ota_spc_failure" msgid="904092035241370080">"ПАМЫЛКІ ПЕРАВЫШЭННЯ SPC"</string>
<string name="ota_call_end" msgid="8657746378290737034">"Назад"</string>
- <string name="ota_try_again" msgid="6914781945599998550">"Паспрабаваць яшчэ раз"</string>
+ <string name="ota_try_again" msgid="6914781945599998550">"Паўтарыць спробу"</string>
<string name="ota_next" msgid="2041016619313475914">"Далей"</string>
<string name="ecm_exit_dialog" msgid="4200691880721429078">"EcmExitDialog"</string>
<string name="phone_entered_ecm_text" msgid="8431238297843035842">"У рэжыме экстранных зваротных выклікаў"</string>
@@ -873,7 +881,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubID стандартнай SIM-карты для перадачы даных:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Прапускная здольнасць канала спампоўвання (кбіт/с):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Прапускная здольнасць канала запампоўвання (кбіт/с):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Інфармацыя пра месцазнаходжанне сотавай ячэйкі (састарэлая):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Канфігурацыя фізічнага канала LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Частата абнаўлення даных сотавай сеткі:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Усе паказчыкі сотавай сеткі:"</string>
@@ -904,6 +911,11 @@
<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_nr_frequency" msgid="1201156032796584128">"Частата NR:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"Задаць рэжым радыёдыяпазону"</string>
<string name="band_mode_loading" msgid="795923726636735967">"Загружаецца спіс дыяпазонаў…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"Задаць"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 324ae82..4f69827 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Само основният потребител може да променя настройките на гласовата поща."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM картата ви е отблокирана. Телефонът ви се отключва…"</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN за отключване на SIM мрежа"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM картата е заключена към оператора"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Отключване"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Отхвърляне"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Изпраща се заявка за отключване на мрежата..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Пренасочва се към <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Изкл."</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Операторът ви не поддържа деактивиране на пренасочването на обаждания, когато няма връзка с телефона."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Операторът ви не поддържа пренасочване на обаждания."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Да се включат ли изчакващите обаждания?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Ще получавате известие за входящи обаждания по време на обаждане"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Включване"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Отказ"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Изчакващите обаждания за CDMA с IMS са включени"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Изчакващите обаждания за CDMA с IMS са изключени"</string>
<string name="updating_title" msgid="6130548922615719689">"Настройки за обаждане"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Само администраторът може да променя настройките за обаждане."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Настройки (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Идентификационен подномер на SIM картата за данни по подразбиране:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Пропускателна способност при изтегляне (кб/сек):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Пропускателна способност при качване (кб/сек):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Информация за местоположението на клетката (оттеглено):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфигурация на физическия канал на LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Честота на опресняване на информацията за клетките:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Цялата измервателна информация за клетките:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"Честота за NR:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"Задаване на режима за радиодиапазона"</string>
<string name="band_mode_loading" msgid="795923726636735967">"Списъкът с диапазони се зарежда…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"Задаване"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 0fb9e35..893d8a8 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"ভয়েসমেল সেটিংস কেবলমাত্র প্রাথমিক ব্যবহারকারী দ্বারা পরিবর্তন করা যাবে।"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"আপনার সিম কার্ডকে অবরোধ মুক্ত করা হয়েছে৷ আপনার ফোন আনলক করা হচ্ছে..."</string>
<string name="label_ndp" msgid="7617392683877410341">"সিম নেটওয়ার্ক আনলক পিন"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"অপারেটরের জন্য সিম লক করা আছে"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"আনলক করুন"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"খারিজ করুন"</string>
<string name="requesting_unlock" msgid="930512210309437741">"নেটওয়ার্ক আনলকের অনুরোধ করা হচ্ছে..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> এ ফরওয়ার্ড করা হচ্ছে"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"বন্ধ আছে"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"আপনার ক্যারিয়ার আপনার ফোনের সাথে যখন সংযোগ স্থাপন করা যাচ্ছে না সেই অবস্থায় কল ফরওয়ার্ডিংকে অক্ষম করা সমর্থন করে না৷"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"আপনার পরিষেবা প্রদানকারী নম্বর ব্যবহার করে কল ফরওয়ার্ড করার সুবিধা ব্যবহার করতে পারবেন না।"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"কল ওয়েটিং সুবিধা চালু করতে চান?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"কল চলার সময়ে ইনকামিং কল এলে আপনাকে জানানো হবে"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"চালু করুন"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"বাতিল করুন"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS-এ CDMA কল ওয়েটিং সুবিধা চালু আছে"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS-এ CDMA কল ওয়েটিং সুবিধা বন্ধ আছে"</string>
<string name="updating_title" msgid="6130548922615719689">"কল সেটিংস"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"কেবলমাত্র প্রশাসক ব্যবহারকারী কল সেটিংস পরিবর্তন করতে পারবেন৷"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"সেটিংস (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"ডিফল্ট ডেটা সিমের SubId:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"ডিএল ব্যান্ডউইথ (কেবিপিএস):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"ইউএল ব্যান্ডউইথ (কেবিপিএস):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"সেল লোকেশন তথ্য (বন্ধ করা হয়েছে):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ফিজিক্যাল চ্যানেল কনফিগারেশন:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"সেল তথ্যে রিফ্রেশ রেট:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"সমস্ত সেল পরিমাপ তথ্য:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR ফ্রিকোয়েন্সি:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"রেডিও ব্যান্ড মোড সেট করুন"</string>
<string name="band_mode_loading" msgid="795923726636735967">"ব্যান্ড তালিকা লোড হচ্ছে..."</string>
<string name="band_mode_set" msgid="6657819412803771421">"সেট করুন"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 9ef1b14..9ae5e69 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Postavke govorne pošte može promijeniti samo Primarni korisnik."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Vaša SIM kartica je deblokirana. Telefon se otključava…"</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN za otključavanje mreže na SIM kartici"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM je zaključan za operatera"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Otključaj"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Odbaci"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Traži se otključavanje mreže…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Preusmjerava se na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Isključeno"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Vaš operater ne podržava onemogućavanje prosljeđivanja poziva kada ste nedostupni."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Vaš mobilni operater ne podržava prosljeđivanje poziva."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Uključiti poziv na čekanju?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Tokom poziva ćete primati obavještenja o dolaznim pozivima"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Uključi"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Otkaži"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA poziv na čekanju u okviru IMS-a je uključen"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA poziv na čekanju u okviru IMS-a je isključen"</string>
<string name="updating_title" msgid="6130548922615719689">"Postavke poziva"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Postavke poziva može promijeniti samo administrator."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Postavke (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -296,7 +304,7 @@
<string name="mobile_data_settings_summary" msgid="5012570152029118471">"Pristup prijenosu podataka mobilnom mrežom"</string>
<string name="data_usage_disable_mobile" msgid="5669109209055988308">"Isključiti prijenos podataka na mobilnoj mreži?"</string>
<string name="sim_selection_required_pref" msgid="6985901872978341314">"Potreban izbor"</string>
- <string name="sim_change_data_title" msgid="9142726786345906606">"Promijeniti podatkovni SIM?"</string>
+ <string name="sim_change_data_title" msgid="9142726786345906606">"Promijeniti SIM za prijenos podataka?"</string>
<string name="sim_change_data_message" msgid="3567358694255933280">"Koristiti SIM karticu <xliff:g id="NEW_SIM">%1$s</xliff:g> umjesto SIM kartice <xliff:g id="OLD_SIM">%2$s</xliff:g> za prijenos podataka na mobilnoj mreži?"</string>
<string name="wifi_calling_settings_title" msgid="5800018845662016507">"Pozivanje putem WiFi-ja"</string>
<string name="video_calling_settings_title" msgid="342829454913266078">"Operater video pozivanja"</string>
@@ -867,10 +875,9 @@
<string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
<string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
<string name="radio_info_subid" msgid="6839966868621703203">"Trenutni pomoćni ID:"</string>
- <string name="radio_info_dds" msgid="1122593144425697126">"Pomoćni ID za zadani podatkovni SIM:"</string>
+ <string name="radio_info_dds" msgid="1122593144425697126">"Pomoćni ID za zadani SIM za prijenos podataka:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL propusnost (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL propusnost (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacije o lokaciji ćelije (zastarjele):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracija LTE fizičkog kanala:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Interval osvježavanja informacija o ćeliji:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Sve informacije o mjerenju ćelije:"</string>
@@ -901,6 +908,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Postavi"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 1f910eb..e40d4af 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Només l\'usuari principal pot modificar la configuració dels missatges de veu."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"La targeta SIM s\'ha desbloquejat. El telèfon s\'està desbloquejant..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN de desbloqueig de xarxa SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM bloquejada per a l\'operador"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Desbloqueja"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Ignora"</string>
<string name="requesting_unlock" msgid="930512210309437741">"S\'està sol·licitant el desbloqueig de la xarxa..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"S\'està desviant a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Desactivat"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"El teu operador de telefonia mòbil no permet desactivar la desviació de trucades quan el telèfon estigui il·localitzable."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"El teu operador no admet la desviació de trucades."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Vols activar l\'opció de trucada en espera?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Durant una trucada, rebràs una notificació si tens cap trucada entrant"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Activa"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Cancel·la"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"L\'opció de trucada en espera de CDMA a IMS està activada"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"L\'opció de trucada en espera de CDMA a IMS està desactivada"</string>
<string name="updating_title" msgid="6130548922615719689">"Configuració de trucada"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Només l\'administrador pot canviar la configuració de trucades."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Configuració (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Subidentificador de la SIM de dades predeterminada:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Amplada de banda de baixada (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Amplada de banda de pujada (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informació d\'ubicació del mòbil (obsoleta):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuració del canal físic de LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Freqüència d\'actualització de la informació del mòbil:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Tota la informació de mesures del mòbil:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Defineix"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index c5d45ef..3bddac6 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Nastavení hlasové schránky může změnit pouze primární uživatel."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM karta byla odblokována. Telefon se odblokovává..."</string>
<string name="label_ndp" msgid="7617392683877410341">"Kód PIN odblokování sítě pro SIM kartu"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Na kartě SIM je zámek operátora"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Odemknout"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Zavřít"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Žádost o odblokování sítě..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Hovory budou přesměrovány na číslo <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Vypnuto"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Váš operátor neumožňuje deaktivovat přesměrování hovorů, když je telefon nedostupný."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Váš operátor nepodporuje přesměrování hovorů."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Zapnout funkci Další hovor na lince?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"V průběhu hovoru budete dostávat upozornění na příchozí hovory."</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Zap."</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Zrušit"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA – další hovor na lince ve službě IMS – zapnuto"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA – další hovor na lince ve službě IMS – vypnuto"</string>
<string name="updating_title" msgid="6130548922615719689">"Nastavení hovorů"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Nastavení hovorů může změnit pouze uživatel s oprávněním administrátora."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Nastavení (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -873,7 +881,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId výchozí datové SIM karty:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Rychlost stahování (kB/s):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Rychlost nahrávání (kB/s):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informace o poloze mobilní sítě (podpora ukončena):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurace fyzického kanálu LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Interval obnovení informací o mobilní síti:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Všechny údaje o měření mobilní sítě:"</string>
@@ -904,6 +911,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Nastavit"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index da269e1..a57b744 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Indstillingerne for telefonsvareren kan kun ændres af den primære bruger."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Blokeringen af dit SIM-kort er blevet ophævet. Din telefon låser op ..."</string>
<string name="label_ndp" msgid="7617392683877410341">"Pinkode til oplåsning af SIM-netværket"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM-kortet er låst for operatøren"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Lås op"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Luk"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Anmoder om oplåsning af netværk ..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Viderestiller til <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Fra"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Dit mobilselskab understøtter ikke deaktivering af viderestilling af opkald, når telefonen ikke er tilgængelig."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Dit mobilselskab understøtter ikke viderestilling af opkald."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Vil du aktivere ventende opkald?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Under et opkald får du en notifikation om indgående opkald."</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Aktivér"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Annuller"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Ventende CDMA-opkald under IMS er aktiveret"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Ventende CDMA-opkald under IMS er deaktiveret"</string>
<string name="updating_title" msgid="6130548922615719689">"Indstillinger for opkald"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Opkaldsindstillingerne kan kun ændres af administratorbrugeren."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Indstillinger (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Under-id for standard-SIM-kort til data:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Båndbredde til download (kB/sek.):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Båndbredde til upload (kB/sek.):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Oplysning om placering af celle (udfaset):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fysisk kanalkonfiguration for LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Opdateringsfrekvens for celleoplysninger:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alle oplysninger om cellemåling:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Angiv"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 948c7cc..458bd3d 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Mailboxeinstellungen können nur vom primären Nutzer geändert werden."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Deine SIM-Karte wurde entsperrt. Dein Telefon wird nun entsperrt..."</string>
<string name="label_ndp" msgid="7617392683877410341">"Entsperr-PIN für netzgebundenes Gerät"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM für Anbieter gesperrt"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Entsperren"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Verwerfen"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Entsperrung des netzgebundenen Geräts wird angefordert..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Weiterleitung an <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Aus"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Dein Mobilfunkanbieter unterstützt die Deaktivierung der Anrufweiterleitung bei Nichterreichbarkeit nicht."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Dein Mobilfunkanbieter unterstützt die Anrufweiterleitung nicht."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Anklopfen aktivieren?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Du wirst während eines Anrufs über eingehende Anrufe benachrichtigt"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Aktivieren"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Abbrechen"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA-Anklopfen unter IMS aktiviert"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA-Anklopfen unter IMS deaktiviert"</string>
<string name="updating_title" msgid="6130548922615719689">"Anrufeinstellungen"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Anrufeinstellungen können nur vom Administrator geändert werden."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Einstellungen (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -522,7 +530,7 @@
<string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"Mailboxnummer unbekannt"</string>
<string name="notification_network_selection_title" msgid="255595526707809121">"kein Dienst"</string>
<string name="notification_network_selection_text" msgid="553288408722427659">"Ausgewähltes Netzwerk nicht verfügbar:<xliff:g id="OPERATOR_NAME">%s</xliff:g>"</string>
- <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Zum Anrufen Mobilfunknetz aktivieren, Flugmodus oder Energiesparmodus deaktivieren."</string>
+ <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Zum Anrufen Mobilfunknetz aktivieren, Flugmodus oder Stromsparmodus deaktivieren."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Deaktiviere zum Telefonieren den Flugmodus."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Deaktiviere zum Telefonieren den Flugmodus oder stelle eine WLAN-Verbindung her."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Beende den Notfallrückrufmodus, um einen Anruf zu tätigen, bei dem es sich nicht um einen Notfall handelt."</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Unter-ID der standardmäßigen Daten-SIM:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-Bandbreite (kbit/s):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-Bandbreite (kbit/s):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Standortinformationen des Mobiltelefons (eingestellt):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguration des physischen LTE-Kanals:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Aktualisierungsrate der Mobiltelefoninformationen:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alle Informationen zu Zellenmesswerten:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Festlegen"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 9b687c1..d7f72bb 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Οι ρυθμίσεις αυτόματου τηλεφωνητή μπορούν να αλλάξουν μόνο από τον κύριο χρήστη."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Καταργήθηκε ο αποκλεισμός της κάρτας SIM. Το τηλέφωνό σας ξεκλειδώνεται..."</string>
<string name="label_ndp" msgid="7617392683877410341">"Αριθμός PIN ξεκλειδώματος δικτύου κάρτας SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Η κάρτα SIM κλειδώθηκε για τον πάροχο"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Ξεκλείδωμα"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Παράβλεψη"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Αίτηση ξεκλειδώματος δικτύου..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Προώθηση στο <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Ανενεργό"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Η εταιρεία κινητής τηλεφωνίας δεν υποστηρίζει την απενεργοποίηση της προώθησης κλήσεων όταν το τηλέφωνό σας δεν έχει σήμα."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Η εταιρεία κινητής τηλεφωνίας σας δεν υποστηρίζει την προώθηση κλήσεων."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Ενεργοποίηση αναμονής κλήσης;"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Κατά τη διάρκεια μιας κλήσης θα ειδοποιείστε για εισερχόμενες κλήσεις"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Ενεργοποίηση"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Άκυρο"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Η αναμονή κλήσης σε λειτουργία άμεσων μηνυμάτων (ΙΜ) είναι απενεργοποιημένη"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Η αναμονή κλήσης σε λειτουργία άμεσων μηνυμάτων (ΙΜ) είναι απενεργοποιημένη"</string>
<string name="updating_title" msgid="6130548922615719689">"Ρυθμίσεις κλήσης"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Οι ρυθμίσεις κλήσεων μπορούν να αλλάξουν μόνο από τον χρήστη που έχει ρόλο διαχειριστή."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Ρυθμίσεις (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId προεπιλεγμένης SIM δεδομένων:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Εύρος ζώνης DL (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Εύρος ζώνης UL (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Πληροφορίες τοποθεσίας κινητής τηλεφωνίας (καταργήθηκε):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Διαμόρφωση φυσικού καναλιού LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Ρυθμός ανανέωσης στοιχείων κινητής τηλεφωνίας:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Όλα τα στοιχεία μετρήσεων κινητής τηλεφωνίας:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"Συχνότητα NR:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"Ρύθμιση λειτουργίας ζώνης συχνοτήτων πομπού"</string>
<string name="band_mode_loading" msgid="795923726636735967">"Φόρτωση λίστας ζωνών…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"Ορισμός"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index d48a09c..146f292 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Voicemail settings can only be modified by the primary user."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Your SIM card has been unblocked. Your phone is unlocking…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM network unlock PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM locked for operator"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Unlock"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Dismiss"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Requesting network unlock…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Forwarding to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Off"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Your operator doesn\'t support disabling call forwarding when your phone is unreachable."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Your operator doesn\'t support call forwarding."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Turn on call waiting?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"During a call, you\'ll be notified about incoming calls"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Turn on"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Cancel"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA call waiting under IMS on"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA call waiting under IMS off"</string>
<string name="updating_title" msgid="6130548922615719689">"Call settings"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Call settings can only be changed by the admin user."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId of default data SIM:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL bandwidth (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL bandwidth (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobile location info (deprecated):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE physical channel configuration:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobile info refresh rate:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All mobile measurement info:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Set"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 2505aa1..fa87216 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Voicemail settings can only be modified by the primary user."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Your SIM card has been unblocked. Your phone is unlocking…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM network unlock PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM locked for operator"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Unlock"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Dismiss"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Requesting network unlock…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Forwarding to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Off"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Your operator doesn\'t support disabling call forwarding when your phone is unreachable."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Your operator doesn\'t support call forwarding."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Turn on call waiting?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"During a call, you\'ll be notified about incoming calls"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Turn on"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Cancel"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA call waiting under IMS on"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA call waiting under IMS off"</string>
<string name="updating_title" msgid="6130548922615719689">"Call settings"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Call settings can only be changed by the admin user."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -471,7 +479,7 @@
<string name="simContacts_emptyLoading" msgid="4989040293858675483">"Reading from SIM card…"</string>
<string name="simContacts_empty" msgid="1135632055473689521">"No contacts on your SIM card."</string>
<string name="simContacts_title" msgid="2714029230160136647">"Select contacts to import"</string>
- <string name="simContacts_airplaneMode" msgid="4654884030631503808">"Turn off aeroplane mode to import contacts from the SIM card."</string>
+ <string name="simContacts_airplaneMode" msgid="4654884030631503808">"Turn off Airplane mode to import contacts from the SIM card."</string>
<string name="enable_pin" msgid="967674051730845376">"Enable/disable SIM PIN"</string>
<string name="change_pin" msgid="3657869530942905790">"Change SIM PIN"</string>
<string name="enter_pin_text" msgid="3182311451978663356">"SIM PIN:"</string>
@@ -523,8 +531,8 @@
<string name="notification_network_selection_title" msgid="255595526707809121">"No service"</string>
<string name="notification_network_selection_text" msgid="553288408722427659">"Selected network<xliff:g id="OPERATOR_NAME">%s</xliff:g> unavailable"</string>
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Turn on mobile network, turn off airplane mode or turn off battery saver mode to make a call."</string>
- <string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Turn off aeroplane mode to make a call."</string>
- <string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Turn off aeroplane mode or connect to a wireless network to make a call."</string>
+ <string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Turn off Airplane mode to make a call."</string>
+ <string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Turn off Airplane mode or connect to a wireless network to make a call."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Exit emergency callback mode to make a non-emergency call."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Not registered on network."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobile network not available."</string>
@@ -552,7 +560,7 @@
<string name="emergency_call_shortcut_hint" msgid="1290485125107779500">"Tap again to call <xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>"</string>
<string name="emergency_enable_radio_dialog_message" msgid="1695305158151408629">"Turning on radio…"</string>
<string name="emergency_enable_radio_dialog_retry" msgid="4329131876852608587">"No service. Trying again…"</string>
- <string name="radio_off_during_emergency_call" msgid="8011154134040481609">"Cannot enter aeroplane mode during an emergency call."</string>
+ <string name="radio_off_during_emergency_call" msgid="8011154134040481609">"Cannot enter Airplane mode during an emergency call."</string>
<string name="dial_emergency_error" msgid="825822413209026039">"Can\'t call. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> is not an emergency number."</string>
<string name="dial_emergency_empty_error" msgid="2785803395047793634">"Can\'t call. Dial an emergency number."</string>
<string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"Emergency calling not available"</string>
@@ -707,7 +715,7 @@
<string name="mobile_data_activate_button" msgid="1139792516354374612">"ADD DATA"</string>
<string name="mobile_data_activate_cancel_button" msgid="3530174817572005860">"CANCEL"</string>
<string name="clh_card_title_call_ended_txt" msgid="5977978317527299698">"Call ended"</string>
- <string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"Aeroplane mode is on"</string>
+ <string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"Airplane mode is on"</string>
<string name="clh_callFailed_simError_txt" msgid="5128538525762326413">"Can\'t access SIM card"</string>
<string name="clh_incall_error_out_of_service_txt" msgid="2736010617446749869">"Mobile network not available"</string>
<string name="clh_callFailed_unassigned_number_txt" msgid="141967660286695682">"Issue with phone number you are trying to dial. Error code 1."</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId of default data SIM:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL bandwidth (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL bandwidth (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobile location info (deprecated):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE physical channel configuration:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobile info refresh rate:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All mobile measurement info:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Set"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index d48a09c..146f292 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Voicemail settings can only be modified by the primary user."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Your SIM card has been unblocked. Your phone is unlocking…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM network unlock PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM locked for operator"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Unlock"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Dismiss"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Requesting network unlock…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Forwarding to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Off"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Your operator doesn\'t support disabling call forwarding when your phone is unreachable."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Your operator doesn\'t support call forwarding."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Turn on call waiting?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"During a call, you\'ll be notified about incoming calls"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Turn on"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Cancel"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA call waiting under IMS on"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA call waiting under IMS off"</string>
<string name="updating_title" msgid="6130548922615719689">"Call settings"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Call settings can only be changed by the admin user."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId of default data SIM:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL bandwidth (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL bandwidth (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobile location info (deprecated):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE physical channel configuration:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobile info refresh rate:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All mobile measurement info:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Set"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index d48a09c..146f292 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Voicemail settings can only be modified by the primary user."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Your SIM card has been unblocked. Your phone is unlocking…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM network unlock PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM locked for operator"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Unlock"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Dismiss"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Requesting network unlock…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Forwarding to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Off"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Your operator doesn\'t support disabling call forwarding when your phone is unreachable."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Your operator doesn\'t support call forwarding."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Turn on call waiting?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"During a call, you\'ll be notified about incoming calls"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Turn on"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Cancel"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA call waiting under IMS on"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA call waiting under IMS off"</string>
<string name="updating_title" msgid="6130548922615719689">"Call settings"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Call settings can only be changed by the admin user."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId of default data SIM:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL bandwidth (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL bandwidth (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobile location info (deprecated):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE physical channel configuration:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobile info refresh rate:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All mobile measurement info:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Set"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 250a26d..beff7ad 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Voicemail Settings can only be modified by the Primary User."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Your SIM card has been unblocked. Your phone is unlocking…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM network unlock PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM locked for operator"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Unlock"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Dismiss"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Requesting network unlock…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Forwarding to <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Off"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Your carrier doesn\'t support disabling call forwarding when your phone is unreachable."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Your carrier doesn\'t support call forwarding."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Turn on call waiting?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"During a call, you\'ll be notified about incoming calls"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Turn on"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Cancel"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA Call Waiting under IMS On"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA Call Waiting under IMS Off"</string>
<string name="updating_title" msgid="6130548922615719689">"Call settings"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Call settings can only be changed by the admin user."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Settings (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId of default data SIM:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL Bandwidth (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL Bandwidth (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Cell Location Info (deprecated):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE Physical Channel Configuration:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Cell Info Refresh Rate:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All Cell Measurement Info:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Set"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 43d15be..406ce56 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Solo el usuario principal puede cambiar la configuración del buzón de voz."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Tu tarjeta SIM ha sido desbloqueada. Tu dispositivo está desbloqueando..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN de desbloqueo de red de tarjeta SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM bloqueada para el operador"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Desbloquear"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Descartar"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Solicitando desbloqueo de red..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Reenviar a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Desactivado"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Tu proveedor no admite la inhabilitación del desvío de llamadas cuando no se puede acceder a tu teléfono."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Tu proveedor no admite el desvío de llamadas."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"¿Quieres activar la función de llamada en espera?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Durante una llamada, recibirás notificaciones de llamadas entrantes"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Activar"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Cancelar"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"La función de llamada en espera de CDMA en IMS está activada"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"La función de llamada en espera de CDMA en IMS está desactivada"</string>
<string name="updating_title" msgid="6130548922615719689">"Config. de llamada"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Solo el usuario administrador puede cambiar la configuración de llamadas."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Configuración (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"ID secundario de SIM de datos predeterminada:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Ancho de banda de descarga (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Ancho de banda de carga (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Datos de ubicación del celular (obsoleto):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuración del canal físico de LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frecuencia de actualización de datos del celular:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Información sobre las dimensiones del celular:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Establecer"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index f8b36d4..9278a7e 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"El usuario principal es el único que puede modificar los ajustes del buzón de voz."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"La tarjeta SIM se ha desbloqueado. El teléfono se está desbloqueando..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN de desbloqueo de red de tarjeta SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM bloqueada por el operador"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Desbloquear"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Cerrar"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Solicitando desbloqueo de red..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Desviando a <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Desactivado"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Tu operador no permite inhabilitar el desvío de llamadas si no se puede establecer la llamada."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Tu operador no admite el desvío de llamadas."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"¿Quieres activar la llamada en espera?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Se te notificarán las llamadas entrantes mientras estés en una llamada"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Activar"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Cancelar"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Llamada en espera de CDMA en IMS activada"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Llamada en espera de CDMA en IMS desactivada"</string>
<string name="updating_title" msgid="6130548922615719689">"Ajustes de llamadas"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"El administrador es el único usuario que puede cambiar los ajustes de llamada."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Ajustes (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -764,19 +772,19 @@
<string name="sum_call_barring_disabled" msgid="5699448000600153096">"Desactivado"</string>
<string name="call_barring_baoc" msgid="7400892586336429326">"Todas las realizadas"</string>
<string name="call_barring_baoc_enabled" msgid="3131509193386668182">"¿Quieres desbloquear todas las llamadas realizadas?"</string>
- <string name="call_barring_baoc_disabled" msgid="8534224684091141509">"¿Quieres bloquear todas las llamadas realizadas?"</string>
+ <string name="call_barring_baoc_disabled" msgid="8534224684091141509">"¿Bloquear todas las llamadas realizadas?"</string>
<string name="call_barring_baoic" msgid="8668125428666851665">"Internacionales realizadas"</string>
<string name="call_barring_baoic_enabled" msgid="1203758092657630123">"¿Quieres desbloquear las llamadas internacionales realizadas?"</string>
- <string name="call_barring_baoic_disabled" msgid="5656889339002997449">"¿Quieres bloquear las llamadas internacionales realizadas?"</string>
+ <string name="call_barring_baoic_disabled" msgid="5656889339002997449">"¿Bloquear las llamadas internacionales realizadas?"</string>
<string name="call_barring_baoicr" msgid="8566167764432343487">"Itinerancia de llamadas internacionales realizadas"</string>
<string name="call_barring_baoicr_enabled" msgid="1615324165512798478">"¿Quieres desbloquear la itinerancia de las llamadas internacionales realizadas?"</string>
- <string name="call_barring_baoicr_disabled" msgid="172010175248142831">"¿Quieres bloquear la itinerancia de las llamadas internacionales realizadas?"</string>
+ <string name="call_barring_baoicr_disabled" msgid="172010175248142831">"¿Bloquear la itinerancia de las llamadas internacionales realizadas?"</string>
<string name="call_barring_baic" msgid="7941393541678658566">"Todas las entrantes"</string>
<string name="call_barring_baic_enabled" msgid="4357332358020337470">"¿Quieres desbloquear todas las llamadas entrantes?"</string>
- <string name="call_barring_baic_disabled" msgid="2355945245938240958">"¿Quieres bloquear todas las llamadas entrantes?"</string>
+ <string name="call_barring_baic_disabled" msgid="2355945245938240958">"¿Bloquear todas las llamadas entrantes?"</string>
<string name="call_barring_baicr" msgid="8712249337313034226">"Itinerancia de llamadas internacionales entrantes"</string>
<string name="call_barring_baicr_enabled" msgid="64774270234828175">"¿Quieres desbloquear la itinerancia de las llamadas internacionales entrantes?"</string>
- <string name="call_barring_baicr_disabled" msgid="3488129262744027262">"¿Quieres bloquear la itinerancia de las llamadas internacionales entrantes?"</string>
+ <string name="call_barring_baicr_disabled" msgid="3488129262744027262">"¿Bloquear la itinerancia de las llamadas internacionales entrantes?"</string>
<string name="call_barring_deactivate_all" msgid="7837931580047157328">"Desactivar todo"</string>
<string name="call_barring_deactivate_all_description" msgid="4474119585042121604">"Desactivar todos los ajustes de bloqueo de llamadas"</string>
<string name="call_barring_deactivate_success" msgid="3545644320298275337">"Se ha desactivado el bloqueo de llamadas"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"ID secundario de la SIM de datos predeterminada:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Ancho de banda de bajada (Kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Ancho de banda de subida (Kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Información sobre la ubicación del teléfono (obsoleto):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuración del canal físico de LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frecuencia de actualización de la información del teléfono:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Información sobre las dimensiones de los teléfonos:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Seleccionar"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 5d6a837..21c637e 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Kõneposti seadeid saab muuta ainult peamine kasutaja."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Teie SIM-kaardi blokeering on tühistatud. Teie telefoni avamine ..."</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM-võrgu avamise PIN-kood"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM-kaart on operaatori jaoks lukustatud"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Ava"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Loobu"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Võrgu avamise taotlemine ..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Edastamine numbrile <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Väljas"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Teie operaator ei toeta kõneedastuse keelamist, kui teie telefon on levist väljas."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Teie operaator ei toeta kõnede suunamist."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Kas lülitada ootel kõne sisse?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Kõne ajal teavitatakse teid sissetulevatest kõnedest"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Lülita sisse"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Tühista"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA ootel kõne on IMS-i all sisse lülitatud"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA ootel kõne on IMS-i all välja lülitatud"</string>
<string name="updating_title" msgid="6130548922615719689">"Kõneseaded"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Kõne seadeid saab muuta ainult administraator."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Seaded (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Andmete vaike-SIM-kaardi alam-ID:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-i ribalaius (kbit/s):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-i ribalaius (kbit/s):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Kärje asukohateave (tugi on katkestatud):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE füüsilise kanali konfiguratsioon:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Kärje teabe värskendamissagedus:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Kõik kärje mõõteandmed:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Määra"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 044a71f..50f9a51 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Erabiltzaile nagusiak bakarrik alda ditzake erantzungailuaren ezarpenak."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM txartela desblokeatu da. Telefonoa desblokeatzen…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM sarea desblokeatzeko PIN kodea"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Operadore hau dauka finkatuta SIM txartelak:"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Desblokeatu"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Baztertu"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Sarea desblokeatzeko eskatzen…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> zenbakira desbideratzen dira"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Desaktibatuta"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Operadoreak ez du dei-desbideratzeak desgaitzea onartzen telefonoa eskuragarri ez dagoen bitartean."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Operadoreak ez du onartzen dei-desbideratzea."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Deia zain uzteko aukera aktibatu nahi duzu?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Dei batean zaudenean, jakinarazpen bat jasoko duzu deiak jasotzen badituzu"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Aktibatu"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Utzi"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS zerbitzupean CDMA deiak zain uzteko aukera aktibatuta dago"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS zerbitzupean CDMA deiak zain uzteko aukera desaktibatuta dago"</string>
<string name="updating_title" msgid="6130548922615719689">"Deien ezarpenak"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Administratzaileak soilik alda ditzake deien ezarpenak."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Ezarpenak (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -430,7 +438,7 @@
<string name="manage_fdn_list" msgid="3341716430375195441">"Markatze finkoko zenbakien zerrenda"</string>
<string name="fdn_list_with_label" msgid="1409655283510382556">"Markatze finkoko zenbakiak (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="fdn_activation" msgid="2178637004710435895">"Markatze finkoko zenbakiaren aktibazioa"</string>
- <string name="fdn_enabled" msgid="7017355494808056447">"Markatze finkoko zenbakiak gaituta daude"</string>
+ <string name="fdn_enabled" msgid="7017355494808056447">"Markatze finkoko zenbakiak gaituta"</string>
<string name="fdn_disabled" msgid="6696468878037736600">"Markatze finkoko zenbakiak desgaituta daude"</string>
<string name="enable_fdn" msgid="4830555730418033723">"Gaitu markatze finkoko zenbakiak"</string>
<string name="disable_fdn" msgid="3918794950264647541">"Desgaitu markatze finkoko zenbakia"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Datu-konexioetarako SIM lehenetsiaren azpiIDa:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Deskargatzeko banda-zabalera (Kb/s):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Kargen banda-zabalera (Kb/s):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Sare mugikorraren kokapenaren informazioa (zaharkitua):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE kanal fisikoaren konfigurazioa:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Sare mugikorraren informazioa eguneratzeko maiztasuna:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Sare mugikorraren neurketa guztien informazioa:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Ezarri"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 6839a27..072e1f4 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"فقط «کاربر اصلی» میتواند «تنظیمات پست صوتی» را تغییر دهد."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"قفل سیم کارت شما باز شده است. قفل گوشی در حال باز شدن است..."</string>
<string name="label_ndp" msgid="7617392683877410341">"پین بازگشایی قفل شبکه سیم"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"سیمکارت برای اپراتور قفل شد"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"بازگشایی قفل"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"رد کردن"</string>
<string name="requesting_unlock" msgid="930512210309437741">"در حال درخواست بازگشایی قفل شبکه..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"هدایت به <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"خاموش"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"شرکت مخابراتی شما از غیرفعال کردن هدایت تماس هنگامی که تلفن شما در دسترس نیست پشتیبانی نمیکند."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"شرکت مخابراتی شما از هدایت تماس پشتیبانی نمیکند."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"«انتظار مکالمه» روشن شود؟"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"درحین تماس، از تماسهای ورودی مطلع خواهید شد"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"روشن کردن"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"لغو"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"«انتظار مکالمه CDMA» تحت IMS روشن است"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"«انتظار مکالمه CDMA» تحت IMS خاموش است"</string>
<string name="updating_title" msgid="6130548922615719689">"تنظیمات تماس"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"فقط کاربر سرپرست میتواند تنظیمات تماس را تغییر دهد."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"تنظیمات (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId مربوط به سیمکارت داده پیشفرض:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"پهنای باند DL (کیلوبیت بر ثانیه):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"پهنای باند UL (کیلوبیت بر ثانیه):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"اطلاعات مکان شبکه همراه (منسوخ شده):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"پیکربندی کانال فیزیکی LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"نرخ بازخوانی اطلاعات شبکه همراه:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"همه اطلاعات اندازهگیری شبکه همراه:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"فرکانس NR:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"تنظیم حالت باند رادیو"</string>
<string name="band_mode_loading" msgid="795923726636735967">"درحال بار کردن فهرست باند…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"تنظیم"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 7d88687..e858864 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Vain ensisijainen käyttäjä voi muuttaa vastaajan asetuksia."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM-korttisi esto on purettu. Puhelimen lukitusta poistetaan..."</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM-verkko, PIN-koodin lukituksen poisto"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Operaattorin SIM lukittu"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Poista lukitus"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Hylkää"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Pyydetään verkon lukituksen poistoa..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Puhelu siirretään numeroon <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Ei päällä"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Operaattorisi ei tue soitonsiirtojen poistamista käytöstä puhelimesi ollessa saavuttamattomissa."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Operaattorisi ei tue soitonsiirtoa."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Otetaanko koputus käyttöön?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Sinulle ilmoitetaan puhelun aikana saapuvista puheluista"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Ota käyttöön"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Peruuta"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS:n alainen CDMA-koputus pois käytöstä"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS:n alainen CDMA-koputus pois käytöstä"</string>
<string name="updating_title" msgid="6130548922615719689">"Puheluasetukset"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Vain järjestelmänvalvoja voi muuttaa puheluasetuksia."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Asetukset (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Oletusarvoisen data-SIM-kortin alitunnus:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-kaistanleveys (kt/s):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-kaistanleveys (kt/s):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Matkapuhelimen sijaintitiedot (poistettu käytöstä):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fyysisen LTE-kanavan kokoonpano:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Matkapuhelintietojen päivitysaikaväli:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Matkapuhelimen kaikki mittaustiedot:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Aseta"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 9ad819a..7e73ff1 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Seul l\'utilisateur principal peut modifier les paramètres de la messagerie vocale."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Votre carte SIM a été déverrouillée. Votre téléphone est en cours de déverrouillage..."</string>
<string name="label_ndp" msgid="7617392683877410341">"NIP de déblocage du réseau SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Carte SIM verrouillée pour le fournisseur de services :"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Déverrouiller"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Ignorer"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Demande de déblocage du réseau…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Transfert vers <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Désactivé"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Votre opérateur ne permet pas la désactivation du transfert d\'appel lorsque votre téléphone n\'est pas joignable."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Votre fournisseur de services ne prend pas en charge le transfert d\'appels."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Activer la mise en attente d\'appels?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Vous serez notifié des appels entrant pendant les appels."</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Activer"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Annuler"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Mise en attente d\'appels CDMA sous IMS activée"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Mise en attente d\'appels CDMA sous IMS désactivée"</string>
<string name="updating_title" msgid="6130548922615719689">"Paramètres d\'appel"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Seul l\'administrateur peut modifier les paramètres d\'appel."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Paramètres (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Sous-identifiant de la carte SIM par défaut :"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Bande passante de téléchargement (kb/s) :"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Bande passante de téléversement (kb/s) :"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Données de la position de la cellule (obsolètes) :"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuration du canal physique LTE :"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Taux d\'actualisation des données de la cellule :"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Données des mesures de toutes les cellules :"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Définir"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index e3baed7..6139519 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Seul l\'utilisateur principal de la messagerie vocale peut en modifier les paramètres."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Votre carte SIM a été déverrouillée. Votre téléphone est en cours de déverrouillage..."</string>
<string name="label_ndp" msgid="7617392683877410341">"Code PIN de déblocage du réseau SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Carte SIM verrouillée par l\'opérateur"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Déverrouiller"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Rejeter"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Demande de déblocage du réseau…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Transfert vers <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Désactivé"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Votre opérateur ne permet pas la désactivation du transfert d\'appel lorsque votre téléphone n\'est pas joignable."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Votre opérateur ne permet pas le transfert des appels."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Activer la fonctionnalité d\'appel en attente ?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Lorsque vous êtes en communication, des notifications vous signalent les appels entrants"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Activer"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Annuler"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Fonctionnalité d\'appel CDMA en attente sous IMS activée"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Fonctionnalité d\'appel CDMA en attente sous IMS désactivée"</string>
<string name="updating_title" msgid="6130548922615719689">"Paramètres d\'appel"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Seul l\'administrateur peut modifier les paramètres d\'appel."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Paramètres (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Sous-identifiant de la carte SIM par défaut pour les données :"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Bande passante de téléchargement (kbit/s) :"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Bande passante d\'importation (kbit/s) :"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informations de géolocalisation mobiles (obsolètes) :"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuration de la chaîne physique LTE :"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Fréquence d\'actualisation des informations mobiles :"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Toutes les informations mobiles liées aux mesures :"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Définir"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 61321c8..1876244 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"O usuario principal é o único que pode modificar a configuración do correo de voz."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Desbloqueouse a tarxeta SIM. O teléfono estase desbloqueando..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN de desbloqueo da rede SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM bloqueada para o operador"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Desbloquear"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Rexeitar"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Solicitando desbloqueo da rede..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Desvío ao <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Desactivado"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"O teu operador non admite a desactivación do desvío de chamadas cando non se pode acceder ao teléfono."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"O teu operador non admite o desvío de chamadas."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Queres activar a opción de chamada en espera?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Durante as chamadas, recibirás notificacións das chamadas entrantes"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Activar"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Cancelar"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"A función de chamada en espera de CDMA en IMS está activada"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"A función de chamada en espera de CDMA en IMS está desactivada"</string>
<string name="updating_title" msgid="6130548922615719689">"Configuración de chamada"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Só o usuario administrador pode cambiar a configuración de chamada."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Configuración (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Código de identificación secundario da SIM de datos predeterminada:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Largura de banda de descarga (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Largura de banda de carga (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Información da localización para móbiles (obsoleto):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuración de canle física de LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Taxa de actualización da información para móbiles:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Toda a información de medición para móbiles:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Definir"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 78520c9..e191d41 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"વૉઇસમેઇલ સેટિંગ્સને ફક્ત પ્રાથમિક વપરાશકર્તા દ્વારા જ સંશોધિત કરી શકાય છે."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"તમારા SIM કાર્ડને અનાવરોધિત કરવામાં આવ્યું છે. તમારા ફોનને અનલૉક કરી રહ્યાં છે…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM નેટવર્ક અનલૉક PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"ઑપરેટર દ્વારા સિમ કાર્ડ લૉક કરવામાં આવ્યું છે"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"અનલૉક કરો"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"છોડી દો"</string>
<string name="requesting_unlock" msgid="930512210309437741">"નેટવર્ક અનલૉકની વિનંતી કરી રહ્યાં છે…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> પર ફોરવર્ડ કરી રહ્યાં છે"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"બંધ"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"જ્યારે તમારો ફોન પહોંચયોગ્ય ન હોય ત્યારે તમારા કેરિઅર કૉલ ફોરવર્ડિંગને અક્ષમ કરવાને સમર્થન આપતા નથી."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"તમારા મોબાઇલ ઑપરેટર કૉલ ફૉર્વર્ડિંગને સપોર્ટ કરતા નથી."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"કૉલ પ્રતીક્ષા ચાલુ કરવા માગો છો?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"કૉલ દરમ્યાન, તમને ઇનકમિંગ કૉલ વિશે નોટિફિકેશન આપવામાં આવશે"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"ચાલુ કરો"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"રદ કરો"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS હેઠળ CDMA કૉલ પ્રતીક્ષા ચાલુ છે"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS હેઠળ CDMA કૉલ પ્રતીક્ષા બંધ છે"</string>
<string name="updating_title" msgid="6130548922615719689">"કૉલ સેટિંગ"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"કૉલ સેટિંગ્સને ફક્ત એડમિન વપરાશકર્તા દ્વારા જ બદલી શકાય છે."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"સેટિંગ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -546,7 +554,7 @@
<string name="emergency_information_hint" msgid="9208897544917793012">"ઇમર્જન્સીની માહિતી"</string>
<string name="emergency_information_owner_hint" msgid="6256909888049185316">"માલિક"</string>
<string name="emergency_information_confirm_hint" msgid="5109017615894918914">"માહિતી જોવા માટે ફરીથી ટૅપ કરો"</string>
- <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"કટોકટીનો કૉલ"</string>
+ <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"ઇમર્જન્સી કૉલ"</string>
<string name="single_emergency_number_title" msgid="8413371079579067196">"ઇમર્જન્સી નંબર"</string>
<string name="numerous_emergency_numbers_title" msgid="8972398932506755510">"કટોકટીના નંબર"</string>
<string name="emergency_call_shortcut_hint" msgid="1290485125107779500">"<xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>ને ફરીથી કૉલ કરવા માટે ટૅપ કરો"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"ડિફૉલ્ટ ડેટા સિમનું SubId:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL બૅન્ડવિડ્થ (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL બૅન્ડવિડ્થ (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"સેલ સ્થાન માહિતી (ટાળેલ):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ભૌતિક ચૅનલની ગોઠવણી:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"સેલ માહિતી રિફ્રેશ થવાનો રેટ:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"તમામ સેલ માપ માહિતી:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR આવર્તન:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"રેડિયો બૅન્ડ મોડ સેટ કરો"</string>
<string name="band_mode_loading" msgid="795923726636735967">"બૅન્ડની સૂચિ લોડ કરી રહ્યું છે…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"સેટ કરો"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 96aa5f0..54b66f6 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"वॉइसमेल सेटिंग को केवल प्राथमिक उपयोगकर्ता ही बदल सकता है."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"आपका सिम कार्ड अनब्लॉक कर दिया गया है. आपका फ़ोन अनलॉक किया जा रहा है..."</string>
<string name="label_ndp" msgid="7617392683877410341">"सिम नेटवर्क अनलॉक पिन"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"ऑपरेटर के लिए सिम को लॉक किया गया"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"अनब्लॉक करें"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"खारिज करें"</string>
<string name="requesting_unlock" msgid="930512210309437741">"नेटवर्क अनलॉक के लिए अनुरोध कर रहा है..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> को अग्रेषित कर रहा है"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"बंद"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"जब आपका फ़ोन पहुंच योग्य न हो, तो आपका कैरियर कॉल अग्रेषण अक्षम करने का समर्थन नहीं करता."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"आपको मोबाइल और इंटरनेट सेवा देने वाली कंपनी, कॉल को दूसरे नंबर पर भेजने की सुविधा नहीं देती."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"क्या आप कॉल वेटिंग (कॉल के दौरान आ रहा दूसरा कॉल) की सुविधा चालू करना चाहते हैं?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"कॉल के दौरान, आपको आने वाले कॉल (इनकमिंग) के बारे में सूचना दी जाएगी"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"चालू करें"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"रद्द करें"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"आईएमएस में CDMA कॉल वेटिंग की सुविधा चालू है"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"आईएमएस में CDMA कॉल वेटिंग की सुविधा बंद है"</string>
<string name="updating_title" msgid="6130548922615719689">"कॉल सेटिंग"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"कॉल सेटिंग केवल व्यवस्थापक उपयोगकर्ता द्वारा ही बदली जा सकती हैं."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"सेटिंग (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"डिफ़ॉल्ट डेटा सिम का सब-आईडी:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"डीएल बैंडविड्थ (केबीपीएस):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"यूएल बैंडविड्थ (केबीपीएस):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"सेल की जगह की जानकारी (रोकी गयी है):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"एलटीई की फ़िज़िकल चैनल कॉन्फ़िगरेशन:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"सेल की जानकारी रीफ़्रेश होने की दर:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"सभी सेल के माप की पूरी जानकारी:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR की फ़्रीक्वेंसी:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"\'रेडियो बैंड\' मोड सेट करें"</string>
<string name="band_mode_loading" msgid="795923726636735967">"बैंड सूची लोड की जा रही है…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"सेट करें"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index f38d1f6..091147b 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Postavke govorne pošte može izmijeniti samo primarni korisnik."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Vaša je SIM kartica odblokirana. Telefon se odblokira…"</string>
<string name="label_ndp" msgid="7617392683877410341">"Mrežni PIN za otključavanje SIM-a"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM je zaključan za operatera"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Otključaj"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Odbaci"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Traženje mrežnog otključavanja..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Preusmjeravanje na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Isključeno"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Vaš mobilni operater ne podržava onemogućavanje preusmjeravanja poziva ako je vaš telefon nedostupan."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Vaš operater ne podržava preusmjeravanje poziva."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Uključiti poziv na čekanju?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Tijekom poziva primat ćete obavijesti o dolaznim pozivima"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Uključi"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Odustani"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA poziv na čekanju u okviru IMS-a uključen"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA poziv na čekanju u okviru IMS-a isključen"</string>
<string name="updating_title" msgid="6130548922615719689">"Postavke poziva"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Postavke poziva može mijenjati samo korisnik koji je administrator."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Postavke (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -870,7 +878,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SUBID zadanog SIM-a za podatkovni promet:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL propusnost (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL propusnost (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacije o lokaciji ćelije (obustavljeno):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracija LTE fizičkog kanala:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Stopa osvježavanja informacija u ćeliji:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Sve informacije ćelija o mjerenju:"</string>
@@ -901,6 +908,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Postavi"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index f69e5b1..45405e9 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"A hangposta-beállításokat csak az elsődleges felhasználó módosíthatja."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM kártyája letiltása megszűnt. Feloldás folyamatban..."</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM hálózati függetlenítő PIN kódja"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"A SIM zárolva a szolgálató esetében"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Feloldás"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Elvetés"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Függetlenítés kérése..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Átirányítás ide: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Ki"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Szolgáltatója nem támogatja a hívásátirányítás letiltását, ha a telefon nem érhető el."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"A szolgáltatója nem teszi lehetővé a hívásátirányítást."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Bekapcsolja a hívásvárakoztatást?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Hívás közben értesítést kap a bejövő hívásokról"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Igen"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Mégse"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS alatti CDMA-hívásvárakoztatás bekapcsolva"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS alatti CDMA-hívásvárakoztatás kikapcsolva"</string>
<string name="updating_title" msgid="6130548922615719689">"Hívásbeállítások"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"A hívásbeállításokat csak a rendszergazda módosíthatja."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Beállítások (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Alapértelmezett adatok SIM-alazonosítója:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Letöltési sávszélesség (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Feltöltési sávszélesség (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobilos helyadatok (megszűnt):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE fizikai csatorna konfigurációja:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Cellainformáció frissítési gyakorisága:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Minden cellamérési információ:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Beállítás"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 5aa70b3..af95672 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Ձայնային փոստի կարգավորումները կարող է փոխել միայն հիմնական օգտագործողը:"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Ձեր SIM քարտը ապակողպված է: Ձեր հեռախոսը ապակողպվում է..."</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM ցանցով PIN-ի ապակողպում"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Աշխատում է միայն այս օպերատորի SIM քարտով"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Ապակողպել"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Անտեսել"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Հայցվում է ցանցի ապակողպում..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Վերահասցեավորվում է դեպի <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Անջատված է"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Ձեր սպասարկողը չի աջակցում զանգի վերահասցեավորման կասեցում, երբ ձեր հեռախոսն անհասանելի է:"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Ձեր օպերատորը չի աջակցում զանգի վերահասցեավորում։"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Միացնե՞լ զանգի սպասումը"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Հեռախոսազրույցի ժամանակ դուք կծանուցվեք մուտքային զանգերի մասին"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Միացնել"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Չեղարկել"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA զանգի սպասումը IMS-ում միացված է"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA զանգի սպասումը IMS-ում անջատված է"</string>
<string name="updating_title" msgid="6130548922615719689">"Զանգի կարգավորումներ"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Զանգի կարգավորումները կարող է փոխել միայն ադմինիստրատոր հանդիսացող օգտատերը:"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Կարգավորումներ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SIM քարտի հավելյալ ID կանխադրված բջջային ինտերնետի համար՝"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL թողունակությունը (կբ/վ)՝"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL թողունակությունը (կբ/վ)՝"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Բջիջի տեղադրության տվյալներ (հնացած)՝"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ֆիզիկական ալիքի կարգավորում՝"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Բջիջի տվյալների թարմացման հաճախականությունը՝"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Բոլոր բջիջների չափման տվյալները՝"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR-ի հաճախականությունը՝"</string>
<string name="band_mode_title" msgid="7988822920724576842">"Կարգավորել հաճախությունների շերտի ռեժիմը"</string>
<string name="band_mode_loading" msgid="795923726636735967">"Շերտերի ցուցակը բեռնվում է…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"Կարգավորել"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index ea6bc02..e06cb64 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Setelan Pesan Suara hanya dapat diubah oleh Pengguna Utama."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Kartu SIM Anda tidak lagi dicekal. Ponsel Anda sedang dibuka kuncinya..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN pembuka kunci jaringan SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM dikunci untuk operator"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Buka kunci"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Tutup"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Meminta membuka jaringan..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Meneruskan ke <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Nonaktif"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Operator Anda tidak mendukung penonaktifan penerusan panggilan ketika ponsel tidak dapat dijangkau."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Operator Anda tidak mendukung penerusan panggilan."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Aktifkan nada tunggu?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Selama melakukan panggilan, Anda akan menerima notifikasi jika ada panggilan masuk"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Aktifkan"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Batal"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Nada tunggu CDMA dalam IMS aktif"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Nada tunggu CDMA dalam IMS nonaktif"</string>
<string name="updating_title" msgid="6130548922615719689">"Setelan panggilan"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Setelan panggilan telepon hanya dapat diubah oleh pengguna admin."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Setelan (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId SIM data default:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Bandwidth DL (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Bandwidth UL (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Info Lokasi Sel (tidak digunakan lagi):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurasi Saluran Fisik LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Rasio Pembaruan Info Sel"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Semua Info Pengukuran Sel:"</string>
@@ -875,7 +882,7 @@
<string name="radio_info_roaming_label" msgid="6636932886446857120">"Roaming:"</string>
<string name="radio_info_imei_label" msgid="8947899706930120368">"IMEI"</string>
<string name="radio_info_call_redirect_label" msgid="4526480903023362276">"Pengalihan Panggilan:"</string>
- <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Jumlah Setel Ulang PPP Sejak Boot:"</string>
+ <string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"Jumlah Reset PPP Sejak Boot:"</string>
<string name="radio_info_current_network_label" msgid="3052098695239642450">"Jaringan Saat Ini:"</string>
<string name="radio_info_ppp_received_label" msgid="5753592451640644889">"Data Diterima:"</string>
<string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Layanan Suara:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Setel"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index cc6bc3b..4a467ea 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Aðeins aðalnotandinn má breyta talhólfsstillingum."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Opnað var fyrir SIM-kortið. Verið er að opna símann…"</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN-númer SIM-korts til að opna síma"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM-kort læst fyrir símafyrirtæki"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Taka úr lás"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Hunsa"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Biður um að símkerfi sé opnað…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Áframsendir í <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Slökkt"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Símafyrirtækið leyfir ekki að slökkt sé á símtalsflutningi þegar ekki næst í símann."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Símafyrirtækið þitt styður ekki símtalsflutning."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Viltu kveikja á símtölum í bið?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Þú færð tilkynningu um móttekið símtal ef þú ert að tala í símann"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Kveikja"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Hætta"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Kveikt er á CDMA-símtölum í bið undir spjalli"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Slökkt er á CDMA-símtölum í bið undir spjalli"</string>
<string name="updating_title" msgid="6130548922615719689">"Símtalsstillingar"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Aðeins stjórnandinn má breyta símtalsstillingum."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Stillingar (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Undirauðkenni sjálfgefins SIM-korts fyrir gögn:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Niðurhalsbandvídd (kb/sek.):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Upphleðslubandvídd (kb/sek.):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Staðsetningarupplýsingar loftneta (úrelt):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE-rásarstilling:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Endurnýjunartíðni loftnetaupplýsinga:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Allar mælingarupplýsingar loftneta:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Stilla"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index c2dbb78..c05ac00 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Le impostazioni della segreteria possono essere modificate solo dall\'utente principale."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"La SIM è stata sbloccata. Sblocco del telefono..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN sblocco rete SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM bloccata per l\'operatore"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Sblocca"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Chiudi"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Richiesta sblocco rete..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Deviazione al numero <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"OFF"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Il tuo operatore non supporta la disattivazione dell\'inoltro chiamate quando il telefono non è raggiungibile."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Il tuo operatore non supporta la deviazione chiamate."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Attiva avviso di chiamata"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Durante una telefonata, riceverai una notifica per le chiamate in entrata"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Attiva"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Annulla"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Avviso di chiamata CDMA con IMS attivato"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Avviso di chiamata CDMA con IMS disattivato"</string>
<string name="updating_title" msgid="6130548922615719689">"Impostazioni chiamate"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Le impostazioni delle chiamate possono essere modificate solo dall\'utente amministratore."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Impostazioni (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"ID secondario della SIM dati predefinita:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Larghezza di banda DL (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Larghezza di banda UL (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informazioni sulla posizione delle celle (obsoleto):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configurazione canale fisico LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frequenza di aggiornamento delle informazioni sulle celle:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Informazioni sulla misurazione di tutte le celle:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Imposta"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index a2a2f69..3d397d0 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"רק המשתמש הראשי יכול לשנות את ההגדרות של הדואר הקולי."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"בוטלה החסימה של כרטיס SIM. מבטל את חסימת הטלפון..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN לביטול נעילה של רשת SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"כרטיס ה-SIM נעול על ידי הספק הסלולרי"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"בטל נעילה"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"סגור"</string>
<string name="requesting_unlock" msgid="930512210309437741">"מבקש ביטול נעילת רשת..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"מעביר אל <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"כבוי"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"הספק שלך לא תומך בהשבתה של העברת שיחות כאשר הטלפון כבוי."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"הספק הסלולרי שלך לא תומך בהעברת שיחות."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"רוצה להפעיל את השיחה הממתינה?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"יוצגו לך התראות על שיחות שנכנסות במהלך שיחות אחרות"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"הפעלה"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"ביטול"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"השיחה הממתינה ברשת CDMA ב-IMS פועלת"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"השיחה הממתינה ברשת CDMA ב-IMS מושבתת"</string>
<string name="updating_title" msgid="6130548922615719689">"הגדרות שיחה"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"רק מנהל המערכת יכול לשנות הגדרות שיחה."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"הגדרות (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -873,7 +881,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"תת-מזהה של כרטיס ה-SIM עם חבילת גלישה המוגדר כברירת מחדל:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"רוחב פס DL (ב-kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"רוחב פס UL (ב-kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"מידע על מיקום סלולרי (הוצא משימוש):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"תצורת ערוץ פיזי של LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"קצב רענון של מידע סלולרי:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"כל המידע של מדידה סלולרית:"</string>
@@ -904,6 +911,11 @@
<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_nr_frequency" msgid="1201156032796584128">"תדירות 5G NR:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"הגדרת מצב תדרים של רדיו"</string>
<string name="band_mode_loading" msgid="795923726636735967">"טוען רשימת תדרים…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"הגדרה"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index e6e04d7..e571695 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"ボイスメール設定を変更できるのはメインユーザーのみに限られています。"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIMカードロックを解除しました。デバイスのロックを解除しています..."</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM のネットワーク ロック解除 PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"携帯通信会社の SIM ロックがかかっています"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"ロック解除"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"無効"</string>
<string name="requesting_unlock" msgid="930512210309437741">"ネットワークのロック解除をリクエスト中..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g>に転送する"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"OFF"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"ご利用の携帯通信会社は着信不能時の転送の無効化をサポートしていません。"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"ご利用の携帯通信会社では電話の転送機能がサポートされていません。"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"通話中着信を ON にしますか?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"通話中でも他の通話の着信通知が届きます"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"ON にする"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"キャンセル"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS での CDMA 通話中着信が ON になっています"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS での CDMA 通話中着信が OFF になっています"</string>
<string name="updating_title" msgid="6130548922615719689">"通話設定"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"通話設定は管理者ユーザーのみが変更できます。"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"設定(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"デフォルトのデータ SIM の SUBID:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL 帯域幅(kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL 帯域幅(kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"セルの位置情報(サポート終了):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE の物理チャネル設定:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"セル情報の更新間隔:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"すべてのセルの測定情報:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR 周波数:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"無線バンドモードの設定"</string>
<string name="band_mode_loading" msgid="795923726636735967">"バンドリストを読み込み中…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"設定"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index e85ff0b..17ad78e 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"ხმოვანი ფოსტის პარამეტრების შეცვლა მხოლოდ ძირითად მომხმარებელს შეუძლია."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"თქვენი SIM ბარათი განიბლოკა. მიმდინარეობს თქვენი ტელეფონის განბლოკვა…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM ქსელის განბლოკვის PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM ჩაკეტილია ოპერატორისთვის"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"განბლოკვა"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"იგნორირება"</string>
<string name="requesting_unlock" msgid="930512210309437741">"ქსელის განბლოკვის მოთხოვნა…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"გადამისამართება <xliff:g id="PHONENUMBER">{0}</xliff:g>-ზე"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"გამორთული"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"თქვენს ოპერატორს ტელეფონის მიუწვდომელობის დროს ზარის გადამისამართების გაუქმების მხარდაჭერა არ გააჩნია."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"თქვენი ოპერატორი ზარის გადამისამართებას მხარს არ უჭერს."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"გსურთ ზარის ლოდინის ჩართვა?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"ზარის დროს გეცნობებათ შემომავალი ზარების შესახებ"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"ჩართვა"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"გაუქმება"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA ზარის ლოდინი IMS-ში ჩართულია"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA ზარის ლოდინი IMS-ში გამორთულია"</string>
<string name="updating_title" msgid="6130548922615719689">"ზარის პარამეტრები"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"ზარის პარამეტრების შეცვლა მხოლოდ მომხმარებელ-ადმინისტრატორს შეუძლია."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"პარამეტრები (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"მონაცემების ნაგულისხმევი SIM-ის subId:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-არხის გამტარუნარიანობა (კბიტ/წმ):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-არხის გამტარუნარიანობა (კბიტ/წმ):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ფიჭური მდებარეობის ინფორმაცია (მოძველდა):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ფიზიკური არხის კონფიგურაცია:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ფიჭური ინფორმაციის განახლების სიხშირე:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"სრული ინფორმაცია ფიჭური ქსელის შესახებ:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR-ის სიხშირე:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"რადიოდიაპაზონის რეჟიმის დაყენება"</string>
<string name="band_mode_loading" msgid="795923726636735967">"მიმდინარეობს დიაპაზონთა სიის ჩატვირთვა…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"დაყენება"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index cfd4406..25b6e87 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Дауыстық пошта параметрлерін тек негізгі пайдаланушы өзгерте алады."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM картаңыз ашылды. Телефоныңыздың бекітпесі ашылуда…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM желісін ашатын PIN код"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM картасы келесі операторға құлыпталған"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Бекітпесін ашу"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Бас тарту"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Желінің бекітпесін ашуды өтінуде…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> нөміріне бағытталуда"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Өшірулі"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Телефоныңыз қол жетімсіз болғанда жабдықтаушы қоңырауды басқа нөмірге бағыттауды өшіруді қолдамайды."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Операторыңыз қоңырауды басқа нөмірге бағыттауды қолдамайды."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Басқа желідегі қоңырау мүмкіндігін қосу керек пе?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Сөйлесіп жатқанда сізге кіріс қоңыраулар туралы хабарландыру көрсетіледі."</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Қосу"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Бас тарту"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS бойынша басқа CDMA желісіндегі қоңырау мүмкіндігі қосулы."</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS бойынша басқа CDMA желісіндегі қоңырау мүмкіндігі өшірулі."</string>
<string name="updating_title" msgid="6130548922615719689">"Қоңырау параметрлері"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Қоңырау параметрлерін тек әкімші пайдаланушы өзгерте алады."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Параметрлер (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Әдепкі деректер SIM картасының қосалқы идентификаторы:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL өткізу мүмкіндігі (кбит/сек):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL өткізу мүмкіндігі (кбит/сек):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Ұялы желінің орналасқан жері туралы ақпарат (қолданыстан шығарылды):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE физикалық арна конфигурациясы:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Ұялы желі туралы ақпаратты жаңарту жиілігі:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Барлық ұялы желі өлшемдері туралы ақпарат:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR жиілігі:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"Радиожолақ режимін орнату"</string>
<string name="band_mode_loading" msgid="795923726636735967">"Жолақтар тізімі жүктелуде…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"Орнату"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 0ed3ce6..e87cdc5 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"មានតែអ្នកប្រើប្រាស់ចម្បងទើបអាចកែប្រែការកំណត់សារជាសំឡេងបាន។"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"បានដោះសោស៊ីមកាតរបស់អ្នក។ ទូរស័ព្ទរបស់អ្នកកំពុងដោះសោ…"</string>
<string name="label_ndp" msgid="7617392683877410341">"ដោះសោកូដ PIN បណ្ដាញស៊ីមកាត"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"ស៊ីមត្រូវបានចាក់សោសម្រាប់ប្រតិបត្តិករ"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"ដោះសោ"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"បោះបង់"</string>
<string name="requesting_unlock" msgid="930512210309437741">"កំពុងស្នើដោះសោបណ្ដាញ…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"បញ្ជូនបន្តទៅ <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"បិទ"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"ក្រុមហ៊ុនបញ្ជូនរបស់អ្នកមិនគាំទ្រការបិទការហៅបញ្ជូនបន្ត នៅពេលទូរស័ព្ទរបស់អ្នកមិនអាចហៅចូល។"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"ក្រុមហ៊ុនសេវាទូរសព្ទរបស់អ្នកមិនផ្ដល់ជូនការហៅបន្តទេ។"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"បើកការរង់ចាំការហៅទូរសព្ទឬ?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"ក្នុងពេលហៅទូរសព្ទ អ្នកនឹងទទួលបានការជូនដំណឹងអំពីការហៅចូល"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"បើក"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"បោះបង់"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"ការរង់ចាំការហៅ ទូរសព្ទ CDMA ក្រោម IMS ត្រូវបានបើក"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"ការរង់ចាំការហៅ ទូរសព្ទ CDMA ក្រោម IMS ត្រូវបានបិទ"</string>
<string name="updating_title" msgid="6130548922615719689">"កំណត់ការហៅ"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"ការកំណត់ការហៅអាចផ្លាស់ប្តូរបានដោយអ្នកប្រើដែលមានសិទ្ធិគ្រប់គ្រងតែប៉ុណ្ណោះ។"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"ការកំណត់ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"លេខសម្គាល់រងរបស់ស៊ីមទិន្នន័យលំនាំដើម៖"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"កម្រិតបញ្ជូន DL (kbps) ៖"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"កម្រិតបញ្ជូន UL (kbps) ៖"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ព័ត៌មានទីតាំងទូរសព្ទចល័ត (បានបញ្ឈប់)៖"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"ការកំណត់រចនាសម្ព័ន្ធបណ្ដាញរូបវ័ន្ត LTE ៖"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"អត្រាផ្ទុកឡើងវិញនៃព័ត៌មានទូរសព្ទចល័ត៖"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ព័ត៌មានវាស់ទូរសព្ទចល័តទាំងអស់៖"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"កម្រិតញឹកញាប់នៃ NR៖"</string>
<string name="band_mode_title" msgid="7988822920724576842">"កំណត់មុខងារកម្រិតបញ្ជូនវិទ្យុ"</string>
<string name="band_mode_loading" msgid="795923726636735967">"កំពុងដំណើរការបញ្ជីក្រុម…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"កំណត់"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index f03fd0d..6f92cfd 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"ಧ್ವನಿಮೇಲ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಕೇವಲ ಪ್ರಾಥಮಿಕ ಬಳಕೆದಾರರು ಮಾತ್ರ ಮಾರ್ಪಡಿಸಬಹುದು."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"ನಿಮ್ಮ ಸಿಮ್ ಕಾರ್ಡ್ನ ನಿರ್ಬಂಧವನ್ನು ತೆಗೆಯಲಾಗಿದೆ. ನಿಮ್ಮ ಫೋನ್ ಅನ್ಲಾಕ್ ಆಗುತ್ತಿದೆ…"</string>
<string name="label_ndp" msgid="7617392683877410341">"ಸಿಮ್ ನೆಟ್ವರ್ಕ್ನ ಅನ್ಲಾಕ್ ಮಾಡುವ ಪಿನ್"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"ಆಪರೇಟರ್ಗಾಗಿ SIM ಅನ್ನು ಲಾಕ್ ಮಾಡಲಾಗಿದೆ"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"ಅನ್ಲಾಕ್"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"ವಜಾಗೊಳಿಸಿ"</string>
<string name="requesting_unlock" msgid="930512210309437741">"ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ವಿನಂತಿಸಲಾಗುತ್ತಿದೆ…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> ಗೆ ಫಾರ್ವರ್ಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"ಆಫ್"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ತಲುಪಲಾಗದಿದ್ದಾಗ ನಿಮ್ಮ ವಾಹಕ ಕರೆ ಫಾರ್ವರ್ಡ್ ಮಾಡುವಿಕೆ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"ನಿಮ್ಮ ವಾಹಕವು ಕರೆ ಫಾರ್ವರ್ಡ್ ಮಾಡುವಿಕೆಯನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"ಕರೆ ನಿರೀಕ್ಷೆಯನ್ನು ಆನ್ ಮಾಡಬೇಕೆ?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"ಕರೆಯ ಸಮಯದಲ್ಲಿ, ಒಳಬರುವ ಕರೆಗಳ ಕುರಿತು ನಿಮಗೆ ಸೂಚಿಸಲಾಗುತ್ತದೆ"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"ಆನ್ ಮಾಡಿ"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"ರದ್ದುಮಾಡಿ"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS ಆನ್ ಅಡಿಯಲ್ಲಿ CDMA ಕರೆ ನಿರೀಕ್ಷೆ"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS ಆಫ್ ಅಡಿಯಲ್ಲಿ CDMA ಕರೆ ನಿರೀಕ್ಷೆ"</string>
<string name="updating_title" msgid="6130548922615719689">"ಕರೆ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"ಕರೆ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಕೇವಲ ನಿರ್ವಾಹಕ ಬಳಕೆದಾರರು ಮಾತ್ರ ಬದಲಾಯಿಸಬಹುದು."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"ಸೆಟ್ಟಿಂಗ್ಗಳು (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"ಡೀಫಾಲ್ಟ್ ಡೇಟಾ ಸಿಮ್ನ ವಿಷಯಐಡಿ:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ಬ್ಯಾಂಡ್ವಿಡ್ತ್ (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL ಬ್ಯಾಂಡ್ವಿಡ್ತ್ (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ಸೆಲ್ ಸ್ಥಳ ಮಾಹಿತಿ (ತಡೆಹಿಡಿಯಲಾಗಿದೆ):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ಭೌತಿಕ ಚಾನೆಲ್ ಕಾನ್ಫಿಗರೇಶನ್:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ಸೆಲ್ ಮಾಹಿತಿ ರಿಫ್ರೆಶ್ ದರ:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ಎಲ್ಲಾ ಸೆಲ್ ಮಾಪನ ಮಾಹಿತಿ:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR ಫ್ರೀಕ್ವೆನ್ಸಿ:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"ರೇಡಿಯೋ ಬ್ಯಾಂಡ್ ಮೋಡ್ ಹೊಂದಿಸಿ"</string>
<string name="band_mode_loading" msgid="795923726636735967">"ಬ್ಯಾಂಡ್ ಪಟ್ಟಿಯನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"ಹೊಂದಿಸಿ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index ba69d3b..94dfa8f 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"기본 사용자만 음성사서함 설정을 변경할 수 있습니다."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM 카드의 잠금이 해제되었습니다. 휴대전화의 잠금해제 중..."</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM 네트워크 잠금해제 PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"이동통신사 전용으로 SIM 잠김"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"잠금해제"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"취소"</string>
<string name="requesting_unlock" msgid="930512210309437741">"네트워크 잠금해제 요청 중..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g>(으)로 착신전환"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"사용 안함"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"이동통신사에서 전화를 받을 수 없을 때 착신전환 사용 중지를 지원하지 않습니다."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"사용 중인 이동통신사에서는 착신전환 기능을 지원하지 않습니다."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"통화중 대기를 사용 설정하시겠습니까?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"통화 중 다른 전화가 걸려 오면 알림을 받습니다."</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"사용 설정"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"취소"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS에서 CDMA 통화중 대기 사용"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS에서 CDMA 통화중 대기 사용 안함"</string>
<string name="updating_title" msgid="6130548922615719689">"통화 설정"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"관리자만 통화 설정을 변경할 수 있습니다."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"설정(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"기본 데이터 SIM의 subId:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL 대역폭(kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL 대역폭(kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"셀 위치 정보(사용 중단됨):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE 물리적 채널 구성:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"셀 정보 새로고침 빈도:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"모든 셀 측정 정보:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR 빈도:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"무선 주파수 대역 모드 설정"</string>
<string name="band_mode_loading" msgid="795923726636735967">"대역 목록 로드 중…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"설정"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 17fe829..a9c8a83 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Үн почта жөндөөлөрүн алгачкы колдонуучу гана өзгөртө алат."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM картаңыз бөгөттөн чыгарылган. Телефонуңуздун кулпусу ачылууда…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM-карта тармагынын кулпусун ачуучу PIN код"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM-карта оператор үчүн кулпуланган"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Кулпусун ачуу"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Этибарга албоо"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Тармак кулпусун ачуу суралууда…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> номерине багытталууда"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Өчүк"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Сиздин операторуңуз, телефон жеткиликсиз болгондо чалууну багыттоону токтотууну колдобойт."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Операторуңуз чалууну багыттоо функциясын колдобойт."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Чалууну күтүү күйгүзүлсүнбү?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Чалуу учурунда кирүүчү чалуулар тууралуу кабар аласыз"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Күйгүзүү"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Баш тартуу"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS платформасында CDMA чалуу күтүүcү күйгүзүлгөн"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS платформасында CDMA чалуу күтүүcү өчүрүлгөн"</string>
<string name="updating_title" msgid="6130548922615719689">"Чалуу жөндөөлөрү"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Чалуу жөндөөлөрүн администратор гана өзгөртө алат."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Жөндөөлөр (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -464,9 +472,9 @@
<string name="delete_fdn_contact" msgid="7027405651994507077">"Туруктуу терүү номерин жок кылуу"</string>
<string name="deleting_fdn_contact" msgid="6872320570844460428">"Туруктуу терүү номери жок кылынууда…"</string>
<string name="fdn_contact_deleted" msgid="1680714996763848838">"Туруктуу терүү номери өчүрүлдү."</string>
- <string name="pin2_invalid" msgid="2313954262684494442">"БНТ жаңыртылган жок, анткени туура эмес PIN-код киргизилди."</string>
- <string name="fdn_invalid_number" msgid="9067189814657840439">"Уруксат берилген номер жаңыртылган жок, себеби жазылган номердин саны <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ашпашы керек."</string>
- <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"БНТ жаңыртылган жок. PIN2 туура эмес, же телефон номуру жараксыз."</string>
+ <string name="pin2_invalid" msgid="2313954262684494442">"БНТ жаңырган жок, анткени туура эмес PIN-код киргизилди."</string>
+ <string name="fdn_invalid_number" msgid="9067189814657840439">"Уруксат берилген номер жаңырган жок, себеби жазылган номердин саны <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ашпашы керек."</string>
+ <string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"БНТ жаңырган жок. PIN2 туура эмес, же телефон номуру жараксыз."</string>
<string name="fdn_failed" msgid="216592346853420250">"БНТ иши кыйрады."</string>
<string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM-картадан окулууда…"</string>
<string name="simContacts_empty" msgid="1135632055473689521">"SIM картаңызда байланыштар жок."</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Демейки оператордун SIM картасынын көз салуу идентификатору:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL өткөрүү жөндөмдүүлүгү (кб/сек.):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL өткөрүү жөндөмдүүлүгү (кб/сек.):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Уюлдук тармакта жайгашкан жери тууралуу маалымат (жоюлган):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE физикалык каналынын конфигурациясы:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Уюлдук маалыматты жаңылоо ылдамдыгы:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Уюлдук чен-өлчөм маалыматтары:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR жыштыгы:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"Радио жыштыгынын режимин коюу"</string>
<string name="band_mode_loading" msgid="795923726636735967">"Жыштык режиминин тизмеси жүктөлүүдө…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"Жөндөө"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 0534a5f..e106463 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"ການຕັ້ງຄ່າຂໍ້ຄວາມສຽງສາມາດແກ້ໄຂໄດ້ໂດຍຜູ້ໃຊ້ຫຼັກເທົ່ານັ້ນ."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"ຍົກເລີກການປິດກັ້ນ SIM card ຂອງທ່ານແລ້ວ. ໂທລະສັບຂອງທ່ານກຳລັງຖືກປົດລັອກ..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN ປົດລັອກເຄືອຂ່າຍ SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"ລັອກ SIM ສຳລັບຜູ້ໃຫ້ບໍລິການແລ້ວ"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"ປົດລັອກ"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"ປິດໄວ້"</string>
<string name="requesting_unlock" msgid="930512210309437741">"ກຳລັງຮ້ອງຂໍການປົດລັອກເຄືອຂ່າຍ..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"ໂອນສາຍໄປໃຫ້ <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"ປິດ"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"ຜູ່ໃຫ້ບໍລິການຂອງທ່ານ ບໍ່ຮອງຮັບການປິດການໂອນສາຍ ເມື່ອໂທລະສັບຂອງທ່ານບໍ່ມີສັນຍານ."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"ຜູ້ໃຫ້ບໍລິການຂອງທ່ານບໍ່ຮອງຮັບການໂອນສາຍ."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"ເປີດການລໍຖ້າສາຍບໍ?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"ໃນລະຫວ່າງການໂທ, ທ່ານຈະໄດ້ຮັບແຈ້ງກ່ຽວກັບສາຍໂທເຂົ້າ"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"ເປີດ"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"ຍົກເລີກ"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"ການລໍຖ້າສາຍ CDMA ພາຍໃຕ້ IMS ເປີດຢູ່"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"ການລໍຖ້າສາຍ CDMA ພາຍໃຕ້ IMS ປິດຢູ່"</string>
<string name="updating_title" msgid="6130548922615719689">"ການຕັ້ງຄ່າການໂທ"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"ມີແຕ່ຜູ້ໃຊ້ທີ່ເປັນຜູ້ດູແລລະບົບເທົ່ານັ້ນທີ່ສາມາດປ່ຽນການຕັ້ງຄ່າການໂທໄດ້."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"ການຕັ້ງຄ່າ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId ຂອງຊິມອິນເຕີເນັດເລີ່ມຕົ້ນ:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"ແບນວິດ DL (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"ແບນວິດ UL (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ຂໍ້ມູນສະຖານທີ່ມືຖື (ສິ້ນສຸດການສະໜັບສະໜຸນແລ້ວ):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"ການຕັ້ງຄ່າຊ່ອງ LTE ກາຍະພາບ:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ອັດຕາການໂຫຼດຄືນໃໝ່ຂອງຂໍ້ມູນມືຖື:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ຂໍ້ມູນການວັດແທກມືຖືທັງໝົດ:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"ຄວາມຖີ່ NR:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"ຕັ້ງໂໝດແຖບຄວາມຖີ່ວິທະຍຸ"</string>
<string name="band_mode_loading" msgid="795923726636735967">"ກຳລັງດາວໂຫລດລາຍຊື່ແຖບຄວາມຖີ່..."</string>
<string name="band_mode_set" msgid="6657819412803771421">"ກຳນົດ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index bc170a8..7af54c0 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Balso pašto nustatymus gali keisti tik pagrindinis naudotojas."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Jūsų SIM kortelė buvo atblokuota. Atrakinamas telefonas..."</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM tinklo atrakinimo PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM kortelę užrakino operatorius"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Atblokuoti"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Atsisakyti"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Pateikiama užklausa atrakinti tinklą..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Peradresuojama į <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Išjungta"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Operatorius nepalaiko skambučių peradresavimo išjungimo, kai telefonas nepasiekiamas."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Operatorius nepalaiko skambučių peradresavimo."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Įjungti laukiamų skambučių paslaugą?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Per skambutį jums bus pranešta apie laukiamus skambučius"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Įjungti"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Atšaukti"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA laukiamų skambučių paslauga įjungus IMS įjungta"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA laukiamų skambučių paslauga įjungus IMS išjungta"</string>
<string name="updating_title" msgid="6130548922615719689">"Skambinimo nustatymai"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Skambučių nustatymus gali keisti tik administruojantis naudotojas."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Nustatymai (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -875,7 +883,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Numatytųjų duomenų SIM kortelės papildomas ID:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL pralaidumas (Kb/s):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL pralaidumas (Kb/s):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobiliojo ryšio vietovės informacija (nebenaudojama):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE fizinio kanalo konfigūracija:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobiliojo ryšio informacijos atnaujinimo dažnis:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Visų mobiliųjų ryšių įvertinimo informacija:"</string>
@@ -906,6 +913,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Nustatyti"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index eea7b3a..12af068 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Tikai galvenais lietotājs var mainīt balss pasta iestatījumus."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM karte ir atbloķēta. Notiek tālruņa atbloķēšana..."</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM tīkla atbloķēšanas PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM karte ir bloķēta operatoram"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Atbloķēt"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Noraidīt"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Notiek tīkla atbloķēšanas pieprasīšana..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Pāradresēšana uz: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Izslēgts"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Jūsu mobilo sakaru operators neatbalsta zvanu pāradresācijas atspējošanu, ja tālrunis nav sasniedzams."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Jūsu mobilo sakaru operators neatbalsta zvanu pāradresāciju."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Vai ieslēgt zvanu gaidīšanu?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Zvana laikā saņemsiet paziņojumu par ienākošajiem zvaniem"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Ieslēgt"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Atcelt"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA zvanu gaidīšana, kad ir ieslēgts tūlītējās ziņojumapmaiņas pakalpojums"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA zvanu gaidīšana, kad ir izslēgts tūlītējās ziņojumapmaiņas pakalpojums"</string>
<string name="updating_title" msgid="6130548922615719689">"Zvanu iestatījumi"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Tikai lietotājs ar administratora tiesībām var mainīt zvanu iestatījumus."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Iestatījumi (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -522,7 +530,7 @@
<string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"Balss pasta numurs nav zināms."</string>
<string name="notification_network_selection_title" msgid="255595526707809121">"Nav pakalpojuma"</string>
<string name="notification_network_selection_text" msgid="553288408722427659">"Atlasītais tīkls (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nav pieejams"</string>
- <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Lai veiktu zvanu, ieslēdziet mobilo tīklu, izslēdziet lidojuma režīmu vai izslēdziet akumulatora jaudas taupīšanas režīmu."</string>
+ <string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Lai veiktu zvanu, ieslēdziet mobilo tīklu, izslēdziet lidojuma režīmu vai izslēdziet akumulatora enerģijas taupīšanas režīmu."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Lai veiktu zvanu, izslēdziet lidojuma režīmu."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Lai veiktu zvanu, izslēdziet lidojuma režīmu vai izveidojiet savienojumu ar bezvadu tīklu."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Lai veiktu parastu zvanu, izejiet no ārkārtas atzvana režīma."</string>
@@ -870,7 +878,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Noklusējuma datu SIM kartes papildu ID:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL joslas platums (kb/s):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL joslas platums (kb/s):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobilā tālruņa atrašanās vietas informācija (novecojusi):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE fiziskā kanāla konfigurācija:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Mobilā tīkla informācijas atsvaidzināšanas biežums:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Visa mobilā tīkla mērījumu informācija:"</string>
@@ -901,6 +908,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Iestatīt"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 9f8c46a..3fb7fb1 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Поставките за говорна пошта може да ги измени само примарниот корисник."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Вашата SIM картичка е одблокирана. Вашиот телефон се отклучува..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN за отклучување мрежа на SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM-картичката е заклучена за операторот"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Отклучи"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Отфрли"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Барање за отклучување мрежа..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Проследување на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Исклучено"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Вашиот оператор не поддржува оневозможување проследување повик кога вашиот телефон е недостапен."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Вашиот оператор не поддржува проследување повик."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Да се вклучи повик на чекање?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Во текот на повик ќе добиете известување за дојдовни повици"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Вклучи"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Откажи"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Повикот на чекање CDMA под IMS е вклучен"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Повикот на чекање CDMA под IMS е исклучен"</string>
<string name="updating_title" msgid="6130548922615719689">"Поставки за повици"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Поставките за повик може да ги измени само администраторскиот корисник."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Поставки (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SUBID на стандардната SIM за мобилен интернет:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Брзина на пренос при преземање (кбит/с):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Брзина на пренос при прикачување (кбит/с):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Информации за локација на мобилен (неподдржано):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфигурација на физички канал на LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Стапка на освежување на информациите за мобилниот:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Сите информации за мерењата на мобилниот:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"Фреквенција на NR:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"Поставете режим на појас на радио"</string>
<string name="band_mode_loading" msgid="795923726636735967">"Се вчитува список на појаси…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"Постави"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index f947ee5..9d77826 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"പ്രാഥമിക ഉപയോക്താവിന് മാത്രമേ വോയ്സ്മെയിൽ ക്രമീകരണം പരിഷ്ക്കരിക്കാനാവൂ."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"സിം കാർഡ് തടഞ്ഞത് മാറ്റി. നിങ്ങളുടെ ഫോൺ അൺലോക്കുചെയ്യുന്നു…"</string>
<string name="label_ndp" msgid="7617392683877410341">"സിം നെറ്റ്വർക്ക് അൺലോക്ക് പിൻ"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"ഓപ്പറേറ്റർക്കായി SIM ലോക്ക് ചെയ്തിരിക്കുന്നു"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"അൺലോക്കുചെയ്യുക"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"നിരസിക്കുക"</string>
<string name="requesting_unlock" msgid="930512210309437741">"നെറ്റ്വർക്ക് അൺലോക്ക് അഭ്യർത്ഥിക്കുന്നു…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> എന്നതിലേക്ക് കൈമാറുന്നു"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"ഓഫ്"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"നിങ്ങളുടെ ഫോൺ പരിധിയ്ക്ക് പുറത്തായിരിക്കുമ്പോൾ കോൾ ഫോർവേഡിംഗ് പ്രവർത്തനരഹിതമാക്കുന്നതിനെ നിങ്ങളുടെ ഓപ്പറേറ്റർ പിന്തുണയ്ക്കുന്നില്ല."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"നിങ്ങളുടെ സേവനദാതാവ് കോൾ കൈമാറ്റം പിന്തുണയ്ക്കുന്നില്ല."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"കോൾ വെയ്റ്റിംഗ് ഓണാക്കണോ?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"കോളിനിടയ്ക്ക് വരുന്ന മറ്റ് ഇൻകമിംഗ് കോളുകളെക്കുറിച്ച് നിങ്ങളെ അറിയിക്കും"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"ഓണാക്കുക"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"റദ്ദാക്കുക"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS-ന് കീഴിലുള്ള CDMA കോൾ വെയ്റ്റിംഗ് ഓണാണ്"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS-ന് കീഴിലുള്ള CDMA കോൾ വെയ്റ്റിംഗ് ഓഫാണ്"</string>
<string name="updating_title" msgid="6130548922615719689">"കോൾ ക്രമീകരണങ്ങൾ"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"അഡ്മിൻ ഉപയോക്താവിന് മാത്രമേ കോൾ ക്രമീകരണം മാറ്റാൻ കഴിയൂ."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"ക്രമീകരണം (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"ഡിഫോൾട്ട് ഡാറ്റാ സിമ്മിന്റെ ഉപഐഡി:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ബാൻഡ്വിത്ത് (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL ബാൻഡ്വിത്ത് (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"സെൽ ലൊക്കേഷൻ വിവരങ്ങൾ (അവസാനിപ്പിച്ചു):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ഫിസിക്കൽ ചാനൽ കോൺഫിഗറേഷൻ:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"സെൽ വിവരങ്ങൾ പുതുക്കിയെടുക്കൽ നിരക്ക്:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"എല്ലാ സെൽ അളവ് വിവരങ്ങളും:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR ഫ്രീക്വൻസി:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"റേഡിയോ ബാൻഡ് മോഡ് സജ്ജീകരിക്കുക"</string>
<string name="band_mode_loading" msgid="795923726636735967">"ബാൻഡ് ലിസ്റ്റ് ലോഡ് ചെയ്യുന്നു…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"സജ്ജീകരിക്കുക"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index fca82d8..f487305 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Дуут шуудангийн тохиргоог зөвхөн Үндсэн хэрэглэгч өөрчлөх боломжтой."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Таны SIM карт тайлагдлаа. Таны утас тайлагдаж байна…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM сүлжээ тайлах PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Операторын СИМ түгжигдсэн"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Тайлах"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Алгасах"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Сүлжээг тайлах хүсэлтийг илгээж байна…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> руу дамжуулж байна"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Идэвхгүй"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Таны үүрэн холбоо үзүүлэгчээс утас завгүй байхад дуудлагыг дамжуулахыг зогсоох үйлчилгээг дэмждэггүй."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Таны оператор компани дуудлага шилжүүлэхийг дэмждэггүй."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"\"Дуудлага хүлээлгэнд\" тохиргоог асаах уу?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Дуудлагын үеэр танд ирсэн дуудлагын талаар мэдэгдэнэ"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Асаах"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Болих"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS доорх CDMA-н \"Дуудлага хүлээлгэнд\" тохиргоо асаалттай байна"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS доорх CDMA-н \"Дуудлага хүлээлгэнд\" тохиргоо унтраалттай байна"</string>
<string name="updating_title" msgid="6130548922615719689">"Дуудлагын тохиргоо"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Дуудлагын тохиргоог зөвхөн админ хэрэглэгч солих боломжтой."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Тохиргоо (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Өгөгдмөл дата SIM-н SubId:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DLзурвасын өргөн (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL Зурвасын өргөн (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Үүрэн байршлын мэдээлэл (цуцалсан):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE Сувгийн бодит тохиргоо:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Үүрэн мэдээлэл сэргээх тариф:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Бүх үүрэн хэмжилтийн мэдээлэл:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR давтамж:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"Радио зурвасын горимыг тохируулах"</string>
<string name="band_mode_loading" msgid="795923726636735967">"Зурвасын жагсаалтыг ачаалж байна…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"Тохируулах"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 8cb48c4..f3d19f3 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"केवळ प्राथमिक वापरकर्ता व्हॉइसमेल सेटिंग्ज बदलू शकतो."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"तुमचे सिम कार्ड अवरोधित करणे रद्द केले गेले आहे. तुमचा फोन अनलॉक होत आहे…"</string>
<string name="label_ndp" msgid="7617392683877410341">"सिम नेटवर्क अनलॉक पिन"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"ऑपरेटरसाठी सिम लॉक केले आहे"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"अनलॉक करा"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"डिसमिस करा"</string>
<string name="requesting_unlock" msgid="930512210309437741">"नेटवर्क अनलॉकची विनंती करत आहे..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> वर अग्रेषित करत आहे"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"बंद"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"तुमचा फोन पोहचण्यायोग्य नसताना तुमचा वाहक कॉल अग्रेषण करणे अक्षम करण्यास समर्थन करीत नाही."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"तुमचा वाहक कॉल फॉरवर्डिंग करण्यास सपोर्ट करत नाही."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"कॉल वेटिंग सुरू करायचे आहे का?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"कॉल दरम्यान येणाऱ्या कॉलबद्दल तुम्हाला सूचित केले जाईल"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"सुरू करा"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"रद्द करा"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS मध्ये CDMA कॉल वेटिंग सुरू आहे"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS मध्ये CDMA कॉल वेटिंग बंद आहे"</string>
<string name="updating_title" msgid="6130548922615719689">"कॉल सेटिंग्ज"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"कॉल सेटिंग्ज केवळ प्रशासक वापरकर्त्याद्वारे बदलल्या जाऊ शकतात."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"सेटिंग्ज (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"डीफॉल्ट डेटा सिम SubId:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL बँडविड्थ (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL बँडविड्थ (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"सेल स्थान माहिती (कालबाह्य झाली):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE फिजिकल चॅनेल कॉंफिगरेशन:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"सेल माहिती रिफ्रेश रेट:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"सर्व सेल परिमाण माहिती:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR वारंवारता:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"रेडिओ बँड मोड सेट करा"</string>
<string name="band_mode_loading" msgid="795923726636735967">"बँड सूची लोड करत आहे…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"सेट करा"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 6224356..f9829bd 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Tetapan Mel Suara hanya boleh diubah suai oleh Pengguna Utama."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Kad SIM anda telah dinyahsekat. Telefon anda dibuka kunci..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN buka kunci rangkaian SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM dikunci untuk pengendali"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Buka kunci"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Ketepikan"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Meminta dibukakan kunci rangkaian..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Memajukan ke <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Dimatikan"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Pembawa anda tidak menyokong pelumpuhan pemajuan panggilan semasa telefon anda tidak boleh dihubungi."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Pembawa anda tidak menyokong pemajuan panggilan."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Hidupkan panggilan menunggu?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Semasa panggilan, anda akan diberitahu tentang panggilan masuk"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Hidupkan"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Batal"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Panggilan Menunggu CDMA di bawah IMS Dihidupkan"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Panggilan Menunggu CDMA di bawah IMS Dimatikan"</string>
<string name="updating_title" msgid="6130548922615719689">"Tetapan panggilan"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Tetapan panggilan hanya boleh diubah oleh pengguna pentadbir."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Tetapan (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId SIM data lalai:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Lebar Jalur DL (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Lebar Jalur UL (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Maklumat Lokasi Selular (ditamatkan):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurasi Saluran Fizikal LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Kadar Muat Semula Maklumat Selular:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Semua Maklumat Ukuran Selular:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Tetapkan"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index b622d73..43930e9 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"အသံမေးလ်ဆက်တင်များကို အဓိကအသုံးပြုသူသာ ပြင်ဆင်နိုင်ပါသည်။"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"သင့် ဆင်းမ်ကဒ်အား ပိတ်ဆို့မှုကို ဖယ်ရှားပြီးပါပြီ။ သင့်ဖုန်းဟာ သော့ဖွင့်နေပါသည်…"</string>
<string name="label_ndp" msgid="7617392683877410341">"ဆင်းမ်ကဒ် ကွန်ရက် သော့ဖွင့်သော ပင်နံပါတ်"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"အော်ပရေတာအတွက် ဆင်းမ်ကတ်ကို လော့ခ်ချထားသည်"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"ဖွင့်ရန်"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"ပယ်ရန်"</string>
<string name="requesting_unlock" msgid="930512210309437741">"ကွန်ယက်သော့ဖွင့်ခြင်း တောင်းဆိုနေပါသည်…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> သို့ခေါ်ဆိုမှုအား တဆင့်ထပ်ပို့နေသည်"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"ပိတ်ထားသည်"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"သင့် ဖုန်း ဆက်သွယ်မှု လုပ်လို့မရစဉ် call forwarding ပြုလုပ်မှု ပယ်ဖျက်ရန် သင့် အော်ပရေတာမှ ခွင့်မပြုပါ"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"သင်၏ ဝန်ဆောင်မှုပေးသူသည် အဝင်ဖုန်းကို ဆက်ပို့ပေးခြင်းအား ပံ့ပိုးမထားပါ။"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"အဝင်ဖုန်း စောင့်ဆိုင်းခြင်းကို ဖွင့်မလား။"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"ဖုန်းပြောနေစဉ် အဝင်ခေါ်ဆိုမှုများအတွက် သင့်ထံ အကြောင်းကြားပါမည်"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"ဖွင့်ရန်"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"မလုပ်တော့"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS အောက်ရှိ CDMA အဝင်ဖုန်း စောင့်ဆိုင်းခြင်းကို ဖွင့်ထားသည်"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS အောက်ရှိ CDMA အဝင်ဖုန်း စောင့်ဆိုင်းခြင်းကို ပိတ်ထားသည်"</string>
<string name="updating_title" msgid="6130548922615719689">"ဖုန်းခေါ်ဆိုခြင်း ဆက်တင်များ"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"ခေါ်ဆိုမှုကြိုတင်ပြင်ဆင်ချက်များကို ကြီးကြပ်သူသာလျှင် ပြောင်းလဲနိုင်သည်။"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"ဆက်တင်များ ( <xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g> )"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"မူရင်း ဒေတာဆင်းမ်ကဒ်အတွက် Id အခွဲ −"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL မြန်နှုန်း (kbps)−"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL မြန်နှုန်း (kbps)−"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ဆဲလ်လူလာတည်နေရာ အချက်အလက် (ကန့်ကွက်ထားသည်) −"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ရုပ်ပိုင်းဆိုင်ရာ ချန်နယ်စီစဉ်သတ်မှတ်မှု−"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ဆဲလ်လူလာ အချက်အလက် ရယူမှုနှုန်း −"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ဆဲလ်လူလာတိုင်းတာမှု အချက်အလက် အားလုံး −"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR ကြိမ်နှုန်း -"</string>
<string name="band_mode_title" msgid="7988822920724576842">"ရေဒီယိုလိုင်းမုဒ်အဖြစ် သတ်မှတ်ပါ"</string>
<string name="band_mode_loading" msgid="795923726636735967">"ရေဒီယိုလိုင်းစာရင်းကို ဖွင့်နေသည်…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"သတ်မှတ်ရန်"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 6629893..dc6d224 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Talepost-innstillinger kan bare endres av hovedbrukeren."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM-kortet er blitt avblokkert. Telefonen låses opp…"</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN-kode for å fjerne operatørlås"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM-kortet er operatørlåst"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Lås opp"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Skjul"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Spør om fjerning av operatørlås…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Viderekobler til <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Av"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Operatøren støtter ikke deaktivering av viderekobling når telefonen er utenfor dekning."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Operatøren støtter ikke viderekobling."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Vil du slå på «samtale venter»?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Du blir varslet om innkommende anrop under pågående samtaler"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Slå på"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Lukk"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA samtale venter under IMS er på"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA samtale venter under IMS er av"</string>
<string name="updating_title" msgid="6130548922615719689">"Samtaleinnstillinger"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Anropsinnstillinger kan bare endres av administratoren."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Innstillinger (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Under-ID for standard-SIM-kort for data:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Båndbredde for nedlasting (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Båndbredde for opplasting (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informasjon om celleposisjonen (avviklet):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurering av fysisk LTE-kanal:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Oppdateringsfrekvens for celleinformasjon:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"All informasjon for cellemåling:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Angi"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 68f5ddc..522b131 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"प्राथमिक प्रयोगकर्ताले मात्र भ्वाइस मेल सेटिङहरू परिमार्जन गर्न सक्नुहुन्छ।"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"तपाईँको SIM कार्ड अनब्लक गरिएको छ। तपाईँको फोन अनलक हुँदैछ ..."</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM नेटवर्क अनलक PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"अपरेटरका लागि SIM लक गरिएको छ"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"अनलोक गर्नुहोस्"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"खारेज गर्नुहोस्"</string>
<string name="requesting_unlock" msgid="930512210309437741">"नेटवर्क अनलक गर्न अनुरोध गर्दै..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> मा फर्वाड गर्दै"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"बन्द गर्नुहोस्"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"तपाईंको फोन पहुँचयोग्य नहुँदा तपाईंको केरियरले कल-फर्वार्डिङ असक्षम बनाउँदा समर्थन गर्दैन।"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"तपाईंको सेवा प्रदायकले कल फर्वार्ड गर्ने सुविधा उपलब्ध गराउँदैन।"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"कल प्रतीक्षाको सुविधा सक्रिय गर्ने हो?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"कल हुँदै गर्दा, तपाईंलाई आगमन कलबारे जानकारी दिइने छ"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"सक्रिय गर्नुहोस्"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"रद्द गर्नुहोस्"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS अन्तर्गत CDMA कल प्रतीक्षाको सुविधा सक्रिय छ"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS अन्तर्गत CDMA कल प्रतीक्षाको सुविधा निष्क्रिय छ"</string>
<string name="updating_title" msgid="6130548922615719689">"कल सेटिङहरू"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"कल सेटिङहरू केवल प्रशासकीय प्रयोगकर्ताद्वारा परिवर्तन गर्न सकिन्छ।"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"सेटिङहरू (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -648,7 +656,7 @@
<string name="voicemail_number_not_set" msgid="8831561283386938155">"सेट गरेको छैन"</string>
<string name="other_settings" msgid="8895088007393598447">"अन्य कल सेटिङहरू"</string>
<string name="calling_via_template" msgid="1791323450703751750">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> को मार्फत कल गर्दै"</string>
- <string name="contactPhoto" msgid="7885089213135154834">"सम्पर्क तस्बिर"</string>
+ <string name="contactPhoto" msgid="7885089213135154834">"सम्पर्क फोटो"</string>
<string name="goPrivate" msgid="4645108311382209551">"निजी जानुहोस्"</string>
<string name="selectContact" msgid="1527612842599767382">"सम्पर्क चयन गर्नुहोस्"</string>
<string name="not_voice_capable" msgid="2819996734252084253">"भ्वाइस कल गर्ने समर्थित छैन"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"पूर्वनिर्धारित डेटा SIM को SubId:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ब्यान्डविथ (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL व्यान्डविथ (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"सेलको स्थानबारे जानकारी (चल्तीबाट हटाइएको):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE को भौतिक च्यानलको कन्फिगरेसन:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"सेलसम्बन्धी जानकारीलाई पुनः ताजा गरिने दर:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"सेलको मापनसम्बन्धी सबै जानकारी:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR फ्रिक्वेन्सी:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"रेडियोको ब्यान्डसम्बन्धी मोडलाई सेट गर्नुहोस्"</string>
<string name="band_mode_loading" msgid="795923726636735967">"ब्यान्डको सूची लोड गर्दै…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"सेट गर्नुहोस्"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 63a4cf7..1013da8 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Voicemailinstellingen kunnen alleen worden gewijzigd door de primaire gebruiker."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Je simkaart is gedeblokkeerd. Je telefoon wordt ontgrendeld..."</string>
<string name="label_ndp" msgid="7617392683877410341">"Pincode voor ontgrendelen SIM-netwerk"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Simkaart vergrendeld voor provider"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Ontgrendelen"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Negeren"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Verzoek om ontgrendelen netwerk..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Doorschakelen naar <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Uit"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Je provider biedt geen ondersteuning voor het uitschakelen van oproepdoorschakelingen wanneer je telefoon niet bereikbaar is."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Je provider ondersteunt het doorschakelen van gesprekken niet."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Wisselgesprek inschakelen?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Tijdens een gesprek krijg je een melding over inkomende gesprekken"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Inschakelen"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Annuleren"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA-wisselgesprek onder IMS aan"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA-wisselgesprek onder IMS uit"</string>
<string name="updating_title" msgid="6130548922615719689">"Gespreksinstellingen"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Oproepinstellingen kunnen alleen worden gewijzigd door de beheerder."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Instellingen (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -506,7 +514,7 @@
<string name="pin2_attempts" msgid="5625178102026453023">\n"Je hebt nog <xliff:g id="NUMBER">%d</xliff:g> pogingen."</string>
<string name="pin2_unblocked" msgid="4481107908727789303">"PIN2 niet langer geblokkeerd"</string>
<string name="pin2_error_exception" msgid="8116103864600823641">"Netwerk- of simkaartfout"</string>
- <string name="doneButton" msgid="7371209609238460207">"Gereed"</string>
+ <string name="doneButton" msgid="7371209609238460207">"Klaar"</string>
<string name="voicemail_settings_number_label" msgid="1265118640154688162">"Voicemailnummer"</string>
<string name="card_title_dialing" msgid="8742182654254431781">"Kiezen"</string>
<string name="card_title_redialing" msgid="18130232613559964">"Opnieuw bellen"</string>
@@ -579,8 +587,8 @@
<string name="importToFDNfromContacts" msgid="5068664870738407341">"Importeren uit contacten"</string>
<string name="singleContactImportedMsg" msgid="3619804066300998934">"Contact geïmporteerd"</string>
<string name="failedToImportSingleContactMsg" msgid="228095510489830266">"Kan contact niet importeren"</string>
- <string name="hac_mode_title" msgid="4127986689621125468">"Gehoorapparaten"</string>
- <string name="hac_mode_summary" msgid="7774989500136009881">"Compatibiliteit voor gehoorapparaat inschakelen"</string>
+ <string name="hac_mode_title" msgid="4127986689621125468">"Hoortoestellen"</string>
+ <string name="hac_mode_summary" msgid="7774989500136009881">"Compatibiliteit voor hoortoestel inschakelen"</string>
<string name="rtt_mode_title" msgid="3075948111362818043">"Realtime tekstoproep (RTT)"</string>
<string name="rtt_mode_summary" msgid="8631541375609989562">"Berichten in een audiogesprek toestaan"</string>
<string name="rtt_mode_more_information" msgid="587500128658756318">"RTT helpt bellers die doof of slechthorend zijn, een spraakbeperking hebben of meer dan alleen een stem nodig hebben.<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>Meer informatie</a>\n <br><br> - RTT-gesprekken worden opgeslagen als berichttranscript.\n <br> - RTT is niet beschikbaar voor videogesprekken"</string>
@@ -602,9 +610,9 @@
<string name="ota_title_activate" msgid="4049645324841263423">"Je telefoon activeren"</string>
<string name="ota_touch_activate" msgid="838764494319694754">"Je moet een speciaal gesprek voeren om je telefoonservice te activeren. \n\nNadat je op \'Activeren\' hebt gedrukt, luister je naar de instructies om je telefoon te activeren."</string>
<string name="ota_hfa_activation_title" msgid="3300556778212729671">"Activeren..."</string>
- <string name="ota_hfa_activation_dialog_message" msgid="7921718445773342996">"De telefoon activeert je mobiele gegevensservice.\n\nDit kan tot vijf minuten duren."</string>
+ <string name="ota_hfa_activation_dialog_message" msgid="7921718445773342996">"De telefoon activeert je mobiele-dataservice.\n\nDit kan tot vijf minuten duren."</string>
<string name="ota_skip_activation_dialog_title" msgid="7666611236789203797">"Activering overslaan?"</string>
- <string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"Als je de activering overslaat, kun je niet bellen of verbinding maken met mobiele gegevensnetwerken (je kunt wel verbinding maken met wifi-netwerken). Tot je de telefoon activeert, wordt je gevraagd deze te activeren telkens wanneer je de telefoon inschakelt."</string>
+ <string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"Als je de activering overslaat, kun je niet bellen of verbinding maken met mobiele-datanetwerken (je kunt wel verbinding maken met wifi-netwerken). Tot je de telefoon activeert, wordt je gevraagd deze te activeren telkens wanneer je de telefoon inschakelt."</string>
<string name="ota_skip_activation_dialog_skip_label" msgid="5908029466817825633">"Overslaan"</string>
<string name="ota_activate" msgid="7939695753665438357">"Activeren"</string>
<string name="ota_title_activate_success" msgid="1272135024761004889">"De telefoon is geactiveerd."</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId van standaard simkaart voor data:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL-bandbreedte (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL-bandbreedte (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Mobiele locatiegegevens (beëindigd):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fysieke LTE-kanaalconfiguratie:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Vernieuwingsfrequentie van mobiele data:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alle mobiele meetgegevens:"</string>
@@ -898,6 +905,11 @@
<string name="radio_info_smsc_refresh_label" msgid="8409923721451604560">"Vernieuwen"</string>
<string name="radio_info_toggle_dns_check_label" msgid="1394078554927787350">"DNS-controle in-/uitschakelen"</string>
<string name="oem_radio_info_label" msgid="2914167475119997456">"OEM-specifieke gegevens/instellingen"</string>
+ <string name="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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Instellen"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 152473a..e0523e4 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"କେବଳ ପ୍ରାଥମିକ ୟୁଜରଙ୍କ ଦ୍ଵାରା ଭଏସମେଲ୍ ସେଟିଙ୍ଗକୁ ସଂଶୋଧିତ କରାଯାଇପାରିବ।"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"ଆପଣଙ୍କର SIM କାର୍ଡକୁ ଅବରୋଧ କରିଦିଆଯାଇଛି। ଆପଣଙ୍କର ଫୋନ୍ ଅନଲକ୍ ହେଉଛି…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM ନେଟ୍ୱର୍କକୁ ଅନଲକ୍ କରିବା ପାଇଁ PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"ଅପରେଟର୍ ପାଇଁ SIM ଲକ୍ କରାଯାଇଛି"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"ଅନଲକ୍ କରନ୍ତୁ"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"ଖାରଜ କରନ୍ତୁ"</string>
<string name="requesting_unlock" msgid="930512210309437741">"ନେଟ୍ୱର୍କକୁ ଅନଲକ୍ କରିବା ପାଇଁ ଅନୁରୋଧ କରାଯାଉଛି…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g>କୁ ଫରୱାର୍ଡ କରାଯାଉଛି"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"ବନ୍ଦ ଅଛି"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"ଆପଣଙ୍କର ଫୋନ୍ ଅପହଞ୍ଚ ଦୂରତାରେ ଥିବାବେଳେ ଆପଣଙ୍କର କେରିଅର୍ କଲ୍ ଫର୍ୱାର୍ଡିଙ୍ଗକୁ ଅକ୍ଷମ କରିବାରେ ସପୋର୍ଟ କରିବେ ନାହିଁ।"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"ଆପଣଙ୍କ ମୋବାଇଲ କମ୍ପାନୀ କଲ୍ ଫର୍ୱାର୍ଡିଂ ସୁବିଧାର ସମର୍ଥନ କରେ ନାହିଁ।"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"\'କଲ୍ ୱେଟିଂ\' ସୁବିଧା ଚାଲୁ କରିବେ?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"କଲ୍ ସମୟରେ, ଇନକମିଂ କଲଗୁଡ଼ିକ ବିଷୟରେ ଆପଣଙ୍କୁ ସୂଚିତ କରାଯିବ"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"ଚାଲୁ କରନ୍ତୁ"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"ବାତିଲ୍ କରନ୍ତୁ"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMSରେ CDMA \'କଲ୍ ୱେଟିଂ\' ସୁବିଧା ଚାଲୁ ଅଛି"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMSରେ CDMA \'କଲ୍ ୱେଟିଂ\' ସୁବିଧା ବନ୍ଦ ଅଛି"</string>
<string name="updating_title" msgid="6130548922615719689">"କଲ୍ ସେଟିଂସ୍"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"କଲ୍ ସେଟିଙ୍ଗକୁ କେବଳ ଆଡମିନ୍ ୟୁଜର୍ ବଦଳାଇପାରିବେ।"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"ସେଟିଙ୍ଗ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"ଡିଫଲ୍ଟ ଡାଟା SIMର SubId:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ବ୍ୟାଣ୍ଡୱିଡଥ୍ (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL ବ୍ୟାଣ୍ଡୱିଡଥ୍ (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ସେଲ୍ ଲୋକେସନ୍ ସୂଚନା (ଅନୁରୋଧ କରାଯାଇଛି):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ଫିଜିକାଲ୍ ଚ୍ୟାନେଲ୍ କନ୍ଫିଗରେସନ୍:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ସେଲ୍ ସୂଚନା ରିଫ୍ରେସ୍ ଦର:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ସମସ୍ତ ସେଲ୍ ପରିମାପ ସୂଚନା:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR ଫ୍ରିକ୍ୱେନ୍ସୀ:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"ରେଡିଓ ବ୍ୟାଣ୍ଡ ମୋଡ୍ ସେଟ୍ କରନ୍ତୁ"</string>
<string name="band_mode_loading" msgid="795923726636735967">"ବ୍ୟାଣ୍ଡ ତାଲିକା ଲୋଡ୍ କରାଯାଉଛି…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"ସେଟ୍ କରନ୍ତୁ"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 08d69b8..69da642 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"ਵੌਇਸਮੇਲ ਸੈਟਿੰਗਾਂ ਸਿਰਫ਼ ਪ੍ਰਾਇਮਰੀ ਵਰਤੋਂਕਾਰ ਦੁਆਰਾ ਹੀ ਸੰਸ਼ੋਧਿਤ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"ਤੁਹਾਡਾ SIM ਕਾਰਡ ਅਨਬਲੌਕ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ। ਤੁਹਾਡਾ ਫੋਨ ਅਨੌਲਕ ਹੋ ਰਿਹਾ ਹੈ..."</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM ਨੈਟਵਰਕ ਅਣਲਾਕ PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"ਓਪਰੇਟਰ ਲਈ ਸਿਮ ਲਾਕ ਕੀਤਾ ਗਿਆ"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"ਅਣਲਾਕ ਕਰੋ"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"ਖਾਰਜ ਕਰੋ"</string>
<string name="requesting_unlock" msgid="930512210309437741">"ਨੈਟਵਰਕ ਅਣਲਾਕ ਦੀ ਬੇਨਤੀ ਕਰ ਰਿਹਾ ਹੈ…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> ਨੂੰ ਫੌਰਵਾਰਡ ਕਰ ਰਿਹਾ ਹੈ"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"ਬੰਦ"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"ਜਦੋਂ ਤੁਹਾਡਾ ਫੋਨ ਨਾਪਹੁੰਚਯੋਗ ਹੁੰਦਾ ਹੈ ਤਾਂ ਤੁਹਾਡਾ ਕੈਰੀਅਰ ਕਾਲ ਫੌਰਵਾਰਡਿੰਗ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਉਣ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ।"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"ਤੁਹਾਡਾ ਕੈਰੀਅਰ ਕਾਲ ਫਾਰਵਰਡਿੰਗ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ ਹੈ।"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"ਕੀ ਕਾਲ ਦੀ ਉਡੀਕ ਸੈਟਿੰਗ ਨੂੰ ਚਾਲੂ ਕਰਨਾ ਹੈ?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"ਕਾਲ ਕਰਨ ਵੇਲੇ, ਤੁਹਾਨੂੰ ਇਨਕਮਿੰਗ ਕਾਲਾਂ ਬਾਰੇ ਸੂਚਿਤ ਕੀਤਾ ਜਾਵੇਗਾ"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"ਚਾਲੂ ਕਰੋ"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"ਰੱਦ ਕਰੋ"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS ਦੇ ਅਧੀਨ CDMA ਕਾਲ ਦੀ ਉਡੀਕ ਵਾਲੀ ਸੁਵਿਧਾ ਚਾਲੂ ਹੈ"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS ਦੇ ਅਧੀਨ CDMA ਕਾਲ ਦੀ ਉਡੀਕ ਵਾਲੀ ਸੁਵਿਧਾ ਬੰਦ ਹੈ"</string>
<string name="updating_title" msgid="6130548922615719689">"ਕਾਲ ਸੈਟਿੰਗਾਂ"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"ਕਾਲ ਸੈਟਿੰਗਾਂ ਸਿਰਫ਼ ਪ੍ਰਸ਼ਾਸਕ ਵਰਤੋਂਕਾਰ ਵੱਲੋਂ ਹੀ ਬਦਲੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"ਸੈਟਿੰਗਾਂ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"ਪੂਰਵ-ਨਿਰਧਾਰਤ ਡਾਟਾ ਸਿਮ ਦਾ SubId:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ਬੈਂਡਵਿਡਥ (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL ਬੈਂਡਵਿਡਥ (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ਸੈੱਲ ਦੀ ਟਿਕਾਣਾ ਜਾਣਕਾਰੀ (ਨਾਪਸੰਦ ਕੀਤੀ):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ਭੌਤਿਕ ਚੈਨਲ ਸੰਰੂਪਣ:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"ਸੈੱਲ ਦੀ ਜਾਣਕਾਰੀ ਦੀ ਰਿਫ੍ਰੈਸ਼ ਦਰ:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ਸਾਰੀ ਸੈੱਲ ਮਾਪ ਜਾਣਕਾਰੀ:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR ਵਾਰਵਾਰਤਾ:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"ਰੇਡੀਓ ਬੈਂਡ ਮੋਡ ਸੈੱਟ ਕਰੋ"</string>
<string name="band_mode_loading" msgid="795923726636735967">"ਬੈਂਡ ਸੂਚੀ ਲੋਡ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"ਸੈੱਟ ਕਰੋ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 410887c..4abf1d4 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Ustawienia poczty głosowej może zmienić tylko użytkownik główny."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Karta SIM została odblokowana. Odblokowywanie telefonu..."</string>
<string name="label_ndp" msgid="7617392683877410341">"Kod PIN do karty SIM odblokowujący sieć"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Urządzenie obsługuje tylko karty SIM operatora"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Odblokuj"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Zamknij"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Żądanie odblokowania sieci..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Przekierowanie na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Wyłączone"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Twój operator nie umożliwia wyłączenia przekazywania połączeń, gdy numer jest nieosiągalny."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Twój operator nie obsługuje przekierowania połączeń."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Włączyć połączenie oczekujące?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Podczas rozmowy otrzymasz powiadomienie o połączeniach przychodzących"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Włącz"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Anuluj"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Połączenie oczekujące CDMA, gdy usługa IMS jest włączona"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Połączenie oczekujące CDMA, gdy usługa IMS jest wyłączona"</string>
<string name="updating_title" msgid="6130548922615719689">"Ustawienia połączeń"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Ustawienia połączeń może zmieniać tylko użytkownik będący administratorem."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Ustawienia (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -873,7 +881,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Identyfikator domyślnej karty SIM do transmisji danych:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Przepustowość kanału DL (kb/s):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Przepustowość kanału UL (kb/s):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacje o lokalizacji z sieci komórkowej (wycofane):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracja kanału fizycznego LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Częstotliwość odświeżania informacji o sieci komórkowej:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Wszystkie informacje pomiarowe z sieci komórkowej:"</string>
@@ -904,6 +911,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Ustaw"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 3c33d08..e62b079 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"As definições do correio de voz só podem ser modificadas pelo utilizador principal."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"O cartão SIM foi desbloqueado. O telefone está a ser desbloqueado..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN para desbloqueio de rede do cartão SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM bloqueado para o operador"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Desbloquear"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Ignorar"</string>
<string name="requesting_unlock" msgid="930512210309437741">"A pedir desbloqueio de rede..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"A encaminhar para <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Desativado"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"O seu operador não suporta a desativação do encaminhamento de chamadas quando o telemóvel não está acessível."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"O seu operador não suporta encaminhamento de chamadas."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Ativar chamada em espera?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Durante uma chamada, será notificado sobre as chamadas recebidas."</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Ativar"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Cancelar"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Chamada em espera CDMA em IMS ativada"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Chamada em espera CDMA em IMS desativada"</string>
<string name="updating_title" msgid="6130548922615719689">"Definições de chamadas"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"As definições de chamadas só podem ser alteradas pelo utilizador gestor."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Definições (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubID do SIM de dados predefinido:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Largura de banda de transferência (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Largura de banda de carregamento (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informações da localização da célula (descontinuadas):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuração do canal físico LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Taxa de atualização das informações da célula:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Todas as informações de medição de células:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Definir"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 2aba7d2..7f88e82 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"As configurações do correio de voz só podem ser modificadas pelo usuário principal."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"O seu chip foi desbloqueado. O seu telefone está desbloqueando…"</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN de desbloqueio da rede SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Chip bloqueado para o operador"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Desbloquear"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Dispensar"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Solicitando o desbloqueio de rede…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Encaminhar para <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Desativado"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Sua operadora não suporta a desativação do encaminhamento de chamada quando seu telefone não está acessível."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Sua operadora não é compatível com o encaminhamento de chamada."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Ativar chamada em espera?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Durante uma chamada, você receberá notificações das chamadas recebidas"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Ativar"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Cancelar"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"A chamada CDMA em espera está ativada no IMS"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"A chamada CDMA em espera está desativada no IMS"</string>
<string name="updating_title" msgid="6130548922615719689">"Configurações de chamadas"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"As configurações de chamada só podem ser alteradas pelo usuário administrador."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Configurações (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Subcódigo do chip de dados padrão:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Largura de banda DL (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Largura de banda UL (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informações de local do celular (uso suspenso):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuração do canal físico de LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Taxa de atualização das informações do celular:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Todas as informações de medição do celular:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Definir"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 358343b..559ee07 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Setările pentru mesagerie vocală pot fi modificate numai de utilizatorul principal."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Cardul dvs. SIM a fost deblocat. Telefonul dvs. se deblochează..."</string>
<string name="label_ndp" msgid="7617392683877410341">"Codul PIN de deblocare a rețelei SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Cardul SIM a fost blocat pentru operator"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Deblocați"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Renunțați"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Se solicită deblocarea rețelei..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Se redirecționează la <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Dezactivat"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Operatorul dvs. nu acceptă ca redirecționarea apelurilor să fie dezactivată atunci când telefonul nu este accesibil."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Operatorul dvs. nu acceptă redirecționarea apelurilor."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Activați apelurile în așteptare?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"În timpul unui apel, veți primi o notificare despre apelurile primite"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Activați"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Anulați"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Apelurile în așteptare CDMA din IMS sunt activate"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Apelurile în așteptare CDMA din IMS sunt dezactivate"</string>
<string name="updating_title" msgid="6130548922615719689">"Setări pentru apeluri"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Numai administratorul poate să modifice setările pentru apeluri."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Setări (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -870,7 +878,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId pentru SIM-ul de date prestabilit:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Lățime de bandă de descărcare (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Lățime de bandă de încărcare (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informații despre localizarea celulei (învechite):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configurarea canalului fizic LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Rata de actualizare a informațiilor despre celulă:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Toate informațiile de măsurare despre celulă:"</string>
@@ -901,6 +908,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Setați"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 77ceeee..8e59241 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Настройки голосовой почты может изменить только основной пользователь"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM-карта разблокирована. Осуществляется разблокировка телефона..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN для разблокировки сети SIM-карты"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM-карта заблокирована для оператора"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Разблокировать"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Закрыть"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Запрос разблокировки сети..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Переадресация на номер <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Отключено"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Ваш оператор не позволяет отключать переадресацию вызовов, если телефон находится вне зоны доступа."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Ваш оператор не поддерживает переадресацию вызовов."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Включить ожидание вызова?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Во время телефонного разговора вы будете получать уведомления о входящих вызовах"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Включить"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Отмена"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Ожидание вызова CDMA, если сервис IMS включен"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Ожидание вызова CDMA, если сервис IMS выключен"</string>
<string name="updating_title" msgid="6130548922615719689">"Настройки вызовов"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Настройки вызовов может изменить только основной пользователь"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Настройки (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -873,7 +881,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Доп. идентификатор SIM-карты для мобильного Интернета по умолчанию:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Пропускная способность DL-канала (кбит/c):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Пропускная способность UL-канала (кбит/с):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Информация о местоположении сети (устаревшее):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфигурация физического канала LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Частота обновления данных о сетях:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Статистика сети:"</string>
@@ -904,6 +911,11 @@
<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_nr_frequency" msgid="1201156032796584128">"Частота NR:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"Настроить режим сети"</string>
<string name="band_mode_loading" msgid="795923726636735967">"Загрузка списка частот…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"Сохранить"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index b89b1d8..afab89a 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"හඬ තැපැල් සැකසීම් මූලික පරිශීලක විසින් පමණක් වෙනස් කිරීමට හැකිය."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"ඔබගේ SIM කාඩ්පත අඟුළු හැර තිබේ. ඔබගේ දුරකතනයේ අඟුළු හරිමින්…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM ජාල අඟුළු හැරීමේ PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"මෙහෙයවන්නා සඳහා SIM අගුලු දමා ඇත"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"අඟුල අරින්න"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"ඉවතලන්න"</string>
<string name="requesting_unlock" msgid="930512210309437741">"ජාල අඟුළු ඇරීමක් ඉල්ලුම් කරමින්…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> වෙත ඉදිරියට යවමින්"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"අක්රියයි"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"ඔබගේ වාහකය ඔබගේ දුරකථනය ළඟා විය නොහැකි විට ඇමතුම් ඉදිරියට ගෙනයාම අබල කිරීමට සහාය නොදක්වයි."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"ඔබේ වාහකය ඇමතුම් යොමු කිරීමට සහාය නොදක්වයි."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"ඇමතුම රඳවා ගැනීම ක්රියාත්මක කරන්නද?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"ඇමතුමක් අතරතුර, ඔබට එන ඇමතුම් පිළිබඳ දැනුම් දෙනු ඇත"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"ක්රියාත්මක කරන්න"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"අවලංගු කරන්න"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS යටත් CDMA ඇමතුම රඳවා ගැනීම ක්රියාත්මකයි"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS යටත් CDMA ඇමතුම රඳවා ගැනීම ක්රියාවිරහිතයි"</string>
<string name="updating_title" msgid="6130548922615719689">"ඇමතුම් සැකසීම්"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"ඇමතුම් සැකසීම් වෙනස් කළ හැක්කේ පරිපාලක පරිශීලකයාට පමණි."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"සැකසීම් (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"පෙරනිමි දත්ත SIM පතේ උප හැඳුනුම:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL කලාප පළල (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL කලාප පළල (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"සෙල් ස්ථාන තොරතුරු (අත් හරින ලදී):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE භෞතික නාලිකා වින්යාසය:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"සෙල් තොරතුරු නැවුම් කිරීමේ අනුපාතය:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"සියලු සෙල් මිනුම් තොරතුරු:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR සංඛ්යාතය:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"රේඩියෝ කලාප ප්රකාරය සකසන්න"</string>
<string name="band_mode_loading" msgid="795923726636735967">"කලාප ලැයිස්තුව පූරණය කරමින්…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"සකසන්න"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index e7daa0c..f667513 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Nastavenia hlasovej schránky môže zmeniť iba primárny používateľ."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM karta bola odblokovaná. Prebieha odomykanie telefónu..."</string>
<string name="label_ndp" msgid="7617392683877410341">"Kód PIN odomknutia siete pre SIM kartu"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM karta je uzamknutá pre operátora"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Odomknúť"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Zatvoriť"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Žiadosť o odomknutie siete..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Presmerovanie na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Vypnuté"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Váš operátor neumožňuje zakázanie presmerovaní, keď je telefón nedostupný."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Váš operátor nepodporuje presmerovanie hovorov."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Chcete zapnúť funkciu Čakajúci hovor?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Počas hovoru budete dostávať upozornenia na prichádzajúce hovory"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Zapnúť"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Zrušiť"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA – čakajúci hovor službe IMS – zapnuté"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA – čakajúci hovor v službe IMS – vypnuté"</string>
<string name="updating_title" msgid="6130548922615719689">"Nastavenia hovorov"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Nastavenia hovorov môže zmeniť iba používateľ s povoleniami správcu."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Nastavenia (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -873,7 +881,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Podradený identifikátor predvolenej dátovej SIM karty:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Rýchlosť pripojenia DL (kB/s):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Rýchlosť pripojenia UL (kB/s):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informácie o polohe mobilnej siete (podpora bola ukončená):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurácia fyzického kanála LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frekvencia obnovenia informácií o mobilnej sieti:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Všetky informácie o meraní mobilnej siete:"</string>
@@ -904,6 +911,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Nastaviť"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 58a087d..db13d74 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Nastavitve odzivnika lahko spremeni samo primarni uporabnik."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Kartica SIM je bila deblokirana. Telefon se odklepa ..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN za odklep omrežja kartice SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Kartica SIM je zaklenjena za operaterja"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Odkleni"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Opusti"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Zahteva za odklepanje omrežja ..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Preusmerjanje na <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Izklopljeno"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Vaš operater ne podpira izklopa preusmeritve klicev, kadar je telefon nedosegljiv."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Vaš operater ne podpira posredovanja klicev."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Želite vklopiti čakajoči klic?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Med klicem boste obveščeni o dohodnih klicih"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Vklopi"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Prekliči"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Čakajoči klic CDMA v sistemu IMS je vklopljen"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Čakajoči klic CDMA v sistemu IMS je izklopljen"</string>
<string name="updating_title" msgid="6130548922615719689">"Nastavitve klicev"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Nastavitve klicanja lahko spremeni samo uporabnik s skrbniškim dostopom."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Nastavitve (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -873,7 +881,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"ID naročnine privzete kartice SIM za prenos podatkov:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Pasovna širina za prenos (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Pasovna širina za nalaganje (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Podatki o lokaciji celice (zastarelo):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfiguracija fizičnega kanala LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frekvenca osveževanja podatkov o celici:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Vsi podatki o meritvah celice:"</string>
@@ -904,6 +911,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Nastavi"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 888feac..412fac0 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Cilësimet e postës zanore mund të modifikohen vetëm nga \"Përdoruesi kryesor\""</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Karta jote SIM u zhbllokua. Telefoni yt po shkyçet..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN-i i shkyçjes së rrjetit të kartës SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Karta SIM e kyçur për operatorin"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Shkyçe"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Injoro"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Po kërkon shkyçjen e rrjetit…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Transferim te <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Çaktivizuar"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Operatori yt nuk mbështet çaktivizimin e transferimit të telefonatës kur telefoni është i paarritshëm."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Operatori celular nuk e mbështet transferimin e telefonatave."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Do të aktivizosh telefonatat në pritje?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Gjatë një telefonate, do të njoftohesh për telefonatat hyrëse"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Aktivizo"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Anulo"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Telefonatat në pritje CDMA në sistemin IMS janë aktive"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Telefonatat në pritje CDMA në sistemin IMS janë joaktive"</string>
<string name="updating_title" msgid="6130548922615719689">"Cilësimet e telefonatës"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Cilësimet e telefonatës mund të ndryshohen vetëm nga administratori."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Cilësimet (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"ID-ja dytësore e kartës SIM të parazgjedhur të të dhënave:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Gjerësia e bandës DL (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Gjerësia e bandës UL (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Informacionet e vendndodhjes të rrjetit celular (e vjetruar):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Konfigurimi i kanalit fizik LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Shpejtësia e rifreskimit të informacioneve të rrjetit celular"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Të gjitha informacionet e matjes së rrjetit celular:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Cakto"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index bf2c058..95c73df 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Само примарни корисник може да мења подешавања говорне поште."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Ваша SIM картица је одблокирана. Телефон се откључава..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN за откључавање мреже на SIM картици"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM картица је закључана за оператера"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Откључај"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Одбаци"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Тражење откључавања мреже"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Прослеђује се на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Искључено"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Мобилни оператер не подржава онемогућавање преусмеравања позива када је телефон недоступан."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Ваш мобилни оператер не подржава преусмеравање позива."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Желите да укључите стављање позива на чекање?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Током позива ћете добијати обавештења о долазним позивима"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Укључи"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Откажи"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Стављање CDMA позива на чекање у IMS-у је укључено"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Стављање CDMA позива на чекање у IMS-у је искључено"</string>
<string name="updating_title" msgid="6130548922615719689">"Подешавања позива"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Само кориснику са администраторским правима је дозвољено да мења подешавања позива."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Подешавања (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -870,7 +878,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubID подразумеваног SIM-а за податке:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL пропусни опсег (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL пропусни опсег (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Информације о локацији предајника (застарело):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфигурација LTE физичког канала:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Учесталост освежавања информација о предајнику:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Све информације о мерењу за предајник:"</string>
@@ -901,6 +908,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR учесталост:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"Подесите режим радијског опсега"</string>
<string name="band_mode_loading" msgid="795923726636735967">"Учитава се листа опсега…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"Подеси"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 2a7b8b0..76d37f8 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Endast den primära användaren får ändra röstbrevlådans inställningar."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM-kortets spärr har tagits bort. Låser upp telefonen…"</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN-kod för upplåsning av SIM-nätverk"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Operatörslåst SIM-kort"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Lås upp"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Ta bort permanent"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Försöker låsa upp nätverket…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Vidarebefordrar till <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Av"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Operatören stöder inte inaktivering av vidarebefordran av samtal när det inte går att nå telefonen."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Din operatör stöder inte vidarebefordran av samtal."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Aktivera Samtal väntar?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Du meddelas om inkommande samtal under samtal"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Aktivera"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Avbryt"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA samtal väntar under IMS på"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA samtal väntar under IMS av"</string>
<string name="updating_title" msgid="6130548922615719689">"Samtalsinställningar"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Det är bara administratören som kan ändra samtalsinställningar."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Inställningar (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId för standarddata på SIM-kortet:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Bandbredd för nedladdning (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Bandbredd för uppladdning (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Platsinformation för mast (utfasad):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Fysisk kanalkonfiguration för LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Frekvens för uppdatering av mastinformation:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Alla information om mastmätning:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Ange"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 7493201..28f2503 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Mipangilio ya ujumbe wa sauti inaweza kubadilishwa na Mtumiaji wa Msingi Pekee."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Kadi yako ya simu imefunguliwa. Simu yangu inafungua…."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN ya kufungua mtandao wa SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM imefungwa kwa mtoa huduma"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Fungua"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Ondoa"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Inaomba mtandao ufunguliwe…."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Inasambaza kwa <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Imezimwa"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Mtoa huduma wako haauni ulemezaji wa kusambaza simu wakati simu yako haifikiwi."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Kampuni inayokupa huduma za simu haina huduma ya kusambaza simu."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Ungependa kuwasha kipengele cha simu inayosubiri kupokewa?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Simu inapoendelea, utaarifiwa kuhusu simu unazopigiwa"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Washa"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Ghairi"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Kipengele cha Simu Inayosubiri Kupokewa ya CDMA chini ya IMS Kimewashwa"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Kipengele cha Simu Inayosubiri Kupokewa ya CDMA chini ya IMS Kimezimwa"</string>
<string name="updating_title" msgid="6130548922615719689">"Mipangilio ya simu"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Mipangilio ya simu inaweza kubadilishwa na mtumiaji wa akaunti ya msimamizi."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Mipangilio (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId ya SIM chaguomsingi ya data:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Kipimo Data cha DL (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Kipimo Data cha UL (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Maelezo ya Mahali Simu ya Mkononi Ilipo (huduma haipo tena):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Mipangilio ya Kituo Halisi cha LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Kasi ya Kuonyesha Upya Maelezo ya Simu:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Maelezo Yote ya Vipimo vya Simu:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Weka"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index f73ff2a..29f191d 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"முதன்மை பயனர் மட்டுமே குரலஞ்சல் அமைப்புகளை மாற்ற முடியும்."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"சிம் கார்டின் தடுப்பு நீக்கப்பட்டது. மொபைல் திறக்கப்படுகிறது…"</string>
<string name="label_ndp" msgid="7617392683877410341">"சிம் நெட்வொர்க்கின் தடைநீக்க பின்"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"ஆப்பரேட்டருக்கு சிம் பூட்டப்பட்டுள்ளது"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"தடைநீக்கு"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"விலக்கு"</string>
<string name="requesting_unlock" msgid="930512210309437741">"நெட்வொர்க் தடைநீக்கத்தைக் கோருகிறது…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> க்குப் பகிர்"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"ஆஃப்"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"மொபைல் தொடர்புகொள்ள முடியாத இடத்தில் இருக்கும்போது, அழைப்பு பகிர்தலை முடக்குவதை ஆபரேட்டர் ஆதரிக்கவில்லை."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"உங்கள் மொபைல் நிறுவனம் அழைப்புப் பகிர்வை ஆதரிக்கவில்லை."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"அழைப்பு காத்திருப்பை இயக்கவா?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"ஒரு அழைப்பில் இருக்கும்போது, உள்வரும் அழைப்புகள் குறித்து உங்களுக்குத் தெரிவிக்கப்படும்"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"இயக்கு"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"ரத்துசெய்"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"CDMA அழைப்பு காத்திருப்பு IMS இயக்கத்தில்"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"CDMA அழைப்பு காத்திருப்பு IMS முடக்கத்தில்"</string>
<string name="updating_title" msgid="6130548922615719689">"அழைப்பு அமைப்பு"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"நிர்வாகிப் பயனர் மட்டுமே அழைப்பிற்கான அமைப்புகளை மாற்ற முடியும்."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"அமைப்புகள் (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"இயல்பான டேட்டா சிம்மின் துணை ஐடி:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL இணைய வேகம் (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL இணைய வேகம் (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"மொபைலின் இருப்பிடத் தகவல் (நிறுத்தப்பட்டது):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE ஃபிசிக்கல் சேனல் உள்ளமைவு:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"மொபைல் தகவலின் புதுப்பிப்பு விகிதம்:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"அனைத்து மொபைல் அளவீட்டுத் தகவல்:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR அலைவரிசை:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"ரேடியோ பேண்டு பயன்முறையை அமை"</string>
<string name="band_mode_loading" msgid="795923726636735967">"பேண்டு பட்டியலை ஏற்றுகிறது…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"அமை"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 069d7ed..9c773d9 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"వాయిస్ మెయిల్ సెట్టింగ్లను ప్రాథమిక వినియోగదారు మాత్రమే సవరించగలరు."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"మీ SIM కార్డు అన్బ్లాక్ చేయబడింది. మీ ఫోన్ అన్లాక్ చేయబడుతోంది…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM నెట్వర్క్ అన్లాక్ పిన్"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"ఈ ఆపరేటర్కు సంబంధించి SIM లాక్ చేయబడింది"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"అన్లాక్ చేయి"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"తీసివేయి"</string>
<string name="requesting_unlock" msgid="930512210309437741">"నెట్వర్క్ అన్లాక్ను అభ్యర్థిస్తోంది…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g>కి ఫార్వార్డ్ చేస్తోంది"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"ఆఫ్లో ఉంది"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"మీ ఫోన్ను చేరుకోవడం సాధ్యపడనప్పుడు కాల్ ఫార్వర్డింగ్ను నిలిపివేయడానికి మీ క్యారియర్ మద్దతు ఇవ్వదు."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"కాల్ ఫార్వర్డింగ్ను మీ క్యారియర్ సపోర్ట్ చేయదు."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"కాల్ వెయిటింగ్ను ఆన్ చేయాలా?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"మీరు కాల్లో ఉండగా, ఇన్కమింగ్ కాల్ల గురించి మీకు తెలియజేయబడుతుంది"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"ఆన్ చేయి"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"రద్దు చేయి"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMSలో CDMA కాల్ వెయిటింగ్ ఆన్లో ఉంది"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMSలో CDMA కాల్ వెయిటింగ్ ఆఫ్లో ఉంది"</string>
<string name="updating_title" msgid="6130548922615719689">"కాల్ సెట్టింగ్లు"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"కాల్ సెట్టింగ్లను నిర్వాహక వినియోగదారు మాత్రమే మార్చగలరు."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"సెట్టింగ్లు (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"డిఫాల్ట్ డేటా SIM యొక్క SubId:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL బ్యాండ్విడ్త్ (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL బ్యాండ్విడ్త్ (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"సెల్ స్థాన సమాచారం (నిలిపివేయబడింది):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE భౌతిక ఛానెల్ కాన్ఫిగరేషన్:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"సెల్ సమాచార రిఫ్రెష్ సగటు:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"మొత్తం సెల్ పరిమాణ సమాచారం:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR ఫ్రీక్వెన్సీ:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"రేడియో బ్యాండ్ మోడ్ను సెట్ చేయండి"</string>
<string name="band_mode_loading" msgid="795923726636735967">"బ్యాండ్ జాబితాను లోడ్ చేస్తోంది…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"సెట్ చేయి"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 29fb43d..81d954f 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"ผู้ใช้หลักเท่านั้นที่สามารถเปลี่ยนการตั้งค่าข้อความเสียงได้"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"ยกเลิกการปิดกั้นซิมการ์ดแล้ว กำลังปลดล็อกโทรศัพท์ของคุณ..."</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN ปลดล็อกเครือข่ายซิม"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"ล็อก SIM สำหรับโอเปอเรเตอร์แล้ว"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"ปลดล็อก"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"เลิกแสดง"</string>
<string name="requesting_unlock" msgid="930512210309437741">"กำลังขอปลดล็อกเครือข่าย..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"โอนสายไปที่ <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"ปิด"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"ผู้ให้บริการของคุณไม่สนับสนุนการปิดใช้งานการโอนสายเมื่อติดต่อไม่ได้"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"ผู้ให้บริการของคุณไม่รองรับการโอนสาย"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"เปิดใช้สายเรียกซ้อนไหม"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"ระบบจะแจ้งเตือนหากมีสายเรียกเข้าซ้อนระหว่างการโทร"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"เปิด"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"ยกเลิก"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"เปิดใช้สายเรียกซ้อนระบบ CDMA ภายใต้ IMS"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"ปิดใช้สายเรียกซ้อนระบบ CDMA ภายใต้ IMS"</string>
<string name="updating_title" msgid="6130548922615719689">"การตั้งค่าการโทร"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"ผู้ใช้ระดับผู้ดูแลระบบเท่านั้นที่สามารถเปลี่ยนแปลงการตั้งค่าการโทรได้"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"การตั้งค่า (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId ของซิมอินเทอร์เน็ตเริ่มต้น:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"แบนด์วิดท์ดาวน์โหลด (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"แบนด์วิดท์อัปโหลด (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"ข้อมูลตำแหน่งของเครือข่ายมือถือ (เลิกใช้งานแล้ว):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"การกำหนดค่าแชเนลทางกายภาพของ LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"อัตราการรีเฟรชข้อมูลมือถือ:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"ข้อมูลการวัดเครือข่ายมือถือทั้งหมด:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"ความถี่ NR:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"ตั้งค่าโหมดย่านความถี่วิทยุ"</string>
<string name="band_mode_loading" msgid="795923726636735967">"กำลังโหลดรายการย่านความถี่…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"ตั้งค่า"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index fc117cf..805edce 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Maaari lang baguhin ng Pangunahing User ang Mga Setting ng Voicemail."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Na-unblock ang iyong SIM card. Nag-a-unlock ang telepono mo…"</string>
<string name="label_ndp" msgid="7617392683877410341">"PIN na pang-unlock ng SIM network"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Na-lock para sa operator ang SIM"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"I-unlock"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Balewalain"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Humihiling ng pag-unlock sa network…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Pinapasa sa <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Naka-off"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Hindi sinusuportahan ng iyong carrier ang hindi pagpapagana ng pagpasa ng tawag kapag hindi maabot ang iyong telepono."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Hindi sinusuportahan ng iyong carrier ang pagpasa ng tawag."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"I-on ang call waiting?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Habang tumatawag, aabisuhan ka sa mga papasok na tawag"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"I-on"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Kanselahin"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Naka-on ang CDMA Call Waiting sa IMS"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Naka-off ang CDMA Call Waiting sa IMS"</string>
<string name="updating_title" msgid="6130548922615719689">"Mga setting ng tawag"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Ang admin user lang ang maaaring magbago sa mga setting ng tawag."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Mga Setting (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"SubId ng default na data SIM:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL Bandwidth (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL Bandwidth (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Impormasyon ng Lokasyon ng Cell (hindi na ginagamit):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Configuration ng LTE Physical Channel:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Rate ng Pag-refresh ng Impormasyon ng Cell:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Impormasyon ng Pagsukat sa Lahat ng Cell:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Itakda"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 2d34fa1..1e2868c 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Sesli Mesaj Ayarları yalnızca Birincil Kullanıcı tarafından değiştirilebilir."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"SIM kartınızın engellemesi kaldırıldı. Telefonunuzun kilidi açılıyor..."</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM ağı kilit açma PIN kodu"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM şu operatör için kilitlendi"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Kilit Aç"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Kapat"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Ağ kilidini açma isteği yapılıyor..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Şuraya yönlendiriliyor: <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Kapalı"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Operatörünüz, telefonunuza ulaşılamadığında çağrı yönlendirmenin devre dışı bırakılmasını desteklemiyor."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Operatörünüz arama yönlendirmeyi desteklemiyor."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Arama bekletme etkinleştirilsin mi?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Bir arama sırasında gelen aramalarla ilgili olarak bilgilendirilirsiniz"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Etkinleştir"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"İptal"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS altında CDMA Arama Bekletme Etkin"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS altında CDMA Arama Bekletme Devre Dışı"</string>
<string name="updating_title" msgid="6130548922615719689">"Çağrı ayarları"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Çağrı ayarları sadece yönetici tarafından değiştirilebilir."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Ayarlar (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -546,7 +554,7 @@
<string name="emergency_information_hint" msgid="9208897544917793012">"Acil durum bilgisi"</string>
<string name="emergency_information_owner_hint" msgid="6256909888049185316">"Sahip"</string>
<string name="emergency_information_confirm_hint" msgid="5109017615894918914">"Bilgileri görüntülemek için tekrar dokunun"</string>
- <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"Acil durum çağrısı"</string>
+ <string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"Acil durum araması"</string>
<string name="single_emergency_number_title" msgid="8413371079579067196">"Acil durum numarası"</string>
<string name="numerous_emergency_numbers_title" msgid="8972398932506755510">"Acil durum numaraları"</string>
<string name="emergency_call_shortcut_hint" msgid="1290485125107779500">"<xliff:g id="EMERGENCY_NUMBER">%s</xliff:g> numaralı telefonu aramak için tekrar dokunun"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Varsayılan veri SIM\'inin alt kimliği:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"İndirme Bant Genişliği (kb/sn.):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Yükleme Bant Genişliği (kb/sn.):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Hücre Konumu Bilgisi (kullanımdan kaldırıldı):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE Fiziksel Kanal Yapılandırması:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Hücre Bilgilerini Yenileme Hızı:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Tüm Hücre Ölçümü Bilgileri:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Ayarla"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 7f5b8cb..54a2bc4 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Налаштування голосової пошти може змінювати лише основний користувач."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Вашу SIM-карту розблоковано. Ваш телефон розблоковується..."</string>
<string name="label_ndp" msgid="7617392683877410341">"Розбл. PIN-код мережі SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Заблокована SIM-карта оператора"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Розблок."</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Відхилити"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Запитув. розблок. мережі..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Переадресація на <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Вимкнено"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Ваш оператор не підтримує вимкнення переадресації викликів, коли телефон недосяжний."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Ваш оператор не підтримує переадресацію викликів."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Увімкнути паралельний виклик?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Під час дзвінків ви отримуватимете сповіщення про інші вхідні виклики"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Увімкнути"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Скасувати"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Паралельний виклик CDMA на платформі IMS увімкнено"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Паралельний виклик CDMA на платформі IMS вимкнено"</string>
<string name="updating_title" msgid="6130548922615719689">"Налаштування викликів"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Налаштування викликів може змінювати лише адміністратор."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Налаштування (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -873,7 +881,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Субідентифікатор SIM-карти для даних за умовчанням:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Пропускна спроможність DL (кбіт/с):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Пропускна спроможність UL (кбіт/с):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Геодані телефона (більше не підтримуються):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Конфігурація фізичного каналу LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Частота оновлення даних про мобільний зв\'язок:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Усі дані про показники мобільного зв\'язку:"</string>
@@ -904,6 +911,11 @@
<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_nr_frequency" msgid="1201156032796584128">"Частота NR:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"Установити режим радіодіапазону"</string>
<string name="band_mode_loading" msgid="795923726636735967">"Завантаження списку діапазонів частот…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"Установити"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index f28b4fa..1aa482d 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"صرف بنیادی صارف ہی صوتی میل کی ترتیبات تبدیل کر سکتا ہے۔"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"آپ کا SIM کارڈ غیر مسدود ہوگیا ہے۔ آپ کا فون غیر مقفل ہو رہا ہے…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM نیٹ ورک غیر مقفل کرنے کا PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"آپریٹر کے لیے SIM مقفل ہے"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"غیر مقفل کریں"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"برخاست کریں"</string>
<string name="requesting_unlock" msgid="930512210309437741">"نیٹ ورک غیر مقفل کرنے کی درخواست کر رہا ہے…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> کو آگے بھیج رہا ہے"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"آف"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"آپ کا کیریئر آپ کا فون ناقابل رسائی ہونے پر کال آگے منتقل کرنے کو غیر فعال کرنے کا تعاون نہیں کرتا ہے۔"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"آپ کا کیریئر کال فارورڈنگ کو سپورٹ نہیں کرتا ہے۔"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"\'کال کا انتظار کرنا\' آن کریں؟"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"کال کے دوران، آپ کو موصول ہونے والی کالز کے بارے میں مطلع کیا جائے گا"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"آن کریں"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"منسوخ کریں"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS آن کے تحت CDMA کال کا انتظار کرنا"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS آف کے تحت CDMA کال کا انتظار کرنا"</string>
<string name="updating_title" msgid="6130548922615719689">"کال کی ترتیبات"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"صرف منتظم صارف ہی کال کی ترتیبات تبدیل کر سکتا ہے۔"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"ترتیبات (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"ڈیفالٹ ڈیٹا SIM کی SubId:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL بینڈ وڈتھ (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL بینڈ وڈتھ (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"سیل کے مقام کی معلومات (فرسودہ):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE فزيکل چینل کنفیگریشن:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"سیل کی معلومات ریفریش کرنے کی شرح:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"سیل پیمائش کی تمام معلومات:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR فریکوئنسی:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"ریڈیو بینڈ موڈ سیٹ کریں"</string>
<string name="band_mode_loading" msgid="795923726636735967">"بینڈ کی فہرست لوڈ ہو رہی ہے…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"سیٹ کریں"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 9358dd0..e18784a 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Ovozli pochta sozlamalarini faqat bosh foydalanuvchi o‘zgartira oladi."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"To‘sib qo‘yilgan SIM kartangiz ochildi. Telefoningiz qulfdan chiqarilmoqda…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM kartani tarmoqdagi qulfidan chiqarish PIN kodi"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"SIM karta operator uchun bloklangan"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Qulfdan chiqarish"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Rad etish"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Tarmoqni qulfdan chiqarish so‘ralmoqda…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"<xliff:g id="PHONENUMBER">{0}</xliff:g> raqamiga yo‘naltiriladi"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Yoqilmagan"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Telefoningiz o‘chiq bo‘lganida qo‘ng‘iroqlarni boshqa raqamga yo‘naltirishni o‘chirish xususiyati tarmoq operatoringizda yo‘q."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Operatoringiz tarmog‘i orqali chaqiruvlarni uzatib bo‘lmaydi"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Chaqiruvdagi kutish rejimi yoqilsinmi?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Suhbat paytida boshqa kiruvchi chaqiruvlar haqida sizga bildirishnoma keladi"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Yoqish"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Bekor qilish"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS asosidagi CDMA chaqiruvlari uchun kutish rejimi yoqildi"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS asosidagi CDMA chaqiruvlari uchun kutish rejimi faolsizlantirildi"</string>
<string name="updating_title" msgid="6130548922615719689">"Chaqiruv sozlamalari"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Faqat administrator qo‘ng‘iroq sozlamalarini o‘zgartirishi mumkin."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Sozlamalar (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Mobil internet uchun birlamchi SIM kartaning qoʻshimcha identifikatori:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Axborot uzatish tezligi (kbit/s):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL kanalining axborot uzatish tezligi (kbit/s):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Tarmoq joylashuvi haqidagi axborot (eskirgan):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE jismoniy kanal konfiguratsiyasi:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Tarmoq haqidagi axborotning yangilanish darajasi:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Tarmoq statistikasi:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Saqlash"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index dfc0c11..a8a57ca 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Chỉ người dùng chính mới có thể sửa đổi Cài đặt thư thoại."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Thẻ SIM của bạn đã được bỏ chặn. Điện thoại của bạn đang mở khóa…"</string>
<string name="label_ndp" msgid="7617392683877410341">"Mã PIM mở khóa mạng SIM"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"Đã khóa SIM đối với nhà cung cấp dịch vụ"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Mở khóa"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Loại bỏ"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Đang yêu cầu mở khóa mạng..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Chuyển tiếp tới <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Tắt"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Nhà cung cấp dịch vụ của bạn không hỗ trợ vô hiệu hóa chuyển tiếp cuộc gọi khi điện thoại của bạn không thể truy cập được."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Nhà mạng của bạn không hỗ trợ tính năng chuyển tiếp cuộc gọi."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Bật chế độ cuộc gọi chờ?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Trong suốt cuộc gọi, bạn sẽ nhận được thông báo về các cuộc gọi đến"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Bật"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Hủy"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Cuộc gọi chờ CDMA trong IMS đang bật"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Cuộc gọi chờ CDMA trong IMS đang tắt"</string>
<string name="updating_title" msgid="6130548922615719689">"Cài đặt cuộc gọi"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Chỉ người dùng quản trị mới có thể thay đổi cài đặt cuộc gọi."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Cài đặt (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"Mã phụ của SIM dữ liệu mặc định:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Băng thông DL (kb/giây):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Băng thông UL (kb/giây):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Thông tin vị trí mạng di động (không dùng nữa):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Cấu hình kênh LTE thực:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Tốc độ làm mới thông tin mạng di động:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Toàn bộ thông tin về số đo mạng di động:"</string>
@@ -898,6 +905,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Đặt"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 304230d..a5562aa 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"只有主用户才能修改语音信箱设置。"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"您的SIM卡已解锁。正在解锁您的手机..."</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM 网络解锁 PIN 码"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"已锁定以下运营商的 SIM 卡:"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"解锁"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"关闭"</string>
<string name="requesting_unlock" msgid="930512210309437741">"正在请求网络解锁..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"转接到 <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"关闭"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"您的运营商不支持在手机无法接通时停用来电转接功能。"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"您的运营商不支持来电转接功能。"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"要启用来电等待吗?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"如果您在通话期间接到来电,则会收到通知"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"开启"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"取消"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"基于 IMS 的 CDMA 来电等待功能已开启"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"基于 IMS 的 CDMA 来电等待功能已关闭"</string>
<string name="updating_title" msgid="6130548922615719689">"通话设置"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"只有管理员用户才能更改通话设置。"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"设置(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"默认数据 SIM 卡的 SubId:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL 带宽 (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL 带宽 (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"移动网络位置信息(已弃用):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE 物理信道配置:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"移动网络信息刷新频率:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"所有移动网络测量信息:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"5G 频率:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"设置无线装置频道模式"</string>
<string name="band_mode_loading" msgid="795923726636735967">"正在加载频道列表…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"设置"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 39a819e..10888de 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"只有主要使用者可以修改留言設定。"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"您的 SIM 卡已解除封鎖。您的手機正在解除鎖定..."</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM 網絡解除鎖定 PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"流動網絡供應商的 SIM 卡已上鎖"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"解除鎖定"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"關閉"</string>
<string name="requesting_unlock" msgid="930512210309437741">"正在要求解除網絡鎖定..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"轉接至 <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"關閉"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"您的流動網絡供應商不支援在手機無法接通時停用轉接功能。"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"您的流動網絡供應商不支援來電轉駁。"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"要開啟來電等候功能嗎?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"您會在通話期間收到來電通知"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"開啟"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"取消"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS 下的 CDMA 來電等候功能已開啟"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS 下的 CDMA 來電等候功能已關閉"</string>
<string name="updating_title" msgid="6130548922615719689">"通話設定"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"只有管理員可以變更通話設定。"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"設定 (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -510,7 +518,7 @@
<string name="voicemail_settings_number_label" msgid="1265118640154688162">"留言信箱號碼"</string>
<string name="card_title_dialing" msgid="8742182654254431781">"撥號中"</string>
<string name="card_title_redialing" msgid="18130232613559964">"重撥"</string>
- <string name="card_title_conf_call" msgid="901197309274457427">"視訊會議"</string>
+ <string name="card_title_conf_call" msgid="901197309274457427">"視像會議"</string>
<string name="card_title_incoming_call" msgid="881424648458792430">"來電"</string>
<string name="card_title_call_ended" msgid="650223980095026340">"通話已結束"</string>
<string name="card_title_on_hold" msgid="9028319436626975207">"保留通話"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"預設數據 SIM 卡的子 ID:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"下載頻寬 (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"上載頻寬 (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"發射站位置資料 (已淘汰):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE 實體渠道設定:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"發射站資料重新整理頻率:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"所有發射站量度資料:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR 頻率:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"設定無線電頻段模式"</string>
<string name="band_mode_loading" msgid="795923726636735967">"正在載入頻段清單…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"設定"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 4a51e36..b41e1c5 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -22,7 +22,7 @@
<string name="phoneIconLabel" msgid="3015941229249651419">"電話"</string>
<string name="fdnListLabel" msgid="4119121875004244097">"固定撥號清單"</string>
<string name="unknown" msgid="8279698889921830815">"不明"</string>
- <string name="private_num" msgid="4487990167889159992">"私人號碼"</string>
+ <string name="private_num" msgid="4487990167889159992">"隱藏號碼"</string>
<string name="payphone" msgid="7936735771836716941">"公用電話"</string>
<string name="onHold" msgid="6132725550015899006">"通話保留"</string>
<string name="carrier_mmi_msg_title" msgid="6050165242447507034">"「<xliff:g id="MMICARRIER">%s</xliff:g>」的訊息"</string>
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"只有主要使用者可以修改語音信箱設定。"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"您的 SIM 卡已解鎖。正在解鎖手機中…"</string>
<string name="label_ndp" msgid="7617392683877410341">"SIM 網路解鎖 PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"以下電信業者的 SIM 卡已鎖定"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"解除鎖定"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"關閉"</string>
<string name="requesting_unlock" msgid="930512210309437741">"正在要求解除網路鎖定…"</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"轉接至 <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"關閉"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"您的電信業者不支援手機無收訊時停用轉接功能。"</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"你的電信業者不支援來電轉接功能。"</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"要開啟來電等候功能嗎?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"如果通話期間有來電,系統會通知你"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"開啟"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"取消"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"IMS 的 CDMA 來電等候功能已開啟"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"IMS 的 CDMA 來電等候功能已關閉"</string>
<string name="updating_title" msgid="6130548922615719689">"通話設定"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"只有管理員使用者可以變更通話設定。"</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"設定 (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -867,7 +875,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"預設資料 SIM 卡的子 ID:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"下行頻寬 (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"上行頻寬 (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"行動網路位置資訊 (已不適用):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"LTE 實體通道設定:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"行動網路資訊重新整理頻率:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"所有行動網路測量資訊:"</string>
@@ -898,6 +905,11 @@
<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_nr_frequency" msgid="1201156032796584128">"NR 頻率:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"設定無線電頻帶模式"</string>
<string name="band_mode_loading" msgid="795923726636735967">"正在載入頻帶清單…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"設定"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 77096f3..eb0f2eb 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -50,6 +50,7 @@
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Izilungiselelo zevoyisimeyili zingashintshwa kuphela umsebenzisi oyinhloko."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Ikhadi lakho le-SIM livuliwe. Ifoni yakho iyavula..."</string>
<string name="label_ndp" msgid="7617392683877410341">"Inethiwekhi ye-SIM yokuvula i-PIN"</string>
+ <string name="label_phoneid" msgid="8775611434123577808">"I-SIM ivalelwe umsebenzisi"</string>
<string name="sim_ndp_unlock_text" msgid="7737338355451978338">"Vula"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"Cashisa"</string>
<string name="requesting_unlock" msgid="930512210309437741">"Icela ukuvula inethiwekhi..."</string>
@@ -123,6 +124,13 @@
<string name="sum_cfnrc_enabled" msgid="1799069234006073477">"Idlulisela ku-<xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnrc_disabled" msgid="739289696796917683">"Valiwe"</string>
<string name="disable_cfnrc_forbidden" msgid="775348748084726890">"Isiphathi sakho asisekeli ukuvimbela ukudlulisela ucingo lapho ifoni yakho ingafinyeleleki."</string>
+ <string name="registration_cf_forbidden" msgid="4386482610771190420">"Inkampani yakho yenethiwekhi ayisekeli ukudlulisela phambili ikholi."</string>
+ <string name="cdma_call_waiting" msgid="4565070960879673216">"Vula ukulinda ikholi?"</string>
+ <string name="enable_cdma_call_waiting_setting" msgid="5906811747921744307">"Phakathi nekholi, uzokwaziswa ngamakholi angenayo"</string>
+ <string name="enable_cdma_cw" msgid="811047045863422232">"Vula"</string>
+ <string name="disable_cdma_cw" msgid="7119290446496301734">"Hoxa"</string>
+ <string name="cdma_call_waiting_in_ims_on" msgid="6390979414188659218">"Ukulinda kwekholi ye-CDMA ngaphansi kwe-IMS kuvuliwe"</string>
+ <string name="cdma_call_waiting_in_ims_off" msgid="1099246114368636334">"Ukulinda kwekholi ye-CDMA ngaphansi kwe-IMS kuvaliwe"</string>
<string name="updating_title" msgid="6130548922615719689">"Izilungiselelo zekholi"</string>
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"Izilungiselelo zekholi zingaguqulwa kuphela ngumsebenzisi oyinhloko."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"Izilungiselelo (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -869,7 +877,6 @@
<string name="radio_info_dds" msgid="1122593144425697126">"I-SubId ye-SIM yedatha yokuzenzakalela:"</string>
<string name="radio_info_dl_kbps" msgid="2382922659525318726">"Umkhawulokudonsa we-DL (kbps):"</string>
<string name="radio_info_ul_kbps" msgid="2102225400904799036">"Umkhawulokudonsa we-UL (kbps):"</string>
- <string name="radio_info_signal_location_label" msgid="6188435197086550049">"Ulwazi lwendawo lweseli (kwehlisiwe):"</string>
<string name="radio_info_phy_chan_config" msgid="1277949603275436081">"Ukulungiselelwa okuphathekayo kwesiteshi se-LTE:"</string>
<string name="radio_info_cell_info_refresh_rate" msgid="670511448975997340">"Isilinganiso sokuqalisa kabusha solwazi lweseli:"</string>
<string name="radio_info_cellinfo_label" msgid="8199062974670377659">"Ulwazi lwesilinganiso seseli:"</string>
@@ -900,6 +907,11 @@
<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_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>
<string name="band_mode_set" msgid="6657819412803771421">"Setha"</string>
diff --git a/res/values/config.xml b/res/values/config.xml
index 7e71068..5ade479 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -211,9 +211,6 @@
CarrierConfigManager.KEY_CARRIER_VVM_PACKAGE_NAME_STRING does not handle it -->
<string name="system_visual_voicemail_client" translatable="false"/>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">false</bool>
-
<!-- Flag indicating whether to allow pstn phone accounts [DO NOT TRANSLATE] -->
<bool name="config_pstn_phone_accounts_enabled">true</bool>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 1e44c72..83a5673 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -107,6 +107,8 @@
<!-- network depersonalization -->
<!-- Label text for PIN entry widget on SIM Network Depersonalization panel -->
<string name="label_ndp">SIM network unlock PIN</string>
+ <!-- Label text for Operator displayName on SIM Network Depersonalization panel -->
+ <string name="label_phoneid">SIM locked for operator</string>
<!-- Button label on SIM Network Depersonalization panel -->
<string name="sim_ndp_unlock_text">Unlock</string>
<!-- Button label on SIM Network Depersonalization panel -->
@@ -273,6 +275,15 @@
<string name="sum_cfnrc_disabled">Off</string>
<!-- Error message displayed after failing to disable forwarding calls when the phone is unreachable -->
<string name="disable_cfnrc_forbidden">Your carrier doesn\'t support disabling call forwarding when your phone is unreachable.</string>
+ <string name="registration_cf_forbidden">Your carrier doesn\'t support call forwarding.</string>
+
+ <!-- Cdma Call waiting settings screen, setting option name -->
+ <string name="cdma_call_waiting">Turn on call waiting?</string>
+ <string name="enable_cdma_call_waiting_setting">During a call, you\'ll be notified about incoming calls</string>
+ <string name="enable_cdma_cw">Turn on</string>
+ <string name="disable_cdma_cw">Cancel</string>
+ <string name="cdma_call_waiting_in_ims_on">CDMA Call Waiting under IMS On</string>
+ <string name="cdma_call_waiting_in_ims_off">CDMA Call Waiting under IMS Off</string>
<!-- Title of the progress dialog displayed while updating Call settings -->
<string name="updating_title">Call settings</string>
@@ -2068,8 +2079,6 @@
<!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
<string name="radio_info_ul_kbps">UL Bandwidth (kbps):</string>
<!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
- <string name="radio_info_signal_location_label">Cell Location Info (deprecated):</string>
- <!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
<string name="radio_info_phy_chan_config">LTE Physical Channel Configuration:</string>
<!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
<string name="radio_info_cell_info_refresh_rate">Cell Info Refresh Rate:</string>
@@ -2131,6 +2140,16 @@
<string name="radio_info_toggle_dns_check_label">Toggle DNS Check</string>
<!-- Radio Info screen. Label for a status item. Used for diagnostic info screens, precise translation isn't needed -->
<string name="oem_radio_info_label">OEM-specific Info/Settings</string>
+ <!-- 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>
+ <!-- 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>
+ <!-- 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>
+ <!-- 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>
+ <!-- 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>
<!-- Band Mode Selection -->
<!-- Band mode screen. Title of activity. -->
@@ -2153,5 +2172,4 @@
<string name="carrier_provisioning">Carrier Provisioning Info</string>
<!-- Trigger Carrier Provisioning [CHAR LIMIT=NONE] -->
<string name="trigger_carrier_provisioning">Trigger Carrier Provisioning</string>
-
</resources>
diff --git a/res/xml/cdma_call_privacy.xml b/res/xml/cdma_call_privacy.xml
index 1aeeefe..a16a504 100644
--- a/res/xml/cdma_call_privacy.xml
+++ b/res/xml/cdma_call_privacy.xml
@@ -7,4 +7,14 @@
android:title="@string/voice_privacy"
android:persistent="false"
android:summary="@string/voice_privacy_summary"/>
+
+ <PreferenceScreen
+ android:key="call_forwarding_key"
+ android:title="@string/labelCF"
+ android:persistent="false" />
+
+ <com.android.phone.CdmaCallWaitingPreference
+ android:key="call_waiting_key"
+ android:title="@string/labelCW"
+ android:persistent="false" />
</PreferenceScreen>
diff --git a/sip/res/values-ar/strings.xml b/sip/res/values-ar/strings.xml
index f60f726..4cc9450 100644
--- a/sip/res/values-ar/strings.xml
+++ b/sip/res/values-ar/strings.xml
@@ -61,9 +61,9 @@
<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">"<لم يتم التعيين>"</string>
- <string name="default_preference_summary_password" msgid="3695366978153175549">"<لم يتم التعيين>"</string>
- <string name="default_preference_summary_domain_address" msgid="443247296785732364">"<لم يتم التعيين>"</string>
+ <string name="default_preference_summary_username" msgid="8788114717555599222">"<لم يتم الضبط>"</string>
+ <string name="default_preference_summary_password" msgid="3695366978153175549">"<لم يتم الضبط>"</string>
+ <string name="default_preference_summary_domain_address" msgid="443247296785732364">"<لم يتم الضبط>"</string>
<string name="display_name_summary" msgid="6749135030093260358">"<مثل اسم المستخدم>"</string>
<string name="optional_summary" msgid="620379377865437488">"<اختياري>"</string>
<string name="advanced_settings_show" msgid="2318728080037568529">"▷ المس لإظهار الكل"</string>
diff --git a/sip/res/values-sq/strings.xml b/sip/res/values-sq/strings.xml
index 1b83380..5c50085 100644
--- a/sip/res/values-sq/strings.xml
+++ b/sip/res/values-sq/strings.xml
@@ -32,7 +32,7 @@
<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">"Injoro"</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>
diff --git a/src/com/android/phone/CallBarringEditPreference.java b/src/com/android/phone/CallBarringEditPreference.java
index b8e3250..757600e 100644
--- a/src/com/android/phone/CallBarringEditPreference.java
+++ b/src/com/android/phone/CallBarringEditPreference.java
@@ -26,6 +26,8 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
import android.text.method.DigitsKeyListener;
import android.text.method.PasswordTransformationMethod;
import android.util.AttributeSet;
@@ -35,7 +37,6 @@
import android.widget.TextView;
import android.widget.Toast;
-import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.CommandException;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
@@ -109,7 +110,7 @@
if (!skipReading) {
// Query call barring status
mPhone.getCallBarring(mFacility, "", mHandler.obtainMessage(
- MyHandler.MESSAGE_GET_CALL_BARRING), CommandsInterface.SERVICE_CLASS_VOICE);
+ MyHandler.MESSAGE_GET_CALL_BARRING), getServiceClassForCallBarring(mPhone));
if (mTcpListener != null) {
mTcpListener.onStarted(this, true);
}
@@ -204,7 +205,7 @@
// Send set call barring message to RIL layer.
mPhone.setCallBarring(mFacility, !mIsActivated, password,
mHandler.obtainMessage(MyHandler.MESSAGE_SET_CALL_BARRING),
- CommandsInterface.SERVICE_CLASS_VOICE);
+ getServiceClassForCallBarring(mPhone));
if (mTcpListener != null) {
mTcpListener.onStarted(this, false);
}
@@ -218,6 +219,18 @@
}
}
+ private static int getServiceClassForCallBarring(Phone phone) {
+ int serviceClass = CarrierConfigManager.SERVICE_CLASS_VOICE;
+ PersistableBundle carrierConfig = PhoneGlobals.getInstance()
+ .getCarrierConfigForSubId(phone.getSubId());
+ if (carrierConfig != null) {
+ serviceClass = carrierConfig.getInt(
+ CarrierConfigManager.KEY_CALL_BARRING_DEFAULT_SERVICE_CLASS_INT,
+ CarrierConfigManager.SERVICE_CLASS_VOICE);
+ }
+ return serviceClass;
+ }
+
void updateSummaryText() {
notifyChanged();
notifyDependencyChange(shouldDisableDependents());
@@ -327,8 +340,7 @@
pref.mFacility,
"",
obtainMessage(MESSAGE_GET_CALL_BARRING, 0, MESSAGE_SET_CALL_BARRING,
- ar.exception),
- CommandsInterface.SERVICE_CLASS_VOICE);
+ ar.exception), getServiceClassForCallBarring(pref.mPhone));
}
}
}
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index 54acaad..ef83ead 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -397,14 +397,10 @@
} else {
if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
prefSet.removePreference(fdnButton);
-
- if (!carrierConfig.getBoolean(
- CarrierConfigManager.KEY_VOICE_PRIVACY_DISABLE_UI_BOOL)) {
- addPreferencesFromResource(R.xml.cdma_call_privacy);
- CdmaVoicePrivacySwitchPreference buttonVoicePrivacy =
- (CdmaVoicePrivacySwitchPreference) findPreference(BUTTON_VP_KEY);
- buttonVoicePrivacy.setPhone(mPhone);
- }
+ addPreferencesFromResource(R.xml.cdma_call_privacy);
+ CdmaVoicePrivacySwitchPreference buttonVoicePrivacy =
+ (CdmaVoicePrivacySwitchPreference) findPreference(BUTTON_VP_KEY);
+ buttonVoicePrivacy.setPhone(mPhone);
} else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
if (mPhone.getIccCard() == null || !mPhone.getIccCard().getIccFdnAvailable()) {
prefSet.removePreference(fdnButton);
diff --git a/src/com/android/phone/CallForwardEditPreference.java b/src/com/android/phone/CallForwardEditPreference.java
index e8cf0d1..bf296f9 100644
--- a/src/com/android/phone/CallForwardEditPreference.java
+++ b/src/com/android/phone/CallForwardEditPreference.java
@@ -122,7 +122,27 @@
Log.d(LOG_TAG, "mButtonClicked=" + mButtonClicked + ", positiveResult=" + positiveResult);
// Ignore this event if the user clicked the cancel button, or if the dialog is dismissed
// without any button being pressed (back button press or click event outside the dialog).
- if (this.mButtonClicked != DialogInterface.BUTTON_NEGATIVE) {
+ if (isUnknownStatus() && this.mButtonClicked != DialogInterface.BUTTON_NEGATIVE) {
+ int action = (mButtonClicked == DialogInterface.BUTTON_POSITIVE) ?
+ CommandsInterface.CF_ACTION_REGISTRATION :
+ CommandsInterface.CF_ACTION_DISABLE;
+ final String number = (action == CommandsInterface.CF_ACTION_DISABLE) ?
+ "" : getPhoneNumber();
+
+ Log.d(LOG_TAG, "reason=" + reason + ", action=" + action + ", number=" + number);
+
+ // Display no forwarding number while we're waiting for confirmation.
+ setSummaryOff("");
+
+ mPhone.setCallForwardingOption(action,
+ reason,
+ number,
+ mServiceClass,
+ 0,
+ mHandler.obtainMessage(MyHandler.MESSAGE_SET_CF,
+ action,
+ MyHandler.MESSAGE_SET_CF));
+ } else if (this.mButtonClicked != DialogInterface.BUTTON_NEGATIVE) {
int action = (isToggled() || (mButtonClicked == DialogInterface.BUTTON_POSITIVE)) ?
CommandsInterface.CF_ACTION_REGISTRATION :
CommandsInterface.CF_ACTION_DISABLE;
@@ -194,6 +214,7 @@
Log.i(LOG_TAG, "handleGetCFResponse: Overridding CF number");
}
+ setUnknownStatus(callForwardInfo.status == CommandsInterface.SS_STATUS_UNKNOWN);
setToggled(callForwardInfo.status == 1);
boolean displayVoicemailNumber = false;
if (TextUtils.isEmpty(callForwardInfo.number)) {
@@ -343,6 +364,7 @@
AsyncResult ar = (AsyncResult) msg.obj;
callForwardInfo = null;
+ boolean summaryOff = false;
if (ar.exception != null) {
Log.d(LOG_TAG, "handleGetCFResponse: ar.exception=" + ar.exception);
if (ar.exception instanceof CommandException) {
@@ -362,7 +384,9 @@
CallForwardInfo cfInfoArray[] = (CallForwardInfo[]) ar.result;
if (cfInfoArray == null || cfInfoArray.length == 0) {
Log.d(LOG_TAG, "handleGetCFResponse: cfInfoArray.length==0");
- mTcpListener.onError(CallForwardEditPreference.this, RESPONSE_ERROR);
+ if (!(ar.userObj instanceof Throwable)) {
+ mTcpListener.onError(CallForwardEditPreference.this, RESPONSE_ERROR);
+ }
} else {
for (int i = 0, length = cfInfoArray.length; i < length; i++) {
Log.d(LOG_TAG, "handleGetCFResponse, cfInfoArray[" + i + "]="
@@ -372,6 +396,8 @@
CallForwardInfo info = cfInfoArray[i];
handleCallForwardResult(info);
+ summaryOff = (info.status == CommandsInterface.SS_STATUS_UNKNOWN);
+
if (ar.userObj instanceof Throwable) {
Log.d(LOG_TAG, "Skipped duplicated error dialog");
continue;
@@ -379,8 +405,7 @@
// Show an alert if we got a success response but
// with unexpected values.
- // Currently only handle the fail-to-disable case
- // since we haven't observed fail-to-enable.
+ // Handle the fail-to-disable case.
if (msg.arg2 == MESSAGE_SET_CF &&
msg.arg1 == CommandsInterface.CF_ACTION_DISABLE &&
info.status == 1) {
@@ -404,7 +429,21 @@
}
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setNeutralButton(R.string.close_dialog, null);
- builder.setTitle(getContext().getText(R.string.error_updating_title));
+ builder.setTitle(getContext()
+ .getText(R.string.error_updating_title));
+ builder.setMessage(s);
+ builder.setCancelable(true);
+ builder.create().show();
+ } else if (msg.arg2 == MESSAGE_SET_CF &&
+ msg.arg1 == CommandsInterface.CF_ACTION_REGISTRATION &&
+ info.status == 0) {
+ // Handle the fail-to-enable case.
+ CharSequence s = getContext()
+ .getText(R.string.registration_cf_forbidden);
+ AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
+ builder.setNeutralButton(R.string.close_dialog, null);
+ builder.setTitle(getContext()
+ .getText(R.string.error_updating_title));
builder.setMessage(s);
builder.setCancelable(true);
builder.create().show();
@@ -417,7 +456,15 @@
// Now whether or not we got a new number, reset our enabled
// summary text since it may have been replaced by an empty
// placeholder.
- updateSummaryText();
+ // for CDMA, doesn't display summary.
+ if (summaryOff) {
+ setSummaryOff("");
+ } else {
+ // Now whether or not we got a new number, reset our enabled
+ // summary text since it may have been replaced by an empty
+ // placeholder.
+ updateSummaryText();
+ }
}
private void handleSetCFResponse(Message msg) {
@@ -426,6 +473,16 @@
Log.d(LOG_TAG, "handleSetCFResponse: ar.exception=" + ar.exception);
// setEnabled(false);
}
+
+ if (ar.result != null) {
+ int arr = (int)ar.result;
+ if (arr == CommandsInterface.SS_STATUS_UNKNOWN) {
+ Log.d(LOG_TAG, "handleSetCFResponse: no need to re get in CDMA");
+ mTcpListener.onFinished(CallForwardEditPreference.this, false);
+ return;
+ }
+ }
+
Log.d(LOG_TAG, "handleSetCFResponse: re get");
if (!mCallForwardByUssd) {
mPhone.getCallForwardingOption(reason, mServiceClass,
diff --git a/src/com/android/phone/CarrierConfigLoader.java b/src/com/android/phone/CarrierConfigLoader.java
index 866e481..37a0618 100644
--- a/src/com/android/phone/CarrierConfigLoader.java
+++ b/src/com/android/phone/CarrierConfigLoader.java
@@ -99,10 +99,16 @@
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
@@ -150,6 +156,16 @@
private static final int EVENT_SUBSCRIPTION_INFO_UPDATED = 16;
// Multi-SIM config changed.
private static final int EVENT_MULTI_SIM_CONFIG_CHANGED = 17;
+ // Attempt to fetch from default app or read from XML for no SIM case.
+ private static final int EVENT_DO_FETCH_DEFAULT_FOR_NO_SIM_CONFIG = 18;
+ // No SIM config has been loaded from default app (or cache).
+ private static final int EVENT_FETCH_DEFAULT_FOR_NO_SIM_CONFIG_DONE = 19;
+ // Has connected to default app for no SIM config.
+ private static final int EVENT_CONNECTED_TO_DEFAULT_FOR_NO_SIM_CONFIG = 20;
+ // Bind timed out for the default app when trying to fetch no SIM config.
+ private static final int EVENT_BIND_DEFAULT_FOR_NO_SIM_CONFIG_TIMEOUT = 21;
+ // Fetching config timed out from the default app for no SIM config.
+ private static final int EVENT_FETCH_DEFAULT_FOR_NO_SIM_CONFIG_TIMEOUT = 22;
private static final int BIND_TIMEOUT_MILLIS = 30000;
@@ -505,6 +521,118 @@
case EVENT_MULTI_SIM_CONFIG_CHANGED:
onMultiSimConfigChanged();
break;
+
+ case EVENT_DO_FETCH_DEFAULT_FOR_NO_SIM_CONFIG: {
+ PersistableBundle config =
+ restoreNoSimConfigFromXml(mPlatformCarrierConfigPackage);
+
+ if (config != null) {
+ logd("Loaded no SIM config from XML. package="
+ + mPlatformCarrierConfigPackage);
+ mNoSimConfig = config;
+ sendMessage(
+ obtainMessage(
+ EVENT_FETCH_DEFAULT_FOR_NO_SIM_CONFIG_DONE,
+ phoneId, -1));
+ } else {
+ // No cached config, so fetch it from the default app.
+ if (bindToConfigPackage(
+ mPlatformCarrierConfigPackage,
+ phoneId,
+ EVENT_CONNECTED_TO_DEFAULT_FOR_NO_SIM_CONFIG)) {
+ sendMessageDelayed(
+ obtainMessage(
+ EVENT_BIND_DEFAULT_FOR_NO_SIM_CONFIG_TIMEOUT,
+ phoneId, -1), BIND_TIMEOUT_MILLIS);
+ } else {
+ broadcastConfigChangedIntent(phoneId, false);
+ // TODO: We *must* call unbindService even if bindService returns false.
+ // (And possibly if SecurityException was thrown.)
+ loge("binding to default app to fetch no SIM config: "
+ + mPlatformCarrierConfigPackage + " fails");
+ }
+ }
+ break;
+ }
+
+ case EVENT_FETCH_DEFAULT_FOR_NO_SIM_CONFIG_DONE: {
+ broadcastConfigChangedIntent(phoneId, false);
+ break;
+ }
+
+ case EVENT_BIND_DEFAULT_FOR_NO_SIM_CONFIG_TIMEOUT:
+ case EVENT_FETCH_DEFAULT_FOR_NO_SIM_CONFIG_TIMEOUT: {
+ loge("Bind/fetch time out for no SIM config from "
+ + mPlatformCarrierConfigPackage);
+ removeMessages(EVENT_FETCH_DEFAULT_FOR_NO_SIM_CONFIG_TIMEOUT);
+ // If we attempted to bind to the app, but the service connection is null due to
+ // the race condition that clear config event happens before bind/fetch complete
+ // then config was cleared while we were waiting and we should not continue.
+ if (mServiceConnectionForNoSimConfig[phoneId] != null) {
+ // If a ResponseReceiver callback is in the queue when this happens, we will
+ // unbind twice and throw an exception.
+ unbindIfBoundForNoSimConfig(mContext,
+ mServiceConnectionForNoSimConfig[phoneId], phoneId);
+ }
+ broadcastConfigChangedIntent(phoneId, false);
+ break;
+ }
+
+ case EVENT_CONNECTED_TO_DEFAULT_FOR_NO_SIM_CONFIG: {
+ removeMessages(EVENT_BIND_DEFAULT_FOR_NO_SIM_CONFIG_TIMEOUT);
+ final CarrierServiceConnection conn = (CarrierServiceConnection) msg.obj;
+ // If new service connection has been created, unbind.
+ if (mServiceConnectionForNoSimConfig[phoneId] != conn || conn.service == null) {
+ unbindIfBoundForNoSimConfig(mContext, conn, phoneId);
+ break;
+ }
+
+ // ResultReceiver callback will execute in this Handler's thread.
+ final ResultReceiver resultReceiver =
+ new ResultReceiver(this) {
+ @Override
+ public void onReceiveResult(int resultCode, Bundle resultData) {
+ unbindIfBoundForNoSimConfig(mContext, conn, phoneId);
+ // If new service connection has been created, this is stale.
+ if (mServiceConnectionForNoSimConfig[phoneId] != conn) {
+ loge("Received response for stale request.");
+ return;
+ }
+ removeMessages(EVENT_FETCH_DEFAULT_FOR_NO_SIM_CONFIG_TIMEOUT);
+ if (resultCode == RESULT_ERROR || resultData == null) {
+ // On error, abort config fetching.
+ loge("Failed to get no SIM carrier config");
+ return;
+ }
+ PersistableBundle config =
+ resultData.getParcelable(KEY_CONFIG_BUNDLE);
+ saveNoSimConfigToXml(mPlatformCarrierConfigPackage, config);
+ mNoSimConfig = config;
+ sendMessage(
+ obtainMessage(
+ EVENT_FETCH_DEFAULT_FOR_NO_SIM_CONFIG_DONE,
+ phoneId, -1));
+ }
+ };
+ // Now fetch the config asynchronously from the ICarrierService.
+ try {
+ ICarrierService carrierService =
+ ICarrierService.Stub.asInterface(conn.service);
+ carrierService.getCarrierConfig(null, resultReceiver);
+ logdWithLocalLog("Fetch no sim config from default app: "
+ + mPlatformCarrierConfigPackage);
+ } catch (RemoteException e) {
+ loge("Failed to get no sim carrier config from default app: " +
+ mPlatformCarrierConfigPackage + " err: " + e.toString());
+ unbindIfBoundForNoSimConfig(mContext, conn, phoneId);
+ break; // So we don't set a timeout.
+ }
+ sendMessageDelayed(
+ obtainMessage(
+ EVENT_FETCH_DEFAULT_FOR_NO_SIM_CONFIG_TIMEOUT,
+ phoneId, -1), BIND_TIMEOUT_MILLIS);
+ break;
+ }
}
}
}
@@ -539,10 +667,13 @@
mConfigFromCarrierApp = new PersistableBundle[numPhones];
mPersistentOverrideConfigs = new PersistableBundle[numPhones];
mOverrideConfigs = new PersistableBundle[numPhones];
+ 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];
// Make this service available through ServiceManager.
TelephonyFrameworkInitializer
.getTelephonyServiceManager().getCarrierConfigServiceRegisterer().register(this);
@@ -568,7 +699,7 @@
}
}
- private void clearConfigForPhone(int phoneId, boolean sendBroadcast) {
+ private void clearConfigForPhone(int phoneId, boolean fetchNoSimConfig) {
/* Ignore clear configuration request if device is being shutdown. */
Phone phone = PhoneFactory.getPhone(phoneId);
if (phone != null) {
@@ -582,7 +713,12 @@
mServiceConnection[phoneId] = null;
mHasSentConfigChange[phoneId] = false;
- if (sendBroadcast) broadcastConfigChangedIntent(phoneId, false);
+ if (fetchNoSimConfig) {
+ // To fetch no SIM config
+ mHandler.sendMessage(
+ mHandler.obtainMessage(
+ EVENT_DO_FETCH_DEFAULT_FOR_NO_SIM_CONFIG, phoneId, -1));
+ }
}
private void notifySubscriptionInfoUpdater(int phoneId) {
@@ -661,11 +797,21 @@
logdWithLocalLog("Binding to " + pkgName + " for phone " + phoneId);
Intent carrierService = new Intent(CarrierService.CARRIER_SERVICE_INTERFACE);
carrierService.setPackage(pkgName);
- mServiceConnection[phoneId] = new CarrierServiceConnection(phoneId, pkgName, eventId);
+ CarrierServiceConnection serviceConnection = new CarrierServiceConnection(
+ phoneId, pkgName, eventId);
+ if (eventId == EVENT_CONNECTED_TO_DEFAULT_FOR_NO_SIM_CONFIG) {
+ mServiceConnectionForNoSimConfig[phoneId] = serviceConnection;
+ } else {
+ mServiceConnection[phoneId] = serviceConnection;
+ }
try {
- if (mContext.bindService(carrierService, mServiceConnection[phoneId],
+ if (mContext.bindService(carrierService, serviceConnection,
Context.BIND_AUTO_CREATE)) {
- mServiceBound[phoneId] = true;
+ if (eventId == EVENT_CONNECTED_TO_DEFAULT_FOR_NO_SIM_CONFIG) {
+ mServiceBoundForNoSimConfig[phoneId] = true;
+ } else {
+ mServiceBound[phoneId] = true;
+ }
return true;
} else {
return false;
@@ -767,26 +913,39 @@
*
* In case of errors or invalid input, no file will be written.
*
- * @param packageName the name of the package from which we fetched this bundle.
- * @param extraString An extra string to be used in the XML file name.
- * @param phoneId the phone ID.
- * @param carrierId contains all carrier-identifying information.
- * @param config the bundle to be written. Null will be treated as an empty bundle.
+ * @param packageName the name of the package from which we fetched this bundle.
+ * @param extraString An extra string to be used in the XML file name.
+ * @param phoneId the phone ID.
+ * @param carrierId contains all carrier-identifying information.
+ * @param config the bundle to be written. Null will be treated as an empty bundle.
+ * @param isNoSimConfig whether this is invoked for noSimConfig or not.
*/
private void saveConfigToXml(String packageName, @NonNull String extraString, int phoneId,
- CarrierIdentifier carrierId, PersistableBundle config) {
- if (SubscriptionManager.getSimStateForSlotIndex(phoneId)
- != TelephonyManager.SIM_STATE_LOADED) {
- loge("Skip save config because SIM records are not loaded.");
+ CarrierIdentifier carrierId, PersistableBundle config, boolean isNoSimConfig) {
+ if (packageName == null) {
+ loge("Cannot save config with null packageName");
return;
}
- final String iccid = getIccIdForPhoneId(phoneId);
- final int cid = carrierId.getSpecificCarrierId();
- if (packageName == null || iccid == null) {
- loge("Cannot save config with null packageName or iccid.");
- return;
+ String fileName;
+ if (isNoSimConfig) {
+ fileName = getFilenameForNoSimConfig(packageName);
+ } else {
+ if (SubscriptionManager.getSimStateForSlotIndex(phoneId)
+ != TelephonyManager.SIM_STATE_LOADED) {
+ loge("Skip save config because SIM records are not loaded.");
+ return;
+ }
+
+ final String iccid = getIccIdForPhoneId(phoneId);
+ final int cid = carrierId.getSpecificCarrierId();
+ if (iccid == null) {
+ loge("Cannot save config with null iccid.");
+ return;
+ }
+ fileName = getFilenameForConfig(packageName, extraString, iccid, cid);
}
+
// b/32668103 Only save to file if config isn't empty.
// In case of failure, not caching an empty bundle will
// try loading config again on next power on or sim loaded.
@@ -807,9 +966,7 @@
FileOutputStream outFile = null;
try {
- outFile = new FileOutputStream(
- new File(mContext.getFilesDir(),
- getFilenameForConfig(packageName, extraString, iccid, cid)));
+ outFile = new FileOutputStream(new File(mContext.getFilesDir(), fileName));
config.putString(KEY_VERSION, version);
config.writeToStream(outFile);
outFile.flush();
@@ -819,6 +976,15 @@
}
}
+ private void saveConfigToXml(String packageName, @NonNull String extraString, int phoneId,
+ CarrierIdentifier carrierId, PersistableBundle config) {
+ saveConfigToXml(packageName, extraString, phoneId, carrierId, config, false);
+ }
+
+ private void saveNoSimConfigToXml(String packageName, PersistableBundle config) {
+ saveConfigToXml(packageName, "", -1, null, config, true);
+ }
+
/**
* Reads a bundle from an XML file.
*
@@ -828,38 +994,48 @@
* In case of errors, or if the saved config is from a different package version than the
* current version, then null will be returned.
*
- * @param packageName the name of the package from which we fetched this bundle.
- * @param extraString An extra string to be used in the XML file name.
- * @param phoneId the phone ID.
+ * @param packageName the name of the package from which we fetched this bundle.
+ * @param extraString An extra string to be used in the XML file name.
+ * @param phoneId the phone ID.
+ * @param isNoSimConfig whether this is invoked for noSimConfig or not.
* @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) {
+ int phoneId, boolean isNoSimConfig) {
+ if (packageName == null) {
+ loge("Cannot restore config with null packageName");
+ }
final String version = getPackageVersion(packageName);
if (version == null) {
loge("Failed to get package version for: " + packageName);
return null;
}
- if (SubscriptionManager.getSimStateForSlotIndex(phoneId)
- != TelephonyManager.SIM_STATE_LOADED) {
- loge("Skip restoring config because SIM records are not yet loaded.");
- return null;
- }
- final String iccid = getIccIdForPhoneId(phoneId);
- final int cid = getSpecificCarrierIdForPhoneId(phoneId);
- if (packageName == null || iccid == null) {
- loge("Cannot restore config with null packageName or iccid.");
- return null;
+ String fileName;
+ if (isNoSimConfig) {
+ fileName = getFilenameForNoSimConfig(packageName);
+ } else {
+ if (SubscriptionManager.getSimStateForSlotIndex(phoneId)
+ != TelephonyManager.SIM_STATE_LOADED) {
+ loge("Skip restore config because SIM records are not loaded.");
+ return null;
+ }
+
+ final String iccid = getIccIdForPhoneId(phoneId);
+ final int cid = getSpecificCarrierIdForPhoneId(phoneId);
+ if (iccid == null) {
+ loge("Cannot restore config with null iccid.");
+ return null;
+ }
+ fileName = getFilenameForConfig(packageName, extraString, iccid, cid);
}
PersistableBundle restoredBundle = null;
File file = null;
FileInputStream inFile = null;
try {
- file = new File(mContext.getFilesDir(),
- getFilenameForConfig(packageName, extraString, iccid, cid));
+ file = new File(mContext.getFilesDir(),fileName);
inFile = new FileInputStream(file);
restoredBundle = PersistableBundle.readFromStream(inFile);
@@ -883,6 +1059,15 @@
return restoredBundle;
}
+ private PersistableBundle restoreConfigFromXml(String packageName, @NonNull String extraString,
+ int phoneId) {
+ return restoreConfigFromXml(packageName, extraString, phoneId, false);
+ }
+
+ private PersistableBundle restoreNoSimConfigFromXml(String packageName) {
+ return restoreConfigFromXml(packageName, "", -1, true);
+ }
+
/**
* Clears cached carrier config.
* This deletes all saved XML files associated with the given package name. If packageName is
@@ -912,7 +1097,8 @@
}
/** Builds a canonical file name for a config file. */
- private String getFilenameForConfig(@NonNull String packageName, @NonNull String extraString,
+ private static String getFilenameForConfig(
+ @NonNull String packageName, @NonNull String extraString,
@NonNull String iccid, int cid) {
// the same carrier should have a single copy of XML file named after carrier id.
// However, it's still possible that platform doesn't recognize the current sim carrier,
@@ -921,6 +1107,11 @@
return "carrierconfig-" + packageName + extraString + "-" + iccid + "-" + cid + ".xml";
}
+ /** Builds a canonical file name for no SIM config file. */
+ 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) {
try {
@@ -995,6 +1186,10 @@
if (config != null) {
retConfig.putAll(config);
}
+ } else {
+ if (mNoSimConfig != null) {
+ retConfig.putAll(mNoSimConfig);
+ }
}
return retConfig;
}
@@ -1104,6 +1299,14 @@
}
}
+ private void unbindIfBoundForNoSimConfig(Context context, CarrierServiceConnection conn,
+ int phoneId) {
+ if (mServiceBoundForNoSimConfig[phoneId]) {
+ mServiceBoundForNoSimConfig[phoneId] = false;
+ context.unbindService(conn);
+ }
+ }
+
/**
* If {@code args} contains {@link #DUMP_ARG_REQUESTING_PACKAGE} and a following package name,
* we'll also call {@link IBinder#dump} on the default carrier service (if bound) and the
@@ -1144,6 +1347,7 @@
printConfig(mOverrideConfigs[i], indentPW, "mOverrideConfigs");
}
+ printConfig(mNoSimConfig, indentPW, "mNoSimConfig");
indentPW.println("CarrierConfigLoadingLog=");
mCarrierConfigLoadingLog.dump(fd, indentPW, args);
diff --git a/src/com/android/phone/CdmaCallForwardOptions.java b/src/com/android/phone/CdmaCallForwardOptions.java
new file mode 100644
index 0000000..a8d2e93
--- /dev/null
+++ b/src/com/android/phone/CdmaCallForwardOptions.java
@@ -0,0 +1,254 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import android.app.ActionBar;
+import android.content.Intent;
+import android.database.Cursor;
+import android.os.Bundle;
+import android.os.PersistableBundle;
+import android.preference.Preference;
+import android.preference.PreferenceScreen;
+import android.telephony.CarrierConfigManager;
+import android.util.Log;
+import android.view.MenuItem;
+
+import com.android.internal.telephony.CallForwardInfo;
+import com.android.internal.telephony.CommandsInterface;
+import com.android.internal.telephony.Phone;
+
+import java.util.ArrayList;
+
+public class CdmaCallForwardOptions extends TimeConsumingPreferenceActivity {
+ private static final String LOG_TAG = "CdmaCallForwardOptions";
+
+ private static final String NUM_PROJECTION[] = {
+ android.provider.ContactsContract.CommonDataKinds.Phone.NUMBER
+ };
+
+ private static final String BUTTON_CFU_KEY = "button_cfu_key";
+ private static final String BUTTON_CFB_KEY = "button_cfb_key";
+ private static final String BUTTON_CFNRY_KEY = "button_cfnry_key";
+ private static final String BUTTON_CFNRC_KEY = "button_cfnrc_key";
+
+ private static final String KEY_TOGGLE = "toggle";
+ private static final String KEY_STATUS = "status";
+ private static final String KEY_NUMBER = "number";
+ private static final String KEY_ENABLE = "enable";
+
+ private CallForwardEditPreference mButtonCFU;
+ private CallForwardEditPreference mButtonCFB;
+ private CallForwardEditPreference mButtonCFNRy;
+ private CallForwardEditPreference mButtonCFNRc;
+
+ private final ArrayList<CallForwardEditPreference> mPreferences =
+ new ArrayList<CallForwardEditPreference> ();
+ private int mInitIndex= 0;
+
+ private boolean mFirstResume;
+ private Bundle mIcicle;
+ private Phone mPhone;
+ private SubscriptionInfoHelper mSubscriptionInfoHelper;
+ private boolean mReplaceInvalidCFNumbers;
+ private boolean mCallForwardByUssd;
+
+ @Override
+ protected void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+
+ addPreferencesFromResource(R.xml.callforward_options);
+
+ mSubscriptionInfoHelper = new SubscriptionInfoHelper(this, getIntent());
+ mSubscriptionInfoHelper.setActionBarTitle(
+ getActionBar(), getResources(), R.string.call_forwarding_settings_with_label);
+ mPhone = mSubscriptionInfoHelper.getPhone();
+
+ PersistableBundle b = null;
+ boolean supportCFNRc = true;
+ if (mSubscriptionInfoHelper.hasSubId()) {
+ b = PhoneGlobals.getInstance().getCarrierConfigForSubId(
+ mSubscriptionInfoHelper.getSubId());
+ } else {
+ b = PhoneGlobals.getInstance().getCarrierConfig();
+ }
+ if (b != null) {
+ mReplaceInvalidCFNumbers = b.getBoolean(
+ CarrierConfigManager.KEY_CALL_FORWARDING_MAP_NON_NUMBER_TO_VOICEMAIL_BOOL);
+ mCallForwardByUssd = b.getBoolean(
+ CarrierConfigManager.KEY_USE_CALL_FORWARDING_USSD_BOOL);
+ supportCFNRc = b.getBoolean(
+ CarrierConfigManager.KEY_CALL_FORWARDING_WHEN_UNREACHABLE_SUPPORTED_BOOL);
+ }
+
+ PreferenceScreen prefSet = getPreferenceScreen();
+ mButtonCFU = (CallForwardEditPreference) prefSet.findPreference(BUTTON_CFU_KEY);
+ mButtonCFB = (CallForwardEditPreference) prefSet.findPreference(BUTTON_CFB_KEY);
+ mButtonCFNRy = (CallForwardEditPreference) prefSet.findPreference(BUTTON_CFNRY_KEY);
+ mButtonCFNRc = (CallForwardEditPreference) prefSet.findPreference(BUTTON_CFNRC_KEY);
+
+ mButtonCFU.setParentActivity(this, mButtonCFU.reason);
+ mButtonCFB.setParentActivity(this, mButtonCFB.reason);
+ mButtonCFNRy.setParentActivity(this, mButtonCFNRy.reason);
+ mButtonCFNRc.setParentActivity(this, mButtonCFNRc.reason);
+
+ mPreferences.add(mButtonCFU);
+ mPreferences.add(mButtonCFB);
+ mPreferences.add(mButtonCFNRy);
+
+ if (supportCFNRc) {
+ mPreferences.add(mButtonCFNRc);
+ } else {
+ // When CFNRc is not supported, mButtonCFNRc is grayed out from the menu.
+ // Default state for the preferences in this PreferenceScreen is disabled.
+ // Only preferences listed in the ArrayList mPreferences will be enabled.
+ // By not adding mButtonCFNRc to mPreferences it will be kept disabled.
+ Log.d(LOG_TAG, "onCreate: CFNRc is not supported, grey out the item.");
+ }
+
+ if (mCallForwardByUssd) {
+ //the call forwarding ussd command's behavior is similar to the call forwarding when
+ //unanswered,so only display the call forwarding when unanswered item.
+ prefSet.removePreference(mButtonCFU);
+ prefSet.removePreference(mButtonCFB);
+ prefSet.removePreference(mButtonCFNRc);
+ mPreferences.remove(mButtonCFU);
+ mPreferences.remove(mButtonCFB);
+ mPreferences.remove(mButtonCFNRc);
+ mButtonCFNRy.setDependency(null);
+ }
+
+ // we wait to do the initialization until onResume so that the
+ // TimeConsumingPreferenceActivity dialog can display as it
+ // relies on onResume / onPause to maintain its foreground state.
+
+ mFirstResume = true;
+ mIcicle = icicle;
+
+ ActionBar actionBar = getActionBar();
+ if (actionBar != null) {
+ // android.R.id.home will be triggered in onOptionsItemSelected()
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ }
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+
+ if (mFirstResume) {
+ if (mIcicle == null) {
+ Log.d(LOG_TAG, "start to init ");
+ CallForwardEditPreference pref = mPreferences.get(mInitIndex);
+ pref.init(this, mPhone, mReplaceInvalidCFNumbers, mCallForwardByUssd);
+ pref.startCallForwardOptionsQuery();
+
+ } else {
+ mInitIndex = mPreferences.size();
+
+ for (CallForwardEditPreference pref : mPreferences) {
+ Bundle bundle = mIcicle.getParcelable(pref.getKey());
+ pref.setToggled(bundle.getBoolean(KEY_TOGGLE));
+ pref.setEnabled(bundle.getBoolean(KEY_ENABLE));
+ CallForwardInfo cf = new CallForwardInfo();
+ cf.number = bundle.getString(KEY_NUMBER);
+ cf.status = bundle.getInt(KEY_STATUS);
+ pref.init(this, mPhone, mReplaceInvalidCFNumbers, mCallForwardByUssd);
+ pref.restoreCallForwardInfo(cf);
+ }
+ }
+ mFirstResume = false;
+ mIcicle = null;
+ }
+ }
+
+ @Override
+ protected void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+
+ for (CallForwardEditPreference pref : mPreferences) {
+ Bundle bundle = new Bundle();
+ bundle.putBoolean(KEY_TOGGLE, pref.isToggled());
+ bundle.putBoolean(KEY_ENABLE, pref.isEnabled());
+ if (pref.callForwardInfo != null) {
+ bundle.putString(KEY_NUMBER, pref.callForwardInfo.number);
+ bundle.putInt(KEY_STATUS, pref.callForwardInfo.status);
+ }
+ outState.putParcelable(pref.getKey(), bundle);
+ }
+ }
+
+ @Override
+ public void onFinished(Preference preference, boolean reading) {
+ if (mInitIndex < mPreferences.size()-1 && !isFinishing()) {
+ mInitIndex++;
+ CallForwardEditPreference pref = mPreferences.get(mInitIndex);
+ pref.init(this, mPhone, mReplaceInvalidCFNumbers, mCallForwardByUssd);
+ pref.startCallForwardOptionsQuery();
+ }
+
+ super.onFinished(preference, reading);
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ Log.d(LOG_TAG, "onActivityResult: done");
+ if (resultCode != RESULT_OK) {
+ Log.d(LOG_TAG, "onActivityResult: contact picker result not OK.");
+ return;
+ }
+ Cursor cursor = null;
+ try {
+ cursor = getContentResolver().query(data.getData(),
+ NUM_PROJECTION, null, null, null);
+ if ((cursor == null) || (!cursor.moveToFirst())) {
+ Log.d(LOG_TAG, "onActivityResult: bad contact data, no results found.");
+ return;
+ }
+
+ switch (requestCode) {
+ case CommandsInterface.CF_REASON_UNCONDITIONAL:
+ mButtonCFU.onPickActivityResult(cursor.getString(0));
+ break;
+ case CommandsInterface.CF_REASON_BUSY:
+ mButtonCFB.onPickActivityResult(cursor.getString(0));
+ break;
+ case CommandsInterface.CF_REASON_NO_REPLY:
+ mButtonCFNRy.onPickActivityResult(cursor.getString(0));
+ break;
+ case CommandsInterface.CF_REASON_NOT_REACHABLE:
+ mButtonCFNRc.onPickActivityResult(cursor.getString(0));
+ break;
+ default:
+ // TODO: may need exception here.
+ }
+ } finally {
+ if (cursor != null) {
+ cursor.close();
+ }
+ }
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ final int itemId = item.getItemId();
+ if (itemId == android.R.id.home) { // See ActionBar#setDisplayHomeAsUpEnabled()
+ CallFeaturesSetting.goUpToTopLevelSetting(this, mSubscriptionInfoHelper);
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+}
diff --git a/src/com/android/phone/CdmaCallOptions.java b/src/com/android/phone/CdmaCallOptions.java
index 8513664..2e310aa 100644
--- a/src/com/android/phone/CdmaCallOptions.java
+++ b/src/com/android/phone/CdmaCallOptions.java
@@ -19,18 +19,19 @@
import android.os.Bundle;
import android.os.PersistableBundle;
import android.preference.Preference;
-import android.preference.PreferenceActivity;
import android.preference.PreferenceScreen;
import android.telephony.CarrierConfigManager;
import android.view.MenuItem;
import com.android.internal.telephony.PhoneConstants;
-public class CdmaCallOptions extends PreferenceActivity {
+public class CdmaCallOptions extends TimeConsumingPreferenceActivity {
private static final String LOG_TAG = "CdmaCallOptions";
private final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
private static final String BUTTON_VP_KEY = "button_voice_privacy_key";
+ private static final String CALL_FORWARDING_KEY = "call_forwarding_key";
+ private static final String CALL_WAITING_KEY = "call_waiting_key";
private CdmaVoicePrivacySwitchPreference mButtonVoicePrivacy;
@Override
@@ -55,8 +56,15 @@
if (subInfoHelper.getPhone().getPhoneType() != PhoneConstants.PHONE_TYPE_CDMA
|| carrierConfig.getBoolean(CarrierConfigManager.KEY_VOICE_PRIVACY_DISABLE_UI_BOOL)) {
// disable the entire screen
- getPreferenceScreen().setEnabled(false);
+ mButtonVoicePrivacy.setEnabled(false);
}
+
+ Preference callForwardingPref = getPreferenceScreen().findPreference(CALL_FORWARDING_KEY);
+ callForwardingPref.setIntent(subInfoHelper.getIntent(CdmaCallForwardOptions.class));
+
+ CdmaCallWaitingPreference callWaitingPref = (CdmaCallWaitingPreference)getPreferenceScreen()
+ .findPreference(CALL_WAITING_KEY);
+ callWaitingPref.init(this, subInfoHelper.getPhone());
}
@Override
@@ -76,5 +84,4 @@
}
return false;
}
-
}
diff --git a/src/com/android/phone/CdmaCallWaitingPreference.java b/src/com/android/phone/CdmaCallWaitingPreference.java
new file mode 100644
index 0000000..4cda7ba
--- /dev/null
+++ b/src/com/android/phone/CdmaCallWaitingPreference.java
@@ -0,0 +1,194 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import com.android.internal.telephony.CommandException;
+import com.android.internal.telephony.CommandsInterface;
+import com.android.internal.telephony.Phone;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.res.TypedArray;
+import android.os.AsyncResult;
+import android.os.Handler;
+import android.os.Message;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.util.AttributeSet;
+import android.util.Log;
+
+public class CdmaCallWaitingPreference extends Preference {
+ private static final String LOG_TAG = "CdmaCallWaitingPreference";
+ private static final boolean DBG = (PhoneGlobals.DBG_LEVEL >= 2);
+
+ private int mButtonClicked;
+ private Context mContext;
+ private Phone mPhone;
+ private SubscriptionInfoHelper mSubscriptionInfoHelper;
+ private TimeConsumingPreferenceListener mTcpListener;
+ private MyHandler mHandler = new MyHandler();
+
+ public CdmaCallWaitingPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ mContext = context;
+ }
+
+ public CdmaCallWaitingPreference(Context context, AttributeSet attrs) {
+ this(context, attrs, com.android.internal.R.attr.preferenceStyle);
+ }
+
+ public CdmaCallWaitingPreference(Context context) {
+ this(context, null);
+ }
+
+ public void init(TimeConsumingPreferenceListener listener, Phone phone) {
+ mPhone = phone;
+ mTcpListener = listener;
+ Log.d(LOG_TAG, "phone id= " + mPhone.getPhoneId());
+ mPhone.getCallWaiting(mHandler.obtainMessage(MyHandler.MESSAGE_GET_CALL_WAITING,
+ MyHandler.MESSAGE_GET_CALL_WAITING, MyHandler.MESSAGE_GET_CALL_WAITING));
+ if (mTcpListener != null) {
+ mTcpListener.onStarted(this, true);
+ }
+ }
+
+ @Override
+ public void onClick() {
+ super.onClick();
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(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() {
+ public void onClick(DialogInterface dialog, int whichButton) {
+ mPhone.setCallWaiting(true,
+ mHandler.obtainMessage(MyHandler.MESSAGE_SET_CALL_WAITING));
+ if (mTcpListener != null) {
+ mTcpListener.onStarted(CdmaCallWaitingPreference.this, false);
+ }
+ }
+ });
+ builder.setNegativeButton(R.string.disable_cdma_cw, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int whichButton) {
+ mPhone.setCallWaiting(false,
+ mHandler.obtainMessage(MyHandler.MESSAGE_SET_CALL_WAITING));
+ if (mTcpListener != null) {
+ mTcpListener.onStarted(CdmaCallWaitingPreference.this, false);
+ }
+ }
+ });
+ builder.create().show();
+ }
+
+ private class MyHandler extends Handler {
+ static final int MESSAGE_GET_CALL_WAITING = 0;
+ static final int MESSAGE_SET_CALL_WAITING = 1;
+
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case MESSAGE_GET_CALL_WAITING:
+ handleGetCallWaitingResponse(msg);
+ break;
+ case MESSAGE_SET_CALL_WAITING:
+ handleSetCallWaitingResponse(msg);
+ break;
+ }
+ }
+
+ private void handleGetCallWaitingResponse(Message msg) {
+ AsyncResult ar = (AsyncResult) msg.obj;
+
+ if (mTcpListener != null) {
+ if (msg.arg2 == MESSAGE_SET_CALL_WAITING) {
+ mTcpListener.onFinished(CdmaCallWaitingPreference.this, false);
+ } else {
+ mTcpListener.onFinished(CdmaCallWaitingPreference.this, true);
+ }
+ }
+
+ if (ar.exception instanceof CommandException) {
+ if (DBG) {
+ Log.d(LOG_TAG, "handleGetCallWaitingResponse: CommandException=" +
+ ar.exception);
+ }
+ if (mTcpListener != null) {
+ mTcpListener.onException(CdmaCallWaitingPreference.this,
+ (CommandException)ar.exception);
+ }
+ } else if (ar.userObj instanceof Throwable || ar.exception != null) {
+ if (DBG) {
+ Log.d(LOG_TAG, "handleGetCallWaitingResponse: Exception" + ar.exception);
+ }
+ if (mTcpListener != null) {
+ mTcpListener.onError(CdmaCallWaitingPreference.this,
+ TimeConsumingPreferenceActivity.RESPONSE_ERROR);
+ }
+ } else {
+ if (DBG) {
+ Log.d(LOG_TAG, "handleGetCallWaitingResponse: CW state successfully queried.");
+ }
+ int[] cwArray = (int[])ar.result;
+ if (cwArray == null) {
+ if (mTcpListener != null) {
+ mTcpListener.onError(CdmaCallWaitingPreference.this,
+ TimeConsumingPreferenceActivity.RESPONSE_ERROR);
+ }
+ return;
+ }
+
+ try {
+ if (cwArray[0] == CommandsInterface.SS_STATUS_UNKNOWN) {
+ setSummary("");
+ } else if(cwArray[0] == 1) {
+ setSummary(mContext.getString(R.string.cdma_call_waiting_in_ims_on));
+ } else if(cwArray[0] == 0) {
+ setSummary(mContext.getString(R.string.cdma_call_waiting_in_ims_off));
+ }
+ } catch (ArrayIndexOutOfBoundsException e) {
+ setSummary("");
+ Log.e(LOG_TAG, "handleGetCallWaitingResponse: improper result: err ="
+ + e.getMessage());
+ }
+ }
+ }
+
+ private void handleSetCallWaitingResponse(Message msg) {
+ AsyncResult ar = (AsyncResult) msg.obj;
+
+ if (ar.exception != null) {
+ if (DBG) {
+ Log.d(LOG_TAG, "handleSetCallWaitingResponse: ar.exception=" + ar.exception);
+ }
+ }
+
+ if (ar.result != null) {
+ int arr = (int)ar.result;
+ if (arr == CommandsInterface.SS_STATUS_UNKNOWN) {
+ Log.d(LOG_TAG, "handleSetCallWaitingResponse: no need to re get in CDMA");
+ mTcpListener.onFinished(CdmaCallWaitingPreference.this, false);
+ return;
+ }
+ }
+
+ if (DBG) Log.d(LOG_TAG, "handleSetCallWaitingResponse: re get");
+ mPhone.getCallWaiting(obtainMessage(MESSAGE_GET_CALL_WAITING,
+ MESSAGE_SET_CALL_WAITING, MESSAGE_SET_CALL_WAITING, ar.exception));
+ }
+ }
+}
diff --git a/src/com/android/phone/EditPhoneNumberPreference.java b/src/com/android/phone/EditPhoneNumberPreference.java
index 74b8a45..505c284 100644
--- a/src/com/android/phone/EditPhoneNumberPreference.java
+++ b/src/com/android/phone/EditPhoneNumberPreference.java
@@ -16,6 +16,9 @@
package com.android.phone;
+import static android.view.View.LAYOUT_DIRECTION_LOCALE;
+import static android.view.View.TEXT_DIRECTION_LOCALE;
+
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
@@ -37,6 +40,8 @@
import android.widget.ImageButton;
import android.widget.TextView;
+import com.android.internal.telephony.CommandsInterface;
+
public class EditPhoneNumberPreference extends EditTextPreference {
//allowed modes for this preference.
@@ -90,6 +95,7 @@
private String mPhoneNumber;
private boolean mChecked;
+ private boolean mIsUnknownStatus;
/**
* Interface for the dialog closed listener, related to
@@ -209,7 +215,9 @@
}
}
editText.setText(BidiFormatter.getInstance().unicodeWrap(
- mPhoneNumber, TextDirectionHeuristics.LTR));
+ mPhoneNumber, TextDirectionHeuristics.LOCALE));
+ editText.setTextDirection(TEXT_DIRECTION_LOCALE);
+ editText.setLayoutDirection(LAYOUT_DIRECTION_LOCALE);
editText.setMovementMethod(ArrowKeyMovementMethod.getInstance());
editText.setKeyListener(DialerKeyListener.getInstance());
editText.setOnFocusChangeListener(mDialogFocusChangeListener);
@@ -254,7 +262,13 @@
// displayed, since there is no need to hide the edittext
// field anymore.
if (mConfirmationMode == CM_ACTIVATION) {
- if (mChecked) {
+ if (mIsUnknownStatus) {
+ builder.setPositiveButton(mEnableText, this);
+ builder.setNeutralButton(mDisableText, this);
+ if (mPrefId == CommandsInterface.CF_REASON_ALL) {
+ builder.setPositiveButton(null, null);
+ }
+ } else if (mChecked) {
builder.setPositiveButton(mChangeNumberText, this);
builder.setNeutralButton(mDisableText, this);
} else {
@@ -310,7 +324,8 @@
@Override
public void onClick(DialogInterface dialog, int which) {
// The neutral button (button3) is always the toggle.
- if ((mConfirmationMode == CM_ACTIVATION) && (which == DialogInterface.BUTTON_NEUTRAL)) {
+ if ((mConfirmationMode == CM_ACTIVATION) && (which == DialogInterface.BUTTON_NEUTRAL)
+ && !mIsUnknownStatus) {
//flip the toggle if we are in the correct mode.
setToggled(!isToggled());
}
@@ -499,4 +514,12 @@
public void showPhoneNumberDialog() {
showDialog(null);
}
+
+ public void setUnknownStatus(boolean isUnknown) {
+ mIsUnknownStatus = isUnknown;
+ }
+
+ public boolean isUnknownStatus() {
+ return mIsUnknownStatus;
+ }
}
diff --git a/src/com/android/phone/IccNetworkDepersonalizationPanel.java b/src/com/android/phone/IccNetworkDepersonalizationPanel.java
index a26225e..a4ec8a4 100644
--- a/src/com/android/phone/IccNetworkDepersonalizationPanel.java
+++ b/src/com/android/phone/IccNetworkDepersonalizationPanel.java
@@ -23,6 +23,8 @@
import android.os.Message;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.Editable;
import android.text.Spannable;
@@ -68,6 +70,7 @@
private static IccNetworkDepersonalizationPanel [] sNdpPanel =
new IccNetworkDepersonalizationPanel[
TelephonyManager.getDefault().getSupportedModemCount()];
+ private SubscriptionInfo mSir;
//UI elements
private EditText mPinEntry;
@@ -75,6 +78,7 @@
private LinearLayout mStatusPanel;
private TextView mPersoSubtypeText;
private PersoSubState mPersoSubState;
+ private TextView mPhoneIdText;
private TextView mStatusText;
private Button mUnlockButton;
@@ -167,6 +171,8 @@
super(context);
mPhone = PhoneGlobals.getPhone();
mPersoSubtype = PersoSubState.PERSOSUBSTATE_SIM_NETWORK.ordinal();
+ mSir = SubscriptionManager.from(context)
+ .getActiveSubscriptionInfoForSimSlotIndex(mPhone.getPhoneId());
}
//constructor
@@ -175,6 +181,8 @@
super(context);
mPhone = phone == null ? PhoneGlobals.getPhone() : phone;
mPersoSubtype = subtype;
+ mSir = SubscriptionManager.from(context)
+ .getActiveSubscriptionInfoForSimSlotIndex(mPhone.getPhoneId());
}
@Override
@@ -194,6 +202,7 @@
mEntryPanel = (LinearLayout) findViewById(R.id.entry_panel);
mPersoSubtypeText = (TextView) findViewById(R.id.perso_subtype_text);
+ mPhoneIdText = (TextView) findViewById(R.id.perso_phoneid_text);
displayStatus(statusType.ENTRY.name());
mUnlockButton = (Button) findViewById(R.id.ndp_unlock);
@@ -282,6 +291,17 @@
log ("Unsupported Perso Subtype :" + mPersoSubState.name());
return;
}
+ if(mSir != null) {
+ CharSequence displayName = mSir.getDisplayName();
+ log("Operator displayName is: " + displayName + "phoneId: " + mPhone.getPhoneId());
+
+ if(displayName != null && displayName != "") {
+ // Displaying Operator displayName on UI
+ String phoneIdText = getContext().getString(R.string.label_phoneid)
+ + ": " + displayName;
+ mPhoneIdText.setText(phoneIdText);
+ }
+ }
if (type == statusType.ENTRY.name()) {
String displayText = getContext().getString(label);
diff --git a/src/com/android/phone/ImsRcsController.java b/src/com/android/phone/ImsRcsController.java
index dcae24b..461a097 100644
--- a/src/com/android/phone/ImsRcsController.java
+++ b/src/com/android/phone/ImsRcsController.java
@@ -28,16 +28,21 @@
import android.telephony.ims.aidl.IImsRcsController;
import android.telephony.ims.aidl.IImsRegistrationCallback;
import android.telephony.ims.aidl.IRcsUceControllerCallback;
+import android.telephony.ims.aidl.IRcsUcePublishStateCallback;
+import android.telephony.ims.feature.ImsFeature;
import android.telephony.ims.feature.RcsFeature;
import android.telephony.ims.stub.ImsRegistrationImplBase;
import android.util.Log;
import com.android.ims.ImsManager;
+import com.android.ims.internal.IImsServiceFeatureCallback;
import com.android.internal.telephony.IIntegerConsumer;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.TelephonyPermissions;
+import com.android.internal.telephony.ims.ImsResolver;
import com.android.internal.telephony.imsphone.ImsPhone;
import com.android.services.telephony.rcs.RcsFeatureController;
+import com.android.services.telephony.rcs.SipTransportController;
import com.android.services.telephony.rcs.TelephonyRcsService;
import com.android.services.telephony.rcs.UserCapabilityExchangeImpl;
@@ -54,6 +59,7 @@
private PhoneGlobals mApp;
private TelephonyRcsService mRcsService;
+ private ImsResolver mImsResolver;
/**
* Initialize the singleton ImsRcsController instance.
@@ -76,6 +82,7 @@
mApp = app;
TelephonyFrameworkInitializer
.getTelephonyServiceManager().getTelephonyImsServiceRegisterer().register(this);
+ mImsResolver = mApp.getImsResolver();
}
/**
@@ -196,6 +203,40 @@
}
}
+ @Override
+ public void registerUcePublishStateCallback(int subId, IRcsUcePublishStateCallback c) {
+ enforceReadPrivilegedPermission("registerUcePublishStateCallback");
+ final long token = Binder.clearCallingIdentity();
+ try {
+ UserCapabilityExchangeImpl uce = getRcsFeatureController(subId).getFeature(
+ UserCapabilityExchangeImpl.class);
+ if (uce == null) {
+ throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+ "This subscription does not support UCE.");
+ }
+ uce.registerPublishStateCallback(c);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override
+ public void unregisterUcePublishStateCallback(int subId, IRcsUcePublishStateCallback c) {
+ enforceReadPrivilegedPermission("unregisterUcePublishStateCallback");
+ final long token = Binder.clearCallingIdentity();
+ try {
+ UserCapabilityExchangeImpl uce = getRcsFeatureController(subId).getFeature(
+ UserCapabilityExchangeImpl.class);
+ if (uce == null) {
+ throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+ "This subscription does not support UCE.");
+ }
+ uce.unregisterUcePublishStateCallback(c);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
/**
* Query for the capability of an IMS RCS service
*
@@ -268,6 +309,17 @@
}
@Override
+ public void requestNetworkAvailability(int subId, String callingPackage,
+ String callingFeatureId, Uri contactNumber, IRcsUceControllerCallback c) {
+ enforceReadPrivilegedPermission("requestNetworkAvailability");
+ if (!isUceSettingEnabled(subId, callingPackage, callingFeatureId)) {
+ throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+ "The user has not enabled UCE for this subscription.");
+ }
+ // TODO: Implement this method
+ }
+
+ @Override
public int getUcePublishState(int subId) {
enforceReadPrivilegedPermission("getUcePublishState");
final long token = Binder.clearCallingIdentity();
@@ -313,6 +365,65 @@
}
}
+ @Override
+ public boolean isSipDelegateSupported(int subId) {
+ enforceReadPrivilegedPermission("isSipDelegateSupported");
+ final long token = Binder.clearCallingIdentity();
+ try {
+ SipTransportController transport = getRcsFeatureController(subId).getFeature(
+ SipTransportController.class);
+ if (transport == null) {
+ return false;
+ }
+ return transport.isSupported(subId);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode(), e.getMessage());
+ } catch (ServiceSpecificException e) {
+ if (e.errorCode == ImsException.CODE_ERROR_UNSUPPORTED_OPERATION) {
+ return false;
+ }
+ throw e;
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ /**
+ * Registers for updates to the RcsFeature connection through the IImsServiceFeatureCallback
+ * callback.
+ */
+ @Override
+ public void registerRcsFeatureCallback(int slotId, IImsServiceFeatureCallback callback) {
+ enforceModifyPermission();
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ if (mImsResolver == null) {
+ throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+ "Device does not support IMS");
+ }
+ mImsResolver.listenForFeature(slotId, ImsFeature.FEATURE_RCS, callback);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ /**
+ * Unregister a previously registered IImsServiceFeatureCallback associated with an ImsFeature.
+ */
+ @Override
+ public void unregisterImsFeatureCallback(IImsServiceFeatureCallback callback) {
+ enforceModifyPermission();
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ if (mImsResolver == null) return;
+ mImsResolver.unregisterImsFeatureCallback(callback);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
/**
* Make sure either called from same process as self (phone) or IPC caller has read privilege.
*
diff --git a/src/com/android/phone/ImsUtil.java b/src/com/android/phone/ImsUtil.java
index 18fc534..38936ec 100644
--- a/src/com/android/phone/ImsUtil.java
+++ b/src/com/android/phone/ImsUtil.java
@@ -113,12 +113,18 @@
public static boolean shouldPromoteWfc(Context context, int phoneId) {
CarrierConfigManager cfgManager = (CarrierConfigManager) context
.getSystemService(Context.CARRIER_CONFIG_SERVICE);
- if (cfgManager == null || !cfgManager.getConfigForSubId(getSubId(phoneId))
- .getBoolean(CarrierConfigManager.KEY_CARRIER_PROMOTE_WFC_ON_CALL_FAIL_BOOL)) {
+
+ ImsManager imsManager = ImsManager.getInstance(context, phoneId);
+ if (!imsManager.isWfcEnabledByPlatform()) {
return false;
}
- if (!getDefaultImsManagerInstance(context).isWfcProvisionedOnDevice()) {
+ if (!imsManager.isWfcProvisionedOnDevice()) {
+ return false;
+ }
+
+ if (cfgManager == null || !cfgManager.getConfigForSubId(getSubId(phoneId))
+ .getBoolean(CarrierConfigManager.KEY_CARRIER_PROMOTE_WFC_ON_CALL_FAIL_BOOL)) {
return false;
}
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 8f987b7..509aa57 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -55,6 +55,7 @@
import android.util.Log;
import android.widget.Toast;
+import com.android.ims.ImsFeatureBinderRepository;
import com.android.internal.telephony.CallManager;
import com.android.internal.telephony.IccCardConstants;
import com.android.internal.telephony.MmiCode;
@@ -120,6 +121,7 @@
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;
// The MMI codes are also used by the InCallScreen.
public static final int MMI_INITIATE = 51;
@@ -266,7 +268,9 @@
// process.
EventSimStateChangedBag bag = (EventSimStateChangedBag)msg.obj;
if (IccCardConstants.INTENT_VALUE_ICC_READY.equals(bag.mIccStatus)
- || IccCardConstants.INTENT_VALUE_ICC_LOADED.equals(bag.mIccStatus)) {
+ || IccCardConstants.INTENT_VALUE_ICC_LOADED.equals(bag.mIccStatus)
+ || IccCardConstants.INTENT_VALUE_ICC_NOT_READY.equals(bag.mIccStatus)
+ || IccCardConstants.INTENT_VALUE_ICC_ABSENT.equals(bag.mIccStatus)) {
// when the right event is triggered and there
// are UI objects in the foreground, we close
// them to display the lock panel.
@@ -280,7 +284,7 @@
mPUKEntryProgressDialog.dismiss();
mPUKEntryProgressDialog = null;
}
- Log.i(LOG_TAG, "Dismissing depersonal panel");
+ Log.i(LOG_TAG, "Dismissing depersonal panel" + (bag.mIccStatus));
IccNetworkDepersonalizationPanel.dialogDismiss(bag.mPhoneId);
}
break;
@@ -303,6 +307,12 @@
case EVENT_MOBILE_DATA_SETTINGS_CHANGED:
updateDataRoamingStatus();
break;
+ case EVENT_CARRIER_CONFIG_CHANGED:
+ int subId = (Integer) msg.obj;
+ // The voicemail number could be overridden by carrier config, so need to
+ // refresh the message waiting (voicemail) indicator.
+ refreshMwiIndicator(subId);
+ break;
}
}
};
@@ -347,7 +357,8 @@
String defaultImsRcsPackage = getResources().getString(
R.string.config_ims_rcs_package);
mImsResolver = new ImsResolver(this, defaultImsMmtelPackage,
- defaultImsRcsPackage, PhoneFactory.getPhones().length);
+ defaultImsRcsPackage, PhoneFactory.getPhones().length,
+ new ImsFeatureBinderRepository());
mImsResolver.initialize();
}
@@ -708,6 +719,12 @@
if (VDBG) Log.v(LOG_TAG, "carrier config changed.");
updateDataRoamingStatus();
updateLimitedSimFunctionForDualSim();
+ int subId = intent.getIntExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX,
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ if (SubscriptionManager.isValidSubscriptionId(subId)) {
+ mHandler.sendMessage(mHandler.obtainMessage(EVENT_CARRIER_CONFIG_CHANGED,
+ new Integer(subId)));
+ }
} else if (action.equals(TelephonyIntents.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED)) {
// We also need to pay attention when default data subscription changes.
if (VDBG) Log.v(LOG_TAG, "default data sub changed.");
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 0fd7ec0..a08893b 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -104,8 +104,6 @@
import android.telephony.ims.aidl.IImsCapabilityCallback;
import android.telephony.ims.aidl.IImsConfig;
import android.telephony.ims.aidl.IImsConfigCallback;
-import android.telephony.ims.aidl.IImsMmTelFeature;
-import android.telephony.ims.aidl.IImsRcsFeature;
import android.telephony.ims.aidl.IImsRegistration;
import android.telephony.ims.aidl.IImsRegistrationCallback;
import android.telephony.ims.feature.ImsFeature;
@@ -132,6 +130,7 @@
import com.android.internal.telephony.DefaultPhoneNotifier;
import com.android.internal.telephony.HalVersion;
import com.android.internal.telephony.IBooleanConsumer;
+import com.android.internal.telephony.ICallForwardingInfoCallback;
import com.android.internal.telephony.IIntegerConsumer;
import com.android.internal.telephony.INumberVerificationCallback;
import com.android.internal.telephony.ITelephony;
@@ -172,6 +171,7 @@
import com.android.internal.telephony.uicc.UiccSlot;
import com.android.internal.telephony.util.LocaleUtils;
import com.android.internal.telephony.util.VoicemailNotificationSettingsUtil;
+import com.android.internal.util.FunctionalUtils;
import com.android.internal.util.HexDump;
import com.android.phone.settings.PickSmsSubscriptionActivity;
import com.android.phone.vvm.PhoneAccountHandleConverter;
@@ -313,6 +313,8 @@
private AtomicBoolean mNotifyUserActivity;
private static final int USER_ACTIVITY_NOTIFICATION_DELAY = 200;
+ private Set<Integer> mCarrierPrivilegeTestOverrideSubIds = new ArraySet<>();
+
private static final String PREF_CARRIERS_ALPHATAG_PREFIX = "carrier_alphtag_";
private static final String PREF_CARRIERS_NUMBER_PREFIX = "carrier_number_";
private static final String PREF_CARRIERS_SUBSCRIBER_PREFIX = "carrier_subscriber_";
@@ -761,7 +763,9 @@
if (ar.exception == null && ar.result != null) {
request.result = ar.result; // Integer
} else {
- request.result = null;
+ // request.result must be set to something non-null
+ // for the calling thread to unblock
+ request.result = new int[]{-1};
if (ar.result == null) {
loge("getPreferredNetworkType: Empty response");
} else if (ar.exception instanceof CommandException) {
@@ -827,38 +831,43 @@
getPhoneFromRequest(request).getAvailableNetworks(onCompleted);
break;
- case CMD_GET_CALL_FORWARDING:
+ case CMD_GET_CALL_FORWARDING: {
request = (MainThreadRequest) msg.obj;
onCompleted = obtainMessage(EVENT_GET_CALL_FORWARDING_DONE, request);
- int callForwardingReason = (Integer) request.argument;
- getPhoneFromRequest(request).getCallForwardingOption(
- callForwardingReason, onCompleted);
+ Pair<Integer, TelephonyManager.CallForwardingInfoCallback> args =
+ (Pair<Integer, TelephonyManager.CallForwardingInfoCallback>)
+ request.argument;
+ int callForwardingReason = args.first;
+ request.phone.getCallForwardingOption(callForwardingReason, onCompleted);
break;
-
- case EVENT_GET_CALL_FORWARDING_DONE:
+ }
+ case EVENT_GET_CALL_FORWARDING_DONE: {
ar = (AsyncResult) msg.obj;
request = (MainThreadRequest) ar.userObj;
- CallForwardingInfo callForwardingInfo = null;
+ TelephonyManager.CallForwardingInfoCallback callback =
+ ((Pair<Integer, TelephonyManager.CallForwardingInfoCallback>)
+ request.argument).second;
if (ar.exception == null && ar.result != null) {
+ CallForwardingInfo callForwardingInfo = null;
CallForwardInfo[] callForwardInfos = (CallForwardInfo[]) ar.result;
for (CallForwardInfo callForwardInfo : callForwardInfos) {
// Service Class is a bit mask per 3gpp 27.007. Search for
// any service for voice call.
if ((callForwardInfo.serviceClass
& CommandsInterface.SERVICE_CLASS_VOICE) > 0) {
- callForwardingInfo = new CallForwardingInfo(
- callForwardInfo.serviceClass, callForwardInfo.reason,
- callForwardInfo.number,
- callForwardInfo.timeSeconds);
+ callForwardingInfo = new CallForwardingInfo(true,
+ callForwardInfo.reason,
+ callForwardInfo.number,
+ callForwardInfo.timeSeconds);
break;
}
}
// Didn't find a call forward info for voice call.
if (callForwardingInfo == null) {
- callForwardingInfo = new CallForwardingInfo(
- CallForwardingInfo.STATUS_UNKNOWN_ERROR,
- 0 /* reason */, null /* number */, 0 /* timeout */);
+ callForwardingInfo = new CallForwardingInfo(false /* enabled */,
+ 0 /* reason */, null /* number */, 0 /* timeout */);
}
+ callback.onCallForwardingInfoAvailable(callForwardingInfo);
} else {
if (ar.result == null) {
loge("EVENT_GET_CALL_FORWARDING_DONE: Empty response");
@@ -866,56 +875,80 @@
if (ar.exception != null) {
loge("EVENT_GET_CALL_FORWARDING_DONE: Exception: " + ar.exception);
}
- int errorCode = CallForwardingInfo.STATUS_UNKNOWN_ERROR;
+ int errorCode = TelephonyManager
+ .CallForwardingInfoCallback.RESULT_ERROR_UNKNOWN;
if (ar.exception instanceof CommandException) {
CommandException.Error error =
((CommandException) (ar.exception)).getCommandError();
if (error == CommandException.Error.FDN_CHECK_FAILURE) {
- errorCode = CallForwardingInfo.STATUS_FDN_CHECK_FAILURE;
+ errorCode = TelephonyManager
+ .CallForwardingInfoCallback.RESULT_ERROR_FDN_CHECK_FAILURE;
} else if (error == CommandException.Error.REQUEST_NOT_SUPPORTED) {
- errorCode = CallForwardingInfo.STATUS_NOT_SUPPORTED;
+ errorCode = TelephonyManager
+ .CallForwardingInfoCallback.RESULT_ERROR_NOT_SUPPORTED;
}
}
- callForwardingInfo = new CallForwardingInfo(
- errorCode, 0 /* reason */, null /* number */, 0 /* timeout */);
+ callback.onError(errorCode);
}
- request.result = callForwardingInfo;
- notifyRequester(request);
break;
+ }
- case CMD_SET_CALL_FORWARDING:
+ case CMD_SET_CALL_FORWARDING: {
request = (MainThreadRequest) msg.obj;
onCompleted = obtainMessage(EVENT_SET_CALL_FORWARDING_DONE, request);
+ request = (MainThreadRequest) msg.obj;
CallForwardingInfo callForwardingInfoToSet =
- (CallForwardingInfo) request.argument;
- getPhoneFromRequest(request).setCallForwardingOption(
- callForwardingInfoToSet.getStatus(),
+ ((Pair<CallForwardingInfo, Consumer<Integer>>)
+ request.argument).first;
+ request.phone.setCallForwardingOption(
+ callForwardingInfoToSet.isEnabled()
+ ? CommandsInterface.CF_ACTION_ENABLE
+ : CommandsInterface.CF_ACTION_DISABLE,
callForwardingInfoToSet.getReason(),
callForwardingInfoToSet.getNumber(),
callForwardingInfoToSet.getTimeoutSeconds(), onCompleted);
break;
+ }
- case EVENT_SET_CALL_FORWARDING_DONE:
+ case EVENT_SET_CALL_FORWARDING_DONE: {
ar = (AsyncResult) msg.obj;
request = (MainThreadRequest) ar.userObj;
- if (ar.exception == null) {
- request.result = true;
- } else {
- request.result = false;
+ Consumer<Integer> callback =
+ ((Pair<CallForwardingInfo, Consumer<Integer>>)
+ request.argument).second;
+ if (ar.exception != null) {
loge("setCallForwarding exception: " + ar.exception);
+ int errorCode = TelephonyManager.CallForwardingInfoCallback
+ .RESULT_ERROR_UNKNOWN;
+ if (ar.exception instanceof CommandException) {
+ CommandException.Error error =
+ ((CommandException) (ar.exception)).getCommandError();
+ if (error == CommandException.Error.FDN_CHECK_FAILURE) {
+ errorCode = TelephonyManager.CallForwardingInfoCallback
+ .RESULT_ERROR_FDN_CHECK_FAILURE;
+ } else if (error == CommandException.Error.REQUEST_NOT_SUPPORTED) {
+ errorCode = TelephonyManager.CallForwardingInfoCallback
+ .RESULT_ERROR_NOT_SUPPORTED;
+ }
+ }
+ callback.accept(errorCode);
+ } else {
+ callback.accept(TelephonyManager.CallForwardingInfoCallback.RESULT_SUCCESS);
}
- notifyRequester(request);
break;
+ }
- case CMD_GET_CALL_WAITING:
+ case CMD_GET_CALL_WAITING: {
request = (MainThreadRequest) msg.obj;
onCompleted = obtainMessage(EVENT_GET_CALL_WAITING_DONE, request);
getPhoneFromRequest(request).getCallWaiting(onCompleted);
break;
+ }
- case EVENT_GET_CALL_WAITING_DONE:
+ case EVENT_GET_CALL_WAITING_DONE: {
ar = (AsyncResult) msg.obj;
request = (MainThreadRequest) ar.userObj;
+ Consumer<Integer> callback = (Consumer<Integer>) request.argument;
int callForwardingStatus = TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR;
if (ar.exception == null && ar.result != null) {
int[] callForwardResults = (int[]) ar.result;
@@ -923,12 +956,12 @@
// Search for any service for voice call.
if (callForwardResults.length > 1
&& ((callForwardResults[1]
- & CommandsInterface.SERVICE_CLASS_VOICE) > 0)) {
+ & CommandsInterface.SERVICE_CLASS_VOICE) > 0)) {
callForwardingStatus = callForwardResults[0] == 0
- ? TelephonyManager.CALL_WAITING_STATUS_INACTIVE
- : TelephonyManager.CALL_WAITING_STATUS_ACTIVE;
+ ? TelephonyManager.CALL_WAITING_STATUS_DISABLED
+ : TelephonyManager.CALL_WAITING_STATUS_ENABLED;
} else {
- callForwardingStatus = TelephonyManager.CALL_WAITING_STATUS_INACTIVE;
+ callForwardingStatus = TelephonyManager.CALL_WAITING_STATUS_DISABLED;
}
} else {
if (ar.result == null) {
@@ -946,28 +979,43 @@
}
}
}
- request.result = callForwardingStatus;
- notifyRequester(request);
+ callback.accept(callForwardingStatus);
break;
+ }
- case CMD_SET_CALL_WAITING:
+ case CMD_SET_CALL_WAITING: {
request = (MainThreadRequest) msg.obj;
onCompleted = obtainMessage(EVENT_SET_CALL_WAITING_DONE, request);
- boolean isEnable = (Boolean) request.argument;
- getPhoneFromRequest(request).setCallWaiting(isEnable, onCompleted);
+ boolean enable = ((Pair<Boolean, Consumer<Integer>>) request.argument).first;
+ getPhoneFromRequest(request).setCallWaiting(enable, onCompleted);
break;
+ }
- case EVENT_SET_CALL_WAITING_DONE:
+ case EVENT_SET_CALL_WAITING_DONE: {
ar = (AsyncResult) msg.obj;
request = (MainThreadRequest) ar.userObj;
- if (ar.exception == null) {
- request.result = true;
- } else {
- request.result = false;
+ boolean enable = ((Pair<Boolean, Consumer<Integer>>) request.argument).first;
+ Consumer<Integer> callback =
+ ((Pair<Boolean, Consumer<Integer>>) request.argument).second;
+ if (ar.exception != null) {
loge("setCallWaiting exception: " + ar.exception);
+ if (ar.exception instanceof CommandException) {
+ CommandException.Error error =
+ ((CommandException) (ar.exception)).getCommandError();
+ if (error == CommandException.Error.REQUEST_NOT_SUPPORTED) {
+ callback.accept(TelephonyManager.CALL_WAITING_STATUS_NOT_SUPPORTED);
+ } else {
+ callback.accept(TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR);
+ }
+ } else {
+ callback.accept(TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR);
+ }
+ } else {
+ callback.accept(enable ? TelephonyManager.CALL_WAITING_STATUS_ENABLED
+ : TelephonyManager.CALL_WAITING_STATUS_DISABLED);
}
- notifyRequester(request);
break;
+ }
case EVENT_PERFORM_NETWORK_SCAN_DONE:
ar = (AsyncResult) msg.obj;
@@ -1881,6 +1929,11 @@
((CommandException)(ar.exception)).getCommandError()
== CommandException.Error.PASSWORD_INCORRECT) {
mResult = PhoneConstants.PIN_PASSWORD_INCORRECT;
+ } //When UiccCardApp dispose,handle message and return exception
+ else if (ar.exception instanceof CommandException &&
+ ((CommandException) (ar.exception)).getCommandError()
+ == CommandException.Error.ABORTED) {
+ mResult = PhoneConstants.PIN_OPERATION_ABORTED;
} else {
mResult = PhoneConstants.PIN_GENERAL_FAILURE;
}
@@ -1940,20 +1993,52 @@
}
}
+ /**
+ * This method has been removed due to privacy and stability concerns.
+ */
+ @Override
public void updateServiceLocation() {
- updateServiceLocationForSubscriber(getDefaultSubscription());
-
+ Log.e(LOG_TAG, "Call to unsupported method updateServiceLocation()");
+ return;
}
- public void updateServiceLocationForSubscriber(int subId) {
- // No permission check needed here: this call is harmless, and it's
- // needed for the ServiceState.requestStateUpdate() call (which is
- // already intentionally exposed to 3rd parties.)
+ @Override
+ public void updateServiceLocationWithPackageName(String callingPackage) {
+ mApp.getSystemService(AppOpsManager.class)
+ .checkPackage(Binder.getCallingUid(), callingPackage);
+
+ final int targetSdk = getTargetSdk(callingPackage);
+ if (targetSdk > android.os.Build.VERSION_CODES.R) {
+ // Callers targeting S have no business invoking this method.
+ return;
+ }
+
+ LocationAccessPolicy.LocationPermissionResult locationResult =
+ LocationAccessPolicy.checkLocationPermission(mApp,
+ new LocationAccessPolicy.LocationPermissionQuery.Builder()
+ .setCallingPackage(callingPackage)
+ .setCallingFeatureId(null)
+ .setCallingPid(Binder.getCallingPid())
+ .setCallingUid(Binder.getCallingUid())
+ .setMethod("updateServiceLocation")
+ .setMinSdkVersionForCoarse(Build.VERSION_CODES.BASE)
+ .setMinSdkVersionForFine(Build.VERSION_CODES.Q)
+ .build());
+ // Apps that lack location permission have no business calling this method;
+ // however, because no permission was declared in the public API, denials must
+ // all be "soft".
+ switch (locationResult) {
+ case DENIED_HARD: /* fall through */
+ case DENIED_SOFT:
+ return;
+ }
+
+ WorkSource workSource = getWorkSource(Binder.getCallingUid());
final long identity = Binder.clearCallingIdentity();
try {
- final Phone phone = getPhone(subId);
+ final Phone phone = getPhone(getDefaultSubscription());
if (phone != null) {
- phone.updateServiceLocation();
+ phone.updateServiceLocation(workSource);
}
} finally {
Binder.restoreCallingIdentity(identity);
@@ -2135,7 +2220,8 @@
int subId = mSubscriptionController.getDefaultDataSubId();
final Phone phone = getPhone(subId);
if (phone != null) {
- phone.getDataEnabledSettings().setUserDataEnabled(true);
+ phone.getDataEnabledSettings().setDataEnabled(
+ TelephonyManager.DATA_ENABLED_REASON_USER, true);
return true;
} else {
return false;
@@ -2155,7 +2241,8 @@
int subId = mSubscriptionController.getDefaultDataSubId();
final Phone phone = getPhone(subId);
if (phone != null) {
- phone.getDataEnabledSettings().setUserDataEnabled(false);
+ phone.getDataEnabledSettings().setDataEnabled(
+ TelephonyManager.DATA_ENABLED_REASON_USER, false);
return true;
} else {
return false;
@@ -2329,46 +2416,30 @@
}
}
+ /**
+ * This method was removed due to potential issues caused by performing partial
+ * updates of service state, and lack of a credible use case.
+ *
+ * This has the ability to break the telephony implementation by disabling notification of
+ * changes in device connectivity. DO NOT USE THIS!
+ */
@Override
public void enableLocationUpdates() {
- enableLocationUpdatesForSubscriber(getDefaultSubscription());
- }
-
- @Override
- public void enableLocationUpdatesForSubscriber(int subId) {
mApp.enforceCallingOrSelfPermission(
android.Manifest.permission.CONTROL_LOCATION_UPDATES, null);
-
- final long identity = Binder.clearCallingIdentity();
- try {
- final Phone phone = getPhone(subId);
- if (phone != null) {
- phone.enableLocationUpdates();
- }
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
}
+ /**
+ * This method was removed due to potential issues caused by performing partial
+ * updates of service state, and lack of a credible use case.
+ *
+ * This has the ability to break the telephony implementation by disabling notification of
+ * changes in device connectivity. DO NOT USE THIS!
+ */
@Override
public void disableLocationUpdates() {
- disableLocationUpdatesForSubscriber(getDefaultSubscription());
- }
-
- @Override
- public void disableLocationUpdatesForSubscriber(int subId) {
mApp.enforceCallingOrSelfPermission(
android.Manifest.permission.CONTROL_LOCATION_UPDATES, null);
-
- final long identity = Binder.clearCallingIdentity();
- try {
- final Phone phone = getPhone(subId);
- if (phone != null) {
- phone.disableLocationUpdates();
- }
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
}
/**
@@ -4376,7 +4447,8 @@
if (phone == null) {
return PhoneConstants.LTE_ON_CDMA_UNKNOWN;
} else {
- return phone.getLteOnCdmaMode();
+ return TelephonyProperties.lte_on_cdma_device()
+ .orElse(PhoneConstants.LTE_ON_CDMA_FALSE);
}
} finally {
Binder.restoreCallingIdentity(identity);
@@ -4983,58 +5055,35 @@
}
/**
- * Returns the {@link IImsMmTelFeature} that corresponds to the given slot Id for the MMTel
- * feature or {@link null} if the service is not available. If the feature is available, the
- * {@link IImsServiceFeatureCallback} callback is registered as a listener for feature updates.
+ * Registers for updates to the MmTelFeature connection through the IImsServiceFeatureCallback
+ * callback.
*/
- public IImsMmTelFeature getMmTelFeatureAndListen(int slotId,
- IImsServiceFeatureCallback callback) {
+ @Override
+ public void registerMmTelFeatureCallback(int slotId, IImsServiceFeatureCallback callback) {
enforceModifyPermission();
final long identity = Binder.clearCallingIdentity();
try {
if (mImsResolver == null) {
- // may happen if the device does not support IMS.
- return null;
+ throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+ "Device does not support IMS");
}
- return mImsResolver.getMmTelFeatureAndListen(slotId, callback);
+ mImsResolver.listenForFeature(slotId, ImsFeature.FEATURE_MMTEL, callback);
} finally {
Binder.restoreCallingIdentity(identity);
}
}
-
- /**
- * Returns the {@link IImsRcsFeature} that corresponds to the given slot Id for the RCS
- * feature during emergency calling or {@link null} if the service is not available. If the
- * feature is available, the {@link IImsServiceFeatureCallback} callback is registered as a
- * listener for feature updates.
- */
- public IImsRcsFeature getRcsFeatureAndListen(int slotId, IImsServiceFeatureCallback callback) {
- enforceModifyPermission();
-
- final long identity = Binder.clearCallingIdentity();
- try {
- if (mImsResolver == null) {
- // may happen if the device does not support IMS.
- return null;
- }
- return mImsResolver.getRcsFeatureAndListen(slotId, callback);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
/**
* Unregister a previously registered IImsServiceFeatureCallback associated with an ImsFeature.
*/
- public void unregisterImsFeatureCallback(int slotId, int featureType,
- IImsServiceFeatureCallback callback) {
+ @Override
+ public void unregisterImsFeatureCallback(IImsServiceFeatureCallback callback) {
enforceModifyPermission();
final long identity = Binder.clearCallingIdentity();
try {
if (mImsResolver == null) return;
- mImsResolver.unregisterImsFeatureCallback(slotId, featureType, callback);
+ mImsResolver.unregisterImsFeatureCallback(callback);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -5211,7 +5260,7 @@
}
}
- /**
+ /**
* Ask the radio to connect to the input network and change selection mode to manual.
*
* @param subId the id of the subscription.
@@ -5315,7 +5364,8 @@
* Get the call forwarding info, given the call forwarding reason.
*/
@Override
- public CallForwardingInfo getCallForwarding(int subId, int callForwardingReason) {
+ public void getCallForwarding(int subId, int callForwardingReason,
+ ICallForwardingInfoCallback callback) {
enforceReadPrivilegedPermission("getCallForwarding");
long identity = Binder.clearCallingIdentity();
try {
@@ -5323,8 +5373,39 @@
log("getCallForwarding: subId " + subId
+ " callForwardingReason" + callForwardingReason);
}
- return (CallForwardingInfo) sendRequest(
- CMD_GET_CALL_FORWARDING, callForwardingReason, subId);
+
+ Phone phone = getPhone(subId);
+ if (phone == null) {
+ try {
+ callback.onError(
+ TelephonyManager.CallForwardingInfoCallback.RESULT_ERROR_UNKNOWN);
+ } catch (RemoteException e) {
+ // ignore
+ }
+ return;
+ }
+
+ Pair<Integer, TelephonyManager.CallForwardingInfoCallback> argument = Pair.create(
+ callForwardingReason, new TelephonyManager.CallForwardingInfoCallback() {
+ @Override
+ public void onCallForwardingInfoAvailable(CallForwardingInfo info) {
+ try {
+ callback.onCallForwardingInfoAvailable(info);
+ } catch (RemoteException e) {
+ // ignore
+ }
+ }
+
+ @Override
+ public void onError(int error) {
+ try {
+ callback.onError(error);
+ } catch (RemoteException e) {
+ // ignore
+ }
+ }
+ });
+ sendRequestAsync(CMD_GET_CALL_FORWARDING, argument, phone, null);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -5335,7 +5416,8 @@
* reason, the number to forward, and the timeout before the forwarding is attempted.
*/
@Override
- public boolean setCallForwarding(int subId, CallForwardingInfo callForwardingInfo) {
+ public void setCallForwarding(int subId, CallForwardingInfo callForwardingInfo,
+ IIntegerConsumer callback) {
enforceModifyPermission();
long identity = Binder.clearCallingIdentity();
try {
@@ -5343,38 +5425,79 @@
log("setCallForwarding: subId " + subId
+ " callForwardingInfo" + callForwardingInfo);
}
- return (Boolean) sendRequest(CMD_SET_CALL_FORWARDING, callForwardingInfo, subId);
+
+ Phone phone = getPhone(subId);
+ if (phone == null) {
+ try {
+ callback.accept(
+ TelephonyManager.CallForwardingInfoCallback.RESULT_ERROR_UNKNOWN);
+ } catch (RemoteException e) {
+ // ignore
+ }
+ return;
+ }
+
+ Pair<CallForwardingInfo, Consumer<Integer>> arguments = Pair.create(callForwardingInfo,
+ FunctionalUtils.ignoreRemoteException(callback::accept));
+
+ sendRequestAsync(CMD_SET_CALL_FORWARDING, arguments, phone, null);
} finally {
Binder.restoreCallingIdentity(identity);
}
}
/**
- * Get the call forwarding info, given the call forwarding reason.
+ * Get the call waiting status for a subId.
*/
@Override
- public int getCallWaitingStatus(int subId) {
+ public void getCallWaitingStatus(int subId, IIntegerConsumer callback) {
enforceReadPrivilegedPermission("getCallForwarding");
long identity = Binder.clearCallingIdentity();
try {
+
+ Phone phone = getPhone(subId);
+ if (phone == null) {
+ try {
+ callback.accept(TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR);
+ } catch (RemoteException e) {
+ // ignore
+ }
+ return;
+ }
+
+ Consumer<Integer> argument = FunctionalUtils.ignoreRemoteException(callback::accept);
+
if (DBG) log("getCallWaitingStatus: subId " + subId);
- return (Integer) sendRequest(CMD_GET_CALL_WAITING, null, subId);
+ sendRequestAsync(CMD_GET_CALL_WAITING, argument, phone, null);
} finally {
Binder.restoreCallingIdentity(identity);
}
}
/**
- * Sets the voice call forwarding info including status (enable/disable), call forwarding
- * reason, the number to forward, and the timeout before the forwarding is attempted.
+ * Sets whether call waiting is enabled for a given subId.
*/
@Override
- public boolean setCallWaitingStatus(int subId, boolean isEnable) {
+ public void setCallWaitingStatus(int subId, boolean enable, IIntegerConsumer callback) {
enforceModifyPermission();
long identity = Binder.clearCallingIdentity();
try {
- if (DBG) log("setCallWaitingStatus: subId " + subId + " isEnable: " + isEnable);
- return (Boolean) sendRequest(CMD_SET_CALL_WAITING, isEnable, subId);
+ if (DBG) log("setCallWaitingStatus: subId " + subId + " enable: " + enable);
+
+ Phone phone = getPhone(subId);
+ if (phone == null) {
+ try {
+ callback.accept(TelephonyManager.CALL_WAITING_STATUS_UNKNOWN_ERROR);
+ } catch (RemoteException e) {
+ // ignore
+ }
+ return;
+ }
+
+ Pair<Boolean, Consumer<Integer>> arguments = Pair.create(enable,
+ FunctionalUtils.ignoreRemoteException(callback::accept));
+
+ sendRequestAsync(CMD_SET_CALL_WAITING, arguments, phone, null);
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -5405,7 +5528,8 @@
.setMinSdkVersionForFine(Build.VERSION_CODES.Q)
.build());
if (locationResult != LocationAccessPolicy.LocationPermissionResult.ALLOWED) {
- SecurityException e = checkNetworkRequestForSanitizedLocationAccess(request, subId);
+ SecurityException e = checkNetworkRequestForSanitizedLocationAccess(
+ request, subId, callingPackage);
if (e != null) {
if (locationResult == LocationAccessPolicy.LocationPermissionResult.DENIED_HARD) {
throw e;
@@ -5428,8 +5552,8 @@
}
private SecurityException checkNetworkRequestForSanitizedLocationAccess(
- NetworkScanRequest request, int subId) {
- boolean hasCarrierPriv = getCarrierPrivilegeStatusForUid(subId, Binder.getCallingUid())
+ NetworkScanRequest request, int subId, String callingPackage) {
+ boolean hasCarrierPriv = checkCarrierPrivilegesForPackage(subId, callingPackage)
== TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
boolean hasNetworkScanPermission =
mApp.checkCallingOrSelfPermission(android.Manifest.permission.NETWORK_SCAN)
@@ -5679,33 +5803,6 @@
}
/**
- * Set mobile data enabled
- * Used by the user through settings etc to turn on/off mobile data
- *
- * @param enable {@code true} turn turn data on, else {@code false}
- */
- @Override
- public void setUserDataEnabled(int subId, boolean enable) {
- TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
- mApp, subId, "setUserDataEnabled");
-
- final long identity = Binder.clearCallingIdentity();
- try {
- int phoneId = mSubscriptionController.getPhoneId(subId);
- if (DBG) log("setUserDataEnabled: subId=" + subId + " phoneId=" + phoneId);
- Phone phone = PhoneFactory.getPhone(phoneId);
- if (phone != null) {
- if (DBG) log("setUserDataEnabled: subId=" + subId + " enable=" + enable);
- phone.getDataEnabledSettings().setUserDataEnabled(enable);
- } else {
- loge("setUserDataEnabled: no phone found. Invalid subId=" + subId);
- }
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- /**
* Enable or disable always reporting signal strength changes from radio.
*
* @param isEnable {@code true} for enabling; {@code false} for disabling.
@@ -5795,7 +5892,18 @@
*/
@Override
public boolean isDataEnabled(int subId) {
- enforceReadPrivilegedPermission("isDataEnabled");
+ try {
+ try {
+ mApp.enforceCallingOrSelfPermission(
+ android.Manifest.permission.ACCESS_NETWORK_STATE,
+ null);
+ } catch (Exception e) {
+ mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE,
+ "isDataEnabled");
+ }
+ } catch (Exception e) {
+ enforceReadPrivilegedPermission("isDataEnabled");
+ }
final long identity = Binder.clearCallingIdentity();
try {
@@ -5815,6 +5923,53 @@
}
}
+ /**
+ * Check if data is enabled for a specific reason
+ * @param subId Subscription index
+ * @param reason the reason the data enable change is taking place
+ * @return {@code true} if the overall data is enabled; {@code false} if not.
+ */
+ @Override
+ public boolean isDataEnabledForReason(int subId,
+ @TelephonyManager.DataEnabledReason int reason) {
+ try {
+ mApp.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NETWORK_STATE,
+ null);
+ } catch (Exception e) {
+ mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE,
+ "isDataEnabledForReason");
+ }
+
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ int phoneId = mSubscriptionController.getPhoneId(subId);
+ if (DBG) {
+ log("isDataEnabledForReason: subId=" + subId + " phoneId=" + phoneId
+ + " reason=" + reason);
+ }
+ Phone phone = PhoneFactory.getPhone(phoneId);
+ if (phone != null) {
+ boolean retVal;
+ if (reason == TelephonyManager.DATA_ENABLED_REASON_USER) {
+ retVal = phone.isUserDataEnabled();
+ } else {
+ retVal = phone.getDataEnabledSettings().isDataEnabledForReason(reason);
+ }
+ if (DBG) log("isDataEnabledForReason: retVal=" + retVal);
+ return retVal;
+ } else {
+ if (DBG) {
+ loge("isDataEnabledForReason: no phone subId="
+ + subId + " retVal=false");
+ }
+ return false;
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
private int getCarrierPrivilegeStatusFromCarrierConfigRules(int privilegeFromSim, int uid,
Phone phone) {
if (uid == Process.SYSTEM_UID || uid == Process.PHONE_UID) {
@@ -5832,7 +5987,13 @@
final long identity = Binder.clearCallingIdentity();
try {
- SubscriptionInfo subInfo = subController.getSubscriptionInfo(phone.getSubId());
+ 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) {
@@ -5855,7 +6016,13 @@
final long identity = Binder.clearCallingIdentity();
try {
- SubscriptionInfo subInfo = subController.getSubscriptionInfo(phone.getSubId());
+ 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)
@@ -6553,6 +6720,8 @@
@Override
public @Nullable PhoneAccountHandle getPhoneAccountHandleForSubscriptionId(int subscriptionId) {
+ enforceReadPrivilegedPermission("getPhoneAccountHandleForSubscriptionId, "
+ + "subscriptionId: " + subscriptionId);
final long identity = Binder.clearCallingIdentity();
try {
Phone phone = getPhone(subscriptionId);
@@ -6629,7 +6798,8 @@
try {
if (SubscriptionManager.isUsableSubIdValue(subId) && !mUserManager.hasUserRestriction(
UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)) {
- setUserDataEnabled(subId, getDefaultDataEnabled());
+ setDataEnabledForReason(subId, TelephonyManager.DATA_ENABLED_REASON_USER,
+ getDefaultDataEnabled());
setNetworkSelectionModeAutomatic(subId);
setPreferredNetworkType(subId, getDefaultNetworkType(subId));
setDataRoamingEnabled(subId, getDefaultDataRoamingEnabled(subId));
@@ -7149,31 +7319,6 @@
}
/**
- * Action set from carrier signalling broadcast receivers to enable/disable metered apns
- * @param subId the subscription ID that this action applies to.
- * @param enabled control enable or disable metered apns.
- * {@hide}
- */
- @Override
- public void carrierActionSetMeteredApnsEnabled(int subId, boolean enabled) {
- enforceModifyPermission();
- final Phone phone = getPhone(subId);
-
- final long identity = Binder.clearCallingIdentity();
- if (phone == null) {
- loge("carrierAction: SetMeteredApnsEnabled fails with invalid subId: " + subId);
- return;
- }
- try {
- phone.carrierActionSetMeteredApnsEnabled(enabled);
- } catch (Exception e) {
- Log.e(LOG_TAG, "carrierAction: SetMeteredApnsEnabled fails. Exception ex=" + e);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- /**
* Action set from carrier signalling broadcast receivers to enable/disable radio
* @param subId the subscription ID that this action applies to.
* @param enabled control enable or disable radio.
@@ -7274,20 +7419,36 @@
}
/**
- * Policy control of data connection. Usually used when data limit is passed.
- * @param enabled True if enabling the data, otherwise disabling.
+ * Policy control of data connection with reason {@@TelephonyManager.DataEnabledReason}
* @param subId Subscription index
- * {@hide}
+ * @param reason the reason the data enable change is taking place
+ * @param enabled True if enabling the data, otherwise disabling.
+ * @hide
*/
@Override
- public void setPolicyDataEnabled(boolean enabled, int subId) {
- enforceModifyPermission();
+ public void setDataEnabledForReason(int subId, @TelephonyManager.DataEnabledReason int reason,
+ boolean enabled) {
+ if (reason == TelephonyManager.DATA_ENABLED_REASON_USER
+ || reason == TelephonyManager.DATA_ENABLED_REASON_CARRIER) {
+ try {
+ TelephonyPermissions.enforceCallingOrSelfCarrierPrivilege(
+ mApp, subId, "setDataEnabledForReason");
+ } catch (SecurityException se) {
+ enforceModifyPermission();
+ }
+ } else {
+ enforceModifyPermission();
+ }
final long identity = Binder.clearCallingIdentity();
try {
Phone phone = getPhone(subId);
if (phone != null) {
- phone.getDataEnabledSettings().setPolicyDataEnabled(enabled);
+ if (reason == TelephonyManager.DATA_ENABLED_REASON_CARRIER) {
+ phone.carrierActionSetMeteredApnsEnabled(enabled);
+ } else {
+ phone.getDataEnabledSettings().setDataEnabled(reason, enabled);
+ }
}
} finally {
Binder.restoreCallingIdentity(identity);
@@ -7450,17 +7611,19 @@
*/
@Override
public boolean isDataRoamingEnabled(int subId) {
- mApp.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NETWORK_STATE,
- null /* message */);
+ try {
+ mApp.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NETWORK_STATE,
+ null);
+ } catch (Exception e) {
+ TelephonyPermissions.enforeceCallingOrSelfReadPhoneStatePermissionOrCarrierPrivilege(
+ mApp, subId, "isDataRoamingEnabled");
+ }
boolean isEnabled = false;
final long identity = Binder.clearCallingIdentity();
try {
Phone phone = getPhone(subId);
isEnabled = phone != null ? phone.getDataRoamingEnabled() : false;
- } catch (Exception e) {
- TelephonyPermissions.enforeceCallingOrSelfReadPhoneStatePermissionOrCarrierPrivilege(
- mApp, subId, "isDataRoamingEnabled");
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -7703,7 +7866,7 @@
private boolean getDefaultDataRoamingEnabled(int subId) {
final CarrierConfigManager configMgr = (CarrierConfigManager)
mApp.getSystemService(Context.CARRIER_CONFIG_SERVICE);
- boolean isDataRoamingEnabled = TelephonyProperties.data_roaming().orElse(true);
+ boolean isDataRoamingEnabled = TelephonyProperties.data_roaming().orElse(false);
isDataRoamingEnabled |= configMgr.getConfigForSubId(subId).getBoolean(
CarrierConfigManager.KEY_CARRIER_DEFAULT_DATA_ROAMING_ENABLED_BOOL);
return isDataRoamingEnabled;
@@ -7736,6 +7899,11 @@
}
phone.setCarrierTestOverride(mccmnc, imsi, iccid, gid1, gid2, plmn, spn,
carrierPrivilegeRules, apn);
+ if (carrierPrivilegeRules == null) {
+ mCarrierPrivilegeTestOverrideSubIds.remove(subId);
+ } else {
+ mCarrierPrivilegeTestOverrideSubIds.add(subId);
+ }
} finally {
Binder.restoreCallingIdentity(identity);
}
@@ -7852,11 +8020,9 @@
try {
for (Phone phone: PhoneFactory.getPhones()) {
if (phone.getEmergencyNumberTracker() != null
- && phone.getEmergencyNumberTracker() != null) {
- if (phone.getEmergencyNumberTracker().isEmergencyNumber(
- number, exactMatch)) {
- return true;
- }
+ && phone.getEmergencyNumberTracker()
+ .isEmergencyNumber(number, exactMatch)) {
+ return true;
}
}
return false;
@@ -8237,7 +8403,7 @@
* 1) user data is turned on, or
* 2) APN is un-metered for this subscription, or
* 3) APN type is whitelisted. E.g. MMS is whitelisted if
- * {@link TelephonyManager#setAlwaysAllowMmsData} is turned on.
+ * {@link TelephonyManager#MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED} is enabled.
*
* @return whether data is allowed for a apn type.
*
@@ -8349,6 +8515,11 @@
//TODO investigate if this API should require proper permission check in R b/133791609
final long identity = Binder.clearCallingIdentity();
try {
+ String carrierUAProfUrl = mApp.getCarrierConfigForSubId(subId).getString(
+ CarrierConfigManager.KEY_MMS_UA_PROF_URL_STRING);
+ if (!TextUtils.isEmpty(carrierUAProfUrl)) {
+ return carrierUAProfUrl;
+ }
return SubscriptionManager.getResourcesForSubId(getDefaultPhone().getContext(), subId)
.getString(com.android.internal.R.string.config_mms_user_agent_profile_url);
} finally {
@@ -8361,6 +8532,11 @@
//TODO investigate if this API should require proper permission check in R b/133791609
final long identity = Binder.clearCallingIdentity();
try {
+ String carrierUserAgent = mApp.getCarrierConfigForSubId(subId).getString(
+ CarrierConfigManager.KEY_MMS_USER_AGENT_STRING);
+ if (!TextUtils.isEmpty(carrierUserAgent)) {
+ return carrierUserAgent;
+ }
return SubscriptionManager.getResourcesForSubId(getDefaultPhone().getContext(), subId)
.getString(com.android.internal.R.string.config_mms_user_agent);
} finally {
@@ -8369,55 +8545,54 @@
}
@Override
- public boolean setDataAllowedDuringVoiceCall(int subId, boolean allow) {
- enforceModifyPermission();
+ public boolean isMobileDataPolicyEnabled(int subscriptionId, int policy) {
+ enforceReadPrivilegedPermission("isMobileDataPolicyEnabled");
- // Now that all security checks passes, perform the operation as ourselves.
final long identity = Binder.clearCallingIdentity();
try {
- Phone phone = getPhone(subId);
+ Phone phone = getPhone(subscriptionId);
if (phone == null) return false;
- return phone.getDataEnabledSettings().setAllowDataDuringVoiceCall(allow);
+ switch (policy) {
+ case TelephonyManager.MOBILE_DATA_POLICY_DATA_ON_NON_DEFAULT_DURING_VOICE_CALL:
+ return phone.getDataEnabledSettings().isDataAllowedInVoiceCall();
+ case TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED:
+ return phone.getDataEnabledSettings().isMmsAlwaysAllowed();
+ default:
+ throw new IllegalArgumentException(policy + " is not a valid policy");
+ }
} finally {
Binder.restoreCallingIdentity(identity);
}
}
@Override
- public boolean isDataAllowedInVoiceCall(int subId) {
- enforceReadPrivilegedPermission("isDataAllowedInVoiceCall");
-
- // Now that all security checks passes, perform the operation as ourselves.
- final long identity = Binder.clearCallingIdentity();
- try {
- Phone phone = getPhone(subId);
- if (phone == null) return false;
-
- return phone.getDataEnabledSettings().isDataAllowedInVoiceCall();
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public boolean setAlwaysAllowMmsData(int subId, boolean alwaysAllow) {
+ public void setMobileDataPolicyEnabledStatus(int subscriptionId, int policy,
+ boolean enabled) {
enforceModifyPermission();
- // Now that all security checks passes, perform the operation as ourselves.
final long identity = Binder.clearCallingIdentity();
try {
- Phone phone = getPhone(subId);
- if (phone == null) return false;
+ Phone phone = getPhone(subscriptionId);
+ if (phone == null) return;
- return phone.getDataEnabledSettings().setAlwaysAllowMmsData(alwaysAllow);
+ switch (policy) {
+ case TelephonyManager.MOBILE_DATA_POLICY_DATA_ON_NON_DEFAULT_DURING_VOICE_CALL:
+ phone.getDataEnabledSettings().setAllowDataDuringVoiceCall(enabled);
+ break;
+ case TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED:
+ phone.getDataEnabledSettings().setAlwaysAllowMmsData(enabled);
+ break;
+ default:
+ throw new IllegalArgumentException(policy + " is not a valid policy");
+ }
} finally {
Binder.restoreCallingIdentity(identity);
}
}
/**
- * Updates whether conference event pacakge handling is enabled.
+ * Updates whether conference event package handling is enabled.
* @param isCepEnabled {@code true} if CEP handling is enabled (default), or {@code false}
* otherwise.
*/
@@ -8594,4 +8769,25 @@
public boolean canConnectTo5GInDsdsMode() {
return mApp.getResources().getBoolean(R.bool.config_5g_connection_in_dsds_mode);
}
+
+ @Override
+ public @NonNull List<String> getEquivalentHomePlmns(int subId, String callingPackage,
+ String callingFeatureId) {
+ if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
+ mApp, subId, callingPackage, callingFeatureId, "getEquivalentHomePlmns")) {
+ throw new SecurityException("Requires READ_PHONE_STATE permission.");
+ }
+
+ Phone phone = getPhone(subId);
+ if (phone == null) {
+ throw new RuntimeException("phone is not available");
+ }
+ // Now that all security checks passes, perform the operation as ourselves.
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return phone.getEquivalentHomePlmns();
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
}
diff --git a/src/com/android/phone/TelephonyShellCommand.java b/src/com/android/phone/TelephonyShellCommand.java
index 0348389..c3f2974 100644
--- a/src/com/android/phone/TelephonyShellCommand.java
+++ b/src/com/android/phone/TelephonyShellCommand.java
@@ -22,14 +22,16 @@
import android.os.PersistableBundle;
import android.os.Process;
import android.os.RemoteException;
+import android.provider.BlockedNumberContract;
import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.emergency.EmergencyNumber;
import android.telephony.ims.feature.ImsFeature;
import android.util.Log;
import com.android.internal.telephony.ITelephony;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneFactory;
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import com.android.internal.telephony.util.TelephonyUtils;
@@ -56,6 +58,7 @@
private static final String IMS_SUBCOMMAND = "ims";
private static final String NUMBER_VERIFICATION_SUBCOMMAND = "numverify";
private static final String EMERGENCY_NUMBER_TEST_MODE = "emergency-number-test-mode";
+ private static final String END_BLOCK_SUPPRESSION = "end-block-suppression";
private static final String CARRIER_CONFIG_SUBCOMMAND = "cc";
private static final String DATA_TEST_MODE = "data";
private static final String DATA_ENABLE = "enable";
@@ -82,6 +85,7 @@
private SubscriptionManager mSubscriptionManager;
private CarrierConfigManager mCarrierConfigManager;
+ private Context mContext;
private enum CcType {
BOOLEAN, DOUBLE, DOUBLE_ARRAY, INT, INT_ARRAY, LONG, LONG_ARRAY, STRING,
@@ -132,6 +136,7 @@
(CarrierConfigManager) context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
mSubscriptionManager = (SubscriptionManager)
context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
+ mContext = context;
}
@Override
@@ -153,6 +158,8 @@
}
case DATA_TEST_MODE:
return handleDataTestModeCommand();
+ case END_BLOCK_SUPPRESSION:
+ return handleEndBlockSuppressionCommand();
default: {
return handleDefaultCommands(cmd);
}
@@ -169,12 +176,15 @@
pw.println(" IMS Commands.");
pw.println(" emergency-number-test-mode");
pw.println(" Emergency Number Test Mode Commands.");
+ pw.println(" end-block-suppression");
+ pw.println(" End Block Suppression command.");
pw.println(" data");
pw.println(" Data Test Mode Commands.");
pw.println(" cc");
pw.println(" Carrier Config Commands.");
onHelpIms();
onHelpEmergencyNumber();
+ onHelpEndBlockSupperssion();
onHelpDataTestMode();
onHelpCc();
}
@@ -197,7 +207,7 @@
pw.println(" -s: The SIM slot ID for the registered ImsService. If no option");
pw.println(" is specified, it will choose the default voice SIM slot.");
pw.println(" -c: The ImsService defined as the carrier configured ImsService.");
- pw.println(" -c: The ImsService defined as the device default ImsService.");
+ pw.println(" -d: The ImsService defined as the device default ImsService.");
pw.println(" -f: The feature type that the query will be requested for. If none is");
pw.println(" specified, the returned package name will correspond to MMTEL.");
pw.println(" ims enable [-s SLOT_ID]");
@@ -242,6 +252,13 @@
pw.println(" -p: get the full emergency number list in the test mode.");
}
+ private void onHelpEndBlockSupperssion() {
+ PrintWriter pw = getOutPrintWriter();
+ pw.println("End Block Suppression command:");
+ pw.println(" end-block-suppression: disable suppressing blocking by contact");
+ pw.println(" with emergency services.");
+ }
+
private void onHelpCc() {
PrintWriter pw = getOutPrintWriter();
pw.println("Carrier Config Commands:");
@@ -723,17 +740,21 @@
try {
slotId = Integer.parseInt(slotString);
} catch (NumberFormatException e) {
+ getErrPrintWriter().println(tag + slotString + " is not a valid number for SLOT_ID.");
+ return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ if (!SubscriptionManager.isValidPhoneId(slotId)) {
getErrPrintWriter().println(tag + slotString + " is not a valid SLOT_ID.");
return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
}
- SubscriptionInfo subInfo =
- mSubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex(slotId);
- if (subInfo == null) {
+ Phone phone = PhoneFactory.getPhone(slotId);
+ if (phone == null) {
getErrPrintWriter().println(tag + "No subscription found in slot " + slotId + ".");
return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
}
- return subInfo.getSubscriptionId();
+ return phone.getSubId();
}
private boolean checkShellUid() {
@@ -1169,4 +1190,15 @@
}
return bundle;
}
+
+ private int handleEndBlockSuppressionCommand() {
+ if (!checkShellUid()) {
+ return -1;
+ }
+
+ if (BlockedNumberContract.SystemContract.getBlockSuppressionStatus(mContext).isSuppressed) {
+ BlockedNumberContract.SystemContract.endBlockSuppression(mContext);
+ }
+ return 0;
+ }
}
diff --git a/src/com/android/phone/TimeConsumingPreferenceActivity.java b/src/com/android/phone/TimeConsumingPreferenceActivity.java
index 3b5fe21..8c5ae6d 100644
--- a/src/com/android/phone/TimeConsumingPreferenceActivity.java
+++ b/src/com/android/phone/TimeConsumingPreferenceActivity.java
@@ -187,11 +187,6 @@
@Override
public void onError(Preference preference, int error) {
if (DBG) dumpState();
- if (!preference.isEnabled()) {
- Log.i(LOG_TAG, "onError, skipped duplicated error popup");
- return;
- }
-
Log.i(LOG_TAG, "onError, preference=" + preference.getKey() + ", error=" + error);
if (mIsForeground) {
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index 31b7a9e..b774ac6 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -38,8 +38,10 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.os.PersistableBundle;
import android.os.SystemProperties;
import android.provider.Settings;
+import android.telephony.AccessNetworkConstants;
import android.telephony.CarrierConfigManager;
import android.telephony.CellIdentityCdma;
import android.telephony.CellIdentityGsm;
@@ -50,11 +52,12 @@
import android.telephony.CellInfoGsm;
import android.telephony.CellInfoLte;
import android.telephony.CellInfoWcdma;
-import android.telephony.CellLocation;
import android.telephony.CellSignalStrengthCdma;
import android.telephony.CellSignalStrengthGsm;
import android.telephony.CellSignalStrengthLte;
import android.telephony.CellSignalStrengthWcdma;
+import android.telephony.DataSpecificRegistrationInfo;
+import android.telephony.NetworkRegistrationInfo;
import android.telephony.PhoneStateListener;
import android.telephony.PhysicalChannelConfig;
import android.telephony.PreciseCallState;
@@ -62,8 +65,6 @@
import android.telephony.SignalStrength;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
-import android.telephony.cdma.CdmaCellLocation;
-import android.telephony.gsm.GsmCellLocation;
import android.text.TextUtils;
import android.util.Log;
import android.view.Menu;
@@ -228,7 +229,6 @@
private TextView mDBm;
private TextView mMwi;
private TextView mCfi;
- private TextView mLocation;
private TextView mCellInfo;
private TextView mSent;
private TextView mReceived;
@@ -239,6 +239,11 @@
private TextView mDnsCheckState;
private TextView mDownlinkKbps;
private TextView mUplinkKbps;
+ private TextView mEndcAvailable;
+ private TextView mDcnrRestricted;
+ private TextView mNrAvailable;
+ private TextView mNrState;
+ private TextView mNrFrequency;
private EditText mSmsc;
private Switch mRadioPowerOnSwitch;
private Button mCellInfoRefreshRateButton;
@@ -275,7 +280,6 @@
private boolean mCfiValue = false;
private List<CellInfo> mCellInfoResult = null;
- private CellLocation mCellLocationResult = null;
private int mPreferredNetworkTypeResult;
private int mCellInfoRefreshRateIndex;
@@ -320,11 +324,6 @@
}
@Override
- public void onCellLocationChanged(CellLocation location) {
- updateLocation(location);
- }
-
- @Override
public void onMessageWaitingIndicatorChanged(boolean mwi) {
mMwiValue = mwi;
updateMessageWaiting();
@@ -356,6 +355,7 @@
updateRadioPowerState();
updateNetworkType();
updateImsProvisionedState();
+ updateNrStats(serviceState);
}
}
@@ -465,12 +465,12 @@
mQueuedWork = new ThreadPoolExecutor(1, 1, RUNNABLE_TIMEOUT_MS, TimeUnit.MICROSECONDS,
new LinkedBlockingDeque<Runnable>());
- mTelephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
mConnectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
mPhone = PhoneFactory.getDefaultPhone();
+ mTelephonyManager = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE))
+ .createForSubscriptionId(mPhone.getSubId());
- mImsManager = ImsManager.getInstance(getApplicationContext(),
- SubscriptionManager.getDefaultVoicePhoneId());
+ mImsManager = ImsManager.getInstance(getApplicationContext(), mPhone.getPhoneId());
sPhoneIndexLabels = getPhoneIndexLabels(mTelephonyManager);
@@ -489,7 +489,6 @@
mDBm = (TextView) findViewById(R.id.dbm);
mMwi = (TextView) findViewById(R.id.mwi);
mCfi = (TextView) findViewById(R.id.cfi);
- mLocation = (TextView) findViewById(R.id.location);
mCellInfo = (TextView) findViewById(R.id.cellinfo);
mCellInfo.setTypeface(Typeface.MONOSPACE);
@@ -500,9 +499,28 @@
mPingHostnameV4 = (TextView) findViewById(R.id.pingHostnameV4);
mPingHostnameV6 = (TextView) findViewById(R.id.pingHostnameV6);
mHttpClientTest = (TextView) findViewById(R.id.httpClientTest);
-
+ mEndcAvailable = (TextView) findViewById(R.id.endc_available);
+ mDcnrRestricted = (TextView) findViewById(R.id.dcnr_restricted);
+ mNrAvailable = (TextView) findViewById(R.id.nr_available);
+ mNrState = (TextView) findViewById(R.id.nr_state);
+ mNrFrequency = (TextView) findViewById(R.id.nr_frequency);
mPhyChanConfig = (TextView) findViewById(R.id.phy_chan_config);
+ // 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);
+ }
+
mPreferredNetworkType = (Spinner) findViewById(R.id.preferredNetworkType);
ArrayAdapter<String> mPreferredNetworkTypeAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, PREFERRED_NETWORK_LABELS);
@@ -624,8 +642,8 @@
updateProperties();
updateDnsCheckState();
updateNetworkType();
+ updateNrStats(null);
- updateLocation(mCellLocationResult);
updateCellInfo(mCellInfoResult);
updateSubscriptionIds();
@@ -785,7 +803,6 @@
mSent.setText("");
mReceived.setText("");
mCallState.setText("");
- mLocation.setText("");
mMwiValue = false;
mMwi.setText("");
mCfiValue = false;
@@ -843,45 +860,6 @@
+ r.getString(R.string.radioInfo_display_asu));
}
- private void updateLocation(CellLocation location) {
- Resources r = getResources();
- if (location instanceof GsmCellLocation) {
- GsmCellLocation loc = (GsmCellLocation) location;
- int lac = loc.getLac();
- int cid = loc.getCid();
- mLocation.setText(r.getString(R.string.radioInfo_lac) + " = "
- + ((lac == -1) ? "unknown" : Integer.toHexString(lac))
- + " "
- + r.getString(R.string.radioInfo_cid) + " = "
- + ((cid == -1) ? "unknown" : Integer.toHexString(cid)));
- } else if (location instanceof CdmaCellLocation) {
- CdmaCellLocation loc = (CdmaCellLocation) location;
- int bid = loc.getBaseStationId();
- int sid = loc.getSystemId();
- int nid = loc.getNetworkId();
- int lat = loc.getBaseStationLatitude();
- int lon = loc.getBaseStationLongitude();
- mLocation.setText("BID = "
- + ((bid == -1) ? "unknown" : Integer.toHexString(bid))
- + " "
- + "SID = "
- + ((sid == -1) ? "unknown" : Integer.toHexString(sid))
- + " "
- + "NID = "
- + ((nid == -1) ? "unknown" : Integer.toHexString(nid))
- + "\n"
- + "LAT = "
- + ((lat == -1) ? "unknown" : Integer.toHexString(lat))
- + " "
- + "LONG = "
- + ((lon == -1) ? "unknown" : Integer.toHexString(lon)));
- } else {
- mLocation.setText("unknown");
- }
-
-
- }
-
private String getCellInfoDisplayString(int i) {
return (i != Integer.MAX_VALUE) ? Integer.toString(i) : "";
}
@@ -1131,6 +1109,32 @@
}
}
+ private void updateNrStats(ServiceState serviceState) {
+ if ((mTelephonyManager.getSupportedRadioAccessFamily()
+ & TelephonyManager.NETWORK_TYPE_BITMASK_NR) == 0) {
+ return;
+ }
+
+ ServiceState ss = serviceState;
+ if (ss == null && mPhone != null) {
+ ss = mPhone.getServiceState();
+ }
+ if (ss != null) {
+ NetworkRegistrationInfo nri = ss.getNetworkRegistrationInfo(
+ NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
+ 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");
+ }
+ }
+ mNrState.setText(NetworkRegistrationInfo.nrStateToString(ss.getNrState()));
+ mNrFrequency.setText(ServiceState.frequencyRangeToString(ss.getNrFrequencyRange()));
+ }
+ }
+
private void updateProperties() {
String s;
Resources r = getResources();
@@ -1231,11 +1235,9 @@
private void updateAllCellInfo() {
mCellInfo.setText("");
- mLocation.setText("");
final Runnable updateAllCellInfoResults = new Runnable() {
public void run() {
- updateLocation(mCellLocationResult);
updateCellInfo(mCellInfoResult);
}
};
@@ -1244,7 +1246,6 @@
@Override
public void run() {
mCellInfoResult = mTelephonyManager.getAllCellInfo();
- mCellLocationResult = mTelephonyManager.getCellLocation();
mHandler.post(updateAllCellInfoResults);
}
@@ -1465,9 +1466,9 @@
};
private boolean isImsVolteProvisioned() {
- if (mPhone != null && mImsManager != null) {
- return mImsManager.isVolteEnabledByPlatform(mPhone.getContext())
- && mImsManager.isVolteProvisionedOnDevice(mPhone.getContext());
+ if (mImsManager != null) {
+ return mImsManager.isVolteEnabledByPlatform()
+ && mImsManager.isVolteProvisionedOnDevice();
}
return false;
}
@@ -1480,9 +1481,9 @@
};
private boolean isImsVtProvisioned() {
- if (mPhone != null && mImsManager != null) {
- return mImsManager.isVtEnabledByPlatform(mPhone.getContext())
- && mImsManager.isVtProvisionedOnDevice(mPhone.getContext());
+ if (mImsManager != null) {
+ return mImsManager.isVtEnabledByPlatform()
+ && mImsManager.isVtProvisionedOnDevice();
}
return false;
}
@@ -1495,9 +1496,9 @@
};
private boolean isImsWfcProvisioned() {
- if (mPhone != null && mImsManager != null) {
- return mImsManager.isWfcEnabledByPlatform(mPhone.getContext())
- && mImsManager.isWfcProvisionedOnDevice(mPhone.getContext());
+ if (mImsManager != null) {
+ return mImsManager.isWfcEnabledByPlatform()
+ && mImsManager.isWfcProvisionedOnDevice();
}
return false;
}
@@ -1539,13 +1540,14 @@
return provisioned;
}
- private static boolean isEabEnabledByPlatform(Context context) {
- if (context != null) {
+ private boolean isEabEnabledByPlatform() {
+ if (mPhone != null) {
CarrierConfigManager configManager = (CarrierConfigManager)
- context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
- if (configManager != null && configManager.getConfig().getBoolean(
- CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL)) {
- return true;
+ mPhone.getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE);
+ PersistableBundle b = configManager.getConfigForSubId(mPhone.getSubId());
+ if (b != null) {
+ return b.getBoolean(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL,
+ false);
}
}
return false;
@@ -1562,25 +1564,25 @@
mImsVolteProvisionedSwitch.setChecked(isImsVolteProvisioned());
mImsVolteProvisionedSwitch.setOnCheckedChangeListener(mImsVolteCheckedChangeListener);
mImsVolteProvisionedSwitch.setEnabled(!IS_USER_BUILD
- && mImsManager.isVolteEnabledByPlatform(mPhone.getContext()));
+ && mImsManager.isVolteEnabledByPlatform());
mImsVtProvisionedSwitch.setOnCheckedChangeListener(null);
mImsVtProvisionedSwitch.setChecked(isImsVtProvisioned());
mImsVtProvisionedSwitch.setOnCheckedChangeListener(mImsVtCheckedChangeListener);
mImsVtProvisionedSwitch.setEnabled(!IS_USER_BUILD
- && mImsManager.isVtEnabledByPlatform(mPhone.getContext()));
+ && mImsManager.isVtEnabledByPlatform());
mImsWfcProvisionedSwitch.setOnCheckedChangeListener(null);
mImsWfcProvisionedSwitch.setChecked(isImsWfcProvisioned());
mImsWfcProvisionedSwitch.setOnCheckedChangeListener(mImsWfcCheckedChangeListener);
mImsWfcProvisionedSwitch.setEnabled(!IS_USER_BUILD
- && mImsManager.isWfcEnabledByPlatform(mPhone.getContext()));
+ && mImsManager.isWfcEnabledByPlatform());
mEabProvisionedSwitch.setOnCheckedChangeListener(null);
mEabProvisionedSwitch.setChecked(isEabProvisioned());
mEabProvisionedSwitch.setOnCheckedChangeListener(mEabCheckedChangeListener);
mEabProvisionedSwitch.setEnabled(!IS_USER_BUILD
- && isEabEnabledByPlatform(mPhone.getContext()));
+ && isEabEnabledByPlatform());
}
OnClickListener mDnsCheckButtonHandler = new OnClickListener() {
diff --git a/src/com/android/phone/settings/SuppServicesUiUtil.java b/src/com/android/phone/settings/SuppServicesUiUtil.java
index 4e9841f..4f1a79f 100644
--- a/src/com/android/phone/settings/SuppServicesUiUtil.java
+++ b/src/com/android/phone/settings/SuppServicesUiUtil.java
@@ -84,7 +84,7 @@
.create();
}
- private static String makeMessage(Context context, String preferenceKey, Phone phone) {
+ public static String makeMessage(Context context, String preferenceKey, Phone phone) {
String message = "";
int simSlot = (phone.getPhoneId() == 0) ? 1 : 2;
String suppServiceName = getSuppServiceName(context, preferenceKey);
diff --git a/src/com/android/phone/settings/VoicemailSettingsActivity.java b/src/com/android/phone/settings/VoicemailSettingsActivity.java
index 66b1af9..2bd5306 100644
--- a/src/com/android/phone/settings/VoicemailSettingsActivity.java
+++ b/src/com/android/phone/settings/VoicemailSettingsActivity.java
@@ -238,6 +238,10 @@
mVoicemailNotificationPreference =
findPreference(getString(R.string.voicemail_notifications_key));
+ if (mSubMenuVoicemailSettings == null) {
+ mSubMenuVoicemailSettings =
+ (EditPhoneNumberPreference) findPreference(BUTTON_VOICEMAIL_KEY);
+ }
final Intent intent = new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS);
intent.putExtra(Settings.EXTRA_CHANNEL_ID,
NotificationChannelController.CHANNEL_ID_VOICE_MAIL);
@@ -250,12 +254,6 @@
super.onResume();
mForeground = true;
- PreferenceScreen prefSet = getPreferenceScreen();
-
- if (mSubMenuVoicemailSettings == null) {
- mSubMenuVoicemailSettings =
- (EditPhoneNumberPreference) findPreference(BUTTON_VOICEMAIL_KEY);
- }
if (mSubMenuVoicemailSettings != null) {
mSubMenuVoicemailSettings.setParentActivity(this, VOICEMAIL_PREF_ID, this);
mSubMenuVoicemailSettings.setDialogOnClosedListener(this);
diff --git a/src/com/android/phone/settings/fdn/DeleteFdnContactScreen.java b/src/com/android/phone/settings/fdn/DeleteFdnContactScreen.java
index 92baa97..8b17cfb 100644
--- a/src/com/android/phone/settings/fdn/DeleteFdnContactScreen.java
+++ b/src/com/android/phone/settings/fdn/DeleteFdnContactScreen.java
@@ -64,7 +64,8 @@
resolveIntent();
- authenticatePin2();
+ // Starts PIN2 authentication only for the first time.
+ if (icicle == null) authenticatePin2();
getWindow().requestFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.delete_fdn_contact_screen);
diff --git a/src/com/android/services/telephony/CdmaConnection.java b/src/com/android/services/telephony/CdmaConnection.java
index 90e7663..c7b324d 100644
--- a/src/com/android/services/telephony/CdmaConnection.java
+++ b/src/com/android/services/telephony/CdmaConnection.java
@@ -16,11 +16,12 @@
package com.android.services.telephony;
+import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.provider.Settings;
import android.telephony.DisconnectCause;
-import android.telephony.PhoneNumberUtils;
+import android.telephony.TelephonyManager;
import com.android.internal.telephony.Call;
import com.android.internal.telephony.CallStateException;
@@ -284,8 +285,14 @@
private boolean isEmergency() {
Phone phone = getPhone();
- return phone != null && getAddress() != null && PhoneNumberUtils.isLocalEmergencyNumber(
- phone.getContext(), getAddress().getSchemeSpecificPart());
+ if (phone != null && getAddress() != null) {
+ TelephonyManager tm = (TelephonyManager) phone.getContext()
+ .getSystemService(Context.TELEPHONY_SERVICE);
+ if (tm != null) {
+ return tm.isEmergencyNumber(getAddress().getSchemeSpecificPart());
+ }
+ }
+ return false;
}
/**
diff --git a/src/com/android/services/telephony/ImsConference.java b/src/com/android/services/telephony/ImsConference.java
index 816348a..4826ecb 100644
--- a/src/com/android/services/telephony/ImsConference.java
+++ b/src/com/android/services/telephony/ImsConference.java
@@ -268,7 +268,7 @@
@Override
public void onExtrasChanged(Connection c, Bundle extras) {
- Log.v(this, "onExtrasChanged: c=" + c + " Extras=" + extras);
+ Log.v(this, "onExtrasChanged: c=" + c + " Extras=" + Rlog.pii(LOG_TAG, extras));
updateExtras(extras);
}
@@ -438,6 +438,7 @@
mTelephonyConnectionService = telephonyConnectionService;
setConferenceHost(conferenceHost);
+ setVideoProvider(conferenceHost, conferenceHost.getVideoProvider());
int capabilities = Connection.CAPABILITY_MUTE |
Connection.CAPABILITY_CONFERENCE_HAS_NO_CHILDREN;
@@ -864,6 +865,16 @@
mConferenceHostAddress = new Uri[hostAddresses.size()];
mConferenceHostAddress = hostAddresses.toArray(mConferenceHostAddress);
+ Log.i(this, "setConferenceHost: temp log hosts are "
+ + Arrays.stream(mConferenceHostAddress)
+ .map(Uri::toString)
+ .collect(Collectors.joining(", ")));
+
+ Log.i(this, "setConferenceHost: hosts are "
+ + Arrays.stream(mConferenceHostAddress)
+ .map(Uri::getSchemeSpecificPart)
+ .map(ssp -> Rlog.pii(LOG_TAG, ssp))
+ .collect(Collectors.joining(", ")));
Log.i(this, "setConferenceHost: hosts are "
+ Arrays.stream(mConferenceHostAddress)
@@ -1359,9 +1370,12 @@
}
if (mConferenceHost.getPhone().getPhoneType() == PhoneConstants.PHONE_TYPE_GSM) {
- Log.i(this,"handleOriginalConnectionChange : SRVCC to GSM");
GsmConnection c = new GsmConnection(originalConnection, getTelecomCallId(),
mConferenceHost.getCallDirection());
+ Log.i(this, "handleOriginalConnectionChange : SRVCC to GSM."
+ + " Created new GsmConnection with objId=" + System.identityHashCode(c)
+ + " and originalConnection objId="
+ + System.identityHashCode(originalConnection));
// This is a newly created conference connection as a result of SRVCC
c.setConferenceSupported(true);
c.setTelephonyConnectionProperties(
diff --git a/src/com/android/services/telephony/ImsConferenceController.java b/src/com/android/services/telephony/ImsConferenceController.java
index 6d3d4c2..7cf9415 100644
--- a/src/com/android/services/telephony/ImsConferenceController.java
+++ b/src/com/android/services/telephony/ImsConferenceController.java
@@ -403,6 +403,20 @@
conferenceHostConnection.setVideoPauseSupported(connection.getVideoPauseSupported());
conferenceHostConnection.setManageImsConferenceCallSupported(
connection.isManageImsConferenceCallSupported());
+ // WARNING: do not try to copy the video provider from connection to
+ // conferenceHostConnection here. In connection.cloneConnection, part of the clone
+ // process is to set the original connection so it's already set:
+ // conferenceHostConnection.setVideoProvider(connection.getVideoProvider());
+ // There is a subtle concurrency issue here where at the time of merge, the
+ // TelephonyConnection potentially has the WRONG video provider set on it (compared to
+ // the ImsPhoneConnection (ie original connection) which has the correct one.
+ // If you follow the logic in ImsPhoneCallTracker#onCallMerged through, what happens is the
+ // new post-merge video provider is set on the ImsPhoneConnection. That informs it's
+ // listeners (e.g. TelephonyConnection) via a handler. We immediately change the multiparty
+ // start of the host connection and ImsPhoneCallTracker starts the setup we are
+ // performing here. When cloning TelephonyConnection, we get the right VideoProvider
+ // because it is copied from the originalConnection, not using the potentially stale value
+ // in the TelephonyConnection.
PhoneAccountHandle phoneAccountHandle = null;
diff --git a/src/com/android/services/telephony/MmiCodeUtil.java b/src/com/android/services/telephony/MmiCodeUtil.java
new file mode 100644
index 0000000..d208ec3
--- /dev/null
+++ b/src/com/android/services/telephony/MmiCodeUtil.java
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.services.telephony;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public final class MmiCodeUtil {
+ //***** Constants
+
+ // Supp Service codes from TS 22.030 Annex B
+
+ //Called line presentation
+ static final String SC_CLIP = "30";
+ static final String SC_CLIR = "31";
+
+ // Call Forwarding
+ static final String SC_CFU = "21";
+ static final String SC_CFB = "67";
+ static final String SC_CFNRy = "61";
+ static final String SC_CFNR = "62";
+
+ static final String SC_CF_All = "002";
+ static final String SC_CF_All_Conditional = "004";
+
+ // Call Waiting
+ static final String SC_WAIT = "43";
+
+ // Call Barring
+ static final String SC_BAOC = "33";
+ static final String SC_BAOIC = "331";
+ static final String SC_BAOICxH = "332";
+ static final String SC_BAIC = "35";
+ static final String SC_BAICr = "351";
+
+ static final String SC_BA_ALL = "330";
+ static final String SC_BA_MO = "333";
+ static final String SC_BA_MT = "353";
+
+ // Supp Service Password registration
+ static final String SC_PWD = "03";
+
+ // PIN/PIN2/PUK/PUK2
+ static final String SC_PIN = "04";
+ static final String SC_PIN2 = "042";
+ static final String SC_PUK = "05";
+ static final String SC_PUK2 = "052";
+
+ // See TS 22.030 6.5.2 "Structure of the MMI"
+
+ static Pattern sPatternSuppService = Pattern.compile(
+ "((\\*|#|\\*#|\\*\\*|##)(\\d{2,3})(\\*([^*#]*)(\\*([^*#]*)(\\*([^*#]*)(\\*([^*#]*))?)?)?)?#)(.*)");
+/* 1 2 3 4 5 6 7 8 9 10 11 12
+
+ 1 = Full string up to and including #
+ 2 = action (activation/interrogation/registration/erasure)
+ 3 = service code
+ 5 = SIA
+ 7 = SIB
+ 9 = SIC
+ 10 = dialing number
+*/
+
+ static final int MATCH_GROUP_SERVICE_CODE = 3;
+
+ public static final String BUTTON_CLIR_KEY = "button_clir_key";
+ public static final String BUTTON_CW_KEY = "button_cw_key";
+ public static final String CALL_FORWARDING_KEY = "call_forwarding_key";
+ public static final String CALL_BARRING_KEY = "call_barring_key";
+
+ //***** Public Class methods
+ public static String getMmiServiceCode(String dialString) {
+ Matcher m;
+ String ret = null;
+
+ m = sPatternSuppService.matcher(dialString);
+
+ if (m.matches()) {
+ ret = makeEmptyNull(m.group(MATCH_GROUP_SERVICE_CODE));
+ }
+
+ return ret;
+ }
+
+ private static String makeEmptyNull(String s) {
+ if (s != null && s.length() == 0) return null;
+
+ return s;
+ }
+
+ static boolean isServiceCodeCallForwarding(String sc) {
+ return sc != null &&
+ (sc.equals(SC_CFU)
+ || sc.equals(SC_CFB) || sc.equals(SC_CFNRy)
+ || sc.equals(SC_CFNR) || sc.equals(SC_CF_All)
+ || sc.equals(SC_CF_All_Conditional));
+ }
+
+ static boolean isServiceCodeCallBarring(String sc) {
+ return sc != null &&
+ (sc.equals(SC_BAOC)
+ || sc.equals(SC_BAOIC) || sc.equals(SC_BAOICxH)
+ || sc.equals(SC_BAIC) || sc.equals(SC_BAICr)
+ || sc.equals(SC_BA_ALL) || sc.equals(SC_BA_MO)
+ || sc.equals(SC_BA_MT));
+ }
+
+ static boolean isPinPukCommand(String sc) {
+ return sc != null && (sc.equals(SC_PIN) || sc.equals(SC_PIN2)
+ || sc.equals(SC_PUK) || sc.equals(SC_PUK2));
+ }
+
+ public static String getSuppServiceKey(String dialString) {
+ String sc = getMmiServiceCode(dialString);
+ if (sc != null && sc.equals(SC_CLIP)) {
+ return "";
+ } else if (sc != null && sc.equals(SC_CLIR)) {
+ return BUTTON_CLIR_KEY;
+ } else if (isServiceCodeCallForwarding(sc)) {
+ return CALL_FORWARDING_KEY;
+ } else if (isServiceCodeCallBarring(sc)) {
+ return CALL_BARRING_KEY;
+ } else if (sc != null && sc.equals(SC_PWD)) {
+ return "";
+ } else if (sc != null && sc.equals(SC_WAIT)) {
+ return BUTTON_CW_KEY;
+ } else if (isPinPukCommand(sc)) {
+ return "";
+ } else {
+ return null;
+ }
+ }
+}
diff --git a/src/com/android/services/telephony/PstnIncomingCallNotifier.java b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
index 1c1725f..377b471 100644
--- a/src/com/android/services/telephony/PstnIncomingCallNotifier.java
+++ b/src/com/android/services/telephony/PstnIncomingCallNotifier.java
@@ -65,6 +65,12 @@
*/
private static final int MAX_NUMBER_VERIFICATION_HANGUP_DELAY_MILLIS = 10000;
+ /**
+ * Hardcoded extra for a call that's used to provide metrics information to the dialer app.
+ */
+ private static final String EXTRA_CALL_CREATED_TIME_MILLIS =
+ "android.telecom.extra.CALL_CREATED_TIME_MILLIS";
+
/** The phone object to listen to. */
private final Phone mPhone;
@@ -216,6 +222,9 @@
Call call = connection.getCall();
if (call != null && call.getState().isAlive()) {
addNewUnknownCall(connection);
+ } else {
+ Log.i(this, "Skipping new unknown connection because its call is null or dead."
+ + " connection=" + connection);
}
}
}
@@ -242,8 +251,7 @@
}
// Specifies the time the call was added. This is used by the dialer for analytics.
- extras.putLong(TelecomManager.EXTRA_CALL_CREATED_TIME_MILLIS,
- SystemClock.elapsedRealtime());
+ extras.putLong(EXTRA_CALL_CREATED_TIME_MILLIS, SystemClock.elapsedRealtime());
PhoneAccountHandle handle = findCorrectPhoneAccountHandle();
if (handle == null) {
@@ -273,8 +281,7 @@
}
// Specifies the time the call was added. This is used by the dialer for analytics.
- extras.putLong(TelecomManager.EXTRA_CALL_CREATED_TIME_MILLIS,
- SystemClock.elapsedRealtime());
+ extras.putLong(EXTRA_CALL_CREATED_TIME_MILLIS, SystemClock.elapsedRealtime());
if (connection.getPhoneType() == PhoneConstants.PHONE_TYPE_IMS) {
if (((ImsPhoneConnection) connection).isRttEnabledForCall()) {
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index 3b8f4fd..0e7c8ed 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -106,6 +106,13 @@
*/
private static final int LISTENER_STATE_REGISTERED = 3;
+ /**
+ * Copy-pasted from android.telecom.PhoneAccount -- hidden constant which is unfortunately being
+ * used by some 1P apps, so we're keeping it here until we can remove it.
+ */
+ private static final String EXTRA_SUPPORTS_VIDEO_CALLING_FALLBACK =
+ "android.telecom.extra.SUPPORTS_VIDEO_CALLING_FALLBACK";
+
final class AccountEntry implements PstnPhoneCapabilitiesNotifier.Listener {
private final Phone mPhone;
private PhoneAccount mAccount;
@@ -119,7 +126,7 @@
private ImsMmTelManager.CapabilityCallback mMmtelCapabilityCallback;
private RegistrationManager.RegistrationCallback mImsRegistrationCallback;
private ImsMmTelManager mMmTelManager;
- private final boolean mIsDummy;
+ private final boolean mIsTestAccount;
private boolean mIsVideoCapable;
private boolean mIsVideoPresenceSupported;
private boolean mIsVideoPauseSupported;
@@ -131,20 +138,20 @@
private boolean mIsUsingSimCallManager;
private boolean mIsShowPreciseFailedCause;
- AccountEntry(Phone phone, boolean isEmergency, boolean isDummy) {
+ AccountEntry(Phone phone, boolean isEmergency, boolean isTest) {
mPhone = phone;
mIsEmergency = isEmergency;
- mIsDummy = isDummy;
+ mIsTestAccount = isTest;
mIsAdhocConfCapable = mPhone.isImsRegistered();
- mAccount = registerPstnPhoneAccount(isEmergency, isDummy);
+ mAccount = registerPstnPhoneAccount(isEmergency, isTest);
Log.i(this, "Registered phoneAccount: %s with handle: %s",
mAccount, mAccount.getAccountHandle());
mIncomingCallNotifier = new PstnIncomingCallNotifier((Phone) mPhone);
mPhoneCapabilitiesNotifier = new PstnPhoneCapabilitiesNotifier((Phone) mPhone,
this);
- if (mIsDummy || isEmergency) {
- // For dummy and emergency entries, there is no sub ID that can be assigned, so do
+ if (mIsTestAccount || isEmergency) {
+ // For test and emergency entries, there is no sub ID that can be assigned, so do
// not register for capabilities callbacks.
return;
}
@@ -247,7 +254,7 @@
* Trigger re-registration of this account.
*/
public void reRegisterPstnPhoneAccount() {
- PhoneAccount newAccount = buildPstnPhoneAccount(mIsEmergency, mIsDummy);
+ PhoneAccount newAccount = buildPstnPhoneAccount(mIsEmergency, mIsTestAccount);
if (!newAccount.equals(mAccount)) {
Log.i(this, "reRegisterPstnPhoneAccount: subId: " + getSubId()
+ " - re-register due to account change.");
@@ -258,8 +265,8 @@
}
}
- private PhoneAccount registerPstnPhoneAccount(boolean isEmergency, boolean isDummyAccount) {
- PhoneAccount account = buildPstnPhoneAccount(mIsEmergency, mIsDummy);
+ private PhoneAccount registerPstnPhoneAccount(boolean isEmergency, boolean isTestAccount) {
+ PhoneAccount account = buildPstnPhoneAccount(mIsEmergency, mIsTestAccount);
// Register with Telecom and put into the account entry.
mTelecomManager.registerPhoneAccount(account);
return account;
@@ -268,13 +275,13 @@
/**
* Registers the specified account with Telecom as a PhoneAccountHandle.
*/
- private PhoneAccount buildPstnPhoneAccount(boolean isEmergency, boolean isDummyAccount) {
- String dummyPrefix = isDummyAccount ? "Dummy " : "";
+ private PhoneAccount buildPstnPhoneAccount(boolean isEmergency, boolean isTestAccount) {
+ String testPrefix = isTestAccount ? "Test " : "";
// Build the Phone account handle.
PhoneAccountHandle phoneAccountHandle =
PhoneUtils.makePstnPhoneAccountHandleWithPrefix(
- mPhone, dummyPrefix, isEmergency);
+ mPhone, testPrefix, isEmergency);
// Populate the phone account data.
int subId = mPhone.getSubId();
@@ -334,8 +341,8 @@
// The label is user-visible so let's use the display name that the user may
// have set in Settings->Sim cards.
- label = dummyPrefix + subDisplayName;
- description = dummyPrefix + mContext.getResources().getString(
+ label = testPrefix + subDisplayName;
+ description = testPrefix + mContext.getResources().getString(
R.string.sim_description_default, slotIdString);
}
@@ -416,13 +423,12 @@
extras.putBoolean(PhoneAccount.EXTRA_PLAY_CALL_RECORDING_TONE, true);
}
- extras.putBoolean(PhoneAccount.EXTRA_SUPPORTS_VIDEO_CALLING_FALLBACK,
+ extras.putBoolean(EXTRA_SUPPORTS_VIDEO_CALLING_FALLBACK,
mContext.getResources()
.getBoolean(R.bool.config_support_video_calling_fallback));
if (slotId != SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
- extras.putString(PhoneAccount.EXTRA_SORT_ORDER,
- String.valueOf(slotId));
+ extras.putInt(PhoneAccount.EXTRA_SORT_ORDER, slotId);
}
mIsMergeCallSupported = isCarrierMergeCallSupported();
@@ -767,7 +773,7 @@
// time we get here, the original phone account could have been torn down.
return;
}
- mAccount = registerPstnPhoneAccount(mIsEmergency, mIsDummy);
+ mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
}
}
@@ -786,7 +792,7 @@
Log.i(this, "updateAdhocConfCapability - changed, new value: "
+ isAdhocConfCapable);
mIsAdhocConfCapable = isAdhocConfCapable;
- mAccount = registerPstnPhoneAccount(mIsEmergency, mIsDummy);
+ mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
}
}
}
@@ -805,7 +811,7 @@
if (mIsVideoPresenceSupported != isVideoPresenceSupported) {
Log.i(this, "updateVideoPresenceCapability for subId=" + mPhone.getSubId()
+ ", new value= " + isVideoPresenceSupported);
- mAccount = registerPstnPhoneAccount(mIsEmergency, mIsDummy);
+ mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
}
}
}
@@ -814,7 +820,7 @@
boolean isRttEnabled = isRttCurrentlySupported();
if (isRttEnabled != mIsRttCapable) {
Log.i(this, "updateRttCapability - changed, new value: " + isRttEnabled);
- mAccount = registerPstnPhoneAccount(mIsEmergency, mIsDummy);
+ mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
}
}
@@ -823,7 +829,7 @@
activeDataSubId);
if (isEmergencyPreferred != mIsEmergencyPreferred) {
Log.i(this, "updateDefaultDataSubId - changed, new value: " + isEmergencyPreferred);
- mAccount = registerPstnPhoneAccount(mIsEmergency, mIsDummy);
+ mAccount = registerPstnPhoneAccount(mIsEmergency, mIsTestAccount);
}
}
@@ -847,7 +853,8 @@
// Next check whether we're in or near a country that supports it
String country =
mPhone.getServiceStateTracker().getLocaleTracker()
- .getCurrentCountry().toLowerCase();
+ .getLastKnownCountryIso().toLowerCase();
+
String[] supportedCountries = mContext.getResources().getStringArray(
R.array.config_simless_emergency_rtt_supported_countries);
if (supportedCountries == null || Arrays.stream(supportedCountries).noneMatch(
@@ -856,7 +863,7 @@
+ " not supported in this country: " + country);
return false;
}
-
+
return true;
}
@@ -1462,7 +1469,7 @@
}
mAccounts.add(new AccountEntry(phone, false /* emergency */,
- false /* isDummy */));
+ false /* isTest */));
}
}
} finally {
@@ -1473,14 +1480,14 @@
Log.i(this, "setupAccounts: adding default");
mAccounts.add(
new AccountEntry(PhoneFactory.getDefaultPhone(), true /* emergency */,
- false /* isDummy */));
+ false /* isTest */));
}
}
// Add a fake account entry.
- if (DBG && phones.length > 0 && "TRUE".equals(System.getProperty("dummy_sim"))) {
+ if (DBG && phones.length > 0 && "TRUE".equals(System.getProperty("test_sim"))) {
mAccounts.add(new AccountEntry(phones[0], false /* emergency */,
- true /* isDummy */));
+ true /* isTest */));
}
}
diff --git a/src/com/android/services/telephony/TelephonyConferenceController.java b/src/com/android/services/telephony/TelephonyConferenceController.java
index 95281b3..fd16d4b 100644
--- a/src/com/android/services/telephony/TelephonyConferenceController.java
+++ b/src/com/android/services/telephony/TelephonyConferenceController.java
@@ -260,6 +260,8 @@
}
mTelephonyConference = new TelephonyConference(phoneAccountHandle);
+ Log.i(this, "Creating new TelephonyConference to hold conferenced connections."
+ + " conference=" + mTelephonyConference);
for (Connection connection : conferencedConnections) {
Log.d(this, "Adding a connection to a conference call: %s %s",
mTelephonyConference, connection);
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index b4dd050..1caa8e7 100755
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -117,6 +117,9 @@
private static final int MSG_REDIAL_CONNECTION_CHANGED = 20;
private static final int MSG_REJECT = 21;
+ private static final String JAPAN_COUNTRY_CODE_WITH_PLUS_SIGN = "+81";
+ private static final String JAPAN_ISO_COUNTRY_CODE = "JP";
+
private List<Uri> mParticipants;
private boolean mIsAdhocConferenceCall;
@@ -149,15 +152,18 @@
mOriginalConnection.getAddress() != null &&
mOriginalConnection.getAddress().equals(connection.getAddress())) ||
connection.getState() == mOriginalConnection.getStateBeforeHandover())) {
- Log.d(TelephonyConnection.this,
- "SettingOriginalConnection " + mOriginalConnection.toString()
- + " with " + connection.toString());
+ Log.d(TelephonyConnection.this, "Setting original connection after"
+ + " handover or redial, current original connection="
+ + mOriginalConnection.toString()
+ + ", new original connection="
+ + connection.toString());
setOriginalConnection(connection);
mWasImsConnection = false;
}
} else {
Log.w(TelephonyConnection.this,
- what + ": mOriginalConnection==null - invalid state (not cleaned up)");
+ what + ": mOriginalConnection==null --"
+ + " invalid state (not cleaned up)");
}
break;
case MSG_RINGBACK_TONE:
@@ -1295,6 +1301,9 @@
if (isShowingOriginalDialString()
&& mOriginalConnection.getOrigDialString() != null) {
address = getAddressFromNumber(mOriginalConnection.getOrigDialString());
+ } else if (isNeededToFormatIncomingNumberForJp()) {
+ address = getAddressFromNumber(
+ formatIncomingNumberForJp(mOriginalConnection.getAddress()));
} else {
address = getAddressFromNumber(mOriginalConnection.getAddress());
}
@@ -1316,7 +1325,9 @@
setCallerDisplayName(name, namePresentation);
}
- if (PhoneNumberUtils.isEmergencyNumber(mOriginalConnection.getAddress())) {
+ TelephonyManager tm = (TelephonyManager) getPhone().getContext()
+ .getSystemService(Context.TELEPHONY_SERVICE);
+ if (tm.isEmergencyNumber(mOriginalConnection.getAddress())) {
mTreatAsEmergencyCall = true;
}
@@ -1379,7 +1390,9 @@
mHandler.obtainMessage(MSG_CONNECTION_EXTRAS_CHANGED, connExtras == null ? null :
new Bundle(connExtras)).sendToTarget();
- if (PhoneNumberUtils.isEmergencyNumber(mOriginalConnection.getAddress())) {
+ TelephonyManager tm = (TelephonyManager) getPhone().getContext()
+ .getSystemService(Context.TELEPHONY_SERVICE);
+ if (tm.isEmergencyNumber(mOriginalConnection.getAddress())) {
mTreatAsEmergencyCall = true;
}
// Propagate VERSTAT for IMS calls.
@@ -1577,7 +1590,7 @@
}
}
- isVowifiEnabled = ImsUtil.isWfcEnabled(phone.getContext(), phone.getPhoneId());
+ isVowifiEnabled = isWfcEnabled(phone);
}
if (isCurrentVideoCall) {
@@ -2713,7 +2726,7 @@
boolean isIms = phone.getPhoneType() == PhoneConstants.PHONE_TYPE_IMS;
boolean isVoWifiEnabled = false;
if (isIms) {
- isVoWifiEnabled = ImsUtil.isWfcEnabled(phone.getContext(), phone.getPhoneId());
+ isVoWifiEnabled = isWfcEnabled(phone);
}
boolean isRttMergeSupported = getCarrierConfig()
.getBoolean(CarrierConfigManager.KEY_ALLOW_MERGING_RTT_CALLS_BOOL);
@@ -2763,6 +2776,12 @@
notifyConferenceSupportedChanged(isConferenceSupported);
}
}
+
+ @VisibleForTesting
+ boolean isWfcEnabled(Phone phone) {
+ return ImsUtil.isWfcEnabled(phone.getContext(), phone.getPhoneId());
+ }
+
/**
* Provides a mapping from extras keys which may be found in the
* {@link com.android.internal.telephony.Connection} to their equivalents defined in
@@ -3201,4 +3220,29 @@
listener.onStatusHintsChanged(this, statusHints);
}
}
+
+ /**
+ * Whether the incoming call number should be formatted to national number for Japan.
+ * @return {@code true} should be convert to the national format, {@code false} otherwise.
+ */
+ private boolean isNeededToFormatIncomingNumberForJp() {
+ if (mOriginalConnection.isIncoming()
+ && !TextUtils.isEmpty(mOriginalConnection.getAddress())
+ && mOriginalConnection.getAddress().startsWith(JAPAN_COUNTRY_CODE_WITH_PLUS_SIGN)) {
+ PersistableBundle b = getCarrierConfig();
+ return b != null && b.getBoolean(
+ CarrierConfigManager.KEY_FORMAT_INCOMING_NUMBER_TO_NATIONAL_FOR_JP_BOOL);
+ }
+ return false;
+ }
+
+ /**
+ * Format the incoming call number to national number for Japan.
+ * @param number
+ * @return the formatted phone number (e.g, "+819012345678" -> "09012345678")
+ */
+ private String formatIncomingNumberForJp(String number) {
+ return PhoneNumberUtils.stripSeparators(
+ PhoneNumberUtils.formatNumber(number, JAPAN_ISO_COUNTRY_CODE));
+ }
}
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 356407a..322993a 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -17,10 +17,13 @@
package com.android.services.telephony;
import android.annotation.NonNull;
+import android.app.AlertDialog;
+import android.app.Dialog;
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
@@ -46,6 +49,7 @@
import android.telephony.emergency.EmergencyNumber;
import android.text.TextUtils;
import android.util.Pair;
+import android.view.WindowManager;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.Call;
@@ -65,6 +69,7 @@
import com.android.phone.MMIDialogActivity;
import com.android.phone.PhoneUtils;
import com.android.phone.R;
+import com.android.phone.settings.SuppServicesUiUtil;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
@@ -1535,10 +1540,17 @@
if (phone == null || TextUtils.isEmpty(number) || !phone.getServiceState().getRoaming()) {
return false;
}
+ boolean allowPrefixIms = true;
String[] blockPrefixes = null;
CarrierConfigManager cfgManager = (CarrierConfigManager)
phone.getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE);
if (cfgManager != null) {
+ allowPrefixIms = cfgManager.getConfigForSubId(phone.getSubId()).getBoolean(
+ CarrierConfigManager.KEY_SUPPORT_IMS_CALL_FORWARDING_WHILE_ROAMING_BOOL,
+ true);
+ if (allowPrefixIms && useImsForAudioOnlyCall(phone)) {
+ return false;
+ }
blockPrefixes = cfgManager.getConfigForSubId(phone.getSubId()).getStringArray(
CarrierConfigManager.KEY_CALL_FORWARDING_BLOCKS_WHILE_ROAMING_STRING_ARRAY);
}
@@ -1553,6 +1565,14 @@
return false;
}
+ private boolean useImsForAudioOnlyCall(Phone phone) {
+ Phone imsPhone = phone.getImsPhone();
+
+ return imsPhone != null
+ && (imsPhone.isVolteEnabled() || imsPhone.isWifiCallingEnabled())
+ && (imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE);
+ }
+
private boolean isRadioOn() {
boolean result = false;
for (Phone phone : mPhoneFactoryProxy.getPhones()) {
@@ -1655,13 +1675,18 @@
? connection.getAddress().getSchemeSpecificPart()
: "";
+ if (showDataDialog(phone, number)) {
+ connection.setDisconnected(DisconnectCauseUtil.toTelecomDisconnectCause(
+ android.telephony.DisconnectCause.DIALED_MMI, "UT is not available"));
+ return;
+ }
+
com.android.internal.telephony.Connection originalConnection = null;
try {
if (phone != null) {
EmergencyNumber emergencyNumber =
phone.getEmergencyNumberTracker().getEmergencyNumber(number);
if (emergencyNumber != null) {
- phone.notifyOutgoingEmergencyCall(emergencyNumber);
if (!getAllConnections().isEmpty()) {
if (!shouldHoldForEmergencyCall(phone)) {
// If we do not support holding ongoing calls for an outgoing
@@ -1713,7 +1738,8 @@
if (originalConnection == null) {
int telephonyDisconnectCause = android.telephony.DisconnectCause.OUTGOING_FAILURE;
// On GSM phones, null connection means that we dialed an MMI code
- if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_GSM) {
+ if (phone.getPhoneType() == PhoneConstants.PHONE_TYPE_GSM ||
+ phone.isUtEnabled()) {
Log.d(this, "dialed MMI code");
int subId = phone.getSubId();
Log.d(this, "subId: "+subId);
@@ -2358,6 +2384,78 @@
}
}
+ private boolean showDataDialog(Phone phone, String number) {
+ boolean ret = false;
+ final Context context = getApplicationContext();
+ String suppKey = MmiCodeUtil.getSuppServiceKey(number);
+ if (suppKey != null) {
+ boolean clirOverUtPrecautions = false;
+ boolean cfOverUtPrecautions = false;
+ boolean cbOverUtPrecautions = false;
+ boolean cwOverUtPrecautions = false;
+
+ CarrierConfigManager cfgManager = (CarrierConfigManager)
+ phone.getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE);
+ if (cfgManager != null) {
+ clirOverUtPrecautions = cfgManager.getConfigForSubId(phone.getSubId())
+ .getBoolean(CarrierConfigManager.KEY_CALLER_ID_OVER_UT_WARNING_BOOL);
+ cfOverUtPrecautions = cfgManager.getConfigForSubId(phone.getSubId())
+ .getBoolean(CarrierConfigManager.KEY_CALL_FORWARDING_OVER_UT_WARNING_BOOL);
+ cbOverUtPrecautions = cfgManager.getConfigForSubId(phone.getSubId())
+ .getBoolean(CarrierConfigManager.KEY_CALL_BARRING_OVER_UT_WARNING_BOOL);
+ cwOverUtPrecautions = cfgManager.getConfigForSubId(phone.getSubId())
+ .getBoolean(CarrierConfigManager.KEY_CALL_WAITING_OVER_UT_WARNING_BOOL);
+ }
+
+ boolean isSsOverUtPrecautions = SuppServicesUiUtil
+ .isSsOverUtPrecautions(context, phone);
+ if (isSsOverUtPrecautions) {
+ boolean showDialog = false;
+ if (suppKey == MmiCodeUtil.BUTTON_CLIR_KEY && clirOverUtPrecautions) {
+ showDialog = true;
+ } else if (suppKey == MmiCodeUtil.CALL_FORWARDING_KEY && cfOverUtPrecautions) {
+ showDialog = true;
+ } else if (suppKey == MmiCodeUtil.CALL_BARRING_KEY && cbOverUtPrecautions) {
+ showDialog = true;
+ } else if (suppKey == MmiCodeUtil.BUTTON_CW_KEY && cwOverUtPrecautions) {
+ showDialog = true;
+ }
+
+ if (showDialog) {
+ Log.d(this, "Creating UT Data enable dialog");
+ String message = SuppServicesUiUtil.makeMessage(context, suppKey, phone);
+ AlertDialog.Builder builder = new AlertDialog.Builder(context);
+ DialogInterface.OnClickListener networkSettingsClickListener =
+ new Dialog.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ Intent intent = new Intent(Intent.ACTION_MAIN);
+ ComponentName mobileNetworkSettingsComponent
+ = new ComponentName(
+ context.getString(
+ R.string.mobile_network_settings_package),
+ context.getString(
+ R.string.mobile_network_settings_class));
+ intent.setComponent(mobileNetworkSettingsComponent);
+ context.startActivity(intent);
+ }
+ };
+ Dialog dialog = builder.setMessage(message)
+ .setNeutralButton(context.getResources().getString(
+ R.string.settings_label),
+ networkSettingsClickListener)
+ .setPositiveButton(context.getResources().getString(
+ R.string.supp_service_over_ut_precautions_dialog_dismiss), null)
+ .create();
+ dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
+ dialog.show();
+ ret = true;
+ }
+ }
+ }
+ return ret;
+ }
+
/**
* Adds a {@link Conference} to the telephony ConnectionService and registers a listener for
* changes to the conference. Should be used instead of {@link #addConference(Conference)}.
diff --git a/src/com/android/services/telephony/rcs/RcsFeatureController.java b/src/com/android/services/telephony/rcs/RcsFeatureController.java
index 5094c57..8c6fce0 100644
--- a/src/com/android/services/telephony/rcs/RcsFeatureController.java
+++ b/src/com/android/services/telephony/rcs/RcsFeatureController.java
@@ -30,7 +30,7 @@
import android.util.Log;
import com.android.ims.FeatureConnector;
-import com.android.ims.IFeatureConnector;
+import com.android.ims.FeatureUpdates;
import com.android.ims.RcsFeatureManager;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.imsphone.ImsRegistrationCallbackHelper;
@@ -80,13 +80,13 @@
* Used to inject FeatureConnector instances for testing.
*/
@VisibleForTesting
- public interface FeatureConnectorFactory<T extends IFeatureConnector> {
+ public interface FeatureConnectorFactory<U extends FeatureUpdates> {
/**
- * @return a {@link FeatureConnector} associated for the given {@link IFeatureConnector}
- * and slot id.
+ * @return a {@link FeatureConnector} associated for the given {@link FeatureUpdates}
+ * and slot index.
*/
- FeatureConnector<T> create(Context context, int slotId,
- FeatureConnector.Listener<T> listener, Executor executor, String tag);
+ FeatureConnector<U> create(Context context, int slotIndex,
+ FeatureConnector.Listener<U> listener, Executor executor, String logPrefix);
}
/**
@@ -102,7 +102,8 @@
ImsRegistrationCallbackHelper.ImsRegistrationUpdate cb, Executor executor);
}
- private FeatureConnectorFactory<RcsFeatureManager> mFeatureFactory = FeatureConnector::new;
+ private FeatureConnectorFactory<RcsFeatureManager> mFeatureFactory =
+ RcsFeatureManager::getConnector;
private RegistrationHelperFactory mRegistrationHelperFactory =
ImsRegistrationCallbackHelper::new;
@@ -117,11 +118,6 @@
private FeatureConnector.Listener<RcsFeatureManager> mFeatureConnectorListener =
new FeatureConnector.Listener<RcsFeatureManager>() {
@Override
- public RcsFeatureManager getFeatureManager() {
- return new RcsFeatureManager(mContext, mSlotId);
- }
-
- @Override
public void connectionReady(RcsFeatureManager manager)
throws com.android.ims.ImsException {
if (manager == null) {
@@ -131,17 +127,21 @@
try {
// May throw ImsException if for some reason the connection to the
// ImsService is gone.
+ updateConnectionStatus(manager);
setupConnectionToService(manager);
} catch (ImsException e) {
+ updateConnectionStatus(null /*manager*/);
// Use deprecated Exception for compatibility.
throw new com.android.ims.ImsException(e.getMessage(),
ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN);
}
- updateConnectionStatus(manager);
}
@Override
- public void connectionUnavailable() {
+ public void connectionUnavailable(int reason) {
+ if (reason == FeatureConnector.UNAVAILABLE_REASON_SERVER_UNAVAILABLE) {
+ loge("unexpected - connectionUnavailable due to server unavailable");
+ }
// Call before disabling connection to manager.
removeConnectionToService();
updateConnectionStatus(null /*manager*/);
@@ -280,7 +280,7 @@
}
@VisibleForTesting
- public void setFeatureConnectorFactory(FeatureConnectorFactory factory) {
+ public void setFeatureConnectorFactory(FeatureConnectorFactory<RcsFeatureManager> factory) {
mFeatureFactory = factory;
}
@@ -434,6 +434,10 @@
Log.w(LOG_TAG, getLogPrefix().append(log).toString());
}
+ private void loge(String log) {
+ Log.e(LOG_TAG, getLogPrefix().append(log).toString());
+ }
+
private StringBuilder getLogPrefix() {
StringBuilder sb = new StringBuilder("[");
sb.append(mSlotId);
diff --git a/src/com/android/services/telephony/rcs/SipTransportController.java b/src/com/android/services/telephony/rcs/SipTransportController.java
new file mode 100644
index 0000000..da5374a
--- /dev/null
+++ b/src/com/android/services/telephony/rcs/SipTransportController.java
@@ -0,0 +1,195 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.services.telephony.rcs;
+
+import android.content.Context;
+import android.telephony.ims.ImsException;
+import android.telephony.ims.ImsService;
+import android.util.Log;
+
+import com.android.ims.RcsFeatureManager;
+import com.android.internal.annotations.VisibleForTesting;
+
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.ScheduledExecutorService;
+
+/**
+ * Manages the creation and destruction of SipDelegates in response to an IMS application requesting
+ * a SipDelegateConnection registered to one or more IMS feature tags.
+ * <p>
+ * This allows an IMS application to forward traffic related to those feature tags over the existing
+ * IMS registration managed by the {@link ImsService} associated with this cellular subscription
+ * instead of requiring that the IMS application manage its own IMS registration over-the-top. This
+ * is required for some cellular carriers, which mandate that all IMS SIP traffic must be sent
+ * through a single IMS registration managed by the system IMS service.
+ */
+public class SipTransportController implements RcsFeatureController.Feature {
+ private static final String LOG_TAG = "SipTransportC";
+
+ private final Context mContext;
+ private final int mSlotId;
+ private final ScheduledExecutorService mExecutorService;
+
+ private int mSubId;
+ private RcsFeatureManager mRcsManager;
+
+ /**
+ * Create an instance of SipTransportController.
+ * @param context The Context associated with this controller.
+ * @param slotId The slot index associated with this controller.
+ * @param subId The subscription ID associated with this controller when it was first created.
+ */
+ public SipTransportController(Context context, int slotId, int subId) {
+ mContext = context;
+ mSlotId = slotId;
+ mSubId = subId;
+
+ mExecutorService = Executors.newSingleThreadScheduledExecutor();
+ }
+
+ /**
+ * Constructor to inject dependencies for testing.
+ */
+ @VisibleForTesting
+ public SipTransportController(Context context, int slotId, int subId,
+ ScheduledExecutorService executor) {
+ mContext = context;
+ mSlotId = slotId;
+ mSubId = subId;
+
+ mExecutorService = executor;
+ logi("created");
+ }
+
+ @Override
+ public void onRcsConnected(RcsFeatureManager manager) {
+ mExecutorService.submit(() -> onRcsManagerChanged(manager));
+ }
+
+ @Override
+ public void onRcsDisconnected() {
+ mExecutorService.submit(() -> onRcsManagerChanged(null));
+ }
+
+ @Override
+ public void onAssociatedSubscriptionUpdated(int subId) {
+ mExecutorService.submit(()-> onSubIdChanged(subId));
+ }
+
+ @Override
+ public void onDestroy() {
+ // Can be null in testing.
+ mExecutorService.shutdownNow();
+ }
+
+ /**
+ * @return Whether or not SipTransports are supported on the connected ImsService. This can
+ * change based on the capabilities of the ImsService.
+ * @throws ImsException if the ImsService connected to this controller is currently down.
+ */
+ public boolean isSupported(int subId) throws ImsException {
+ Boolean result = waitForMethodToComplete(() -> isSupportedInternal(subId));
+ if (result == null) {
+ logw("isSupported, unexpected null result, returning false");
+ return false;
+ }
+ return result;
+ }
+
+ /**
+ * Returns whether or not the ImsService implementation associated with the supplied subId
+ * supports the SipTransport APIs.
+ * <p>
+ * This should only be called on the ExecutorService.
+ * @return true if SipTransport is supported on this subscription, false otherwise.
+ * @throws ImsException thrown if there was an error determining the state of the ImsService.
+ */
+ private boolean isSupportedInternal(int subId) throws ImsException {
+ checkStateOfController(subId);
+ return (mRcsManager.getSipTransport() != null);
+ }
+
+ /**
+ * Run a Callable on the ExecutorService Thread and wait for the result.
+ * If an ImsException is thrown, catch it and rethrow it to caller.
+ */
+ private <T> T waitForMethodToComplete(Callable<T> callable) throws ImsException {
+ Future<T> r = mExecutorService.submit(callable);
+ T result;
+ try {
+ result = r.get();
+ } catch (InterruptedException e) {
+ result = null;
+ } catch (ExecutionException e) {
+ Throwable cause = e.getCause();
+ if (cause instanceof ImsException) {
+ // Rethrow the exception
+ throw (ImsException) cause;
+ }
+ logw("Unexpected Exception, returning null: " + cause);
+ result = null;
+ }
+ return result;
+ }
+
+ /**
+ * Throw an ImsException for common scenarios where the state of the controller is not ready
+ * for communication.
+ * <p>
+ * This should only be called while running on the on the ExecutorService.
+ */
+ private void checkStateOfController(int subId) throws ImsException {
+ if (mSubId != subId) {
+ // sub ID has changed while this was in the queue.
+ throw new ImsException("subId is no longer valid for this request.",
+ ImsException.CODE_ERROR_INVALID_SUBSCRIPTION);
+ }
+ if (mRcsManager == null) {
+ throw new ImsException("Connection to ImsService is not available",
+ ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+ }
+ }
+
+ private void onRcsManagerChanged(RcsFeatureManager m) {
+ logi("manager changed, " + mRcsManager + "->" + m);
+ mRcsManager = m;
+ }
+
+ /**
+ * Called when either the sub ID associated with the slot has changed or the carrier
+ * configuration associated with the same subId has changed.
+ */
+ private void onSubIdChanged(int newSubId) {
+ logi("subId changed, " + mSubId + "->" + newSubId);
+ mSubId = newSubId;
+ }
+
+ private void logi(String message) {
+ Log.i(LOG_TAG, getPrefix() + ": " + message);
+ }
+
+ private void logw(String message) {
+ Log.w(LOG_TAG, getPrefix() + ": " + message);
+ }
+
+ private String getPrefix() {
+ return "[" + mSlotId + "," + mSubId + "]";
+ }
+}
diff --git a/src/com/android/services/telephony/rcs/TelephonyRcsService.java b/src/com/android/services/telephony/rcs/TelephonyRcsService.java
index c85e9a9..79170af 100644
--- a/src/com/android/services/telephony/rcs/TelephonyRcsService.java
+++ b/src/com/android/services/telephony/rcs/TelephonyRcsService.java
@@ -62,6 +62,12 @@
*/
UserCapabilityExchangeImpl createUserCapabilityExchange(Context context, int slotId,
int subId);
+
+ /**
+ * @return an instance of {@link SipTransportController} for the slot and subscription
+ * specified.
+ */
+ SipTransportController createSipTransportController(Context context, int slotId, int subId);
}
private FeatureFactory mFeatureFactory = new FeatureFactory() {
@@ -75,6 +81,12 @@
int subId) {
return new UserCapabilityExchangeImpl(context, slotId, subId);
}
+
+ @Override
+ public SipTransportController createSipTransportController(Context context, int slotId,
+ int subId) {
+ return new SipTransportController(context, slotId, subId);
+ }
};
// Notifies this service that there has been a change in available slots.
@@ -234,6 +246,17 @@
c.removeFeature(UserCapabilityExchangeImpl.class);
}
}
+
+ if (doesSubscriptionSupportSingleRegistration(subId)) {
+ if (c.getFeature(SipTransportController.class) == null) {
+ c.addFeature(mFeatureFactory.createSipTransportController(mContext, slotId, subId),
+ SipTransportController.class);
+ }
+ } else {
+ if (c.getFeature(SipTransportController.class) != null) {
+ c.removeFeature(SipTransportController.class);
+ }
+ }
// Only start the connection procedure if we have active features.
if (c.hasActiveFeatures()) c.connect();
}
@@ -250,6 +273,14 @@
return supportsUce;
}
+ private boolean doesSubscriptionSupportSingleRegistration(int subId) {
+ if (!SubscriptionManager.isValidSubscriptionId(subId)) return false;
+ CarrierConfigManager carrierConfigManager =
+ mContext.getSystemService(CarrierConfigManager.class);
+ if (carrierConfigManager == null) return false;
+ return carrierConfigManager.getConfigForSubId(subId).getBoolean(
+ CarrierConfigManager.Ims.KEY_IMS_SINGLE_REGISTRATION_REQUIRED_BOOL);
+ }
private int getSubscriptionFromSlot(int slotId) {
SubscriptionManager manager = mContext.getSystemService(SubscriptionManager.class);
@@ -274,6 +305,7 @@
synchronized (mLock) {
for (int i = 0; i < mNumSlots; i++) {
RcsFeatureController f = mFeatureControllers.get(i);
+ if (f == null) continue;
pw.increaseIndent();
f.dump(fd, printWriter, args);
pw.decreaseIndent();
diff --git a/src/com/android/services/telephony/rcs/UserCapabilityExchangeImpl.java b/src/com/android/services/telephony/rcs/UserCapabilityExchangeImpl.java
index ac8f9bf..138d2d0 100644
--- a/src/com/android/services/telephony/rcs/UserCapabilityExchangeImpl.java
+++ b/src/com/android/services/telephony/rcs/UserCapabilityExchangeImpl.java
@@ -16,16 +16,45 @@
package com.android.services.telephony.rcs;
+import android.content.BroadcastReceiver;
+import android.content.ContentResolver;
import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.database.ContentObserver;
import android.net.Uri;
+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.provider.Settings;
+import android.provider.Telephony;
+import android.telecom.TelecomManager;
+import android.telephony.AccessNetworkConstants;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.ims.ImsException;
+import android.telephony.ims.ImsManager;
+import android.telephony.ims.ImsMmTelManager;
+import android.telephony.ims.ImsReasonInfo;
+import android.telephony.ims.ProvisioningManager;
import android.telephony.ims.RcsContactUceCapability;
import android.telephony.ims.RcsUceAdapter;
+import android.telephony.ims.RegistrationManager;
import android.telephony.ims.aidl.IRcsUceControllerCallback;
+import android.telephony.ims.aidl.IRcsUcePublishStateCallback;
+import android.telephony.ims.feature.MmTelFeature;
+import android.telephony.ims.stub.RcsCapabilityExchange;
+import android.telephony.ims.stub.RcsPresenceExchangeImplBase;
import android.util.Log;
import com.android.ims.RcsFeatureManager;
+import com.android.ims.RcsFeatureManager.RcsFeatureCallbacks;
import com.android.ims.ResultCode;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.phone.R;
import com.android.service.ims.presence.ContactCapabilityResponse;
import com.android.service.ims.presence.PresenceBase;
@@ -34,7 +63,12 @@
import com.android.service.ims.presence.PresenceSubscriber;
import com.android.service.ims.presence.SubscribePublisher;
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
@@ -46,12 +80,32 @@
private static final String LOG_TAG = "RcsUceImpl";
- private int mSlotId;
- private int mSubId;
+ private final int mSlotId;
+ private volatile int mSubId;
+ private volatile boolean mImsContentChangedCallbackRegistered = false;
+ // The result of requesting publish
+ private volatile int mPublishState = PresenceBase.PUBLISH_STATE_NOT_PUBLISHED;
+ // The network type which IMS registers on
+ private volatile int mNetworkRegistrationType = AccessNetworkConstants.TRANSPORT_TYPE_INVALID;
+ // The MMTel capabilities of this subscription Id
+ private MmTelFeature.MmTelCapabilities mMmTelCapabilities;
+ private final Object mCapabilitiesLock = new Object();
+ private final Context mContext;
+ private final UceImplHandler mUceImplHandler;
+ private RcsFeatureManager mRcsFeatureManager;
private final PresencePublication mPresencePublication;
private final PresenceSubscriber mPresenceSubscriber;
+ // The task Ids of updating capabilities
+ private final Set<Integer> mRequestingPublishTaskIds = new HashSet<>();
+
+ // The callbacks to notify publish state changed.
+ private final RemoteCallbackList<IRcsUcePublishStateCallback> mPublishStateCallbacks;
+
+ // The task Ids of pending availability request.
+ private final Set<Integer> mPendingAvailabilityRequests = new HashSet<>();
+
private final ConcurrentHashMap<Integer, IRcsUceControllerCallback> mPendingCapabilityRequests =
new ConcurrentHashMap<>();
@@ -60,6 +114,13 @@
mSubId = subId;
logi("created");
+ mContext = context;
+ mPublishStateCallbacks = new RemoteCallbackList<>();
+
+ HandlerThread handlerThread = new HandlerThread("UceImplHandlerThread");
+ handlerThread.start();
+ mUceImplHandler = new UceImplHandler(this, handlerThread.getLooper());
+
String[] volteError = context.getResources().getStringArray(
R.array.config_volte_provision_error_on_publish_response);
String[] rcsError = context.getResources().getStringArray(
@@ -73,13 +134,31 @@
volteError, rcsError);
onAssociatedSubscriptionUpdated(mSubId);
+ registerReceivers();
}
+ @VisibleForTesting
+ UserCapabilityExchangeImpl(Context context, int slotId, int subId, Looper looper,
+ PresencePublication presencePublication, PresenceSubscriber presenceSubscriber,
+ RemoteCallbackList<IRcsUcePublishStateCallback> publishStateCallbacks) {
+ mSlotId = slotId;
+ mSubId = subId;
+ mContext = context;
+ mPublishStateCallbacks = publishStateCallbacks;
+ mUceImplHandler = new UceImplHandler(this, looper);
+ mPresencePublication = presencePublication;
+ mPresenceSubscriber = presenceSubscriber;
+ onAssociatedSubscriptionUpdated(mSubId);
+ registerReceivers();
+ }
// Runs on main thread.
@Override
public void onRcsConnected(RcsFeatureManager rcsFeatureManager) {
logi("onRcsConnected");
+ mRcsFeatureManager = rcsFeatureManager;
+ mRcsFeatureManager.addFeatureListenerCallback(mRcsFeatureCallback);
+
mPresencePublication.updatePresencePublisher(this);
mPresenceSubscriber.updatePresenceSubscriber(this);
}
@@ -90,11 +169,22 @@
logi("onRcsDisconnected");
mPresencePublication.removePresencePublisher();
mPresenceSubscriber.removePresenceSubscriber();
+
+ if (mRcsFeatureManager != null) {
+ mRcsFeatureManager.releaseConnection();
+ mRcsFeatureManager = null;
+ }
}
// Runs on main thread.
@Override
public void onAssociatedSubscriptionUpdated(int subId) {
+ logi("onAssociatedSubscriptionUpdated: new subId=" + subId);
+
+ // Listen to the IMS content changed with new subId.
+ mUceImplHandler.registerImsContentChangedReceiver(subId);
+
+ mSubId = subId;
mPresencePublication.handleAssociatedSubscriptionChanged(subId);
mPresenceSubscriber.handleAssociatedSubscriptionChanged(subId);
}
@@ -105,6 +195,10 @@
*/
// Called on main thread.
public void onDestroy() {
+ logi("onDestroy");
+ mUceImplHandler.getLooper().quit();
+ unregisterReceivers();
+ unregisterImsProvisionCallback(mSubId);
onRcsDisconnected();
}
@@ -117,6 +211,54 @@
return toUcePublishState(publishState);
}
+ @VisibleForTesting
+ public UceImplHandler getHandler() {
+ return mUceImplHandler;
+ }
+
+ /**
+ * Register receiver to receive UCE publish state changed.
+ */
+ public void registerPublishStateCallback(IRcsUcePublishStateCallback c) {
+ synchronized (mPublishStateCallbacks) {
+ mPublishStateCallbacks.register(c);
+ }
+ }
+
+ /**
+ * Unregister UCE publish state callback.
+ */
+ public void unregisterUcePublishStateCallback(IRcsUcePublishStateCallback c) {
+ synchronized (mPublishStateCallbacks) {
+ mPublishStateCallbacks.unregister(c);
+ }
+ }
+
+ private void clearPublishStateCallbacks() {
+ synchronized (mPublishStateCallbacks) {
+ logi("clearPublishStateCallbacks");
+ final int lastIndex = mPublishStateCallbacks.getRegisteredCallbackCount() - 1;
+ for (int index = lastIndex; index >= 0; index--) {
+ IRcsUcePublishStateCallback callback =
+ mPublishStateCallbacks.getRegisteredCallbackItem(index);
+ mPublishStateCallbacks.unregister(callback);
+ }
+ }
+ }
+
+ private void notifyPublishStateChanged(@PresenceBase.PresencePublishState int state) {
+ int result = toUcePublishState(state);
+ synchronized (mPublishStateCallbacks) {
+ mPublishStateCallbacks.broadcast(c -> {
+ try {
+ c.onPublishStateChanged(result);
+ } catch (RemoteException e) {
+ logw("notifyPublishStateChanged error: " + e);
+ }
+ });
+ }
+ }
+
/**
* Perform a capabilities request and call {@link IRcsUceControllerCallback} with the result.
*/
@@ -183,43 +325,393 @@
if (taskId < 0) {
try {
c.onError(toUceError(taskId));
- return;
} catch (RemoteException e) {
logi("Calling back to dead service");
}
+ return;
}
mPendingCapabilityRequests.put(taskId, c);
}
@Override
- public int getPublisherState() {
- return 0;
+ public int requestCapability(String[] formattedContacts, int taskId) {
+ if (formattedContacts == null || formattedContacts.length == 0) {
+ logw("requestCapability error: contacts is null.");
+ return ResultCode.SUBSCRIBE_INVALID_PARAM;
+ }
+ if (mRcsFeatureManager == null) {
+ logw("requestCapability error: RcsFeatureManager is null.");
+ return ResultCode.ERROR_SERVICE_NOT_AVAILABLE;
+ }
+
+ logi("requestCapability: taskId=" + taskId);
+
+ try {
+ List<Uri> contactList = Arrays.stream(formattedContacts)
+ .map(Uri::parse).collect(Collectors.toList());
+ mRcsFeatureManager.requestCapabilities(contactList, taskId);
+ } catch (Exception e) {
+ logw("requestCapability error: " + e.getMessage());
+ return ResultCode.ERROR_SERVICE_NOT_AVAILABLE;
+ }
+ return ResultCode.SUCCESS;
+ }
+
+ @Override
+ public int requestAvailability(String formattedContact, int taskId) {
+ if (formattedContact == null || formattedContact.isEmpty()) {
+ logw("requestAvailability error: contact is null.");
+ return ResultCode.SUBSCRIBE_INVALID_PARAM;
+ }
+ if (mRcsFeatureManager == null) {
+ logw("requestAvailability error: RcsFeatureManager is null.");
+ return ResultCode.ERROR_SERVICE_NOT_AVAILABLE;
+ }
+
+ logi("requestAvailability: taskId=" + taskId);
+ addRequestingAvailabilityTaskId(taskId);
+
+ try {
+ Uri contactUri = Uri.parse(formattedContact);
+ List<Uri> contactUris = new ArrayList<>(Arrays.asList(contactUri));
+ mRcsFeatureManager.requestCapabilities(contactUris, taskId);
+ } catch (Exception e) {
+ logw("requestAvailability error: " + e.getMessage());
+ removeRequestingAvailabilityTaskId(taskId);
+ return ResultCode.ERROR_SERVICE_NOT_AVAILABLE;
+ }
+ return ResultCode.SUCCESS;
+ }
+
+ @Override
+ public int getStackStatusForCapabilityRequest() {
+ if (mRcsFeatureManager == null) {
+ logw("Check Stack status: Error! RcsFeatureManager is null.");
+ return ResultCode.ERROR_SERVICE_NOT_AVAILABLE;
+ }
+
+ if (!isCapabilityDiscoveryEnabled(mSubId)) {
+ logw("Check Stack status: Error! capability discovery not enabled");
+ return ResultCode.ERROR_SERVICE_NOT_ENABLED;
+ }
+
+ if (!isEabProvisioned(mContext, mSubId)) {
+ logw("Check Stack status: Error! EAB provisioning disabled.");
+ return ResultCode.ERROR_SERVICE_NOT_ENABLED;
+ }
+
+ if (getPublisherState() != PresenceBase.PUBLISH_STATE_200_OK) {
+ logw("Check Stack status: Error! publish state " + getPublisherState());
+ return ResultCode.ERROR_SERVICE_NOT_PUBLISHED;
+ }
+ return ResultCode.SUCCESS;
+ }
+
+ /**
+ * The feature callback is to receive the request and update from RcsPresExchangeImplBase
+ */
+ @VisibleForTesting
+ public RcsFeatureCallbacks mRcsFeatureCallback = new RcsFeatureCallbacks() {
+ public void onCommandUpdate(int commandCode, int operationToken) {
+ logi("onCommandUpdate: code=" + commandCode + ", token=" + operationToken);
+ if (isPublishRequestExisted(operationToken)) {
+ onCommandUpdateForPublishRequest(commandCode, operationToken);
+ } else if (isCapabilityRequestExisted(operationToken)) {
+ onCommandUpdateForCapabilityRequest(commandCode, operationToken);
+ } else if (isAvailabilityRequestExisted(operationToken)) {
+ onCommandUpdateForAvailabilityRequest(commandCode, operationToken);
+ } else {
+ logw("onCommandUpdate: invalid token " + operationToken);
+ }
+ }
+
+ /** See {@link RcsPresenceExchangeImplBase#onNetworkResponse(int, String, int)} */
+ public void onNetworkResponse(int responseCode, String reason, int operationToken) {
+ logi("onNetworkResponse: code=" + responseCode + ", reason=" + reason
+ + ", operationToken=" + operationToken);
+ if (isPublishRequestExisted(operationToken)) {
+ onNetworkResponseForPublishRequest(responseCode, reason, operationToken);
+ } else if (isCapabilityRequestExisted(operationToken)) {
+ onNetworkResponseForCapabilityRequest(responseCode, reason, operationToken);
+ } else if (isAvailabilityRequestExisted(operationToken)) {
+ onNetworkResponseForAvailabilityRequest(responseCode, reason, operationToken);
+ } else {
+ logw("onNetworkResponse: invalid token " + operationToken);
+ }
+ }
+
+ /** See {@link RcsPresenceExchangeImplBase#onCapabilityRequestResponse(List, int)} */
+ public void onCapabilityRequestResponsePresence(List<RcsContactUceCapability> infos,
+ int operationToken) {
+ if (isAvailabilityRequestExisted(operationToken)) {
+ handleAvailabilityReqResponse(infos, operationToken);
+ } else if (isCapabilityRequestExisted(operationToken)) {
+ handleCapabilityReqResponse(infos, operationToken);
+ } else {
+ logw("capability request response: invalid token " + operationToken);
+ }
+ }
+
+ /** See {@link RcsPresenceExchangeImplBase#onNotifyUpdateCapabilites(int)} */
+ public void onNotifyUpdateCapabilities(int publishTriggerType) {
+ logi("onNotifyUpdateCapabilities: type=" + publishTriggerType);
+ mUceImplHandler.notifyUpdateCapabilities(publishTriggerType);
+ }
+
+ /** See {@link RcsPresenceExchangeImplBase#onUnpublish()} */
+ public void onUnpublish() {
+ logi("onUnpublish");
+ mUceImplHandler.unpublish();
+ }
+ };
+
+ private static class UceImplHandler extends Handler {
+ private static final int EVENT_REGISTER_IMS_CHANGED_RECEIVER = 1;
+ private static final int EVENT_NOTIFY_UPDATE_CAPABILITIES = 2;
+ private static final int EVENT_UNPUBLISH = 3;
+
+ private static final int REGISTER_IMS_CHANGED_DELAY = 10000; //10 seconds
+
+ private final WeakReference<UserCapabilityExchangeImpl> mUceImplRef;
+
+ UceImplHandler(UserCapabilityExchangeImpl uceImpl, Looper looper) {
+ super(looper);
+ mUceImplRef = new WeakReference(uceImpl);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ UserCapabilityExchangeImpl uceImpl = mUceImplRef.get();
+ if (uceImpl == null) {
+ return;
+ }
+ switch (msg.what) {
+ case EVENT_REGISTER_IMS_CHANGED_RECEIVER:
+ int subId = msg.arg1;
+ uceImpl.registerImsContentChangedReceiverInternal(subId);
+ break;
+ case EVENT_NOTIFY_UPDATE_CAPABILITIES:
+ int publishTriggerType = msg.arg1;
+ uceImpl.onNotifyUpdateCapabilities(publishTriggerType);
+ break;
+ case EVENT_UNPUBLISH:
+ uceImpl.onUnPublish();
+ break;
+ default:
+ Log.w(LOG_TAG, "handleMessage: error=" + msg.what);
+ break;
+ }
+ }
+
+ private void retryRegisteringImsContentChangedReceiver(int subId) {
+ sendRegisteringImsContentChangedMessage(subId, REGISTER_IMS_CHANGED_DELAY);
+ }
+
+ private void registerImsContentChangedReceiver(int subId) {
+ sendRegisteringImsContentChangedMessage(subId, 0);
+ }
+
+ private void sendRegisteringImsContentChangedMessage(int subId, int delay) {
+ if (subId <= SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ return;
+ }
+ removeRegisteringImsContentChangedReceiver();
+ Message message = obtainMessage(EVENT_REGISTER_IMS_CHANGED_RECEIVER);
+ message.arg1 = subId;
+ sendMessageDelayed(message, delay);
+ }
+
+ private void removeRegisteringImsContentChangedReceiver() {
+ removeMessages(EVENT_REGISTER_IMS_CHANGED_RECEIVER);
+ }
+
+ private void notifyUpdateCapabilities(int publishTriggerType) {
+ Message message = obtainMessage(EVENT_NOTIFY_UPDATE_CAPABILITIES);
+ message.arg1 = publishTriggerType;
+ sendMessage(message);
+ }
+
+ private void unpublish() {
+ sendEmptyMessage(EVENT_UNPUBLISH);
+ }
+ }
+
+ private void onNotifyUpdateCapabilities(int publishTriggerType) {
+ mPresencePublication.onStackPublishRequested(publishTriggerType);
+ }
+
+ private void onUnPublish() {
+ mPresencePublication.setPublishState(PresenceBase.PUBLISH_STATE_NOT_PUBLISHED);
+ }
+
+ @Override
+ public @PresenceBase.PresencePublishState int getPublisherState() {
+ return mPublishState;
}
@Override
public int requestPublication(RcsContactUceCapability capabilities, String contactUri,
int taskId) {
- return 0;
+ if (mRcsFeatureManager == null) {
+ logw("requestPublication error: RcsFeatureManager is null.");
+ return ResultCode.ERROR_SERVICE_NOT_AVAILABLE;
+ }
+
+ logi("requestPublication: taskId=" + taskId);
+ addPublishRequestTaskId(taskId);
+
+ try {
+ mRcsFeatureManager.requestPublication(capabilities, taskId);
+ } catch (Exception ex) {
+ logw("requestPublication error: " + ex.getMessage());
+ removePublishRequestTaskId(taskId);
+ return ResultCode.PUBLISH_GENERIC_FAILURE;
+ }
+ return ResultCode.SUCCESS;
+ }
+
+ /*
+ * Handle the callback method RcsFeatureCallbacks#onCommandUpdate(int, int)
+ */
+ private void onCommandUpdateForPublishRequest(int commandCode, int operationToken) {
+ if (!isPublishRequestExisted(operationToken)) {
+ return;
+ }
+ int resultCode = ResultCode.SUCCESS;
+ if (commandCode != RcsCapabilityExchange.COMMAND_CODE_SUCCESS) {
+ logw("onCommandUpdateForPublishRequest failed! taskId=" + operationToken
+ + ", code=" + commandCode);
+ removePublishRequestTaskId(operationToken);
+ resultCode = ResultCode.PUBLISH_GENERIC_FAILURE;
+ }
+ mPresencePublication.onCommandStatusUpdated(operationToken, operationToken, resultCode);
+ }
+
+ private void onCommandUpdateForCapabilityRequest(int commandCode, int operationToken) {
+ if (!isCapabilityRequestExisted(operationToken)) {
+ return;
+ }
+ int resultCode = ResultCode.SUCCESS;
+ if (commandCode != RcsCapabilityExchange.COMMAND_CODE_SUCCESS) {
+ logw("onCommandUpdateForCapabilityRequest failed! taskId=" + operationToken
+ + ", code=" + commandCode);
+ mPendingCapabilityRequests.remove(operationToken);
+ resultCode = ResultCode.PUBLISH_GENERIC_FAILURE;
+ }
+ mPresenceSubscriber.onCommandStatusUpdated(operationToken, operationToken, resultCode);
+ }
+
+ private void onCommandUpdateForAvailabilityRequest(int commandCode, int operationToken) {
+ if (!isAvailabilityRequestExisted(operationToken)) {
+ return;
+ }
+ int resultCode = ResultCode.SUCCESS;
+ if (commandCode != RcsCapabilityExchange.COMMAND_CODE_SUCCESS) {
+ logw("onCommandUpdateForAvailabilityRequest failed! taskId=" + operationToken
+ + ", code=" + commandCode);
+ removeRequestingAvailabilityTaskId(operationToken);
+ resultCode = ResultCode.PUBLISH_GENERIC_FAILURE;
+ }
+ mPresenceSubscriber.onCommandStatusUpdated(operationToken, operationToken, resultCode);
+ }
+
+ /*
+ * Handle the callback method RcsFeatureCallbacks#onNetworkResponse(int, String, int)
+ */
+ private void onNetworkResponseForPublishRequest(int responseCode, String reason,
+ int operationToken) {
+ if (!isPublishRequestExisted(operationToken)) {
+ return;
+ }
+ removePublishRequestTaskId(operationToken);
+ mPresencePublication.onSipResponse(operationToken, responseCode, reason);
+ }
+
+ private void onNetworkResponseForCapabilityRequest(int responseCode, String reason,
+ int operationToken) {
+ if (!isCapabilityRequestExisted(operationToken)) {
+ return;
+ }
+ mPresenceSubscriber.onSipResponse(operationToken, responseCode, reason);
+ }
+
+ private void onNetworkResponseForAvailabilityRequest(int responseCode, String reason,
+ int operationToken) {
+ if (!isAvailabilityRequestExisted(operationToken)) {
+ return;
+ }
+ removeRequestingAvailabilityTaskId(operationToken);
+ mPresenceSubscriber.onSipResponse(operationToken, responseCode, reason);
+ }
+
+ private void handleAvailabilityReqResponse(List<RcsContactUceCapability> infos, int token) {
+ try {
+ if (infos == null || infos.isEmpty()) {
+ logw("handle availability request response: infos is null " + token);
+ return;
+ }
+ logi("handleAvailabilityReqResponse: token=" + token);
+ mPresenceSubscriber.updatePresence(infos.get(0));
+ } finally {
+ removeRequestingAvailabilityTaskId(token);
+ }
+ }
+
+ private void handleCapabilityReqResponse(List<RcsContactUceCapability> infos, int token) {
+ if (infos == null) {
+ logw("handleCapabilityReqResponse: infos is null " + token);
+ mPendingCapabilityRequests.remove(token);
+ return;
+ }
+ logi("handleCapabilityReqResponse: token=" + token);
+ mPresenceSubscriber.updatePresences(token, infos, true, null);
}
@Override
- public int requestCapability(String[] formatedContacts, int taskId) {
- return 0;
+ public void updatePublisherState(@PresenceBase.PresencePublishState int publishState) {
+ logi("updatePublisherState: from " + mPublishState + " to " + publishState);
+ mPublishState = publishState;
+ notifyPublishStateChanged(publishState);
}
- @Override
- public int requestAvailability(String formattedContact, int taskId) {
- return 0;
+ private void addPublishRequestTaskId(int taskId) {
+ synchronized (mRequestingPublishTaskIds) {
+ mRequestingPublishTaskIds.add(taskId);
+ }
}
- @Override
- public int getStackStatusForCapabilityRequest() {
- return 0;
+ private void removePublishRequestTaskId(int taskId) {
+ synchronized (mRequestingPublishTaskIds) {
+ mRequestingPublishTaskIds.remove(taskId);
+ }
}
- @Override
- public void updatePublisherState(int publishState) {
+ private boolean isPublishRequestExisted(Integer taskId) {
+ synchronized (mRequestingPublishTaskIds) {
+ return mRequestingPublishTaskIds.contains(taskId);
+ }
+ }
+ private void addRequestingAvailabilityTaskId(int taskId) {
+ synchronized (mPendingAvailabilityRequests) {
+ mPendingAvailabilityRequests.contains(taskId);
+ }
+ }
+
+ private void removeRequestingAvailabilityTaskId(int taskId) {
+ synchronized (mPendingAvailabilityRequests) {
+ mPendingAvailabilityRequests.remove(taskId);
+ }
+ }
+
+ private boolean isAvailabilityRequestExisted(Integer taskId) {
+ synchronized (mPendingAvailabilityRequests) {
+ return mPendingAvailabilityRequests.contains(taskId);
+ }
+ }
+
+ private boolean isCapabilityRequestExisted(Integer taskId) {
+ return mPendingCapabilityRequests.containsKey(taskId);
}
private static String getNumberFromUri(Uri uri) {
@@ -267,13 +759,291 @@
return RcsUceAdapter.ERROR_INSUFFICIENT_MEMORY;
case ResultCode.SUBSCRIBE_LOST_NETWORK:
return RcsUceAdapter.ERROR_LOST_NETWORK;
- case ResultCode.SUBSCRIBE_ALREADY_IN_QUEUE:
- return RcsUceAdapter.ERROR_ALREADY_IN_QUEUE;
default:
return RcsUceAdapter.ERROR_GENERIC_FAILURE;
}
}
+ /*
+ * Register receivers for updating capabilities
+ */
+ private void registerReceivers() {
+ IntentFilter filter = new IntentFilter(TelecomManager.ACTION_TTY_PREFERRED_MODE_CHANGED);
+ filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
+ mContext.registerReceiver(mReceiver, filter);
+
+ ContentResolver resolver = mContext.getContentResolver();
+ if (resolver != null) {
+ // Register mobile data content changed.
+ resolver.registerContentObserver(
+ Settings.Global.getUriFor(Settings.Global.MOBILE_DATA), false,
+ mMobileDataObserver);
+
+ // Register SIM info content changed.
+ resolver.registerContentObserver(Telephony.SimInfo.CONTENT_URI, false,
+ mSimInfoContentObserver);
+ }
+ }
+
+ private void unregisterReceivers() {
+ mContext.unregisterReceiver(mReceiver);
+ ContentResolver resolver = mContext.getContentResolver();
+ if (resolver != null) {
+ resolver.unregisterContentObserver(mMobileDataObserver);
+ resolver.unregisterContentObserver(mSimInfoContentObserver);
+ }
+ }
+
+ /**
+ * Register IMS and provision content changed.
+ *
+ * Call the UceImplHandler#registerImsContentChangedReceiver instead of
+ * calling this method directly.
+ */
+ private void registerImsContentChangedReceiverInternal(int subId) {
+ mUceImplHandler.removeRegisteringImsContentChangedReceiver();
+ try {
+ final int originalSubId = mSubId;
+ if ((originalSubId == subId) && (mImsContentChangedCallbackRegistered)) {
+ logi("registerImsContentChangedReceiverInternal: already registered. skip");
+ return;
+ }
+ // Unregister original IMS and Provision callback
+ unregisterImsProvisionCallback(originalSubId);
+ // Register new IMS and Provision callback
+ registerImsProvisionCallback(subId);
+ } catch (ImsException e) {
+ logw("registerImsContentChangedReceiverInternal error: " + e);
+ mUceImplHandler.retryRegisteringImsContentChangedReceiver(subId);
+ }
+ }
+
+ private void unregisterImsProvisionCallback(int subId) {
+ if (subId <= SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ return;
+ }
+ // Unregister IMS callback
+ ImsMmTelManager imsMmtelManager = getImsMmTelManager(subId);
+ if (imsMmtelManager != null) {
+ try {
+ imsMmtelManager.unregisterImsRegistrationCallback(mImsRegistrationCallback);
+ imsMmtelManager.unregisterMmTelCapabilityCallback(mCapabilityCallback);
+ } catch (RuntimeException e) {
+ logw("unregister IMS callback error: " + e.getMessage());
+ }
+ }
+
+ // Unregister provision changed callback
+ ProvisioningManager provisioningManager =
+ ProvisioningManager.createForSubscriptionId(subId);
+ try {
+ provisioningManager.unregisterProvisioningChangedCallback(mProvisioningChangedCallback);
+ } catch (RuntimeException e) {
+ logw("unregister provisioning callback error: " + e.getMessage());
+ }
+
+ // Remove all publish state callbacks
+ clearPublishStateCallbacks();
+
+ mImsContentChangedCallbackRegistered = false;
+ }
+
+ private void registerImsProvisionCallback(int subId) throws ImsException {
+ if (subId <= SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ return;
+ }
+ // Register IMS callback
+ ImsMmTelManager imsMmtelManager = getImsMmTelManager(subId);
+ if (imsMmtelManager != null) {
+ imsMmtelManager.registerImsRegistrationCallback(mContext.getMainExecutor(),
+ mImsRegistrationCallback);
+ imsMmtelManager.registerMmTelCapabilityCallback(mContext.getMainExecutor(),
+ mCapabilityCallback);
+ }
+ // Register provision changed callback
+ ProvisioningManager provisioningManager =
+ ProvisioningManager.createForSubscriptionId(subId);
+ provisioningManager.registerProvisioningChangedCallback(mContext.getMainExecutor(),
+ mProvisioningChangedCallback);
+
+ mImsContentChangedCallbackRegistered = true;
+ logi("registerImsProvisionCallback");
+ }
+
+ private BroadcastReceiver mReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (intent == null) return;
+ switch (intent.getAction()) {
+ case TelecomManager.ACTION_TTY_PREFERRED_MODE_CHANGED:
+ int preferredMode = intent.getIntExtra(
+ TelecomManager.EXTRA_TTY_PREFERRED_MODE, TelecomManager.TTY_MODE_OFF);
+ logi("TTY preferred mode changed: " + preferredMode);
+ mPresencePublication.onTtyPreferredModeChanged(preferredMode);
+ break;
+
+ case Intent.ACTION_AIRPLANE_MODE_CHANGED:
+ boolean airplaneMode = intent.getBooleanExtra("state", false);
+ logi("Airplane mode changed: " + airplaneMode);
+ mPresencePublication.onAirplaneModeChanged(airplaneMode);
+ break;
+ }
+ }
+ };
+
+ private ContentObserver mMobileDataObserver = new ContentObserver(
+ new Handler(Looper.getMainLooper())) {
+ @Override
+ public void onChange(boolean selfChange) {
+ boolean isEnabled = Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.MOBILE_DATA, 1) == 1;
+ logi("Mobile data changed: enabled=" + isEnabled);
+ mPresencePublication.onMobileDataChanged(isEnabled);
+ }
+ };
+
+ private ContentObserver mSimInfoContentObserver = new ContentObserver(
+ new Handler(Looper.getMainLooper())) {
+ @Override
+ public void onChange(boolean selfChange) {
+ if (mSubId <= SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ return;
+ }
+
+ ImsMmTelManager ims = getImsMmTelManager(mSubId);
+ if (ims == null) return;
+
+ try {
+ boolean isEnabled = ims.isVtSettingEnabled();
+ logi("SimInfo changed: VT setting=" + isEnabled);
+ mPresencePublication.onVtEnabled(isEnabled);
+ } catch (RuntimeException e) {
+ logw("SimInfo changed error: " + e);
+ }
+ }
+ };
+
+ private RegistrationManager.RegistrationCallback mImsRegistrationCallback =
+ new RegistrationManager.RegistrationCallback() {
+ @Override
+ public void onRegistered(int imsTransportType) {
+ logi("onRegistered: type=" + imsTransportType);
+ mNetworkRegistrationType = imsTransportType;
+ mPresencePublication.onImsConnected();
+
+ // Also trigger PresencePublication#onFeatureCapabilityChanged method
+ MmTelFeature.MmTelCapabilities capabilities = null;
+ synchronized (mCapabilitiesLock) {
+ capabilities = mMmTelCapabilities;
+ }
+
+ if (capabilities != null) {
+ mPresencePublication.onFeatureCapabilityChanged(mNetworkRegistrationType,
+ capabilities);
+ }
+ }
+
+ @Override
+ public void onUnregistered(ImsReasonInfo info) {
+ logi("onUnregistered");
+ mNetworkRegistrationType = AccessNetworkConstants.TRANSPORT_TYPE_INVALID;
+
+ // Also trigger PresencePublication#onFeatureCapabilityChanged method
+ MmTelFeature.MmTelCapabilities capabilities = null;
+ synchronized (mCapabilitiesLock) {
+ capabilities = mMmTelCapabilities;
+ }
+
+ if (capabilities != null) {
+ mPresencePublication.onFeatureCapabilityChanged(mNetworkRegistrationType,
+ capabilities);
+ }
+ mPresencePublication.onImsDisconnected();
+ }
+ };
+
+ private ImsMmTelManager.CapabilityCallback mCapabilityCallback =
+ new ImsMmTelManager.CapabilityCallback() {
+ @Override
+ public void onCapabilitiesStatusChanged(MmTelFeature.MmTelCapabilities capabilities) {
+ if (capabilities == null) {
+ logw("onCapabilitiesStatusChanged: parameter is null");
+ return;
+ }
+ synchronized (mCapabilitiesLock) {
+ mMmTelCapabilities = capabilities;
+ }
+ mPresencePublication.onFeatureCapabilityChanged(mNetworkRegistrationType, capabilities);
+ }
+ };
+
+ private ProvisioningManager.Callback mProvisioningChangedCallback =
+ new ProvisioningManager.Callback() {
+ @Override
+ public void onProvisioningIntChanged(int item, int value) {
+ logi("onProvisioningIntChanged: item=" + item);
+ switch (item) {
+ case ProvisioningManager.KEY_EAB_PROVISIONING_STATUS:
+ case ProvisioningManager.KEY_VOLTE_PROVISIONING_STATUS:
+ case ProvisioningManager.KEY_VT_PROVISIONING_STATUS:
+ mPresencePublication.handleProvisioningChanged();
+ break;
+ default:
+ break;
+ }
+ }
+ };
+
+ private boolean isCapabilityDiscoveryEnabled(int subId) {
+ try {
+ ProvisioningManager manager = ProvisioningManager.createForSubscriptionId(subId);
+ int discoveryEnabled = manager.getProvisioningIntValue(
+ ProvisioningManager.KEY_RCS_CAPABILITY_DISCOVERY_ENABLED);
+ return (discoveryEnabled == ProvisioningManager.PROVISIONING_VALUE_ENABLED);
+ } catch (Exception e) {
+ logw("isCapabilityDiscoveryEnabled error: " + e.getMessage());
+ }
+ return false;
+ }
+
+ private boolean isEabProvisioned(Context context, int subId) {
+ if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ logw("isEabProvisioned error: invalid subscriptionId " + subId);
+ return false;
+ }
+
+ CarrierConfigManager configManager = (CarrierConfigManager)
+ context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
+ if (configManager != null) {
+ PersistableBundle config = configManager.getConfigForSubId(subId);
+ if (config != null && !config.getBoolean(
+ CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONED_BOOL)) {
+ return true;
+ }
+ }
+
+ try {
+ ProvisioningManager manager = ProvisioningManager.createForSubscriptionId(subId);
+ int provisioningStatus = manager.getProvisioningIntValue(
+ ProvisioningManager.KEY_EAB_PROVISIONING_STATUS);
+ return (provisioningStatus == ProvisioningManager.PROVISIONING_VALUE_ENABLED);
+ } catch (Exception e) {
+ logw("isEabProvisioned error: " + e.getMessage());
+ }
+ return false;
+ }
+
+ private ImsMmTelManager getImsMmTelManager(int subId) {
+ try {
+ ImsManager imsManager = (ImsManager) mContext.getSystemService(
+ Context.TELEPHONY_IMS_SERVICE);
+ return (imsManager == null) ? null : imsManager.getImsMmTelManager(subId);
+ } catch (IllegalArgumentException e) {
+ logw("getImsMmTelManager error: " + e.getMessage());
+ return null;
+ }
+ }
+
private void logi(String log) {
Log.i(LOG_TAG, getLogPrefix().append(log).toString());
}
diff --git a/testapps/EmbmsServiceTestApp/AndroidManifest.xml b/testapps/EmbmsServiceTestApp/AndroidManifest.xml
index 91d8508..943fc78 100644
--- a/testapps/EmbmsServiceTestApp/AndroidManifest.xml
+++ b/testapps/EmbmsServiceTestApp/AndroidManifest.xml
@@ -15,30 +15,31 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
- package="com.android.phone.testapps.embmsmw"
- coreApp="true">
+ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+ package="com.android.phone.testapps.embmsmw"
+ coreApp="true">
<uses-permission android:name="android.permission.SEND_EMBMS_INTENTS"/>
<application android:label="EmbmsTestMiddleware">
<service android:name="com.android.phone.testapps.embmsmw.EmbmsTestStreamingService"
- android:launchMode="singleInstance"
- androidprv:systemUserOnly="true">
+ android:launchMode="singleInstance"
+ androidprv:systemUserOnly="true"
+ android:exported="true">
<intent-filter>
- <action android:name="android.telephony.action.EmbmsStreaming" />
+ <action android:name="android.telephony.action.EmbmsStreaming"/>
</intent-filter>
</service>
<service android:name="com.android.phone.testapps.embmsmw.EmbmsSampleDownloadService"
- android:launchMode="singleInstance"
- androidprv:systemUserOnly="true">
+ android:launchMode="singleInstance"
+ androidprv:systemUserOnly="true"
+ android:exported="true">
<intent-filter>
- <action android:name="android.telephony.action.EmbmsDownload" />
+ <action android:name="android.telephony.action.EmbmsDownload"/>
</intent-filter>
</service>
<receiver android:name="com.android.phone.testapps.embmsmw.SideChannelReceiver"
- android:enabled="true"
- android:exported="true"/>
+ android:enabled="true"
+ android:exported="true"/>
</application>
</manifest>
-
diff --git a/testapps/EmbmsTestDownloadApp/AndroidManifest.xml b/testapps/EmbmsTestDownloadApp/AndroidManifest.xml
index e93cd19..640fcd1 100644
--- a/testapps/EmbmsTestDownloadApp/AndroidManifest.xml
+++ b/testapps/EmbmsTestDownloadApp/AndroidManifest.xml
@@ -15,57 +15,54 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.phone.testapps.embmsdownload">
+ package="com.android.phone.testapps.embmsdownload">
<application android:label="EmbmsTestDownloadApp">
- <activity
- android:name=".EmbmsTestDownloadApp"
- android:label="EmbmsDownloadFrontend">
+ <activity android:name=".EmbmsTestDownloadApp"
+ android:label="EmbmsDownloadFrontend"
+ android:exported="true">
<intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!-- This is the receiver defined by the MBMS api. -->
- <receiver
- android:name="android.telephony.mbms.MbmsDownloadReceiver"
- android:permission="android.permission.SEND_EMBMS_INTENTS"
- android:enabled="true"
- android:exported="true">
+ <receiver android:name="android.telephony.mbms.MbmsDownloadReceiver"
+ android:permission="android.permission.SEND_EMBMS_INTENTS"
+ android:enabled="true"
+ android:exported="true">
</receiver>
<!-- This is the receiver defined by app to receive the download-done intent that was
passed into DownloadRequest. -->
- <receiver
- android:name="com.android.phone.testapps.embmsdownload.DownloadCompletionReceiver"
- android:enabled="true">
+ <receiver android:name="com.android.phone.testapps.embmsdownload.DownloadCompletionReceiver"
+ android:enabled="true">
</receiver>
<!-- This is the provider that apps must declare in their manifest. It allows the
middleware to obtain file descriptors to temp files in the app's file space -->
<!-- grantUriPermissions must be set to true -->
- <provider
- android:name="android.telephony.mbms.MbmsTempFileProvider"
- android:authorities="com.android.phone.testapps.embmsdownload"
- android:exported="false"
- android:grantUriPermissions="true">
+ <provider android:name="android.telephony.mbms.MbmsTempFileProvider"
+ android:authorities="com.android.phone.testapps.embmsdownload"
+ android:exported="false"
+ android:grantUriPermissions="true">
<!-- This is a mandatory piece of metadata that contains the directory where temp
files should be put. It should be a relative path from Context.getFilesDir() or from
Context.getExternalStorageDir(null), depending on the value of the
use-external-storage metadata. -->
- <meta-data android:name="temp-file-path" android:value="/mbms-temp/"/>
+ <meta-data android:name="temp-file-path"
+ android:value="/mbms-temp/"/>
<!-- This tells the provider whether to use the sdcard partition for the temp files or
not. -->
- <meta-data android:name="use-external-storage" android:value="false"/>
+ <meta-data android:name="use-external-storage"
+ android:value="false"/>
</provider>
<!-- This is a mandatory piece of metadata that contains the authority string for the
provider declared above -->
- <meta-data
- android:name="mbms-file-provider-authority"
- android:value="com.android.phone.testapps.embmsdownload"/>
+ <meta-data android:name="mbms-file-provider-authority"
+ android:value="com.android.phone.testapps.embmsdownload"/>
</application>
</manifest>
-
diff --git a/testapps/EmbmsTestStreamingApp/AndroidManifest.xml b/testapps/EmbmsTestStreamingApp/AndroidManifest.xml
index d13425d..9cb83f2 100644
--- a/testapps/EmbmsTestStreamingApp/AndroidManifest.xml
+++ b/testapps/EmbmsTestStreamingApp/AndroidManifest.xml
@@ -15,17 +15,16 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.phone.testapps.embmsfrontend">
+ package="com.android.phone.testapps.embmsfrontend">
<application android:label="EmbmsTestStreamingApp">
- <activity
- android:name=".EmbmsTestStreamingApp"
- android:label="EmbmsStreamingFrontend">
+ <activity android:name=".EmbmsTestStreamingApp"
+ android:label="EmbmsStreamingFrontend"
+ android:exported="true">
<intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
-
diff --git a/testapps/ImsTestService/AndroidManifest.xml b/testapps/ImsTestService/AndroidManifest.xml
index eea54b8..6177e73 100644
--- a/testapps/ImsTestService/AndroidManifest.xml
+++ b/testapps/ImsTestService/AndroidManifest.xml
@@ -16,40 +16,42 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- coreApp="true"
- package="com.android.phone.testapps.imstestapp">
+ coreApp="true"
+ package="com.android.phone.testapps.imstestapp">
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!--Beware, declaring the below permission will cause the device to not boot unless you add
this app and permission to frameworks/base/data/etc/privapp-permissions-platform.xml-->
- <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
- <application
- android:label="ImsTestService"
- android:directBootAware="true">
- <activity
- android:name=".ImsTestServiceApp"
- android:label="ImsTestService">
+ <!--uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"/-->
+ <application android:label="ImsTestService"
+ android:directBootAware="true">
+ <activity android:name=".ImsTestServiceApp"
+ android:label="ImsTestService"
+ android:exported="true">
<intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
- <activity android:name=".ImsRegistrationActivity" android:label="IMS Registration" />
- <activity android:name=".ImsCallingActivity" android:label="IMS Calling" />
- <activity android:name=".ImsConfigActivity" android:label="IMS Config" />
+ <activity android:name=".ImsRegistrationActivity"
+ android:label="IMS Registration"/>
+ <activity android:name=".ImsCallingActivity"
+ android:label="IMS Calling"/>
+ <activity android:name=".ImsConfigActivity"
+ android:label="IMS Config"/>
<service android:name=".TestImsService"
- android:exported="true"
- android:enabled="true"
- android:persistent="true"
- android:permission="android.permission.BIND_IMS_SERVICE">
- <!--meta-data android:name="android.telephony.ims.MMTEL_FEATURE" android:value="true"/-->
+ android:exported="true"
+ android:enabled="true"
+ android:persistent="true"
+ android:permission="android.permission.BIND_IMS_SERVICE">
+ <!--meta-data android:name="android.telephony.ims.MMTEL_FEATURE"
+ android:value="true"/-->
<!-- No features means we will get queried for dynamic config. -->
<intent-filter>
- <action android:name="android.telephony.ims.ImsService" />
+ <action android:name="android.telephony.ims.ImsService"/>
</intent-filter>
</service>
</application>
</manifest>
-
diff --git a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/SipTransportImpl.java b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/SipTransportImpl.java
new file mode 100644
index 0000000..1ae2594
--- /dev/null
+++ b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/SipTransportImpl.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone.testapps.imstestapp;
+
+import android.telephony.ims.stub.SipTransportImplBase;
+
+import java.util.concurrent.Executor;
+
+/**
+ * Test stub implementation of SipTransport.
+ */
+public class SipTransportImpl extends SipTransportImplBase {
+
+ private static SipTransportImpl sSipTransportInstance;
+
+ public static SipTransportImpl getInstance(Executor e) {
+ if (sSipTransportInstance == null) {
+ sSipTransportInstance = new SipTransportImpl(e);
+ }
+ return sSipTransportInstance;
+ };
+
+ public SipTransportImpl(Executor e) {
+ super(e);
+ }
+}
diff --git a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/TestImsService.java b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/TestImsService.java
index 71323d8..477c638 100644
--- a/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/TestImsService.java
+++ b/testapps/ImsTestService/src/com/android/phone/testapps/imstestapp/TestImsService.java
@@ -39,6 +39,7 @@
public TestMmTelFeatureImpl mTestMmTelFeature;
public TestRcsFeatureImpl mTestRcsFeature;
public TestImsConfigImpl mTestImsConfig;
+ public SipTransportImpl mSipTransportImpl;
public static TestImsService getInstance() {
return mInstance;
@@ -51,7 +52,8 @@
mTestMmTelFeature = TestMmTelFeatureImpl.getInstance();
mTestRcsFeature = new TestRcsFeatureImpl();
mTestImsConfig = TestImsConfigImpl.getInstance();
-
+ mSipTransportImpl = SipTransportImpl.getInstance(
+ getApplicationContext().getMainExecutor());
mInstance = this;
}
@@ -60,10 +62,16 @@
return new ImsFeatureConfiguration.Builder()
.addFeature(0, ImsFeature.FEATURE_EMERGENCY_MMTEL)
.addFeature(0, ImsFeature.FEATURE_MMTEL)
+ .addFeature(0, ImsFeature.FEATURE_RCS)
.build();
}
@Override
+ public long getImsServiceCapabilities() {
+ return CAPABILITY_SIP_DELEGATE_CREATION;
+ }
+
+ @Override
public MmTelFeature createMmTelFeature(int slotId) {
Log.i(LOG_TAG, "TestImsService: onCreateMmTelImsFeature");
return mTestMmTelFeature;
@@ -84,4 +92,9 @@
public ImsConfigImplBase getConfig(int slotId) {
return mTestImsConfig;
}
+
+ @Override
+ public SipTransportImpl getSipTransport(int slotId) {
+ return mSipTransportImpl;
+ }
}
diff --git a/testapps/SmsManagerTestApp/AndroidManifest.xml b/testapps/SmsManagerTestApp/AndroidManifest.xml
index c5f4621..7dc717f 100644
--- a/testapps/SmsManagerTestApp/AndroidManifest.xml
+++ b/testapps/SmsManagerTestApp/AndroidManifest.xml
@@ -16,29 +16,86 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.phone.testapps.smsmanagertestapp">
- <uses-sdk android:minSdkVersion="24" android:targetSdkVersion="29" />
+ package="com.android.phone.testapps.smsmanagertestapp">
+ <uses-sdk android:minSdkVersion="24"
+ android:targetSdkVersion="29"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<application android:label="SmsManagerTestApp">
- <activity
- android:name=".SmsManagerTestApp"
- android:label="SmsManagerTestApp">
+ <activity android:name=".SmsManagerTestApp"
+ android:label="SmsManagerTestApp"
+ android:exported="true">
<intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
- <service android:name=".SmsManagerTestService" android:exported="false" />
+ <service android:name=".SmsManagerTestService"
+ android:exported="false"/>
<receiver android:name=".SendStatusReceiver"
- android:exported="false">
+ android:exported="false">
<intent-filter>
- <action android:name="com.android.phone.testapps.smsmanagertestapp.message_sent_action" />
- <data android:scheme="content" />
+ <action android:name="com.android.phone.testapps.smsmanagertestapp.message_sent_action"/>
+ <data android:scheme="content"/>
+ </intent-filter>
+ </receiver>
+ <service android:name=".PersistentService"
+ android:exported="false"
+ android:process=":persistent"
+ android:permission="android.permission.BIND_CARRIER_MESSAGING_CLIENT_SERVICE">
+ <intent-filter>
+ <action android:name="android.telephony.action.CARRIER_MESSAGING_CLIENT_SERVICE" />
+ </intent-filter>
+ </service>
+
+ <!-- Stuff required to become the default messaging app defined below, doesn't actually do
+ anything useful for now. -->
+
+ <!-- Fake BroadcastReceiver that listens for incoming SMS messages -->
+ <receiver android:name=".SmsReceiver"
+ android:permission="android.permission.BROADCAST_SMS">
+ <intent-filter>
+ <action android:name="android.provider.Telephony.SMS_DELIVER" />
</intent-filter>
</receiver>
+ <!-- Fake BroadcastReceiver that listens for incoming MMS messages -->
+ <receiver android:name=".MmsReceiver"
+ android:permission="android.permission.BROADCAST_WAP_PUSH">
+ <intent-filter>
+ <action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
+ <data android:mimeType="application/vnd.wap.mms-message" />
+ </intent-filter>
+ </receiver>
+
+ <!-- Fake Activity that allows the user to send new SMS/MMS messages -->
+ <activity android:name=".ComposeSmsActivity" >
+ <intent-filter>
+ <action android:name="android.intent.action.SEND" />
+ <action android:name="android.intent.action.SENDTO" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.BROWSABLE" />
+ <data android:scheme="sms" />
+ <data android:scheme="smsto" />
+ <data android:scheme="mms" />
+ <data android:scheme="mmsto" />
+ </intent-filter>
+ </activity>
+
+ <!-- Fake Service that delivers messages from the phone "quick response" -->
+ <service android:name=".HeadlessSmsSendService"
+ android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE"
+ android:exported="true" >
+ <intent-filter>
+ <action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:scheme="sms" />
+ <data android:scheme="smsto" />
+ <data android:scheme="mms" />
+ <data android:scheme="mmsto" />
+ </intent-filter>
+ </service>
+
</application>
</manifest>
-
diff --git a/testapps/SmsManagerTestApp/res/layout/activity_main.xml b/testapps/SmsManagerTestApp/res/layout/activity_main.xml
index 39fb6c6..185e0e2 100644
--- a/testapps/SmsManagerTestApp/res/layout/activity_main.xml
+++ b/testapps/SmsManagerTestApp/res/layout/activity_main.xml
@@ -63,5 +63,17 @@
android:layout_height="wrap_content"
android:paddingRight="4dp"
android:text="@string/get_sub_for_result_button"/>
+ <Button
+ android:id="@+id/enable_persistent_service"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingRight="4dp"
+ android:text="@string/enable_persistent_service"/>
+ <Button
+ android:id="@+id/disable_persistent_service"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingRight="4dp"
+ android:text="@string/disable_persistent_service"/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
diff --git a/testapps/SmsManagerTestApp/res/values/donottranslate_strings.xml b/testapps/SmsManagerTestApp/res/values/donottranslate_strings.xml
index d6497a3..c8b9f91 100644
--- a/testapps/SmsManagerTestApp/res/values/donottranslate_strings.xml
+++ b/testapps/SmsManagerTestApp/res/values/donottranslate_strings.xml
@@ -19,4 +19,6 @@
<string name="send_text_button">Send Outgoing Text Now.</string>
<string name="send_text_service_button">Send Outgoing Text after 5 sec.</string>
<string name="get_sub_for_result_button">Ask user for sub id.</string>
+ <string name="enable_persistent_service">Enable Persistent Service</string>
+ <string name="disable_persistent_service">Disable Persistent Service</string>
</resources>
\ No newline at end of file
diff --git a/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/PersistentService.java b/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/PersistentService.java
new file mode 100644
index 0000000..16b7ecd
--- /dev/null
+++ b/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/PersistentService.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone.testapps.smsmanagertestapp;
+
+import android.content.Intent;
+import android.service.carrier.CarrierMessagingClientService;
+import android.util.Log;
+
+/**
+ * A test persistent service that should be started by the framework when this app becomes the
+ * default SMS app and destroyed when it is removed. See {@link CarrierMessagingClientService} for
+ * more information.
+ */
+public class PersistentService extends CarrierMessagingClientService {
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ Log.i("SmsTestApp", "onCreate");
+ }
+
+ @Override
+ public void onDestroy() {
+ Log.i("SmsTestApp", "onDestroy");
+ }
+
+ @Override
+ public boolean onUnbind(Intent intent) {
+ Log.i("SmsTestApp", "onUnbind");
+ return false;
+ }
+}
diff --git a/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/SmsManagerTestApp.java b/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/SmsManagerTestApp.java
index 75536f3..785fe3f 100644
--- a/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/SmsManagerTestApp.java
+++ b/testapps/SmsManagerTestApp/src/com/android/phone/testapps/smsmanagertestapp/SmsManagerTestApp.java
@@ -66,6 +66,10 @@
findViewById(R.id.send_text_button_service)
.setOnClickListener(this::sendOutgoingSmsService);
findViewById(R.id.get_sub_for_result_button).setOnClickListener(this::getSubIdForResult);
+ findViewById(R.id.enable_persistent_service)
+ .setOnClickListener(this::setPersistentServiceComponentEnabled);
+ findViewById(R.id.disable_persistent_service)
+ .setOnClickListener(this::setPersistentServiceComponentDisabled);
mPhoneNumber = (EditText) findViewById(R.id.phone_number_text);
}
@@ -183,6 +187,21 @@
}
}
+ private void setPersistentServiceComponentEnabled(View view) {
+ getPackageManager().setComponentEnabledSetting(
+ new ComponentName(this, PersistentService.class),
+ PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
+ PackageManager.DONT_KILL_APP);
+ }
+
+ private void setPersistentServiceComponentDisabled(View view) {
+ getPackageManager().setComponentEnabledSetting(
+ new ComponentName(this, PersistentService.class),
+ PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
+ PackageManager.DONT_KILL_APP);
+ }
+
+
private Intent getSendStatusIntent() {
// Encode requestId in intent data
return new Intent(SendStatusReceiver.MESSAGE_SENT_ACTION, null, this,
diff --git a/testapps/TelephonyManagerTestApp/AndroidManifest.xml b/testapps/TelephonyManagerTestApp/AndroidManifest.xml
index 044d0b2..40fc549 100644
--- a/testapps/TelephonyManagerTestApp/AndroidManifest.xml
+++ b/testapps/TelephonyManagerTestApp/AndroidManifest.xml
@@ -15,7 +15,7 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.phone.testapps.telephonymanagertestapp">
+ package="com.android.phone.testapps.telephonymanagertestapp">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
@@ -26,31 +26,29 @@
<uses-permission android:name="android.permission.CALL_PRIVILEGED"/>
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
- android.Manifest.permission.ACCESS_FINE_LOCATION
+ android.Manifest.permission.ACCESS_FINE_LOCATION
<application android:label="TelephonyManagerTestApp">
- <activity
- android:name=".TelephonyManagerTestApp"
- android:label="TelephonyManagerTestApp">
+ <activity android:name=".TelephonyManagerTestApp"
+ android:label="TelephonyManagerTestApp"
+ android:exported="true">
<intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <action android:name="android.intent.action.SEARCH" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
+ <action android:name="android.intent.action.MAIN"/>
+ <action android:name="android.intent.action.SEARCH"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
- <meta-data
- android:name="android.app.searchable"
- android:resource="@xml/searchable">
+ <meta-data android:name="android.app.searchable"
+ android:resource="@xml/searchable">
</meta-data>
</activity>
- <activity
- android:name=".CallingMethodActivity"
- android:label="CallingMethodActivity">
+ <activity android:name=".CallingMethodActivity"
+ android:label="CallingMethodActivity"
+ android:exported="true">
<intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</application>
</manifest>
-
diff --git a/testapps/TelephonyRegistryTestApp/AndroidManifest.xml b/testapps/TelephonyRegistryTestApp/AndroidManifest.xml
index 550c9f0..7432156 100644
--- a/testapps/TelephonyRegistryTestApp/AndroidManifest.xml
+++ b/testapps/TelephonyRegistryTestApp/AndroidManifest.xml
@@ -15,24 +15,23 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.phone.testapps.telephonyregistry">
+ package="com.android.phone.testapps.telephonyregistry">
<uses-sdk android:minSdkVersion="25"
- android:targetSdkVersion="25"/>
+ android:targetSdkVersion="25"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE"/>
<application android:label="TelephonyRegistryTestApp">
- <activity
- android:name=".TelephonyRegistryTestApp"
- android:label="TelephonyRegistryTestApp">
+ <activity android:name=".TelephonyRegistryTestApp"
+ android:label="TelephonyRegistryTestApp"
+ android:exported="true">
<intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.LAUNCHER" />
+ <action android:name="android.intent.action.MAIN"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
-
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index d434650..174d22e 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -31,6 +31,7 @@
adb shell am start -n com.android.phone.tests/.CallDialTest
-->
<activity android:name="CallDialTest"
+ android:exported="true"
android:label="@string/callDialTestLabel">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -39,6 +40,7 @@
</activity>
<service android:name="SendInstantTextTestService"
+ android:exported="true"
android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE" >
<intent-filter>
<action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
diff --git a/tests/src/com/android/TestContext.java b/tests/src/com/android/TestContext.java
index c5b9b1e..9d712d3 100644
--- a/tests/src/com/android/TestContext.java
+++ b/tests/src/com/android/TestContext.java
@@ -17,9 +17,10 @@
package com.android;
import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doAnswer;
import android.content.BroadcastReceiver;
+import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
@@ -29,10 +30,13 @@
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
+import android.telephony.ims.ImsManager;
import android.test.mock.MockContext;
+import android.util.SparseArray;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.mockito.stubbing.Answer;
import java.util.concurrent.Executor;
@@ -42,12 +46,21 @@
@Mock TelecomManager mMockTelecomManager;
@Mock TelephonyManager mMockTelephonyManager;
@Mock SubscriptionManager mMockSubscriptionManager;
+ @Mock ImsManager mMockImsManager;
- private PersistableBundle mCarrierConfig = new PersistableBundle();
+ private SparseArray<PersistableBundle> mCarrierConfigs = new SparseArray<>();
public TestContext() {
MockitoAnnotations.initMocks(this);
- doReturn(mCarrierConfig).when(mMockCarrierConfigManager).getConfigForSubId(anyInt());
+ doAnswer((Answer<PersistableBundle>) invocation -> {
+ int subId = (int) invocation.getArguments()[0];
+ if (subId < 0) {
+ return new PersistableBundle();
+ }
+ PersistableBundle b = mCarrierConfigs.get(subId);
+
+ return (b != null ? b : new PersistableBundle());
+ }).when(mMockCarrierConfigManager).getConfigForSubId(anyInt());
}
@Override
@@ -94,6 +107,11 @@
}
@Override
+ public ContentResolver getContentResolver() {
+ return null;
+ }
+
+ @Override
public Object getSystemService(String name) {
switch (name) {
case (Context.CARRIER_CONFIG_SERVICE) : {
@@ -108,6 +126,9 @@
case (Context.TELEPHONY_SUBSCRIPTION_SERVICE) : {
return mMockSubscriptionManager;
}
+ case(Context.TELEPHONY_IMS_SERVICE) : {
+ return mMockImsManager;
+ }
}
return null;
}
@@ -129,7 +150,15 @@
return null;
}
- public PersistableBundle getCarrierConfig() {
- return mCarrierConfig;
+ /**
+ * @return CarrierConfig PersistableBundle for the subscription specified.
+ */
+ public PersistableBundle getCarrierConfig(int subId) {
+ PersistableBundle b = mCarrierConfigs.get(subId);
+ if (b == null) {
+ b = new PersistableBundle();
+ mCarrierConfigs.put(subId, b);
+ }
+ return b;
}
}
diff --git a/tests/src/com/android/TestExecutorService.java b/tests/src/com/android/TestExecutorService.java
new file mode 100644
index 0000000..fec502a
--- /dev/null
+++ b/tests/src/com/android/TestExecutorService.java
@@ -0,0 +1,193 @@
+/*
+ * 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;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.Delayed;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+/**
+ * An implementation of ExecutorService that just runs the requested task on the thread that it
+ * was called on for testing purposes.
+ */
+public class TestExecutorService implements ScheduledExecutorService {
+
+ private static class CompletedFuture<T> implements Future<T>, ScheduledFuture<T> {
+
+ private final Callable<T> mTask;
+ private final long mDelayMs;
+
+ CompletedFuture(Callable<T> task) {
+ mTask = task;
+ mDelayMs = 0;
+ }
+
+ CompletedFuture(Callable<T> task, long delayMs) {
+ mTask = task;
+ mDelayMs = delayMs;
+ }
+
+ @Override
+ public boolean cancel(boolean mayInterruptIfRunning) {
+ return false;
+ }
+
+ @Override
+ public boolean isCancelled() {
+ return false;
+ }
+
+ @Override
+ public boolean isDone() {
+ return true;
+ }
+
+ @Override
+ public T get() throws InterruptedException, ExecutionException {
+ try {
+ return mTask.call();
+ } catch (Exception e) {
+ throw new ExecutionException(e);
+ }
+ }
+
+ @Override
+ public T get(long timeout, TimeUnit unit)
+ throws InterruptedException, ExecutionException, TimeoutException {
+ try {
+ return mTask.call();
+ } catch (Exception e) {
+ throw new ExecutionException(e);
+ }
+ }
+
+ @Override
+ public long getDelay(TimeUnit unit) {
+ if (unit == TimeUnit.MILLISECONDS) {
+ return mDelayMs;
+ } else {
+ // not implemented
+ return 0;
+ }
+ }
+
+ @Override
+ public int compareTo(Delayed o) {
+ if (o == null) return 1;
+ if (o.getDelay(TimeUnit.MILLISECONDS) > mDelayMs) return -1;
+ if (o.getDelay(TimeUnit.MILLISECONDS) < mDelayMs) return 1;
+ return 0;
+ }
+ }
+
+ @Override
+ public void shutdown() {
+ }
+
+ @Override
+ public List<Runnable> shutdownNow() {
+ return null;
+ }
+
+ @Override
+ public boolean isShutdown() {
+ return false;
+ }
+
+ @Override
+ public boolean isTerminated() {
+ return false;
+ }
+
+ @Override
+ public boolean awaitTermination(long timeout, TimeUnit unit) {
+ return false;
+ }
+
+ @Override
+ public <T> Future<T> submit(Callable<T> task) {
+ return new CompletedFuture<>(task);
+ }
+
+ @Override
+ public <T> Future<T> submit(Runnable task, T result) {
+ throw new UnsupportedOperationException("Not implemented");
+ }
+
+ @Override
+ public Future<?> submit(Runnable task) {
+ task.run();
+ return new CompletedFuture<>(() -> null);
+ }
+
+ @Override
+ public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) {
+ throw new UnsupportedOperationException("Not implemented");
+ }
+
+ @Override
+ public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout,
+ TimeUnit unit) {
+ throw new UnsupportedOperationException("Not implemented");
+ }
+
+ @Override
+ public <T> T invokeAny(Collection<? extends Callable<T>> tasks) {
+ throw new UnsupportedOperationException("Not implemented");
+ }
+
+ @Override
+ public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) {
+ throw new UnsupportedOperationException("Not implemented");
+ }
+
+ @Override
+ public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit) {
+ // No need to worry about delays yet
+ command.run();
+ return new CompletedFuture<>(() -> null, delay);
+ }
+
+ @Override
+ public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit) {
+ return new CompletedFuture<>(callable, delay);
+ }
+
+ @Override
+ public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period,
+ TimeUnit unit) {
+ throw new UnsupportedOperationException("Not implemented");
+ }
+
+ @Override
+ public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay,
+ long delay, TimeUnit unit) {
+ throw new UnsupportedOperationException("Not implemented");
+ }
+
+ @Override
+ public void execute(Runnable command) {
+ command.run();
+ }
+}
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
index 2060e6f..07fe6a8 100644
--- a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
@@ -936,14 +936,14 @@
// Setup test to not support SUPL on the non-DDS subscription
doReturn(true).when(mDeviceState).isSuplDdsSwitchRequiredForEmergencyCall(any());
- getTestContext().getCarrierConfig().putStringArray(
+ getTestContext().getCarrierConfig(0 /*subId*/).putStringArray(
CarrierConfigManager.Gps.KEY_ES_SUPL_DATA_PLANE_ONLY_ROAMING_PLMN_STRING_ARRAY,
null);
testPhone.getServiceState().setRoaming(false);
- getTestContext().getCarrierConfig().putInt(
+ getTestContext().getCarrierConfig(0 /*subId*/).putInt(
CarrierConfigManager.Gps.KEY_ES_SUPL_CONTROL_PLANE_SUPPORT_INT,
CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_DP_ONLY);
- getTestContext().getCarrierConfig().putString(
+ getTestContext().getCarrierConfig(0 /*subId*/).putString(
CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "150");
delayDialRunnable.run();
@@ -1021,14 +1021,14 @@
// Setup test to not support SUPL on the non-DDS subscription
doReturn(true).when(mDeviceState).isSuplDdsSwitchRequiredForEmergencyCall(any());
- getTestContext().getCarrierConfig().putStringArray(
+ getTestContext().getCarrierConfig(0 /*subId*/).putStringArray(
CarrierConfigManager.Gps.KEY_ES_SUPL_DATA_PLANE_ONLY_ROAMING_PLMN_STRING_ARRAY,
null);
testPhone.getServiceState().setRoaming(false);
- getTestContext().getCarrierConfig().putInt(
+ getTestContext().getCarrierConfig(0 /*subId*/).putInt(
CarrierConfigManager.Gps.KEY_ES_SUPL_CONTROL_PLANE_SUPPORT_INT,
CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_CP_FALLBACK);
- getTestContext().getCarrierConfig().putString(
+ getTestContext().getCarrierConfig(0 /*subId*/).putString(
CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
delayDialRunnable.run();
@@ -1047,14 +1047,14 @@
// If the non-DDS supports SUPL, dont switch data
doReturn(false).when(mDeviceState).isSuplDdsSwitchRequiredForEmergencyCall(any());
- getTestContext().getCarrierConfig().putStringArray(
+ getTestContext().getCarrierConfig(0 /*subId*/).putStringArray(
CarrierConfigManager.Gps.KEY_ES_SUPL_DATA_PLANE_ONLY_ROAMING_PLMN_STRING_ARRAY,
null);
testPhone.getServiceState().setRoaming(false);
- getTestContext().getCarrierConfig().putInt(
+ getTestContext().getCarrierConfig(0 /*subId*/).putInt(
CarrierConfigManager.Gps.KEY_ES_SUPL_CONTROL_PLANE_SUPPORT_INT,
CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_DP_ONLY);
- getTestContext().getCarrierConfig().putString(
+ getTestContext().getCarrierConfig(0 /*subId*/).putString(
CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
delayDialRunnable.run();
@@ -1073,14 +1073,14 @@
// Setup test to not support SUPL on the non-DDS subscription
doReturn(true).when(mDeviceState).isSuplDdsSwitchRequiredForEmergencyCall(any());
- getTestContext().getCarrierConfig().putStringArray(
+ getTestContext().getCarrierConfig(0 /*subId*/).putStringArray(
CarrierConfigManager.Gps.KEY_ES_SUPL_DATA_PLANE_ONLY_ROAMING_PLMN_STRING_ARRAY,
null);
testPhone.getServiceState().setRoaming(true);
- getTestContext().getCarrierConfig().putInt(
+ getTestContext().getCarrierConfig(0 /*subId*/).putInt(
CarrierConfigManager.Gps.KEY_ES_SUPL_CONTROL_PLANE_SUPPORT_INT,
CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_DP_ONLY);
- getTestContext().getCarrierConfig().putString(
+ getTestContext().getCarrierConfig(0 /*subId*/).putString(
CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
delayDialRunnable.run();
@@ -1107,13 +1107,13 @@
doReturn(true).when(mDeviceState).isSuplDdsSwitchRequiredForEmergencyCall(any());
String[] roamingPlmns = new String[1];
roamingPlmns[0] = testRoamingOperator;
- getTestContext().getCarrierConfig().putStringArray(
+ getTestContext().getCarrierConfig(0 /*subId*/).putStringArray(
CarrierConfigManager.Gps.KEY_ES_SUPL_DATA_PLANE_ONLY_ROAMING_PLMN_STRING_ARRAY,
roamingPlmns);
- getTestContext().getCarrierConfig().putInt(
+ getTestContext().getCarrierConfig(0 /*subId*/).putInt(
CarrierConfigManager.Gps.KEY_ES_SUPL_CONTROL_PLANE_SUPPORT_INT,
CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_CP_FALLBACK);
- getTestContext().getCarrierConfig().putString(
+ getTestContext().getCarrierConfig(0 /*subId*/).putString(
CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
delayDialRunnable.run();
@@ -1140,13 +1140,13 @@
doReturn(true).when(mDeviceState).isSuplDdsSwitchRequiredForEmergencyCall(any());
String[] roamingPlmns = new String[1];
roamingPlmns[0] = testRoamingOperator;
- getTestContext().getCarrierConfig().putStringArray(
+ getTestContext().getCarrierConfig(0 /*subId*/).putStringArray(
CarrierConfigManager.Gps.KEY_ES_SUPL_DATA_PLANE_ONLY_ROAMING_PLMN_STRING_ARRAY,
roamingPlmns);
- getTestContext().getCarrierConfig().putInt(
+ getTestContext().getCarrierConfig(0 /*subId*/).putInt(
CarrierConfigManager.Gps.KEY_ES_SUPL_CONTROL_PLANE_SUPPORT_INT,
CarrierConfigManager.Gps.SUPL_EMERGENCY_MODE_TYPE_CP_FALLBACK);
- getTestContext().getCarrierConfig().putString(
+ getTestContext().getCarrierConfig(0 /*subId*/).putString(
CarrierConfigManager.Gps.KEY_ES_EXTENSION_SEC_STRING, "0");
delayDialRunnable.run();
diff --git a/tests/src/com/android/services/telephony/TestTelephonyConnection.java b/tests/src/com/android/services/telephony/TestTelephonyConnection.java
index 09cec17..67e0329 100644
--- a/tests/src/com/android/services/telephony/TestTelephonyConnection.java
+++ b/tests/src/com/android/services/telephony/TestTelephonyConnection.java
@@ -21,6 +21,7 @@
import android.os.Bundle;
import android.os.PersistableBundle;
import android.telecom.PhoneAccountHandle;
+import android.telephony.TelephonyManager;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -61,6 +62,9 @@
Resources mMockResources;
@Mock
+ TelephonyManager mMockTelephonyManager;
+
+ @Mock
EmergencyNumberTracker mEmergencyNumberTracker;
private Phone mMockPhone;
@@ -84,6 +88,7 @@
mMockPhone = mock(Phone.class);
mMockContext = mock(Context.class);
+ mMockTelephonyManager = mock(TelephonyManager.class);
mOriginalConnection = mMockRadioConnection;
// Set up mMockRadioConnection and mMockPhone to contain an active call
when(mMockRadioConnection.getState()).thenReturn(Call.State.ACTIVE);
@@ -101,6 +106,8 @@
when(mMockPhone.getContext()).thenReturn(mMockContext);
when(mMockPhone.getCurrentSubscriberUris()).thenReturn(null);
when(mMockContext.getResources()).thenReturn(mMockResources);
+ when(mMockContext.getSystemService(Context.TELEPHONY_SERVICE))
+ .thenReturn(mMockTelephonyManager);
when(mMockResources.getBoolean(anyInt())).thenReturn(false);
when(mMockPhone.getDefaultPhone()).thenReturn(mMockPhone);
when(mMockPhone.getPhoneType()).thenReturn(PhoneConstants.PHONE_TYPE_IMS);
@@ -169,6 +176,12 @@
// Requires ImsManager dependencies, do not implement during testing.
}
+ @Override
+ boolean isWfcEnabled(Phone phone) {
+ // Requires ImsManager dependencies, mock for test.
+ return true;
+ }
+
public int getNotifyPhoneAccountChangedCount() {
return mNotifyPhoneAccountChangedCount;
}
diff --git a/tests/src/com/android/services/telephony/rcs/RcsFeatureControllerTest.java b/tests/src/com/android/services/telephony/rcs/RcsFeatureControllerTest.java
index fbb270d..7e87dc7 100644
--- a/tests/src/com/android/services/telephony/rcs/RcsFeatureControllerTest.java
+++ b/tests/src/com/android/services/telephony/rcs/RcsFeatureControllerTest.java
@@ -100,7 +100,8 @@
verify(mMockFeature).onRcsConnected(mFeatureManager);
// Disconnect
- mConnectorListener.getValue().connectionUnavailable();
+ mConnectorListener.getValue().connectionUnavailable(
+ FeatureConnector.UNAVAILABLE_REASON_DISCONNECTED);
verify(mFeatureManager).unregisterImsRegistrationCallback(any());
verify(mMockFeature, times(2)).onRcsDisconnected();
@@ -193,7 +194,8 @@
public void testFeatureManagerDisconnectedAddFeature() {
RcsFeatureController controller = createFeatureController();
// Disconnect the RcsFeatureManager
- mConnectorListener.getValue().connectionUnavailable();
+ mConnectorListener.getValue().connectionUnavailable(
+ FeatureConnector.UNAVAILABLE_REASON_DISCONNECTED);
controller.addFeature(mMockFeature, RcsFeatureController.Feature.class);
verify(mMockFeature).onRcsDisconnected();
@@ -205,7 +207,8 @@
IImsRegistrationCallback regCb = mock(IImsRegistrationCallback.class);
IImsCapabilityCallback capCb = mock(IImsCapabilityCallback.class);
// Disconnect the RcsFeatureManager
- mConnectorListener.getValue().connectionUnavailable();
+ mConnectorListener.getValue().connectionUnavailable(
+ FeatureConnector.UNAVAILABLE_REASON_DISCONNECTED);
try {
controller.registerImsRegistrationCallback(0 /*subId*/, null /*callback*/);
diff --git a/tests/src/com/android/services/telephony/rcs/SipTransportControllerTest.java b/tests/src/com/android/services/telephony/rcs/SipTransportControllerTest.java
new file mode 100644
index 0000000..65a95cd
--- /dev/null
+++ b/tests/src/com/android/services/telephony/rcs/SipTransportControllerTest.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.services.telephony.rcs;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
+
+import android.telephony.ims.ImsException;
+import android.telephony.ims.aidl.ISipTransport;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.TelephonyTestBase;
+import com.android.TestExecutorService;
+import com.android.ims.RcsFeatureManager;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+
+@RunWith(AndroidJUnit4.class)
+public class SipTransportControllerTest extends TelephonyTestBase {
+
+ @Mock private RcsFeatureManager mRcsManager;
+ @Mock private ISipTransport mSipTransport;
+
+ private final TestExecutorService mExecutorService = new TestExecutorService();
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ @SmallTest
+ @Test
+ public void isSupportedRcsNotConnected() {
+ SipTransportController controller = createController(0 /*slotId*/, 0 /*subId*/);
+ try {
+ controller.isSupported(0 /*subId*/);
+ fail();
+ } catch (ImsException e) {
+ assertEquals(ImsException.CODE_ERROR_SERVICE_UNAVAILABLE, e.getCode());
+ }
+ }
+
+ @SmallTest
+ @Test
+ public void isSupportedInvalidSubId() {
+ SipTransportController controller = createController(0 /*slotId*/, 0 /*subId*/);
+ try {
+ controller.isSupported(1 /*subId*/);
+ fail();
+ } catch (ImsException e) {
+ assertEquals(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION, e.getCode());
+ }
+ }
+
+ @SmallTest
+ @Test
+ public void isSupportedSubIdChanged() {
+ SipTransportController controller = createController(0 /*slotId*/, 0 /*subId*/);
+ controller.onAssociatedSubscriptionUpdated(1 /*subId*/);
+ try {
+ controller.isSupported(0 /*subId*/);
+ fail();
+ } catch (ImsException e) {
+ assertEquals(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION, e.getCode());
+ }
+ }
+
+ @SmallTest
+ @Test
+ public void isSupportedSipTransportAvailableRcsConnected() throws Exception {
+ SipTransportController controller = createController(0 /*slotId*/, 0 /*subId*/);
+ doReturn(mSipTransport).when(mRcsManager).getSipTransport();
+ controller.onRcsConnected(mRcsManager);
+ try {
+ assertTrue(controller.isSupported(0 /*subId*/));
+ } catch (ImsException e) {
+ fail();
+ }
+ }
+
+ @SmallTest
+ @Test
+ public void isSupportedSipTransportNotAvailableRcsDisconnected() throws Exception {
+ SipTransportController controller = createController(0 /*slotId*/, 0 /*subId*/);
+ doReturn(mSipTransport).when(mRcsManager).getSipTransport();
+ controller.onRcsConnected(mRcsManager);
+ controller.onRcsDisconnected();
+ try {
+ controller.isSupported(0 /*subId*/);
+ fail();
+ } catch (ImsException e) {
+ assertEquals(ImsException.CODE_ERROR_SERVICE_UNAVAILABLE, e.getCode());
+ }
+ }
+
+ @SmallTest
+ @Test
+ public void isSupportedSipTransportNotAvailableRcsConnected() throws Exception {
+ SipTransportController controller = createController(0 /*slotId*/, 0 /*subId*/);
+ doReturn(null).when(mRcsManager).getSipTransport();
+ controller.onRcsConnected(mRcsManager);
+ try {
+ assertFalse(controller.isSupported(0 /*subId*/));
+ } catch (ImsException e) {
+ fail();
+ }
+ }
+
+ @SmallTest
+ @Test
+ public void isSupportedImsServiceNotAvailableRcsConnected() throws Exception {
+ SipTransportController controller = createController(0 /*slotId*/, 0 /*subId*/);
+ doThrow(new ImsException("", ImsException.CODE_ERROR_SERVICE_UNAVAILABLE))
+ .when(mRcsManager).getSipTransport();
+ controller.onRcsConnected(mRcsManager);
+ try {
+ controller.isSupported(0 /*subId*/);
+ fail();
+ } catch (ImsException e) {
+ assertEquals(ImsException.CODE_ERROR_SERVICE_UNAVAILABLE, e.getCode());
+ }
+ }
+
+ private SipTransportController createController(int slotId, int subId) {
+ return new SipTransportController(mContext, slotId, subId, mExecutorService);
+ }
+}
diff --git a/tests/src/com/android/services/telephony/rcs/TelephonyRcsServiceTest.java b/tests/src/com/android/services/telephony/rcs/TelephonyRcsServiceTest.java
index cfb68b7..ffbb71d 100644
--- a/tests/src/com/android/services/telephony/rcs/TelephonyRcsServiceTest.java
+++ b/tests/src/com/android/services/telephony/rcs/TelephonyRcsServiceTest.java
@@ -52,6 +52,8 @@
@Mock TelephonyRcsService.FeatureFactory mFeatureFactory;
@Mock UserCapabilityExchangeImpl mMockUceSlot0;
@Mock UserCapabilityExchangeImpl mMockUceSlot1;
+ @Mock SipTransportController mMockSipTransportSlot0;
+ @Mock SipTransportController mMockSipTransportSlot1;
@Mock RcsFeatureController.RegistrationHelperFactory mRegistrationFactory;
@Mock RcsFeatureController.FeatureConnectorFactory<RcsFeatureManager> mFeatureConnectorFactory;
@Mock FeatureConnector<RcsFeatureManager> mFeatureConnector;
@@ -72,6 +74,10 @@
anyInt());
doReturn(mMockUceSlot1).when(mFeatureFactory).createUserCapabilityExchange(any(), eq(1),
anyInt());
+ doReturn(mMockSipTransportSlot0).when(mFeatureFactory).createSipTransportController(any(),
+ eq(0), anyInt());
+ doReturn(mMockSipTransportSlot1).when(mFeatureFactory).createSipTransportController(any(),
+ eq(1), anyInt());
//set up default slot-> sub ID mappings.
setSlotToSubIdMapping(0 /*slotId*/, 1/*subId*/);
setSlotToSubIdMapping(1 /*slotId*/, 2/*subId*/);
@@ -84,7 +90,8 @@
@Test
public void testUserCapabilityExchangePresenceConnected() {
- setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+ setCarrierConfig(1 /*subId*/, CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL,
+ true /*isEnabled*/);
createRcsService(1 /*numSlots*/);
verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
verify(mFeatureControllerSlot0).connect();
@@ -92,7 +99,8 @@
@Test
public void testUserCapabilityExchangeOptionsConnected() {
- setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_SIP_OPTIONS_BOOL, true /*isEnabled*/);
+ setCarrierConfig(1 /*subId*/, CarrierConfigManager.KEY_USE_RCS_SIP_OPTIONS_BOOL,
+ true /*isEnabled*/);
createRcsService(1 /*numSlots*/);
verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
verify(mFeatureControllerSlot0).connect();
@@ -108,6 +116,55 @@
}
@Test
+ public void testSipTransportConnected() {
+ createRcsService(1 /*numSlots*/);
+ verify(mFeatureControllerSlot0, never()).addFeature(mMockSipTransportSlot0,
+ SipTransportController.class);
+ verify(mFeatureControllerSlot0, never()).connect();
+
+
+ // Send carrier config update for each slot.
+ setCarrierConfig(1 /*subId*/,
+ CarrierConfigManager.Ims.KEY_IMS_SINGLE_REGISTRATION_REQUIRED_BOOL,
+ true /*isEnabled*/);
+ sendCarrierConfigChanged(0 /*slotId*/, 1 /*subId*/);
+ verify(mFeatureControllerSlot0).addFeature(mMockSipTransportSlot0,
+ SipTransportController.class);
+ verify(mFeatureControllerSlot0).connect();
+ verify(mFeatureControllerSlot0).updateAssociatedSubscription(1);
+ }
+
+ @Test
+ public void testSipTransportConnectedOneSlot() {
+ createRcsService(2 /*numSlots*/);
+ verify(mFeatureControllerSlot0, never()).addFeature(mMockSipTransportSlot0,
+ SipTransportController.class);
+ verify(mFeatureControllerSlot0, never()).connect();
+ verify(mFeatureControllerSlot0, never()).addFeature(mMockSipTransportSlot1,
+ SipTransportController.class);
+ verify(mFeatureControllerSlot1, never()).connect();
+
+
+ // Send carrier config update for slot 0 only
+ setCarrierConfig(1 /*subId*/,
+ CarrierConfigManager.Ims.KEY_IMS_SINGLE_REGISTRATION_REQUIRED_BOOL,
+ true /*isEnabled*/);
+ setCarrierConfig(2 /*subId*/,
+ CarrierConfigManager.Ims.KEY_IMS_SINGLE_REGISTRATION_REQUIRED_BOOL,
+ false /*isEnabled*/);
+ sendCarrierConfigChanged(0 /*slotId*/, 1 /*subId*/);
+ sendCarrierConfigChanged(1 /*slotId*/, 2 /*subId*/);
+ verify(mFeatureControllerSlot0).addFeature(mMockSipTransportSlot0,
+ SipTransportController.class);
+ verify(mFeatureControllerSlot1, never()).addFeature(mMockSipTransportSlot0,
+ SipTransportController.class);
+ verify(mFeatureControllerSlot0).connect();
+ verify(mFeatureControllerSlot1, never()).connect();
+ verify(mFeatureControllerSlot0).updateAssociatedSubscription(1);
+ verify(mFeatureControllerSlot1, never()).updateAssociatedSubscription(1);
+ }
+
+ @Test
public void testNoFeaturesEnabledCarrierConfigChanged() {
createRcsService(1 /*numSlots*/);
// No carrier config set for UCE.
@@ -122,7 +179,10 @@
@Test
public void testSlotUpdates() {
- setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+ setCarrierConfig(1 /*subId*/, CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL,
+ true /*isEnabled*/);
+ setCarrierConfig(2 /*subId*/, CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL,
+ true /*isEnabled*/);
TelephonyRcsService service = createRcsService(1 /*numSlots*/);
verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
verify(mFeatureControllerSlot0).connect();
@@ -163,7 +223,10 @@
@Test
public void testCarrierConfigUpdate() {
- setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+ setCarrierConfig(1 /*subId*/, CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL,
+ true /*isEnabled*/);
+ setCarrierConfig(2 /*subId*/, CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL,
+ true /*isEnabled*/);
createRcsService(2 /*numSlots*/);
verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
verify(mFeatureControllerSlot1).addFeature(mMockUceSlot1, UserCapabilityExchangeImpl.class);
@@ -182,20 +245,42 @@
@Test
public void testCarrierConfigUpdateUceToNoUce() {
- setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+ setCarrierConfig(1 /*subId*/, CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL,
+ true /*isEnabled*/);
createRcsService(1 /*numSlots*/);
verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
verify(mFeatureControllerSlot0).connect();
// Send carrier config update for each slot.
- setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, false /*isEnabled*/);
+ setCarrierConfig(1 /*subId*/, CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL,
+ false /*isEnabled*/);
sendCarrierConfigChanged(0 /*slotId*/, 1 /*subId*/);
verify(mFeatureControllerSlot0).removeFeature(UserCapabilityExchangeImpl.class);
verify(mFeatureControllerSlot0).updateAssociatedSubscription(1);
}
@Test
+ public void testCarrierConfigUpdateTransportToNoTransport() {
+ setCarrierConfig(1 /*subId*/,
+ CarrierConfigManager.Ims.KEY_IMS_SINGLE_REGISTRATION_REQUIRED_BOOL,
+ true /*isEnabled*/);
+ createRcsService(1 /*numSlots*/);
+ verify(mFeatureControllerSlot0).addFeature(mMockSipTransportSlot0,
+ SipTransportController.class);
+ verify(mFeatureControllerSlot0).connect();
+
+
+ // Send carrier config update for each slot.
+ setCarrierConfig(1 /*subId*/,
+ CarrierConfigManager.Ims.KEY_IMS_SINGLE_REGISTRATION_REQUIRED_BOOL,
+ false /*isEnabled*/);
+ sendCarrierConfigChanged(0 /*slotId*/, 1 /*subId*/);
+ verify(mFeatureControllerSlot0).removeFeature(SipTransportController.class);
+ verify(mFeatureControllerSlot0).updateAssociatedSubscription(1);
+ }
+
+ @Test
public void testCarrierConfigUpdateNoUceToUce() {
createRcsService(1 /*numSlots*/);
verify(mFeatureControllerSlot0, never()).addFeature(mMockUceSlot0,
@@ -204,7 +289,8 @@
// Send carrier config update for each slot.
- setCarrierConfig(CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL, true /*isEnabled*/);
+ setCarrierConfig(1 /*subId*/, CarrierConfigManager.KEY_USE_RCS_PRESENCE_BOOL,
+ true /*isEnabled*/);
sendCarrierConfigChanged(0 /*slotId*/, 1 /*subId*/);
verify(mFeatureControllerSlot0).addFeature(mMockUceSlot0, UserCapabilityExchangeImpl.class);
verify(mFeatureControllerSlot0).connect();
@@ -218,8 +304,8 @@
mReceiverCaptor.getValue().onReceive(mContext, intent);
}
- private void setCarrierConfig(String key, boolean value) {
- PersistableBundle bundle = mContext.getCarrierConfig();
+ private void setCarrierConfig(int subId, String key, boolean value) {
+ PersistableBundle bundle = mContext.getCarrierConfig(subId);
bundle.putBoolean(key, value);
}
diff --git a/tests/src/com/android/services/telephony/rcs/UserCapabilityExchangeImplTest.java b/tests/src/com/android/services/telephony/rcs/UserCapabilityExchangeImplTest.java
new file mode 100644
index 0000000..3cbe8bf
--- /dev/null
+++ b/tests/src/com/android/services/telephony/rcs/UserCapabilityExchangeImplTest.java
@@ -0,0 +1,307 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.services.telephony.rcs;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyList;
+import static org.mockito.Mockito.atLeast;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.net.Uri;
+import android.os.HandlerThread;
+import android.os.Looper;
+import android.os.RemoteCallbackList;
+import android.telephony.ims.ImsManager;
+import android.telephony.ims.ImsMmTelManager;
+import android.telephony.ims.RcsContactPresenceTuple;
+import android.telephony.ims.RcsContactPresenceTuple.ServiceCapabilities;
+import android.telephony.ims.RcsContactUceCapability;
+import android.telephony.ims.RcsContactUceCapability.PresenceBuilder;
+import android.telephony.ims.RegistrationManager;
+import android.telephony.ims.aidl.IRcsUceControllerCallback;
+import android.telephony.ims.aidl.IRcsUcePublishStateCallback;
+import android.telephony.ims.stub.RcsCapabilityExchange;
+import android.telephony.ims.stub.RcsPresenceExchangeImplBase;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.TelephonyTestBase;
+import com.android.ims.RcsFeatureManager;
+import com.android.ims.RcsFeatureManager.RcsFeatureCallbacks;
+import com.android.ims.ResultCode;
+import com.android.service.ims.presence.PresenceBase;
+import com.android.service.ims.presence.PresencePublication;
+import com.android.service.ims.presence.PresencePublisher;
+import com.android.service.ims.presence.PresenceSubscriber;
+import com.android.service.ims.presence.SubscribePublisher;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.Executor;
+
+@RunWith(AndroidJUnit4.class)
+public class UserCapabilityExchangeImplTest extends TelephonyTestBase {
+
+ private int mSlotId = 0;
+ private int mSubId = 1;
+ private int mUpdatedSubId = 2;
+
+ @Captor ArgumentCaptor<IRcsUcePublishStateCallback> mPublishStateCallbacksCaptor;
+
+ @Mock PresencePublication mPresencePublication;
+ @Mock PresenceSubscriber mPresenceSubscriber;
+ @Mock RcsFeatureManager mRcsFeatureManager;
+ @Mock ImsMmTelManager mImsMmTelManager;
+ @Mock RemoteCallbackList<IRcsUcePublishStateCallback> mPublishStateCallbacks;
+
+ private Looper mLooper;
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+
+ ImsManager imsManager =
+ (ImsManager) mContext.getSystemService(Context.TELEPHONY_IMS_SERVICE);
+ when(imsManager.getImsMmTelManager(mSubId)).thenReturn(mImsMmTelManager);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ super.tearDown();
+
+ if (mLooper != null) {
+ mLooper.quit();
+ mLooper = null;
+ }
+ }
+
+ @Test
+ public void testServiceConnected() throws Exception {
+ UserCapabilityExchangeImpl uceImpl = createUserCapabilityExchangeImpl();
+ uceImpl.onRcsConnected(mRcsFeatureManager);
+
+ verify(mRcsFeatureManager).addFeatureListenerCallback(any(RcsFeatureCallbacks.class));
+ verify(mPresencePublication).updatePresencePublisher(any(PresencePublisher.class));
+ verify(mPresenceSubscriber).updatePresenceSubscriber(any(SubscribePublisher.class));
+ }
+
+ @Test
+ public void testServiceDisconnected() throws Exception {
+ UserCapabilityExchangeImpl uceImpl = createUserCapabilityExchangeImpl();
+ uceImpl.onRcsDisconnected();
+
+ verify(mPresencePublication).removePresencePublisher();
+ verify(mPresenceSubscriber).removePresenceSubscriber();
+ }
+
+ @Test
+ public void testSubscriptionUpdated() throws Exception {
+ UserCapabilityExchangeImpl uceImpl = createUserCapabilityExchangeImpl();
+ uceImpl.onAssociatedSubscriptionUpdated(mUpdatedSubId);
+
+ verify(mImsMmTelManager).registerImsRegistrationCallback(any(Executor.class),
+ any(RegistrationManager.RegistrationCallback.class));
+ verify(mImsMmTelManager).registerMmTelCapabilityCallback(any(Executor.class),
+ any(ImsMmTelManager.CapabilityCallback.class));
+ verify(mPresencePublication).handleAssociatedSubscriptionChanged(mUpdatedSubId);
+ verify(mPresenceSubscriber).handleAssociatedSubscriptionChanged(mUpdatedSubId);
+ }
+
+ @Test
+ public void testUcePublishStateRetrieval() throws Exception {
+ UserCapabilityExchangeImpl uceImpl = createUserCapabilityExchangeImpl();
+ uceImpl.getUcePublishState();
+
+ verify(mPresencePublication).getPublishState();
+ }
+
+ @Test
+ public void testRegisterPublishStateCallbacks() throws Exception {
+ UserCapabilityExchangeImpl uceImpl = createUserCapabilityExchangeImpl();
+ uceImpl.registerPublishStateCallback(any(IRcsUcePublishStateCallback.class));
+ verify(mPublishStateCallbacks).register(mPublishStateCallbacksCaptor.capture());
+ }
+
+ @Test
+ public void testOnNotifyUpdateCapabilities() throws Exception {
+ UserCapabilityExchangeImpl uceImpl = createUserCapabilityExchangeImpl();
+ uceImpl.onRcsConnected(mRcsFeatureManager);
+
+ int triggerType = RcsPresenceExchangeImplBase.CAPABILITY_UPDATE_TRIGGER_MOVE_TO_IWLAN;
+ uceImpl.mRcsFeatureCallback.onNotifyUpdateCapabilities(triggerType);
+ waitForMs(1000);
+
+ verify(mPresencePublication).onStackPublishRequested(triggerType);
+ }
+
+ @Test
+ public void testRequestPublicationWithSuccessfulResponse() throws Exception {
+ int taskId = 1;
+ int sipResponse = 200;
+ Uri contact = Uri.fromParts("sip", "test", null);
+ RcsContactUceCapability capability = getRcsContactUceCapability(contact);
+
+ UserCapabilityExchangeImpl uceImpl = createUserCapabilityExchangeImpl();
+ uceImpl.onRcsConnected(mRcsFeatureManager);
+
+ doAnswer(invocation -> {
+ uceImpl.mRcsFeatureCallback.onCommandUpdate(RcsCapabilityExchange.COMMAND_CODE_SUCCESS,
+ taskId);
+ uceImpl.mRcsFeatureCallback.onNetworkResponse(sipResponse, null, taskId);
+ return null;
+ }).when(mRcsFeatureManager).requestPublication(capability, taskId);
+
+ // Request publication
+ int result = uceImpl.requestPublication(capability, contact.toString(), taskId);
+
+ assertEquals(ResultCode.SUCCESS, result);
+ verify(mPresencePublication).onCommandStatusUpdated(taskId, taskId, ResultCode.SUCCESS);
+ verify(mPresencePublication).onSipResponse(taskId, sipResponse, null);
+ }
+
+ @Test
+ public void testRequestPublicationWithFailedResponse() throws Exception {
+ int taskId = 1;
+ Uri contact = Uri.fromParts("sip", "test", null);
+ RcsContactUceCapability capability = getRcsContactUceCapability(contact);
+
+ UserCapabilityExchangeImpl uceImpl = createUserCapabilityExchangeImpl();
+ uceImpl.onRcsConnected(mRcsFeatureManager);
+
+ doAnswer(invocation -> {
+ uceImpl.mRcsFeatureCallback.onCommandUpdate(
+ RcsCapabilityExchange.COMMAND_CODE_GENERIC_FAILURE, taskId);
+ return null;
+ }).when(mRcsFeatureManager).requestPublication(capability, taskId);
+
+ // Request publication
+ int result = uceImpl.requestPublication(capability, contact.toString(), taskId);
+
+ assertEquals(ResultCode.SUCCESS, result);
+ verify(mPresencePublication).onCommandStatusUpdated(taskId, taskId,
+ ResultCode.PUBLISH_GENERIC_FAILURE);
+ }
+
+ private RcsContactUceCapability getRcsContactUceCapability(Uri contact) {
+ ServiceCapabilities.Builder servCapsBuilder = new ServiceCapabilities.Builder(true, true);
+ servCapsBuilder.addSupportedDuplexMode(ServiceCapabilities.DUPLEX_MODE_FULL);
+
+ RcsContactPresenceTuple.Builder tupleBuilder = new RcsContactPresenceTuple.Builder(
+ RcsContactPresenceTuple.TUPLE_BASIC_STATUS_OPEN,
+ RcsContactPresenceTuple.SERVICE_ID_MMTEL, "1.0");
+ tupleBuilder.addContactUri(contact).addServiceCapabilities(servCapsBuilder.build());
+
+ PresenceBuilder presenceBuilder = new PresenceBuilder(contact,
+ RcsContactUceCapability.SOURCE_TYPE_CACHED,
+ RcsContactUceCapability.REQUEST_RESULT_FOUND);
+ presenceBuilder.addCapabilityTuple(tupleBuilder.build());
+ return presenceBuilder.build();
+ }
+
+ @Test
+ public void testRequestCapability() throws Exception {
+ int taskId = 1;
+ int sipResponse = 200;
+ List<RcsContactUceCapability> infos = new ArrayList<>();
+ List<Uri> contacts = Arrays.asList(Uri.fromParts("sip", "00000", null));
+ IRcsUceControllerCallback callback = Mockito.mock(IRcsUceControllerCallback.class);
+
+ UserCapabilityExchangeImpl uceImpl = createUserCapabilityExchangeImpl();
+ uceImpl.onRcsConnected(mRcsFeatureManager);
+
+ when(mPresenceSubscriber.requestCapability(anyList(), any())).thenReturn(taskId);
+
+ doAnswer(invocation -> {
+ uceImpl.mRcsFeatureCallback.onCommandUpdate(RcsCapabilityExchange.COMMAND_CODE_SUCCESS,
+ taskId);
+ uceImpl.mRcsFeatureCallback.onNetworkResponse(sipResponse, null, taskId);
+ uceImpl.mRcsFeatureCallback.onCapabilityRequestResponsePresence(infos, taskId);
+ return null;
+ }).when(mRcsFeatureManager).requestCapabilities(anyList(), anyInt());
+
+ uceImpl.requestCapabilities(contacts, callback);
+ uceImpl.requestCapability(new String[] {"00000"}, taskId);
+
+ verify(mPresenceSubscriber).onCommandStatusUpdated(taskId, taskId, ResultCode.SUCCESS);
+ verify(mPresenceSubscriber).onSipResponse(taskId, sipResponse, null);
+ verify(mPresenceSubscriber).updatePresences(taskId, infos, true, null);
+ }
+
+ @Test
+ public void testUpdatePublisherState() throws Exception {
+ IRcsUcePublishStateCallback callback = Mockito.mock(IRcsUcePublishStateCallback.class);
+ doAnswer(invocation -> {
+ callback.onPublishStateChanged(anyInt());
+ return null;
+ }).when(mPublishStateCallbacks).broadcast(any());
+
+ UserCapabilityExchangeImpl uceImpl = createUserCapabilityExchangeImpl();
+ uceImpl.onRcsConnected(mRcsFeatureManager);
+ uceImpl.registerPublishStateCallback(callback);
+ uceImpl.updatePublisherState(PresenceBase.PUBLISH_STATE_200_OK);
+
+ assertEquals(PresenceBase.PUBLISH_STATE_200_OK, uceImpl.getPublisherState());
+ verify(callback).onPublishStateChanged(anyInt());
+ }
+
+ @Test
+ public void testUnpublish() throws Exception {
+ IRcsUcePublishStateCallback callback = Mockito.mock(IRcsUcePublishStateCallback.class);
+ doAnswer(invocation -> {
+ callback.onPublishStateChanged(anyInt());
+ return null;
+ }).when(mPublishStateCallbacks).broadcast(any());
+
+ UserCapabilityExchangeImpl uceImpl = createUserCapabilityExchangeImpl();
+ uceImpl.onRcsConnected(mRcsFeatureManager);
+ uceImpl.mRcsFeatureCallback.onUnpublish();
+ waitForMs(1000);
+
+ verify(mPresencePublication).setPublishState(PresenceBase.PUBLISH_STATE_NOT_PUBLISHED);
+ }
+
+ private UserCapabilityExchangeImpl createUserCapabilityExchangeImpl() throws Exception {
+ HandlerThread handlerThread = new HandlerThread("UceImplHandlerThread");
+ handlerThread.start();
+ mLooper = handlerThread.getLooper();
+ UserCapabilityExchangeImpl uceImpl = new UserCapabilityExchangeImpl(mContext, mSlotId,
+ mSubId, mLooper, mPresencePublication, mPresenceSubscriber,
+ mPublishStateCallbacks);
+ verify(mPresencePublication).handleAssociatedSubscriptionChanged(1);
+ verify(mPresenceSubscriber).handleAssociatedSubscriptionChanged(1);
+ waitForHandlerAction(uceImpl.getHandler(), 1000);
+ verify(mImsMmTelManager, atLeast(1)).registerImsRegistrationCallback(
+ any(Executor.class), any(RegistrationManager.RegistrationCallback.class));
+ verify(mContext).registerReceiver(any(), any());
+ return uceImpl;
+ }
+}