[automerger skipped] [automerged blank] Import translations. DO NOT MERGE ANYWHERE 2p: 2e6e6a9193 am: f3f7440d11 -s ours
am skip reason: subject contains skip directive
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/services/Telephony/+/16478304
Change-Id: Id597f77baa880ad12b3355a95a08b4b8651cd05b
diff --git a/Android.bp b/Android.bp
index 5eb8765..0649958 100644
--- a/Android.bp
+++ b/Android.bp
@@ -40,6 +40,7 @@
"voip-common",
"ims-common",
"libprotobuf-java-lite",
+ "app-compat-annotations",
"unsupportedappusage",
"org.apache.http.legacy",
],
@@ -97,3 +98,8 @@
type: "lite",
},
}
+
+platform_compat_config {
+ name: "TeleService-platform-compat-config",
+ src: ":TeleService",
+}
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 86f72bc..5050ea3 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -235,10 +235,17 @@
<uses-permission android:name="android.permission.MANAGE_SUBSCRIPTION_PLANS"/>
<uses-permission android:name="android.permission.OBSERVE_ROLE_HOLDERS"/>
<uses-permission android:name="android.permission.BIND_GBA_SERVICE"/>
+ <!-- Permissions required for reading and logging compat changes -->
+ <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE"/>
+ <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"/>
<!-- Needed to listen to changes in projection state. -->
<uses-permission android:name="android.permission.READ_PROJECTION_STATE"/>
+ <permission android:name="com.android.phone.permission.ACCESS_LAST_KNOWN_CELL_ID"
+ android:label="Access last known cell identity."
+ android:protectionLevel="signature"/>
+
<application android:name="PhoneApp"
android:persistent="true"
android:label="@string/phoneAppLabel"
@@ -436,8 +443,7 @@
android:configChanges="orientation|screenSize|keyboardHidden"
android:exported="true"
android:theme="@style/DialerSettingsLight">
- <intent-filter>
- <action android:name="android.intent.action.VIEW" />
+ <intent-filter android:priority="1">
<action android:name="android.intent.action.MAIN" />
<action android:name="android.telecom.action.SHOW_CALL_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
diff --git a/TEST_MAPPING b/TEST_MAPPING
index 75b9d49..da61c80 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -10,6 +10,46 @@
},
{
"name": "CarrierAppIntegrationTestCases"
+ },
+ {
+ "name": "CtsTelephonySdk28TestCases",
+ "options": [
+ {
+ "exclude-annotation": "androidx.test.filters.FlakyTest"
+ }
+ ]
+ },
+ {
+ "name": "CtsSimRestrictedApisTestCases",
+ "options": [
+ {
+ "exclude-annotation": "androidx.test.filters.FlakyTest"
+ }
+ ]
+ },
+ {
+ "name": "CtsTelephony2TestCases",
+ "options": [
+ {
+ "exclude-annotation": "androidx.test.filters.FlakyTest"
+ }
+ ]
+ },
+ {
+ "name": "CtsTelephony3TestCases",
+ "options": [
+ {
+ "exclude-annotation": "androidx.test.filters.FlakyTest"
+ }
+ ]
+ },
+ {
+ "name": "CtsTelephonyProviderTestCases",
+ "options": [
+ {
+ "exclude-annotation": "androidx.test.filters.FlakyTest"
+ }
+ ]
}
]
}
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 76b13c6..eefaebd 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Skakel selnetwerk aan, skakel vliegtuigmodus af of skakel batterybespaardermodus af om \'n oproep te maak."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Skakel vliegtuigmodus af om \'n oproep te maak."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Skakel vliegtuigmodus af of koppel aan \'n draadlose netwerk om \'n oproep te maak."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Foon is te warm"</b>\n\n"Kan nie hierdie oproep voltooi nie. Probeer weer wanneer jou foon afkoel.\n\nJy kan nog noodoproepe maak."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Verlaat noodterugbelmodus om \'n nienoodoproep te maak."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Nie geregistreer op netwerk nie."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobiele netwerk nie beskikbaar nie."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 a808559..d1833a6 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"ስልኩ በጣም ሞቋል"</b>\n\n" ይህንን ጥሪ ማጠናቀቅ አልተቻለም። ስልክዎ ሲቀዘቅዝ እንደገና ይሞክሩ።\n\nየአደጋ ጊዜ ጥሪዎችን አሁንም ማድረግ ይችላሉ።"</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>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 21a540f..ac4cbdf 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"الهاتف ساخن جدًا"</b>\n\n"يتعذّر إتمام هذه المكالمة. يمكن المحاولة مرة أخرى عندما تنخفض درجة حرارة الهاتف.\n\nسيظلّ بإمكانك إجراء مكالمات الطوارئ."</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>
@@ -927,6 +926,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 607be68..ad6dbc3 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -534,10 +534,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="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_thermal" product="default" msgid="8695809601655300168"><b>"ফ’নটো বেছি গৰম হৈছে"</b>\n\n"এই কলটো সম্পূৰ্ণ কৰিব নোৱাৰি। আপোনাৰ ফ’নটো ঠাণ্ডা হোৱাৰ পাছত পুনৰ চেষ্টা কৰক।\n\nআপুনি তথাপি জৰুৰীকালীন কল কৰিব পাৰিব।"</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>
@@ -689,8 +688,8 @@
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"কেইবাটাও কল ইতিমধ্যে সক্ৰিয় হৈ আছে। নতুন কল এটা কৰাৰ আগেয়ে অনুগ্ৰহ কৰি সেইবোৰ একেলগ কৰক বা সমাপ্ত কৰক।"</string>
<string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"সংযোগ কৰিব পৰা নাই, অনুগ্ৰহ কৰি এখন মান্য ছিম কাৰ্ড ভৰাওক।"</string>
<string name="callFailed_wifi_lost" msgid="1788036730589163141">"ৱাই-ফাইৰ সৈতে সংযোগ বিচ্ছিন্ন হৈছে। কলৰ অন্ত পৰিছে।"</string>
- <string name="dialFailed_low_battery" msgid="6857904237423407056">"বেটাৰী কম থকাৰ বাবে ভিডিঅ’ কল কৰিব নোৱাৰি।"</string>
- <string name="callFailed_low_battery" msgid="4056828320214416182">"বেটাৰী কম থকাৰ বাবে ভিডিঅ’ কল সমাপ্ত হৈছে।"</string>
+ <string name="dialFailed_low_battery" msgid="6857904237423407056">"বেটাৰি কম থকাৰ বাবে ভিডিঅ\' কল কৰিব নোৱাৰি।"</string>
+ <string name="callFailed_low_battery" msgid="4056828320214416182">"বেটাৰি কম থকাৰ বাবে ভিডিঅ\' কলৰ অন্ত পৰিছে।"</string>
<string name="callFailed_emergency_call_over_wfc_not_available" msgid="5944309590693432042">"এই অৱস্থানটোত ৱাই-ফাই কলিঙৰ জৰিয়তে জৰুৰীকালীন কল কৰাৰ সুবিধা উপলব্ধ নহয়।"</string>
<string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"এই অৱস্থানটোত ৱাই-ফাই কলিং উপলব্ধ নহয়।"</string>
<string name="change_pin_title" msgid="3564254326626797321">"ভইচমেইলৰ পিন সলনি কৰক"</string>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"নেটৱৰ্ক বিভাজনৰ কনফিগাৰেশ্বন:"</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 5ec4dc5..c1ea981 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Zəng etmək üçün mobil şəbəkəni aktiv edin, uçuş rejimini deaktiv edin və ya enerji qənaətini deaktiv edin."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Zəng etmək üçün təyyarə rejimini deaktiv edin."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Zəng etmək üçün təyyarə rejimini deaktiv edin və ya Wi-Fi şəbəkəsinə qoşulun."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefonunuz çox qızıb"</b>\n\n"Bu zəngi tamamlamaq mümkün deyil. Telefonunuz soyuduqda yenidən cəhd edin.\n\nHələ də təcili zənglər edə bilərsiniz."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Qeyri-fövqəladə zəng etmək üçün fövqəladə zəng rejimindən çıxın."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Şəbəkədə qeydə alınmayıb."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobil şəbəkə əlçatımlı deyil."</string>
@@ -592,7 +591,7 @@
<string name="importToFDNfromContacts" msgid="5068664870738407341">"Kontaktlardan import edin"</string>
<string name="singleContactImportedMsg" msgid="3619804066300998934">"Idxal olunmuş kontakt"</string>
<string name="failedToImportSingleContactMsg" msgid="228095510489830266">"Kontakt idxalı uğursuz oldu"</string>
- <string name="hac_mode_title" msgid="4127986689621125468">"Eşitmə cihazları"</string>
+ <string name="hac_mode_title" msgid="4127986689621125468">"Eşitmə yardımı"</string>
<string name="hac_mode_summary" msgid="7774989500136009881">"Eşitmə yardımı uyğunluğunu aktivləşdirin"</string>
<string name="rtt_mode_title" msgid="3075948111362818043">"Real zaman mətn (RTT) zəngi"</string>
<string name="rtt_mode_summary" msgid="8631541375609989562">"Səsli zəng daxilində mesajlaşmaya icazə verin"</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 bf39f18..52c569c 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Uključite mobilnu mrežu i isključite režim rada u avionu ili režim uštede baterije da biste uputili poziv."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Isključite režim rada u avionu da biste uputili poziv."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Isključite režim rada u avionu ili se povežite na bežičnu mrežu da biste uputili poziv."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefon je previše vruć"</b>\n\n"Poziv ne može da se završi. Probajte ponovo kada se telefon ohladi.\n\nI dalje možete da upućujete hitne pozive."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Izađite iz režima hitnog povratnog poziva da biste uputili poziv koji nije hitan."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Nije registrovano na mreži."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilna mreža nije dostupna."</string>
@@ -918,6 +917,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 6674bee..bdd80f5 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"Тэлефон перагрэўся"</b>\n\n"Не ўдалося зрабіць выклік. Паўтарыце спробу, калі тэлефон астыне.\n\nВы ўсё роўна можаце рабіць экстранныя выклікі."</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>
@@ -921,6 +920,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 216c789..6be0bcd 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"Телефонът е твърде горещ"</b>\n\n"Обаждането не може да се извърши. Опитайте отново, когато телефонът се охлади.\n\nМожете да извършвате спешни обаждания."</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>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 81a2b33..29dcb56 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"ফোনটি খুব গরম হয়ে গেছে"</b>\n\n"এই কলটি সম্পূর্ণ করা যাচ্ছে না। ফোনটি ঠাণ্ডা হয়ে গেলে আবার চেষ্টা করুন।\n\nআপনি এখনও জরুরি কল করতে পারেন।"</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>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 fbc1a74..ed5c95b 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -310,7 +310,7 @@
<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">"Video pozivi putem operatera"</string>
+ <string name="video_calling_settings_title" msgid="342829454913266078">"Operater video pozivanja"</string>
<string name="gsm_umts_options" msgid="4968446771519376808">"GSM/UMTS opcije"</string>
<string name="cdma_options" msgid="3669592472226145665">"CDMA opcije"</string>
<string name="throttle_data_usage" msgid="1944145350660420711">"Korištenje podataka"</string>
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Uključite mobilnu mrežu, isključite Način rada u avionu ili isključite Uštedu baterije da pozovete."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Isključite način rada u avionu da pozovete."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Isključite način rada u avionu ili se povežite na bežičnu mrežu da pozovete."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefon se pregrijao"</b>\n\n"Nije moguće završiti ovaj poziv. Pokušajte ponovo kada se telefon ohladi.\n\nI dalje možete upućivati hitne pozive."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Izađite iz načina rada za hitni povratni poziv da uputite poziv koji nije hitan."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Nije registrirano na mreži."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilna mreža nije dostupna."</string>
@@ -839,7 +838,7 @@
<string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Omogućite vezu za prijenos podataka"</string>
<string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Onemogući vezu za prijenos podataka"</string>
<string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE omogućen"</string>
- <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video pozivi su omogućeni"</string>
+ <string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Video poziv obezbijeđen"</string>
<string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"WiFi poziv obezbijeđen"</string>
<string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Omogućeno prisustvo"</string>
<string name="cbrs_data_switch_string" msgid="6060356430838077653">"Cbrs podaci"</string>
@@ -858,7 +857,7 @@
<string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Nije registrirano"</string>
<string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Dostupno"</string>
<string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Nedostupno"</string>
- <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registracija: <xliff:g id="STATUS">%1$s</xliff:g>\nGovor putem LTE mreže: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nGovor putem WiFi mreže: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo pozivi: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interfejs: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+ <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS registracija: <xliff:g id="STATUS">%1$s</xliff:g>\nGovor putem LTE mreže: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nGovor putem WiFi mreže: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideo pozivanje: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT interfejs: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
<string name="radioInfo_service_in" msgid="45753418231446400">"Aktivno"</string>
<string name="radioInfo_service_out" msgid="287972405416142312">"Ne radi"</string>
<string name="radioInfo_service_emergency" msgid="4763879891415016848">"Samo hitni pozivi"</string>
@@ -918,6 +917,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Konfiguracija rezanja mreže:"</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 5350ab0..acbe3d8 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Per fer una trucada, activa la xarxa mòbil o desactiva el mode d\'avió o el mode d\'estalvi de bateria."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Per fer una trucada, desactiva el mode d\'avió."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Per fer una trucada, desactiva el mode d\'avió o connecta amb una xarxa sense fil."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"El telèfon està massa calent"</b>\n\n"No es pot completar aquesta trucada. Torna-ho a provar quan el telèfon es refredi.\n\nPots fer trucades d\'emergència igualment."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Surt del mode de devolució de trucada d\'emergència per fer un altre tipus de trucada."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"No registrat a la xarxa."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"La xarxa mòbil no està disponible."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 926681b..ed768a7 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Pokud chcete volat, zapněte mobilní síť a vypněte režim letadla nebo spořič baterie."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Chcete-li provést hovor, vypněte režim Letadlo."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Chcete-li se připojit k bezdrátové síti a provést hovor, vypněte režim Letadlo."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefon je příliš zahřátý"</b>\n\n"Hovor nelze provést. Zkuste to znovu, až telefon vychladne.\n\nTísňové volání máte pořád k dispozici."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Chcete-li uskutečnit běžný hovor, opusťte režim tísňového volání."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Přihlášení k síti nebylo úspěšné."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilní síť je nedostupná."</string>
@@ -921,6 +920,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 ecfb98d..51659c3 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -310,7 +310,7 @@
<string name="sim_change_data_title" msgid="9142726786345906606">"Skift SIM-kortet til data?"</string>
<string name="sim_change_data_message" msgid="3567358694255933280">"Vil du bruge <xliff:g id="NEW_SIM">%1$s</xliff:g> i stedet for <xliff:g id="OLD_SIM">%2$s</xliff:g> til mobildata?"</string>
<string name="wifi_calling_settings_title" msgid="5800018845662016507">"Wi-Fi-opkald"</string>
- <string name="video_calling_settings_title" msgid="342829454913266078">"Videoopkald via mobilnetværk"</string>
+ <string name="video_calling_settings_title" msgid="342829454913266078">"Videoopkald via mobilselskab"</string>
<string name="gsm_umts_options" msgid="4968446771519376808">"Indstillinger for GSM/UMTS"</string>
<string name="cdma_options" msgid="3669592472226145665">"Indstillinger for CDMA"</string>
<string name="throttle_data_usage" msgid="1944145350660420711">"Databrug"</string>
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Slå Mobilnetværk til, Flytilstand fra eller Batterisparefunktion fra for at foretage et opkald."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Slå flytilstand fra for at foretage et opkald."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Slå flytilstand fra, eller opret forbindelse til et trådløst netværk for at foretage et opkald."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefonen er for varm"</b>\n\n"Opkaldet kan ikke foretages. Prøv igen, når din telefon er kølet af.\n\nDu kan stadig foretage nødopkald."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Afslut nødtilbagekaldstilstand for at foretage et almindeligt opkald."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Ikke registreret på netværk."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilnetværket er ikke tilgængeligt."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 7af3720..275147d 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -537,7 +537,6 @@
<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="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_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Smartphone ist überhitzt."</b>\n\n"Anruf nicht möglich. Versuche es noch einmal, wenn das Smartphone abgekühlt ist.\n\nDu kannst weiterhin Notrufe absetzen."</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>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Nicht in Netzwerk registriert."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilfunknetz ist nicht verfügbar."</string>
@@ -720,7 +719,7 @@
<string name="mobile_data_activate_button" msgid="1139792516354374612">"DATEN HINZUFÜGEN"</string>
<string name="mobile_data_activate_cancel_button" msgid="3530174817572005860">"ABBRECHEN"</string>
<string name="clh_card_title_call_ended_txt" msgid="5977978317527299698">"Anruf beendet"</string>
- <string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"Flugmodus ist aktiviert"</string>
+ <string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"Flugzeugmodus aktiviert"</string>
<string name="clh_callFailed_simError_txt" msgid="5128538525762326413">"Zugriff auf SIM-Karte nicht möglich"</string>
<string name="clh_incall_error_out_of_service_txt" msgid="2736010617446749869">"Mobilfunknetz nicht verfügbar"</string>
<string name="clh_callFailed_unassigned_number_txt" msgid="141967660286695682">"Problem mit der gewählten Telefonnummer. Fehlercode 1."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 1c88d8e..2d8fd45 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"Το τηλέφωνο έχει υπερθερμανθεί"</b>\n\n"Δεν είναι δυνατή η ολοκλήρωση αυτής της κλήσης. Δοκιμάστε ξανά όταν η θερμοκρασία της συσκευής επανέλθει σε φυσιολογικά επίπεδα.\n\nΩστόσο, μπορείτε ακόμα να πραγματοποιείτε κλήσεις έκτακτης ανάγκης."</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>
@@ -821,7 +820,7 @@
<string name="supp_service_call_resumed" msgid="3786864005920743546">"Η κλήση συνεχίστηκε."</string>
<string name="supp_service_deflected_call" msgid="7565979024562921707">"Έγινε εκτροπή της κλήσης."</string>
<string name="supp_service_forwarded_call" msgid="6475776013771821457">"Έγινε προώθηση της κλήσης."</string>
- <string name="supp_service_conference_call" msgid="4004193534408317148">"Συμμετοχή σε τηλεδιάσκεψη."</string>
+ <string name="supp_service_conference_call" msgid="4004193534408317148">"Συμμετοχή σε κλήση διάσκεψης."</string>
<string name="supp_service_held_call_released" msgid="2847835124639112410">"Έγινε αποδέσμευση της κλήσης σε κράτηση."</string>
<string name="callFailed_otasp_provisioning_in_process" msgid="3345666183602879326">"Δεν είναι δυνατή η πραγματοποίηση κλήσης, καθώς εκτελείται παροχή υπηρεσιών στη συσκευή αυτήν τη στιγμή."</string>
<string name="callFailed_already_dialing" msgid="7250591188960691086">"Δεν είναι δυνατή η πραγματοποίηση της κλήσης, επειδή βρίσκεται ήδη σε εξέλιξη εξερχόμενη κλήση."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 35999b8..191ffcf 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"Phone too hot"</b>\n\n"Can\'t complete this call. Try again when your phone cools down.\n\nYou can still make emergency calls."</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>
@@ -827,7 +826,7 @@
<string name="callFailed_already_dialing" msgid="7250591188960691086">"Cannot place a call as another outgoing call is already dialling."</string>
<string name="callFailed_already_ringing" msgid="2376603543544289303">"Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call."</string>
<string name="callFailed_calling_disabled" msgid="5010992739401206283">"Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property."</string>
- <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
+ <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Cannot place a call as there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
<string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data is turned on. You can change this in mobile network settings."</string>
<string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data and data roaming are turned on. You can change these in mobile network settings."</string>
<string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Network slicing config:"</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 2ca6c18..6e43520 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -537,7 +537,6 @@
<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 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_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Phone too hot"</b>\n\n"Can\'t complete this call. Try again when your phone cools down.\n\nYou can still make emergency calls."</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>
@@ -827,7 +826,7 @@
<string name="callFailed_already_dialing" msgid="7250591188960691086">"Cannot place a call as another outgoing call is already dialling."</string>
<string name="callFailed_already_ringing" msgid="2376603543544289303">"Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call."</string>
<string name="callFailed_calling_disabled" msgid="5010992739401206283">"Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property."</string>
- <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
+ <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Cannot place a call as there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
<string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data is turned on. You can change this in mobile network settings."</string>
<string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data and data roaming are turned on. You can change these in mobile network settings."</string>
<string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Network slicing config:"</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 35999b8..191ffcf 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"Phone too hot"</b>\n\n"Can\'t complete this call. Try again when your phone cools down.\n\nYou can still make emergency calls."</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>
@@ -827,7 +826,7 @@
<string name="callFailed_already_dialing" msgid="7250591188960691086">"Cannot place a call as another outgoing call is already dialling."</string>
<string name="callFailed_already_ringing" msgid="2376603543544289303">"Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call."</string>
<string name="callFailed_calling_disabled" msgid="5010992739401206283">"Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property."</string>
- <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
+ <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Cannot place a call as there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
<string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data is turned on. You can change this in mobile network settings."</string>
<string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data and data roaming are turned on. You can change these in mobile network settings."</string>
<string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Network slicing config:"</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 35999b8..191ffcf 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"Phone too hot"</b>\n\n"Can\'t complete this call. Try again when your phone cools down.\n\nYou can still make emergency calls."</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>
@@ -827,7 +826,7 @@
<string name="callFailed_already_dialing" msgid="7250591188960691086">"Cannot place a call as another outgoing call is already dialling."</string>
<string name="callFailed_already_ringing" msgid="2376603543544289303">"Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call."</string>
<string name="callFailed_calling_disabled" msgid="5010992739401206283">"Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property."</string>
- <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
+ <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Cannot place a call as there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
<string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data is turned on. You can change this in mobile network settings."</string>
<string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure that mobile data and data roaming are turned on. You can change these in mobile network settings."</string>
<string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure that mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Network slicing config:"</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 04094fb..aa19d15 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -537,7 +537,6 @@
<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 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_power_off_thermal" product="default" msgid="8695809601655300168">""<b>"Phone too hot"</b>"\n\nCan\'t complete this call. Try again when your phone cools down.\n\nYou can still make emergency calls."</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>
@@ -827,7 +826,7 @@
<string name="callFailed_already_dialing" msgid="7250591188960691086">"Cannot place a call as another outgoing call is already dialing."</string>
<string name="callFailed_already_ringing" msgid="2376603543544289303">"Cannot place a call as there is an unanswered incoming call. Answer or reject the incoming call prior to placing a new call."</string>
<string name="callFailed_calling_disabled" msgid="5010992739401206283">"Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property."</string>
- <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
+ <string name="callFailed_too_many_calls" msgid="5379426826618582180">"Cannot place a call as there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call."</string>
<string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure mobile data is turned on. You can change this in mobile network settings."</string>
<string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"To use <xliff:g id="SUPP_SERVICE">%s</xliff:g>, make sure mobile data and data roaming are turned on. You can change these in mobile network settings."</string>
<string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"To use <xliff:g id="SUPP_SERVICE">%1$s</xliff:g>, make sure mobile data is turned on for SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. You can change this in mobile network settings."</string>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Network slicing config:"</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 c4c0ea2..3fd44d6 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -518,7 +518,7 @@
<string name="puk2_locked" msgid="6497760825455461057">"SIM bloqueada con PUK2. Comunícate con el proveedor para desbloquearla."</string>
<string name="pin2_unblocked" msgid="4481107908727789303">"El PIN2 ya no está bloqueado."</string>
<string name="pin2_error_exception" msgid="8116103864600823641">"Error en la red o en la tarjeta SIM"</string>
- <string name="doneButton" msgid="7371209609238460207">"Listo"</string>
+ <string name="doneButton" msgid="7371209609238460207">"Finalizado"</string>
<string name="voicemail_settings_number_label" msgid="1265118640154688162">"Número de buzón de voz"</string>
<string name="card_title_dialing" msgid="8742182654254431781">"Marcando"</string>
<string name="card_title_redialing" msgid="18130232613559964">"Volviendo a marcar"</string>
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Activa la red móvil y desactiva el modo de avión o el modo de ahorro de batería para realizar una llamada."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Desactivar modo de avión para hacer una llamada"</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Desactivar el modo de avión o conectarse a una red inalámbrica para hacer una llamada"</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Se sobrecalentó el teléfono"</b>\n\n"No se puede completar esta llamada. Vuelve a intentar cuando se enfríe el teléfono.\n\nDe todos modos, puedes hacer llamadas de emergencia."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Para realizar una llamada que no sea de emergencia, sal del modo de devolución de llamada de emergencia."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"No registrado en la red."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"La red móvil no está disponible."</string>
@@ -805,7 +804,7 @@
<string name="messageCallBarring" msgid="5537730400652466912">"Ingresa la contraseña"</string>
<string name="call_barring_settings" msgid="4616607285790258919">"Configuración de restricción de llamadas"</string>
<string name="callFailed_NetworkBusy" msgid="5437103975842913681">"La red está ocupada. Vuelve a realizar la llamada más tarde."</string>
- <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"La red está congestionada. Comunícate con tu operador de telefonía celular para recibir asistencia."</string>
+ <string name="callFailed_NetworkCongested" msgid="6801283142342775380">"La red está congestionada. Comunícate con tu operador de telefonía móvil para recibir asistencia."</string>
<string name="supp_service_notification_call_deflected" msgid="4980942818105909813">"Se desvió la llamada."</string>
<string name="supp_service_notification_call_forwarded" msgid="7102930311735433088">"Se desvió la llamada."</string>
<string name="supp_service_notification_call_waiting" msgid="4577403881609445324">"Llamada en espera."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 a106ba2..4d1f877 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -92,7 +92,7 @@
<string name="additional_cdma_call_settings" msgid="2178016561980611304">"Ajustes adicionales de llamadas CDMA"</string>
<string name="sum_cdma_call_settings" msgid="3185825305136993636">"Ajustes adicionales de llamadas solo CDMA"</string>
<string name="labelNwService" msgid="6015891883487125120">"Ajustes del servicio de red"</string>
- <string name="labelCallerId" msgid="2090540744550903172">"Identificación de llamada"</string>
+ <string name="labelCallerId" msgid="2090540744550903172">"ID de llamada"</string>
<string name="sum_loading_settings" msgid="434063780286688775">"Cargando ajustes…"</string>
<string name="sum_hide_caller_id" msgid="131100328602371933">"Número oculto en llamadas salientes"</string>
<string name="sum_show_caller_id" msgid="3571854755324664591">"Número mostrado en llamadas salientes"</string>
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Activa la red móvil o desactiva el modo avión o el modo de ahorro de batería para hacer una llamada."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Desactiva el modo avión parra hacer llamadas."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Desactiva el modo avión o conéctate a una red inalámbrica para hacer llamadas."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"El teléfono está demasiado caliente"</b>\n\n"No se ha podido completar esta llamada. Vuelve a intentarlo cuando el teléfono se enfríe.\n\nNo obstante, puedes hacer llamadas de emergencia."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Sal del modo de devolución de llamada de emergencia para hacer otro tipo de llamada."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"No se ha podido conectar a la red"</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"La red móvil no está disponible."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 076160a..26366e9 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Helistamiseks lülitage mobiilsidevõrk sisse, lennu- või akusäästjarežiim välja."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Helistamiseks lülitage lennurežiim välja."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Helistamiseks lülitage lennurežiim välja või looge ühendus traadita võrguga."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefon on liiga kuum"</b>\n\n"Kõnet ei saa teha. Proovige uuesti, kui telefon on jahtunud.\n\nSaate endiselt teha hädaabikõnesid."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Muude kui hädaabikõne tegemiseks väljuge hädaabikõnede režiimist."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Ei ole võrku registreeritud."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobiilsidevõrk pole saadaval."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 4d5b23d..81af2b4 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -49,7 +49,7 @@
<string name="add_vm_number_str" msgid="7368168964435881637">"Gehitu zenbakia"</string>
<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">"SIMaren sarea desblokeatzeko PINa"</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>
@@ -162,15 +162,15 @@
<string name="no_change" msgid="3737264882821031892">"Ez da aldaketarik egin."</string>
<string name="sum_voicemail_choose_provider" msgid="6750824719081403773">"Aukeratu erantzungailu-zerbitzua"</string>
<string name="voicemail_default" msgid="6427575113775462077">"Operadorea"</string>
- <string name="vm_change_pin_old_pin" msgid="7154951790929009241">"PIN zaharra"</string>
- <string name="vm_change_pin_new_pin" msgid="2656200418481288069">"PIN berria"</string>
+ <string name="vm_change_pin_old_pin" msgid="7154951790929009241">"PIN kode zaharra"</string>
+ <string name="vm_change_pin_new_pin" msgid="2656200418481288069">"PIN kode berria"</string>
<string name="vm_change_pin_progress_message" msgid="626015184502739044">"Itxaron, mesedez."</string>
- <string name="vm_change_pin_error_too_short" msgid="1789139338449945483">"Laburregia da PIN berria."</string>
- <string name="vm_change_pin_error_too_long" msgid="3634907034310018954">"Luzeegia da PIN berria."</string>
- <string name="vm_change_pin_error_too_weak" msgid="8581892952627885719">"Ez da batere segurua PIN berria. Pasahitza segurua izan dadin, ez du izan behar zenbaki-segidarik edo errepikatutako zenbakirik."</string>
- <string name="vm_change_pin_error_mismatch" msgid="5364847280026257331">"PIN zaharra ez dator bat."</string>
- <string name="vm_change_pin_error_invalid" msgid="5230002671175580674">"Balio ez duten karaktereak ditu PIN berriak."</string>
- <string name="vm_change_pin_error_system_error" msgid="9116483527909681791">"Ezin da aldatu PINa"</string>
+ <string name="vm_change_pin_error_too_short" msgid="1789139338449945483">"Laburregia da PIN kode berria."</string>
+ <string name="vm_change_pin_error_too_long" msgid="3634907034310018954">"Luzeegia da PIN kode berria."</string>
+ <string name="vm_change_pin_error_too_weak" msgid="8581892952627885719">"Ez da batere segurua PIN kode berria. Pasahitza segurua izan dadin, ez du izan behar zenbaki-segidarik edo errepikatutako zenbakirik."</string>
+ <string name="vm_change_pin_error_mismatch" msgid="5364847280026257331">"PIN kode zaharra ez dator bat."</string>
+ <string name="vm_change_pin_error_invalid" msgid="5230002671175580674">"Balio ez duten karaktereak ditu PIN kode berriak."</string>
+ <string name="vm_change_pin_error_system_error" msgid="9116483527909681791">"Ezin da aldatu PIN kodea"</string>
<string name="vvm_unsupported_message_format" msgid="4206402558577739713">"Ez dira onartzen mota honetako mezuak. Entzuteko, deitu <xliff:g id="NUMBER">%s</xliff:g> zenbakira."</string>
<string name="network_settings_title" msgid="7560807107123171541">"Sare mugikorra"</string>
<string name="label_available" msgid="1316084116670821258">"Sare erabilgarriak"</string>
@@ -449,7 +449,7 @@
<string name="enable_fdn_ok" msgid="5080925177369329827">"Desgaitu markatze finkoko zenbakia"</string>
<string name="disable_fdn_ok" msgid="3745475926874838676">"Gaitu markatze finkoko zenbakiak"</string>
<string name="sum_fdn" msgid="6152246141642323582">"Kudeatu Markatze finkoko zenbakiak"</string>
- <string name="sum_fdn_change_pin" msgid="3510994280557335727">"Aldatu markatze finkoko zenbakien PINa"</string>
+ <string name="sum_fdn_change_pin" msgid="3510994280557335727">"Aldatu markatze finkoko zenbakien PIN kodea"</string>
<string name="sum_fdn_manage_list" msgid="3311397063233992907">"Kudeatu telefono-zenbakien zerrenda"</string>
<string name="voice_privacy" msgid="7346935172372181951">"Ahots-pribatutasuna"</string>
<string name="voice_privacy_summary" msgid="3556460926168473346">"Gaitu pribatutasun modu hobetua"</string>
@@ -475,7 +475,7 @@
<string name="delete_fdn_contact" msgid="7027405651994507077">"Ezabatu markatze finkoko zenbakia"</string>
<string name="deleting_fdn_contact" msgid="6872320570844460428">"Markatze finkoko zenbakia ezabatzen…"</string>
<string name="fdn_contact_deleted" msgid="1680714996763848838">"Markatze finkoko zenbakia ezabatu da."</string>
- <string name="pin2_invalid" msgid="2313954262684494442">"Ez da eguneratu markatze finkoko zenbakia, PIN okerra idatzi duzulako."</string>
+ <string name="pin2_invalid" msgid="2313954262684494442">"Ez da eguneratu markatze finkoko zenbakia, PIN kode okerra idatzi duzulako."</string>
<string name="fdn_invalid_number" msgid="9067189814657840439">"Ez da eguneratu markatze finkoko zenbakia, zenbakiak <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> digitu baino gehiago dituelako."</string>
<string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"Ez da eguneratu markatze finkoko zenbakia. PIN2 kodea ez da zuzena edo telefono-zenbakia baztertu da."</string>
<string name="fdn_failed" msgid="216592346853420250">"Markatze finkoko zenbakiaren eragiketak huts egin du."</string>
@@ -483,23 +483,23 @@
<string name="simContacts_empty" msgid="1135632055473689521">"Ez duzu kontakturik SIM txartelean."</string>
<string name="simContacts_title" msgid="2714029230160136647">"Aukeratu inportatu beharreko kontaktuak"</string>
<string name="simContacts_airplaneMode" msgid="4654884030631503808">"SIM txarteleko kontaktuak inportatzeko, desaktibatu hegaldi modua."</string>
- <string name="enable_pin" msgid="967674051730845376">"Gaitu/Desgaitu SIMaren PINa"</string>
- <string name="change_pin" msgid="3657869530942905790">"Aldatu SIMaren PINa"</string>
- <string name="enter_pin_text" msgid="3182311451978663356">"SIMaren PINa:"</string>
+ <string name="enable_pin" msgid="967674051730845376">"Gaitu/Desgaitu SIM txartelaren PIN kodea"</string>
+ <string name="change_pin" msgid="3657869530942905790">"Aldatu SIM txartelaren PIN kodea"</string>
+ <string name="enter_pin_text" msgid="3182311451978663356">"SIM txartelaren PIN kodea:"</string>
<string name="oldPinLabel" msgid="8618515202411987721">"PIN zaharra"</string>
<string name="newPinLabel" msgid="3585899083055354732">"PIN berria"</string>
- <string name="confirmPinLabel" msgid="7783531218662473778">"Berretsi PIN berria"</string>
- <string name="badPin" msgid="4549286285015892321">"Idatzi duzun PIN zaharra ez da zuzena. Saiatu berriro."</string>
+ <string name="confirmPinLabel" msgid="7783531218662473778">"Berretsi PIN kode berria"</string>
+ <string name="badPin" msgid="4549286285015892321">"Idatzi duzun PIN kode zaharra ez da zuzena. Saiatu berriro."</string>
<string name="mismatchPin" msgid="1467254768290323845">"Idatzi dituzun PIN kodeak ez datoz bat. Saiatu berriro."</string>
- <string name="invalidPin" msgid="7363723429414001979">"Idatzi 4 eta 8 zenbaki arteko PIN bat."</string>
- <string name="disable_sim_pin" msgid="3112303905548613752">"Garbitu SIMaren PINa"</string>
- <string name="enable_sim_pin" msgid="445461050748318980">"Ezarri SIMaren PINa"</string>
- <string name="enable_in_progress" msgid="4135305985717272592">"PINa ezartzen…"</string>
- <string name="enable_pin_ok" msgid="2877428038280804256">"Ezarri da PINa"</string>
- <string name="disable_pin_ok" msgid="888505244389647754">"Garbitu da PINa"</string>
- <string name="pin_failed" msgid="4527347792881939652">"PINa ez da zuzena"</string>
- <string name="pin_changed" msgid="7291153750090452808">"Eguneratu da PINa"</string>
- <string name="puk_requested" msgid="2061337960609806851">"Pasahitza ez da zuzena. PINa blokeatu egin da. PUKa behar da."</string>
+ <string name="invalidPin" msgid="7363723429414001979">"Idatzi 4 eta 8 zenbaki arteko PIN kodea."</string>
+ <string name="disable_sim_pin" msgid="3112303905548613752">"Garbitu SIM txartelaren PIN kodea"</string>
+ <string name="enable_sim_pin" msgid="445461050748318980">"Ezarri SIM txartelaren PIN kodea"</string>
+ <string name="enable_in_progress" msgid="4135305985717272592">"PIN kodea ezartzen…"</string>
+ <string name="enable_pin_ok" msgid="2877428038280804256">"PIN kodea ezarri da"</string>
+ <string name="disable_pin_ok" msgid="888505244389647754">"PIN kodea garbitu da"</string>
+ <string name="pin_failed" msgid="4527347792881939652">"PIN kodea ez da zuzena"</string>
+ <string name="pin_changed" msgid="7291153750090452808">"PIN kodea eguneratu da"</string>
+ <string name="puk_requested" msgid="2061337960609806851">"Pasahitza ez da zuzena. PIN kodea blokeatu egin da. PUK kodea behar da."</string>
<string name="enter_pin2_text" msgid="7266379426804295979">"PIN2 kodea"</string>
<string name="oldPin2Label" msgid="4648543187859997203">"PIN2 kode zaharra"</string>
<string name="newPin2Label" msgid="1840905981784453939">"PIN2 berria"</string>
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Deitzeko, aktibatu sare mugikorra, desaktibatu hegaldi modua edo desaktibatu bateria-aurrezlea."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Deia egiteko, desaktibatu hegaldi modua."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Deia egiteko, desaktibatu hegaldi modua edo konektatu haririk gabeko sare batera."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefonoa beroegi dago"</b>\n\n"Ezin da egin deia. Saiatu berriro telefonoa hozten denean.\n\nHala ere, larrialdi-deiak egin ditzakezu."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Larrialdikoak ez diren deiak egiteko, irten larrialdi-zerbitzuen deiak jasotzeko modutik."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Ez dago sarean erregistratuta."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Sare mugikorra ez dago erabilgarri."</string>
@@ -669,8 +668,8 @@
<string name="description_dialpad_button" msgid="7395114120463883623">"erakutsi markagailua"</string>
<string name="pane_title_emergency_dialpad" msgid="3627372514638694401">"Larrialdietarako markagailua"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="6610414098912832120">"Ikusizko erantzungailua"</string>
- <string name="voicemail_set_pin_dialog_title" msgid="7005128605986960003">"Ezarri PINa"</string>
- <string name="voicemail_change_pin_dialog_title" msgid="4633077715231764435">"Aldatu PINa"</string>
+ <string name="voicemail_set_pin_dialog_title" msgid="7005128605986960003">"Ezarri PIN kodea"</string>
+ <string name="voicemail_change_pin_dialog_title" msgid="4633077715231764435">"Aldatu PIN kodea"</string>
<string name="preference_category_ringtone" msgid="8787281191375434976">"Tonua eta dardara"</string>
<string name="pstn_connection_service_label" msgid="9200102709997537069">"SIM txartel integratuak"</string>
<string name="enable_video_calling_title" msgid="7246600931634161830">"Aktibatu bideo-deiak"</string>
@@ -693,18 +692,18 @@
<string name="callFailed_low_battery" msgid="4056828320214416182">"Bideo-deia amaitu egin da bateria gutxi gelditzen delako."</string>
<string name="callFailed_emergency_call_over_wfc_not_available" msgid="5944309590693432042">"Ez daude erabilgarri wifi bidezko larrialdi-deiak kokapen honetan."</string>
<string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"Ez daude erabilgarri wifi bidezko deiak kokapen honetan."</string>
- <string name="change_pin_title" msgid="3564254326626797321">"Aldatu erantzungailuaren PINa"</string>
+ <string name="change_pin_title" msgid="3564254326626797321">"Aldatu erantzungailuaren PIN kodea"</string>
<string name="change_pin_continue_label" msgid="5177011752453506371">"Egin aurrera"</string>
<string name="change_pin_cancel_label" msgid="2301711566758827936">"Utzi"</string>
<string name="change_pin_ok_label" msgid="6861082678817785330">"Ados"</string>
- <string name="change_pin_enter_old_pin_header" msgid="853151335217594829">"Berretsi PIN zaharra"</string>
- <string name="change_pin_enter_old_pin_hint" msgid="8801292976275169367">"Aurrera egiteko, idatzi erantzungailuaren PINa."</string>
- <string name="change_pin_enter_new_pin_header" msgid="4739465616733486118">"Ezarri PIN berri bat"</string>
+ <string name="change_pin_enter_old_pin_header" msgid="853151335217594829">"Berretsi PIN kode zaharra"</string>
+ <string name="change_pin_enter_old_pin_hint" msgid="8801292976275169367">"Idatzi erantzungailuaren PIN kodea jarraitzeko."</string>
+ <string name="change_pin_enter_new_pin_header" msgid="4739465616733486118">"Ezarri PIN kode berria"</string>
<string name="change_pin_enter_new_pin_hint" msgid="2326038476516364210">"<xliff:g id="MIN">%1$d</xliff:g> eta <xliff:g id="MAX">%2$d</xliff:g> digituren artean izan behar ditu PIN kodeak."</string>
- <string name="change_pin_confirm_pin_header" msgid="2606303906320705726">"Berretsi PINa"</string>
+ <string name="change_pin_confirm_pin_header" msgid="2606303906320705726">"Berretsi PIN kodea"</string>
<string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"PINak ez datoz bat"</string>
- <string name="change_pin_succeeded" msgid="2504705600693014403">"Eguneratu da erantzungailuaren PINa"</string>
- <string name="change_pin_system_error" msgid="7772788809875146873">"Ezin da ezarri PINa"</string>
+ <string name="change_pin_succeeded" msgid="2504705600693014403">"Eguneratu da erantzungailuaren PIN kodea"</string>
+ <string name="change_pin_system_error" msgid="7772788809875146873">"Ezin da ezarri PIN kodea"</string>
<string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"Desaktibatuta daude ibiltaritzako datuak"</string>
<string name="mobile_data_status_roaming_turned_on_subtext" msgid="5615757897768777865">"Aktibatuta daude ibiltaritzako datuak"</string>
<string name="mobile_data_status_roaming_without_plan_subtext" msgid="6536671968072284677">"Ibiltaritza moduan zaude une honetan. Datu-plan bat behar duzu."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 eb9086e..7cb550c 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"تلفن خیلی داغ است"</b>\n\n"نمیتوان این تماس را بهپایان رساند. وقتی تلفن خنک شد، دوباره امتحان کنید.\n\nهمچنان میتوانید تماسهای اضطراری برقرار کنید."</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>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"پیکربندی برش شبکه:"</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 34d40a8..6506746 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Ota mobiiliverkko käyttöön tai poista lentokonetila ja virransäästötila käytöstä, jos haluat soittaa puhelun."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Poista lentokonetila käytöstä, jos haluat soittaa puhelun."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Poista lentokonetila käytöstä tai yhdistä langattomaan verkkoon, jos haluat soittaa puhelun."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Liian kuuma puhelin"</b>\n\n"Puhelua ei voida soittaa. Yritä uudelleen, kun puhelin on jäähtynyt.\n\nVoit silti soittaa hätäpuheluita."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Poistu hätäpuhelujen takaisinsoittotilasta soittaaksesi muun kuin hätäpuhelun."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Ei rekisteröity verkkoon."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobiiliverkko ei käytettävissä."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 3236666..76d9bb6 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Activez le réseau cellulaire ou désactivez le mode Avion ou le mode Économiseur de pile pour faire un appel."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Désactivez le mode Avion pour faire un appel."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Désactivez le mode Avion ou connectez-vous à un réseau Wi-Fi pour faire un appel."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Le téléphone est trop chaud"</b>\n\n"Impossible de passer cet appel. Réessayez plus tard quand le téléphone aura refroidi.\n\nVous pouvez toujours effectuer des appels d\'urgence."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Quittez le mode de rappel d\'urgence pour effectuer un appel non urgent."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Non enregistré sur le réseau"</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Réseau pour mobile non disponible"</string>
@@ -578,7 +577,7 @@
<string name="onscreenHoldText" msgid="4025348842151665191">"Attente"</string>
<string name="onscreenEndCallText" msgid="6138725377654842757">"Terminé"</string>
<string name="onscreenShowDialpadText" msgid="658465753816164079">"Clavier numérique"</string>
- <string name="onscreenMuteText" msgid="5470306116733843621">"Couper le son"</string>
+ <string name="onscreenMuteText" msgid="5470306116733843621">"Ignorer"</string>
<string name="onscreenAddCallText" msgid="9075675082903611677">"Autre appel"</string>
<string name="onscreenMergeCallsText" msgid="3692389519611225407">"Fusionner les appels"</string>
<string name="onscreenSwapCallsText" msgid="2682542150803377991">"Permuter"</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 957e361..e92aac6 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Pour passer un appel, activez le réseau mobile, et désactivez les modes Avion et Économiseur de batterie."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Désactivez le mode Avion pour passer un appel."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Désactivez le mode Avion ou connectez-vous à un réseau sans fil pour passer un appel."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Téléphone trop chaud"</b>\n\n"Impossible de passer cet appel. Réessayez lorsque votre téléphone aura refroidi.\n\nVous pouvez toujours passer des appels d\'urgence."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Veuillez quitter le mode de rappel d\'urgence pour passer un appel standard."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Non enregistré sur le réseau."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Réseau mobile non disponible"</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 6fdca2d..145ce03 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Para facer unha chamada, activa a rede de telefonía móbil, desactiva o modo avión ou desactiva o modo Aforro de batería."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Desactiva o modo avión para facer unha chamada."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Desactiva o modo avión ou conéctate a unha rede sen fíos para facer unha chamada."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"A temperatura do teléfono é moi alta"</b>\n\n"Non se pode completar esta chamada. Téntao de novo cando arrefríe o teléfono.\n\nAínda así, podes facer chamadas de emerxencia."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Sae do modo de devolución de chamada de emerxencia para facer unha chamada que non sexa de emerxencia."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Sen rexistro na rede"</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"A rede móbil non está dispoñible."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 454dc44..9ae6f2f 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -47,7 +47,7 @@
<string name="no_vm_number" msgid="6623853880546176930">"વૉઇસમેઇલ નંબર ખૂટે છે"</string>
<string name="no_vm_number_msg" msgid="5165161462411372504">"SIM કાર્ડ પર કોઈ વૉઇસમેઇલ નંબર સંગ્રહિત નથી."</string>
<string name="add_vm_number_str" msgid="7368168964435881637">"નંબર ઉમેરો"</string>
- <string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"વૉઇસમેઇલ સેટિંગ ફક્ત પ્રાથમિક વપરાશકર્તા દ્વારા જ ફેરફાર કરી શકાય છે."</string>
+ <string name="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>
@@ -56,13 +56,13 @@
<string name="requesting_unlock" msgid="930512210309437741">"નેટવર્ક અનલૉકની વિનંતી કરી રહ્યાં છે…"</string>
<string name="unlock_failed" msgid="7103543844840661366">"નેટવર્ક અનલૉક વિનંતી અસફળ."</string>
<string name="unlock_success" msgid="32681089371067565">"નેટવર્ક અનલૉક સફળ."</string>
- <string name="mobile_network_settings_not_available" msgid="8678168497517090039">"મોબાઇલ નેટવર્ક સેટિંગ આ વપરાશકર્તા માટે ઉપલબ્ધ નથી"</string>
- <string name="labelGSMMore" msgid="7354182269461281543">"GSM કૉલ સેટિંગ"</string>
- <string name="labelGsmMore_with_label" msgid="3206015314393246224">"GSM કૉલ સેટિંગ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="labelCDMAMore" msgid="7937441382611224632">"CDMA કૉલ સેટિંગ"</string>
- <string name="labelCdmaMore_with_label" msgid="7759692829160238152">"CDMA કૉલ સેટિંગ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="mobile_network_settings_not_available" msgid="8678168497517090039">"મોબાઇલ નેટવર્ક સેટિંગ્સ આ વપરાશકર્તા માટે ઉપલબ્ધ નથી"</string>
+ <string name="labelGSMMore" msgid="7354182269461281543">"GSM કૉલ સેટિંગ્સ"</string>
+ <string name="labelGsmMore_with_label" msgid="3206015314393246224">"GSM કૉલ સેટિંગ્સ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="labelCDMAMore" msgid="7937441382611224632">"CDMA કૉલ સેટિંગ્સ"</string>
+ <string name="labelCdmaMore_with_label" msgid="7759692829160238152">"CDMA કૉલ સેટિંગ્સ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="apn_settings" msgid="1978652203074756623">"ઍક્સેસ પોઇન્ટનું નામ"</string>
- <string name="settings_label" msgid="9101778088412567956">"નેટવર્ક સેટિંગ"</string>
+ <string name="settings_label" msgid="9101778088412567956">"નેટવર્ક સેટિંગ્સ"</string>
<string name="phone_accounts" msgid="1216879437523774604">"કૉલ કરવા માટેના એકાઉન્ટ"</string>
<string name="phone_accounts_make_calls_with" msgid="16747814788918145">"આના વડે કૉલ કરો"</string>
<string name="phone_accounts_make_sip_calls_with" msgid="4691221006731847255">"આના વડે SIP કૉલ્સ કરો"</string>
@@ -72,7 +72,7 @@
<string name="phone_accounts_choose_accounts" msgid="4748805293314824974">"એકાઉન્ટ્સ પસંદ કરો"</string>
<string name="phone_accounts_selection_header" msgid="2945830843104108440">"ફોન એકાઉન્ટ્સ"</string>
<string name="phone_accounts_add_sip_account" msgid="1437634802033309305">"SIP એકાઉન્ટ ઉમેરો"</string>
- <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"એકાઉન્ટ સેટિંગ ગોઠવો"</string>
+ <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"એકાઉન્ટ સેટિંગ્સ ગોઠવો"</string>
<string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"બધા કૉલિંગ એકાઉન્ટ્સ"</string>
<string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"કયા એકાઉન્ટ્સ કૉલ કરી શકે તે પસંદ કરો"</string>
<string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi કૉલિંગ"</string>
@@ -88,15 +88,15 @@
<string name="call_settings" msgid="3677282690157603818">"કૉલ સેટિંગ"</string>
<string name="additional_gsm_call_settings" msgid="1561980168685658846">"વધારાના સેટિંગ"</string>
<string name="additional_gsm_call_settings_with_label" msgid="7973920539979524908">"વધારાના સેટિંગ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="sum_gsm_call_settings" msgid="7964692601608878138">"ફક્ત વધારાના GSM કૉલ સેટિંગ"</string>
- <string name="additional_cdma_call_settings" msgid="2178016561980611304">"વધારાના CDMA કૉલ સેટિંગ"</string>
- <string name="sum_cdma_call_settings" msgid="3185825305136993636">"ફક્ત વધારાના CDMA કૉલ સેટિંગ"</string>
- <string name="labelNwService" msgid="6015891883487125120">"નેટવર્ક સેવા સેટિંગ"</string>
+ <string name="sum_gsm_call_settings" msgid="7964692601608878138">"ફક્ત વધારાની GSM કૉલ સેટિંગ્સ"</string>
+ <string name="additional_cdma_call_settings" msgid="2178016561980611304">"વધારાની CDMA કૉલ સેટિંગ્સ"</string>
+ <string name="sum_cdma_call_settings" msgid="3185825305136993636">"ફક્ત વધારાની CDMA કૉલ સેટિંગ્સ"</string>
+ <string name="labelNwService" msgid="6015891883487125120">"નેટવર્ક સેવા સેટિંગ્સ"</string>
<string name="labelCallerId" msgid="2090540744550903172">"કૉલર ID"</string>
- <string name="sum_loading_settings" msgid="434063780286688775">"સેટિંગ લોડ કરી રહ્યાં છીએ..."</string>
+ <string name="sum_loading_settings" msgid="434063780286688775">"સેટિંગ્સ લોડ કરી રહ્યાં છે..."</string>
<string name="sum_hide_caller_id" msgid="131100328602371933">"આઉટગોઇંગ કૉલ્સમાં નંબર છુપાવેલ છે"</string>
<string name="sum_show_caller_id" msgid="3571854755324664591">"આઉટગોઇંગ કૉલ્સમાં નંબર પ્રદર્શિત થાય છે"</string>
- <string name="sum_default_caller_id" msgid="1767070797135682959">"આઉટગોઇંગ કૉલમાં મારો નંબર પ્રદર્શિત કરવા માટે ડિફૉલ્ટ ઑપરેટર સેટિંગનો ઉપયોગ કરો"</string>
+ <string name="sum_default_caller_id" msgid="1767070797135682959">"આઉટગોઇંગ કૉલ્સમાં મારો નંબર પ્રદર્શિત કરવા માટે ડિફોલ્ટ ઓપરેટર સેટિંગ્સનો ઉપયોગ કરો"</string>
<string name="labelCW" msgid="8449327023861428622">"કૉલ પ્રતીક્ષા"</string>
<string name="sum_cw_enabled" msgid="3977308526187139996">"કૉલ દરમ્યાન, મને ઇનકમિંગ કૉલની સૂચના આપો"</string>
<string name="sum_cw_disabled" msgid="3658094589461768637">"કૉલ દરમ્યાન, મને ઇનકમિંગ કૉલની સૂચના આપો"</string>
@@ -113,17 +113,17 @@
<string name="messageCFB" msgid="1958017270393563388">"જ્યારે વ્યસ્ત હોય તે સમય માટેનો નંબર"</string>
<string name="sum_cfb_enabled" msgid="332037613072049492">"<xliff:g id="PHONENUMBER">{0}</xliff:g> પર ફોરવર્ડ કરી રહ્યાં છે"</string>
<string name="sum_cfb_disabled" msgid="3589913334164866035">"બંધ"</string>
- <string name="disable_cfb_forbidden" msgid="4831494744351633961">"જ્યારે તમારો ફોન વ્યસ્ત હોય ત્યારે તમારા ઑપરેટર કૉલ ફૉરવર્ડિંગ બંધ કરવાને સપોર્ટ કરતા નથી."</string>
+ <string name="disable_cfb_forbidden" msgid="4831494744351633961">"જ્યારે તમારો ફોન વ્યસ્ત હોય ત્યારે તમારા ઓપરેટર કૉલ ફોરવર્ડિંગને અક્ષમ કરવાને સમર્થન આપતા નથી."</string>
<string name="labelCFNRy" msgid="3403533792248457946">"જ્યારે જવાબ આપેલ ન હોય ત્યારે"</string>
<string name="messageCFNRy" msgid="7644434155765359009">"જ્યારે જવાબ ન આપેલ હોય તે સમય માટેનો નંબર"</string>
<string name="sum_cfnry_enabled" msgid="3000500837493854799">"<xliff:g id="PHONENUMBER">{0}</xliff:g> પર ફોરવર્ડ કરી રહ્યાં છે"</string>
<string name="sum_cfnry_disabled" msgid="1990563512406017880">"બંધ"</string>
- <string name="disable_cfnry_forbidden" msgid="3174731413216550689">"જ્યારે તમારો ફોન જવાબ નહીં આપે ત્યારે તમારા ઑપરેટર કૉલ ફૉરવર્ડિંગ બંધ કરવાને સપોર્ટ કરતા નથી."</string>
+ <string name="disable_cfnry_forbidden" msgid="3174731413216550689">"જ્યારે તમારો ફોન જવાબ નહીં આપે ત્યારે તમારા ઓપરેટર કૉલ ફોરવર્ડિંગને અક્ષમ કરવાને સમર્થન આપતા નથી."</string>
<string name="labelCFNRc" msgid="4163399350778066013">"જ્યારે પહોંચયોગ્ય ન હોય ત્યારે"</string>
<string name="messageCFNRc" msgid="6980340731313007250">"જ્યારે પહોંચયોગ્ય ન હોય તે સમય માટેનો નંબર"</string>
<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="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>
@@ -132,12 +132,12 @@
<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_admin_user_only" msgid="7238947387649986286">"કૉલ સેટિંગ્સને ફક્ત એડમિન વપરાશકર્તા દ્વારા જ બદલી શકાય છે."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"સેટિંગ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="error_updating_title" msgid="2024290892676808965">"કૉલ સેટિંગની ભૂલ"</string>
<string name="reading_settings" msgid="1605904432450871183">"સેટિંગ વાંચી રહ્યાં છે…"</string>
<string name="updating_settings" msgid="3650396734816028808">"સેટિંગ અપડેટ કરી રહ્યાં છીએ..."</string>
- <string name="reverting_settings" msgid="7378668837291012205">"સેટિંગ પાછું ફેરવી રહ્યાં છીએ…"</string>
+ <string name="reverting_settings" msgid="7378668837291012205">"સેટિંગ્સ પાછી ફરાવી રહ્યાં છે…"</string>
<string name="response_error" msgid="3904481964024543330">"નેટવર્ક તરફથી અનપેક્ષિત પ્રતિસાદ."</string>
<string name="exception_error" msgid="330994460090467">"નેટવર્ક અથવા SIM કાર્ડ ભૂલ."</string>
<string name="stk_cc_ss_to_dial_error" msgid="5147693491690618704">"SS વિનંતીને નિયમિત કૉલમાં બદલવામાં આવી છે"</string>
@@ -145,7 +145,7 @@
<string name="stk_cc_ss_to_ss_error" msgid="8297155544652134278">"નવી SS વિનંતીમાં બદલવામાં આવી છે"</string>
<string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"SS વિનંતીને વીડિઓ કૉલમાં બદલવામાં આવી છે"</string>
<string name="fdn_check_failure" msgid="1833769746374185247">"તમારી ફોન એપ્લિકેશનની ફિક્સ્ડ ડાયલિંગ નંબર્સ સેટિંગ ચાલુ છે. પરિણામ રૂપે, કેટલીક કૉલ સંબંધિત સુવિધાઓ કાર્ય કરતી નથી."</string>
- <string name="radio_off_error" msgid="8321564164914232181">"આ સેટિંગ જોતા પહેલાં રેડિયો ચાલુ કરો."</string>
+ <string name="radio_off_error" msgid="8321564164914232181">"આ સેટિંગ્સ જોતા પહેલાં રેડિઓ ચાલુ કરો."</string>
<string name="close_dialog" msgid="1074977476136119408">"ઓકે"</string>
<string name="enable" msgid="2636552299455477603">"ચાલુ કરો"</string>
<string name="disable" msgid="1122698860799462116">"બંધ કરો"</string>
@@ -158,7 +158,7 @@
<string name="vm_changed" msgid="4739599044379692505">"વૉઇસમેઇલ નંબર બદલ્યો."</string>
<string name="vm_change_failed" msgid="7877733929455763566">"વૉઇસમેઇલ નંબર બદલી શકાયો નથી.\nજો આ સમસ્યા ચાલુ રહે છે, તો તમારા કેરિઅરનો સંપર્ક કરો."</string>
<string name="fw_change_failed" msgid="9179241823460192148">"ફોરવર્ડિંગ નંબર બદલી શકાયો નથી.\nજો આ સમસ્યા ચાલુ રહે છે, તો તમારા કેરિઅરનો સંપર્ક કરો."</string>
- <string name="fw_get_in_vm_failed" msgid="2432678237218183844">"વર્તમાન ફૉરવર્ડિંગ નંબર સેટિંગને પાછ મેળવી અને સાચવી શકાયા નથી.\nકોઈપણ રીતે નવા પ્રદાતા પર સ્વિચ કરીએ?"</string>
+ <string name="fw_get_in_vm_failed" msgid="2432678237218183844">"વર્તમાન ફોરવર્ડિંગ નંબર સેટિંગ્સને પુનઃપ્રાપ્ત કરી અને સાચવી શકાઇ નથી.\nકોઈપણ રીતે નવા પ્રદાતા પર સ્વિચ કરીએ?"</string>
<string name="no_change" msgid="3737264882821031892">"કોઇ બદલાવો થયાં ન હતાં."</string>
<string name="sum_voicemail_choose_provider" msgid="6750824719081403773">"વૉઇસમેઇલ સેવા પસંદ કરો"</string>
<string name="voicemail_default" msgid="6427575113775462077">"તમારો કેરિઅર"</string>
@@ -328,7 +328,7 @@
<string name="enable_disable_cell_bc_sms" msgid="4759958924031721350">"સેલ બ્રોડકાસ્ટ SMS"</string>
<string name="cell_bc_sms_enable" msgid="2019708772024632073">"સેલ બ્રોડકાસ્ટ SMS સક્ષમ કરેલ છે"</string>
<string name="cell_bc_sms_disable" msgid="1214238639910875347">"સેલ બ્રોડકાસ્ટ SMS અક્ષમ કરેલ છે"</string>
- <string name="cb_sms_settings" msgid="6858093721831312036">"સેલ બ્રોડકાસ્ટ SMS સેટિંગ"</string>
+ <string name="cb_sms_settings" msgid="6858093721831312036">"સેલ બ્રોડકાસ્ટ SMS સેટિંગ્સ"</string>
<string name="enable_disable_emergency_broadcast" msgid="6325655044472196496">"કટોકટીનું બ્રોડકાસ્ટ"</string>
<string name="emergency_broadcast_enable" msgid="5759610647771102442">"કટોકટીનું બ્રોડકાસ્ટ સક્ષમ કરેલ છે"</string>
<string name="emergency_broadcast_disable" msgid="2844904734469323266">"કટોકટીનું બ્રોડકાસ્ટ અક્ષમ કરેલ છે"</string>
@@ -420,7 +420,7 @@
<string name="cdma_system_select_dialogtitle" msgid="5524639510676501802">"સિસ્ટમ પસંદગી"</string>
<string-array name="cdma_system_select_choices">
<item msgid="462340042928284921">"ફક્ત હોમ"</item>
- <item msgid="6058010046783562674">"ઑટોમૅટિક"</item>
+ <item msgid="6058010046783562674">"સ્વચલિત"</item>
</string-array>
<string name="cdma_subscription_title" msgid="3449527179325589434">"CDMA સબ્સ્ક્રિપ્શન"</string>
<string name="cdma_subscription_summary" msgid="5681152534466169001">"RUIM/SIM અને NV વચ્ચે બદલો"</string>
@@ -435,7 +435,7 @@
</string-array>
<string name="cdma_activate_device" msgid="5914720276140097632">"ઉપકરણને સક્રિય કરો"</string>
<string name="cdma_lte_data_service" msgid="359786441782404562">"ડેટા સેવા સેટ કરો"</string>
- <string name="carrier_settings_title" msgid="6292869148169850220">"કૅરિઅર સેટિંગ"</string>
+ <string name="carrier_settings_title" msgid="6292869148169850220">"કેરિઅર સેટિંગ્સ"</string>
<string name="fdn" msgid="2545904344666098749">"ફિક્સ્ડ ડાયલિંગ નંબર્સ"</string>
<string name="fdn_with_label" msgid="6412087553365709494">"ફિક્સ્ડ ડાયલિંગ નંબર્સ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="manage_fdn_list" msgid="3341716430375195441">"FDN સૂચિ"</string>
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"ફોન ખૂબ ગરમ છે"</b>\n\n"આ કૉલ પૂર્ણ કરી શકતા નથી. તમારો ફોન ઠંડો પડે ત્યાર પછી ફરીથી પ્રયાસ કરો.\n\nતમે હજી પણ ઇમર્જન્સી કૉલ કરી શકો છો."</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>
@@ -659,7 +658,7 @@
<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="other_settings" msgid="8895088007393598447">"અન્ય કૉલ સેટિંગ"</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="goPrivate" msgid="4645108311382209551">"ખાનગી જાઓ"</string>
@@ -674,8 +673,8 @@
<string name="preference_category_ringtone" msgid="8787281191375434976">"રિંગટોન અને વાઇબ્રેટ"</string>
<string name="pstn_connection_service_label" msgid="9200102709997537069">"બિલ્ટ-ઇન SIM કાર્ડ્સ"</string>
<string name="enable_video_calling_title" msgid="7246600931634161830">"વિડિઓ કૉલિંગ ચાલુ કરો"</string>
- <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"વીડિયો કૉલિંગ ચાલુ કરવા માટે, તમારે નેટવર્ક સેટિંગમાં વધારેલ 4G LTE મોડને ચાલુ કરવાની જરૂર છે."</string>
- <string name="enable_video_calling_dialog_settings" msgid="8697890611305307110">"નેટવર્ક સેટિંગ"</string>
+ <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"વિડિઓ કૉલિંગ ચાલુ કરવા માટે, તમારે નેટવર્ક સેટિંગ્સમાં વધારેલ 4G LTE મોડને સક્ષમ કરવાની જરૂર છે."</string>
+ <string name="enable_video_calling_dialog_settings" msgid="8697890611305307110">"નેટવર્ક સેટિંગ્સ"</string>
<string name="enable_video_calling_dialog_close" msgid="4298929725917045270">"બંધ કરો"</string>
<string name="sim_label_emergency_calls" msgid="9078241989421522310">"કટોકટીના કૉલ્સ"</string>
<string name="sim_description_emergency_calls" msgid="5146872803938897296">"ફક્ત કટોકટીની કૉલિંગ"</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 24399f2..0346a6d 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -186,9 +186,9 @@
<string name="manual_mode_disallowed_summary" msgid="3970048592179890197">"%1$s से कनेक्ट किए जाने पर उपलब्ध नहीं है"</string>
<string name="network_select_title" msgid="4117305053881611988">"नेटवर्क"</string>
<string name="register_automatically" msgid="3907580547590554834">"स्वचालित पंजीकरण..."</string>
- <string name="preferred_network_mode_title" msgid="5253395265169539830">"पसंदीदा नेटवर्क टाइप"</string>
+ <string name="preferred_network_mode_title" msgid="5253395265169539830">"पसंदीदा नेटवर्क प्रकार"</string>
<string name="preferred_network_mode_summary" msgid="3787989000044330064">"नेटवर्क संचालन मोड बदलें"</string>
- <string name="preferred_network_mode_dialogtitle" msgid="2781447433514459696">"पसंदीदा नेटवर्क टाइप"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="2781447433514459696">"पसंदीदा नेटवर्क प्रकार"</string>
<string name="forbidden_network" msgid="5081729819561333023">"(मना है)"</string>
<string name="choose_network_title" msgid="5335832663422653082">"नेटवर्क चुनें"</string>
<string name="network_disconnected" msgid="8844141106841160825">"डिसकनेक्ट है"</string>
@@ -282,8 +282,8 @@
<string name="data_enable_summary" msgid="696860063456536557">"डेटा उपयोग करने दें"</string>
<string name="dialog_alert_title" msgid="5260471806940268478">"ध्यान दें"</string>
<string name="roaming" msgid="1576180772877858949">"रोमिंग"</string>
- <string name="roaming_enable" msgid="6853685214521494819">"रोमिंग में डेटा चालू करें"</string>
- <string name="roaming_disable" msgid="8856224638624592681">"रोमिंग में डेटा चालू करें"</string>
+ <string name="roaming_enable" msgid="6853685214521494819">"रोमिंग के समय डेटा सेवाएं कनेक्ट करें"</string>
+ <string name="roaming_disable" msgid="8856224638624592681">"रोमिंग के समय डेटा सेवाएं कनेक्ट करें"</string>
<string name="roaming_reenable_message" msgid="1951802463885727915">"डेटा रोमिंग बंद है. चालू करने के लिए टैप करें."</string>
<string name="roaming_enabled_message" msgid="9022249120750897">"रोमिंग शुल्क लागू हो सकते हैं. बदलाव करने के लिए टैप करें."</string>
<string name="roaming_notification_title" msgid="3590348480688047320">"मोबाइल डेटा कनेक्शन उपलब्ध नहीं है"</string>
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"आपका फ़ोन बहुत गर्म हो गया है"</b>\n\n"यह कॉल नहीं लगाया जा सकता. फ़ोन का तापमान कम होने के बाद, फिर से कोशिश करें.\n\nहालांकि, आप अब भी आपातकालीन कॉल कर सकते हैं."</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>
@@ -556,7 +555,7 @@
<string name="incall_error_supp_service_hold" msgid="8535056414643540997">"कॉल होल्ड नहीं किए जा सकते."</string>
<string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"कॉल करने के लिए किसी वायरलेस नेटवर्क से कनेक्ट करें."</string>
<string name="incall_error_promote_wfc" msgid="9164896813931363415">"कॉल करने के लिए वाई-फ़ाई कॉलिंग सक्षम करें."</string>
- <string name="emergency_information_hint" msgid="9208897544917793012">"आपातकाल में दिखने वाली जानकारी"</string>
+ <string name="emergency_information_hint" msgid="9208897544917793012">"आपातकालीन जानकारी"</string>
<string name="emergency_information_owner_hint" msgid="6256909888049185316">"मालिक"</string>
<string name="emergency_information_confirm_hint" msgid="5109017615894918914">"जानकारी देखने के लिए फिर से टैप करें"</string>
<string name="emergency_enable_radio_dialog_title" msgid="2667568200755388829">"आपातकालीन कॉल"</string>
@@ -678,7 +677,7 @@
<string name="enable_video_calling_dialog_settings" msgid="8697890611305307110">"नेटवर्क सेटिंग"</string>
<string name="enable_video_calling_dialog_close" msgid="4298929725917045270">"बंद करें"</string>
<string name="sim_label_emergency_calls" msgid="9078241989421522310">"आपातकालीन कॉल"</string>
- <string name="sim_description_emergency_calls" msgid="5146872803938897296">"सिर्फ़ आपातकालीन कॉल"</string>
+ <string name="sim_description_emergency_calls" msgid="5146872803938897296">"केवल आपातकालीन कॉल"</string>
<string name="sim_description_default" msgid="7474671114363724971">"सिम कार्ड, स्लॉट: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"सुलभता"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"इससे वाई-फ़ाई कॉल"</string>
@@ -890,14 +889,14 @@
<string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"चालू करने के बाद से पीपीपी रीसेट की संख्या:"</string>
<string name="radio_info_current_network_label" msgid="3052098695239642450">"मौजूदा नेटवर्क:"</string>
<string name="radio_info_ppp_received_label" msgid="5753592451640644889">"मिलने वाला डेटा :"</string>
- <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"वॉइस सेवा:"</string>
+ <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"Voice की सेवा:"</string>
<string name="radio_info_signal_strength_label" msgid="5545444702102543260">"सिग्नल कितना अच्छा है:"</string>
- <string name="radio_info_call_status_label" msgid="7693575431923095487">"वॉइस कॉल की स्थिति:"</string>
+ <string name="radio_info_call_status_label" msgid="7693575431923095487">"Voice कॉल की स्थिति:"</string>
<string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"भेजा गया डेटा :"</string>
<string name="radio_info_message_waiting_label" msgid="1886549432566952078">"मैसेज वेटिंग:"</string>
<string name="radio_info_phone_number_label" msgid="2533852539562512203">"फ़ोन नंबर:"</string>
<string name="radio_info_band_mode_label" msgid="23480556225515290">"रेडियो का बैंड चुनें"</string>
- <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"वॉइस नेटवर्क टाइप:"</string>
+ <string name="radio_info_voice_network_type_label" msgid="2395347336419593265">"Voice के नेटवर्क प्रकार:"</string>
<string name="radio_info_data_network_type_label" msgid="8886597029237501929">"डेटा नेटवर्क प्रकार:"</string>
<string name="phone_index_label" msgid="6222406512768964268">"फ़ोन इंडेक्स चुनें"</string>
<string name="radio_info_set_perferred_label" msgid="7408131389363136210">"पसंदीदा नेटवर्क प्रकार सेट करें:"</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 b9a8d0b..10d0bff 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Uključite mobilnu mrežu, isključite način rada u zrakoplovu ili štednju baterije da biste uputili poziv."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Isključite način rada u zrakoplovu da biste uputili poziv."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Isključite način rada u zrakoplovu ili se povežite s bežičnom mrežom da biste uputili poziv."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefon je prevruć"</b>\n\n"Poziv se ne može dovršiti. Pokušajte ponovno kad se telefon ohladi.\n\nI dalje možete upućivati hitne pozive."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Isključite način hitnih poziva da biste uputili poziv koji nije hitan."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Nije registrirano na mreži."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilna mreža nije dostupna."</string>
@@ -918,6 +917,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 80d1865..92d1d08 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"A hívás indításához kapcsolja be a hálózatot, és kapcsolja ki a repülős vagy akkumulátorkímélő üzemmódot."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Repülős üzemmód kikapcsolása hívás indításához."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Hívás indításához kapcsolja ki a repülős üzemmódot, illetve csatlakozzon egy vezeték nélküli hálózathoz."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Túlmelegedett a telefon"</b>\n\n"Ezt a hívást nem lehet végrehajtani. Próbálkozzon újra, ha már lehűlt a telefon.\n\nSegélyhívást így is indíthat."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Lépjen ki a Segélykérő visszahívása módból nem vészjellegű hívás kezdeményezéséhez."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Nincs regisztrálva a hálózaton."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"A mobilhálózat nem érhető el."</string>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Network slicing config:"</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 7ccb20d..6d5e980 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"Հեռախոսը գերտաքացել է"</b>\n\n"Չհաջողվեց կատարել զանգը։ Նորից փորձեք, երբ հեռախոսը հովանա։\n\nԴուք նախկինի պես կկարողանաք շտապ կանչեր կատարել։"</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>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Ցանցի հատվածավորման կազմաձև՝"</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 eb1106b..c1a13ce 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -183,7 +183,7 @@
<string name="registration_done" msgid="5337407023566953292">"Terdaftar pada jaringan."</string>
<string name="already_auto" msgid="8607068290733079336">"Sudah ada di pemilihan otomatis."</string>
<string name="select_automatically" msgid="779750291257872651">"Pilih jaringan secara otomatis"</string>
- <string name="manual_mode_disallowed_summary" msgid="3970048592179890197">"Tidak tersedia saat terhubung ke %1$s"</string>
+ <string name="manual_mode_disallowed_summary" msgid="3970048592179890197">"Tidak tersedia saat tersambung ke %1$s"</string>
<string name="network_select_title" msgid="4117305053881611988">"Jaringan"</string>
<string name="register_automatically" msgid="3907580547590554834">"Pendaftaran otomatis..."</string>
<string name="preferred_network_mode_title" msgid="5253395265169539830">"Jenis jaringan yang dipilih"</string>
@@ -194,7 +194,7 @@
<string name="network_disconnected" msgid="8844141106841160825">"Terputus"</string>
<string name="network_connected" msgid="2760235679963580224">"Terhubung"</string>
<string name="network_connecting" msgid="160901383582774987">"Menghubungkan..."</string>
- <string name="network_could_not_connect" msgid="6547460848093727998">"Tidak dapat terhubung"</string>
+ <string name="network_could_not_connect" msgid="6547460848093727998">"Tidak dapat tersambung"</string>
<string-array name="preferred_network_mode_choices">
<item msgid="4531933377509551889">"GSM/WCDMA lebih disukai"</item>
<item msgid="5120532750027435355">"GSM saja"</item>
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Aktifkan jaringan seluler, lalu nonaktifkan mode pesawat atau penghemat baterai untuk melakukan panggilan."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Nonaktifkan mode pesawat untuk melakukan panggilan"</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Nonaktifkan mode pesawat atau sambungkan ke jaringan nirkabel untuk melakukan panggilan"</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Ponsel terlalu panas"</b>\n\n"Tidak dapat menyelesaikan panggilan ini. Coba lagi saat ponsel mendingin.\n\nAnda masih dapat melakukan panggilan darurat."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Keluar dari mode telepon balik darurat untuk melakukan panggilan non-darurat."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Tidak terdaftar pada jaringan."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Jaringan seluler tidak tersedia."</string>
@@ -687,7 +686,7 @@
<string name="message_decode_error" msgid="1061856591500290887">"Terjadi kesalahan saat mendekode pesan."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Kartu SIM telah mengaktifkan layanan dan memperbarui kemampuan roaming ponsel."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Ada terlalu banyak panggilan aktif. Akhiri atau gabungkan panggilan yang ada sebelum melakukan panggilan baru."</string>
- <string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"Tidak dapat terhubung, masukkan kartu SIM yang valid."</string>
+ <string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"Tidak dapat tersambung, masukkan kartu SIM yang valid."</string>
<string name="callFailed_wifi_lost" msgid="1788036730589163141">"Sambungan Wi-Fi terputus. Panggilan diakhiri."</string>
<string name="dialFailed_low_battery" msgid="6857904237423407056">"Panggilan video tidak bisa dilakukan karena daya baterai lemah."</string>
<string name="callFailed_low_battery" msgid="4056828320214416182">"Panggilan video berakhir karena daya baterai lemah."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 b44afa2..68dd17e 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Kveiktu á farsímakerfie eða slökktu á flugstillingu eða rafhlöðusparnaði til að hringja."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Slökktu á flugstillingu til að hringja."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Slökktu á flugstillingu eða tengstu þráðlausu neti til að hringja."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Síminn er of heitur"</b>\n\n"Ekki er hægt að ljúka þessu símtali. Reyndu aftur þegar síminn hefur kólnað.\n\nÞú getur ennþá hringt neyðarsímtöl."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Hætta í stillingu fyrir svarhringingu neyðarsímtala til að hringja símtal sem ekki er neyðarsímtal."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Ekki skráð á símkerfi."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Farsímakerfi ekki tiltækt."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 f7ff030..a4b3fe1 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -297,7 +297,7 @@
<string name="sip_accounts_removed_notification_title" msgid="3528076957535736095">"Account SIP deprecati trovati e rimossi"</string>
<string name="sip_accounts_removed_notification_message" msgid="1916856744869791592">"Le chiamate SIP non sono più supportate dalla piattaforma Android.\nI tuoi account SIP esistenti (<xliff:g id="REMOVED_SIP_ACCOUNTS">%s</xliff:g>) sono stati rimossi.\nConferma l\'impostazione del tuo account predefinito per le chiamate."</string>
<string name="sip_accounts_removed_notification_action" msgid="3772778402370555562">"Vai alle impostazioni"</string>
- <string name="data_usage_title" msgid="8438592133893837464">"Utilizzo dati delle app"</string>
+ <string name="data_usage_title" msgid="8438592133893837464">"Utilizzo dei dati delle app"</string>
<string name="data_usage_template" msgid="6287906680674061783">"Dati mobili usati: <xliff:g id="ID_1">%1$s</xliff:g> nel periodo <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="advanced_options_title" msgid="9208195294513520934">"Avanzate"</string>
<string name="carrier_settings_euicc" msgid="1190237227261337749">"Operatore"</string>
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Attiva la rete mobile e disattiva la modalità aereo o il risparmio energetico per effettuare una chiamata."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Disattiva la modalità aereo per effettuare una chiamata."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Disattiva la modalità aereo o connettiti a una rete wireless per effettuare una chiamata."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefono surriscaldato"</b>\n\n"Impossibile completare la chiamata. Riprova quando il telefono si sarà raffreddato.\n\nPuoi comunque effettuare chiamate di emergenza."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Per effettuare chiamate non di emergenza, esci dalla modalità di richiamata di emergenza."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Non registrato sulla rete."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Rete cellulare non disponibile."</string>
@@ -638,12 +637,12 @@
<string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Connessione dati disabilitata"</string>
<string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Nessuna connessione dati fino alle ore <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
<plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
- <item quantity="one">The phone will be in Emergency Callback mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes. While in this mode no applications using a data connection can be used. Do you want to exit now?</item>
<item quantity="other">Il telefono sarà in modalità Richiamata di emergenza per <xliff:g id="COUNT_1">%s</xliff:g> minuti. In questa modalità non è possibile utilizzare applicazioni che impiegano una connessione dati. Vuoi uscire ora?</item>
+ <item quantity="one">Il telefono sarà in modalità Richiamata di emergenza per <xliff:g id="COUNT_0">%s</xliff:g> minuto. In questa modalità non è possibile utilizzare app che impiegano una connessione dati. Vuoi uscire ora?</item>
</plurals>
<plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
- <item quantity="one">The selected action isn\'t available while in the Emergency Callback mode. The phone will be in this mode for <xliff:g id="COUNT_1">%s</xliff:g> minutes. Do you want to exit now?</item>
<item quantity="other">L\'azione selezionata non è disponibile in modalità Richiamata di emergenza. Il telefono sarà in questa modalità per <xliff:g id="COUNT_1">%s</xliff:g> minuti. Vuoi uscire ora?</item>
+ <item quantity="one">L\'azione selezionata non è disponibile in modalità Richiamata di emergenza. Il telefono sarà in questa modalità per <xliff:g id="COUNT_0">%s</xliff:g> minuto. Vuoi uscire ora?</item>
</plurals>
<string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"L\'azione selezionata non è disponibile in modalità di chiamata di emergenza."</string>
<string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"Uscita dalla modalità di richiamata di emergenza"</string>
@@ -653,8 +652,8 @@
<string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"Il telefono è in modalità di richiamata di emergenza"</string>
<string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Fino alle ore <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
<plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
- <item quantity="one">Il telefono sarà in modalità di richiamata di emergenza per <xliff:g id="COUNT_1">%s</xliff:g> minuti.\nVuoi uscire ora?</item>
<item quantity="other">Il telefono sarà in modalità di richiamata di emergenza per <xliff:g id="COUNT_1">%s</xliff:g> minuti.\nVuoi uscire ora?</item>
+ <item quantity="one">Il telefono sarà in modalità di richiamata di emergenza per <xliff:g id="COUNT_0">%s</xliff:g> minuto.\nVuoi uscire ora?</item>
</plurals>
<string name="voicemail_provider" msgid="4158806657253745294">"Servizio"</string>
<string name="voicemail_settings" msgid="4451045613238972776">"Configurazione"</string>
@@ -668,7 +667,7 @@
<string name="description_dial_button" msgid="8614631902795087259">"componi"</string>
<string name="description_dialpad_button" msgid="7395114120463883623">"mostra tastierino"</string>
<string name="pane_title_emergency_dialpad" msgid="3627372514638694401">"Tastierino di emergenza"</string>
- <string name="voicemail_visual_voicemail_switch_title" msgid="6610414098912832120">"Lettura della segreteria"</string>
+ <string name="voicemail_visual_voicemail_switch_title" msgid="6610414098912832120">"Leggi la segreteria"</string>
<string name="voicemail_set_pin_dialog_title" msgid="7005128605986960003">"Imposta PIN"</string>
<string name="voicemail_change_pin_dialog_title" msgid="4633077715231764435">"Cambia PIN"</string>
<string name="preference_category_ringtone" msgid="8787281191375434976">"Suoneria e vibrazione"</string>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Configurazione network slicing:"</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 5fbf20d..b5b2f75 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -31,29 +31,29 @@
<string name="ussdRunning" msgid="1163586813106772717">"קוד USSD פועל…"</string>
<string name="mmiCancelled" msgid="5339191899200678272">"קוד MMI מבוטל"</string>
<string name="cancel" msgid="8984206397635155197">"ביטול"</string>
- <string name="enter_input" msgid="6193628663039958990">"הודעת USSD חייבת להיות באורך של <xliff:g id="MIN_LEN">%1$d</xliff:g> עד <xliff:g id="MAX_LEN">%2$d</xliff:g> תווים. יש לנסות שוב."</string>
+ <string name="enter_input" msgid="6193628663039958990">"הודעת USSD חייבת להיות באורך של <xliff:g id="MIN_LEN">%1$d</xliff:g> עד <xliff:g id="MAX_LEN">%2$d</xliff:g> תווים. נסה שוב."</string>
<string name="manageConferenceLabel" msgid="8415044818156353233">"ניהול שיחת ועידה"</string>
<string name="ok" msgid="7818974223666140165">"אישור"</string>
<string name="audio_mode_speaker" msgid="243689733219312360">"רמקול"</string>
<string name="audio_mode_earpiece" msgid="2823700267171134282">"אוזניה"</string>
- <string name="audio_mode_wired_headset" msgid="5028010823105817443">"אוזניות חוטיות"</string>
+ <string name="audio_mode_wired_headset" msgid="5028010823105817443">"אוזניות קוויות"</string>
<string name="audio_mode_bluetooth" msgid="25732183428018809">"Bluetooth"</string>
<string name="wait_prompt_str" msgid="5136209532150094910">"לשלוח את הצלילים הבאים?\n"</string>
- <string name="pause_prompt_str" msgid="2308897950360272213">"שליחת צלילים מתבצעת\n"</string>
+ <string name="pause_prompt_str" msgid="2308897950360272213">"שולח צלילים\n"</string>
<string name="send_button" msgid="5070379600779031932">"שליחה"</string>
<string name="pause_prompt_yes" msgid="8184132073048369575">"כן"</string>
<string name="pause_prompt_no" msgid="2145264674774138579">"לא"</string>
<string name="wild_prompt_str" msgid="5858910969703305375">"החלפת התו הכללי ב"</string>
<string name="no_vm_number" msgid="6623853880546176930">"חסר מספר של דואר קולי"</string>
<string name="no_vm_number_msg" msgid="5165161462411372504">"בכרטיס ה-SIM לא מאוחסן מספר של דואר קולי."</string>
- <string name="add_vm_number_str" msgid="7368168964435881637">"הוספת מספר"</string>
+ <string name="add_vm_number_str" msgid="7368168964435881637">"הוסף מספר"</string>
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"רק המשתמש הראשי יכול לשנות את ההגדרות של הדואר הקולי."</string>
- <string name="puk_unlocked" msgid="4627340655215746511">"בוטלה החסימה של כרטיס SIM. ביטול חסימת הטלפון מתבצעת..."</string>
- <string name="label_ndp" msgid="7617392683877410341">"קוד אימות לביטול נעילה של רשת SIM"</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>
+ <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>
<string name="unlock_failed" msgid="7103543844840661366">"הבקשה לביטול נעילת הרשת נכשלה."</string>
<string name="unlock_success" msgid="32681089371067565">"ביטול נעילת הרשת התבצע בהצלחה."</string>
<string name="mobile_network_settings_not_available" msgid="8678168497517090039">"הגדרות של רשת סלולרית אינן זמינות עבור המשתמש הזה"</string>
@@ -64,17 +64,17 @@
<string name="apn_settings" msgid="1978652203074756623">"שמות של נקודות גישה"</string>
<string name="settings_label" msgid="9101778088412567956">"הגדרות רשת"</string>
<string name="phone_accounts" msgid="1216879437523774604">"חשבונות להתקשרות"</string>
- <string name="phone_accounts_make_calls_with" msgid="16747814788918145">"ביצוע שיחות באמצעות"</string>
- <string name="phone_accounts_make_sip_calls_with" msgid="4691221006731847255">"ביצוע שיחות SIP באמצעות"</string>
- <string name="phone_accounts_ask_every_time" msgid="6192347582666047168">"יש לשאול לפני ביצוע"</string>
+ <string name="phone_accounts_make_calls_with" msgid="16747814788918145">"בצע שיחות באמצעות"</string>
+ <string name="phone_accounts_make_sip_calls_with" msgid="4691221006731847255">"בצע שיחות SIP באמצעות"</string>
+ <string name="phone_accounts_ask_every_time" msgid="6192347582666047168">"שאל לפני ביצוע"</string>
<string name="phone_accounts_default_account_label" msgid="5107598881335931101">"אין רשתות זמינות"</string>
<string name="phone_accounts_settings_header" msgid="6296501692964706536">"הגדרות"</string>
- <string name="phone_accounts_choose_accounts" msgid="4748805293314824974">"בחירת חשבונות"</string>
+ <string name="phone_accounts_choose_accounts" msgid="4748805293314824974">"בחר חשבונות"</string>
<string name="phone_accounts_selection_header" msgid="2945830843104108440">"חשבונות טלפון"</string>
- <string name="phone_accounts_add_sip_account" msgid="1437634802033309305">"הוספת חשבון SIP"</string>
- <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"קביעת הגדרות החשבון"</string>
+ <string name="phone_accounts_add_sip_account" msgid="1437634802033309305">"הוסף חשבון SIP"</string>
+ <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"קבע את הגדרות החשבון"</string>
<string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"כל החשבונות לביצוע שיחות"</string>
- <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"בחירת החשבונות שיכולים להתקשר"</string>
+ <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"בחר אילו חשבונות יכולים להתקשר"</string>
<string name="wifi_calling" msgid="3650509202851355742">"שיחות ב-Wi-Fi"</string>
<string name="connection_service_default_label" msgid="7332739049855715584">"שירות חיבור מובנה"</string>
<string name="voicemail" msgid="7697769412804195032">"דואר קולי"</string>
@@ -93,7 +93,7 @@
<string name="sum_cdma_call_settings" msgid="3185825305136993636">"הגדרות שיחה נוספות של CDMA בלבד"</string>
<string name="labelNwService" msgid="6015891883487125120">"הגדרות שירות רשת"</string>
<string name="labelCallerId" msgid="2090540744550903172">"שיחה מזוהה"</string>
- <string name="sum_loading_settings" msgid="434063780286688775">"טעינת ההגדרות מתבצעת..."</string>
+ <string name="sum_loading_settings" msgid="434063780286688775">"טוען הגדרות..."</string>
<string name="sum_hide_caller_id" msgid="131100328602371933">"המספר מוסתר בשיחות יוצאות"</string>
<string name="sum_show_caller_id" msgid="3571854755324664591">"מספר המוצג בשיחות יוצאות"</string>
<string name="sum_default_caller_id" msgid="1767070797135682959">"שימוש בהגדרות ברירת המחדל של המפעיל כדי להציג את המספר שלי בשיחות יוצאות"</string>
@@ -103,25 +103,25 @@
<string name="call_forwarding_settings" msgid="8937130467468257671">"הגדרות של העברת שיחות"</string>
<string name="call_forwarding_settings_with_label" msgid="2345432813399564272">"הגדרות של העברת שיחות (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="labelCF" msgid="3578719437928476078">"העברת שיחות"</string>
- <string name="labelCFU" msgid="8870170873036279706">"העברה תמיד"</string>
- <string name="messageCFU" msgid="1361806450979589744">"יש להשתמש תמיד במספר זה"</string>
- <string name="sum_cfu_enabled_indicator" msgid="9030139213402432776">"כל השיחות מועברות"</string>
- <string name="sum_cfu_enabled" msgid="5806923046528144526">"כל השיחות מועברות אל <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
+ <string name="labelCFU" msgid="8870170873036279706">"העבר תמיד"</string>
+ <string name="messageCFU" msgid="1361806450979589744">"השתמש תמיד במספר זה"</string>
+ <string name="sum_cfu_enabled_indicator" msgid="9030139213402432776">"מעביר את כל השיחות"</string>
+ <string name="sum_cfu_enabled" msgid="5806923046528144526">"מעביר את כל השיחות אל <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfu_enabled_no_number" msgid="7287752761743377930">"המספר לא זמין"</string>
<string name="sum_cfu_disabled" msgid="5010617134210809853">"כבוי"</string>
<string name="labelCFB" msgid="615265213360512768">"כאשר לא פנוי"</string>
<string name="messageCFB" msgid="1958017270393563388">"מספר כאשר לא פנוי"</string>
- <string name="sum_cfb_enabled" msgid="332037613072049492">"העברה אל <xliff:g id="PHONENUMBER">{0}</xliff:g> מתבצעת"</string>
+ <string name="sum_cfb_enabled" msgid="332037613072049492">"מעביר אל <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfb_disabled" msgid="3589913334164866035">"כבוי"</string>
<string name="disable_cfb_forbidden" msgid="4831494744351633961">"הספק שלך אינו תומך בהשבתה של העברת שיחות כאשר הטלפון תפוס."</string>
<string name="labelCFNRy" msgid="3403533792248457946">"כאשר אין מענה"</string>
<string name="messageCFNRy" msgid="7644434155765359009">"מספר לחיוג כשאין מענה"</string>
- <string name="sum_cfnry_enabled" msgid="3000500837493854799">"העברה אל <xliff:g id="PHONENUMBER">{0}</xliff:g> מתבצעת"</string>
+ <string name="sum_cfnry_enabled" msgid="3000500837493854799">"מעביר אל <xliff:g id="PHONENUMBER">{0}</xliff:g>"</string>
<string name="sum_cfnry_disabled" msgid="1990563512406017880">"כבוי"</string>
<string name="disable_cfnry_forbidden" msgid="3174731413216550689">"הספק אינו תומך בהשבתה של העברת שיחות כאשר אין מענה בטלפון."</string>
<string name="labelCFNRc" msgid="4163399350778066013">"כאשר לא נגיש"</string>
<string name="messageCFNRc" msgid="6980340731313007250">"המספר לחיוג כשלא ניתן להשיג"</string>
- <string name="sum_cfnrc_enabled" msgid="1799069234006073477">"העברה אל <xliff:g id="PHONENUMBER">{0}</xliff:g> מתבצעת"</string>
+ <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>
@@ -135,9 +135,9 @@
<string name="call_settings_admin_user_only" msgid="7238947387649986286">"רק מנהל המערכת יכול לשנות הגדרות שיחה."</string>
<string name="call_settings_with_label" msgid="8460230435361579511">"הגדרות (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="error_updating_title" msgid="2024290892676808965">"שגיאה בהגדרות שיחה"</string>
- <string name="reading_settings" msgid="1605904432450871183">"קריאת ההגדרות מתבצעת…"</string>
- <string name="updating_settings" msgid="3650396734816028808">"עדכון ההגדרות מתבצע..."</string>
- <string name="reverting_settings" msgid="7378668837291012205">"אחזור ההגדרות הקודמות מתבצע…"</string>
+ <string name="reading_settings" msgid="1605904432450871183">"קורא הגדרות…"</string>
+ <string name="updating_settings" msgid="3650396734816028808">"מעדכן הגדרות..."</string>
+ <string name="reverting_settings" msgid="7378668837291012205">"מאחזר הגדרות הקודמות…"</string>
<string name="response_error" msgid="3904481964024543330">"תגובה לא צפויה מהרשת."</string>
<string name="exception_error" msgid="330994460090467">"שגיאת רשת או שגיאה של כרטיס SIM."</string>
<string name="stk_cc_ss_to_dial_error" msgid="5147693491690618704">"בקשת SS שונתה לשיחה רגילה"</string>
@@ -145,41 +145,41 @@
<string name="stk_cc_ss_to_ss_error" msgid="8297155544652134278">"היה שינוי לבקשת SS חדשה"</string>
<string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"בקשת SS שונתה לשיחת וידאו"</string>
<string name="fdn_check_failure" msgid="1833769746374185247">"הגדרת מספרי החיוג הקבועים של אפליקציית הטלפון שלך מופעלת. כתוצאה מכך, חלק מהתכונות הקשורות לשיחות לא פועלות."</string>
- <string name="radio_off_error" msgid="8321564164914232181">"יש להפעיל את הרדיו לפני ההצגה של הגדרות אלה."</string>
+ <string name="radio_off_error" msgid="8321564164914232181">"הפעל את הרדיו לפני ההצגה של הגדרות אלה."</string>
<string name="close_dialog" msgid="1074977476136119408">"אישור"</string>
<string name="enable" msgid="2636552299455477603">"הפעלה"</string>
- <string name="disable" msgid="1122698860799462116">"כיבוי"</string>
- <string name="change_num" msgid="6982164494063109334">"עדכון"</string>
+ <string name="disable" msgid="1122698860799462116">"כבה"</string>
+ <string name="change_num" msgid="6982164494063109334">"עדכן"</string>
<string-array name="clir_display_values">
<item msgid="8477364191403806960">"רשת ברירת מחדל"</item>
- <item msgid="6813323051965618926">"הסתרת מספר"</item>
- <item msgid="9150034130629852635">"הצגת מספר"</item>
+ <item msgid="6813323051965618926">"הסתר מספר"</item>
+ <item msgid="9150034130629852635">"הצג מספר"</item>
</string-array>
<string name="vm_changed" msgid="4739599044379692505">"המספר של הדואר הקולי השתנה."</string>
- <string name="vm_change_failed" msgid="7877733929455763566">"לא ניתן לשנות את מספר הגישה לדואר הקולי.\nאם הבעיה נמשכת, יש לפנות לספק."</string>
- <string name="fw_change_failed" msgid="9179241823460192148">"לא ניתן לשנות את מספר ההעברה.\nאם הבעיה נמשכת, יש לפנות לספק."</string>
+ <string name="vm_change_failed" msgid="7877733929455763566">"לא ניתן לשנות את מספר הגישה לדואר הקולי.\nאם הבעיה נמשכת, פנה לספק."</string>
+ <string name="fw_change_failed" msgid="9179241823460192148">"לא ניתן לשנות את מספר ההעברה.\nאם הבעיה נמשכת, פנה לספק."</string>
<string name="fw_get_in_vm_failed" msgid="2432678237218183844">"לא ניתן לאחזר ולשמור את הגדרות מספר ההעברה הנוכחי.\nלעבור בכל זאת לספק החדש?"</string>
<string name="no_change" msgid="3737264882821031892">"לא בוצעו שינויים."</string>
- <string name="sum_voicemail_choose_provider" msgid="6750824719081403773">"בחירת שירות דואר קולי"</string>
+ <string name="sum_voicemail_choose_provider" msgid="6750824719081403773">"בחר שירות של דואר קולי"</string>
<string name="voicemail_default" msgid="6427575113775462077">"הספק שלך"</string>
<string name="vm_change_pin_old_pin" msgid="7154951790929009241">"קוד גישה ישן"</string>
<string name="vm_change_pin_new_pin" msgid="2656200418481288069">"קוד גישה חדש"</string>
- <string name="vm_change_pin_progress_message" msgid="626015184502739044">"יש להמתין."</string>
+ <string name="vm_change_pin_progress_message" msgid="626015184502739044">"אנא המתן."</string>
<string name="vm_change_pin_error_too_short" msgid="1789139338449945483">"קוד הגישה החדש קצר מדי."</string>
<string name="vm_change_pin_error_too_long" msgid="3634907034310018954">"קוד הגישה החדש ארוך מדי."</string>
<string name="vm_change_pin_error_too_weak" msgid="8581892952627885719">"קוד הגישה החדש חלש מדי. בסיסמה חזקה אסור שיהיו ספרות ברצף מספרי או ספרות שחוזרות על עצמן."</string>
<string name="vm_change_pin_error_mismatch" msgid="5364847280026257331">"קוד הגישה הישן אינו תואם."</string>
<string name="vm_change_pin_error_invalid" msgid="5230002671175580674">"קוד הגישה החדש מכיל תווים לא חוקיים."</string>
<string name="vm_change_pin_error_system_error" msgid="9116483527909681791">"לא ניתן לשנות את קוד הגישה"</string>
- <string name="vvm_unsupported_message_format" msgid="4206402558577739713">"סוג ההודעה לא נתמך. יש להתקשר למספר <xliff:g id="NUMBER">%s</xliff:g> כדי להאזין לה."</string>
+ <string name="vvm_unsupported_message_format" msgid="4206402558577739713">"סוג ההודעה לא נתמך. התקשר למספר <xliff:g id="NUMBER">%s</xliff:g> כדי להאזין לה."</string>
<string name="network_settings_title" msgid="7560807107123171541">"רשת סלולרית"</string>
<string name="label_available" msgid="1316084116670821258">"רשתות זמינות"</string>
- <string name="load_networks_progress" msgid="4051433047717401683">"החיפוש מתבצע..."</string>
+ <string name="load_networks_progress" msgid="4051433047717401683">"מחפש..."</string>
<string name="empty_networks_list" msgid="9216418268008582342">"לא נמצאו רשתות."</string>
<string name="network_query_error" msgid="3862515805115145124">"לא נמצאו רשתות. אפשר לנסות שוב."</string>
- <string name="register_on_network" msgid="4194770527833960423">"ההרשמה ב-<xliff:g id="NETWORK">%s</xliff:g> מתבצעת…"</string>
+ <string name="register_on_network" msgid="4194770527833960423">"נרשם ב-<xliff:g id="NETWORK">%s</xliff:g>…"</string>
<string name="not_allowed" msgid="8541221928746104798">"כרטיס ה-SIM לא מאפשר חיבור לרשת זו."</string>
- <string name="connect_later" msgid="1950138106010005425">"לא ניתן להתחבר לרשת זו כעת. יש לנסות שוב מאוחר יותר."</string>
+ <string name="connect_later" msgid="1950138106010005425">"לא ניתן להתחבר לרשת זו כעת. נסה שוב מאוחר יותר."</string>
<string name="registration_done" msgid="5337407023566953292">"רשום ברשת."</string>
<string name="already_auto" msgid="8607068290733079336">"הבחירה האוטומטית כבר מופעלת."</string>
<string name="select_automatically" msgid="779750291257872651">"בחירה אוטומטית של הרשת"</string>
@@ -187,7 +187,7 @@
<string name="network_select_title" msgid="4117305053881611988">"רשת"</string>
<string name="register_automatically" msgid="3907580547590554834">"רישום אוטומטי..."</string>
<string name="preferred_network_mode_title" msgid="5253395265169539830">"סוג רשת מועדף"</string>
- <string name="preferred_network_mode_summary" msgid="3787989000044330064">"שינוי מצב ההפעלה של הרשת"</string>
+ <string name="preferred_network_mode_summary" msgid="3787989000044330064">"שנה את מצב ההפעלה של הרשת"</string>
<string name="preferred_network_mode_dialogtitle" msgid="2781447433514459696">"סוג רשת מועדף"</string>
<string name="forbidden_network" msgid="5081729819561333023">"(אסור)"</string>
<string name="choose_network_title" msgid="5335832663422653082">"בחירת רשת"</string>
@@ -239,25 +239,25 @@
<string name="preferred_network_mode_cdma_evdo_summary" msgid="3629440709757307077">"מצב רשת מועדפת: CDMA / EvDo"</string>
<string name="preferred_network_mode_cdma_only_summary" msgid="211164451887102568">"מצב רשת מועדפת: CDMA בלבד"</string>
<string name="preferred_network_mode_evdo_only_summary" msgid="939116631952132878">"מצב רשת מועדפת: EvDo בלבד"</string>
- <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="7891131456022601976">"מצב רשת מועדפת: CDMA/EvDo/GSM/WCDMA"</string>
- <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"מצב רשת מועדפת: LTE"</string>
- <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"מצב רשת מועדפת: GSM/WCDMA/LTE"</string>
- <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"מצב רשת מועדפת: CDMA+LTE/EVDO"</string>
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary" msgid="7891131456022601976">"מצב רשת מועדף: CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_summary" msgid="8050539466545797149">"מצב רשת מועדף: LTE"</string>
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary" msgid="2217794334331254936">"מצב רשת מועדף: GSM/WCDMA/LTE"</string>
+ <string name="preferred_network_mode_lte_cdma_evdo_summary" msgid="5559198623419981805">"מצב רשת מועדף: CDMA+LTE/EVDO"</string>
<string name="preferred_network_mode_lte_cdma_evdo_gsm_wcdma_summary" msgid="6707224437925495615">"מצב רשת מועדפת: LTE/CDMA/EvDo/GSM/WCDMA"</string>
<string name="preferred_network_mode_global_summary" msgid="3847086258439582411">"מצב רשת מועדף: גלובלי"</string>
- <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"מצב רשת מועדפת: LTE / WCDMA"</string>
- <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"מצב רשת מועדפת: LTE / GSM / UMTS"</string>
+ <string name="preferred_network_mode_lte_wcdma_summary" msgid="7001804022020813865">"מצב רשת מועדף: LTE / WCDMA"</string>
+ <string name="preferred_network_mode_lte_gsm_umts_summary" msgid="6484203890156282179">"מצב רשת מועדף: LTE / GSM / UMTS"</string>
<string name="preferred_network_mode_lte_cdma_summary" msgid="8187929456614068518">"מצב רשת מועדפת: LTE / CDMA"</string>
- <string name="preferred_network_mode_tdscdma_summary" msgid="3602127224234207206">"מצב רשת מועדפת: TDSCDMA"</string>
- <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="7076968749402201123">"מצב רשת מועדפת: TDSCDMA / WCDMA"</string>
- <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3001058390866953624">"מצב רשת מועדפת: LTE / TDSCDMA"</string>
- <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="1716983444872465309">"מצב רשת מועדפת: TDSCDMA / GSM"</string>
- <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1349057007230669585">"מצב רשת מועדפת: LTE/GSM/TDSCDMA"</string>
- <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="2092262901885164194">"מצב רשת מועדפת: TDSCDMA/GSM/WCDMA"</string>
- <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="56422129430744466">"מצב רשת מועדפת: LTE/TDSCDMA/WCDMA"</string>
- <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"מצב רשת מועדפת: LTE/TDSCDMA/GSM/WCDMA"</string>
- <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"מצב רשת מועדפת: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
- <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"מצב רשת מועדפת: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_summary" msgid="3602127224234207206">"מצב רשת מועדף: TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_wcdma_summary" msgid="7076968749402201123">"מצב רשת מועדף: TDSCDMA / WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_summary" msgid="3001058390866953624">"מצב רשת מועדף: LTE / TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_summary" msgid="1716983444872465309">"מצב רשת מועדף: TDSCDMA / GSM"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary" msgid="1349057007230669585">"מצב רשת מועדף: LTE/GSM/TDSCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary" msgid="2092262901885164194">"מצב רשת מועדף: TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary" msgid="56422129430744466">"מצב רשת מועדף: LTE/TDSCDMA/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary" msgid="2993923113350341106">"מצב רשת מועדף: LTE/TDSCDMA/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="2779089629254220257">"מצב רשת מועדף: TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="9065672185435798587">"מצב רשת מועדף: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
<string name="preferred_network_mode_nr_only_summary" msgid="1467452233297987391">"מצב רשת מועדפת: NR בלבד"</string>
<string name="preferred_network_mode_nr_lte_summary" msgid="5890170406507535976">"מצב רשת מועדפת: NR / LTE"</string>
<string name="preferred_network_mode_nr_lte_cdma_evdo_summary" msgid="5507940227264296616">"מצב רשת מועדפת: NR/LTE/CDMA/EvDo"</string>
@@ -273,17 +273,17 @@
<string name="network_operator_category" msgid="4992217193732304680">"רשת"</string>
<string name="enhanced_4g_lte_mode_title" msgid="4213420368777080540">"מצב 4G LTE משופר"</string>
<!-- no translation found for enhanced_4g_lte_mode_title_variant:0 (7240155150166394308) -->
- <string name="enhanced_4g_lte_mode_summary" msgid="7725708511804143638">"שימוש בשירותי LTE כדי לשפר את הקול ודרכי תקשורת אחרות (מומלץ)"</string>
+ <string name="enhanced_4g_lte_mode_summary" msgid="7725708511804143638">"השתמש בשירותי LTE כדי לשפר את הקול ודרכי תקשורת אחרות (מומלץ)"</string>
<string name="enhanced_4g_lte_mode_summary_o2" msgid="2521108446409016542">"שימוש בשירותי 4G כדי לשפר את הקול ודרכי תקשורת אחרות (מומלץ)"</string>
<!-- no translation found for enhanced_4g_lte_mode_sumary_variant:0 (2943982616649705147) -->
<!-- no translation found for enhanced_4g_lte_mode_sumary_variant:1 (5262249464504131443) -->
<!-- no translation found for enhanced_4g_lte_mode_sumary_variant:2 (6356974241850241718) -->
<string name="data_enabled" msgid="22525832097434368">"נתונים מופעלים"</string>
- <string name="data_enable_summary" msgid="696860063456536557">"התרת שימוש בחבילת הגלישה"</string>
+ <string name="data_enable_summary" msgid="696860063456536557">"התר שימוש בנתונים"</string>
<string name="dialog_alert_title" msgid="5260471806940268478">"זהירות"</string>
<string name="roaming" msgid="1576180772877858949">"נדידה"</string>
- <string name="roaming_enable" msgid="6853685214521494819">"יש להתחבר לשירותי נתונים בעת נדידה"</string>
- <string name="roaming_disable" msgid="8856224638624592681">"יש להתחבר לשירותי נתונים בעת נדידה"</string>
+ <string name="roaming_enable" msgid="6853685214521494819">"התחבר לשירותי נתונים בעת נדידה"</string>
+ <string name="roaming_disable" msgid="8856224638624592681">"התחבר לשירותי נתונים בעת נדידה"</string>
<string name="roaming_reenable_message" msgid="1951802463885727915">"הנדידה מושבתת. אפשר להקיש כדי להפעיל אותה."</string>
<string name="roaming_enabled_message" msgid="9022249120750897">"ייתכנו חיובי נדידה. יש להקיש כדי לשנות."</string>
<string name="roaming_notification_title" msgid="3590348480688047320">"המכשיר התנתק מחבילת הגלישה"</string>
@@ -355,7 +355,7 @@
<string name="international_enable" msgid="8943466745792690340">"חדשות פנים מופעלות"</string>
<string name="international_disable" msgid="4803498658100318265">"חדשות בינלאומיות מושבתות"</string>
<string name="list_language_title" msgid="1850167908665485738">"שפה"</string>
- <string name="list_language_summary" msgid="7921756070782277559">"בחירת שפת החדשות"</string>
+ <string name="list_language_summary" msgid="7921756070782277559">"בחר את שפת החדשות"</string>
<string-array name="list_language_entries">
<item msgid="2347238508726934281">"אנגלית"</item>
<item msgid="5172468397620875174">"צרפתית"</item>
@@ -416,7 +416,7 @@
<string name="network_4G" msgid="6800527815504223913">"4G (מומלץ)"</string>
<string name="network_global" msgid="3289646154407617631">"גלובלי"</string>
<string name="cdma_system_select_title" msgid="614165233552656431">"בחירת מערכת"</string>
- <string name="cdma_system_select_summary" msgid="3840420390242060407">"שינוי מצב נדידת CDMA"</string>
+ <string name="cdma_system_select_summary" msgid="3840420390242060407">"שנה את מצב נדידת CDMA"</string>
<string name="cdma_system_select_dialogtitle" msgid="5524639510676501802">"בחירת מערכת"</string>
<string-array name="cdma_system_select_choices">
<item msgid="462340042928284921">"בית בלבד"</item>
@@ -433,8 +433,8 @@
<item msgid="2953825013895327785">"0"</item>
<item msgid="7970797749269738435">"1"</item>
</string-array>
- <string name="cdma_activate_device" msgid="5914720276140097632">"הפעלת המכשיר"</string>
- <string name="cdma_lte_data_service" msgid="359786441782404562">"הגדרת שירות נתונים"</string>
+ <string name="cdma_activate_device" msgid="5914720276140097632">"הפעל מכשיר"</string>
+ <string name="cdma_lte_data_service" msgid="359786441782404562">"הגדר שירות נתונים"</string>
<string name="carrier_settings_title" msgid="6292869148169850220">"הגדרות ספק"</string>
<string name="fdn" msgid="2545904344666098749">"מספרי חיוג קבועים"</string>
<string name="fdn_with_label" msgid="6412087553365709494">"מספרי חיוג קבועים (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -445,7 +445,7 @@
<string name="fdn_disabled" msgid="6696468878037736600">"מספרי חיוג קבועים מושבתים"</string>
<string name="enable_fdn" msgid="4830555730418033723">"הפעלת מספרי חיוג קבועים"</string>
<string name="disable_fdn" msgid="3918794950264647541">"השבתת מספרי חיוג קבועים"</string>
- <string name="change_pin2" msgid="3110844547237754871">"שינוי קוד אימות 2"</string>
+ <string name="change_pin2" msgid="3110844547237754871">"שינוי PIN2"</string>
<string name="enable_fdn_ok" msgid="5080925177369329827">"השבת מספרי חיוג קבועים"</string>
<string name="disable_fdn_ok" msgid="3745475926874838676">"הפעלה של מספרי חיוג קבועים"</string>
<string name="sum_fdn" msgid="6152246141642323582">"ניהול מספרי חיוג קבועים"</string>
@@ -454,97 +454,96 @@
<string name="voice_privacy" msgid="7346935172372181951">"פרטיות קול"</string>
<string name="voice_privacy_summary" msgid="3556460926168473346">"הפעלת מצב פרטיות משופרת"</string>
<string name="tty_mode_option_title" msgid="3843817710032641703">"מצב TTY"</string>
- <string name="tty_mode_option_summary" msgid="4770510287236494371">"הגדרת מצב 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>
<string name="tty_mode_not_allowed_video_call" msgid="6551976083652752815">"שינוי מצב TTY אינו מותר במהלך שיחת וידאו"</string>
- <string name="menu_add" msgid="5616487894975773141">"הוספת איש קשר"</string>
- <string name="menu_edit" msgid="3593856941552460706">"עריכת איש קשר"</string>
- <string name="menu_delete" msgid="6326861853830546488">"מחיקת איש קשר"</string>
+ <string name="menu_add" msgid="5616487894975773141">"הוסף איש קשר"</string>
+ <string name="menu_edit" msgid="3593856941552460706">"ערוך איש קשר"</string>
+ <string name="menu_delete" msgid="6326861853830546488">"מחק איש קשר"</string>
<string name="menu_dial" msgid="4178537318419450012">"חיוג לאיש הקשר"</string>
- <string name="get_pin2" msgid="4221654606863196332">"יש להקליד קוד אימות 2"</string>
+ <string name="get_pin2" msgid="4221654606863196332">"הקלד PIN2"</string>
<string name="name" msgid="1347432469852527784">"שם"</string>
<string name="number" msgid="1564053487748491000">"מספר"</string>
- <string name="save" msgid="983805790346099749">"שמירה"</string>
- <string name="add_fdn_contact" msgid="1169713422306640887">"הוספת מספר חיוג קבוע"</string>
- <string name="adding_fdn_contact" msgid="3112531600824361259">"הוספת מספר חיוג קבוע מתבצעת..."</string>
+ <string name="save" msgid="983805790346099749">"שמור"</string>
+ <string name="add_fdn_contact" msgid="1169713422306640887">"הוסף מספר חיוג קבוע"</string>
+ <string name="adding_fdn_contact" msgid="3112531600824361259">"מוסיף מספר חיוג קבוע..."</string>
<string name="fdn_contact_added" msgid="2840016151693394596">"מספר חיוג קבוע נוסף."</string>
- <string name="edit_fdn_contact" msgid="6030829994819587408">"עריכת מספר חיוג קבוע"</string>
- <string name="updating_fdn_contact" msgid="6989341376868227150">"עדכון מספר החיוג הקבוע מתבצע..."</string>
+ <string name="edit_fdn_contact" msgid="6030829994819587408">"ערוך מספר חיוג קבוע"</string>
+ <string name="updating_fdn_contact" msgid="6989341376868227150">"מעדכן מספר חיוג קבוע..."</string>
<string name="fdn_contact_updated" msgid="6876330243323118937">"מספר חיוג קבוע עודכן."</string>
- <string name="delete_fdn_contact" msgid="7027405651994507077">"מחיקת מספר חיוג קבוע"</string>
- <string name="deleting_fdn_contact" msgid="6872320570844460428">"מחיקת מספר חיוג קבוע מתבצעת..."</string>
+ <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">"רשימת מספרי חיוג קבועים לא עודכנה מכיוון שקוד הגישה שגוי."</string>
<string name="fdn_invalid_number" msgid="9067189814657840439">"מספר ה-FDN לא עודכן כי הוא מכיל יותר מ-<xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> ספרות."</string>
<string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"רשימת מספרי החיוג הקבועים לא עודכנה. קוד הגישה היה שגוי או שמספר הטלפון נדחה."</string>
<string name="fdn_failed" msgid="216592346853420250">"פעולת FDN נכשלה."</string>
- <string name="simContacts_emptyLoading" msgid="4989040293858675483">"קריאה מכרטיס SIM מתבצעת…"</string>
+ <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="enable_pin" msgid="967674051730845376">"הפעלה/השבתה של קוד האימות של SIM"</string>
- <string name="change_pin" msgid="3657869530942905790">"שינוי קוד אימות של SIM"</string>
- <string name="enter_pin_text" msgid="3182311451978663356">"קוד אימות של SIM:"</string>
- <string name="oldPinLabel" msgid="8618515202411987721">"קוד אימות ישן"</string>
- <string name="newPinLabel" msgid="3585899083055354732">"קוד אימות חדש"</string>
- <string name="confirmPinLabel" msgid="7783531218662473778">"אישור קוד אימות חדש"</string>
- <string name="badPin" msgid="4549286285015892321">"קוד האימות הישן שהקלדת שגוי. יש לנסות שוב."</string>
- <string name="mismatchPin" msgid="1467254768290323845">"קודי האימות שהקלדת לא תואמים. יש לנסות שוב."</string>
- <string name="invalidPin" msgid="7363723429414001979">"יש להקליד קוד אימות שאורכו 4 עד 8 ספרות."</string>
+ <string name="simContacts_title" msgid="2714029230160136647">"בחר אנשי קשר לייבוא"</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>
+ <string name="oldPinLabel" msgid="8618515202411987721">"PIN ישן"</string>
+ <string name="newPinLabel" msgid="3585899083055354732">"PIN חדש"</string>
+ <string name="confirmPinLabel" msgid="7783531218662473778">"אשר PIN חדש"</string>
+ <string name="badPin" msgid="4549286285015892321">"ה-PIN הישן שהקלדת שגוי. נסה שוב."</string>
+ <string name="mismatchPin" msgid="1467254768290323845">"קודי ה-PIN שהקלדת אינם תואמים. נסה שוב."</string>
+ <string name="invalidPin" msgid="7363723429414001979">"הקלד PIN שאורכו 4 עד 8 ספרות."</string>
<string name="disable_sim_pin" msgid="3112303905548613752">"ניקוי PIN עבור 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="disable_pin_ok" msgid="888505244389647754">"קוד האימות נמחק"</string>
- <string name="pin_failed" msgid="4527347792881939652">"קוד אימות 2 שגוי"</string>
- <string name="pin_changed" msgid="7291153750090452808">"קוד אימות עודכן"</string>
- <string name="puk_requested" msgid="2061337960609806851">"סיסמה שגויה. קוד האימות נעול כעת. יש להזין PUK."</string>
- <string name="enter_pin2_text" msgid="7266379426804295979">"קוד אימות 2"</string>
- <string name="oldPin2Label" msgid="4648543187859997203">"קוד אימות 2 ישן"</string>
- <string name="newPin2Label" msgid="1840905981784453939">"קוד אימות 2 חדש"</string>
- <string name="confirmPin2Label" msgid="4336025914667593762">"אישור קוד אימות 2 חדש"</string>
- <string name="badPuk2" msgid="6438182906645832235">"PUK2 שגוי. יש לנסות שוב."</string>
- <string name="badPin2" msgid="2760917538643074635">"קוד אימות 2 הישן שגוי. יש לנסות שוב."</string>
- <string name="mismatchPin2" msgid="4952718725266700631">"קודי אימות 2 לא תואמים. יש לנסות שוב."</string>
- <string name="invalidPin2" msgid="6467957903056379343">"יש להזין קוד אימות 2 שאורכו בין 4 ל-8 ספרות."</string>
- <string name="invalidPuk2" msgid="713729511903849544">"יש להזין PUK2 שאורכו 8 ספרות."</string>
- <string name="pin2_changed" msgid="5710551850481287821">"קוד אימות 2 עודכן"</string>
- <string name="label_puk2_code" msgid="2852217004288085562">"הזנת קוד PUK2"</string>
- <string name="fdn_enable_puk2_requested" msgid="5793652792131588041">"סיסמה שגויה. קוד אימות 2 חסום כעת. כדי לנסות שוב, יש לשנות את PIN 2."</string>
- <string name="puk2_requested" msgid="6992374450720307514">"סיסמה שגויה. ה-SIM נעול כעת. יש להזין PUK2."</string>
+ <string name="enable_sim_pin" msgid="445461050748318980">"הגדרת PIN עבור SIM"</string>
+ <string name="enable_in_progress" msgid="4135305985717272592">"מגדיר PIN…"</string>
+ <string name="enable_pin_ok" msgid="2877428038280804256">"PIN הוגדר"</string>
+ <string name="disable_pin_ok" msgid="888505244389647754">"ה-PIN נוקה"</string>
+ <string name="pin_failed" msgid="4527347792881939652">"PIN2 שגוי"</string>
+ <string name="pin_changed" msgid="7291153750090452808">"PIN עודכן"</string>
+ <string name="puk_requested" msgid="2061337960609806851">"סיסמה שגויה. PIN נעול כעת. יש להזין PUK."</string>
+ <string name="enter_pin2_text" msgid="7266379426804295979">"PIN2"</string>
+ <string name="oldPin2Label" msgid="4648543187859997203">"PIN2 ישן"</string>
+ <string name="newPin2Label" msgid="1840905981784453939">"PIN2 חדש"</string>
+ <string name="confirmPin2Label" msgid="4336025914667593762">"אשר PIN2 חדש"</string>
+ <string name="badPuk2" msgid="6438182906645832235">"PUK2 שגוי. נסה שוב."</string>
+ <string name="badPin2" msgid="2760917538643074635">"PIN2 הישן שגוי. נסה שוב."</string>
+ <string name="mismatchPin2" msgid="4952718725266700631">"קודי PIN2 לא תואמים. נסה שוב."</string>
+ <string name="invalidPin2" msgid="6467957903056379343">"הזן PIN2 שאורכו בין 4 ל-8 ספרות."</string>
+ <string name="invalidPuk2" msgid="713729511903849544">"הזן PUK2 שאורכו 8 ספרות."</string>
+ <string name="pin2_changed" msgid="5710551850481287821">"PIN2 עודכן"</string>
+ <string name="label_puk2_code" msgid="2852217004288085562">"הזן קוד PUK2"</string>
+ <string name="fdn_enable_puk2_requested" msgid="5793652792131588041">"סיסמה שגויה. PIN2 חסום כעת. כדי לנסות שוב, יש לשנות את PIN 2."</string>
+ <string name="puk2_requested" msgid="6992374450720307514">"סיסמה שגויה. ה-SIM נעול כעת. הזן PUK2."</string>
<string name="puk2_blocked" msgid="3131139031779319911">"PUK2 נחסם לצמיתות."</string>
<string name="pin2_attempts" msgid="5625178102026453023">\n"נותרו לך עוד <xliff:g id="NUMBER">%d</xliff:g> ניסיונות."</string>
<string name="puk2_locked" msgid="6497760825455461057">"נעילת PUK2. כדי לבטל את הנעילה, צריך לפנות לספק השירות."</string>
- <string name="pin2_unblocked" msgid="4481107908727789303">"קוד אימות 2 אינו חסום עוד"</string>
+ <string name="pin2_unblocked" msgid="4481107908727789303">"PIN2 אינו חסום עוד"</string>
<string name="pin2_error_exception" msgid="8116103864600823641">"שגיאת רשת או כרטיס SIM"</string>
<string name="doneButton" msgid="7371209609238460207">"סיום"</string>
<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_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_incoming_call" msgid="881424648458792430">"שיחה נכנסת"</string>
<string name="card_title_call_ended" msgid="650223980095026340">"השיחה הסתיימה"</string>
<string name="card_title_on_hold" msgid="9028319436626975207">"בהמתנה"</string>
- <string name="card_title_hanging_up" msgid="814874106866647871">"הניתוק מתבצע"</string>
+ <string name="card_title_hanging_up" msgid="814874106866647871">"מנתק"</string>
<string name="card_title_in_call" msgid="8231896539567594265">"בשיחה"</string>
<string name="notification_voicemail_title" msgid="3932876181831601351">"דואר קולי חדש"</string>
<string name="notification_voicemail_title_count" msgid="2806950319222327082">"דואר קולי חדש (<xliff:g id="COUNT">%d</xliff:g>)"</string>
- <string name="notification_voicemail_text_format" msgid="5720947141702312537">"חיוג ל-<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+ <string name="notification_voicemail_text_format" msgid="5720947141702312537">"חייג <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
<string name="notification_voicemail_no_vm_number" msgid="3423686009815186750">"המספר של הדואר הקולי אינו ידוע"</string>
<string name="notification_network_selection_title" msgid="255595526707809121">"אין שירות"</string>
<string name="notification_network_selection_text" msgid="553288408722427659">"הרשת שנבחרה (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) לא זמינה"</string>
<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_thermal" product="default" msgid="8695809601655300168"><b>"הטמפרטורה של הטלפון גבוהה מדי"</b>\n\n"אי אפשר להשלים את השיחה. אפשר לנסות שוב כשהטלפון יתקרר.\n\nבינתיים אפשר להתקשר רק למספרי חירום"</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>
<string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"הרשת הסלולרית לא זמינה. עליך להתחבר לרשת אלחוטית כדי להתקשר."</string>
- <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"כדי להתקשר, יש להזין מספר טלפון חוקי."</string>
+ <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"כדי להתקשר, הזן מספר טלפון חוקי."</string>
<string name="incall_error_call_failed" msgid="393508653582682539">"השיחה נכשלה."</string>
- <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"לא ניתן להוסיף את השיחה כרגע. אפשר לנסות לשלוח הודעה."</string>
+ <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"לא ניתן להוסיף את השיחה כרגע. ניתן לנסות לשלוח הודעה."</string>
<string name="incall_error_supp_service_unknown" msgid="8751177117194592623">"שירות לא נתמך"</string>
<string name="incall_error_supp_service_switch" msgid="5272822448189448479">"לא ניתן לעבור בין שיחות."</string>
<string name="incall_error_supp_service_resume" msgid="1276861499306817035">"לא ניתן להמשיך את השיחה."</string>
@@ -554,8 +553,8 @@
<string name="incall_error_supp_service_reject" msgid="3044363092441655912">"לא ניתן לדחות שיחה."</string>
<string name="incall_error_supp_service_hangup" msgid="836524952243836735">"לא ניתן לשחרר שיחות."</string>
<string name="incall_error_supp_service_hold" msgid="8535056414643540997">"לא ניתן להחזיק שיחות."</string>
- <string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"יש להתחבר לרשת אלחוטית כדי לבצע שיחה."</string>
- <string name="incall_error_promote_wfc" msgid="9164896813931363415">"יש להפעיל את \'שיחות Wi-Fi\' כדי להתקשר."</string>
+ <string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"התחבר לרשת אלחוטית כדי לבצע שיחה."</string>
+ <string name="incall_error_promote_wfc" msgid="9164896813931363415">"הפעל את \'שיחות Wi-Fi\' כדי להתקשר."</string>
<string name="emergency_information_hint" msgid="9208897544917793012">"מידע למקרה חירום"</string>
<string name="emergency_information_owner_hint" msgid="6256909888049185316">"בעלים"</string>
<string name="emergency_information_confirm_hint" msgid="5109017615894918914">"אפשר להקיש שוב כדי להציג את הפרטים"</string>
@@ -563,19 +562,19 @@
<string name="single_emergency_number_title" msgid="8413371079579067196">"מספר חירום"</string>
<string name="numerous_emergency_numbers_title" msgid="8972398932506755510">"מספרי חירום"</string>
<string name="emergency_call_shortcut_hint" msgid="1290485125107779500">"אפשר להקיש שוב כדי להתקשר אל <xliff:g id="EMERGENCY_NUMBER">%s</xliff:g>"</string>
- <string name="emergency_enable_radio_dialog_message" msgid="1695305158151408629">"הפעלת הרדיו מתבצעת…"</string>
- <string name="emergency_enable_radio_dialog_retry" msgid="4329131876852608587">"אין שירות. ניסיון חוזר מתבצע..."</string>
+ <string name="emergency_enable_radio_dialog_message" msgid="1695305158151408629">"מפעיל את הרדיו…"</string>
+ <string name="emergency_enable_radio_dialog_retry" msgid="4329131876852608587">"אין שירות. מנסה שוב..."</string>
<string name="radio_off_during_emergency_call" msgid="8011154134040481609">"אי אפשר לעבור למצב טיסה בזמן שיחת חירום."</string>
<string name="dial_emergency_error" msgid="825822413209026039">"לא ניתן להתקשר. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> אינו מספר חירום."</string>
- <string name="dial_emergency_empty_error" msgid="2785803395047793634">"לא ניתן להתקשר. יש לחייג למספר חירום."</string>
+ <string name="dial_emergency_empty_error" msgid="2785803395047793634">"לא ניתן להתקשר. חייג למספר חירום."</string>
<string name="dial_emergency_calling_not_available" msgid="6485846193794727823">"אי אפשר לבצע שיחות חירום"</string>
<string name="pin_puk_system_user_only" msgid="1045147220686867922">"רק הבעלים של המכשיר יכול להזין קודי אימות/PUK."</string>
<string name="police_type_description" msgid="2819533883972081757">"משטרה"</string>
<string name="ambulance_type_description" msgid="6798237503553180461">"אמבולנס"</string>
<string name="fire_type_description" msgid="6565200468934914930">"אש"</string>
<string name="description_concat_format" msgid="2014471565101724088">"%1$s, %2$s"</string>
- <string name="dialerKeyboardHintText" msgid="1115266533703764049">"שימוש במקלדת כדי לחייג"</string>
- <string name="onscreenHoldText" msgid="4025348842151665191">"השהיה"</string>
+ <string name="dialerKeyboardHintText" msgid="1115266533703764049">"השתמש במקלדת כדי לחייג"</string>
+ <string name="onscreenHoldText" msgid="4025348842151665191">"השהה"</string>
<string name="onscreenEndCallText" msgid="6138725377654842757">"סיום"</string>
<string name="onscreenShowDialpadText" msgid="658465753816164079">"לוח חיוג"</string>
<string name="onscreenMuteText" msgid="5470306116733843621">"השתקה"</string>
@@ -586,10 +585,10 @@
<string name="onscreenManageConferenceText" msgid="4700574060601755137">"ניהול שיחת ועידה"</string>
<string name="onscreenAudioText" msgid="7224226735052019986">"אודיו"</string>
<string name="onscreenVideoCallText" msgid="1743992456126258698">"שיחת וידאו"</string>
- <string name="importSimEntry" msgid="3892354284082689894">"ייבוא"</string>
- <string name="importAllSimEntries" msgid="2628391505643564007">"ייבוא הכול"</string>
- <string name="importingSimContacts" msgid="4995457122107888932">"ייבוא אנשי קשר מ-SIM מתבצע"</string>
- <string name="importToFDNfromContacts" msgid="5068664870738407341">"ייבוא מאנשי קשר"</string>
+ <string name="importSimEntry" msgid="3892354284082689894">"ייבא"</string>
+ <string name="importAllSimEntries" msgid="2628391505643564007">"ייבא הכל"</string>
+ <string name="importingSimContacts" msgid="4995457122107888932">"מייבא אנשי קשר מ-SIM"</string>
+ <string name="importToFDNfromContacts" msgid="5068664870738407341">"ייבא מאנשי קשר"</string>
<string name="singleContactImportedMsg" msgid="3619804066300998934">"איש הקשר יובא"</string>
<string name="failedToImportSingleContactMsg" msgid="228095510489830266">"ייבוא איש הקשר נכשל"</string>
<string name="hac_mode_title" msgid="4127986689621125468">"מכשירי שמיעה"</string>
@@ -605,16 +604,16 @@
<item msgid="2131559553795606483">"TTY VCO"</item>
</string-array>
<string name="dtmf_tones_title" msgid="7874845461117175236">"צלילי DTMF"</string>
- <string name="dtmf_tones_summary" msgid="2294822239899471201">"הגדרת האורך של צלילי DTMF"</string>
+ <string name="dtmf_tones_summary" msgid="2294822239899471201">"הגדר את האורך של צלילי DTMF"</string>
<string-array name="dtmf_tone_entries">
<item msgid="2271798469250155310">"רגיל"</item>
<item msgid="6044210222666533564">"ארוך"</item>
</string-array>
<string name="network_info_message" msgid="7599413947016532355">"הודעת רשת"</string>
<string name="network_error_message" msgid="4271579424089326618">"הודעת שגיאה"</string>
- <string name="ota_title_activate" msgid="4049645324841263423">"הפעלת הטלפון"</string>
- <string name="ota_touch_activate" msgid="838764494319694754">"יש לבצע שיחה מיוחדת כדי להפעיל את השירות לטלפון. \n\nלאחר הלחיצה על \'הפעלה\', יש להקשיב להוראות להפעלת הטלפון."</string>
- <string name="ota_hfa_activation_title" msgid="3300556778212729671">"ההפעלה מתבצעת..."</string>
+ <string name="ota_title_activate" msgid="4049645324841263423">"הפעל את הטלפון"</string>
+ <string name="ota_touch_activate" msgid="838764494319694754">"יש לבצע שיחה מיוחדת כדי להפעיל את השירות לטלפון. \n\nלאחר הלחיצה על \'הפעל\', הקשב להוראות להפעלת הטלפון."</string>
+ <string name="ota_hfa_activation_title" msgid="3300556778212729671">"מפעיל..."</string>
<string name="ota_hfa_activation_dialog_message" msgid="7921718445773342996">"הטלפון מפעיל את שירותי הנתונים שלך לנייד.\n\nהתהליך עשוי לארוך עד 5 דקות."</string>
<string name="ota_skip_activation_dialog_title" msgid="7666611236789203797">"לדלג על ההפעלה?"</string>
<string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"אם מדלגים על ההפעלה, אי אפשר להתקשר או להתחבר לרשתות נתונים לנייד (אך אפשר להתחבר לרשתות Wi-Fi). עד להפעלת הטלפון תופיע הודעה שמבקשת לבצע את ההפעלה בכל פעם שמדליקים את הטלפון."</string>
@@ -622,26 +621,26 @@
<string name="ota_activate" msgid="7939695753665438357">"הפעלה"</string>
<string name="ota_title_activate_success" msgid="1272135024761004889">"הטלפון מופעל."</string>
<string name="ota_title_problem_with_activation" msgid="7019745985413368726">"בעיה בהפעלה"</string>
- <string name="ota_listen" msgid="2772252405488894280">"יש לבצע את ההוראות הנאמרות עד ששומעים שההפעלה הושלמה."</string>
+ <string name="ota_listen" msgid="2772252405488894280">"בצע את ההוראות הנאמרות עד שתשמע שההפעלה הושלמה."</string>
<string name="ota_speaker" msgid="1086766980329820528">"רמקול"</string>
- <string name="ota_progress" msgid="8837259285255700132">"התכנות של הטלפון שלך מתבצע…"</string>
+ <string name="ota_progress" msgid="8837259285255700132">"מתכנת את הטלפון שלך…"</string>
<string name="ota_failure" msgid="5674217489921481576">"לא ניתן היה לתכנת את הטלפון שלך"</string>
- <string name="ota_successful" msgid="1106825981548107774">"הטלפון שלך מופעל כעת. ייתכן שיהיה צורך להמתין עד 15 דקות להפעלת השירות."</string>
+ <string name="ota_successful" msgid="1106825981548107774">"הטלפון שלך מופעל כעת. ייתכן שתמתין עד 15 דקות להפעלת השירות."</string>
<string name="ota_unsuccessful" msgid="8531037653803955754">"הטלפון שלך לא הופעל. \nייתכן שעליך למצוא מקום שהקליטה בו טובה יותר (ליד חלון או בחוץ). \n\nנסה שוב או התקשר לשירות לקוחות לקבלת אפשרויות נוספות."</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>
+ <string name="phone_entered_ecm_text" msgid="8431238297843035842">"נכנס למצב חירום של התקשרות חזרה"</string>
<string name="phone_in_ecm_notification_title" msgid="6825016389926367946">"מצב חירום של התקשרות חזרה"</string>
<string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"חיבור נתונים מושבת"</string>
<string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"אין חיבור לרשת נתונים עד <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
<plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
- <item quantity="two">הטלפון יהיה במצב חירום של התקשרות חזרה למשך <xliff:g id="COUNT_1">%s</xliff:g> דקות. בזמן שהטלפון במצב הזה, לא ניתן להשתמש באפליקציות הזקוקות לחבילת גלישה. האם ברצונך לצאת כעת?</item>
- <item quantity="many">הטלפון יהיה במצב חירום של התקשרות חזרה למשך <xliff:g id="COUNT_1">%s</xliff:g> דקות. בזמן שהטלפון במצב הזה, לא ניתן להשתמש באפליקציות הזקוקות לחבילת גלישה. האם ברצונך לצאת כעת?</item>
- <item quantity="other">הטלפון יהיה במצב חירום של התקשרות חזרה למשך <xliff:g id="COUNT_1">%s</xliff:g> דקות. בזמן שהטלפון במצב הזה, לא ניתן להשתמש באפליקציות הזקוקות לחבילת גלישה. האם ברצונך לצאת כעת?</item>
- <item quantity="one">הטלפון יהיה במצב חירום של התקשרות חזרה למשך דקה <xliff:g id="COUNT_0">%s</xliff:g>. בזמן שהטלפון במצב הזה, לא ניתן להשתמש באפליקציות הזקוקות לחבילת גלישה. האם ברצונך לצאת כעת?</item>
+ <item quantity="two">הטלפון יהיה במצב חירום של התקשרות חזרה למשך <xliff:g id="COUNT_1">%s</xliff:g> דקות. בזמן שהטלפון במצב הזה, לא ניתן להשתמש באפליקציות הזקוקות לחיבור נתונים. האם ברצונך לצאת כעת?</item>
+ <item quantity="many">הטלפון יהיה במצב חירום של התקשרות חזרה למשך <xliff:g id="COUNT_1">%s</xliff:g> דקות. בזמן שהטלפון במצב הזה, לא ניתן להשתמש באפליקציות הזקוקות לחיבור נתונים. האם ברצונך לצאת כעת?</item>
+ <item quantity="other">הטלפון יהיה במצב חירום של התקשרות חזרה למשך <xliff:g id="COUNT_1">%s</xliff:g> דקות. בזמן שהטלפון במצב הזה, לא ניתן להשתמש באפליקציות הזקוקות לחיבור נתונים. האם ברצונך לצאת כעת?</item>
+ <item quantity="one">הטלפון יהיה במצב חירום של התקשרות חזרה למשך דקה <xliff:g id="COUNT_0">%s</xliff:g>. בזמן שהטלפון במצב הזה, לא ניתן להשתמש באפליקציות הזקוקות לחיבור נתונים. האם ברצונך לצאת כעת?</item>
</plurals>
<plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
<item quantity="two">הפעולה הנבחרת אינה זמינה במצב חירום של התקשרות חזרה. הטלפון יהיה במצב זה למשך <xliff:g id="COUNT_1">%s</xliff:g> דקות. האם ברצונך לצאת כעת?</item>
@@ -653,7 +652,7 @@
<string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"יציאה ממצב התקשרות חזרה בחירום"</string>
<string name="alert_dialog_yes" msgid="3532525979632841417">"כן"</string>
<string name="alert_dialog_no" msgid="1075632654085988420">"לא"</string>
- <string name="alert_dialog_dismiss" msgid="1336356286354517054">"סגירה"</string>
+ <string name="alert_dialog_dismiss" msgid="1336356286354517054">"סגור"</string>
<string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"הטלפון במצב \'התקשרות בחזרה בחירום\'"</string>
<string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"עד <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
<plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
@@ -668,10 +667,10 @@
<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="goPrivate" msgid="4645108311382209551">"מעבר לשיחה פרטית"</string>
- <string name="selectContact" msgid="1527612842599767382">"בחירת איש קשר"</string>
+ <string name="goPrivate" msgid="4645108311382209551">"עבור לשיחה פרטית"</string>
+ <string name="selectContact" msgid="1527612842599767382">"בחר איש קשר"</string>
<string name="not_voice_capable" msgid="2819996734252084253">"חיוג קולי אינו נתמך"</string>
- <string name="description_dial_button" msgid="8614631902795087259">"חויג"</string>
+ <string name="description_dial_button" msgid="8614631902795087259">"חייג"</string>
<string name="description_dialpad_button" msgid="7395114120463883623">"הצגת לוח החיוג"</string>
<string name="pane_title_emergency_dialpad" msgid="3627372514638694401">"לוח חיוג לחירום"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="6610414098912832120">"דואר קולי ויזואלי"</string>
@@ -679,10 +678,10 @@
<string name="voicemail_change_pin_dialog_title" msgid="4633077715231764435">"שינוי קוד הגישה"</string>
<string name="preference_category_ringtone" msgid="8787281191375434976">"רינגטון ורטט"</string>
<string name="pstn_connection_service_label" msgid="9200102709997537069">"כרטיסי SIM מובנים"</string>
- <string name="enable_video_calling_title" msgid="7246600931634161830">"הפעלת שיחות וידאו"</string>
+ <string name="enable_video_calling_title" msgid="7246600931634161830">"הפעל שיחות וידאו"</string>
<string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"כדי להפעיל שיחת וידאו, עליך להפעיל את \'מצב 4G LTE משופר\' ב\'הגדרות רשת\'."</string>
<string name="enable_video_calling_dialog_settings" msgid="8697890611305307110">"הגדרות רשת"</string>
- <string name="enable_video_calling_dialog_close" msgid="4298929725917045270">"סגירה"</string>
+ <string name="enable_video_calling_dialog_close" msgid="4298929725917045270">"סגור"</string>
<string name="sim_label_emergency_calls" msgid="9078241989421522310">"שיחות חירום"</string>
<string name="sim_description_emergency_calls" msgid="5146872803938897296">"שיחות חירום בלבד"</string>
<string name="sim_description_default" msgid="7474671114363724971">"כרטיס SIM, חריץ: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
@@ -693,7 +692,7 @@
<string name="message_decode_error" msgid="1061856591500290887">"אירעה שגיאה בעת פענוח ההודעה."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"כרטיס SIM הפעיל את השירות שלך ועדכן את יכולות הנדידה של הטלפון."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"יש יותר מדי שיחות פעילות. כדי להתחיל שיחה חדשה עליך לסיים או למזג חלק מהשיחות הפעילות."</string>
- <string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"לא ניתן להתחבר. יש להכניס כרטיס SIM תקין."</string>
+ <string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"לא ניתן להתחבר. הכנס כרטיס SIM תקין."</string>
<string name="callFailed_wifi_lost" msgid="1788036730589163141">"השיחה הסתיימה כי החיבור לרשת ה-Wi-Fi נותק."</string>
<string name="dialFailed_low_battery" msgid="6857904237423407056">"אי אפשר לבצע את שיחת הווידאו מכיוון שהסוללה חלשה."</string>
<string name="callFailed_low_battery" msgid="4056828320214416182">"שיחת הווידאו הסתיימה מכיוון שהסוללה חלשה."</string>
@@ -703,12 +702,12 @@
<string name="change_pin_continue_label" msgid="5177011752453506371">"המשך"</string>
<string name="change_pin_cancel_label" msgid="2301711566758827936">"ביטול"</string>
<string name="change_pin_ok_label" msgid="6861082678817785330">"אישור"</string>
- <string name="change_pin_enter_old_pin_header" msgid="853151335217594829">"אישור קוד הגישה הישן"</string>
- <string name="change_pin_enter_old_pin_hint" msgid="8801292976275169367">"יש להזין את קוד הגישה לדואר הקולי כדי להמשיך."</string>
- <string name="change_pin_enter_new_pin_header" msgid="4739465616733486118">"הגדרת קוד גישה חדש"</string>
+ <string name="change_pin_enter_old_pin_header" msgid="853151335217594829">"אשר את קוד הגישה הישן"</string>
+ <string name="change_pin_enter_old_pin_hint" msgid="8801292976275169367">"הזן את קוד הגישה לדואר הקולי כדי להמשיך."</string>
+ <string name="change_pin_enter_new_pin_header" msgid="4739465616733486118">"הגדר קוד גישה חדש"</string>
<string name="change_pin_enter_new_pin_hint" msgid="2326038476516364210">"האורך של קוד הגישה חייב להיות <xliff:g id="MAX">%2$d</xliff:g>-<xliff:g id="MIN">%1$d</xliff:g> ספרות."</string>
- <string name="change_pin_confirm_pin_header" msgid="2606303906320705726">"אישור קוד הגישה"</string>
- <string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"קודי הגישה לא תואמים"</string>
+ <string name="change_pin_confirm_pin_header" msgid="2606303906320705726">"אשר את קוד הגישה"</string>
+ <string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"קודי הגישה אינם תואמים"</string>
<string name="change_pin_succeeded" msgid="2504705600693014403">"קוד הגישה לדואר הקולי עודכן"</string>
<string name="change_pin_system_error" msgid="7772788809875146873">"לא ניתן להגדיר את קוד הגישה"</string>
<string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"חבילת הגלישה בנדידה הושבתה"</string>
@@ -907,7 +906,7 @@
<string name="radio_info_data_network_type_label" msgid="8886597029237501929">"סוג רשת נתונים:"</string>
<string name="phone_index_label" msgid="6222406512768964268">"בחירת אינדקס טלפון"</string>
<string name="radio_info_set_perferred_label" msgid="7408131389363136210">"הגדרת סוג רשת מועדף:"</string>
- <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"נדנוד לשם המארח (www.google.com) מסוג IPv4:"</string>
+ <string name="radio_info_ping_hostname_v4" msgid="6951237885381284790">"נדנד לשם המארח (www.google.com) מסוג IPv4:"</string>
<string name="radio_info_ping_hostname_v6" msgid="2748637889486554603">"נדנוד לשם המארח (www.google.com) מסוג IPv6:"</string>
<string name="radio_info_http_client_test" msgid="1329583721088428238">"בדיקת לקוח HTTP:"</string>
<string name="ping_test_label" msgid="448617502935719694">"הפעלת בדיקת פינג"</string>
@@ -921,11 +920,12 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"הגדרת החלוקה לפרוסות ברשת:"</string>
<string name="band_mode_title" msgid="7988822920724576842">"הגדרת מצב תדרים של רדיו"</string>
- <string name="band_mode_loading" msgid="795923726636735967">"הטעינה של רשימת התדרים מתבצעת…"</string>
+ <string name="band_mode_loading" msgid="795923726636735967">"טוען רשימת תדרים…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"הגדרה"</string>
<string name="band_mode_failed" msgid="1707488541847192924">"נכשל"</string>
- <string name="band_mode_succeeded" msgid="2230018000534761063">"המעבר הצליח"</string>
+ <string name="band_mode_succeeded" msgid="2230018000534761063">"עבר בהצלחה"</string>
<string name="phone_info_label" product="tablet" msgid="7477478709388477397">"פרטי טאבלט"</string>
<string name="phone_info_label" product="default" msgid="1784175881556791433">"פרטי טלפון"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"פרטי ניהול תצורה של ספק סלולרי"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 6d65ce7..c304b74 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -75,7 +75,7 @@
<string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"アカウントを設定"</string>
<string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"すべての通話アカウント"</string>
<string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"通話できるアカウントを選択"</string>
- <string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi 通話"</string>
+ <string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi通話"</string>
<string name="connection_service_default_label" msgid="7332739049855715584">"組み込みの接続サービス"</string>
<string name="voicemail" msgid="7697769412804195032">"ボイスメール"</string>
<string name="voicemail_settings_with_label" msgid="4228431668214894138">"ボイスメール(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -490,7 +490,7 @@
<string name="newPinLabel" msgid="3585899083055354732">"新しいPIN"</string>
<string name="confirmPinLabel" msgid="7783531218662473778">"新しいPINを確認"</string>
<string name="badPin" msgid="4549286285015892321">"入力した古いPINは正しくありません。入力し直してください。"</string>
- <string name="mismatchPin" msgid="1467254768290323845">"入力した PIN が一致しません。入力し直してください。"</string>
+ <string name="mismatchPin" msgid="1467254768290323845">"入力したPINは一致しません。入力し直してください。"</string>
<string name="invalidPin" msgid="7363723429414001979">"4~8桁の数字のPINを入力してください。"</string>
<string name="disable_sim_pin" msgid="3112303905548613752">"SIM PINの消去"</string>
<string name="enable_sim_pin" msgid="445461050748318980">"SIM PINの設定"</string>
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"通話を発信するには、モバイル ネットワークを ON にし、機内モードまたはバッテリー セーバー モードを OFF にしてください。"</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_thermal" product="default" msgid="8695809601655300168"><b>"スマートフォンが熱くなりすぎています"</b>\n\n"この通話を完了できません。スマートフォンの熱が冷めてから、もう一度お試しください。\n\n緊急通報は通常どおり発信できます。"</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>
@@ -682,7 +681,7 @@
<string name="sim_description_default" msgid="7474671114363724971">"SIMカード、スロット: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"ユーザー補助機能"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi 通話の着信"</string>
- <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi 通話"</string>
+ <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi通話"</string>
<string name="emergency_action_launch_hint" msgid="2762016865340891314">"開くにはもう一度タップしてください"</string>
<string name="message_decode_error" msgid="1061856591500290887">"メッセージのデコード中にエラーが発生しました。"</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIMカードでサービスが有効になり、スマートフォンのローミング機能が更新されています。"</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 dfd6c9a..2b6a1f6 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"ტელეფონი ძალიან ცხელია"</b>\n\n"ამ ზარის დასრულება შეუძლებელია. სცადეთ ხელახლა, როდესაც ტელეფონი გაგრილდება.\n\nგადაუდებელი ზარების განხორციელება მაინც შეგიძლიათ."</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>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 baf170c..d488dcd 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -63,18 +63,18 @@
<string name="labelCdmaMore_with_label" msgid="7759692829160238152">"CDMA қоңырау параметрлері (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="apn_settings" msgid="1978652203074756623">"APN"</string>
<string name="settings_label" msgid="9101778088412567956">"Желі параметрлері"</string>
- <string name="phone_accounts" msgid="1216879437523774604">"Қоңырау шалу аккаунттары"</string>
+ <string name="phone_accounts" msgid="1216879437523774604">"Қоңырау шалу есептік жазбалары"</string>
<string name="phone_accounts_make_calls_with" msgid="16747814788918145">"Келесінің көмегімен қоңыраулар шалу"</string>
<string name="phone_accounts_make_sip_calls_with" msgid="4691221006731847255">"Келесінің көмегімен SIP қоңырауларын шалу"</string>
<string name="phone_accounts_ask_every_time" msgid="6192347582666047168">"Алдымен сұрау"</string>
<string name="phone_accounts_default_account_label" msgid="5107598881335931101">"Қолжетімді желі жоқ"</string>
<string name="phone_accounts_settings_header" msgid="6296501692964706536">"Параметрлер"</string>
- <string name="phone_accounts_choose_accounts" msgid="4748805293314824974">"Аккаунттарды таңдау"</string>
- <string name="phone_accounts_selection_header" msgid="2945830843104108440">"Телефон аккаунттары"</string>
- <string name="phone_accounts_add_sip_account" msgid="1437634802033309305">"SIP аккаунтын қосу"</string>
- <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"Аккаунт параметрлерін конфигурациялау"</string>
- <string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"Барлық қоңырау шалу аккаунттары"</string>
- <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"Қай аккаунттардың қоңырау шала алатынын таңдау"</string>
+ <string name="phone_accounts_choose_accounts" msgid="4748805293314824974">"Есептік жазбаларды таңдау"</string>
+ <string name="phone_accounts_selection_header" msgid="2945830843104108440">"Телефон есептік жазбалары"</string>
+ <string name="phone_accounts_add_sip_account" msgid="1437634802033309305">"SIP есептік жазбасын қосу"</string>
+ <string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"Есептік жазба параметрлерін конфигурациялау"</string>
+ <string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"Барлық қоңырау шалу есептік жазбалары"</string>
+ <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"Қай есептік жазбалардың қоңырау шала алатынын таңдау"</string>
<string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi қоңыраулары"</string>
<string name="connection_service_default_label" msgid="7332739049855715584">"Кірістірілген байланыс қызметі"</string>
<string name="voicemail" msgid="7697769412804195032">"Дауыстық пошта"</string>
@@ -294,8 +294,8 @@
<string name="limited_sim_function_notification_title" msgid="612715399099846281">"SIM картасының жұмысы шектеулі"</string>
<string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"<xliff:g id="PHONE_NUMBER">%2$s</xliff:g> нөмірін пайдаланған кезде <xliff:g id="CARRIER_NAME">%1$s</xliff:g> қоңыраулары мен дерек тасымалдау қызметтері бөгелуі мүмкін."</string>
<string name="limited_sim_function_notification_message" msgid="5338638075496721160">"Екінші SIM картасын пайдаланылғанда, <xliff:g id="CARRIER_NAME">%1$s</xliff:g> қоңырауы мен дерек қызметі бөгелуі мүмкін."</string>
- <string name="sip_accounts_removed_notification_title" msgid="3528076957535736095">"Қолданыстан шыққан SIP аккаунттары табылды және өшірілді"</string>
- <string name="sip_accounts_removed_notification_message" msgid="1916856744869791592">"Android платформасында бұдан былай SIP арқылы қоңырау шалу мүмкін емес.\nҚазіргі SIP аккаунтларыңыз (<xliff:g id="REMOVED_SIP_ACCOUNTS">%s</xliff:g>) өшірілді.\nҚоңырау шалуға қолданылатын әдепкі аккаунт параметрін растаңыз."</string>
+ <string name="sip_accounts_removed_notification_title" msgid="3528076957535736095">"Қолданыстан шыққан SIP есептік жазбалары табылды және өшірілді"</string>
+ <string name="sip_accounts_removed_notification_message" msgid="1916856744869791592">"Android платформасында бұдан былай SIP арқылы қоңырау шалу мүмкін емес.\nҚазіргі SIP есептік жазбаларыңыз (<xliff:g id="REMOVED_SIP_ACCOUNTS">%s</xliff:g>) өшірілді.\nҚоңырау шалуға қолданылатын әдепкі есептік жазба параметрін растаңыз."</string>
<string name="sip_accounts_removed_notification_action" msgid="3772778402370555562">"Параметрлерге өту"</string>
<string name="data_usage_title" msgid="8438592133893837464">"Қолданба деректерінің трафигі"</string>
<string name="data_usage_template" msgid="6287906680674061783">"<xliff:g id="ID_2">%2$s</xliff:g> аралығында <xliff:g id="ID_1">%1$s</xliff:g> мобильдік дерек қолданылды"</string>
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"Телефон қызып кетті"</b>\n\n"Қоңырауды аяқтау мүмкін емес. Телефон суығаннан кейін, әрекетті қайталап көріңіз.\n\nҚұтқару қызметіне қоңырау шалу бұрынғыша мүмкін болады."</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>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<string name="band_mode_title" msgid="7988822920724576842">"Радиожолақ режимін орнату"</string>
<string name="band_mode_loading" msgid="795923726636735967">"Жолақтар тізімі жүктелуде…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"Орнату"</string>
@@ -926,5 +927,5 @@
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"Операторды инциализациялауды іске қосу"</string>
<string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"Bluetooth сигналы нашар. Спикерфонға ауысып көріңіз."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"Қоңырау сапасы туралы хабарландыру"</string>
- <string name="notification_channel_sip_account" msgid="1261816025156179637">"Қолданыстан шыққан SIP аккаунттары"</string>
+ <string name="notification_channel_sip_account" msgid="1261816025156179637">"Қолданыстан шыққан SIP есептік жазбалары"</string>
</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index fb246f9..c280faa 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"ទូរសព្ទក្ដៅពេក"</b>\n\n"មិនអាចធ្វើការហៅទូរសព្ទនេះបានទេ។ សូមព្យាយាមម្ដងទៀត នៅពេលទូរសព្ទរបស់អ្នកចុះត្រជាក់។\n\nអ្នកនៅតែអាចធ្វើការហៅទៅលេខសង្គ្រោះបន្ទាន់បាន។"</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>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"ការកំណត់រចនាសម្ព័ន្ធការបែងចែកបណ្ដាញ៖"</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 c94e6c7..ced50c5 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -61,7 +61,7 @@
<string name="labelGsmMore_with_label" msgid="3206015314393246224">"GSM ಕರೆ ಸೆಟ್ಟಿಂಗ್ಗಳು (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="labelCDMAMore" msgid="7937441382611224632">"CDMA ಕರೆ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="labelCdmaMore_with_label" msgid="7759692829160238152">"CDMA ಕರೆ ಸೆಟ್ಟಿಂಗ್ಗಳು (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="apn_settings" msgid="1978652203074756623">"ಆ್ಯಕ್ಸೆಸ್ ಪಾಯಿಂಟ್ ಹೆಸರುಗಳು"</string>
+ <string name="apn_settings" msgid="1978652203074756623">"ಪ್ರವೇಶಿಸುವಿಕೆ ಕೇಂದ್ರದ ಹೆಸರುಗಳು"</string>
<string name="settings_label" msgid="9101778088412567956">"ನೆಟ್ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="phone_accounts" msgid="1216879437523774604">"ಕರೆ ಮಾಡುವ ಖಾತೆಗಳು"</string>
<string name="phone_accounts_make_calls_with" msgid="16747814788918145">"ಇದರೊಂದಿಗೆ ಕರೆಗಳನ್ನು ಮಾಡಿ"</string>
@@ -537,11 +537,10 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"ಫೋನ್ ತುಂಬಾ ಬಿಸಿಯಾಗಿದೆ"</b>\n\n"ಈ ಕರೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಫೋನ್ ತಣ್ಣಗಾದ ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.\n\nನೀವು ಈಗಲೂ ತುರ್ತು ಕರೆಗಳನ್ನು ಮಾಡಬಹುದು."</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>
- <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ ಲಭ್ಯವಿಲ್ಲ. ಕರೆ ಮಾಡಲು ವೈರ್ಲೆಸ್ ನೆಟ್ವರ್ಕ್ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿ."</string>
+ <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ ಲಭ್ಯವಿಲ್ಲ. ಕರೆ ಮಾಡಲು ವೈರ್ಲೆಸ್ ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕಿಸಿ."</string>
<string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"ಕರೆಯನ್ನು ಮಾಡಲು, ಮಾನ್ಯವಾದ ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ."</string>
<string name="incall_error_call_failed" msgid="393508653582682539">"ಕರೆ ವಿಫಲವಾಗಿದೆ."</string>
<string name="incall_error_cannot_add_call" msgid="5425764862628655443">"ಈ ಸಮಯದಲ್ಲಿ ಕರೆಯನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಸಂದೇಶವನ್ನು ಕಳುಹಿಸುವ ಮೂಲಕ ನೀವು ಸಂಪರ್ಕಿಸಲು ಪ್ರಯತ್ನಿಸಬಹುದು."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 52ad67b..541dc23 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"휴대전화의 온도가 너무 높습니다."</b>\n\n"현재 전화를 걸 수 없습니다. 휴대전화의 온도가 내려가면 다시 시도해 보세요.\n\n긴급 전화 기능은 계속해서 사용할 수 있습니다."</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>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 c4ea6fa..5d533a6 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"Телефон ысып кетти"</b>\n\n"Бул чалуу аяктабай жатат. Телефон муздагандан кийин кайра аракет кылыңыз.\n\nШашылыш чалууларды аткара берсеңиз болот."</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>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 a7b1640..d09086d 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"ໂທລະສັບຮ້ອນເກີນໄປ"</b>\n\n"ບໍ່ສາມາດເຮັດການໂທນີ້ໄດ້. ກະລຸນາລອງອີກຄັ້ງເມື່ອໂທລະສັບຂອງທ່ານເຢັນລົງ.\n\nທ່ານຍັງສາມາດໂທສຸກເສີນໄດ້."</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>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"ການກຳນົດການແບ່ງສ່ວນເຄືອຂ່າຍ:"</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 44e358f..c0b663b 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Įjunkite mobiliojo ryšio tinklą, išjunkite lėktuvo arba akumuliatoriaus tausojimo priemonės režimą, kad galėtumėte skambinti."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Išjunkite lėktuvo režimą, kad galėtumėte skambinti."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Išjunkite lėktuvo režimą arba prisijunkite prie belaidžio ryšio tinklo, kad galėtumėte skambinti."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefonas per karštas"</b>\n\n"Negalima užbaigti šio skambučio. Bandykite dar kartą, kai telefonas atvės.\n\nJūs vis dar galite skambinti pagalbos numeriais."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Jei norite skambinti ne pagalbos numeriu, išjunkite atgalinio skambinimo pagalbos numeriu režimą."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Neregistruota tinkle."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilusis tinklas negalimas."</string>
@@ -921,6 +920,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 5fe13bb..2d710a7 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -537,7 +537,6 @@
<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_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Tālrunis ir pārkarsis"</b>\n\n"Nevar veikt šo zvanu. Kad tālrunis būs atdzisis, mēģiniet vēlreiz.\n\nJoprojām varat veikt ārkārtas izsaukumus."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Lai veiktu parastu zvanu, izejiet no ārkārtas atzvana režīma."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Tīklā nav reģistrēts."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilais tīkls nav pieejams."</string>
@@ -918,6 +917,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 b8f98df..7f72fa5 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"Телефонот е премногу загреан"</b>\n\n"Повиков не може да се заврши. Обидете се повторно кога ќе се подизлади телефонот.\n\nСѐ уште може да воспоставувате итни повици."</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>
@@ -615,9 +614,9 @@
<string name="ota_title_activate" msgid="4049645324841263423">"Активирај го телефонот"</string>
<string name="ota_touch_activate" msgid="838764494319694754">"Треба да се направи посебен повик за да ја активирате вашата телефонска услуга. \n\nПо притискање на „Активирај“, слушнете ги упатствата дадени за да го активирате вашиот телефон."</string>
<string name="ota_hfa_activation_title" msgid="3300556778212729671">"Се активира..."</string>
- <string name="ota_hfa_activation_dialog_message" msgid="7921718445773342996">"Телефонот ја активира услугата за мобилен интернет.\n\nОва може да потрае до 5 минути."</string>
+ <string name="ota_hfa_activation_dialog_message" msgid="7921718445773342996">"Телефонот ја активира услугата за мобилни податоци.\n\nОва може да потрае до 5 минути."</string>
<string name="ota_skip_activation_dialog_title" msgid="7666611236789203797">"Прескокни активација?"</string>
- <string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"Ако ја прескокнете активацијата, не може да воспоставувате повици или да се поврзувате на мрежи за мобилен интернет (иако може да се поврзувате со Wi-Fi мрежи). Додека не го активирате вашиот телефон, ќе ви стигнува порака да го активирате секој пат кога ќе го вклучите."</string>
+ <string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"Ако ја прескокнете активацијата, не може да воспоставувате повици или да се поврзувате на мрежи за мобилни податоци (иако може да се поврзувате со Wi-Fi мрежи). Додека не го активирате вашиот телефон, ќе ви стигнува порака да го активирате секој пат кога ќе го вклучите."</string>
<string name="ota_skip_activation_dialog_skip_label" msgid="5908029466817825633">"Прескокни"</string>
<string name="ota_activate" msgid="7939695753665438357">"Активирај"</string>
<string name="ota_title_activate_success" msgid="1272135024761004889">"Телефонот е активиран."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 7963e41..4703be3 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -340,22 +340,22 @@
<string name="maintenance_disable" msgid="2121032601497725602">"അറ്റകുറ്റപ്പണി സേവനങ്ങൾ പ്രവർത്തനരഹിതമാക്കി"</string>
<string name="general_news_settings" msgid="2670499575962080411">"പൊതുവായ വാർത്തകൾ"</string>
<string name="bf_news_settings" msgid="8571709425370794221">"ബിസിനസ്സ്, സാമ്പത്തിക വാർത്തകൾ"</string>
- <string name="sports_news_settings" msgid="2684364556989168438">"കായിക വാർത്തകൾ"</string>
- <string name="entertainment_news_settings" msgid="4228527702346305543">"വിനോദ വാർത്തകൾ"</string>
+ <string name="sports_news_settings" msgid="2684364556989168438">"കായിക വാർത്ത"</string>
+ <string name="entertainment_news_settings" msgid="4228527702346305543">"വിനോദവാർത്ത"</string>
<string name="enable_disable_local" msgid="7654175079979415572">"പ്രാദേശികം"</string>
- <string name="local_enable" msgid="790606890868710629">"പ്രാദേശിക വാർത്തകൾ പ്രവർത്തനക്ഷമമാക്കി"</string>
- <string name="local_disable" msgid="7649945293198602877">"പ്രാദേശിക വാർത്തകൾ പ്രവർത്തനരഹിതമാക്കി"</string>
+ <string name="local_enable" msgid="790606890868710629">"പ്രാദേശിക വാർത്ത പ്രവർത്തനക്ഷമമാക്കി"</string>
+ <string name="local_disable" msgid="7649945293198602877">"പ്രാദേശിക വാർത്ത പ്രവർത്തനരഹിതമാക്കി"</string>
<string name="enable_disable_regional" msgid="5783403191376564638">"പ്രാദേശികം"</string>
<string name="regional_enable" msgid="7730109417536296079">"പ്രാദേശിക വാർത്തകൾ പ്രവർത്തനക്ഷമമാക്കി"</string>
<string name="regional_disable" msgid="3781951818157772545">"പ്രാദേശിക വാർത്തകൾ പ്രവർത്തനരഹിതമാക്കി"</string>
<string name="enable_disable_national" msgid="6198481711934897632">"ദേശീയം"</string>
- <string name="national_enable" msgid="5159683504138239304">"ദേശീയ വാർത്തകൾ പ്രവർത്തനക്ഷമമാക്കി"</string>
- <string name="national_disable" msgid="8484356368757118987">"ദേശീയ വാർത്തകൾ പ്രവർത്തനരഹിതമാക്കി"</string>
+ <string name="national_enable" msgid="5159683504138239304">"ദേശീയ വാർത്ത പ്രവർത്തനക്ഷമമാക്കി"</string>
+ <string name="national_disable" msgid="8484356368757118987">"ദേശീയ വാർത്ത പ്രവർത്തനരഹിതമാക്കി"</string>
<string name="enable_disable_international" msgid="4204334217211198792">"അന്തര്ദ്ദേശീയം"</string>
- <string name="international_enable" msgid="8943466745792690340">"അന്തർദ്ദേശീയ വാർത്തകൾ പ്രവർത്തനക്ഷമമാക്കി"</string>
+ <string name="international_enable" msgid="8943466745792690340">"അന്തർദ്ദേശീയ വാർത്ത പ്രവർത്തനക്ഷമമാക്കി"</string>
<string name="international_disable" msgid="4803498658100318265">"അന്തർദ്ദേശീയ വാർത്തകൾ പ്രവർത്തനരഹിതമാക്കി"</string>
<string name="list_language_title" msgid="1850167908665485738">"ഭാഷ"</string>
- <string name="list_language_summary" msgid="7921756070782277559">"വാർത്താഭാഷ തിരഞ്ഞെടുക്കുക"</string>
+ <string name="list_language_summary" msgid="7921756070782277559">"വാർത്താഭാഷ തിരഞ്ഞെടുക്"</string>
<string-array name="list_language_entries">
<item msgid="2347238508726934281">"ഇംഗ്ലീഷ്"</item>
<item msgid="5172468397620875174">"ഫ്രഞ്ച്"</item>
@@ -405,9 +405,9 @@
<string name="enable_disable_mhh" msgid="715930476289202466">"മെഡിക്കൽ, ആരോഗ്യം, ആശുപത്രി എന്നിവ"</string>
<string name="mhh_enable" msgid="7224396815285147008">"മെഡിക്കൽ, ആരോഗ്യം, ആശുപത്രി എന്നിവ പ്രവർത്തനക്ഷമമാക്കി"</string>
<string name="mhh_disable" msgid="5503643028885686265">"മെഡിക്കൽ, ആരോഗ്യം, ആശുപത്രി എന്നിവ പ്രവർത്തനരഹിതമാക്കി"</string>
- <string name="enable_disable_technology_news" msgid="2794845609698078400">"സാങ്കേതിക വാർത്തകൾ"</string>
- <string name="technology_news_enable" msgid="1908991199492598311">"സാങ്കേതിക വാർത്തകൾ പ്രവർത്തനക്ഷമമാക്കി"</string>
- <string name="technology_news_disable" msgid="8388582607149800889">"സാങ്കേതിക വാർത്തകൾ പ്രവർത്തനരഹിതമാക്കി"</string>
+ <string name="enable_disable_technology_news" msgid="2794845609698078400">"സാങ്കേതിക വാർത്ത"</string>
+ <string name="technology_news_enable" msgid="1908991199492598311">"സാങ്കേതിക വാർത്ത പ്രവർത്തനക്ഷമമാക്കി"</string>
+ <string name="technology_news_disable" msgid="8388582607149800889">"സാങ്കേതിക വാർത്ത പ്രവർത്തനരഹിതമാക്കി"</string>
<string name="enable_disable_multi_category" msgid="5958248155437940625">"ഒന്നിലധികം വിഭാഗം"</string>
<string name="multi_category_enable" msgid="4531915767817483960">"ഒന്നിലധികം വിഭാഗം പ്രവർത്തനക്ഷമമാക്കി"</string>
<string name="multi_category_disable" msgid="6325934413701238104">"ഒന്നിലധികം വിഭാഗം പ്രവർത്തനരഹിതമാക്കി"</string>
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"ഫോൺ വളരെയധികം ചൂടായിരിക്കുന്നു"</b>\n\n"ഈ കോൾ പൂർത്തിയാക്കാനാകില്ല. ഫോൺ തണുക്കുമ്പോൾ വീണ്ടും ശ്രമിക്കുക.\n\nഎമർജൻസി കോളുകൾ നിങ്ങൾക്ക് ഇപ്പോഴും ചെയ്യാവുന്നതാണ്."</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>
@@ -878,8 +877,8 @@
<string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
<string name="radio_info_subid" msgid="6839966868621703203">"നിലവിലെ ഉപഐഡി:"</string>
<string name="radio_info_dds" msgid="1122593144425697126">"ഡിഫോൾട്ട് ഡാറ്റാ സിമ്മിന്റെ ഉപഐഡി:"</string>
- <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ബാൻഡ്വിഡ്ത് (kbps):"</string>
- <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL ബാൻഡ്വിഡ്ത് (kbps):"</string>
+ <string name="radio_info_dl_kbps" msgid="2382922659525318726">"DL ബാൻഡ്വിത്ത് (kbps):"</string>
+ <string name="radio_info_ul_kbps" msgid="2102225400904799036">"UL ബാൻഡ്വിത്ത് (kbps):"</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>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 48ac8c0..783c821 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -49,7 +49,7 @@
<string name="add_vm_number_str" msgid="7368168964435881637">"Дугаар нэмэх"</string>
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"Дуут шуудангийн тохиргоог зөвхөн Үндсэн хэрэглэгч өөрчлөх боломжтой."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"Таны SIM карт тайлагдлаа. Таны утас тайлагдаж байна…"</string>
- <string name="label_ndp" msgid="7617392683877410341">"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>
@@ -162,15 +162,15 @@
<string name="no_change" msgid="3737264882821031892">"Ямар ч өөрчлөлт хийгдсэнгүй."</string>
<string name="sum_voicemail_choose_provider" msgid="6750824719081403773">"Дуут шуудангийн үйлчилгээг сонгох"</string>
<string name="voicemail_default" msgid="6427575113775462077">"Таны оператор компани"</string>
- <string name="vm_change_pin_old_pin" msgid="7154951790929009241">"Хуучин ПИН"</string>
- <string name="vm_change_pin_new_pin" msgid="2656200418481288069">"Шинэ ПИН"</string>
+ <string name="vm_change_pin_old_pin" msgid="7154951790929009241">"Хуучин PIN"</string>
+ <string name="vm_change_pin_new_pin" msgid="2656200418481288069">"Шинэ PIN"</string>
<string name="vm_change_pin_progress_message" msgid="626015184502739044">"Түр хүлээнэ үү."</string>
- <string name="vm_change_pin_error_too_short" msgid="1789139338449945483">"Шинэ ПИН хэт богино байна."</string>
- <string name="vm_change_pin_error_too_long" msgid="3634907034310018954">"Шинэ ПИН хэт урт байна."</string>
- <string name="vm_change_pin_error_too_weak" msgid="8581892952627885719">"Шинэ ПИН хэт амархан байна. Сайн нууц үгэнд үргэлжилсэн дараалал буюу давтагдсан цифр ордоггүй."</string>
- <string name="vm_change_pin_error_mismatch" msgid="5364847280026257331">"Хуучин ПИН таарахгүй байна."</string>
- <string name="vm_change_pin_error_invalid" msgid="5230002671175580674">"Шинэ ПИН-д буруу тэмдэгт агуулагдаж байна."</string>
- <string name="vm_change_pin_error_system_error" msgid="9116483527909681791">"ПИН-г өөрчлөх боломжгүй"</string>
+ <string name="vm_change_pin_error_too_short" msgid="1789139338449945483">"Шинэ PIN хэт богино байна."</string>
+ <string name="vm_change_pin_error_too_long" msgid="3634907034310018954">"Шинэ PIN хэт урт байна."</string>
+ <string name="vm_change_pin_error_too_weak" msgid="8581892952627885719">"Шинэ PIN хэт амархан байна. Сайн нууц үгэнд үргэлжилсэн дараалал буюу давтагдсан цифр ордоггүй."</string>
+ <string name="vm_change_pin_error_mismatch" msgid="5364847280026257331">"Хуучин PIN таарахгүй байна."</string>
+ <string name="vm_change_pin_error_invalid" msgid="5230002671175580674">"Шинэ PIN-д буруу тэмдэгт агуулагдаж байна."</string>
+ <string name="vm_change_pin_error_system_error" msgid="9116483527909681791">"PIN-г өөрчлөх боломжгүй"</string>
<string name="vvm_unsupported_message_format" msgid="4206402558577739713">"Дэмжигдээгүй мессежийн төрөл, сонсохын тулд <xliff:g id="NUMBER">%s</xliff:g> руу залгана уу."</string>
<string name="network_settings_title" msgid="7560807107123171541">"Мобайл сүлжээ"</string>
<string name="label_available" msgid="1316084116670821258">"Боломжтой сүлжээнүүд"</string>
@@ -449,7 +449,7 @@
<string name="enable_fdn_ok" msgid="5080925177369329827">"FDN идэвхгүйжүүлэх"</string>
<string name="disable_fdn_ok" msgid="3745475926874838676">"FDN-г идэвхжүүлэх"</string>
<string name="sum_fdn" msgid="6152246141642323582">"Тогтсон залгах дугааруудыг удирдах"</string>
- <string name="sum_fdn_change_pin" msgid="3510994280557335727">"FDN хандалтын ПИН-г өөрчлөх"</string>
+ <string name="sum_fdn_change_pin" msgid="3510994280557335727">"FDN хандалтын PIN-г өөрчлөх"</string>
<string name="sum_fdn_manage_list" msgid="3311397063233992907">"Утасны дугаарын жагсаалтыг удирдах"</string>
<string name="voice_privacy" msgid="7346935172372181951">"Дууны нууцлал"</string>
<string name="voice_privacy_summary" msgid="3556460926168473346">"Сайжруулсан нууцлалын төлвийг идэвхжүүлэх"</string>
@@ -475,7 +475,7 @@
<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">"Та буруу ПИН оруулсан учир FDN шинэчлэгдсэнгүй."</string>
+ <string name="pin2_invalid" msgid="2313954262684494442">"Та буруу PIN оруулсан учир FDN шинэчлэгдсэнгүй."</string>
<string name="fdn_invalid_number" msgid="9067189814657840439">"Дугаар <xliff:g id="FDN_NUMBER_LIMIT_LENGTH">%d</xliff:g> цифрээс хэтэрсэн тул FDN-г шинэчлээгүй."</string>
<string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN шинэчлэгдсэнгүй. PIN2 буруу байсан, эсхүл утасны дугаар зөвшөөрөгдсөнгүй."</string>
<string name="fdn_failed" msgid="216592346853420250">"ФДН ажиллуулах амжилтгүй."</string>
@@ -483,23 +483,23 @@
<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="enable_pin" msgid="967674051730845376">"SIM ПИН Идэвхжүүлэх/идэвхгүйжүүлэх"</string>
- <string name="change_pin" msgid="3657869530942905790">"SIM ПИН өөрчлөх"</string>
- <string name="enter_pin_text" msgid="3182311451978663356">"SIM ПИН:"</string>
- <string name="oldPinLabel" msgid="8618515202411987721">"Хуучин ПИН"</string>
- <string name="newPinLabel" msgid="3585899083055354732">"Шинэ ПИН"</string>
- <string name="confirmPinLabel" msgid="7783531218662473778">"Шинэ ПИН-г баталгаажуулах"</string>
- <string name="badPin" msgid="4549286285015892321">"Таны оруулсан хуучин ПИН буруу байна. Дахин оролдоно уу."</string>
- <string name="mismatchPin" msgid="1467254768290323845">"Таны оруулсан ПИН таарахгүй байна. Дахин оролдоно уу."</string>
- <string name="invalidPin" msgid="7363723429414001979">"4-с 8 цифртэй ПИН оруулна уу"</string>
- <string name="disable_sim_pin" msgid="3112303905548613752">"SIM-ний ПИН-г цэвэрлэх"</string>
+ <string name="enable_pin" msgid="967674051730845376">"SIM PIN Идэвхжүүлэх/идэвхгүйжүүлэх"</string>
+ <string name="change_pin" msgid="3657869530942905790">"SIM PIN өөрчлөх"</string>
+ <string name="enter_pin_text" msgid="3182311451978663356">"SIM PIN:"</string>
+ <string name="oldPinLabel" msgid="8618515202411987721">"Хуучин PIN"</string>
+ <string name="newPinLabel" msgid="3585899083055354732">"Шинэ PIN"</string>
+ <string name="confirmPinLabel" msgid="7783531218662473778">"Шинэ PIN-г баталгаажуулах"</string>
+ <string name="badPin" msgid="4549286285015892321">"Таны оруулсан хуучин PIN буруу байна. Дахин оролдоно уу."</string>
+ <string name="mismatchPin" msgid="1467254768290323845">"Таны оруулсан PIN таарахгүй байна. Дахин оролдоно уу."</string>
+ <string name="invalidPin" msgid="7363723429414001979">"4-с 8 цифртэй PIN оруулна уу"</string>
+ <string name="disable_sim_pin" msgid="3112303905548613752">"SIM-ний PIN-г цэвэрлэх"</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="disable_pin_ok" msgid="888505244389647754">"ПИН цэвэрлэгдсэн"</string>
- <string name="pin_failed" msgid="4527347792881939652">"ПИН буруу байна"</string>
- <string name="pin_changed" msgid="7291153750090452808">"ПИН шинэчлэгдсэн"</string>
- <string name="puk_requested" msgid="2061337960609806851">"Нууц үг буруу байна. ПИН код одоо түгжигдсэн. PUK кодыг авах хүсэлт тавигдсан."</string>
+ <string name="enable_pin_ok" msgid="2877428038280804256">"PIN-г тохирууллаа"</string>
+ <string name="disable_pin_ok" msgid="888505244389647754">"PIN цэвэрлэгдсэн"</string>
+ <string name="pin_failed" msgid="4527347792881939652">"PIN буруу байна"</string>
+ <string name="pin_changed" msgid="7291153750090452808">"PIN шинэчлэгдсэн"</string>
+ <string name="puk_requested" msgid="2061337960609806851">"Нууц үг буруу байна. PIN код одоо түгжигдсэн. PUK кодыг авах хүсэлт тавигдсан."</string>
<string name="enter_pin2_text" msgid="7266379426804295979">"PIN2"</string>
<string name="oldPin2Label" msgid="4648543187859997203">"Хуучин PIN2"</string>
<string name="newPin2Label" msgid="1840905981784453939">"Шинэ PIN2"</string>
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"Утас хэт халуун байна"</b>\n\n"Энэ дуудлагыг гүйцээх боломжгүй. Та утсаа хөрсөн үед дахин оролдоно уу.\n\nТа яаралтай дуудлага хийх боломжтой хэвээр байна."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Яаралтай түргэн тусламжийн бус дуудлага хийхийн тулд яаралтай түргэн тусламжийн callback горимоос гарна уу."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Сүлжээнд бүртгэгдээгүй."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Мобайль сүлжээ байхгүй."</string>
@@ -669,8 +668,8 @@
<string name="description_dialpad_button" msgid="7395114120463883623">"дугаар цуглуулах самбарыг харуулах"</string>
<string name="pane_title_emergency_dialpad" msgid="3627372514638694401">"Яаралтай тусламжийн дугаар цуглуулах самбар"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="6610414098912832120">"Визуал дуут шуудан"</string>
- <string name="voicemail_set_pin_dialog_title" msgid="7005128605986960003">"ПИН тохируулах"</string>
- <string name="voicemail_change_pin_dialog_title" msgid="4633077715231764435">"ПИН өөрчлөх"</string>
+ <string name="voicemail_set_pin_dialog_title" msgid="7005128605986960003">"PIN тохируулах"</string>
+ <string name="voicemail_change_pin_dialog_title" msgid="4633077715231764435">"PIN өөрчлөх"</string>
<string name="preference_category_ringtone" msgid="8787281191375434976">"Хонхны ая & Чичиргээ"</string>
<string name="pstn_connection_service_label" msgid="9200102709997537069">"Суурилагдсан SIM карт"</string>
<string name="enable_video_calling_title" msgid="7246600931634161830">"Видео дуудлагыг идэвхжүүлэх"</string>
@@ -693,18 +692,18 @@
<string name="callFailed_low_battery" msgid="4056828320214416182">"Цэнэг бага байгаа тул видео дуудлагыг дуусгасан."</string>
<string name="callFailed_emergency_call_over_wfc_not_available" msgid="5944309590693432042">"Энэ байрлалд Wi-Fi дуудлагаар яаралтай дуудлага хийх боломжгүй."</string>
<string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"Энэ байрлалд Wi-Fi дуудлага хийх боломжгүй байна."</string>
- <string name="change_pin_title" msgid="3564254326626797321">"Дуут шуудангийн ПИН-г өөрчлөх"</string>
+ <string name="change_pin_title" msgid="3564254326626797321">"Дуут шуудангийн PIN-г өөрчлөх"</string>
<string name="change_pin_continue_label" msgid="5177011752453506371">"Үргэлжлүүлэх"</string>
<string name="change_pin_cancel_label" msgid="2301711566758827936">"Цуцлах"</string>
<string name="change_pin_ok_label" msgid="6861082678817785330">"OK"</string>
- <string name="change_pin_enter_old_pin_header" msgid="853151335217594829">"Хуучин ПИН-ээ баталгаажуулна уу"</string>
- <string name="change_pin_enter_old_pin_hint" msgid="8801292976275169367">"Үргэлжлүүлэхийн тулд дуут шуудангийн ПИН оруулна уу."</string>
- <string name="change_pin_enter_new_pin_header" msgid="4739465616733486118">"Шинэ ПИН тохируулах"</string>
- <string name="change_pin_enter_new_pin_hint" msgid="2326038476516364210">"ПИН <xliff:g id="MIN">%1$d</xliff:g> - <xliff:g id="MAX">%2$d</xliff:g> цифртэй байх ёстой."</string>
- <string name="change_pin_confirm_pin_header" msgid="2606303906320705726">"ПИН кодоо баталгаажуулна уу"</string>
- <string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"ПИН код таарахгүй байна"</string>
- <string name="change_pin_succeeded" msgid="2504705600693014403">"Дуут шуудангийн ПИН шинэчлэгдсэн"</string>
- <string name="change_pin_system_error" msgid="7772788809875146873">"ПИН тохируулах боломжгүй"</string>
+ <string name="change_pin_enter_old_pin_header" msgid="853151335217594829">"Хуучин PIN-ээ баталгаажуулна уу"</string>
+ <string name="change_pin_enter_old_pin_hint" msgid="8801292976275169367">"Үргэлжлүүлэхийн тулд дуут шуудангийн PIN оруулна уу."</string>
+ <string name="change_pin_enter_new_pin_header" msgid="4739465616733486118">"Шинэ PIN тохируулах"</string>
+ <string name="change_pin_enter_new_pin_hint" msgid="2326038476516364210">"PIN <xliff:g id="MIN">%1$d</xliff:g> - <xliff:g id="MAX">%2$d</xliff:g> цифртэй байх ёстой."</string>
+ <string name="change_pin_confirm_pin_header" msgid="2606303906320705726">"PIN кодоо баталгаажуулна уу"</string>
+ <string name="change_pin_confirm_pins_dont_match" msgid="305164501222587215">"PIN код таарахгүй байна"</string>
+ <string name="change_pin_succeeded" msgid="2504705600693014403">"Дуут шуудангийн PIN шинэчлэгдсэн"</string>
+ <string name="change_pin_system_error" msgid="7772788809875146873">"PIN тохируулах боломжгүй"</string>
<string name="mobile_data_status_roaming_turned_off_subtext" msgid="6840673347416227054">"Дата роумингийг идэвхгүй болгосон"</string>
<string name="mobile_data_status_roaming_turned_on_subtext" msgid="5615757897768777865">"Дата роумингийг асаасан"</string>
<string name="mobile_data_status_roaming_without_plan_subtext" msgid="6536671968072284677">"Одоо роумингтэй байна, дата багц шаардлагатай"</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 7c788fa..1c32881 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -523,7 +523,7 @@
<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_incoming_call" msgid="881424648458792430">"इनकमिंग कॉल"</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>
<string name="card_title_hanging_up" msgid="814874106866647871">"हँग अप करणेे"</string>
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"फोन खूप गरम झाला आहे"</b>\n\n"हा कॉल पूर्ण करू शकत नाही. तुमचा फोन थंड झाल्यावर पुन्हा प्रयत्न करा.\n\nतुम्ही अजूनही आणीबाणी कॉल करू शकता."</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>
@@ -785,8 +784,8 @@
<string name="call_barring_baoicr_enabled" msgid="1615324165512798478">"जाणारे इंटरनॅशनल रोमिंग ब्लॉक करणे बंद करायचे का?"</string>
<string name="call_barring_baoicr_disabled" msgid="172010175248142831">"जाणारे इंटरनॅशनल रोमिंग ब्लॉक करायचे का?"</string>
<string name="call_barring_baic" msgid="7941393541678658566">"सर्व येणारे"</string>
- <string name="call_barring_baic_enabled" msgid="4357332358020337470">"सर्व इनकमिंग कॉल ब्लॉक करणे बंद करायचे का?"</string>
- <string name="call_barring_baic_disabled" msgid="2355945245938240958">"सर्व इनकमिंग कॉल ब्लॉक करायचे का?"</string>
+ <string name="call_barring_baic_enabled" msgid="4357332358020337470">"सर्व येणारे कॉल ब्लॉक करणे बंद करायचे का?"</string>
+ <string name="call_barring_baic_disabled" msgid="2355945245938240958">"सर्व येणारे कॉल ब्लॉक करायचे का?"</string>
<string name="call_barring_baicr" msgid="8712249337313034226">"येणारे इंटरनॅशनल रोमिंग"</string>
<string name="call_barring_baicr_enabled" msgid="64774270234828175">"सर्व येणारे इंटरनॅशनल रोमिंग ब्लॉक करणे बंद करायचे का?"</string>
<string name="call_barring_baicr_disabled" msgid="3488129262744027262">"येणारे इंटरनॅशनल रोमिंग ब्लॉक करायचे का?"</string>
@@ -811,7 +810,7 @@
<string name="supp_service_notification_call_waiting" msgid="4577403881609445324">"कॉल प्रतीक्षेत आहे."</string>
<string name="supp_service_clir_suppression_rejected" msgid="6105737020194776121">"क्रमांक ब्लॉक करणे रद्द केले."</string>
<string name="supp_service_closed_user_group_call" msgid="2811636666505250689">"बंद वापरकर्ता गट कॉल."</string>
- <string name="supp_service_incoming_calls_barred" msgid="2034627421274447674">"इनकमिंग कॉल अवरोधित केले."</string>
+ <string name="supp_service_incoming_calls_barred" msgid="2034627421274447674">"येणारे कॉल अवरोधित केले."</string>
<string name="supp_service_outgoing_calls_barred" msgid="5205725332394087112">"जाणारे कॉल अवरोधित केले."</string>
<string name="supp_service_call_forwarding_active" msgid="7910162960395132464">"कॉल फॉरवर्ड होत आहे."</string>
<string name="supp_service_additional_call_forwarded" msgid="8772753260008398632">"अतिरिक्त कॉल फॉरवर्ड केला."</string>
@@ -846,8 +845,8 @@
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"रीस्टार्ट करा"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"रद्द करा"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"मोबाइल रेडिओ पॉवर"</string>
- <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"सिम ॲड्रेस बुक पहा"</string>
- <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"निश्चित डायलिंग नंबर पहा"</string>
+ <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"सिम ॲड्रेस बुक पाहा"</string>
+ <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"निश्चित डायलिंग नंबर पाहा"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"सर्व्हिस डायलिंग नंबर पहा"</string>
<string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS सेवा स्थिती"</string>
<string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS स्थिती"</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<string name="band_mode_title" msgid="7988822920724576842">"रेडिओ बँड मोड सेट करा"</string>
<string name="band_mode_loading" msgid="795923726636735967">"बँड सूची लोड करत आहे…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"सेट करा"</string>
@@ -924,7 +925,7 @@
<string name="phone_info_label" product="default" msgid="1784175881556791433">"फोनची माहिती"</string>
<string name="carrier_provisioning" msgid="2668065041869578376">"वाहक सुविधा माहिती"</string>
<string name="trigger_carrier_provisioning" msgid="1301829588620638234">"वाहक सुविधा ट्रिगर करा"</string>
- <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"तुमचा ब्लूटूथ सिग्नल कमकुवत आहे. स्पीकरफोनवर स्विच करून पहा."</string>
+ <string name="call_quality_notification_bluetooth_details" msgid="8348950331707346711">"तुमचा ब्लूटूथ सिग्नल कमकुवत आहे. स्पीकरफोनवर स्विच करून पाहा."</string>
<string name="call_quality_notification_name" msgid="3476828289553948830">"कॉल गुणवत्ता सूचना"</string>
<string name="notification_channel_sip_account" msgid="1261816025156179637">"कालबाह्य झालेली SIP खाती"</string>
</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 4ddb2e6..c58d6f6 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Hidupkan rangkaian mudah alih, matikan mod pesawat atau matikan mod penjimat bateri untuk membuat panggilan."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Matikan mod pesawat untuk membuat panggilan."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Matikan mod pesawat atau sambungkan ke rangkaian wayarles untuk membuat panggilan."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefon terlalu panas"</b>\n\n"Tidak dapat melengkapkan panggilan ini. Cuba lagi apabila telefon anda menyejuk.\n\nAnda masih boleh membuat panggilan kecemasan."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Keluar daripada mod panggil balik kecemasan untuk membuat panggilan bukan kecemasan."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Tidak didaftarkan pada rangkaian."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Rangkaian mudah alih tidak tersedia."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 f34f564..16dc582 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -49,7 +49,7 @@
<string name="add_vm_number_str" msgid="7368168964435881637">"နံပါတ်ထပ်ထည့်ရန်"</string>
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"အသံမေးလ်ဆက်တင်များကို အဓိကအသုံးပြုသူသာ ပြင်ဆင်နိုင်ပါသည်။"</string>
<string name="puk_unlocked" msgid="4627340655215746511">"သင့် ဆင်းမ်ကဒ်အား ပိတ်ဆို့မှုကို ဖယ်ရှားပြီးပါပြီ။ သင့်ဖုန်းဟာ သော့ဖွင့်နေပါသည်…"</string>
- <string name="label_ndp" msgid="7617392683877410341">"ဆင်းမ်ကတ် ကွန်ရက် သော့ဖွင့်သော ပင်နံပါတ်"</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>
@@ -186,9 +186,9 @@
<string name="manual_mode_disallowed_summary" msgid="3970048592179890197">"%1$s သို့ ချိတ်ဆက်ထားချိန်တွင် မရရှိနိုင်ပါ"</string>
<string name="network_select_title" msgid="4117305053881611988">"ကွန်ရက်"</string>
<string name="register_automatically" msgid="3907580547590554834">"အလိုအလျောက် မှတ်ပုံတင်ခြင်း…"</string>
- <string name="preferred_network_mode_title" msgid="5253395265169539830">"ဦးစားပေး ကွန်ရက်အမျိုးအစား"</string>
+ <string name="preferred_network_mode_title" msgid="5253395265169539830">"ပိုနှစ်သက်သော ကွန်ရက်အမျိုးအစား"</string>
<string name="preferred_network_mode_summary" msgid="3787989000044330064">"ကွန်ရက် လုပ်ဆောင်မှုစနစ်အား ပြောင်းပါ"</string>
- <string name="preferred_network_mode_dialogtitle" msgid="2781447433514459696">"ဦးစားပေး ကွန်ရက်အမျိုးအစား"</string>
+ <string name="preferred_network_mode_dialogtitle" msgid="2781447433514459696">"ပိုနှစ်သက်သော ကွန်ရက်အမျိုးအစား"</string>
<string name="forbidden_network" msgid="5081729819561333023">"(တားမြစ်ထားသည်)"</string>
<string name="choose_network_title" msgid="5335832663422653082">"ကွန်ရက် ရွေးရန်"</string>
<string name="network_disconnected" msgid="8844141106841160825">"ချိတ်ဆက်မှုပြတ်နေပါသည်"</string>
@@ -301,7 +301,7 @@
<string name="data_usage_template" msgid="6287906680674061783">"<xliff:g id="ID_2">%2$s</xliff:g> အထိ မိုဘိုင်းဒေတာ <xliff:g id="ID_1">%1$s</xliff:g> ကို အသုံးပြုထားပါသည်"</string>
<string name="advanced_options_title" msgid="9208195294513520934">"အဆင့်မြင့်"</string>
<string name="carrier_settings_euicc" msgid="1190237227261337749">"ဝန်ဆောင်မှုပေးသူ"</string>
- <string name="keywords_carrier_settings_euicc" msgid="8540160967922063745">"ဖုန်းကုမ္ပဏီ၊ esim၊ ဆင်းမ်ကတ်၊ euicc၊ ဖုန်းလိုင်းများ ပြောင်းရန်၊ ဖုန်းလိုင်း ထည့်ရန်"</string>
+ <string name="keywords_carrier_settings_euicc" msgid="8540160967922063745">"ဖုန်းကုမ္ပဏီ၊ esim၊ ဆင်းမ်ကဒ်၊ euicc၊ ဖုန်းလိုင်းများ ပြောင်းရန်၊ ဖုန်းလိုင်း ထည့်ရန်"</string>
<string name="carrier_settings_euicc_summary" msgid="2027941166597330117">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> — <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
<string name="mobile_data_settings_title" msgid="7228249980933944101">"မိုဘိုင်းဒေတာ"</string>
<string name="mobile_data_settings_summary" msgid="5012570152029118471">"မိုဘိုင်းကွန်ရက်သုံးပြီး ဒေတာကို ဝင်သုံးခွင့်ပေးပါ"</string>
@@ -484,8 +484,8 @@
<string name="simContacts_title" msgid="2714029230160136647">"ထည့်ယူရန် လိပ်စာများ ရွေးပါ"</string>
<string name="simContacts_airplaneMode" msgid="4654884030631503808">"SIM ကဒ်မှ အဆက်အသွယ်များ သွင်းယူရန် လေယာဉ်ပျံမုဒ် ပိတ်ထားပါ။"</string>
<string name="enable_pin" msgid="967674051730845376">"ဆင်းမ် ပင်နံပါတ်ကို ပယ်ဖျက်၊ပြုလုပ်ရန်"</string>
- <string name="change_pin" msgid="3657869530942905790">"ဆင်းမ်ကတ် ပင်နံပါတ်ပြောင်းရန်"</string>
- <string name="enter_pin_text" msgid="3182311451978663356">"ဆင်းမ်ကတ် ပင်နံပါတ်:"</string>
+ <string name="change_pin" msgid="3657869530942905790">"ဆင်းမ်ကဒ် ပင်နံပါတ်ပြောင်းရန်"</string>
+ <string name="enter_pin_text" msgid="3182311451978663356">"ဆင်းမ်ကဒ် ပင်နံပါတ်:"</string>
<string name="oldPinLabel" msgid="8618515202411987721">"ပင်နံပါတ် အဟောင်း"</string>
<string name="newPinLabel" msgid="3585899083055354732">"ပင်နံပါတ် အသစ်"</string>
<string name="confirmPinLabel" msgid="7783531218662473778">"ပင်နံပါတ်အသစ်အား သေချာကြောင်း လက်ခံပါ"</string>
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"ဖုန်းအလွန်ပူနေသည်"</b>\n\n"ဤဖုန်းကို ခေါ်ဆို၍မရပါ။ ဖုန်းအေးသွားသောအခါ ထပ်စမ်းကြည့်ပါ။\n\nအရေးပေါ်ဖုန်းခေါ်ခြင်းများ ပြုလုပ်နိုင်သေးသည်။"</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>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"ကွန်ရက်ခွဲခြားမှု စီစဉ်သတ်မှတ်ချက်-"</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 b956af6..efce396 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Slå på mobilnettverket, slå av flymodus eller slå av batterisparingsmodus for å ringe ut."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Slå av flymodus for å ringe."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Slå av flymodus eller koble til et trådløst nettverk for å ringe."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefonen er for varm"</b>\n\n"Kan ikke fullføre dette anropet. Prøv igjen når telefonen har kjølt seg ned.\n\nDu kan fortsatt foreta nødanrop."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Avslutt modusen for nødanrop for å gjøre et vanlig anrop."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Ikke registrert på nettverket."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilnettverket er ikke tilgjengelig."</string>
@@ -596,7 +595,7 @@
<string name="hac_mode_summary" msgid="7774989500136009881">"Slå på kompatibilitet med høreapparater"</string>
<string name="rtt_mode_title" msgid="3075948111362818043">"Sanntidstekst-anrop (STT)"</string>
<string name="rtt_mode_summary" msgid="8631541375609989562">"Tillat meldingsutveksling i talesamtaler"</string>
- <string name="rtt_mode_more_information" msgid="587500128658756318">"STT er til hjelp for brukere som er døve, hørselshemmede, har taleproblemer eller trenger mer enn bare tale.<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>Finn ut mer</a>\n <br><br> – STT-anrop lagres som meldingstranskripsjoner\n <br> – STT er ikke tilgjengelig for videoanrop"</string>
+ <string name="rtt_mode_more_information" msgid="587500128658756318">"STT er til hjelp for brukere som er døve, tunghørte, har talefunksjonshemning eller trenger mer enn bare tale.<br> <a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>>Finn ut mer</a>\n <br><br> – STT-anrop lagres som meldingstranskripsjoner\n <br> – STT er ikke tilgjengelig for videoanrop"</string>
<string name="no_rtt_when_roaming" msgid="5268008247378355389">"Merk: RTT er ikke tilgjengelig ved roaming"</string>
<string-array name="tty_mode_entries">
<item msgid="3238070884803849303">"TTY av"</item>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 e6d6abc..7e0dac8 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -282,8 +282,8 @@
<string name="data_enable_summary" msgid="696860063456536557">"डेटा उपयोगलाई अनुमति दिनुहोस्"</string>
<string name="dialog_alert_title" msgid="5260471806940268478">"ध्यानाकर्षण"</string>
<string name="roaming" msgid="1576180772877858949">"रोमिङ"</string>
- <string name="roaming_enable" msgid="6853685214521494819">"रोमिङको समयमा डेटा सेवामा कनेक्ट गर्नुहोस्"</string>
- <string name="roaming_disable" msgid="8856224638624592681">"रोमिङको समयमा डेटा सेवा कनेक्ट गर्नुहोस्"</string>
+ <string name="roaming_enable" msgid="6853685214521494819">"रोमिङको समयमा डेटा सेवामा जडान गर्नुहोस्"</string>
+ <string name="roaming_disable" msgid="8856224638624592681">"रोमिङको समयमा डेटा सेवा जडान गर्नुहोस्"</string>
<string name="roaming_reenable_message" msgid="1951802463885727915">"डेटा रोमिङ सक्रिय गरियो। सक्रिय गर्न ट्याप गर्नुहोस्।"</string>
<string name="roaming_enabled_message" msgid="9022249120750897">"रोमिङ शुल्क लाग्न सक्छ। परिमार्जन गर्न ट्याप गर्नुहोस्"</string>
<string name="roaming_notification_title" msgid="3590348480688047320">"मोबाइल डेटाको जडान टुट्यो"</string>
@@ -536,12 +536,11 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"फोन ज्यादै तातेको छ"</b>\n\n"यो कल जारी राख्न सकिँदैन। फोन सेलाएपछि फेरि प्रयास गर्नुहोस्।\n\nतपाईं अझै पनि आपत्कालीन कलहरू गर्न सक्नुहुन्छ।"</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>
- <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"मोबाइल नेटवर्क उपलब्ध छैन। कल गर्न तारविनाको नेटवर्कमा कनेक्ट गर्नुहोस्।"</string>
+ <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"मोबाइल नेटवर्क उपलब्ध छैन। कल गर्न तारविनाको नेटवर्कमा जडान गर्नुहोस्।"</string>
<string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"एक कल गर्नको लागि, एक वैध नम्बर प्रविष्टि गर्नुहोस्।"</string>
<string name="incall_error_call_failed" msgid="393508653582682539">"कल विफल भयो।"</string>
<string name="incall_error_cannot_add_call" msgid="5425764862628655443">"यतिबेला कल गर्न सकिएन। तपाईंले कुनै सन्देश पठाएर सम्पर्क गर्ने प्रयास गर्न सक्नुहुन्छ।"</string>
@@ -554,7 +553,7 @@
<string name="incall_error_supp_service_reject" msgid="3044363092441655912">"कल अस्वीकार गर्न सक्दैन।"</string>
<string name="incall_error_supp_service_hangup" msgid="836524952243836735">"कल (हरू) जारी गर्न सकिँदैन ।"</string>
<string name="incall_error_supp_service_hold" msgid="8535056414643540997">"कल सञ्चालन गर्न सकिँदैन।"</string>
- <string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"एक कल गर्न एक ताररहितको सञ्जालमा कनेक्ट गर्नुहोस्।"</string>
+ <string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"एक कल गर्न एक ताररहितको सञ्जालमा जडान गर्नुहोस्।"</string>
<string name="incall_error_promote_wfc" msgid="9164896813931363415">"कल गर्नका लागि Wi-Fi कलिङ सक्षम गर्नुहोस्।"</string>
<string name="emergency_information_hint" msgid="9208897544917793012">"आपत्कालीन जानकारी"</string>
<string name="emergency_information_owner_hint" msgid="6256909888049185316">"मालिक"</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 424b36a..c590abd 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -125,9 +125,9 @@
<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 aanzetten?"</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">"Aanzetten"</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>
@@ -147,7 +147,7 @@
<string name="fdn_check_failure" msgid="1833769746374185247">"De instelling \'Vaste nummers\' in je app Telefoon is ingeschakeld. Hierdoor werken sommige oproepgerelateerde functies niet."</string>
<string name="radio_off_error" msgid="8321564164914232181">"Schakel de radio in voordat je deze instellingen bekijkt."</string>
<string name="close_dialog" msgid="1074977476136119408">"OK"</string>
- <string name="enable" msgid="2636552299455477603">"Aanzetten"</string>
+ <string name="enable" msgid="2636552299455477603">"Inschakelen"</string>
<string name="disable" msgid="1122698860799462116">"Uit"</string>
<string name="change_num" msgid="6982164494063109334">"Updaten"</string>
<string-array name="clir_display_values">
@@ -443,20 +443,20 @@
<string name="fdn_activation" msgid="2178637004710435895">"FDN-activering"</string>
<string name="fdn_enabled" msgid="7017355494808056447">"Vaste nummers zijn ingeschakeld"</string>
<string name="fdn_disabled" msgid="6696468878037736600">"Vaste nummers zijn uitgeschakeld"</string>
- <string name="enable_fdn" msgid="4830555730418033723">"FDN aanzetten"</string>
+ <string name="enable_fdn" msgid="4830555730418033723">"FDN inschakelen"</string>
<string name="disable_fdn" msgid="3918794950264647541">"FDN uitschakelen"</string>
<string name="change_pin2" msgid="3110844547237754871">"PIN2-code wijzigen"</string>
<string name="enable_fdn_ok" msgid="5080925177369329827">"FDN uitschakelen"</string>
- <string name="disable_fdn_ok" msgid="3745475926874838676">"FDN aanzetten"</string>
+ <string name="disable_fdn_ok" msgid="3745475926874838676">"FDN inschakelen"</string>
<string name="sum_fdn" msgid="6152246141642323582">"Vaste nummers beheren"</string>
<string name="sum_fdn_change_pin" msgid="3510994280557335727">"Pincode voor FDN-toegang wijzigen"</string>
<string name="sum_fdn_manage_list" msgid="3311397063233992907">"Lijst met telefoonnummers beheren"</string>
<string name="voice_privacy" msgid="7346935172372181951">"Spraakprivacy"</string>
- <string name="voice_privacy_summary" msgid="3556460926168473346">"Geavanceerde privacymodus aanzetten"</string>
+ <string name="voice_privacy_summary" msgid="3556460926168473346">"Geavanceerde privacymodus inschakelen"</string>
<string name="tty_mode_option_title" msgid="3843817710032641703">"TTY-modus"</string>
<string name="tty_mode_option_summary" msgid="4770510287236494371">"TTY-modus instellen"</string>
<string name="auto_retry_mode_title" msgid="2985801935424422340">"Automatisch opnieuw proberen"</string>
- <string name="auto_retry_mode_summary" msgid="2863919925349511402">"Modus voor automatisch opnieuw proberen aanzetten"</string>
+ <string name="auto_retry_mode_summary" msgid="2863919925349511402">"Modus voor automatisch opnieuw proberen inschakelen"</string>
<string name="tty_mode_not_allowed_video_call" msgid="6551976083652752815">"De TTY-modus mag niet worden gewijzigd tijdens een videogesprek"</string>
<string name="menu_add" msgid="5616487894975773141">"Contact toevoegen"</string>
<string name="menu_edit" msgid="3593856941552460706">"Contact bewerken"</string>
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Schakel het mobiele netwerk in, schakel de vliegtuigmodus uit of schakel Batterijbesparing uit om te bellen."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Schakel de vliegtuigmodus uit om te bellen."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Schakel de vliegtuigmodus uit of maak verbinding met een draadloos netwerk om te bellen."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefoon te heet"</b>\n\n"Kan dit gesprek niet tot stand brengen. Probeer het opnieuw als je telefoon is afgekoeld.\n\nJe kunt nog steeds noodoproepen plaatsen."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Sluit de modus voor noodoproepen af om een niet-noodoproep te plaatsen."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Niet geregistreerd op netwerk."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobiel netwerk niet beschikbaar."</string>
@@ -593,7 +592,7 @@
<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">"Hoortoestellen"</string>
- <string name="hac_mode_summary" msgid="7774989500136009881">"Compatibiliteit voor hoortoestel aanzetten"</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>
@@ -673,8 +672,8 @@
<string name="voicemail_change_pin_dialog_title" msgid="4633077715231764435">"Pincode wijzigen"</string>
<string name="preference_category_ringtone" msgid="8787281191375434976">"Ringtone en trillen"</string>
<string name="pstn_connection_service_label" msgid="9200102709997537069">"Ingebouwde simkaarten"</string>
- <string name="enable_video_calling_title" msgid="7246600931634161830">"Videogesprekken aanzetten"</string>
- <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"Als je videogesprekken wilt aanzetten, moet je de geoptimaliseerde 4G LTE-modus aanzetten in de netwerkinstellingen."</string>
+ <string name="enable_video_calling_title" msgid="7246600931634161830">"Videogesprekken inschakelen"</string>
+ <string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"Als je videogesprekken wilt inschakelen, moet je de geoptimaliseerde 4G LTE-modus inschakelen in de netwerkinstellingen."</string>
<string name="enable_video_calling_dialog_settings" msgid="8697890611305307110">"Netwerkinstellingen"</string>
<string name="enable_video_calling_dialog_close" msgid="4298929725917045270">"Sluiten"</string>
<string name="sim_label_emergency_calls" msgid="9078241989421522310">"Noodoproepen"</string>
@@ -720,7 +719,7 @@
<string name="mobile_data_activate_button" msgid="1139792516354374612">"DATA TOEVOEGEN"</string>
<string name="mobile_data_activate_cancel_button" msgid="3530174817572005860">"ANNULEREN"</string>
<string name="clh_card_title_call_ended_txt" msgid="5977978317527299698">"Gesprek beëindigd"</string>
- <string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"Vliegtuigmodus staat aan"</string>
+ <string name="clh_callFailed_powerOff_txt" msgid="8279934912560765361">"Vliegtuigmodus is ingeschakeld"</string>
<string name="clh_callFailed_simError_txt" msgid="5128538525762326413">"Kan geen toegang tot simkaart krijgen"</string>
<string name="clh_incall_error_out_of_service_txt" msgid="2736010617446749869">"Mobiel netwerk niet beschikbaar"</string>
<string name="clh_callFailed_unassigned_number_txt" msgid="141967660286695682">"Probleem met het telefoonnummer dat je probeert te bellen. Foutcode 1."</string>
@@ -833,22 +832,22 @@
<string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"Als je <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> wilt gebruiken, zorg je dat je mobiele data hebt ingeschakeld voor sim <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Je kunt dit wijzigen via de mobiele netwerkinstellingen."</string>
<string name="supp_service_over_ut_precautions_roaming_dual_sim" msgid="6627654855191817965">"Als je <xliff:g id="SUPP_SERVICE">%1$s</xliff:g> wilt gebruiken, zorg je dat je mobiele data en dataroaming hebt ingeschakeld voor sim <xliff:g id="SIM_NUMBER">%2$d</xliff:g>. Je kunt dit wijzigen via de mobiele netwerkinstellingen."</string>
<string name="supp_service_over_ut_precautions_dialog_dismiss" msgid="5934541487903081652">"Sluiten"</string>
- <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Dataverbinding aanzetten"</string>
+ <string name="radio_info_data_connection_enable" msgid="6183729739783252840">"Dataverbinding inschakelen"</string>
<string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Dataverbinding uitschakelen"</string>
<string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-registratie"</string>
<string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videogesprekken geregistreerd"</string>
<string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wifi-gesprekken geregistreerd"</string>
<string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/aanwezigheid geregistreerd"</string>
<string name="cbrs_data_switch_string" msgid="6060356430838077653">"CBRS-gegevens"</string>
- <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS aanzetten"</string>
+ <string name="dsds_switch_string" msgid="7564769822086764796">"DSDS inschakelen"</string>
<string name="dsds_dialog_title" msgid="8494569893941847575">"Apparaat opnieuw opstarten?"</string>
<string name="dsds_dialog_message" msgid="4047480385678538850">"Start het apparaat opnieuw op om de instelling te wijzigen."</string>
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"Opnieuw opstarten"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"Annuleren"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"Mobiel radiovermogen"</string>
- <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Adresboek op simkaart bekijken"</string>
- <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vaste nummers bekijken"</string>
- <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Servicenummers bekijken"</string>
+ <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Adresboek op simkaart weergeven"</string>
+ <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vaste nummers weergeven"</string>
+ <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Servicenummers weergeven"</string>
<string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS-servicestatus"</string>
<string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS-status"</string>
<string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"Geregistreerd"</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 2d72708..f3b5023 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"ଫୋନଟି ବହୁତ ଗରମ ହୋଇଯାଇଛି"</b>\n\n"ଏହି କଲକୁ ସମ୍ପୂର୍ଣ୍ଣ କରାଯାଇପାରିବ ନାହିଁ। ଆପଣଙ୍କ ଫୋନ୍ ଥଣ୍ଡା ହେବା ପରେ ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ। \n\nଆପଣ ଏବେ ବି ଜରୁରୀକାଳୀନ କଲ୍ କରିପାରିବେ।"</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>
@@ -720,7 +719,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>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 5c79ff8..1305a0c 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -338,24 +338,24 @@
<string name="enable_disable_maintenance" msgid="3824817751053035017">"ਪ੍ਰਬੰਧਨ"</string>
<string name="maintenance_enable" msgid="2646784483222342290">"ਪ੍ਰਬੰਧਨ ਸਮਰਥਿਤ"</string>
<string name="maintenance_disable" msgid="2121032601497725602">"ਪ੍ਰਬੰਧਨ ਅਸਮਰਥਿਤ"</string>
- <string name="general_news_settings" msgid="2670499575962080411">"ਸਧਾਰਨ ਖਬਰਾਂ"</string>
- <string name="bf_news_settings" msgid="8571709425370794221">"ਕਾਰੋਬਾਰੀ ਅਤੇ ਵਿੱਤੀ ਖਬਰਾਂ"</string>
- <string name="sports_news_settings" msgid="2684364556989168438">"ਖੇਡਾਂ ਨਾਲ ਸੰਬੰਧਿਤ ਖਬਰਾਂ"</string>
- <string name="entertainment_news_settings" msgid="4228527702346305543">"ਮਨੋਰੰਜਨ ਸੰਬੰਧੀ ਖਬਰਾਂ"</string>
+ <string name="general_news_settings" msgid="2670499575962080411">"ਸਧਾਰਨ ਖ਼ਬਰਾਂ"</string>
+ <string name="bf_news_settings" msgid="8571709425370794221">"ਵਪਾਰਕ ਅਤੇ ਵਿੱਤੀ ਖ਼ਬਰਾਂ"</string>
+ <string name="sports_news_settings" msgid="2684364556989168438">"ਖੇਡ ਦੀਆਂ ਖ਼ਬਰਾਂ"</string>
+ <string name="entertainment_news_settings" msgid="4228527702346305543">"ਮਨੋਰੰਜਕ ਖ਼ਬਰਾਂ"</string>
<string name="enable_disable_local" msgid="7654175079979415572">"ਸਥਾਨਕ"</string>
- <string name="local_enable" msgid="790606890868710629">"ਸਥਾਨਕ ਖਬਰਾਂ ਚਾਲੂ ਕੀਤੀਆਂ ਗਈਆਂ"</string>
- <string name="local_disable" msgid="7649945293198602877">"ਸਥਾਨਕ ਖਬਰਾਂ ਬੰਦ ਕੀਤੀਆਂ ਗਈਆਂ"</string>
+ <string name="local_enable" msgid="790606890868710629">"ਸਥਾਨਕ ਖ਼ਬਰਾਂ ਸਮਰਥਿਤ"</string>
+ <string name="local_disable" msgid="7649945293198602877">"ਸਥਾਨਕ ਖ਼ਬਰਾਂ ਅਸਮਰਥਿਤ"</string>
<string name="enable_disable_regional" msgid="5783403191376564638">"ਖੇਤਰੀ"</string>
- <string name="regional_enable" msgid="7730109417536296079">"ਖੇਤਰੀ ਖਬਰਾਂ ਚਾਲੂ ਕੀਤੀਆਂ ਗਈਆਂ"</string>
- <string name="regional_disable" msgid="3781951818157772545">"ਖੇਤਰੀ ਖਬਰਾਂ ਬੰਦ ਕੀਤੀਆਂ ਗਈਆਂ"</string>
+ <string name="regional_enable" msgid="7730109417536296079">"ਖੇਤਰੀ ਖ਼ਬਰਾਂ ਸਮਰਥਿਤ"</string>
+ <string name="regional_disable" msgid="3781951818157772545">"ਖੇਤਰੀ ਖ਼ਬਰਾਂ ਅਸਮਰਥਿਤ"</string>
<string name="enable_disable_national" msgid="6198481711934897632">"ਰਾਸ਼ਟਰੀ"</string>
- <string name="national_enable" msgid="5159683504138239304">"ਰਾਸ਼ਟਰੀ ਖਬਰਾਂ ਚਾਲੂ ਕੀਤੀਆਂ ਗਈਆਂ"</string>
- <string name="national_disable" msgid="8484356368757118987">"ਰਾਸ਼ਟਰੀ ਖਬਰਾਂ ਬੰਦ ਕੀਤੀਆਂ ਗਈਆਂ"</string>
+ <string name="national_enable" msgid="5159683504138239304">"ਰਾਸ਼ਟਰੀ ਖ਼ਬਰਾਂ ਸਮਰਥਿਤ"</string>
+ <string name="national_disable" msgid="8484356368757118987">"ਰਾਸ਼ਟਰੀ ਖ਼ਬਰਾਂ ਅਸਮਰਥਿਤ"</string>
<string name="enable_disable_international" msgid="4204334217211198792">"ਅੰਤਰਰਾਸ਼ਟਰੀ"</string>
- <string name="international_enable" msgid="8943466745792690340">"ਅੰਤਰਰਾਸ਼ਟਰੀ ਖਬਰਾਂ ਚਾਲੂ ਕੀਤੀਆਂ ਗਈਆਂ"</string>
- <string name="international_disable" msgid="4803498658100318265">"ਅੰਤਰਰਾਸ਼ਟਰੀ ਖਬਰਾਂ ਬੰਦ ਕੀਤੀਆਂ ਗਈਆਂ"</string>
+ <string name="international_enable" msgid="8943466745792690340">"ਅੰਤਰਰਾਸ਼ਟਰੀ ਖ਼ਬਰਾਂ ਸਮਰਥਿਤ"</string>
+ <string name="international_disable" msgid="4803498658100318265">"ਅੰਤਰਰਾਸ਼ਟਰੀ ਖ਼ਬਰਾਂ ਅਸਮਰਥਿਤ"</string>
<string name="list_language_title" msgid="1850167908665485738">"ਭਾਸ਼ਾ"</string>
- <string name="list_language_summary" msgid="7921756070782277559">"ਖਬਰਾਂ ਦੀ ਭਾਸ਼ਾ ਚੁਣੋ"</string>
+ <string name="list_language_summary" msgid="7921756070782277559">"ਖ਼ਬਰਾਂ ਦੀ ਭਾਸ਼ਾ ਚੁਣੋ"</string>
<string-array name="list_language_entries">
<item msgid="2347238508726934281">"ਅੰਗ੍ਰੇਜ਼ੀ"</item>
<item msgid="5172468397620875174">"ਫਰਾਂਸੀਸੀ"</item>
@@ -405,9 +405,9 @@
<string name="enable_disable_mhh" msgid="715930476289202466">"ਚਿਕਿਤਸਾ, ਸਿਹਤ ਅਤੇ ਹਸਪਤਾਲ"</string>
<string name="mhh_enable" msgid="7224396815285147008">"ਚਿਕਿਤਸਾ, ਸਿਹਤ ਅਤੇ ਹਸਪਤਾਲ ਸਮਰਥਿਤ"</string>
<string name="mhh_disable" msgid="5503643028885686265">"ਚਿਕਿਤਸਾ, ਸਿਹਤ ਅਤੇ ਹਸਪਤਾਲ ਅਸਮਰਥਿਤ"</string>
- <string name="enable_disable_technology_news" msgid="2794845609698078400">"ਤਕਨਾਲੋਜੀ ਖਬਰਾਂ"</string>
- <string name="technology_news_enable" msgid="1908991199492598311">"ਤਕਨਾਲੋਜੀ ਖਬਰਾਂ ਚਾਲੂ ਕੀਤੀਆਂ ਗਈਆਂ"</string>
- <string name="technology_news_disable" msgid="8388582607149800889">"ਤਕਨਾਲੋਜੀ ਖਬਰਾਂ ਬੰਦ ਕੀਤੀਆਂ ਗਈਆਂ"</string>
+ <string name="enable_disable_technology_news" msgid="2794845609698078400">"ਟੈਕਨਾਲੋਜੀ ਖ਼ਬਰਾਂ"</string>
+ <string name="technology_news_enable" msgid="1908991199492598311">"ਟੈਕਨਾਲੋਜੀ ਖ਼ਬਰਾਂ ਸਮਰਥਿਤ"</string>
+ <string name="technology_news_disable" msgid="8388582607149800889">"ਟੈਕਨਾਲੋਜੀ ਖ਼ਬਰਾਂ ਅਸਮਰਥਿਤ"</string>
<string name="enable_disable_multi_category" msgid="5958248155437940625">"ਮਲਟੀ-ਸ਼੍ਰੇਣੀ"</string>
<string name="multi_category_enable" msgid="4531915767817483960">"ਮਲਟੀ-ਸ਼੍ਰੇਣੀ ਸਮਰਥਿਤ"</string>
<string name="multi_category_disable" msgid="6325934413701238104">"ਮਲਟੀ-ਸ਼੍ਰੇਣੀ ਅਸਮਰਥਿਤ"</string>
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"ਫ਼ੋਨ ਬਹੁਤ ਗਰਮ ਹੋ ਗਿਆ ਹੈ"</b>\n\n"ਇਸ ਕਾਲ ਨੂੰ ਪੂਰਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਫ਼ੋਨ ਦੇ ਠੰਡਾ ਹੋਣ ਜਾਣ \'ਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।\n\nਤੁਸੀਂ ਹਾਲੇ ਵੀ ਸੰਕਟਕਾਲੀਨ ਕਾਲਾਂ ਕਰ ਸਕਦੇ ਹੋ।"</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>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"ਨੈੱਟਵਰਕ ਸਲਾਈਸਿੰਗ ਸੰਰੂਪਣ:"</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 ceb9082..03358d9 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Aby zadzwonić, włącz sieć komórkową, wyłącz tryb samolotowy lub wyłącz tryb oszczędzania baterii."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Wyłącz tryb samolotowy, by zadzwonić."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Wyłącz tryb samolotowy lub połącz się z siecią bezprzewodową, by zadzwonić."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefon jest zbyt gorący"</b>\n\n"Nie można nawiązać tego połączenia. Spróbuj ponownie, gdy telefon się ochłodzi.\n\nNadal możesz wykonywać połączenia alarmowe."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Aby zadzwonić normalnie, wyjdź z trybu alarmowego połączenia zwrotnego."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Nie zarejestrowano w sieci"</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Sieć komórkowa jest niedostępna."</string>
@@ -921,6 +920,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 89d2279..3e92292 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Ative a rede móvel, desative o modo de avião ou desative o modo de poupança de bateria para fazer uma chamada."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Desative o modo de avião para fazer uma chamada."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Desative o modo de avião ou ligue-se a uma rede sem fios para fazer uma chamada."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"O telemóvel está demasiado quente"</b>\n\n"Não é possível concluir esta chamada. Tente novamente depois de o telemóvel arrefecer.\n\nAinda pode efetuar chamadas de emergência."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Sair do modo de chamada de retorno de emergência para efetuar uma chamada que não é de emergência."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Sem registo na rede."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Rede móvel não disponível."</string>
@@ -638,12 +637,12 @@
<string name="phone_in_ecm_call_notification_text" msgid="653972232922670335">"Ligação de dados desativada"</string>
<string name="phone_in_ecm_notification_complete_time" msgid="7341624337163082759">"Sem ligação de dados até à(s) <xliff:g id="COMPLETETIME">%s</xliff:g>"</string>
<plurals name="alert_dialog_exit_ecm" formatted="false" msgid="5425906903766466743">
- <item quantity="one">O telemóvel fica no modo de Chamada de emergência durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. Neste modo, não é possível utilizar aplicações com uma ligação de dados. Pretende sair agora?</item>
<item quantity="other">O telemóvel fica no modo de Chamada de emergência durante <xliff:g id="COUNT_1">%s</xliff:g> minutos. Neste modo, não é possível utilizar aplicações com uma ligação de dados. Pretende sair agora?</item>
+ <item quantity="one">O telemóvel fica no modo de Chamada de emergência durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. Neste modo, não é possível utilizar aplicações com uma ligação de dados. Pretende sair agora?</item>
</plurals>
<plurals name="alert_dialog_not_avaialble_in_ecm" formatted="false" msgid="1152682528741457004">
- <item quantity="one">A ação selecionada não está disponível no modo de Chamada de emergência. O telemóvel fica neste modo durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. Pretende sair agora?</item>
<item quantity="other">A ação selecionada não está disponível no modo de Chamada de emergência. O telemóvel fica neste modo durante <xliff:g id="COUNT_1">%s</xliff:g> minutos. Pretende sair agora?</item>
+ <item quantity="one">A ação selecionada não está disponível no modo de Chamada de emergência. O telemóvel fica neste modo durante <xliff:g id="COUNT_0">%s</xliff:g> minuto. Pretende sair agora?</item>
</plurals>
<string name="alert_dialog_in_ecm_call" msgid="1207545603149771978">"A ação selecionada não está disponível durante uma chamada de emergência."</string>
<string name="progress_dialog_exiting_ecm" msgid="9159080081676927217">"A sair do modo de chamada de retorno de emergência"</string>
@@ -653,8 +652,8 @@
<string name="phone_in_ecm_call_notification_text_without_data_restriction_hint" msgid="3747860785153531225">"O telemóvel está no modo de chamada de retorno de emergência."</string>
<string name="phone_in_ecm_notification_complete_time_without_data_restriction_hint" msgid="3690292264812050858">"Até à(s) <xliff:g id="COMPLETETIME">%s</xliff:g>."</string>
<plurals name="alert_dialog_exit_ecm_without_data_restriction_hint" formatted="false" msgid="6477733043040328640">
- <item quantity="one">O telemóvel ficará no modo de chamada de retorno de emergência durante <xliff:g id="COUNT_0">%s</xliff:g> minuto.\nPretende sair agora?</item>
<item quantity="other">O telemóvel ficará no modo de chamada de retorno de emergência durante <xliff:g id="COUNT_1">%s</xliff:g> minutos.\nPretende sair agora?</item>
+ <item quantity="one">O telemóvel ficará no modo de chamada de retorno de emergência durante <xliff:g id="COUNT_0">%s</xliff:g> minuto.\nPretende sair agora?</item>
</plurals>
<string name="voicemail_provider" msgid="4158806657253745294">"Serviço"</string>
<string name="voicemail_settings" msgid="4451045613238972776">"Configuração"</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 4e639eb..40eaf23 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -32,7 +32,7 @@
<string name="mmiCancelled" msgid="5339191899200678272">"Código MMI cancelado"</string>
<string name="cancel" msgid="8984206397635155197">"Cancelar"</string>
<string name="enter_input" msgid="6193628663039958990">"A mensagem USSD deve ter de <xliff:g id="MIN_LEN">%1$d</xliff:g> a <xliff:g id="MAX_LEN">%2$d</xliff:g> caracteres. Tente novamente."</string>
- <string name="manageConferenceLabel" msgid="8415044818156353233">"Gerenciar conferência"</string>
+ <string name="manageConferenceLabel" msgid="8415044818156353233">"Gerenciar teleconferência"</string>
<string name="ok" msgid="7818974223666140165">"OK"</string>
<string name="audio_mode_speaker" msgid="243689733219312360">"Alto-falante"</string>
<string name="audio_mode_earpiece" msgid="2823700267171134282">"Minifone do aparelho"</string>
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Ative a rede móvel e desative o modo avião ou o modo de economia de bateria para ligar."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Desative o modo avião para fazer uma chamada."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Desative o modo avião ou conecte-se a uma rede sem fio para fazer uma chamada."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"O smartphone está muito quente"</b>\n\n"Não é possível completar esta chamada. Tente de novo quando seu smartphone esfriar.\n\nVocê ainda pode fazer chamadas de emergência."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Saia do modo de retorno de chamada de emergência para fazer uma chamada que não seja de emergência."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Não registrado na rede."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Rede móvel não disponível."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 326cc52..4fc807d 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Activați rețeaua mobilă, dezactivați modul avion sau modul de economisire a bateriei pentru a iniția un apel."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Pentru a apela, dezactivați modul Avion."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Pentru a apela, dezactivați modul Avion sau conectați-vă la o rețea wireless."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefonul este prea fierbinte"</b>\n\n"Nu se poate iniția apelul. Încercați din nou după ce telefonul se răcește.\n\nPuteți, totuși, să inițiați apeluri de urgență."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Ieșiți din modul de apelare inversă de urgență pentru a efectua un apel care nu este de urgență."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Neînregistrat în rețea."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Rețeaua mobilă nu este disponibilă."</string>
@@ -918,6 +917,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Configurația secționării rețelei:"</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 4a6ee96..cdbbf6a 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -303,7 +303,7 @@
<string name="carrier_settings_euicc" msgid="1190237227261337749">"Оператор"</string>
<string name="keywords_carrier_settings_euicc" msgid="8540160967922063745">"оператор, esim, sim, euicc, сменить оператора, добавить оператора"</string>
<string name="carrier_settings_euicc_summary" msgid="2027941166597330117">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> – <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>"</string>
- <string name="mobile_data_settings_title" msgid="7228249980933944101">"Мобильный интернет"</string>
+ <string name="mobile_data_settings_title" msgid="7228249980933944101">"Мобильный Интернет"</string>
<string name="mobile_data_settings_summary" msgid="5012570152029118471">"Доступ к Интернету по мобильной сети"</string>
<string name="data_usage_disable_mobile" msgid="5669109209055988308">"Отключить мобильный Интернет?"</string>
<string name="sim_selection_required_pref" msgid="6985901872978341314">"Выберите SIM-карту"</string>
@@ -537,7 +537,6 @@
<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">"Чтобы позвонить, отключите режим полета и подключитесь к Wi-Fi."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Телефон перегрелся."</b>\n\n"Не удалось совершить звонок. Повторите попытку, когда телефон остынет.\n\nЭто не касается экстренных вызовов."</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>
@@ -921,6 +920,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Настройки фрагментирования сети:"</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 7efc245..0af60b6 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"දුරකථනය ඉතා උණුසුම් ය"</b>\n\n"මෙම ඇමතුම සම්පූර්ණ කළ නොහැක. ඔබේ දුරකථනය සිසිල් වන විට නැවත උත්සාහ කරන්න.\n\nඔබට තවමත් හදිසි ඇමතුම් ලබා ගත හැක."</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>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 7f9bc94..6a8a304 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Ak chcete volať, zapnite mobilnú sieť a vypnite režim v lietadle alebo režim šetriča batérie."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Ak chcete volať, vypnite režim v lietadle"</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Ak chcete volať, vypnite režim v lietadle alebo sa pripojte k bezdrôtovej sieti"</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefón sa príliš zahrial"</b>\n\n"Tento hovor sa nedá uskutočniť. Skúste to znova, keď telefón vychladne.\n\nTiesňové volania môžete uskutočňovať aj naďalej."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Ak chcete volať štandardným spôsobom, ukončite režim tiesňového spätného volania."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Prihlásenie do siete nebolo úspešné."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilná sieť nie je k dispozícii."</string>
@@ -921,6 +920,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 5feb01d..8f0a397 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Vklopite mobilno omrežje, izklopite način za letalo ali način za varčevanje z energijo akumulatorja, če želite opraviti klic."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Izklopite način za letalo, če želite opraviti klic."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Izklopite način za letalo ali se povežite v omrežje Wi-Fi, če želite opraviti klic."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefon je prevroč"</b>\n\n"Tega klica ni mogoče dokončati. Poskusite znova, ko se telefon ohladi.\n\nŠe vedno lahko opravljate klice v sili."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Če ne gre za klic v sili, zaprite način za povratni klici v sili."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Ni registrirano v omrežju."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Omrežje prenosnega telefona ni na voljo."</string>
@@ -921,6 +920,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Konfiguracija razkosanja omrežja:"</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 8ea15ab..483bf92 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Aktivizo rrjetin celular, çaktivizo modalitetin e aeroplanit ose modalitetin e kursyesit të baterisë për të bërë një telefonatë."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Çaktivizo modalitetin e aeroplanit për të bërë telefonata."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Çaktivizo modalitetin e aeroplanit ose lidhu me ndonjë rrjet interneti valor për të bërë telefonata."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefoni është shumë i nxehtë"</b>\n\n"Kjo telefonatë nuk mund të kryhet. Provo përsëri kur të ftohet telefoni.\n\nMund të bësh përsëri telefonata të urgjencës."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Dil nga modaliteti i kthimit të telefonatës së urgjencës për të bërë një telefonatë jo urgjente."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"I paregjistruar në rrjet."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Rrjeti celular nuk mundësohet."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 43633a7..905f491 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"Телефон је превише врућ"</b>\n\n"Позив не може да се заврши. Пробајте поново када се телефон охлади.\n\nИ даље можете да упућујете хитне позиве."</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>
@@ -918,6 +917,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 4b112c4..0d4af3f 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -75,7 +75,7 @@
<string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"Konfigurera kontoinställningar"</string>
<string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"Alla konton för samtal"</string>
<string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"Välj vilka konton som kan ringa samtal"</string>
- <string name="wifi_calling" msgid="3650509202851355742">"wifi-samtal"</string>
+ <string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi-samtal"</string>
<string name="connection_service_default_label" msgid="7332739049855715584">"Inbyggd anslutningstjänst"</string>
<string name="voicemail" msgid="7697769412804195032">"Röstbrevlåda"</string>
<string name="voicemail_settings_with_label" msgid="4228431668214894138">"Röstbrevlåda (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -309,7 +309,7 @@
<string name="sim_selection_required_pref" msgid="6985901872978341314">"Du måste välja något"</string>
<string name="sim_change_data_title" msgid="9142726786345906606">"Vill du ändra data-SIM?"</string>
<string name="sim_change_data_message" msgid="3567358694255933280">"Vill du använda <xliff:g id="NEW_SIM">%1$s</xliff:g> i stället för <xliff:g id="OLD_SIM">%2$s</xliff:g> för mobildata?"</string>
- <string name="wifi_calling_settings_title" msgid="5800018845662016507">"wifi-samtal"</string>
+ <string name="wifi_calling_settings_title" msgid="5800018845662016507">"Wi-Fi-samtal"</string>
<string name="video_calling_settings_title" msgid="342829454913266078">"Videosamtal via operatören"</string>
<string name="gsm_umts_options" msgid="4968446771519376808">"Alternativ för GSM/UMTS"</string>
<string name="cdma_options" msgid="3669592472226145665">"CDMA-alternativ"</string>
@@ -451,8 +451,8 @@
<string name="sum_fdn" msgid="6152246141642323582">"Hantera fasta nummer"</string>
<string name="sum_fdn_change_pin" msgid="3510994280557335727">"Ändra PIN-kod för FDN-åtkomst"</string>
<string name="sum_fdn_manage_list" msgid="3311397063233992907">"Hantera nummerlistan"</string>
- <string name="voice_privacy" msgid="7346935172372181951">"Integritet för Voice"</string>
- <string name="voice_privacy_summary" msgid="3556460926168473346">"Aktivera avancerat integritetsläge"</string>
+ <string name="voice_privacy" msgid="7346935172372181951">"Sekretess för Voice"</string>
+ <string name="voice_privacy_summary" msgid="3556460926168473346">"Aktivera avancerat sekretessläge"</string>
<string name="tty_mode_option_title" msgid="3843817710032641703">"TTY-läge"</string>
<string name="tty_mode_option_summary" msgid="4770510287236494371">"Ange TTY-läge"</string>
<string name="auto_retry_mode_title" msgid="2985801935424422340">"Försök igen automatiskt"</string>
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Aktivera mobilt nätverk, stäng av flygplansläget eller batterisparläget för att ringa ett samtal."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Inaktivera flygplansläget om du vill ringa."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Inaktivera flygplansläget eller anslut till ett trådlöst nätverk om du vill ringa."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefonen för varm"</b>\n\n"Det går inte att genomföra samtalet. Försök igen när telefonen svalnar.\n\nDet går fortfarande att ringa nödsamtal."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Avsluta läget för återuppringning vid nödsamtal om du vill ringa ett vanligt samtal."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Inte registrerat på nätverk."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Inget mobilt nätverk är tillgängligt."</string>
@@ -555,7 +554,7 @@
<string name="incall_error_supp_service_hangup" msgid="836524952243836735">"Det gick inte att släppa samtal."</string>
<string name="incall_error_supp_service_hold" msgid="8535056414643540997">"Det går inte att hålla kvar samtal."</string>
<string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"Anslut till ett trådlöst nätverk om du vill ringa."</string>
- <string name="incall_error_promote_wfc" msgid="9164896813931363415">"Aktivera wifi-samtal för att ringa."</string>
+ <string name="incall_error_promote_wfc" msgid="9164896813931363415">"Aktivera Wi-Fi-samtal för att ringa."</string>
<string name="emergency_information_hint" msgid="9208897544917793012">"Nödinformation"</string>
<string name="emergency_information_owner_hint" msgid="6256909888049185316">"Ägare"</string>
<string name="emergency_information_confirm_hint" msgid="5109017615894918914">"Tryck igen för att visa information"</string>
@@ -617,7 +616,7 @@
<string name="ota_hfa_activation_title" msgid="3300556778212729671">"Aktiveras ..."</string>
<string name="ota_hfa_activation_dialog_message" msgid="7921718445773342996">"Din mobila datatjänst aktiveras av mobilen.\n\nDetta kan ta upp till fem minuter."</string>
<string name="ota_skip_activation_dialog_title" msgid="7666611236789203797">"Vill du hoppa över aktiveringen?"</string>
- <string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"Om du hoppar över aktiveringen kan du inte ringa samtal eller ansluta till mobila datanätverk (men du kan ansluta till wifi-nätverk). Du kommer att påminnas om att aktivera telefonen varje gång du sätter på den, tills du har aktiverat den."</string>
+ <string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"Om du hoppar över aktiveringen kan du inte ringa samtal eller ansluta till mobila datanätverk (men du kan ansluta till Wi-Fi-nätverk). Du kommer att påminnas om att aktivera telefonen varje gång du sätter på den, tills du har aktiverat den."</string>
<string name="ota_skip_activation_dialog_skip_label" msgid="5908029466817825633">"Hoppa över"</string>
<string name="ota_activate" msgid="7939695753665438357">"Aktivera"</string>
<string name="ota_title_activate_success" msgid="1272135024761004889">"Telefonen är aktiverad."</string>
@@ -681,18 +680,18 @@
<string name="sim_description_emergency_calls" msgid="5146872803938897296">"Endast nödsamtal"</string>
<string name="sim_description_default" msgid="7474671114363724971">"SIM-kortsplats: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"Tillgänglighet"</string>
- <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"wifi-samtal från"</string>
- <string name="status_hint_label_wifi_call" msgid="942993035689809853">"wifi-samtal"</string>
+ <string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"Wi-Fi-samtal från"</string>
+ <string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi-samtal"</string>
<string name="emergency_action_launch_hint" msgid="2762016865340891314">"Tryck igen för att öppna"</string>
<string name="message_decode_error" msgid="1061856591500290887">"Ett fel inträffade när meddelandet avkodades."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"Ett SIM-kort har använts för att aktivera tjänsten och uppdatera roamingfunktionerna i mobilen."</string>
<string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"Det finns för många aktiva samtal. Avsluta eller slå samman pågående samtal innan du ringer ett nytt."</string>
<string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"Det går inte att ansluta. Sätt i ett giltigt SIM-kort."</string>
- <string name="callFailed_wifi_lost" msgid="1788036730589163141">"wifi-anslutningen bruten. Samtal avslutat."</string>
+ <string name="callFailed_wifi_lost" msgid="1788036730589163141">"Wi-Fi-anslutningen bruten. Samtal avslutat."</string>
<string name="dialFailed_low_battery" msgid="6857904237423407056">"Det går inte att ringa videosamtal på grund av svagt batteri."</string>
<string name="callFailed_low_battery" msgid="4056828320214416182">"Videosamtalet slutade på grund av svagt batteri."</string>
- <string name="callFailed_emergency_call_over_wfc_not_available" msgid="5944309590693432042">"Nödsamtal via wifi är inte tillgängligt på den här platsen."</string>
- <string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"wifi-samtal är inte tillgängligt på den här platsen."</string>
+ <string name="callFailed_emergency_call_over_wfc_not_available" msgid="5944309590693432042">"Nödsamtal via Wi-Fi är inte tillgängligt på den här platsen."</string>
+ <string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"Wi-Fi-samtal är inte tillgängligt på den här platsen."</string>
<string name="change_pin_title" msgid="3564254326626797321">"Ändra röstbrevlådans pinkod"</string>
<string name="change_pin_continue_label" msgid="5177011752453506371">"Fortsätt"</string>
<string name="change_pin_cancel_label" msgid="2301711566758827936">"Avbryt"</string>
@@ -837,7 +836,7 @@
<string name="radio_info_data_connection_disable" msgid="6404751291511368706">"Inaktivera dataanslutning"</string>
<string name="volte_provisioned_switch_string" msgid="4812874990480336178">"VoLTE-administrerad"</string>
<string name="vt_provisioned_switch_string" msgid="8295542122512195979">"Videosamtal tillhandahålls"</string>
- <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"wifi-samtal tillhandahålls"</string>
+ <string name="wfc_provisioned_switch_string" msgid="3835004640321078988">"Wi-Fi-samtal tillhandahålls"</string>
<string name="eab_provisioned_switch_string" msgid="4449676720736033035">"EAB/Presence tillhandahålls"</string>
<string name="cbrs_data_switch_string" msgid="6060356430838077653">"Data via CBRS"</string>
<string name="dsds_switch_string" msgid="7564769822086764796">"Aktivera DSDS"</string>
@@ -855,7 +854,7 @@
<string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"Inte registrerad"</string>
<string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"Tillgänglig"</string>
<string name="radio_info_ims_feature_status_unavailable" msgid="8930391136839759778">"Inte tillgängligt"</string>
- <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-registrering: <xliff:g id="STATUS">%1$s</xliff:g>\nRöst via LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nRöst via wifi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideosamtal: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-gränssnitt: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+ <string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS-registrering: <xliff:g id="STATUS">%1$s</xliff:g>\nRöst via LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nRöst via Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nVideosamtal: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-gränssnitt: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
<string name="radioInfo_service_in" msgid="45753418231446400">"I tjänst"</string>
<string name="radioInfo_service_out" msgid="287972405416142312">"Ur funktion"</string>
<string name="radioInfo_service_emergency" msgid="4763879891415016848">"Endast nödsamtal"</string>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Nätverkets uppdelningskonfiguration:"</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 83727d0..8241f0b 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -297,7 +297,7 @@
<string name="sip_accounts_removed_notification_title" msgid="3528076957535736095">"Akaunti za SIP ambazo zimefungwa zimepatikana na zikaondolewa"</string>
<string name="sip_accounts_removed_notification_message" msgid="1916856744869791592">"Huduma ya kupiga simu kupitia SIP haipatikani tena kwenye mfumo wa Android.\nAkaunti zako za SIP zilizopo <xliff:g id="REMOVED_SIP_ACCOUNTS">%s</xliff:g> zimeondolewa.\nTafadhali thibitisha mipangilio ya akaunti yako chaguomsingi ya kupiga simu."</string>
<string name="sip_accounts_removed_notification_action" msgid="3772778402370555562">"Nenda kwenye mipangilio"</string>
- <string name="data_usage_title" msgid="8438592133893837464">"Programu inavyotumia data"</string>
+ <string name="data_usage_title" msgid="8438592133893837464">"Matumizi ya data ya programu"</string>
<string name="data_usage_template" msgid="6287906680674061783">"<xliff:g id="ID_1">%1$s</xliff:g> za data ya mtandao wa simu zimetumika kuanzia <xliff:g id="ID_2">%2$s</xliff:g>"</string>
<string name="advanced_options_title" msgid="9208195294513520934">"Mipangilio ya Kina"</string>
<string name="carrier_settings_euicc" msgid="1190237227261337749">"Mtoa huduma"</string>
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Washa mtandao wa simu, zima hali ya ndegeni au uzime hali ya kiokoa betri ili upige simu."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Zima hali ya ndegeni ili upige simu."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Zima hali ya ndegeni au uunganishe kwenye mtandao pasiwaya ili upige simu."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Simu ina kiwango cha joto cha juu sana"</b>\n\n"Imeshindwa kupiga simu hii. Jaribu tena wakati kiwango cha joto cha simu yako kitapungua.\n\nBado unaweza kupiga simu za dharura."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Ondoka kwenye hali ya kupiga simu za dharura ili upige simu zisizokuwa za dharura."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Haijasajiliwa kwa mitandao"</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mtandao wa simu haupatikani."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 029c5bd..5a28420 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -49,13 +49,13 @@
<string name="add_vm_number_str" msgid="7368168964435881637">"எண்ணைச் சேர்"</string>
<string name="voice_number_setting_primary_user_only" msgid="3394706575741912843">"முதன்மை பயனர் மட்டுமே குரலஞ்சல் அமைப்புகளை மாற்ற முடியும்."</string>
<string name="puk_unlocked" msgid="4627340655215746511">"சிம் கார்டின் தடுப்பு நீக்கப்பட்டது. மொபைல் திறக்கப்படுகிறது…"</string>
- <string name="label_ndp" msgid="7617392683877410341">"சிம் நெட்வொர்க்கை அன்லாக் செய்யும் பின்"</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_unlock_text" msgid="7737338355451978338">"தடைநீக்கு"</string>
<string name="sim_ndp_dismiss_text" msgid="89667342248929777">"விலக்கு"</string>
- <string name="requesting_unlock" msgid="930512210309437741">"நெட்வொர்க்கை அன்லாக் செய்யக் கோருகிறது…"</string>
- <string name="unlock_failed" msgid="7103543844840661366">"நெட்வொர்க்கை அன்லாக் செய்வதற்கான கோரிக்கை தோல்வியடைந்தது."</string>
- <string name="unlock_success" msgid="32681089371067565">"நெட்வொர்க் அன்லாக் செய்யப்பட்டது."</string>
+ <string name="requesting_unlock" msgid="930512210309437741">"நெட்வொர்க் தடைநீக்கத்தைக் கோருகிறது…"</string>
+ <string name="unlock_failed" msgid="7103543844840661366">"நெட்வொர்க் தடைநீக்கத்திற்கான கோரிக்கை தோல்வி."</string>
+ <string name="unlock_success" msgid="32681089371067565">"நெட்வொர்க்கின் தடைநீக்கப்பட்டது."</string>
<string name="mobile_network_settings_not_available" msgid="8678168497517090039">"இவரால் மொபைல் நெட்வொர்க் அமைப்புகளை மாற்ற முடியாது"</string>
<string name="labelGSMMore" msgid="7354182269461281543">"GSM அழைப்பு அமைப்பு"</string>
<string name="labelGsmMore_with_label" msgid="3206015314393246224">"GSM அழைப்பு அமைப்புகள் (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
@@ -339,7 +339,7 @@
<string name="maintenance_enable" msgid="2646784483222342290">"பராமரிப்பு இயக்கப்பட்டது"</string>
<string name="maintenance_disable" msgid="2121032601497725602">"பராமரிப்பு முடக்கப்பட்டது"</string>
<string name="general_news_settings" msgid="2670499575962080411">"பொது செய்திகள்"</string>
- <string name="bf_news_settings" msgid="8571709425370794221">"பிசினஸ் மற்றும் நிதிசார்ந்த செய்திகள்"</string>
+ <string name="bf_news_settings" msgid="8571709425370794221">"வணிகம் மற்றும் நிதிசார்ந்த செய்திகள்"</string>
<string name="sports_news_settings" msgid="2684364556989168438">"விளையாட்டுச் செய்திகள்"</string>
<string name="entertainment_news_settings" msgid="4228527702346305543">"பொழுதுபோக்குச் செய்திகள்"</string>
<string name="enable_disable_local" msgid="7654175079979415572">"உள்ளூர்"</string>
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"மொபைல் மிகச் சூடாக உள்ளது"</b>\n\n"இந்த அழைப்பைத் தொடர முடியவில்லை. மொபைலின் சூடு முழுமையாகத் தணிந்ததும் மீண்டும் அழைக்கவும்.\n\nஇருப்பினும் அவசர அழைப்புகளைச் செய்யலாம்."</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>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 3665df7..0b0220f 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -20,25 +20,25 @@
<string name="phoneAppLabel" product="default" msgid="130465039375347763">"ఫోన్ సేవలు"</string>
<string name="emergencyDialerIconLabel" msgid="8668005772339436680">"అత్యవసర డయలర్"</string>
<string name="phoneIconLabel" msgid="3015941229249651419">"ఫోన్"</string>
- <string name="fdnListLabel" msgid="4119121875004244097">"FDN లిస్ట్"</string>
+ <string name="fdnListLabel" msgid="4119121875004244097">"FDN జాబితా"</string>
<string name="unknown" msgid="8279698889921830815">"తెలియదు"</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>
- <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"క్యారియర్ మెసేజ్"</string>
+ <string name="carrier_mmi_msg_title" msgid="6050165242447507034">"<xliff:g id="MMICARRIER">%s</xliff:g>సందేశం"</string>
+ <string name="default_carrier_mmi_msg_title" msgid="7754317179938537213">"క్యారియర్ సందేశం"</string>
<string name="mmiStarted" msgid="9212975136944568623">"MMI కోడ్ ప్రారంభించబడింది"</string>
<string name="ussdRunning" msgid="1163586813106772717">"USSD కోడ్ అమలు చేయబడుతోంది…"</string>
<string name="mmiCancelled" msgid="5339191899200678272">"MMI కోడ్ రద్దు చేయబడింది"</string>
<string name="cancel" msgid="8984206397635155197">"రద్దు చేయి"</string>
- <string name="enter_input" msgid="6193628663039958990">"USSD మెసేజ్ తప్పనిసరిగా <xliff:g id="MIN_LEN">%1$d</xliff:g> మరియు <xliff:g id="MAX_LEN">%2$d</xliff:g> అక్షరాల మధ్య ఉండాలి. దయచేసి మళ్లీ ప్రయత్నించండి."</string>
+ <string name="enter_input" msgid="6193628663039958990">"USSD సందేశం తప్పనిసరిగా <xliff:g id="MIN_LEN">%1$d</xliff:g> మరియు <xliff:g id="MAX_LEN">%2$d</xliff:g> అక్షరాల మధ్య ఉండాలి. దయచేసి మళ్లీ ప్రయత్నించండి."</string>
<string name="manageConferenceLabel" msgid="8415044818156353233">"కాన్ఫరెన్స్ కాల్ను నిర్వహించండి"</string>
<string name="ok" msgid="7818974223666140165">"సరే"</string>
<string name="audio_mode_speaker" msgid="243689733219312360">"స్పీకర్"</string>
<string name="audio_mode_earpiece" msgid="2823700267171134282">"హ్యాండ్సెట్ ఇయర్పీస్"</string>
<string name="audio_mode_wired_headset" msgid="5028010823105817443">"వైర్ గల హెడ్సెట్"</string>
<string name="audio_mode_bluetooth" msgid="25732183428018809">"బ్లూటూత్"</string>
- <string name="wait_prompt_str" msgid="5136209532150094910">"కింది టోన్లు పంపాలా?\n"</string>
+ <string name="wait_prompt_str" msgid="5136209532150094910">"క్రింది టోన్లు పంపాలా?\n"</string>
<string name="pause_prompt_str" msgid="2308897950360272213">"టోన్లు పంపుతోంది\n"</string>
<string name="send_button" msgid="5070379600779031932">"పంపు"</string>
<string name="pause_prompt_yes" msgid="8184132073048369575">"అవును"</string>
@@ -54,7 +54,7 @@
<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>
- <string name="unlock_failed" msgid="7103543844840661366">"నెట్వర్క్ అన్లాక్ రిక్వెస్ట్ విఫలమైంది."</string>
+ <string name="unlock_failed" msgid="7103543844840661366">"నెట్వర్క్ అన్లాక్ అభ్యర్థన విఫలమైంది."</string>
<string name="unlock_success" msgid="32681089371067565">"నెట్వర్క్ అన్లాక్ విజయవంతమైంది."</string>
<string name="mobile_network_settings_not_available" msgid="8678168497517090039">"ఈ వినియోగదారుకు మొబైల్ నెట్వర్క్ సెట్టింగ్లు అందుబాటులో లేవు"</string>
<string name="labelGSMMore" msgid="7354182269461281543">"GSM కాల్ సెట్టింగ్లు"</string>
@@ -64,8 +64,8 @@
<string name="apn_settings" msgid="1978652203074756623">"యాక్సెస్ పాయింట్ పేర్లు"</string>
<string name="settings_label" msgid="9101778088412567956">"నెట్వర్క్ సెట్టింగ్లు"</string>
<string name="phone_accounts" msgid="1216879437523774604">"కాల్ చేయగల ఖాతాలు"</string>
- <string name="phone_accounts_make_calls_with" msgid="16747814788918145">"దీనితో కాల్స్ చేయి"</string>
- <string name="phone_accounts_make_sip_calls_with" msgid="4691221006731847255">"దీనితో SIP కాల్స్ను చేయి"</string>
+ <string name="phone_accounts_make_calls_with" msgid="16747814788918145">"దీనితో కాల్లు చేయి"</string>
+ <string name="phone_accounts_make_sip_calls_with" msgid="4691221006731847255">"దీనితో SIP కాల్లను చేయి"</string>
<string name="phone_accounts_ask_every_time" msgid="6192347582666047168">"ముందుగానే అడుగు"</string>
<string name="phone_accounts_default_account_label" msgid="5107598881335931101">"నెట్వర్క్ ఏదీ అందుబాటులో లేదు"</string>
<string name="phone_accounts_settings_header" msgid="6296501692964706536">"సెట్టింగ్లు"</string>
@@ -74,15 +74,15 @@
<string name="phone_accounts_add_sip_account" msgid="1437634802033309305">"SIP ఖాతాను జోడించు"</string>
<string name="phone_accounts_configure_account_settings" msgid="6622119715253196586">"ఖాతా సెట్టింగ్లను కాన్ఫిగర్ చేయి"</string>
<string name="phone_accounts_all_calling_accounts" msgid="1609600743500618823">"అన్ని కాలింగ్ ఖాతాలు"</string>
- <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"ఏ ఖాతాల నుండి కాల్స్ చేయవచ్చనే దాన్ని ఎంచుకోండి"</string>
+ <string name="phone_accounts_all_calling_accounts_summary" msgid="2214134955430107240">"ఏ ఖాతాల నుండి కాల్లు చేయవచ్చనే దాన్ని ఎంచుకోండి"</string>
<string name="wifi_calling" msgid="3650509202851355742">"Wi-Fi కాలింగ్"</string>
<string name="connection_service_default_label" msgid="7332739049855715584">"అంతర్నిర్మిత కనెక్షన్ సేవ"</string>
<string name="voicemail" msgid="7697769412804195032">"వాయిస్ మెయిల్"</string>
<string name="voicemail_settings_with_label" msgid="4228431668214894138">"వాయిస్ మెయిల్ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_abbreviated" msgid="7746778673131551185">"VM:"</string>
- <string name="make_and_receive_calls" msgid="4868913166494621109">"కాల్స్ను చేయండి & స్వీకరించండి"</string>
+ <string name="make_and_receive_calls" msgid="4868913166494621109">"కాల్లను చేయండి & స్వీకరించండి"</string>
<string name="smart_forwarding_settings_menu" msgid="8850429887958938540">"స్మార్ట్ ఫార్వర్డ్ను ప్రారంభించు"</string>
- <string name="smart_forwarding_settings_menu_summary" msgid="5096947726032885325">"ఒక నంబర్ను చేరుకోలేకపోయినప్పుడు, మీ ఇతర నంబర్లకు కాల్స్ను ఎల్లప్పుడూ ఫార్వర్డ్ చేయబడతాయి."</string>
+ <string name="smart_forwarding_settings_menu_summary" msgid="5096947726032885325">"ఒక నంబర్ను చేరుకోలేకపోయినప్పుడు, మీ ఇతర నంబర్లకు కాల్లను ఎల్లప్పుడూ ఫార్వర్డ్ చేయబడతాయి."</string>
<string name="voicemail_notifications_preference_title" msgid="7829238858063382977">"నోటిఫికేషన్లు"</string>
<string name="cell_broadcast_settings" msgid="8135324242541809924">"అత్యవసర ప్రసారాలు"</string>
<string name="call_settings" msgid="3677282690157603818">"కాల్ సెట్టింగ్లు"</string>
@@ -96,17 +96,17 @@
<string name="sum_loading_settings" msgid="434063780286688775">"సెట్టింగ్లను లోడ్ చేస్తోంది…"</string>
<string name="sum_hide_caller_id" msgid="131100328602371933">"అవుట్గోయింగ్ కాల్స్లో నంబర్ దాచబడుతుంది"</string>
<string name="sum_show_caller_id" msgid="3571854755324664591">"అవుట్గోయింగ్ కాల్స్లో నంబర్ ప్రదర్శించబడుతుంది"</string>
- <string name="sum_default_caller_id" msgid="1767070797135682959">"అవుట్గోయింగ్ కాల్స్లో నా నంబర్ను ప్రదర్శించడానికి ఆటోమేటిక్ ఆపరేటర్ సెట్టింగ్లను ఉపయోగించు"</string>
+ <string name="sum_default_caller_id" msgid="1767070797135682959">"అవుట్గోయింగ్ కాల్స్లో నా నంబర్ను ప్రదర్శించడానికి డిఫాల్ట్ ఆపరేటర్ సెట్టింగ్లను ఉపయోగించు"</string>
<string name="labelCW" msgid="8449327023861428622">"కాల్ నిరీక్షణ"</string>
- <string name="sum_cw_enabled" msgid="3977308526187139996">"కాల్ సమయంలో, ఇన్కమింగ్ కాల్స్ల గురించి నాకు తెలియజేయి"</string>
- <string name="sum_cw_disabled" msgid="3658094589461768637">"కాల్ సమయంలో, ఇన్కమింగ్ కాల్స్ల గురించి నాకు తెలియజేయి"</string>
+ <string name="sum_cw_enabled" msgid="3977308526187139996">"కాల్ సమయంలో, ఇన్కమింగ్ కాల్ల గురించి నాకు తెలియజేయి"</string>
+ <string name="sum_cw_disabled" msgid="3658094589461768637">"కాల్ సమయంలో, ఇన్కమింగ్ కాల్ల గురించి నాకు తెలియజేయి"</string>
<string name="call_forwarding_settings" msgid="8937130467468257671">"కాల్ ఫార్వర్డింగ్ సెట్టింగ్లు"</string>
<string name="call_forwarding_settings_with_label" msgid="2345432813399564272">"కాల్ ఫార్వార్డింగ్ సెట్టింగ్లు (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="labelCF" msgid="3578719437928476078">"కాల్ ఫార్వార్డింగ్"</string>
<string name="labelCFU" msgid="8870170873036279706">"ఎల్లప్పుడూ ఫార్వర్డ్ చేయి"</string>
<string name="messageCFU" msgid="1361806450979589744">"ఎల్లప్పుడూ ఈ నంబర్ను ఉపయోగించు"</string>
- <string name="sum_cfu_enabled_indicator" msgid="9030139213402432776">"అన్ని కాల్స్ను ఫార్వార్డ్ చేస్తోంది"</string>
- <string name="sum_cfu_enabled" msgid="5806923046528144526">"అన్ని కాల్స్ను <xliff:g id="PHONENUMBER">{0}</xliff:g>కి ఫార్వార్డ్ చేస్తోంది"</string>
+ <string name="sum_cfu_enabled_indicator" msgid="9030139213402432776">"అన్ని కాల్లను ఫార్వార్డ్ చేస్తోంది"</string>
+ <string name="sum_cfu_enabled" msgid="5806923046528144526">"అన్ని కాల్లను <xliff:g id="PHONENUMBER">{0}</xliff:g>కి ఫార్వార్డ్ చేస్తోంది"</string>
<string name="sum_cfu_enabled_no_number" msgid="7287752761743377930">"నంబర్ అందుబాటులో లేదు"</string>
<string name="sum_cfu_disabled" msgid="5010617134210809853">"ఆఫ్లో ఉంది"</string>
<string name="labelCFB" msgid="615265213360512768">"బిజీగా ఉన్నప్పుడు"</string>
@@ -126,7 +126,7 @@
<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_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>
@@ -140,18 +140,18 @@
<string name="reverting_settings" msgid="7378668837291012205">"సెట్టింగ్లను తిరిగి మారుస్తోంది…"</string>
<string name="response_error" msgid="3904481964024543330">"నెట్వర్క్ నుండి ఊహించని ప్రతిస్పందన."</string>
<string name="exception_error" msgid="330994460090467">"నెట్వర్క్ లేదా SIM కార్డు లోపం."</string>
- <string name="stk_cc_ss_to_dial_error" msgid="5147693491690618704">"SS రిక్వెస్ట్ సాధారణ కాల్కు మార్చబడింది"</string>
- <string name="stk_cc_ss_to_ussd_error" msgid="8330749347425752192">"SS రిక్వెస్ట్ USSD రిక్వెస్ట్కు మార్చబడింది"</string>
- <string name="stk_cc_ss_to_ss_error" msgid="8297155544652134278">"కొత్త SS రిక్వెస్ట్కు మార్చబడింది"</string>
- <string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"SS రిక్వెస్ట్ వీడియో కాల్కి మార్చబడింది"</string>
- <string name="fdn_check_failure" msgid="1833769746374185247">"మీ ఫోన్ యాప్ యొక్క ఫిక్స్డ్ డయలింగ్ నంబర్ల సెట్టింగ్ ప్రారంభించబడింది. తత్ఫలితంగా, కాల్ సంబంధిత లక్షణాల్లో కొన్ని పని చేయడం లేదు."</string>
+ <string name="stk_cc_ss_to_dial_error" msgid="5147693491690618704">"SS అభ్యర్థన సాధారణ కాల్కు మార్చబడింది"</string>
+ <string name="stk_cc_ss_to_ussd_error" msgid="8330749347425752192">"SS అభ్యర్థన USSD అభ్యర్థనకు మార్చబడింది"</string>
+ <string name="stk_cc_ss_to_ss_error" msgid="8297155544652134278">"కొత్త SS అభ్యర్థనకు మార్చబడింది"</string>
+ <string name="stk_cc_ss_to_dial_video_error" msgid="4255261231466032505">"SS అభ్యర్థన వీడియో కాల్కి మార్చబడింది"</string>
+ <string name="fdn_check_failure" msgid="1833769746374185247">"మీ ఫోన్ అనువర్తనం యొక్క ఫిక్స్డ్ డయలింగ్ నంబర్ల సెట్టింగ్ ప్రారంభించబడింది. తత్ఫలితంగా, కాల్ సంబంధిత లక్షణాల్లో కొన్ని పని చేయడం లేదు."</string>
<string name="radio_off_error" msgid="8321564164914232181">"ఈ సెట్టింగ్లను వీక్షించడానికి ముందు రేడియోను ప్రారంభించండి."</string>
<string name="close_dialog" msgid="1074977476136119408">"సరే"</string>
<string name="enable" msgid="2636552299455477603">"ఆన్ చేయి"</string>
<string name="disable" msgid="1122698860799462116">"ఆఫ్ చేయి"</string>
<string name="change_num" msgid="6982164494063109334">"అప్డేట్ చేయి"</string>
<string-array name="clir_display_values">
- <item msgid="8477364191403806960">"నెట్వర్క్ ఆటోమేటిక్"</item>
+ <item msgid="8477364191403806960">"నెట్వర్క్ డిఫాల్ట్"</item>
<item msgid="6813323051965618926">"నంబర్ను దాచు"</item>
<item msgid="9150034130629852635">"నంబర్ను చూపు"</item>
</string-array>
@@ -181,11 +181,11 @@
<string name="not_allowed" msgid="8541221928746104798">"మీ SIM కార్డు ఈ నెట్వర్క్కు కనెక్షన్ను అనుమతించదు."</string>
<string name="connect_later" msgid="1950138106010005425">"ప్రస్తుతం ఈ నెట్వర్క్కు కనెక్ట్ చేయడం సాధ్యపడదు. తర్వాత మళ్లీ ప్రయత్నించండి."</string>
<string name="registration_done" msgid="5337407023566953292">"నెట్వర్క్లో నమోదు అయింది."</string>
- <string name="already_auto" msgid="8607068290733079336">"ఇప్పటికే ఆటోమేటిక్ ఎంపికలో ఉంది."</string>
+ <string name="already_auto" msgid="8607068290733079336">"ఇప్పటికే స్వయంచాలక ఎంపికలో ఉంది."</string>
<string name="select_automatically" msgid="779750291257872651">"నెట్వర్క్ను ఆటోమేటిక్గా ఎంచుకో"</string>
<string name="manual_mode_disallowed_summary" msgid="3970048592179890197">"%1$sకు కనెక్ట్ చేసినప్పుడు అందుబాటులో లేదు"</string>
<string name="network_select_title" msgid="4117305053881611988">"నెట్వర్క్"</string>
- <string name="register_automatically" msgid="3907580547590554834">"ఆటోమేటిక్ నమోదు…"</string>
+ <string name="register_automatically" msgid="3907580547590554834">"స్వయంచాలక నమోదు…"</string>
<string name="preferred_network_mode_title" msgid="5253395265169539830">"ప్రాధాన్య నెట్వర్క్ రకం"</string>
<string name="preferred_network_mode_summary" msgid="3787989000044330064">"నెట్వర్క్ ఆపరేటింగ్ మోడ్ను మార్చండి"</string>
<string name="preferred_network_mode_dialogtitle" msgid="2781447433514459696">"ప్రాధాన్య నెట్వర్క్ రకం"</string>
@@ -292,8 +292,8 @@
<string name="roaming_check_price_warning" msgid="8212484083990570215">"ధరల కోసం మీ నెట్వర్క్ ప్రదాతను అడగండి."</string>
<string name="roaming_alert_title" msgid="5689615818220960940">"డేటా రోమింగ్ను అనుమతించాలా?"</string>
<string name="limited_sim_function_notification_title" msgid="612715399099846281">"SIM పనితీరు పరిమితంగా ఉంది"</string>
- <string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"<xliff:g id="PHONE_NUMBER">%2$s</xliff:g> ఉపయోగిస్తున్నప్పుడు <xliff:g id="CARRIER_NAME">%1$s</xliff:g> కాల్స్ మరియు డేటా సేవలు బ్లాక్ చేయబడవచ్చు."</string>
- <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"వేరొక SIMను ఉపయోగిస్తున్నప్పుడు <xliff:g id="CARRIER_NAME">%1$s</xliff:g> కాల్స్ మరియు డేటా సేవలు బ్లాక్ చేయబడవచ్చు."</string>
+ <string name="limited_sim_function_with_phone_num_notification_message" msgid="5928988883403677610">"<xliff:g id="PHONE_NUMBER">%2$s</xliff:g> ఉపయోగిస్తున్నప్పుడు <xliff:g id="CARRIER_NAME">%1$s</xliff:g> కాల్లు మరియు డేటా సేవలు బ్లాక్ చేయబడవచ్చు."</string>
+ <string name="limited_sim_function_notification_message" msgid="5338638075496721160">"వేరొక SIMను ఉపయోగిస్తున్నప్పుడు <xliff:g id="CARRIER_NAME">%1$s</xliff:g> కాల్లు మరియు డేటా సేవలు బ్లాక్ చేయబడవచ్చు."</string>
<string name="sip_accounts_removed_notification_title" msgid="3528076957535736095">"తీసివేయబడిన SIP ఖాతాలు కనుగొనబడ్డాయి, తీసివేయబడ్డాయి"</string>
<string name="sip_accounts_removed_notification_message" msgid="1916856744869791592">"SIP కాలింగ్కు ఇకపై Android ప్లాట్ఫామ్లో సపోర్ట్ ఉండదు.\nఇప్పటికే ఉన్న మీ SIP ఖాతాలు<xliff:g id="REMOVED_SIP_ACCOUNTS">%s</xliff:g> తీసివేయబడ్డాయి.\nదయచేసి మీ ఆటోమేటిక్ కాలింగ్ ఖాతా సెట్టింగ్ను ధృవీకరించండి."</string>
<string name="sip_accounts_removed_notification_action" msgid="3772778402370555562">"సెట్టింగ్లకు వెళ్లు"</string>
@@ -339,7 +339,7 @@
<string name="maintenance_enable" msgid="2646784483222342290">"నిర్వహణ ప్రారంభించబడింది"</string>
<string name="maintenance_disable" msgid="2121032601497725602">"నిర్వహణ నిలిపివేయబడింది"</string>
<string name="general_news_settings" msgid="2670499575962080411">"సాధారణ వార్తలు"</string>
- <string name="bf_news_settings" msgid="8571709425370794221">"బిజినెస్ మరియు ఆర్థిక వార్తలు"</string>
+ <string name="bf_news_settings" msgid="8571709425370794221">"వ్యాపార మరియు ఆర్థిక వార్తలు"</string>
<string name="sports_news_settings" msgid="2684364556989168438">"క్రీడల వార్తలు"</string>
<string name="entertainment_news_settings" msgid="4228527702346305543">"వినోద సంబంధ వార్తలు"</string>
<string name="enable_disable_local" msgid="7654175079979415572">"స్థానికం"</string>
@@ -378,9 +378,9 @@
<string name="enable_disable_local_weather" msgid="7734933941872511543">"స్థానిక వాతావరణం"</string>
<string name="local_weather_enable" msgid="2143929735295254729">"స్థానిక వాతావరణం ప్రారంభించబడింది"</string>
<string name="local_weather_disable" msgid="4209936355998349647">"స్థానిక వాతావరణం నిలిపివేయబడింది"</string>
- <string name="enable_disable_atr" msgid="821714821057385390">"ప్రాంతపు ట్రాఫిక్ రిపోర్ట్లు"</string>
- <string name="atr_enable" msgid="1799097759998768186">"ప్రాంతపు ట్రాఫిక్ రిపోర్ట్లు ప్రారంభించబడ్డాయి"</string>
- <string name="atr_disable" msgid="6456758173289065766">"ప్రాంతపు ట్రాఫిక్ రిపోర్ట్లు నిలిపివేయబడ్డాయి"</string>
+ <string name="enable_disable_atr" msgid="821714821057385390">"ప్రాంతపు ట్రాఫిక్ నివేదికలు"</string>
+ <string name="atr_enable" msgid="1799097759998768186">"ప్రాంతపు ట్రాఫిక్ నివేదికలు ప్రారంభించబడ్డాయి"</string>
+ <string name="atr_disable" msgid="6456758173289065766">"ప్రాంతపు ట్రాఫిక్ నివేదికలు నిలిపివేయబడ్డాయి"</string>
<string name="enable_disable_lafs" msgid="7448060358300805661">"స్థానిక విమానాశ్రయ విమాన షెడ్యూల్లు"</string>
<string name="lafs_enable" msgid="3125783406052655690">"స్థానిక విమానాశ్రయ విమాన షెడ్యూల్లు ప్రారంభించబడ్డాయి"</string>
<string name="lafs_disable" msgid="7326815066813851447">"స్థానిక విమానాశ్రయ విమాన షెడ్యూల్లు నిలిపివేయబడ్డాయి"</string>
@@ -393,9 +393,9 @@
<string name="enable_disable_retail_directory" msgid="9095153426757081972">"రీటైల్ డైరెక్టరీ"</string>
<string name="retail_directory_enable" msgid="2532176568755452171">"రీటైల్ డైరెక్టరీ ప్రారంభించబడింది"</string>
<string name="retail_directory_disable" msgid="7242451210736299193">"రీటైల్ డైరెక్టరీ నిలిపివేయబడింది"</string>
- <string name="enable_disable_advertisements" msgid="8704125663718797151">"బిజినెస్ ప్రకటనలు"</string>
- <string name="advertisements_enable" msgid="8651409664217899145">"బిజినెస్ ప్రకటనలు ప్రారంభించబడ్డాయి"</string>
- <string name="advertisements_disable" msgid="2999957360508271492">"బిజినెస్ ప్రకటనలు నిలిపివేయబడ్డాయి"</string>
+ <string name="enable_disable_advertisements" msgid="8704125663718797151">"వ్యాపార ప్రకటనలు"</string>
+ <string name="advertisements_enable" msgid="8651409664217899145">"వ్యాపార ప్రకటనలు ప్రారంభించబడ్డాయి"</string>
+ <string name="advertisements_disable" msgid="2999957360508271492">"వ్యాపార ప్రకటనలు నిలిపివేయబడ్డాయి"</string>
<string name="enable_disable_stock_quotes" msgid="631498357725951825">"స్టాక్ కోట్లు"</string>
<string name="stock_quotes_enable" msgid="5104318195579771947">"స్టాక్ కోట్లు ప్రారంభించబడ్డాయి"</string>
<string name="stock_quotes_disable" msgid="3126423481704498278">"స్టాక్ కోట్లు నిలిపివేయబడ్డాయి"</string>
@@ -438,8 +438,8 @@
<string name="carrier_settings_title" msgid="6292869148169850220">"క్యారియర్ సెట్టింగ్లు"</string>
<string name="fdn" msgid="2545904344666098749">"ఫిక్సెడ్ డయలింగ్ నంబర్లు"</string>
<string name="fdn_with_label" msgid="6412087553365709494">"ఫిక్సెడ్ డయలింగ్ నంబర్లు (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
- <string name="manage_fdn_list" msgid="3341716430375195441">"FDN లిస్ట్"</string>
- <string name="fdn_list_with_label" msgid="1409655283510382556">"FDN లిస్ట్ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
+ <string name="manage_fdn_list" msgid="3341716430375195441">"FDN జాబితా"</string>
+ <string name="fdn_list_with_label" msgid="1409655283510382556">"FDN జాబితా (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="fdn_activation" msgid="2178637004710435895">"FDN సక్రియం"</string>
<string name="fdn_enabled" msgid="7017355494808056447">"ఫిక్సెడ్ డయలింగ్ నంబర్లు ప్రారంభించబడ్డాయి"</string>
<string name="fdn_disabled" msgid="6696468878037736600">"ఫిక్సెడ్ డయలింగ్ నంబర్లు నిలిపివేయబడ్డాయి"</string>
@@ -450,7 +450,7 @@
<string name="disable_fdn_ok" msgid="3745475926874838676">"FDNని ప్రారంభించు"</string>
<string name="sum_fdn" msgid="6152246141642323582">"ఫిక్స్డ్ డయలింగ్ నంబర్లను నిర్వహించండి"</string>
<string name="sum_fdn_change_pin" msgid="3510994280557335727">"FDN యాక్సెస్ కోసం పిన్ను మార్చండి"</string>
- <string name="sum_fdn_manage_list" msgid="3311397063233992907">"ఫోన్ నంబర్ లిస్ట్ను నిర్వహించండి"</string>
+ <string name="sum_fdn_manage_list" msgid="3311397063233992907">"ఫోన్ నంబర్ జాబితాను నిర్వహించండి"</string>
<string name="voice_privacy" msgid="7346935172372181951">"వాయిస్ గోప్యత"</string>
<string name="voice_privacy_summary" msgid="3556460926168473346">"మెరుగైన గోప్యతా మోడ్ను ప్రారంభించండి"</string>
<string name="tty_mode_option_title" msgid="3843817710032641703">"TTY మోడ్"</string>
@@ -458,10 +458,10 @@
<string name="auto_retry_mode_title" msgid="2985801935424422340">"స్వీయ-పునఃప్రయత్నం"</string>
<string name="auto_retry_mode_summary" msgid="2863919925349511402">"స్వీయ-పునఃప్రయత్నం మోడ్ను ప్రారంభించండి"</string>
<string name="tty_mode_not_allowed_video_call" msgid="6551976083652752815">"వీడియో కాల్ సమయంలో TTY మోడ్ మార్పు అనుమతించబడదు"</string>
- <string name="menu_add" msgid="5616487894975773141">"కాంటాక్ట్ను జోడించండి"</string>
- <string name="menu_edit" msgid="3593856941552460706">"కాంటాక్ట్ను ఎడిట్ చేయండి"</string>
- <string name="menu_delete" msgid="6326861853830546488">"కాంటాక్ట్ను తొలగించండి"</string>
- <string name="menu_dial" msgid="4178537318419450012">"కాంటాక్ట్కు డయల్ చేయండి"</string>
+ <string name="menu_add" msgid="5616487894975773141">"పరిచయాన్ని జోడించు"</string>
+ <string name="menu_edit" msgid="3593856941552460706">"పరిచయాన్ని సవరించు"</string>
+ <string name="menu_delete" msgid="6326861853830546488">"పరిచయాన్ని తొలగించు"</string>
+ <string name="menu_dial" msgid="4178537318419450012">"పరిచయానికి డయల్ చేయి"</string>
<string name="get_pin2" msgid="4221654606863196332">"PIN2ని టైప్ చేయండి"</string>
<string name="name" msgid="1347432469852527784">"పేరు"</string>
<string name="number" msgid="1564053487748491000">"నంబర్"</string>
@@ -469,7 +469,7 @@
<string name="add_fdn_contact" msgid="1169713422306640887">"ఫిక్స్డ్ డయలింగ్ నంబర్ను జోడించండి"</string>
<string name="adding_fdn_contact" msgid="3112531600824361259">"ఫిక్స్డ్ డయలింగ్ నంబర్ను జోడిస్తోంది..."</string>
<string name="fdn_contact_added" msgid="2840016151693394596">"ఫిక్స్డ్ డయలింగ్ నంబర్ జోడించబడింది."</string>
- <string name="edit_fdn_contact" msgid="6030829994819587408">"ఫిక్స్డ్ డయలింగ్ నంబర్ను ఎడిట్ చేయండి"</string>
+ <string name="edit_fdn_contact" msgid="6030829994819587408">"ఫిక్స్డ్ డయలింగ్ నంబర్ను సవరించండి"</string>
<string name="updating_fdn_contact" msgid="6989341376868227150">"ఫిక్స్డ్ డయలింగ్ నంబర్ను నవీకరిస్తోంది..."</string>
<string name="fdn_contact_updated" msgid="6876330243323118937">"ఫిక్స్డ్ డయలింగ్ నంబర్ నవీకరించబడింది."</string>
<string name="delete_fdn_contact" msgid="7027405651994507077">"ఫిక్స్డ్ డయలింగ్ నంబర్ను తొలగించండి"</string>
@@ -480,9 +480,9 @@
<string name="pin2_or_fdn_invalid" msgid="7542639487955868181">"FDN నవీకరించబడలేదు. PIN2 చెల్లదు లేదా ఫోన్ నంబర్ తిరస్కరించబడింది."</string>
<string name="fdn_failed" msgid="216592346853420250">"FDN చర్య విఫలమైంది."</string>
<string name="simContacts_emptyLoading" msgid="4989040293858675483">"SIM కార్డు నుండి చదువుతోంది…"</string>
- <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_empty" msgid="1135632055473689521">"మీ SIM కార్డులో పరిచయాలు ఏవీ లేవు."</string>
+ <string name="simContacts_title" msgid="2714029230160136647">"దిగుమతికి పరిచయాల ఎంపిక"</string>
+ <string name="simContacts_airplaneMode" msgid="4654884030631503808">"SIM కార్డ్లోని పరిచయాలను దిగుమతి చేయడానికి ఎయిర్ప్లైన్ మోడ్ను ఆఫ్ చేయండి."</string>
<string name="enable_pin" msgid="967674051730845376">"SIM PINను ప్రారంభించండి/నిలిపివేయండి"</string>
<string name="change_pin" msgid="3657869530942905790">"SIM PINను మార్చండి"</string>
<string name="enter_pin_text" msgid="3182311451978663356">"SIM పిన్:"</string>
@@ -537,23 +537,22 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"ఫోన్ చాలా వేడిగా ఉంది"</b>\n\n"ఈ కాల్ను పూర్తి చేయడం సాధ్యపడదు. మీ ఫోన్ చల్లబడినప్పుడు మళ్లీ ట్రై చేయండి.\n\nమీరు ఇప్పటికీ ఎమర్జెన్సీ కాల్స్ చేయవచ్చు."</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>
<string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"మొబైల్ నెట్వర్క్ అందుబాటులో లేదు. కాల్ చేయడానికి వైర్లెస్ నెట్వర్క్కు కనెక్ట్ చేయండి."</string>
<string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"కాల్ చేయడానికి, చెల్లుబాటు అయ్యే నంబర్ను నమోదు చేయండి."</string>
<string name="incall_error_call_failed" msgid="393508653582682539">"కాల్ విఫలమైంది."</string>
- <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"ఈ సమయంలో కాల్ జోడించబడదు. మీరు మెసేజ్ను పంపడం ద్వారా సంప్రదించవచ్చు."</string>
+ <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"ఈ సమయంలో కాల్ జోడించబడదు. మీరు సందేశాన్ని పంపడం ద్వారా సంప్రదించవచ్చు."</string>
<string name="incall_error_supp_service_unknown" msgid="8751177117194592623">"సేవకు మద్దతు లేదు"</string>
- <string name="incall_error_supp_service_switch" msgid="5272822448189448479">"కాల్స్ను మార్చలేరు."</string>
+ <string name="incall_error_supp_service_switch" msgid="5272822448189448479">"కాల్లను మార్చలేరు."</string>
<string name="incall_error_supp_service_resume" msgid="1276861499306817035">"కాల్ను పునఃప్రారంభించలేరు."</string>
<string name="incall_error_supp_service_separate" msgid="8932660028965274353">"కాల్ను వేరు చేయలేరు."</string>
<string name="incall_error_supp_service_transfer" msgid="8211925891867334323">"బదిలీ చేయలేరు."</string>
- <string name="incall_error_supp_service_conference" msgid="27578082433544702">"కాల్స్ను విలీనం చేయడం సాధ్యపడలేదు."</string>
+ <string name="incall_error_supp_service_conference" msgid="27578082433544702">"కాల్లను విలీనం చేయడం సాధ్యపడలేదు."</string>
<string name="incall_error_supp_service_reject" msgid="3044363092441655912">"కాల్ను తిరస్కరించలేరు."</string>
<string name="incall_error_supp_service_hangup" msgid="836524952243836735">"కాల్(ల)ను విడిచిపెట్టలేరు."</string>
- <string name="incall_error_supp_service_hold" msgid="8535056414643540997">"కాల్స్ను హోల్డ్ చేయలేరు."</string>
+ <string name="incall_error_supp_service_hold" msgid="8535056414643540997">"కాల్లను హోల్డ్ చేయలేరు."</string>
<string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"కాల్ చేయడానికి వైర్లెస్ నెట్వర్క్కు కనెక్ట్ చేయండి."</string>
<string name="incall_error_promote_wfc" msgid="9164896813931363415">"కాల్ను చేయడానికి Wi-Fi కాలింగ్ను ప్రారంభించండి."</string>
<string name="emergency_information_hint" msgid="9208897544917793012">"అత్యవసర సమాచారం"</string>
@@ -580,23 +579,23 @@
<string name="onscreenShowDialpadText" msgid="658465753816164079">"డయల్ప్యాడ్"</string>
<string name="onscreenMuteText" msgid="5470306116733843621">"మ్యూట్ చేయి"</string>
<string name="onscreenAddCallText" msgid="9075675082903611677">"కాల్ను జోడించు"</string>
- <string name="onscreenMergeCallsText" msgid="3692389519611225407">"కాల్స్ను విలీనం చేయి"</string>
+ <string name="onscreenMergeCallsText" msgid="3692389519611225407">"కాల్లను విలీనం చేయి"</string>
<string name="onscreenSwapCallsText" msgid="2682542150803377991">"స్వాప్ చేయి"</string>
- <string name="onscreenManageCallsText" msgid="1162047856081836469">"కాల్స్ను నిర్వహించు"</string>
+ <string name="onscreenManageCallsText" msgid="1162047856081836469">"కాల్లను నిర్వహించు"</string>
<string name="onscreenManageConferenceText" msgid="4700574060601755137">"కాన్ఫరెన్స్ను నిర్వహించు"</string>
<string name="onscreenAudioText" msgid="7224226735052019986">"ఆడియో"</string>
<string name="onscreenVideoCallText" msgid="1743992456126258698">"వీడియో కాల్"</string>
<string name="importSimEntry" msgid="3892354284082689894">"దిగుమతి చేయి"</string>
<string name="importAllSimEntries" msgid="2628391505643564007">"అన్నింటినీ దిగుమతి చేయి"</string>
- <string name="importingSimContacts" msgid="4995457122107888932">"SIM కాంటాక్ట్లను దిగుమతి చేస్తోంది"</string>
+ <string name="importingSimContacts" msgid="4995457122107888932">"SIM పరిచయాలను దిగుమతి చేస్తోంది"</string>
<string name="importToFDNfromContacts" msgid="5068664870738407341">"పరిచయాల నుండి దిగుమతి చేయి"</string>
- <string name="singleContactImportedMsg" msgid="3619804066300998934">"కాంటాక్ట్ దిగుమతి చేయబడింది"</string>
- <string name="failedToImportSingleContactMsg" msgid="228095510489830266">"కాంటాక్ట్ను దిగుమతి చేయడంలో విఫలమైంది"</string>
+ <string name="singleContactImportedMsg" msgid="3619804066300998934">"పరిచయం దిగుమతి చేయబడింది"</string>
+ <string name="failedToImportSingleContactMsg" msgid="228095510489830266">"పరిచయాన్ని దిగుమతి చేయడంలో విఫలమైంది"</string>
<string name="hac_mode_title" msgid="4127986689621125468">"వినికిడి సహాయక సాధనాలు"</string>
<string name="hac_mode_summary" msgid="7774989500136009881">"వినికిడి సహాయక సాధనం అనుకూలతను ప్రారంభించండి"</string>
<string name="rtt_mode_title" msgid="3075948111362818043">"రియల్-టైమ్ టెక్స్ట్ (RTT) కాల్"</string>
- <string name="rtt_mode_summary" msgid="8631541375609989562">"వాయిస్ కాల్లో మెసేజ్లు పంపడానికి అనుమతించండి"</string>
- <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="rtt_mode_summary" msgid="8631541375609989562">"వాయిస్ కాల్లో సందేశాలు పంపడానికి అనుమతించండి"</string>
+ <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">"TTY ఆఫ్లో ఉంది"</item>
@@ -610,14 +609,14 @@
<item msgid="2271798469250155310">"సాధారణం"</item>
<item msgid="6044210222666533564">"ఎక్కువ నిడివి"</item>
</string-array>
- <string name="network_info_message" msgid="7599413947016532355">"నెట్వర్క్ మెసేజ్"</string>
- <string name="network_error_message" msgid="4271579424089326618">"లోప మెసేజ్"</string>
+ <string name="network_info_message" msgid="7599413947016532355">"నెట్వర్క్ సందేశం"</string>
+ <string name="network_error_message" msgid="4271579424089326618">"లోప సందేశం"</string>
<string name="ota_title_activate" msgid="4049645324841263423">"మీ ఫోన్ను సక్రియం చేయండి"</string>
<string name="ota_touch_activate" msgid="838764494319694754">"మీ ఫోన్ సేవను సక్రియం చేయడానికి ప్రత్యేక కాల్ చేయాల్సి ఉంటుంది. \n\n“సక్రియం చేయి” నొక్కిన తర్వాత, మీ ఫోన్ను సక్రియం చేయడానికి అందించబడే సూచనలను వినండి."</string>
<string name="ota_hfa_activation_title" msgid="3300556778212729671">"సక్రియం చేస్తోంది..."</string>
<string name="ota_hfa_activation_dialog_message" msgid="7921718445773342996">"ఫోన్ మీ మొబైల్ డేటా సేవను సక్రియం చేస్తోంది.\n\nదీనికి గరిష్టంగా 5 నిమిషాలు పట్టవచ్చు."</string>
<string name="ota_skip_activation_dialog_title" msgid="7666611236789203797">"సక్రియం చేయడాన్ని దాటవేయాలా?"</string>
- <string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"మీరు సక్రియం చేయడాన్ని దాటవేస్తే, కాల్స్ చేయలేరు లేదా మొబైల్ డేటా నెట్వర్క్లకు కనెక్ట్ చేయలేరు (మీరు Wi-Fi నెట్వర్క్లకు కనెక్ట్ చేయగలిగినప్పటికీ). మీరు మీ ఫోన్ను సక్రియం చేసేవరకు, దాన్ని ప్రారంభించే ప్రతిసారీ సక్రియం చేయమని మిమ్మల్ని అడుగుతుంది."</string>
+ <string name="ota_skip_activation_dialog_message" msgid="6691722887019708713">"మీరు సక్రియం చేయడాన్ని దాటవేస్తే, కాల్లు చేయలేరు లేదా మొబైల్ డేటా నెట్వర్క్లకు కనెక్ట్ చేయలేరు (మీరు Wi-Fi నెట్వర్క్లకు కనెక్ట్ చేయగలిగినప్పటికీ). మీరు మీ ఫోన్ను సక్రియం చేసేవరకు, దాన్ని ప్రారంభించే ప్రతిసారీ సక్రియం చేయమని మిమ్మల్ని అడుగుతుంది."</string>
<string name="ota_skip_activation_dialog_skip_label" msgid="5908029466817825633">"దాటవేయి"</string>
<string name="ota_activate" msgid="7939695753665438357">"సక్రియం చేయి"</string>
<string name="ota_title_activate_success" msgid="1272135024761004889">"ఫోన్ సక్రియం చేయబడింది."</string>
@@ -661,10 +660,10 @@
<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>
+ <string name="selectContact" msgid="1527612842599767382">"పరిచయాన్ని ఎంచుకోండి"</string>
+ <string name="not_voice_capable" msgid="2819996734252084253">"వాయిస్ కాలింగ్కు మద్దతు లేదు"</string>
<string name="description_dial_button" msgid="8614631902795087259">"డయల్ చేయి"</string>
<string name="description_dialpad_button" msgid="7395114120463883623">"డయల్ప్యాడ్ను చూపు"</string>
<string name="pane_title_emergency_dialpad" msgid="3627372514638694401">"అత్యవసర డయల్ప్యాడ్"</string>
@@ -677,24 +676,24 @@
<string name="enable_video_calling_dialog_msg" msgid="7141478720386203540">"వీడియో కాలింగ్ను ఆన్ చేయడానికి, మీరు నెట్వర్క్ సెట్టింగ్ల్లో మెరుగుపరిచిన 4G LTE మోడ్ను ప్రారంభించాలి."</string>
<string name="enable_video_calling_dialog_settings" msgid="8697890611305307110">"నెట్వర్క్ సెట్టింగ్లు"</string>
<string name="enable_video_calling_dialog_close" msgid="4298929725917045270">"మూసివేయి"</string>
- <string name="sim_label_emergency_calls" msgid="9078241989421522310">"అత్యవసర కాల్స్"</string>
+ <string name="sim_label_emergency_calls" msgid="9078241989421522310">"అత్యవసర కాల్లు"</string>
<string name="sim_description_emergency_calls" msgid="5146872803938897296">"అత్యవసర కాలింగ్ మాత్రమే"</string>
<string name="sim_description_default" msgid="7474671114363724971">"SIM కార్డ్, స్లాట్: <xliff:g id="SLOT_ID">%s</xliff:g>"</string>
<string name="accessibility_settings_activity_title" msgid="7883415189273700298">"యాక్సెస్ సామర్థ్యం"</string>
<string name="status_hint_label_incoming_wifi_call" msgid="2606052595898044071">"వీరి నుండి Wi-Fi కాల్"</string>
<string name="status_hint_label_wifi_call" msgid="942993035689809853">"Wi-Fi కాల్"</string>
<string name="emergency_action_launch_hint" msgid="2762016865340891314">"తెరవడానికి మళ్లీ నొక్కండి"</string>
- <string name="message_decode_error" msgid="1061856591500290887">"మెసేజ్ను డీకోడ్ చేస్తున్నప్పుడు లోపం సంభవించింది."</string>
+ <string name="message_decode_error" msgid="1061856591500290887">"సందేశాన్ని డీకోడ్ చేస్తున్నప్పుడు లోపం సంభవించింది."</string>
<string name="callFailed_cdma_activation" msgid="5392057031552253550">"SIM కార్డ్ మీ సేవను సక్రియం చేసింది మరియు మీ ఫోన్ రోమింగ్ సామర్థ్యాలను నవీకరించింది."</string>
- <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"చాలా ఎక్కువ కాల్స్ సక్రియంగా ఉన్నాయి. దయచేసి మరొక కొత్త కాల్ చేసే ముందు ఇప్పటికే ఉన్న కాల్స్ను ముగించండి లేదా విలీనం చేయండి."</string>
+ <string name="callFailed_cdma_call_limit" msgid="1074219746093031412">"చాలా ఎక్కువ కాల్లు సక్రియంగా ఉన్నాయి. దయచేసి మరొక కొత్త కాల్ చేసే ముందు ఇప్పటికే ఉన్న కాల్లను ముగించండి లేదా విలీనం చేయండి."</string>
<string name="callFailed_imei_not_accepted" msgid="7257903653685147251">"కనెక్ట్ చేయడం సాధ్యపడలేదు, దయచేసి చెల్లుబాటు అయ్యే SIM కార్డ్ను చొప్పించండి."</string>
<string name="callFailed_wifi_lost" msgid="1788036730589163141">"Wi-Fi కనెక్షన్ పోయింది. కాల్ ముగిసింది."</string>
<string name="dialFailed_low_battery" msgid="6857904237423407056">"తక్కువ బ్యాటరీ కారణంగా మీ వీడియో కాల్ చేయడం సాధ్యపడదు."</string>
<string name="callFailed_low_battery" msgid="4056828320214416182">"తక్కువ బ్యాటరీ కారణంగా వీడియో కాల్ ముగిసింది."</string>
- <string name="callFailed_emergency_call_over_wfc_not_available" msgid="5944309590693432042">"Wi-Fi కాలింగ్ ద్వారా అత్యవసర కాల్స్ ఈ లొకేషన్లో అందుబాటులో లేవు."</string>
- <string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"ఈ లొకేషన్లో Wi-Fi కాలింగ్ అందుబాటులో లేదు."</string>
+ <string name="callFailed_emergency_call_over_wfc_not_available" msgid="5944309590693432042">"Wi-Fi కాలింగ్ ద్వారా అత్యవసర కాల్లు ఈ స్థానంలో అందుబాటులో లేవు."</string>
+ <string name="callFailed_wfc_service_not_available_in_this_location" msgid="3624536608369524988">"ఈ స్థానంలో Wi-Fi కాలింగ్ అందుబాటులో లేదు."</string>
<string name="change_pin_title" msgid="3564254326626797321">"వాయిస్ మెయిల్ PINని మార్చండి"</string>
- <string name="change_pin_continue_label" msgid="5177011752453506371">"కొనసాగించండి"</string>
+ <string name="change_pin_continue_label" msgid="5177011752453506371">"కొనసాగించు"</string>
<string name="change_pin_cancel_label" msgid="2301711566758827936">"రద్దు చేయి"</string>
<string name="change_pin_ok_label" msgid="6861082678817785330">"సరే"</string>
<string name="change_pin_enter_old_pin_header" msgid="853151335217594829">"మీ పాత PINని నిర్ధారించండి"</string>
@@ -776,17 +775,17 @@
<string name="sum_call_barring_enabled" msgid="5184331188926370824">"ఆన్"</string>
<string name="sum_call_barring_disabled" msgid="5699448000600153096">"ఆఫ్"</string>
<string name="call_barring_baoc" msgid="7400892586336429326">"అన్ని అవుట్గోయింగ్"</string>
- <string name="call_barring_baoc_enabled" msgid="3131509193386668182">"అన్ని అవుట్గోయింగ్ కాల్స్ను బ్లాక్ చేయడాన్ని నిలిపివేయాలా?"</string>
- <string name="call_barring_baoc_disabled" msgid="8534224684091141509">"అన్ని అవుట్గోయింగ్ కాల్స్ను బ్లాక్ చేయాలా?"</string>
+ <string name="call_barring_baoc_enabled" msgid="3131509193386668182">"అన్ని అవుట్గోయింగ్ కాల్లను బ్లాక్ చేయడాన్ని నిలిపివేయాలా?"</string>
+ <string name="call_barring_baoc_disabled" msgid="8534224684091141509">"అన్ని అవుట్గోయింగ్ కాల్లను బ్లాక్ చేయాలా?"</string>
<string name="call_barring_baoic" msgid="8668125428666851665">"అవుట్గోయింగ్ అంతర్జాతీయ"</string>
- <string name="call_barring_baoic_enabled" msgid="1203758092657630123">"అవుట్గోయింగ్ అంతర్జాతీయ కాల్స్ను బ్లాక్ చేయడాన్ని నిలిపివేయాలా?"</string>
- <string name="call_barring_baoic_disabled" msgid="5656889339002997449">"అవుట్గోయింగ్ అంతర్జాతీయ కాల్స్ను బ్లాక్ చేయాలా?"</string>
+ <string name="call_barring_baoic_enabled" msgid="1203758092657630123">"అవుట్గోయింగ్ అంతర్జాతీయ కాల్లను బ్లాక్ చేయడాన్ని నిలిపివేయాలా?"</string>
+ <string name="call_barring_baoic_disabled" msgid="5656889339002997449">"అవుట్గోయింగ్ అంతర్జాతీయ కాల్లను బ్లాక్ చేయాలా?"</string>
<string name="call_barring_baoicr" msgid="8566167764432343487">"అవుట్గోయింగ్ అంతర్జాతీయ రోమింగ్"</string>
<string name="call_barring_baoicr_enabled" msgid="1615324165512798478">"అవుట్గోయింగ్ అంతర్జాతీయ రోమింగ్ని బ్లాక్ చేయడాన్ని నిలిపివేయాలా?"</string>
<string name="call_barring_baoicr_disabled" msgid="172010175248142831">"అవుట్గోయింగ్ అంతర్జాతీయ రోమింగ్ని బ్లాక్ చేయాలా?"</string>
<string name="call_barring_baic" msgid="7941393541678658566">"అన్ని ఇన్కమింగ్"</string>
- <string name="call_barring_baic_enabled" msgid="4357332358020337470">"అన్ని ఇన్కమింగ్ కాల్స్ను బ్లాక్ చేయడాన్ని నిలిపివేయాలా?"</string>
- <string name="call_barring_baic_disabled" msgid="2355945245938240958">"అన్ని ఇన్కమింగ్ కాల్స్ను బ్లాక్ చేయాలా?"</string>
+ <string name="call_barring_baic_enabled" msgid="4357332358020337470">"అన్ని ఇన్కమింగ్ కాల్లను బ్లాక్ చేయడాన్ని నిలిపివేయాలా?"</string>
+ <string name="call_barring_baic_disabled" msgid="2355945245938240958">"అన్ని ఇన్కమింగ్ కాల్లను బ్లాక్ చేయాలా?"</string>
<string name="call_barring_baicr" msgid="8712249337313034226">"ఇన్కమింగ్ అంతర్జాతీయ రోమింగ్"</string>
<string name="call_barring_baicr_enabled" msgid="64774270234828175">"ఇన్కమింగ్ అంతర్జాతీయ రోమింగ్ని మొత్తం బ్లాక్ చేయడాన్ని నిలిపివేయాలా?"</string>
<string name="call_barring_baicr_disabled" msgid="3488129262744027262">"ఇన్కమింగ్ అంతర్జాతీయ రోమింగ్ని బ్లాక్ చేయాలా?"</string>
@@ -811,8 +810,8 @@
<string name="supp_service_notification_call_waiting" msgid="4577403881609445324">"కాల్ నిరీక్షణలో ఉంది."</string>
<string name="supp_service_clir_suppression_rejected" msgid="6105737020194776121">"నంబర్ బ్లాకింగ్ తిరస్కరించబడింది."</string>
<string name="supp_service_closed_user_group_call" msgid="2811636666505250689">"దగ్గరి వినియోగదారు సమూహ కాల్."</string>
- <string name="supp_service_incoming_calls_barred" msgid="2034627421274447674">"ఇన్కమింగ్ కాల్స్ నిరోధించబడ్డాయి"</string>
- <string name="supp_service_outgoing_calls_barred" msgid="5205725332394087112">"అవుట్గోయింగ్ కాల్స్ నిరోధించబడ్డాయి."</string>
+ <string name="supp_service_incoming_calls_barred" msgid="2034627421274447674">"ఇన్కమింగ్ కాల్లు నిరోధించబడ్డాయి"</string>
+ <string name="supp_service_outgoing_calls_barred" msgid="5205725332394087112">"అవుట్గోయింగ్ కాల్లు నిరోధించబడ్డాయి."</string>
<string name="supp_service_call_forwarding_active" msgid="7910162960395132464">"కాల్ ఫార్వర్డింగ్ సక్రియంగా ఉంది."</string>
<string name="supp_service_additional_call_forwarded" msgid="8772753260008398632">"అదనపు కాల్ ఫార్వార్డ్ చేయబడింది."</string>
<string name="supp_service_additional_ect_connected" msgid="8525934162945220237">"అభ్యంతరకరమైన కాల్ బదిలీ పూర్తయింది."</string>
@@ -827,7 +826,7 @@
<string name="callFailed_already_dialing" msgid="7250591188960691086">"ఇంకొక అవుట్గోయింగ్ కాల్ ఇప్పటికే చేస్తున్నందున మరో కాల్ చేయడం సాధ్యపడదు."</string>
<string name="callFailed_already_ringing" msgid="2376603543544289303">"మాట్లాడాల్సిన ఇన్కమింగ్ కాల్ వస్తున్నందున బయటికి కాల్ చేయడం సాధ్యపడదు. కొత్త కాల్ చేయడం కంటే ముందుగా ఇన్కమింగ్ కాల్కి జవాబివ్వండి లేదా కాల్ నిరాకరించండి."</string>
<string name="callFailed_calling_disabled" msgid="5010992739401206283">"ro.telephony.disable-call సిస్టమ్ లక్షణాన్ని ఉపయోగించి కాలింగ్ని నిలిపివేసినందున, ఇప్పుడు కాల్ చేయలేరు."</string>
- <string name="callFailed_too_many_calls" msgid="5379426826618582180">"ఇప్పటికే రెండు కాల్స్ జరుగుతున్నందున కాల్ చేయడం సాధ్యపడదు. ఆ కాల్స్లో ఒకదానిని డిస్కనెక్ట్ చేయండి లేదా అవి రెండింటినీ కలిపి ఒక కాన్ఫరెన్స్ కాల్గా మార్చి, తర్వాత కొత్త కాల్ చేయండి."</string>
+ <string name="callFailed_too_many_calls" msgid="5379426826618582180">"ఇప్పటికే రెండు కాల్లు జరుగుతున్నందున కాల్ చేయడం సాధ్యపడదు. ఆ కాల్లలో ఒకదానిని డిస్కనెక్ట్ చేయండి లేదా అవి రెండింటినీ కలిపి ఒక కాన్ఫరెన్స్ కాల్గా మార్చి, తర్వాత కొత్త కాల్ చేయండి."</string>
<string name="supp_service_over_ut_precautions" msgid="2145018231396701311">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ని ఉపయోగించడానికి, మొబైల్ డేటాను తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు దీనిని మొబైల్ నెట్వర్క్ సెట్టింగ్లలో మార్చవచ్చు."</string>
<string name="supp_service_over_ut_precautions_roaming" msgid="670342104569972327">"<xliff:g id="SUPP_SERVICE">%s</xliff:g>ని ఉపయోగించడానికి, మొబైల్ డేటా మరియు డేటా రోమింగ్ని తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు వీటిని మొబైల్ నెట్వర్క్ సెట్టింగ్లలో మార్చవచ్చు."</string>
<string name="supp_service_over_ut_precautions_dual_sim" msgid="5166866975550910474">"<xliff:g id="SUPP_SERVICE">%1$s</xliff:g>ని ఉపయోగించడానికి, SIM <xliff:g id="SIM_NUMBER">%2$d</xliff:g> కోసం మొబైల్ డేటాను తప్పకుండా ఆన్ చేసారని నిర్ధారించుకోండి. మీరు దీనిని మొబైల్ నెట్వర్క్ సెట్టింగ్లలో మార్చవచ్చు."</string>
@@ -846,11 +845,11 @@
<string name="dsds_dialog_confirm" msgid="9032004888134129885">"పునఃప్రారంభించు"</string>
<string name="dsds_dialog_cancel" msgid="3245958947099586655">"రద్దు చేయండి"</string>
<string name="radio_info_radio_power" msgid="8805595022160471587">"మొబైల్ రేడియో పవర్"</string>
- <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM అడ్రస్ పుస్తకాన్ని చూడండి"</string>
+ <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM చిరునామా పుస్తకాన్ని చూడండి"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ఫిక్స్డ్ డయలింగ్ నంబర్లను చూడండి"</string>
- <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"సర్వీస్ డయలింగ్ నంబర్లను చూడండి"</string>
- <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS సేవ స్టేటస్"</string>
- <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS స్టేటస్"</string>
+ <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"సర్వీస్ డయలింగ్ నంబర్లను వీక్షించండి"</string>
+ <string name="radioInfo_menu_getIMS" msgid="1950869267853198232">"IMS సేవ స్థితి"</string>
+ <string name="radio_info_ims_reg_status_title" msgid="6875885401313992007">"IMS స్థితి"</string>
<string name="radio_info_ims_reg_status_registered" msgid="7095182114078864326">"నమోదు చేయబడింది"</string>
<string name="radio_info_ims_reg_status_not_registered" msgid="8045821447288876085">"నమోదు కాలేదు"</string>
<string name="radio_info_ims_feature_status_available" msgid="6493200914756969292">"అందుబాటులో ఉన్నారు"</string>
@@ -858,7 +857,7 @@
<string name="radio_info_ims_reg_status" msgid="25582845222446390">"IMS నమోదు: <xliff:g id="STATUS">%1$s</xliff:g>\nవాయిస్ ఓవర్ LTE: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nవాయిస్ ఓవర్ WiFi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nవీడియో కాలింగ్: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT ఇంటర్ఫేస్: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
<string name="radioInfo_service_in" msgid="45753418231446400">"సేవ అందుబాటులో ఉంది"</string>
<string name="radioInfo_service_out" msgid="287972405416142312">"సేవ అందుబాటులో లేదు"</string>
- <string name="radioInfo_service_emergency" msgid="4763879891415016848">"అత్యవసర కాల్స్ మాత్రమే"</string>
+ <string name="radioInfo_service_emergency" msgid="4763879891415016848">"అత్యవసర కాల్లు మాత్రమే"</string>
<string name="radioInfo_service_off" msgid="3456583511226783064">"రేడియో ఆఫ్లో ఉంది"</string>
<string name="radioInfo_roaming_in" msgid="3156335577793145965">"రోమింగ్"</string>
<string name="radioInfo_roaming_not" msgid="1904547918725478110">"రోమింగ్లో లేదు"</string>
@@ -877,7 +876,7 @@
<string name="radioInfo_lac" msgid="3892986460272607013">"LAC"</string>
<string name="radioInfo_cid" msgid="1423185536264406705">"CID"</string>
<string name="radio_info_subid" msgid="6839966868621703203">"ప్రస్తుత subId:"</string>
- <string name="radio_info_dds" msgid="1122593144425697126">"ఆటోమేటిక్ డేటా SIM యొక్క SubId:"</string>
+ <string name="radio_info_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_phy_chan_config" msgid="1277949603275436081">"LTE భౌతిక ఛానెల్ కాన్ఫిగరేషన్:"</string>
@@ -890,9 +889,9 @@
<string name="radio_info_ppp_resets_label" msgid="9131901102339077661">"బూట్ చేసినప్పటి నుండి PPP రీసెట్ సంఖ్య:"</string>
<string name="radio_info_current_network_label" msgid="3052098695239642450">"ప్రస్తుత నెట్వర్క్:"</string>
<string name="radio_info_ppp_received_label" msgid="5753592451640644889">"స్వీకరించిన డేటా:"</string>
- <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"వాయిస్ సర్వీస్:"</string>
+ <string name="radio_info_gsm_service_label" msgid="6443348321714241328">"వాయిస్ సేవ:"</string>
<string name="radio_info_signal_strength_label" msgid="5545444702102543260">"సిగ్నల్ సామర్థ్యం:"</string>
- <string name="radio_info_call_status_label" msgid="7693575431923095487">"వాయిస్ కాల్ స్టేటస్:"</string>
+ <string name="radio_info_call_status_label" msgid="7693575431923095487">"వాయిస్ కాల్ స్థితి:"</string>
<string name="radio_info_ppp_sent_label" msgid="6542208429356199695">"పంపిన డేటా:"</string>
<string name="radio_info_message_waiting_label" msgid="1886549432566952078">"సందేశ నిరీక్షణ:"</string>
<string name="radio_info_phone_number_label" msgid="2533852539562512203">"ఫోన్ నంబర్:"</string>
@@ -915,8 +914,10 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<string name="band_mode_title" msgid="7988822920724576842">"రేడియో బ్యాండ్ మోడ్ను సెట్ చేయండి"</string>
- <string name="band_mode_loading" msgid="795923726636735967">"బ్యాండ్ లిస్ట్ను లోడ్ చేస్తోంది…"</string>
+ <string name="band_mode_loading" msgid="795923726636735967">"బ్యాండ్ జాబితాను లోడ్ చేస్తోంది…"</string>
<string name="band_mode_set" msgid="6657819412803771421">"సెట్ చేయి"</string>
<string name="band_mode_failed" msgid="1707488541847192924">"విఫలమైంది"</string>
<string name="band_mode_succeeded" msgid="2230018000534761063">"విజయవంతమైంది"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index f2e94dd..68a48c1 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"โทรศัพท์ร้อนเกินไป"</b>\n\n"ไม่สามารถโทรได้ โปรดลองอีกครั้งเมื่อโทรศัพท์เย็นลงแล้ว\n\nคุณยังสามารถโทรหมายเลขฉุกเฉินได้อยู่"</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>
@@ -579,7 +578,7 @@
<string name="onscreenEndCallText" msgid="6138725377654842757">"สิ้นสุด"</string>
<string name="onscreenShowDialpadText" msgid="658465753816164079">"แป้นหมายเลข"</string>
<string name="onscreenMuteText" msgid="5470306116733843621">"ปิดเสียง"</string>
- <string name="onscreenAddCallText" msgid="9075675082903611677">"เพิ่มสาย"</string>
+ <string name="onscreenAddCallText" msgid="9075675082903611677">"เพิ่มการโทร"</string>
<string name="onscreenMergeCallsText" msgid="3692389519611225407">"รวมสาย"</string>
<string name="onscreenSwapCallsText" msgid="2682542150803377991">"สลับ"</string>
<string name="onscreenManageCallsText" msgid="1162047856081836469">"จัดการการโทร"</string>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"กำหนดค่าการแบ่งส่วนเครือข่าย:"</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 495807b..a54cd9a 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"I-on ang mobile network, i-off ang airplane mode o i-off ang battery saver mode upang tumawag."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"I-off ang airplane mode upang makatawag."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"I-off ang airplane mode o kumonekta sa isang wireless network upang makatawag."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Masyadong mainit ang telepono"</b>\n\n"Hindi makumpleto ang tawag na ito. Subukan ulit kapag lumamig ang iyong telepono.\n\nMakakagawa ka pa rin ng mga emergency na tawag."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Lumabas sa emergency callback mode upang makapagsagawa ng hindi pang-emergency na pagtawag."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Hindi nakarehistro sa network."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Hindi available ang mobile network."</string>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Configuration ng pag-slice ng network:"</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 74bb70b..01cdf49 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Telefon etmek için mobil ağı açın, uçak modunu veya pil tasarrufu modunu kapatın."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Telefon etmek için uçak modunu kapatın."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Telefon etmek için uçak modunu kapatın veya kablosuz ağa bağlanın."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefon çok ısındı"</b>\n\n"Bu arama tamamlanamıyor. Telefonunuz soğuyana kadar bekleyip tekrar deneyin.\n\nBu süre zarfında acil durum aramaları yapabilirsiniz."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Acil durum çağrısı dışında bir çağrı yapmak için acil durumda geri aranma modundan çıkın."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Ağda kayıtlı değil."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobil ağ kullanılamıyor."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 92aa4d3..c2b0ee6 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"Телефон занадто нагрівся"</b>\n\n"Не вдалося завершити виклик. Зачекайте, доки телефон охолоне, і повторіть спробу.\n\nЕкстрені виклики доступні."</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>
@@ -921,6 +920,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"Конфігурація сегментування мережі:"</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 7a5e676..46b33bd 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"فون بہت گرم ہے"</b>\n\n"اس کال کو مکمل نہیں کیا جا سکتا۔ جب آپ کا فون ٹھنڈا ہو جائے تو دوبارہ کوشش کریں۔\n\nآپ اب بھی ہنگامی کالز کر سکتے ہیں۔"</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>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 c86c5ee..cfd69b0 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Telefon qilish uchun mobil tarmoqni yoqing, parvoz yoki quvvat tejash rejimini oʻchiring."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Qo‘ng‘iroq qilish uchun parvoz rejimini o‘chiring"</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Qo‘ng‘iroq qilish uchun parvoz rejimini o‘chiring yoki simsiz tarmoqqa ulaning."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Telefon qizib ketdi"</b>\n\n"Chaqiruvni amalga oshirish imkonsiz. Telefoningiz soviganida qayta urining.\n\nFavqulodda chaqiruvlarni har qanday holatda ham amalga oshira olasiz."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Odatiy qo‘ng‘iroq qilish uchun favqulodda qayta qo‘ng‘iroq rejimidan chiqing."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Tarmoqda ro‘yxatdan o‘tmagan."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Uyali tarmoq mavjud emas."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 a6d8d20..28f7a37 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Bật mạng di động, tắt chế độ trên máy bay hoặc tắt chế độ trình tiết kiệm pin để thực hiện cuộc gọi."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Tắt chế độ trên máy bay để thực hiện cuộc gọi."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Tắt chế độ trên máy bay hoặc kết nối với mạng không dây để thực hiện cuộc gọi."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Điện thoại quá nóng"</b>\n\n"Không thể hoàn tất cuộc gọi này. Hãy thử lại khi điện thoại nguội bớt.\n\nBạn vẫn có thể thực hiện cuộc gọi khẩn cấp."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Thoát khỏi chế độ gọi lại khẩn cấp để thực hiện cuộc gọi không khẩn cấp."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Chưa được đăng ký trên mạng."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Mạng di động không khả dụng."</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 6bcb0a5..e568da3 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"手机过热"</b>\n\n"无法完成此通话。请先让手机降温,然后再重试。\n\n您仍然可以拨打紧急呼救电话。"</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>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 85cedaa..4d04727 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"電話過熱"</b>\n\n"無法完成此通話。請在電話冷卻後再試一次。\n\n您仍可進行緊急電話。"</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>
@@ -915,6 +914,7 @@
<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="radio_info_network_slicing_config" msgid="7675131833885031563">"網絡切片設定:"</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 64a54cd..23393be 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -537,7 +537,6 @@
<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_thermal" product="default" msgid="8695809601655300168"><b>"手機過熱"</b>\n\n"無法撥打這通電話。請等到手機降溫後再試一次。\n\n在這段期間內仍可撥打緊急電話。"</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">"無法使用 Google 行動服務網路。"</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 bcc1562..4ad89d0 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -537,7 +537,6 @@
<string name="incall_error_power_off" product="watch" msgid="7191184639454113633">"Vula inethiwekhi yeselula, vala imodi yendiza noma vala imodi yokulondoloza ibhethri ukuze wenze ikholi."</string>
<string name="incall_error_power_off" product="default" msgid="8131672264311208673">"Vala imodi yendiza ukuze wenze ikholi."</string>
<string name="incall_error_power_off_wfc" msgid="9125661184694727052">"Vala imodi yendiza noma xhumeka kunethiwekhi engenantambo ukuze wenze ikholi."</string>
- <string name="incall_error_power_off_thermal" product="default" msgid="8695809601655300168"><b>"Ifoni ishisa kakhulu"</b>\n\n"Ayikwazi ukwenza le kholi. Zama futhi lapho ifoni iphola.\n\nUsengakwazi ukwenza amakholi aphuthumayo."</string>
<string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Phuma kwimodi yokushayela emuva yesiko esiphuthumayo ukuze wenze ikholi yemodi engaphuthumi."</string>
<string name="incall_error_emergency_only" msgid="8786127461027964653">"Ayibhalisiwe kwinethiwekhi."</string>
<string name="incall_error_out_of_service" msgid="1927265196942672791">"Inethiwekhi yefoni ayitholakali"</string>
@@ -915,6 +914,8 @@
<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>
+ <!-- no translation found for radio_info_network_slicing_config (7675131833885031563) -->
+ <skip />
<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 a296254..9f8cc81 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -317,8 +317,4 @@
<!-- The package names which can request thermal mitigation. -->
<string-array name="thermal_mitigation_allowlisted_packages" translatable="false">
</string-array>
-
- <!-- The package name of the app which hosts the
- {@link TelecomManager#ACTION_SHOW_CALL_SETTINGS} settings screen. -->
- <string name="call_settings_package_name">com.android.phone</string>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2077530..6fda189 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1952,7 +1952,7 @@
<string name="callFailed_calling_disabled">Cannot place a call as calling has been disabled using the ro.telephony.disable-call system property.</string>
<!-- In-call screen: error message shown when the user attempts to place a call, but calling has
been disabled using a debug property. -->
- <string name="callFailed_too_many_calls">Cannot place a call a there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call.</string>
+ <string name="callFailed_too_many_calls">Cannot place a call as there are already two calls in progress. Disconnect one of the calls or merge them into a conference prior to placing a new call.</string>
<!-- Message displayed to the user when they attempt to edit options for a supplementary service
(call waiting, call barring, call forwarding, and caller ID), but they are required to
enable mobile data first. -->
diff --git a/sip/res/values-as/strings.xml b/sip/res/values-as/strings.xml
index 13043e3..76a0b5f 100644
--- a/sip/res/values-as/strings.xml
+++ b/sip/res/values-as/strings.xml
@@ -20,7 +20,7 @@
<string name="sip_accounts" msgid="7297896885665783239">"SIP একাউণ্টসমূহ"</string>
<string name="sip_accounts_title" msgid="3061686404598143943">"একাউণ্টসমূহ"</string>
<string name="sip_receive_calls" msgid="3403644006618369349">"অন্তৰ্গামী কল লাভ কৰি থকা হৈছে"</string>
- <string name="sip_receive_calls_summary" msgid="5306603671778761443">"বেটাৰী অধিক ব্যৱহাৰ কৰে"</string>
+ <string name="sip_receive_calls_summary" msgid="5306603671778761443">"বেটাৰি অধিক ব্যৱহাৰ কৰে"</string>
<string name="sip_call_options_title" msgid="5027066677561068192">"SIP কলিং ব্যৱহাৰ কৰক"</string>
<string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP কলিং ব্যৱহাৰ কৰক (কেৱল ৱাই-ফাই)"</string>
<string name="sip_call_options_entry_1" msgid="4722647332760934261">"ডেটা নেটৱৰ্ক উপলব্ধ থাকোঁতে সকলো কলৰ বাবে"</string>
diff --git a/sip/res/values-gu/strings.xml b/sip/res/values-gu/strings.xml
index 708452b..9eb810b 100644
--- a/sip/res/values-gu/strings.xml
+++ b/sip/res/values-gu/strings.xml
@@ -16,7 +16,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="sip_settings" msgid="7452587325305604702">"SIP સેટિંગ"</string>
+ <string name="sip_settings" msgid="7452587325305604702">"SIP સેટિંગ્સ"</string>
<string name="sip_accounts" msgid="7297896885665783239">"SIP એકાઉન્ટ્સ"</string>
<string name="sip_accounts_title" msgid="3061686404598143943">"એકાઉન્ટ"</string>
<string name="sip_receive_calls" msgid="3403644006618369349">"આવનારા કૉલ્સ પ્રાપ્ત કરો"</string>
@@ -58,7 +58,7 @@
<string name="port_title" msgid="1703586046264385110">"પોર્ટ નંબર"</string>
<string name="transport_title" msgid="1661659138226029178">"સંક્રમણ પ્રકાર"</string>
<string name="send_keepalive_title" msgid="5319788151608946049">"કીપ-અલાઇવ મોકલો"</string>
- <string name="advanced_settings" msgid="2704644977548662872">"વૈકલ્પિક સેટિંગ"</string>
+ <string name="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>
@@ -72,9 +72,9 @@
<string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> આવશ્યક છે અને ખાલી છોડી શકાતું નથી."</string>
<string name="not_a_valid_port" msgid="3664668836663491376">"પોર્ટ નંબર 1000 અને 65534 ની અંદરનો હોવો જોઈએ."</string>
<string name="no_internet_available" msgid="161720645084325479">"SIP કૉલ કરવા માટે, પ્રથમ તમારું ઇન્ટરનેટ કનેક્શન તપાસો."</string>
- <string name="no_wifi_available" msgid="1179092018692306312">"SIP કૉલ માટે તમારે વાઇ-ફાઇ નેટવર્કથી કનેક્ટ હોવું જરૂરી છે (વાયરલેસ અને નેટવર્ક સેટિંગનો ઉપયોગ કરો)."</string>
+ <string name="no_wifi_available" msgid="1179092018692306312">"SIP કૉલ્સ માટે તમારે Wi-Fi નેટવર્કથી કનેક્ટ હોવું જરૂરી છે (વાયરલેસ અને નેટવર્ક સેટિંગ્સનો ઉપયોગ કરો)."</string>
<string name="no_voip" msgid="3366395789297981738">"SIP કૉલિંગ સમર્થિત નથી"</string>
- <string name="sip_system_decide" msgid="197230378376326430">"ઑટોમૅટિક"</string>
+ <string name="sip_system_decide" msgid="197230378376326430">"સ્વચલિત"</string>
<string name="sip_always_send_keepalive" msgid="4986533673960084769">"હંમેશાં મોકલો"</string>
<string name="sip_connection_service_label" msgid="8796284274240316006">"બિલ્ટ-ઇન SIP કૉલિંગ"</string>
</resources>
diff --git a/sip/res/values-in/strings.xml b/sip/res/values-in/strings.xml
index 6c52a73..709205c 100644
--- a/sip/res/values-in/strings.xml
+++ b/sip/res/values-in/strings.xml
@@ -72,7 +72,7 @@
<string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> diwajibkan dan tidak boleh kosong."</string>
<string name="not_a_valid_port" msgid="3664668836663491376">"Nomor port harus dalam rentang 1000 dan 65534."</string>
<string name="no_internet_available" msgid="161720645084325479">"Untuk melakukan panggilan SIP, periksa koneksi internet terlebih dahulu."</string>
- <string name="no_wifi_available" msgid="1179092018692306312">"Anda harus terhubung ke jaringan Wi-Fi untuk melakukan panggilan SIP (gunakan setelan Nirkabel & Jaringan)."</string>
+ <string name="no_wifi_available" msgid="1179092018692306312">"Anda harus tersambung ke jaringan Wi-Fi untuk melakukan panggilan SIP (gunakan setelan Nirkabel & Jaringan)."</string>
<string name="no_voip" msgid="3366395789297981738">"Panggilan SIP tidak didukung"</string>
<string name="sip_system_decide" msgid="197230378376326430">"Otomatis"</string>
<string name="sip_always_send_keepalive" msgid="4986533673960084769">"Selalu kirim"</string>
diff --git a/sip/res/values-iw/strings.xml b/sip/res/values-iw/strings.xml
index 34b1b20..6e84560 100644
--- a/sip/res/values-iw/strings.xml
+++ b/sip/res/values-iw/strings.xml
@@ -24,29 +24,29 @@
<string name="sip_call_options_title" msgid="5027066677561068192">"שימוש בשיחות SIP"</string>
<string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"שימוש בשיחות SIP (Wi-Fi בלבד)"</string>
<string name="sip_call_options_entry_1" msgid="4722647332760934261">"לכל השיחות כאשר רשת הנתונים זמינה"</string>
- <string name="sip_call_options_entry_2" msgid="7338504256051655013">"מעבר לשיחות SIP בלבד"</string>
+ <string name="sip_call_options_entry_2" msgid="7338504256051655013">"עבור שיחות SIP בלבד"</string>
<string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"לכל השיחות"</string>
<string name="add_sip_account" msgid="5754758646745144384">"חשבון חדש"</string>
<string name="remove_sip_account" msgid="8272617403399636513">"הסרת חשבון"</string>
<string name="sip_account_list" msgid="2596262496233721769">"חשבונות SIP"</string>
- <string name="saving_account" msgid="3390358043846687266">"שמירת החשבון מתבצעת..."</string>
- <string name="removing_account" msgid="1544132880414780408">"הסרת החשבון מתבצעת..."</string>
- <string name="sip_menu_save" msgid="4377112554203123060">"שמירה"</string>
- <string name="sip_menu_discard" msgid="1883166691772895243">"מחיקה"</string>
- <string name="alert_dialog_close" msgid="1734746505531110706">"סגירת הפרופיל"</string>
+ <string name="saving_account" msgid="3390358043846687266">"שומר את החשבון..."</string>
+ <string name="removing_account" msgid="1544132880414780408">"מסיר את החשבון..."</string>
+ <string name="sip_menu_save" msgid="4377112554203123060">"שמור"</string>
+ <string name="sip_menu_discard" msgid="1883166691772895243">"מחק"</string>
+ <string name="alert_dialog_close" msgid="1734746505531110706">"סגור את הפרופיל"</string>
<string name="alert_dialog_ok" msgid="7806760618798687406">"אישור"</string>
- <string name="close_profile" msgid="3756064641769751774">"סגירה"</string>
- <string name="registration_status_checking_status" msgid="884179594507591180">"בדיקת המצב מתבצעת..."</string>
- <string name="registration_status_registering" msgid="7986331597809521791">"הרישום מתבצע..."</string>
- <string name="registration_status_still_trying" msgid="7178623685868766282">"הניסיון מתבצע..."</string>
+ <string name="close_profile" msgid="3756064641769751774">"סגור"</string>
+ <string name="registration_status_checking_status" msgid="884179594507591180">"בודק מצב..."</string>
+ <string name="registration_status_registering" msgid="7986331597809521791">"מבצע רישום..."</string>
+ <string name="registration_status_still_trying" msgid="7178623685868766282">"עדיין מנסה..."</string>
<string name="registration_status_not_receiving" msgid="3873074208531938401">"לא מקבל שיחות."</string>
<string name="registration_status_no_data" msgid="2987064560116584121">"רישום החשבון הופסק כיוון שאין חיבור לאינטרנט."</string>
<string name="registration_status_no_wifi_data" msgid="685470618241482948">"רישום החשבון הופסק כיוון שאין חיבור Wi-Fi."</string>
<string name="registration_status_not_running" msgid="6236403137652262659">"רישום החשבון נכשל."</string>
- <string name="registration_status_done" msgid="6787397199273357721">"קבלת שיחות."</string>
+ <string name="registration_status_done" msgid="6787397199273357721">"מקבל שיחות."</string>
<string name="registration_status_failed_try_later" msgid="7855389184910312091">"רישום החשבון נכשל: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); ניסיון חוזר יבוצע מאוחר יותר"</string>
<string name="registration_status_invalid_credentials" msgid="8896714049938660777">"רישום החשבון נכשל: שם המשתמש או הסיסמה שגויים."</string>
- <string name="registration_status_server_unreachable" msgid="3832339558868965604">"רישום החשבון נכשל: יש לבדוק את שם השרת."</string>
+ <string name="registration_status_server_unreachable" msgid="3832339558868965604">"רישום החשבון נכשל: בדוק את שם השרת."</string>
<string name="third_party_account_summary" msgid="5918779106950859167">"האפליקציה <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> משתמשת כרגע בחשבון הזה."</string>
<string name="sip_edit_title" msgid="7438891546610820307">"פרטי חשבון SIP"</string>
<string name="sip_edit_new_title" msgid="8394790068979636381">"פרטי חשבון SIP"</string>
@@ -57,7 +57,7 @@
<string name="proxy_address_title" msgid="4120361943254795287">"כתובת שרת Proxy יוצא"</string>
<string name="port_title" msgid="1703586046264385110">"מספר יציאה"</string>
<string name="transport_title" msgid="1661659138226029178">"סוג העברה"</string>
- <string name="send_keepalive_title" msgid="5319788151608946049">"שליחת אות חיבור"</string>
+ <string name="send_keepalive_title" msgid="5319788151608946049">"שלח אות חיבור"</string>
<string name="advanced_settings" msgid="2704644977548662872">"הגדרות אופציונליות"</string>
<string name="auth_username_title" msgid="9002505242616662698">"שם משתמש לאימות"</string>
<string name="auth_username_summary" msgid="6346313945275377230">"שם משתמש המשמש לאימות"</string>
@@ -67,14 +67,14 @@
<string name="display_name_summary" msgid="6749135030093260358">"<זהה לשם משתמש>"</string>
<string name="optional_summary" msgid="620379377865437488">"<אופציונלי>"</string>
<string name="advanced_settings_show" msgid="2318728080037568529">"איפה כל ההגדרות?"</string>
- <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ יש לגעת כדי להסתיר את הכול"</string>
- <string name="all_empty_alert" msgid="6085603517610199098">"יש להזין את פרטי חשבון ה-SIP החדש."</string>
+ <string name="advanced_settings_hide" msgid="6200816937370652083">"▽ גע כדי להסתיר את הכול"</string>
+ <string name="all_empty_alert" msgid="6085603517610199098">"הזן את פרטי חשבון ה-SIP החדש."</string>
<string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> הוא שדה חובה ולא ניתן להשאיר אותו ריק."</string>
<string name="not_a_valid_port" msgid="3664668836663491376">"מספר היציאה צריך להיות בין 1000 ל-65534."</string>
- <string name="no_internet_available" msgid="161720645084325479">"כדי לבצע שיחת SIP, ראשית יש לבדוק את חיבור האינטרנט שלך."</string>
- <string name="no_wifi_available" msgid="1179092018692306312">"יש צורך בחיבור לרשת Wi-Fi כדי לבצע שיחות SIP (יש להשתמש ב\'הגדרות רשת ותקשורת אלחוטית\')."</string>
+ <string name="no_internet_available" msgid="161720645084325479">"כדי לבצע שיחת SIP, ראשית בדוק את חיבור האינטרנט שלך."</string>
+ <string name="no_wifi_available" msgid="1179092018692306312">"עליך להיות מחובר לרשת Wi-Fi כדי לבצע שיחות SIP (השתמש ב\'הגדרות רשת ותקשורת אלחוטית\')."</string>
<string name="no_voip" msgid="3366395789297981738">"שיחות SIP לא נתמכות"</string>
<string name="sip_system_decide" msgid="197230378376326430">"אוטומטי"</string>
- <string name="sip_always_send_keepalive" msgid="4986533673960084769">"שליחה תמיד"</string>
+ <string name="sip_always_send_keepalive" msgid="4986533673960084769">"שלח תמיד"</string>
<string name="sip_connection_service_label" msgid="8796284274240316006">"שיחות SIP מובנות"</string>
</resources>
diff --git a/sip/res/values-kk/strings.xml b/sip/res/values-kk/strings.xml
index 2f90a2a..1e59711 100644
--- a/sip/res/values-kk/strings.xml
+++ b/sip/res/values-kk/strings.xml
@@ -17,8 +17,8 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="sip_settings" msgid="7452587325305604702">"SIP параметрлері"</string>
- <string name="sip_accounts" msgid="7297896885665783239">"SIP аккаунттары"</string>
- <string name="sip_accounts_title" msgid="3061686404598143943">"Аккаунттар"</string>
+ <string name="sip_accounts" msgid="7297896885665783239">"SIP есептік жазбалары"</string>
+ <string name="sip_accounts_title" msgid="3061686404598143943">"Есептік жазбалар"</string>
<string name="sip_receive_calls" msgid="3403644006618369349">"Кіріс қоңырауларды қабылдау"</string>
<string name="sip_receive_calls_summary" msgid="5306603671778761443">"Көбірек батарея қуатын пайдаланады"</string>
<string name="sip_call_options_title" msgid="5027066677561068192">"SIP қызметін пайдалану"</string>
@@ -26,11 +26,11 @@
<string name="sip_call_options_entry_1" msgid="4722647332760934261">"Деректер желісі қол жетімді болғанда барлық қоңыраулар үшін"</string>
<string name="sip_call_options_entry_2" msgid="7338504256051655013">"Тек SIP қоңыраулары үшін"</string>
<string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"Барлық қоңыраулар үшін"</string>
- <string name="add_sip_account" msgid="5754758646745144384">"Аккаунт қосу"</string>
- <string name="remove_sip_account" msgid="8272617403399636513">"Аккаунтты жою"</string>
- <string name="sip_account_list" msgid="2596262496233721769">"SIP аккаунттары"</string>
- <string name="saving_account" msgid="3390358043846687266">"Аккаунт сақталуда…"</string>
- <string name="removing_account" msgid="1544132880414780408">"Аккаунт жойылуда…"</string>
+ <string name="add_sip_account" msgid="5754758646745144384">"Есептік жазба қосу"</string>
+ <string name="remove_sip_account" msgid="8272617403399636513">"Есептік жазбаны жою"</string>
+ <string name="sip_account_list" msgid="2596262496233721769">"SIP есептік жазбалары"</string>
+ <string name="saving_account" msgid="3390358043846687266">"Есептік жазба сақталуда…"</string>
+ <string name="removing_account" msgid="1544132880414780408">"Есептік жазба жойылуда…"</string>
<string name="sip_menu_save" msgid="4377112554203123060">"Сақтау"</string>
<string name="sip_menu_discard" msgid="1883166691772895243">"Алып тастау"</string>
<string name="alert_dialog_close" msgid="1734746505531110706">"Профильді жабу"</string>
@@ -40,16 +40,16 @@
<string name="registration_status_registering" msgid="7986331597809521791">"Тіркелуде…"</string>
<string name="registration_status_still_trying" msgid="7178623685868766282">"Әлі әрекеттенуде…"</string>
<string name="registration_status_not_receiving" msgid="3873074208531938401">"Қоңыраулар қабылданып жатқан жоқ."</string>
- <string name="registration_status_no_data" msgid="2987064560116584121">"Аккаунтты тіркеу тоқтатылды, себебі интернет байланысы жоқ."</string>
- <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Аккаунтты тіркеу тоқтатылды, себебі Wi-Fi байланысы жоқ."</string>
- <string name="registration_status_not_running" msgid="6236403137652262659">"Аккаунт тіркеу сәтсіз аяқталды."</string>
+ <string name="registration_status_no_data" msgid="2987064560116584121">"Есептік жазбаны тіркеу тоқтатылды, себебі интернет байланысы жоқ."</string>
+ <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Есептік жазбаны тіркеу тоқтатылды, себебі Wi-Fi байланысы жоқ."</string>
+ <string name="registration_status_not_running" msgid="6236403137652262659">"Есептік жазба тіркеу сәтсіз аяқталды."</string>
<string name="registration_status_done" msgid="6787397199273357721">"Қоңыраулар қабылдануда."</string>
- <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Аккаунтты тіркеу сәтсіз аяқталды: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); әрекет кейінірек қайталанады"</string>
- <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Аккаунтты тіркеу сәтсіз аяқталды: Пайдаланушы аты немесе құпия сөз қате."</string>
- <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Аккаунт тіркеу сәтсіз аяқталды: Сервер атауын тексеріңіз."</string>
- <string name="third_party_account_summary" msgid="5918779106950859167">"Бұл аккаунтты қазіргі уақытта <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> қолданбасы пайдалануда."</string>
- <string name="sip_edit_title" msgid="7438891546610820307">"SIP аккаунты туралы мәліметтер"</string>
- <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP аккаунты туралы мәліметтер"</string>
+ <string name="registration_status_failed_try_later" msgid="7855389184910312091">"Есептік жазбаны тіркеу сәтсіз аяқталды: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); әрекет кейінірек қайталанады"</string>
+ <string name="registration_status_invalid_credentials" msgid="8896714049938660777">"Есептік жазбаны тіркеу сәтсіз аяқталды: Пайдаланушы аты немесе құпия сөз қате."</string>
+ <string name="registration_status_server_unreachable" msgid="3832339558868965604">"Есептік жазба тіркеу сәтсіз аяқталды: Сервер атауын тексеріңіз."</string>
+ <string name="third_party_account_summary" msgid="5918779106950859167">"Бұл есептік жазбаны қазіргі уақытта <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> қолданбасы пайдалануда."</string>
+ <string name="sip_edit_title" msgid="7438891546610820307">"SIP есептік жазбасы туралы мәліметтер"</string>
+ <string name="sip_edit_new_title" msgid="8394790068979636381">"SIP есептік жазбасы туралы мәліметтер"</string>
<string name="domain_address_title" msgid="8238078615181248579">"Сервер"</string>
<string name="username_title" msgid="298416796886107970">"Пайдаланушы аты"</string>
<string name="password_title" msgid="8035579335591959021">"Құпия сөз"</string>
@@ -68,7 +68,7 @@
<string name="optional_summary" msgid="620379377865437488">"<Міндетті емес>"</string>
<string name="advanced_settings_show" msgid="2318728080037568529">"▷ Барлығын көрсету үшін түрту"</string>
<string name="advanced_settings_hide" msgid="6200816937370652083">"▽ Барлығын жасыру үшін түрту"</string>
- <string name="all_empty_alert" msgid="6085603517610199098">"Жаңа SIP аккаунтының мәліметтерін енгізіңіз."</string>
+ <string name="all_empty_alert" msgid="6085603517610199098">"Жаңа SIP есептік жазбасының мәліметтерін енгізіңіз."</string>
<string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> міндетті және оны бос қалдыруға болмайды."</string>
<string name="not_a_valid_port" msgid="3664668836663491376">"Порт нөмірі 1000 және 65534 аралығында болуы керек."</string>
<string name="no_internet_available" msgid="161720645084325479">"SIP қоңырауын шалу үшін алдымен интернет қосылымын тексеріңіз."</string>
diff --git a/sip/res/values-kn/strings.xml b/sip/res/values-kn/strings.xml
index 99fe93e..cf7cd59 100644
--- a/sip/res/values-kn/strings.xml
+++ b/sip/res/values-kn/strings.xml
@@ -19,7 +19,7 @@
<string name="sip_settings" msgid="7452587325305604702">"ಎಸ್ಐಪಿ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="sip_accounts" msgid="7297896885665783239">"ಎಸ್ಐಪಿ ಖಾತೆಗಳು"</string>
<string name="sip_accounts_title" msgid="3061686404598143943">"ಖಾತೆಗಳು"</string>
- <string name="sip_receive_calls" msgid="3403644006618369349">"ಒಳಬರುವ ಕರೆಗಳನ್ನು ಸ್ವೀಕರಿಸಿ"</string>
+ <string name="sip_receive_calls" msgid="3403644006618369349">"ಒಳಬರುವ ಕರೆಗಳನ್ನು ಸ್ವೀಕರಿಸು"</string>
<string name="sip_receive_calls_summary" msgid="5306603671778761443">"ಹೆಚ್ಚು ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸುತ್ತದೆ"</string>
<string name="sip_call_options_title" msgid="5027066677561068192">"ಎಸ್ಐಪಿ ಕರೆ ಮಾಡುವಿಕೆಯನ್ನು ಬಳಸಿ"</string>
<string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"ಎಸ್ಐಪಿ ಕರೆ ಮಾಡುವಿಕೆಯನ್ನು ಬಳಸಿ (ವೈ-ಫೈ ಮಾತ್ರ)"</string>
diff --git a/sip/res/values-mr/strings.xml b/sip/res/values-mr/strings.xml
index 6eb7245..60d9c88 100644
--- a/sip/res/values-mr/strings.xml
+++ b/sip/res/values-mr/strings.xml
@@ -19,7 +19,7 @@
<string name="sip_settings" msgid="7452587325305604702">"SIP सेटिंग्ज"</string>
<string name="sip_accounts" msgid="7297896885665783239">"SIP खाती"</string>
<string name="sip_accounts_title" msgid="3061686404598143943">"खाती"</string>
- <string name="sip_receive_calls" msgid="3403644006618369349">"इनकमिंग कॉल घ्या"</string>
+ <string name="sip_receive_calls" msgid="3403644006618369349">"येणारे कॉल घ्या"</string>
<string name="sip_receive_calls_summary" msgid="5306603671778761443">"अधिक बॅटरी वापरते"</string>
<string name="sip_call_options_title" msgid="5027066677561068192">"SIP कॉलिंग वापरा"</string>
<string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP कॉलिंग वापरा (वाय-फाय केवळ)"</string>
diff --git a/sip/res/values-sv/strings.xml b/sip/res/values-sv/strings.xml
index a59eb21..2976425 100644
--- a/sip/res/values-sv/strings.xml
+++ b/sip/res/values-sv/strings.xml
@@ -41,7 +41,7 @@
<string name="registration_status_still_trying" msgid="7178623685868766282">"Försöker fortfarande ..."</string>
<string name="registration_status_not_receiving" msgid="3873074208531938401">"Tar inte emot samtal."</string>
<string name="registration_status_no_data" msgid="2987064560116584121">"Kontoregistreringen avbröts eftersom det inte finns någon internetanslutning."</string>
- <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Kontoregistreringen avbröts eftersom det inte finns någon wifi-anslutning."</string>
+ <string name="registration_status_no_wifi_data" msgid="685470618241482948">"Kontoregistreringen avbröts eftersom det inte finns någon Wi-Fi-anslutning."</string>
<string name="registration_status_not_running" msgid="6236403137652262659">"Det gick inte att registrera kontot."</string>
<string name="registration_status_done" msgid="6787397199273357721">"Tar emot samtal."</string>
<string name="registration_status_failed_try_later" msgid="7855389184910312091">"Det gick inte att registrera kontot: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); försöker igen senare"</string>
@@ -72,7 +72,7 @@
<string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> är ett obligatoriskt fält som måste fyllas i."</string>
<string name="not_a_valid_port" msgid="3664668836663491376">"Portnumret ska vara mellan 1000 och 65534."</string>
<string name="no_internet_available" msgid="161720645084325479">"Om du vill ringa ett SIP-samtal kontrollerar du först att du är ansluten till internet."</string>
- <string name="no_wifi_available" msgid="1179092018692306312">"Du måste vara ansluten till wifi för att kunna ringa SIP-samtal (du ändrar detta i inställningarna för Trådlöst och nätverk)."</string>
+ <string name="no_wifi_available" msgid="1179092018692306312">"Du måste vara ansluten till Wi-Fi för att kunna ringa SIP-samtal (du ändrar detta i inställningarna för Trådlöst och nätverk)."</string>
<string name="no_voip" msgid="3366395789297981738">"SIP-samtal stöds inte"</string>
<string name="sip_system_decide" msgid="197230378376326430">"Automatiskt"</string>
<string name="sip_always_send_keepalive" msgid="4986533673960084769">"Skicka alltid"</string>
diff --git a/sip/res/values-te/strings.xml b/sip/res/values-te/strings.xml
index b821a60..9abb6f5 100644
--- a/sip/res/values-te/strings.xml
+++ b/sip/res/values-te/strings.xml
@@ -19,13 +19,13 @@
<string name="sip_settings" msgid="7452587325305604702">"SIP సెట్టింగ్లు"</string>
<string name="sip_accounts" msgid="7297896885665783239">"SIP ఖాతాలు"</string>
<string name="sip_accounts_title" msgid="3061686404598143943">"ఖాతాలు"</string>
- <string name="sip_receive_calls" msgid="3403644006618369349">"ఇన్కమింగ్ కాల్స్ను స్వీకరించు"</string>
+ <string name="sip_receive_calls" msgid="3403644006618369349">"ఇన్కమింగ్ కాల్లను స్వీకరించు"</string>
<string name="sip_receive_calls_summary" msgid="5306603671778761443">"ఎక్కువ బ్యాటరీని ఉపయోగిస్తుంది"</string>
<string name="sip_call_options_title" msgid="5027066677561068192">"SIP కాలింగ్ను ఉపయోగించండి"</string>
<string name="sip_call_options_wifi_only_title" msgid="6663105297927456484">"SIP కాలింగ్ను (Wi-Fi మాత్రమే) ఉపయోగించండి"</string>
- <string name="sip_call_options_entry_1" msgid="4722647332760934261">"డేటా నెట్వర్క్ అందుబాటులో ఉన్నప్పుడు అన్ని కాల్స్ల కోసం"</string>
- <string name="sip_call_options_entry_2" msgid="7338504256051655013">"SIP కాల్స్ల కోసం మాత్రమే"</string>
- <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"అన్ని కాల్స్ల కోసం"</string>
+ <string name="sip_call_options_entry_1" msgid="4722647332760934261">"డేటా నెట్వర్క్ అందుబాటులో ఉన్నప్పుడు అన్ని కాల్ల కోసం"</string>
+ <string name="sip_call_options_entry_2" msgid="7338504256051655013">"SIP కాల్ల కోసం మాత్రమే"</string>
+ <string name="sip_call_options_wifi_only_entry_1" msgid="922329055414010991">"అన్ని కాల్ల కోసం"</string>
<string name="add_sip_account" msgid="5754758646745144384">"ఖాతాను జోడించు"</string>
<string name="remove_sip_account" msgid="8272617403399636513">"ఖాతాను తీసివేయి"</string>
<string name="sip_account_list" msgid="2596262496233721769">"SIP ఖాతాలు"</string>
@@ -36,28 +36,28 @@
<string name="alert_dialog_close" msgid="1734746505531110706">"ప్రొఫైల్ను మూసివేయండి"</string>
<string name="alert_dialog_ok" msgid="7806760618798687406">"సరే"</string>
<string name="close_profile" msgid="3756064641769751774">"మూసివేయి"</string>
- <string name="registration_status_checking_status" msgid="884179594507591180">"స్టేటస్ని తనిఖీ చేస్తోంది..."</string>
+ <string name="registration_status_checking_status" msgid="884179594507591180">"స్థితిని తనిఖీ చేస్తోంది..."</string>
<string name="registration_status_registering" msgid="7986331597809521791">"నమోదు చేస్తోంది…"</string>
<string name="registration_status_still_trying" msgid="7178623685868766282">"ఇప్పటికీ ప్రయత్నిస్తోంది..."</string>
- <string name="registration_status_not_receiving" msgid="3873074208531938401">"కాల్స్ను స్వీకరించడం లేదు."</string>
+ <string name="registration_status_not_receiving" msgid="3873074208531938401">"కాల్లను స్వీకరించడం లేదు."</string>
<string name="registration_status_no_data" msgid="2987064560116584121">"ఇంటర్నెట్ కనెక్షన్ లేని కారణంగా ఖాతా నమోదు ఆపివేయబడింది."</string>
<string name="registration_status_no_wifi_data" msgid="685470618241482948">"Wi-Fi కనెక్షన్ లేని కారణంగా ఖాతా నమోదు ఆపివేయబడింది."</string>
<string name="registration_status_not_running" msgid="6236403137652262659">"ఖాతా నమోదు విఫలమైంది."</string>
- <string name="registration_status_done" msgid="6787397199273357721">"కాల్స్ను స్వీకరిస్తోంది."</string>
+ <string name="registration_status_done" msgid="6787397199273357721">"కాల్లను స్వీకరిస్తోంది."</string>
<string name="registration_status_failed_try_later" msgid="7855389184910312091">"ఖాతా నమోదు విఫలమైంది: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); తర్వాత ప్రయత్నిస్తుంది"</string>
<string name="registration_status_invalid_credentials" msgid="8896714049938660777">"ఖాతా నమోదు విఫలమైంది: చెల్లని వినియోగదారు పేరు లేదా పాస్వర్డ్."</string>
<string name="registration_status_server_unreachable" msgid="3832339558868965604">"ఖాతా నమోదు విఫలమైంది: సర్వర్ పేరు తనిఖీ చేయండి."</string>
- <string name="third_party_account_summary" msgid="5918779106950859167">"ఈ ఖాతా ప్రస్తుతం <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> యాప్ ద్వారా ఉపయోగంలో ఉంది."</string>
+ <string name="third_party_account_summary" msgid="5918779106950859167">"ఈ ఖాతా ప్రస్తుతం <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> అనువర్తనం ద్వారా ఉపయోగంలో ఉంది."</string>
<string name="sip_edit_title" msgid="7438891546610820307">"SIP ఖాతా వివరాలు"</string>
<string name="sip_edit_new_title" msgid="8394790068979636381">"SIP ఖాతా వివరాలు"</string>
<string name="domain_address_title" msgid="8238078615181248579">"సర్వర్"</string>
<string name="username_title" msgid="298416796886107970">"వినియోగదారు పేరు"</string>
<string name="password_title" msgid="8035579335591959021">"పాస్వర్డ్"</string>
<string name="display_name_title" msgid="3730105783656830160">"ప్రదర్శన పేరు"</string>
- <string name="proxy_address_title" msgid="4120361943254795287">"అవుట్బౌండ్ ప్రాక్సీ అడ్రస్"</string>
+ <string name="proxy_address_title" msgid="4120361943254795287">"అవుట్బౌండ్ ప్రాక్సీ చిరునామా"</string>
<string name="port_title" msgid="1703586046264385110">"పోర్ట్ సంఖ్య"</string>
<string name="transport_title" msgid="1661659138226029178">"రవాణా రకం"</string>
- <string name="send_keepalive_title" msgid="5319788151608946049">"యాక్టివ్గా ఉంచే మెసేజ్ పంపండి"</string>
+ <string name="send_keepalive_title" msgid="5319788151608946049">"యాక్టివ్గా ఉంచే సందేశం పంపండి"</string>
<string name="advanced_settings" msgid="2704644977548662872">"ఐచ్ఛిక సెట్టింగ్లు"</string>
<string name="auth_username_title" msgid="9002505242616662698">"ప్రామాణీకరణ వినియోగదారు పేరు"</string>
<string name="auth_username_summary" msgid="6346313945275377230">"ప్రామాణీకరణ కోసం వినియోగదారు పేరు ఉపయోగించబడింది"</string>
@@ -72,7 +72,7 @@
<string name="empty_alert" msgid="3693655518612836718">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> అవసరం కావున ఖాళీగా వదిలిపెట్టకూడదు."</string>
<string name="not_a_valid_port" msgid="3664668836663491376">"పోర్ట్ సంఖ్య 1000 మరియు 65534 మధ్య ఉండాలి."</string>
<string name="no_internet_available" msgid="161720645084325479">"SIP కాల్ చేయడానికి, ముందుగా మీ ఇంటర్నెట్ కనెక్షన్ను తనిఖీ చేయండి."</string>
- <string name="no_wifi_available" msgid="1179092018692306312">"మీరు SIP కాల్స్ చేయడం కోసం Wi-Fi నెట్వర్క్కు కనెక్ట్ అవ్వడం అవసరం (వైర్లెస్ & నెట్వర్క్ సెట్టింగ్లను ఉపయోగించండి)."</string>
+ <string name="no_wifi_available" msgid="1179092018692306312">"మీరు SIP కాల్లు చేయడం కోసం Wi-Fi నెట్వర్క్కు కనెక్ట్ అవ్వడం అవసరం (వైర్లెస్ & నెట్వర్క్ సెట్టింగ్లను ఉపయోగించండి)."</string>
<string name="no_voip" msgid="3366395789297981738">"SIP కాలింగ్కి మద్దతు లేదు"</string>
<string name="sip_system_decide" msgid="197230378376326430">"1205664026446156265"</string>
<string name="sip_always_send_keepalive" msgid="4986533673960084769">"ఎల్లప్పుడూ పంపు"</string>
diff --git a/sip/src/com/android/services/telephony/sip/SipEditor.java b/sip/src/com/android/services/telephony/sip/SipEditor.java
index dd475e6..9efe5bf 100644
--- a/sip/src/com/android/services/telephony/sip/SipEditor.java
+++ b/sip/src/com/android/services/telephony/sip/SipEditor.java
@@ -16,7 +16,6 @@
package com.android.services.telephony.sip;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Intent;
@@ -37,6 +36,8 @@
import android.widget.Button;
import android.widget.Toast;
+import com.android.phone.FrameworksUtils;
+
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Arrays;
@@ -93,7 +94,7 @@
public Dialog onCreateDialog(Bundle savedInstanceState) {
String message = getArguments().getString(KEY_MESSAGE);
- return new AlertDialog.Builder(getActivity())
+ return FrameworksUtils.makeAlertDialogBuilder(getActivity())
.setTitle(android.R.string.dialog_alert_title)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setMessage(message)
diff --git a/sip/src/com/android/services/telephony/sip/SipSettings.java b/sip/src/com/android/services/telephony/sip/SipSettings.java
index 813ba51..5137963 100644
--- a/sip/src/com/android/services/telephony/sip/SipSettings.java
+++ b/sip/src/com/android/services/telephony/sip/SipSettings.java
@@ -17,7 +17,6 @@
package com.android.services.telephony.sip;
import android.app.ActionBar;
-import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -39,6 +38,7 @@
import android.view.Menu;
import android.view.MenuItem;
+import com.android.phone.FrameworksUtils;
import com.android.phone.R;
import java.io.IOException;
@@ -287,7 +287,7 @@
startSipEditor(profile);
return;
}
- new AlertDialog.Builder(this)
+ FrameworksUtils.makeAlertDialogBuilder(this)
.setTitle(R.string.alert_dialog_close)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setPositiveButton(R.string.close_profile,
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index ec6ea2b..d249fae 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -220,7 +220,7 @@
if (mImsMgr.isEnhanced4gLteModeSettingEnabledByUser()) {
mImsMgr.setVtSetting((boolean) objValue);
} else {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ AlertDialog.Builder builder = FrameworksUtils.makeAlertDialogBuilder(this);
DialogInterface.OnClickListener networkSettingsClickListener =
new Dialog.OnClickListener() {
@Override
diff --git a/src/com/android/phone/CallForwardEditPreference.java b/src/com/android/phone/CallForwardEditPreference.java
index bf296f9..db1c5b4 100644
--- a/src/com/android/phone/CallForwardEditPreference.java
+++ b/src/com/android/phone/CallForwardEditPreference.java
@@ -427,7 +427,8 @@
default: // not reachable
s = getContext().getText(R.string.disable_cfnrc_forbidden);
}
- AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
+ AlertDialog.Builder builder =
+ FrameworksUtils.makeAlertDialogBuilder(getContext());
builder.setNeutralButton(R.string.close_dialog, null);
builder.setTitle(getContext()
.getText(R.string.error_updating_title));
@@ -440,7 +441,8 @@
// Handle the fail-to-enable case.
CharSequence s = getContext()
.getText(R.string.registration_cf_forbidden);
- AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
+ AlertDialog.Builder builder =
+ FrameworksUtils.makeAlertDialogBuilder(getContext());
builder.setNeutralButton(R.string.close_dialog, null);
builder.setTitle(getContext()
.getText(R.string.error_updating_title));
diff --git a/src/com/android/phone/CallNotifier.java b/src/com/android/phone/CallNotifier.java
index a8ef220..7f61f78 100644
--- a/src/com/android/phone/CallNotifier.java
+++ b/src/com/android/phone/CallNotifier.java
@@ -276,23 +276,10 @@
private int mState;
// The possible tones we can play.
public static final int TONE_NONE = 0;
- public static final int TONE_CALL_WAITING = 1;
- public static final int TONE_BUSY = 2;
- public static final int TONE_CONGESTION = 3;
- public static final int TONE_CALL_ENDED = 4;
public static final int TONE_VOICE_PRIVACY = 5;
- public static final int TONE_REORDER = 6;
- public static final int TONE_INTERCEPT = 7;
- public static final int TONE_CDMA_DROP = 8;
- public static final int TONE_OUT_OF_SERVICE = 9;
- public static final int TONE_REDIAL = 10;
- public static final int TONE_OTA_CALL_END = 11;
- public static final int TONE_UNOBTAINABLE_NUMBER = 13;
// The tone volume relative to other sounds in the stream
- static final int TONE_RELATIVE_VOLUME_EMERGENCY = 100;
static final int TONE_RELATIVE_VOLUME_HIPRI = 80;
- static final int TONE_RELATIVE_VOLUME_LOPRI = 50;
// Buffer time (in msec) to add on to tone timeout value.
// Needed mainly when the timeout value for a tone is the
@@ -320,70 +307,11 @@
int phoneType = mCM.getFgPhone().getPhoneType();
switch (mToneId) {
- case TONE_CALL_WAITING:
- toneType = ToneGenerator.TONE_SUP_CALL_WAITING;
- toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
- // Call waiting tone is stopped by stopTone() method
- toneLengthMillis = Integer.MAX_VALUE - TONE_TIMEOUT_BUFFER;
- break;
- case TONE_BUSY:
- if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
- toneType = ToneGenerator.TONE_CDMA_NETWORK_BUSY_ONE_SHOT;
- toneVolume = TONE_RELATIVE_VOLUME_LOPRI;
- toneLengthMillis = 1000;
- } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM
- || phoneType == PhoneConstants.PHONE_TYPE_SIP
- || phoneType == PhoneConstants.PHONE_TYPE_IMS
- || phoneType == PhoneConstants.PHONE_TYPE_THIRD_PARTY) {
- toneType = ToneGenerator.TONE_SUP_BUSY;
- toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
- toneLengthMillis = 4000;
- } else {
- throw new IllegalStateException("Unexpected phone type: " + phoneType);
- }
- break;
- case TONE_CONGESTION:
- toneType = ToneGenerator.TONE_SUP_CONGESTION;
- toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
- toneLengthMillis = 4000;
- break;
-
- case TONE_CALL_ENDED:
- toneType = ToneGenerator.TONE_PROP_PROMPT;
- toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
- toneLengthMillis = 200;
- break;
case TONE_VOICE_PRIVACY:
toneType = ToneGenerator.TONE_CDMA_ALERT_NETWORK_LITE;
toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
toneLengthMillis = 5000;
break;
- case TONE_REORDER:
- toneType = ToneGenerator.TONE_CDMA_REORDER;
- toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
- toneLengthMillis = 4000;
- break;
- case TONE_INTERCEPT:
- toneType = ToneGenerator.TONE_CDMA_ABBR_INTERCEPT;
- toneVolume = TONE_RELATIVE_VOLUME_LOPRI;
- toneLengthMillis = 500;
- break;
- case TONE_CDMA_DROP:
- case TONE_OUT_OF_SERVICE:
- toneType = ToneGenerator.TONE_CDMA_CALLDROP_LITE;
- toneVolume = TONE_RELATIVE_VOLUME_LOPRI;
- toneLengthMillis = 375;
- break;
- case TONE_REDIAL:
- toneType = ToneGenerator.TONE_CDMA_ALERT_AUTOREDIAL_LITE;
- toneVolume = TONE_RELATIVE_VOLUME_LOPRI;
- toneLengthMillis = 5000;
- break;
- case TONE_UNOBTAINABLE_NUMBER:
- toneType = ToneGenerator.TONE_SUP_ERROR;
- toneVolume = TONE_RELATIVE_VOLUME_HIPRI;
- toneLengthMillis = 4000;
- break;
default:
throw new IllegalArgumentException("Bad toneId: " + mToneId);
}
diff --git a/src/com/android/phone/CallerInfoCache.java b/src/com/android/phone/CallerInfoCache.java
deleted file mode 100644
index 2707c7c..0000000
--- a/src/com/android/phone/CallerInfoCache.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.phone;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.os.AsyncTask;
-import android.os.PowerManager;
-import android.os.SystemProperties;
-import android.provider.ContactsContract.CommonDataKinds.Callable;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.Data;
-import android.telephony.PhoneNumberUtils;
-import android.util.Log;
-
-import java.util.HashMap;
-import java.util.Map.Entry;
-
-/**
- * Holds "custom ringtone" and "send to voicemail" information for each contact as a fallback of
- * contacts database. The cached information is refreshed periodically and used when database
- * lookup (via ContentResolver) takes longer time than expected.
- *
- * The data inside this class shouldn't be treated as "primary"; they may not reflect the
- * latest information stored in the original database.
- */
-public class CallerInfoCache {
- private static final String LOG_TAG = CallerInfoCache.class.getSimpleName();
- private static final boolean DBG =
- (PhoneGlobals.DBG_LEVEL >= 1) && (SystemProperties.getInt("ro.debuggable", 0) == 1);
-
- /** This must not be set to true when submitting changes. */
- private static final boolean VDBG = false;
-
- public static final int MESSAGE_UPDATE_CACHE = 0;
-
- // Assuming DATA.DATA1 corresponds to Phone.NUMBER and SipAddress.ADDRESS, we just use
- // Data columns as much as we can. One exception: because normalized numbers won't be used in
- // SIP cases, Phone.NORMALIZED_NUMBER is used as is instead of using Data.
- private static final String[] PROJECTION = new String[] {
- Data.DATA1, // 0
- Phone.NORMALIZED_NUMBER, // 1
- Data.CUSTOM_RINGTONE, // 2
- Data.SEND_TO_VOICEMAIL // 3
- };
-
- private static final int INDEX_NUMBER = 0;
- private static final int INDEX_NORMALIZED_NUMBER = 1;
- private static final int INDEX_CUSTOM_RINGTONE = 2;
- private static final int INDEX_SEND_TO_VOICEMAIL = 3;
-
- private static final String SELECTION = "("
- + "(" + Data.CUSTOM_RINGTONE + " IS NOT NULL OR " + Data.SEND_TO_VOICEMAIL + "=1)"
- + " AND " + Data.DATA1 + " IS NOT NULL)";
-
- public static class CacheEntry {
- public final String customRingtone;
- public final boolean sendToVoicemail;
- public CacheEntry(String customRingtone, boolean shouldSendToVoicemail) {
- this.customRingtone = customRingtone;
- this.sendToVoicemail = shouldSendToVoicemail;
- }
-
- @Override
- public String toString() {
- return "ringtone: " + customRingtone + ", " + sendToVoicemail;
- }
- }
-
- private class CacheAsyncTask extends AsyncTask<Void, Void, Void> {
-
- private PowerManager.WakeLock mWakeLock;
-
- /**
- * Call {@link PowerManager.WakeLock#acquire} and call {@link AsyncTask#execute(Object...)},
- * guaranteeing the lock is held during the asynchronous task.
- */
- public void acquireWakeLockAndExecute() {
- // Prepare a separate partial WakeLock than what PhoneApp has so to avoid
- // unnecessary conflict.
- PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
- mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, LOG_TAG);
- mWakeLock.acquire();
- execute();
- }
-
- @Override
- protected Void doInBackground(Void... params) {
- if (DBG) log("Start refreshing cache.");
- refreshCacheEntry();
- return null;
- }
-
- @Override
- protected void onPostExecute(Void result) {
- if (VDBG) log("CacheAsyncTask#onPostExecute()");
- super.onPostExecute(result);
- releaseWakeLock();
- }
-
- @Override
- protected void onCancelled(Void result) {
- if (VDBG) log("CacheAsyncTask#onCanceled()");
- super.onCancelled(result);
- releaseWakeLock();
- }
-
- private void releaseWakeLock() {
- if (mWakeLock != null && mWakeLock.isHeld()) {
- mWakeLock.release();
- }
- }
- }
-
- private final Context mContext;
-
- /**
- * The mapping from number to CacheEntry.
- *
- * The number will be:
- * - last 7 digits of each "normalized phone number when it is for PSTN phone call, or
- * - a full SIP address for SIP call
- *
- * When cache is being refreshed, this whole object will be replaced with a newer object,
- * instead of updating elements inside the object. "volatile" is used to make
- * {@link #getCacheEntry(String)} access to the newer one every time when the object is
- * being replaced.
- */
- private volatile HashMap<String, CacheEntry> mNumberToEntry;
-
- /**
- * Used to remember if the previous task is finished or not. Should be set to null when done.
- */
- private CacheAsyncTask mCacheAsyncTask;
-
- public static CallerInfoCache init(Context context) {
- if (DBG) log("init()");
- CallerInfoCache cache = new CallerInfoCache(context);
- // The first cache should be available ASAP.
- cache.startAsyncCache();
- return cache;
- }
-
- private CallerInfoCache(Context context) {
- mContext = context;
- mNumberToEntry = new HashMap<String, CacheEntry>();
- }
-
- /* package */ void startAsyncCache() {
- if (DBG) log("startAsyncCache");
-
- if (mCacheAsyncTask != null) {
- Log.w(LOG_TAG, "Previous cache task is remaining.");
- mCacheAsyncTask.cancel(true);
- }
- mCacheAsyncTask = new CacheAsyncTask();
- mCacheAsyncTask.acquireWakeLockAndExecute();
- }
-
- private void refreshCacheEntry() {
- if (VDBG) log("refreshCacheEntry() started");
-
- // There's no way to know which part of the database was updated. Also we don't want
- // to block incoming calls asking for the cache. So this method just does full query
- // and replaces the older cache with newer one. To refrain from blocking incoming calls,
- // it keeps older one as much as it can, and replaces it with newer one inside a very small
- // synchronized block.
-
- Cursor cursor = null;
- try {
- cursor = mContext.getContentResolver().query(Callable.CONTENT_URI,
- PROJECTION, SELECTION, null, null);
- if (cursor != null) {
- // We don't want to block real in-coming call, so prepare a completely fresh
- // cache here again, and replace it with older one.
- final HashMap<String, CacheEntry> newNumberToEntry =
- new HashMap<String, CacheEntry>(cursor.getCount());
-
- while (cursor.moveToNext()) {
- final String number = cursor.getString(INDEX_NUMBER);
- String normalizedNumber = cursor.getString(INDEX_NORMALIZED_NUMBER);
- if (normalizedNumber == null) {
- // There's no guarantee normalized numbers are available every time and
- // it may become null sometimes. Try formatting the original number.
- normalizedNumber = PhoneNumberUtils.normalizeNumber(number);
- }
- final String customRingtone = cursor.getString(INDEX_CUSTOM_RINGTONE);
- final boolean sendToVoicemail = cursor.getInt(INDEX_SEND_TO_VOICEMAIL) == 1;
-
- if (PhoneNumberUtils.isUriNumber(number)) {
- // SIP address case
- putNewEntryWhenAppropriate(
- newNumberToEntry, number, customRingtone, sendToVoicemail);
- } else {
- // PSTN number case
- // Each normalized number may or may not have full content of the number.
- // Contacts database may contain +15001234567 while a dialed number may be
- // just 5001234567. Also we may have inappropriate country
- // code in some cases (e.g. when the location of the device is inconsistent
- // with the device's place). So to avoid confusion we just rely on the last
- // 7 digits here. It may cause some kind of wrong behavior, which is
- // unavoidable anyway in very rare cases..
- final int length = normalizedNumber.length();
- final String key = length > 7
- ? normalizedNumber.substring(length - 7, length)
- : normalizedNumber;
- putNewEntryWhenAppropriate(
- newNumberToEntry, key, customRingtone, sendToVoicemail);
- }
- }
-
- if (VDBG) {
- Log.d(LOG_TAG, "New cache size: " + newNumberToEntry.size());
- for (Entry<String, CacheEntry> entry : newNumberToEntry.entrySet()) {
- Log.d(LOG_TAG, "Number: " + entry.getKey() + " -> " + entry.getValue());
- }
- }
-
- mNumberToEntry = newNumberToEntry;
-
- if (DBG) {
- log("Caching entries are done. Total: " + newNumberToEntry.size());
- }
- } else {
- // Let's just wait for the next refresh..
- //
- // If the cursor became null at that exact moment, probably we don't want to
- // drop old cache. Also the case is fairly rare in usual cases unless acore being
- // killed, so we don't take care much of this case.
- Log.w(LOG_TAG, "cursor is null");
- }
- } finally {
- if (cursor != null) {
- cursor.close();
- }
- }
-
- if (VDBG) log("refreshCacheEntry() ended");
- }
-
- private void putNewEntryWhenAppropriate(HashMap<String, CacheEntry> newNumberToEntry,
- String numberOrSipAddress, String customRingtone, boolean sendToVoicemail) {
- if (newNumberToEntry.containsKey(numberOrSipAddress)) {
- // There may be duplicate entries here and we should prioritize
- // "send-to-voicemail" flag in any case.
- final CacheEntry entry = newNumberToEntry.get(numberOrSipAddress);
- if (!entry.sendToVoicemail && sendToVoicemail) {
- newNumberToEntry.put(numberOrSipAddress,
- new CacheEntry(customRingtone, sendToVoicemail));
- }
- } else {
- newNumberToEntry.put(numberOrSipAddress,
- new CacheEntry(customRingtone, sendToVoicemail));
- }
- }
-
- /**
- * Returns CacheEntry for the given number (PSTN number or SIP address).
- *
- * @param number OK to be unformatted.
- * @return CacheEntry to be used. Maybe null if there's no cache here. Note that this may
- * return null when the cache itself is not ready. BE CAREFUL. (or might be better to throw
- * an exception)
- */
- public CacheEntry getCacheEntry(String number) {
- if (mNumberToEntry == null) {
- // Very unusual state. This implies the cache isn't ready during the request, while
- // it should be prepared on the boot time (i.e. a way before even the first request).
- Log.w(LOG_TAG, "Fallback cache isn't ready.");
- return null;
- }
-
- CacheEntry entry;
- if (PhoneNumberUtils.isUriNumber(number)) {
- if (VDBG) log("Trying to lookup " + number);
-
- entry = mNumberToEntry.get(number);
- } else {
- final String normalizedNumber = PhoneNumberUtils.normalizeNumber(number);
- final int length = normalizedNumber.length();
- final String key =
- (length > 7 ? normalizedNumber.substring(length - 7, length)
- : normalizedNumber);
- if (VDBG) log("Trying to lookup " + key);
-
- entry = mNumberToEntry.get(key);
- }
- if (VDBG) log("Obtained " + entry);
- return entry;
- }
-
- private static void log(String msg) {
- Log.d(LOG_TAG, msg);
- }
-}
diff --git a/src/com/android/phone/CarrierConfigLoader.java b/src/com/android/phone/CarrierConfigLoader.java
index a463243..e276082 100644
--- a/src/com/android/phone/CarrierConfigLoader.java
+++ b/src/com/android/phone/CarrierConfigLoader.java
@@ -348,7 +348,7 @@
try {
ICarrierService carrierService =
ICarrierService.Stub.asInterface(conn.service);
- carrierService.getCarrierConfig(carrierId, resultReceiver);
+ carrierService.getCarrierConfig(phoneId, carrierId, resultReceiver);
logdWithLocalLog("Fetch config for default app: "
+ mPlatformCarrierConfigPackage
+ " carrierid: " + carrierId.toString());
@@ -488,7 +488,7 @@
try {
ICarrierService carrierService =
ICarrierService.Stub.asInterface(conn.service);
- carrierService.getCarrierConfig(carrierId, resultReceiver);
+ carrierService.getCarrierConfig(phoneId, carrierId, resultReceiver);
logdWithLocalLog("Fetch config for carrier app: "
+ getCarrierPackageForPhoneId(phoneId)
+ " carrierid: " + carrierId.toString());
@@ -656,7 +656,7 @@
try {
ICarrierService carrierService =
ICarrierService.Stub.asInterface(conn.service);
- carrierService.getCarrierConfig(null, resultReceiver);
+ carrierService.getCarrierConfig(phoneId, null, resultReceiver);
logdWithLocalLog("Fetch no sim config from default app: "
+ mPlatformCarrierConfigPackage);
} catch (RemoteException e) {
diff --git a/src/com/android/phone/CdmaCallWaitingPreference.java b/src/com/android/phone/CdmaCallWaitingPreference.java
index 3713b19..6ff47d2 100644
--- a/src/com/android/phone/CdmaCallWaitingPreference.java
+++ b/src/com/android/phone/CdmaCallWaitingPreference.java
@@ -78,7 +78,7 @@
public void onClick() {
super.onClick();
- AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
+ AlertDialog.Builder builder = FrameworksUtils.makeAlertDialogBuilder(mContext);
builder.setTitle(mContext.getText(R.string.cdma_call_waiting));
builder.setMessage(mContext.getText(R.string.enable_cdma_call_waiting_setting));
builder.setPositiveButton(R.string.enable_cdma_cw, new DialogInterface.OnClickListener() {
diff --git a/src/com/android/phone/ChangeIccPinScreen.java b/src/com/android/phone/ChangeIccPinScreen.java
index 70bf431..5369aa3 100644
--- a/src/com/android/phone/ChangeIccPinScreen.java
+++ b/src/com/android/phone/ChangeIccPinScreen.java
@@ -277,7 +277,7 @@
private AlertDialog mPUKAlert;
private void displayPUKAlert () {
if (mPUKAlert == null) {
- mPUKAlert = new AlertDialog.Builder(this)
+ mPUKAlert = FrameworksUtils.makeAlertDialogBuilder(this)
.setMessage (R.string.puk_requested)
.setCancelable(false)
.show();
diff --git a/src/com/android/phone/FrameworksUtils.java b/src/com/android/phone/FrameworksUtils.java
new file mode 100644
index 0000000..dcf10bd
--- /dev/null
+++ b/src/com/android/phone/FrameworksUtils.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.res.Configuration;
+
+/**
+ * This class provides utility functions over framework APIs
+ */
+public class FrameworksUtils {
+ /**
+ * Create a new instance of {@link AlertDialog.Builder}.
+ * @param context reference to a Context
+ * @return an instance of AlertDialog.Builder
+ */
+ public static AlertDialog.Builder makeAlertDialogBuilder(Context context) {
+ boolean isDarkTheme = (context.getResources().getConfiguration().uiMode
+ & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES;
+ return new AlertDialog.Builder(context, isDarkTheme
+ ? android.R.style.Theme_DeviceDefault_Dialog_Alert : 0);
+ }
+}
diff --git a/src/com/android/phone/ImsRcsController.java b/src/com/android/phone/ImsRcsController.java
index 7d594d1..bf55764 100644
--- a/src/com/android/phone/ImsRcsController.java
+++ b/src/com/android/phone/ImsRcsController.java
@@ -17,9 +17,13 @@
package com.android.phone;
import android.Manifest;
+import android.app.compat.CompatChanges;
+import android.compat.annotation.ChangeId;
+import android.compat.annotation.EnabledAfter;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Binder;
+import android.os.Build;
import android.os.RemoteException;
import android.os.ServiceSpecificException;
import android.os.UserHandle;
@@ -73,6 +77,15 @@
private Boolean mSingleRegistrationOverride;
/**
+ * For apps targeting Android T and above, support the publishing state on APIs, such as
+ * {@code RcsUceAdapter#PUBLISH_STATE_PUBLISHING}
+ * @hide
+ */
+ @ChangeId
+ @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.S)
+ public static final long SUPPORT_PUBLISHING_STATE = 202894742;
+
+ /**
* Initialize the singleton ImsRcsController instance.
* This is only done once, at startup, from PhoneApp.onCreate().
*/
@@ -316,7 +329,9 @@
@Override
public @PublishState int getUcePublishState(int subId) {
enforceReadPrivilegedPermission("getUcePublishState");
+ final int uid = Binder.getCallingUid();
final long token = Binder.clearCallingIdentity();
+ boolean isSupportPublishingState = false;
try {
UceControllerManager uceCtrlManager = getRcsFeatureController(subId).getFeature(
UceControllerManager.class);
@@ -324,7 +339,10 @@
throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
"This subscription does not support UCE.");
}
- return uceCtrlManager.getUcePublishState();
+ if (CompatChanges.isChangeEnabled(SUPPORT_PUBLISHING_STATE, uid)) {
+ isSupportPublishingState = true;
+ }
+ return uceCtrlManager.getUcePublishState(isSupportPublishingState);
} catch (ImsException e) {
throw new ServiceSpecificException(e.getCode(), e.getMessage());
} finally {
@@ -466,7 +484,9 @@
@Override
public void registerUcePublishStateCallback(int subId, IRcsUcePublishStateCallback c) {
enforceReadPrivilegedPermission("registerUcePublishStateCallback");
+ final int uid = Binder.getCallingUid();
final long token = Binder.clearCallingIdentity();
+ boolean isSupportPublishingState = false;
try {
UceControllerManager uceCtrlManager = getRcsFeatureController(subId).getFeature(
UceControllerManager.class);
@@ -474,7 +494,11 @@
throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
"This subscription does not support UCE.");
}
- uceCtrlManager.registerPublishStateCallback(c);
+
+ if (CompatChanges.isChangeEnabled(SUPPORT_PUBLISHING_STATE, uid)) {
+ isSupportPublishingState = true;
+ }
+ uceCtrlManager.registerPublishStateCallback(c, isSupportPublishingState);
} catch (ImsException e) {
throw new ServiceSpecificException(e.getCode(), e.getMessage());
} finally {
@@ -582,6 +606,7 @@
throw new SecurityException("Passed in PackageName can not be found on device");
}
+ final int uid = Binder.getCallingUid();
final long identity = Binder.clearCallingIdentity();
SipTransportController transport = getRcsFeatureController(subId).getFeature(
SipTransportController.class);
@@ -590,7 +615,7 @@
"This subscription does not support the creation of SIP delegates");
}
try {
- transport.createSipDelegate(subId, request, packageName, delegateState,
+ transport.createSipDelegate(subId, uid, request, packageName, delegateState,
delegateMessage);
} catch (ImsException e) {
throw new ServiceSpecificException(e.getCode(), e.getMessage());
diff --git a/src/com/android/phone/ImsStateCallbackController.java b/src/com/android/phone/ImsStateCallbackController.java
new file mode 100644
index 0000000..28fca59
--- /dev/null
+++ b/src/com/android/phone/ImsStateCallbackController.java
@@ -0,0 +1,1184 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import static android.telephony.ims.ImsStateCallback.REASON_IMS_SERVICE_DISCONNECTED;
+import static android.telephony.ims.ImsStateCallback.REASON_IMS_SERVICE_NOT_READY;
+import static android.telephony.ims.ImsStateCallback.REASON_NO_IMS_SERVICE_CONFIGURED;
+import static android.telephony.ims.ImsStateCallback.REASON_SUBSCRIPTION_INACTIVE;
+import static android.telephony.ims.ImsStateCallback.REASON_UNKNOWN_PERMANENT_ERROR;
+import static android.telephony.ims.ImsStateCallback.REASON_UNKNOWN_TEMPORARY_ERROR;
+import static android.telephony.ims.feature.ImsFeature.FEATURE_MMTEL;
+import static android.telephony.ims.feature.ImsFeature.FEATURE_RCS;
+import static android.telephony.ims.feature.ImsFeature.STATE_READY;
+import static android.telephony.ims.feature.ImsFeature.STATE_UNAVAILABLE;
+
+import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_DISCONNECTED;
+import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_IMS_UNSUPPORTED;
+import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_NOT_READY;
+import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_SERVER_UNAVAILABLE;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.AsyncResult;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.Message;
+import android.telephony.CarrierConfigManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyRegistryManager;
+import android.telephony.ims.feature.ImsFeature;
+import android.util.LocalLog;
+import android.util.Log;
+import android.util.SparseArray;
+
+import com.android.ims.FeatureConnector;
+import com.android.ims.ImsManager;
+import com.android.ims.RcsFeatureManager;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.IImsStateCallback;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConfigurationManager;
+import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.ims.ImsResolver;
+import com.android.internal.telephony.util.HandlerExecutor;
+import com.android.internal.util.IndentingPrintWriter;
+import com.android.services.telephony.rcs.RcsFeatureController;
+import com.android.telephony.Rlog;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.concurrent.Executor;
+
+/**
+ * Implementation of the controller managing {@link ImsStateCallback}s
+ */
+public class ImsStateCallbackController {
+ private static final String TAG = "ImsStateCallbackController";
+ private static final boolean VDBG = false;
+ private static final int LOG_SIZE = 50;
+
+ /**
+ * Create a FeatureConnector for this class to use to connect to an ImsManager.
+ */
+ @VisibleForTesting
+ public interface MmTelFeatureConnectorFactory {
+ /**
+ * Create a FeatureConnector for this class to use to connect to an ImsManager.
+ * @param listener will receive ImsManager instance.
+ * @param executor that the Listener callbacks will be called on.
+ * @return A FeatureConnector
+ */
+ FeatureConnector<ImsManager> create(Context context, int slotId,
+ String logPrefix, FeatureConnector.Listener<ImsManager> listener,
+ Executor executor);
+ }
+
+ /**
+ * Create a FeatureConnector for this class to use to connect to an RcsFeatureManager.
+ */
+ @VisibleForTesting
+ public interface RcsFeatureConnectorFactory {
+ /**
+ * Create a FeatureConnector for this class to use to connect to an RcsFeatureManager.
+ * @param listener will receive RcsFeatureManager instance.
+ * @param executor that the Listener callbacks will be called on.
+ * @return A FeatureConnector
+ */
+ FeatureConnector<RcsFeatureManager> create(Context context, int slotId,
+ FeatureConnector.Listener<RcsFeatureManager> listener,
+ Executor executor, String logPrefix);
+ }
+
+ /** Indicates that the state is not valid, used in ExternalRcsFeatureState only */
+ private static final int STATE_UNKNOWN = -1;
+
+ /** The unavailable reason of ImsFeature is not initialized */
+ private static final int NOT_INITIALIZED = -1;
+ /** The ImsFeature is available. */
+ private static final int AVAILABLE = 0;
+
+ private static final int EVENT_SUB_CHANGED = 1;
+ private static final int EVENT_REGISTER_CALLBACK = 2;
+ private static final int EVENT_UNREGISTER_CALLBACK = 3;
+ private static final int EVENT_CARRIER_CONFIG_CHANGED = 4;
+ private static final int EVENT_EXTERNAL_RCS_STATE_CHANGED = 5;
+ private static final int EVENT_MSIM_CONFIGURATION_CHANGE = 6;
+
+ private static ImsStateCallbackController sInstance;
+ private static final LocalLog sLocalLog = new LocalLog(LOG_SIZE);
+
+ /**
+ * get the instance
+ */
+ public static ImsStateCallbackController getInstance() {
+ synchronized (ImsStateCallbackController.class) {
+ return sInstance;
+ }
+ }
+
+ private final PhoneGlobals mApp;
+ private final Handler mHandler;
+ private final ImsResolver mImsResolver;
+ private final SparseArray<MmTelFeatureListener> mMmTelFeatureListeners = new SparseArray<>();
+ private final SparseArray<RcsFeatureListener> mRcsFeatureListeners = new SparseArray<>();
+
+ private final SubscriptionManager mSubscriptionManager;
+ private final TelephonyRegistryManager mTelephonyRegistryManager;
+ private MmTelFeatureConnectorFactory mMmTelFeatureFactory;
+ private RcsFeatureConnectorFactory mRcsFeatureFactory;
+
+ private HashMap<IBinder, CallbackWrapper> mWrappers = new HashMap<>();
+
+ private final Object mDumpLock = new Object();
+
+ private int mNumSlots;
+
+ private BroadcastReceiver mReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (intent == null) {
+ return;
+ }
+ if (CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED.equals(intent.getAction())) {
+ Bundle bundle = intent.getExtras();
+ if (bundle == null) {
+ return;
+ }
+ int slotId = bundle.getInt(CarrierConfigManager.EXTRA_SLOT_INDEX,
+ SubscriptionManager.INVALID_PHONE_INDEX);
+ int subId = bundle.getInt(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX,
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+ if (slotId <= SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
+ loge("onReceive ACTION_CARRIER_CONFIG_CHANGED invalid slotId");
+ return;
+ }
+
+ if (subId <= SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ loge("onReceive ACTION_CARRIER_CONFIG_CHANGED invalid subId");
+ //subscription changed will be notified by mSubChangedListener
+ return;
+ }
+
+ notifyCarrierConfigChanged(slotId);
+ }
+ }
+ };
+
+ private final SubscriptionManager.OnSubscriptionsChangedListener mSubChangedListener =
+ new SubscriptionManager.OnSubscriptionsChangedListener() {
+ @Override
+ public void onSubscriptionsChanged() {
+ if (!mHandler.hasMessages(EVENT_SUB_CHANGED)) {
+ mHandler.sendEmptyMessage(EVENT_SUB_CHANGED);
+ }
+ }
+ };
+
+ private final class MyHandler extends Handler {
+ MyHandler(Looper looper) {
+ super(looper);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ if (VDBG) logv("handleMessage: " + msg);
+ synchronized (mDumpLock) {
+ switch (msg.what) {
+ case EVENT_SUB_CHANGED:
+ onSubChanged();
+ break;
+
+ case EVENT_REGISTER_CALLBACK:
+ onRegisterCallback((ImsStateCallbackController.CallbackWrapper) msg.obj);
+ break;
+
+ case EVENT_UNREGISTER_CALLBACK:
+ onUnregisterCallback((IImsStateCallback) msg.obj);
+ break;
+
+ case EVENT_CARRIER_CONFIG_CHANGED:
+ onCarrierConfigChanged(msg.arg1);
+ break;
+
+ case EVENT_EXTERNAL_RCS_STATE_CHANGED:
+ if (msg.obj == null) break;
+ onExternalRcsStateChanged((ExternalRcsFeatureState) msg.obj);
+ break;
+
+ case EVENT_MSIM_CONFIGURATION_CHANGE:
+ AsyncResult result = (AsyncResult) msg.obj;
+ Integer numSlots = (Integer) result.result;
+ if (numSlots == null) {
+ Log.w(TAG, "msim config change with null num slots");
+ break;
+ }
+ updateFeatureControllerSize(numSlots);
+ break;
+
+ default:
+ loge("Unhandled event " + msg.what);
+ }
+ }
+ }
+ }
+
+ private final class MmTelFeatureListener implements FeatureConnector.Listener<ImsManager> {
+ private FeatureConnector<ImsManager> mConnector;
+ private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ private int mState = STATE_UNAVAILABLE;
+ private int mReason = REASON_IMS_SERVICE_DISCONNECTED;
+
+ /*
+ * Remember the last return of verifyImsMmTelConfigured().
+ * true means ImsResolver found an IMS package for FEATURE_MMTEL.
+ *
+ * mReason is updated through connectionUnavailable triggered by ImsResolver.
+ * mHasConfig is update through notifyConfigChanged triggered by mReceiver.
+ * mHasConfig can be a redundancy of (mReason == REASON_NO_IMS_SERVICE_CONFIGURED).
+ * However, when a carrier config changes, we are not sure the order
+ * of execution of connectionUnavailable and notifyConfigChanged.
+ * So, it's safe to use a separated state to retain it.
+ * We assume mHasConfig is true, until it's determined explicitly.
+ */
+ private boolean mHasConfig = true;
+
+ private int mSlotId = -1;
+ private String mLogPrefix = "";
+
+ MmTelFeatureListener(int slotId) {
+ mSlotId = slotId;
+ mLogPrefix = "[" + slotId + ", MMTEL] ";
+ if (VDBG) logv(mLogPrefix + "created");
+
+ mConnector = mMmTelFeatureFactory.create(
+ mApp, slotId, TAG, this, new HandlerExecutor(mHandler));
+ mConnector.connect();
+ }
+
+ void setSubId(int subId) {
+ if (VDBG) logv(mLogPrefix + "setSubId mSubId=" + mSubId + ", subId=" + subId);
+ if (mSubId == subId) return;
+ logd(mLogPrefix + "setSubId changed subId=" + subId);
+
+ mSubId = subId;
+ }
+
+ void destroy() {
+ if (VDBG) logv(mLogPrefix + "destroy");
+ mConnector.disconnect();
+ mConnector = null;
+ }
+
+ @Override
+ public void connectionReady(ImsManager manager) {
+ logd(mLogPrefix + "connectionReady");
+
+ mState = STATE_READY;
+ mReason = AVAILABLE;
+ mHasConfig = true;
+ onFeatureStateChange(mSubId, FEATURE_MMTEL, mState, mReason);
+ }
+
+ @Override
+ public void connectionUnavailable(int reason) {
+ logd(mLogPrefix + "connectionUnavailable reason=" + connectorReasonToString(reason));
+
+ reason = convertReasonType(reason);
+ if (mReason == reason) return;
+
+ connectionUnavailableInternal(reason);
+ }
+
+ private void connectionUnavailableInternal(int reason) {
+ mState = STATE_UNAVAILABLE;
+ mReason = reason;
+
+ /* If having no IMS package for MMTEL,
+ * dicard the reason except REASON_NO_IMS_SERVICE_CONFIGURED. */
+ if (!mHasConfig && reason != REASON_NO_IMS_SERVICE_CONFIGURED) return;
+
+ onFeatureStateChange(mSubId, FEATURE_MMTEL, mState, mReason);
+ }
+
+ void notifyConfigChanged(boolean hasConfig) {
+ if (mHasConfig == hasConfig) return;
+
+ logd(mLogPrefix + "notifyConfigChanged " + hasConfig);
+
+ mHasConfig = hasConfig;
+ if (hasConfig) {
+ // REASON_NO_IMS_SERVICE_CONFIGURED is already reported to the clients,
+ // since there is no configuration of IMS package for MMTEL.
+ // Now, a carrier configuration change is notified and
+ // the response from ImsResolver is changed from false to true.
+ if (mState != STATE_READY) {
+ if (mReason == REASON_NO_IMS_SERVICE_CONFIGURED) {
+ // In this case, notify clients the reason, REASON_DISCONNCTED,
+ // to update the state.
+ connectionUnavailable(UNAVAILABLE_REASON_DISCONNECTED);
+ } else {
+ // ImsResolver and ImsStateCallbackController run with different Looper.
+ // In this case, FeatureConnectorListener is updated ahead of this.
+ // But, connectionUnavailable didn't notify clients since mHasConfig is
+ // false. So, notify clients here.
+ connectionUnavailableInternal(mReason);
+ }
+ }
+ } else {
+ // FeatureConnector doesn't report UNAVAILABLE_REASON_IMS_UNSUPPORTED,
+ // so report the reason here.
+ connectionUnavailable(UNAVAILABLE_REASON_IMS_UNSUPPORTED);
+ }
+ }
+
+ // called from onRegisterCallback
+ boolean notifyState(CallbackWrapper wrapper) {
+ if (VDBG) logv(mLogPrefix + "notifyState subId=" + wrapper.mSubId);
+
+ return wrapper.notifyState(mSubId, FEATURE_MMTEL, mState, mReason);
+ }
+
+ void dump(IndentingPrintWriter pw) {
+ pw.println("Listener={slotId=" + mSlotId
+ + ", subId=" + mSubId
+ + ", state=" + ImsFeature.STATE_LOG_MAP.get(mState)
+ + ", reason=" + imsStateReasonToString(mReason)
+ + ", hasConfig=" + mHasConfig
+ + "}");
+ }
+ }
+
+ private final class RcsFeatureListener implements FeatureConnector.Listener<RcsFeatureManager> {
+ private FeatureConnector<RcsFeatureManager> mConnector;
+ private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ private int mState = STATE_UNAVAILABLE;
+ private int mReason = REASON_IMS_SERVICE_DISCONNECTED;
+
+ /*
+ * Remember the last return of verifyImsMmTelConfigured().
+ * true means ImsResolver found an IMS package for FEATURE_RCS.
+ *
+ * mReason is updated through connectionUnavailable triggered by ImsResolver.
+ * mHasConfig is update through notifyConfigChanged triggered by mReceiver,
+ * and notifyExternalRcsState which triggered by TelephonyRcsService refers it.
+ * mHasConfig can be a redundancy of (mReason == REASON_NO_IMS_SERVICE_CONFIGURED).
+ * However, when a carrier config changes, we are not sure the order
+ * of execution of connectionUnavailable, notifyConfigChanged and notifyExternalRcsState.
+ * So, it's safe to use a separated state to retain it.
+ * We assume mHasConfig is true, until it's determined explicitly.
+ */
+ private boolean mHasConfig = true;
+
+ /*
+ * TelephonyRcsService doesn’t try to connect to RcsFeature if there is no active feature
+ * for a given subscription. The active features are declared by carrier configs and
+ * configuration resources. The APIs of ImsRcsManager and SipDelegateManager are available
+ * only when the RcsFeatureController has a STATE_READY state connection.
+ * This configuration is different from the configuration of IMS package for RCS.
+ * ImsStateCallbackController's FeatureConnectorListener can be STATE_READY state,
+ * even in case there is no active RCS feature. But Manager's APIs throws exception.
+ *
+ * For RCS, in addition to mHasConfig, the sate of TelephonyRcsService and
+ * RcsFeatureConnector will be traced to determine the state to be notified to clients.
+ */
+ private ExternalRcsFeatureState mExternalState = null;
+
+ private int mSlotId = -1;
+ private String mLogPrefix = "";
+
+ RcsFeatureListener(int slotId) {
+ mSlotId = slotId;
+ mLogPrefix = "[" + slotId + ", RCS] ";
+ if (VDBG) logv(mLogPrefix + "created");
+
+ mConnector = mRcsFeatureFactory.create(
+ mApp, slotId, this, new HandlerExecutor(mHandler), TAG);
+ mConnector.connect();
+ }
+
+ void setSubId(int subId) {
+ if (VDBG) logv(mLogPrefix + "setSubId mSubId=" + mSubId + ", subId=" + subId);
+ if (mSubId == subId) return;
+ logd(mLogPrefix + "setSubId changed subId=" + subId);
+
+ mSubId = subId;
+ }
+
+ void destroy() {
+ if (VDBG) logv(mLogPrefix + "destroy");
+
+ mConnector.disconnect();
+ mConnector = null;
+ }
+
+ @Override
+ public void connectionReady(RcsFeatureManager manager) {
+ logd(mLogPrefix + "connectionReady");
+
+ mState = STATE_READY;
+ mReason = AVAILABLE;
+ mHasConfig = true;
+
+ if (mExternalState != null && mExternalState.isReady()) {
+ onFeatureStateChange(mSubId, FEATURE_RCS, mState, mReason);
+ }
+ }
+
+ @Override
+ public void connectionUnavailable(int reason) {
+ logd(mLogPrefix + "connectionUnavailable reason=" + connectorReasonToString(reason));
+
+ reason = convertReasonType(reason);
+ if (mReason == reason) return;
+
+ connectionUnavailableInternal(reason);
+ }
+
+ private void connectionUnavailableInternal(int reason) {
+ mState = STATE_UNAVAILABLE;
+ mReason = reason;
+
+ /* If having no IMS package for RCS,
+ * dicard the reason except REASON_NO_IMS_SERVICE_CONFIGURED. */
+ if (!mHasConfig && reason != REASON_NO_IMS_SERVICE_CONFIGURED) return;
+
+ if (mExternalState == null && reason != REASON_NO_IMS_SERVICE_CONFIGURED) {
+ // Wait until TelephonyRcsService notifies its state.
+ return;
+ }
+
+ if (mExternalState != null && !mExternalState.hasActiveFeatures()) {
+ // notifyExternalRcsState has notified REASON_NO_IMS_SERVICE_CONFIGURED already
+ // ignore it
+ return;
+ }
+
+ if ((mExternalState != null && mExternalState.hasActiveFeatures())
+ || mReason == REASON_NO_IMS_SERVICE_CONFIGURED) {
+ onFeatureStateChange(mSubId, FEATURE_RCS, mState, mReason);
+ }
+ }
+
+ void notifyConfigChanged(boolean hasConfig) {
+ if (mHasConfig == hasConfig) return;
+
+ logd(mLogPrefix + "notifyConfigChanged " + hasConfig);
+
+ mHasConfig = hasConfig;
+ if (hasConfig) {
+ // REASON_NO_IMS_SERVICE_CONFIGURED is already reported to the clients,
+ // since there is no configuration of IMS package for RCS.
+ // Now, a carrier configuration change is notified and
+ // the response from ImsResolver is changed from false to true.
+ if (mState != STATE_READY) {
+ if (mReason == REASON_NO_IMS_SERVICE_CONFIGURED) {
+ // In this case, notify clients the reason, REASON_DISCONNCTED,
+ // to update the state.
+ connectionUnavailable(UNAVAILABLE_REASON_DISCONNECTED);
+ } else {
+ // ImsResolver and ImsStateCallbackController run with different Looper.
+ // In this case, FeatureConnectorListener is updated ahead of this.
+ // But, connectionUnavailable didn't notify clients since mHasConfig is
+ // false. So, notify clients here.
+ connectionUnavailableInternal(mReason);
+ }
+ }
+ } else {
+ // FeatureConnector doesn't report UNAVAILABLE_REASON_IMS_UNSUPPORTED,
+ // so report the reason here.
+ connectionUnavailable(UNAVAILABLE_REASON_IMS_UNSUPPORTED);
+ }
+ }
+
+ void notifyExternalRcsState(ExternalRcsFeatureState fs) {
+ if (VDBG) {
+ logv(mLogPrefix + "notifyExternalRcsState"
+ + " state=" + (fs.mState == STATE_UNKNOWN
+ ? "" : ImsFeature.STATE_LOG_MAP.get(fs.mState))
+ + ", reason=" + imsStateReasonToString(fs.mReason));
+ }
+
+ ExternalRcsFeatureState oldFs = mExternalState;
+ // External state is from TelephonyRcsService while a feature is added or removed.
+ if (fs.mState == STATE_UNKNOWN) {
+ if (oldFs != null) fs.mState = oldFs.mState;
+ else fs.mState = STATE_UNAVAILABLE;
+ }
+
+ mExternalState = fs;
+
+ // No IMS package found.
+ // REASON_NO_IMS_SERVICE_CONFIGURED is notified to clients already.
+ if (!mHasConfig) return;
+
+ if (fs.hasActiveFeatures()) {
+ if (mState == STATE_READY) {
+ if ((oldFs == null || !oldFs.isReady()) && fs.isReady()) {
+ // it is waiting RcsFeatureConnector's notification.
+ // notify clients here.
+ onFeatureStateChange(mSubId, FEATURE_RCS, mState, mReason);
+ } else if (!fs.isReady()) {
+ // Wait RcsFeatureConnector's notification
+ } else {
+ // ignore duplicated notification
+ }
+ }
+ } else {
+ // notify only once
+ if (oldFs == null || oldFs.hasActiveFeatures()) {
+ if (mReason != REASON_NO_IMS_SERVICE_CONFIGURED) {
+ onFeatureStateChange(
+ mSubId, FEATURE_RCS, STATE_UNAVAILABLE,
+ REASON_NO_IMS_SERVICE_CONFIGURED);
+ }
+ } else {
+ // ignore duplicated notification
+ }
+ }
+ }
+
+ // called from onRegisterCallback
+ boolean notifyState(CallbackWrapper wrapper) {
+ if (VDBG) logv(mLogPrefix + "notifyState subId=" + wrapper.mSubId);
+
+ if (mHasConfig) {
+ if (mExternalState == null) {
+ // Wait until TelephonyRcsService notifies its state.
+ return wrapper.notifyState(mSubId, FEATURE_RCS, STATE_UNAVAILABLE,
+ REASON_IMS_SERVICE_DISCONNECTED);
+ } else if (!mExternalState.hasActiveFeatures()) {
+ return wrapper.notifyState(mSubId, FEATURE_RCS, STATE_UNAVAILABLE,
+ REASON_NO_IMS_SERVICE_CONFIGURED);
+ }
+ }
+
+ return wrapper.notifyState(mSubId, FEATURE_RCS, mState, mReason);
+ }
+
+ void dump(IndentingPrintWriter pw) {
+ pw.println("Listener={slotId=" + mSlotId
+ + ", subId=" + mSubId
+ + ", state=" + ImsFeature.STATE_LOG_MAP.get(mState)
+ + ", reason=" + imsStateReasonToString(mReason)
+ + ", hasConfig=" + mHasConfig
+ + ", isReady=" + (mExternalState == null ? false : mExternalState.isReady())
+ + ", hasFeatures=" + (mExternalState == null ? false
+ : mExternalState.hasActiveFeatures())
+ + "}");
+ }
+ }
+
+ /**
+ * A wrapper class for the callback registered
+ */
+ private static class CallbackWrapper {
+ private final int mSubId;
+ private final int mRequiredFeature;
+ private final IImsStateCallback mCallback;
+ private final IBinder mBinder;
+ private final String mCallingPackage;
+ private int mLastReason = NOT_INITIALIZED;
+
+ CallbackWrapper(int subId, int feature, IImsStateCallback callback,
+ String callingPackage) {
+ mSubId = subId;
+ mRequiredFeature = feature;
+ mCallback = callback;
+ mBinder = callback.asBinder();
+ mCallingPackage = callingPackage;
+ }
+
+ /**
+ * @return false when accessing callback binder throws an Exception.
+ * That means the callback binder is not valid any longer.
+ * The death of remote process can cause this.
+ * This instance shall be removed from the list.
+ */
+ boolean notifyState(int subId, int feature, int state, int reason) {
+ if (VDBG) {
+ logv("CallbackWrapper notifyState subId=" + subId
+ + ", feature=" + ImsFeature.FEATURE_LOG_MAP.get(feature)
+ + ", state=" + ImsFeature.STATE_LOG_MAP.get(state)
+ + ", reason=" + imsStateReasonToString(reason));
+ }
+
+ try {
+ if (state == STATE_READY) {
+ mCallback.onAvailable();
+ } else {
+ mCallback.onUnavailable(reason);
+ }
+ mLastReason = reason;
+ } catch (Exception e) {
+ loge("CallbackWrapper notifyState e=" + e);
+ return false;
+ }
+
+ return true;
+ }
+
+ void notifyInactive() {
+ if (VDBG) logv("CallbackWrapper notifyInactive subId=" + mSubId);
+
+ try {
+ mCallback.onUnavailable(REASON_SUBSCRIPTION_INACTIVE);
+ } catch (Exception e) {
+ // ignored
+ }
+ }
+
+ void dump(IndentingPrintWriter pw) {
+ pw.println("CallbackWrapper={subId=" + mSubId
+ + ", feature=" + ImsFeature.FEATURE_LOG_MAP.get(mRequiredFeature)
+ + ", reason=" + imsStateReasonToString(mLastReason)
+ + ", pkg=" + mCallingPackage
+ + "}");
+ }
+ }
+
+ private static class ExternalRcsFeatureState {
+ private int mSlotId;
+ private int mState = STATE_UNAVAILABLE;
+ private int mReason = NOT_INITIALIZED;
+
+ ExternalRcsFeatureState(int slotId, int state, int reason) {
+ mSlotId = slotId;
+ mState = state;
+ mReason = reason;
+ }
+
+ boolean hasActiveFeatures() {
+ return mReason != REASON_NO_IMS_SERVICE_CONFIGURED;
+ }
+
+ boolean isReady() {
+ return mState == STATE_READY;
+ }
+ }
+
+ /**
+ * create an instance
+ */
+ public static ImsStateCallbackController make(PhoneGlobals app, int numSlots) {
+ synchronized (ImsStateCallbackController.class) {
+ if (sInstance == null) {
+ logd("ImsStateCallbackController created");
+
+ HandlerThread handlerThread = new HandlerThread(TAG);
+ handlerThread.start();
+ sInstance = new ImsStateCallbackController(app, handlerThread.getLooper(), numSlots,
+ ImsManager::getConnector, RcsFeatureManager::getConnector,
+ ImsResolver.getInstance());
+ }
+ }
+ return sInstance;
+ }
+
+ @VisibleForTesting
+ public ImsStateCallbackController(PhoneGlobals app, Looper looper, int numSlots,
+ MmTelFeatureConnectorFactory mmTelFactory, RcsFeatureConnectorFactory rcsFactory,
+ ImsResolver imsResolver) {
+ mApp = app;
+ mHandler = new MyHandler(looper);
+ mImsResolver = imsResolver;
+ mSubscriptionManager = mApp.getSystemService(SubscriptionManager.class);
+ mTelephonyRegistryManager = mApp.getSystemService(TelephonyRegistryManager.class);
+ mMmTelFeatureFactory = mmTelFactory;
+ mRcsFeatureFactory = rcsFactory;
+
+ updateFeatureControllerSize(numSlots);
+
+ mTelephonyRegistryManager.addOnSubscriptionsChangedListener(
+ mSubChangedListener, mSubChangedListener.getHandlerExecutor());
+
+ PhoneConfigurationManager.registerForMultiSimConfigChange(mHandler,
+ EVENT_MSIM_CONFIGURATION_CHANGE, null);
+
+ mApp.registerReceiver(mReceiver, new IntentFilter(
+ CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED));
+
+ onSubChanged();
+ }
+
+ /**
+ * Update the number of {@link RcsFeatureController}s that are created based on the number of
+ * active slots on the device.
+ */
+ @VisibleForTesting
+ public void updateFeatureControllerSize(int newNumSlots) {
+ if (mNumSlots != newNumSlots) {
+ logd("updateFeatures: oldSlots=" + mNumSlots
+ + ", newNumSlots=" + newNumSlots);
+ if (mNumSlots < newNumSlots) {
+ for (int i = mNumSlots; i < newNumSlots; i++) {
+ MmTelFeatureListener m = new MmTelFeatureListener(i);
+ mMmTelFeatureListeners.put(i, m);
+ RcsFeatureListener r = new RcsFeatureListener(i);
+ mRcsFeatureListeners.put(i, r);
+ }
+ } else {
+ for (int i = (mNumSlots - 1); i > (newNumSlots - 1); i--) {
+ MmTelFeatureListener m = mMmTelFeatureListeners.get(i);
+ if (m != null) {
+ mMmTelFeatureListeners.remove(i);
+ m.destroy();
+ }
+ RcsFeatureListener r = mRcsFeatureListeners.get(i);
+ if (r != null) {
+ mRcsFeatureListeners.remove(i);
+ r.destroy();
+ }
+ }
+ }
+ }
+ mNumSlots = newNumSlots;
+ }
+
+ /**
+ * Dependencies for testing.
+ */
+ @VisibleForTesting
+ public void onSubChanged() {
+ for (int i = 0; i < mMmTelFeatureListeners.size(); i++) {
+ MmTelFeatureListener l = mMmTelFeatureListeners.valueAt(i);
+ l.setSubId(getSubId(i));
+ }
+
+ for (int i = 0; i < mRcsFeatureListeners.size(); i++) {
+ RcsFeatureListener l = mRcsFeatureListeners.valueAt(i);
+ l.setSubId(getSubId(i));
+ }
+
+ if (mWrappers.size() == 0) return;
+
+ ArrayList<IBinder> inactiveCallbacks = new ArrayList<>();
+ final int[] activeSubs = mSubscriptionManager.getActiveSubscriptionIdList();
+
+ if (VDBG) logv("onSubChanged activeSubs=" + Arrays.toString(activeSubs));
+
+ // Remove callbacks for inactive subscriptions
+ for (IBinder binder : mWrappers.keySet()) {
+ CallbackWrapper wrapper = mWrappers.get(binder);
+ if (wrapper != null) {
+ if (!isActive(activeSubs, wrapper.mSubId)) {
+ // inactive subscription
+ inactiveCallbacks.add(binder);
+ }
+ } else {
+ // unexpected, remove it
+ inactiveCallbacks.add(binder);
+ }
+ }
+ removeInactiveCallbacks(inactiveCallbacks, "onSubChanged");
+ }
+
+ private void onFeatureStateChange(int subId, int feature, int state, int reason) {
+ if (VDBG) {
+ logv("onFeatureStateChange subId=" + subId
+ + ", feature=" + ImsFeature.FEATURE_LOG_MAP.get(feature)
+ + ", state=" + ImsFeature.STATE_LOG_MAP.get(state)
+ + ", reason=" + imsStateReasonToString(reason));
+ }
+
+ ArrayList<IBinder> inactiveCallbacks = new ArrayList<>();
+ mWrappers.values().forEach(wrapper -> {
+ if (subId == wrapper.mSubId
+ && feature == wrapper.mRequiredFeature
+ && !wrapper.notifyState(subId, feature, state, reason)) {
+ // callback has exception, remove it
+ inactiveCallbacks.add(wrapper.mBinder);
+ }
+ });
+ removeInactiveCallbacks(inactiveCallbacks, "onFeatureStateChange");
+ }
+
+ private void onRegisterCallback(CallbackWrapper wrapper) {
+ if (wrapper == null) return;
+
+ if (VDBG) logv("onRegisterCallback before size=" + mWrappers.size());
+ if (VDBG) {
+ logv("onRegisterCallback subId=" + wrapper.mSubId
+ + ", feature=" + wrapper.mRequiredFeature);
+ }
+
+ // Not sure the following case can happen or not:
+ // step1) Subscription changed
+ // step2) ImsStateCallbackController not processed onSubChanged yet
+ // step3) Client registers with a strange subId
+ // The validity of the subId is checked PhoneInterfaceManager#registerImsStateCallback.
+ // So, register the wrapper here before trying to notifyState.
+ // TODO: implement the recovery for this case, notifying the current reson, in onSubChanged
+ mWrappers.put(wrapper.mBinder, wrapper);
+
+ if (wrapper.mRequiredFeature == FEATURE_MMTEL) {
+ for (int i = 0; i < mMmTelFeatureListeners.size(); i++) {
+ MmTelFeatureListener l = mMmTelFeatureListeners.valueAt(i);
+ if (l.mSubId == wrapper.mSubId
+ && !l.notifyState(wrapper)) {
+ mWrappers.remove(wrapper.mBinder);
+ break;
+ }
+ }
+ } else if (wrapper.mRequiredFeature == FEATURE_RCS) {
+ for (int i = 0; i < mRcsFeatureListeners.size(); i++) {
+ RcsFeatureListener l = mRcsFeatureListeners.valueAt(i);
+ if (l.mSubId == wrapper.mSubId
+ && !l.notifyState(wrapper)) {
+ mWrappers.remove(wrapper.mBinder);
+ break;
+ }
+ }
+ }
+
+ if (VDBG) logv("onRegisterCallback after size=" + mWrappers.size());
+ }
+
+ private void onUnregisterCallback(IImsStateCallback cb) {
+ if (cb == null) return;
+ mWrappers.remove(cb.asBinder());
+ }
+
+ private void onCarrierConfigChanged(int slotId) {
+ if (slotId >= mNumSlots) {
+ logd("onCarrierConfigChanged invalid slotId "
+ + slotId + ", mNumSlots=" + mNumSlots);
+ return;
+ }
+
+ logv("onCarrierConfigChanged slotId=" + slotId);
+
+ boolean hasConfig = verifyImsMmTelConfigured(slotId);
+ if (slotId < mMmTelFeatureListeners.size()) {
+ MmTelFeatureListener listener = mMmTelFeatureListeners.valueAt(slotId);
+ listener.notifyConfigChanged(hasConfig);
+ }
+
+ hasConfig = verifyImsRcsConfigured(slotId);
+ if (slotId < mRcsFeatureListeners.size()) {
+ RcsFeatureListener listener = mRcsFeatureListeners.valueAt(slotId);
+ listener.notifyConfigChanged(hasConfig);
+ }
+ }
+
+ private void onExternalRcsStateChanged(ExternalRcsFeatureState fs) {
+ logv("onExternalRcsStateChanged slotId=" + fs.mSlotId
+ + ", state=" + (fs.mState == STATE_UNKNOWN
+ ? "" : ImsFeature.STATE_LOG_MAP.get(fs.mState))
+ + ", reason=" + imsStateReasonToString(fs.mReason));
+
+ RcsFeatureListener listener = mRcsFeatureListeners.get(fs.mSlotId);
+ if (listener != null) {
+ listener.notifyExternalRcsState(fs);
+ } else {
+ // unexpected state
+ loge("onExternalRcsStateChanged slotId=" + fs.mSlotId + ", no listener.");
+ }
+ }
+
+ /**
+ * Interface to be notified from TelephonyRcsSerice and RcsFeatureController
+ *
+ * @param ready true if feature's state is STATE_READY. Valid only when it is true.
+ * @param hasActiveFeatures true if the RcsFeatureController has active features.
+ */
+ public void notifyExternalRcsStateChanged(
+ int slotId, boolean ready, boolean hasActiveFeatures) {
+ int state = STATE_UNKNOWN;
+ int reason = REASON_IMS_SERVICE_DISCONNECTED;
+
+ if (ready) {
+ // From RcsFeatureController
+ state = STATE_READY;
+ reason = AVAILABLE;
+ } else if (!hasActiveFeatures) {
+ // From TelephonyRcsService
+ reason = REASON_NO_IMS_SERVICE_CONFIGURED;
+ state = STATE_UNAVAILABLE;
+ } else {
+ // From TelephonyRcsService
+ // TelephonyRcsService doesn't know the exact state of FeatureConnection.
+ // Only when there is no feature, we can assume the state.
+ }
+
+ if (VDBG) {
+ logv("notifyExternalRcsStateChanged slotId=" + slotId
+ + ", ready=" + ready
+ + ", hasActiveFeatures=" + hasActiveFeatures);
+ }
+
+ ExternalRcsFeatureState fs = new ExternalRcsFeatureState(slotId, state, reason);
+ mHandler.sendMessage(mHandler.obtainMessage(EVENT_EXTERNAL_RCS_STATE_CHANGED, fs));
+ }
+
+ /**
+ * Notifies carrier configuration has changed.
+ */
+ @VisibleForTesting
+ public void notifyCarrierConfigChanged(int slotId) {
+ if (VDBG) logv("notifyCarrierConfigChanged slotId=" + slotId);
+ mHandler.sendMessage(mHandler.obtainMessage(EVENT_CARRIER_CONFIG_CHANGED, slotId, 0));
+ }
+ /**
+ * Register IImsStateCallback
+ *
+ * @param feature for which state is changed, ImsFeature.FEATURE_*
+ */
+ public void registerImsStateCallback(int subId, int feature, IImsStateCallback cb,
+ String callingPackage) {
+ if (VDBG) {
+ logv("registerImsStateCallback subId=" + subId
+ + ", feature=" + feature + ", pkg=" + callingPackage);
+ }
+
+ CallbackWrapper wrapper = new CallbackWrapper(subId, feature, cb, callingPackage);
+ mHandler.sendMessage(mHandler.obtainMessage(EVENT_REGISTER_CALLBACK, wrapper));
+ }
+
+ /**
+ * Unegister previously registered callback
+ */
+ public void unregisterImsStateCallback(IImsStateCallback cb) {
+ if (VDBG) logv("unregisterImsStateCallback");
+
+ mHandler.sendMessage(mHandler.obtainMessage(EVENT_UNREGISTER_CALLBACK, cb));
+ }
+
+ private void removeInactiveCallbacks(
+ ArrayList<IBinder> inactiveCallbacks, String message) {
+ if (inactiveCallbacks == null || inactiveCallbacks.size() == 0) return;
+
+ if (VDBG) {
+ logv("removeInactiveCallbacks size="
+ + inactiveCallbacks.size() + " from " + message);
+ }
+
+ for (IBinder binder : inactiveCallbacks) {
+ CallbackWrapper wrapper = mWrappers.get(binder);
+ if (wrapper != null) {
+ // Send the reason REASON_SUBSCRIPTION_INACTIVE to the client
+ wrapper.notifyInactive();
+ mWrappers.remove(binder);
+ }
+ }
+ inactiveCallbacks.clear();
+ }
+
+ private int getSubId(int slotId) {
+ Phone phone = mPhoneFactoryProxy.getPhone(slotId);
+ if (phone != null) return phone.getSubId();
+ return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ private static boolean isActive(final int[] activeSubs, int subId) {
+ for (int i : activeSubs) {
+ if (i == subId) return true;
+ }
+ return false;
+ }
+
+ private static int convertReasonType(int reason) {
+ switch(reason) {
+ case UNAVAILABLE_REASON_NOT_READY:
+ return REASON_IMS_SERVICE_NOT_READY;
+ case UNAVAILABLE_REASON_IMS_UNSUPPORTED:
+ return REASON_NO_IMS_SERVICE_CONFIGURED;
+ default:
+ break;
+ }
+
+ return REASON_IMS_SERVICE_DISCONNECTED;
+ }
+
+ private boolean verifyImsMmTelConfigured(int slotId) {
+ boolean ret = false;
+ if (mImsResolver == null) {
+ loge("verifyImsMmTelConfigured mImsResolver is null");
+ } else {
+ ret = mImsResolver.isImsServiceConfiguredForFeature(slotId, FEATURE_MMTEL);
+ }
+ if (VDBG) logv("verifyImsMmTelConfigured slotId=" + slotId + ", ret=" + ret);
+ return ret;
+ }
+
+ private boolean verifyImsRcsConfigured(int slotId) {
+ boolean ret = false;
+ if (mImsResolver == null) {
+ loge("verifyImsRcsConfigured mImsResolver is null");
+ } else {
+ ret = mImsResolver.isImsServiceConfiguredForFeature(slotId, FEATURE_RCS);
+ }
+ if (VDBG) logv("verifyImsRcsConfigured slotId=" + slotId + ", ret=" + ret);
+ return ret;
+ }
+
+ private static String connectorReasonToString(int reason) {
+ switch(reason) {
+ case UNAVAILABLE_REASON_DISCONNECTED:
+ return "DISCONNECTED";
+ case UNAVAILABLE_REASON_NOT_READY:
+ return "NOT_READY";
+ case UNAVAILABLE_REASON_IMS_UNSUPPORTED:
+ return "IMS_UNSUPPORTED";
+ case UNAVAILABLE_REASON_SERVER_UNAVAILABLE:
+ return "SERVER_UNAVAILABLE";
+ default:
+ break;
+ }
+ return "";
+ }
+
+ private static String imsStateReasonToString(int reason) {
+ switch(reason) {
+ case AVAILABLE:
+ return "READY";
+ case REASON_UNKNOWN_TEMPORARY_ERROR:
+ return "UNKNOWN_TEMPORARY_ERROR";
+ case REASON_UNKNOWN_PERMANENT_ERROR:
+ return "UNKNOWN_PERMANENT_ERROR";
+ case REASON_IMS_SERVICE_DISCONNECTED:
+ return "IMS_SERVICE_DISCONNECTED";
+ case REASON_NO_IMS_SERVICE_CONFIGURED:
+ return "NO_IMS_SERVICE_CONFIGURED";
+ case REASON_SUBSCRIPTION_INACTIVE:
+ return "SUBSCRIPTION_INACTIVE";
+ case REASON_IMS_SERVICE_NOT_READY:
+ return "IMS_SERVICE_NOT_READY";
+ default:
+ break;
+ }
+ return "";
+ }
+
+ /**
+ * PhoneFactory Dependencies for testing.
+ */
+ @VisibleForTesting
+ public interface PhoneFactoryProxy {
+ /**
+ * Override getPhone for testing.
+ */
+ Phone getPhone(int index);
+ }
+
+ private PhoneFactoryProxy mPhoneFactoryProxy = new PhoneFactoryProxy() {
+ @Override
+ public Phone getPhone(int index) {
+ return PhoneFactory.getPhone(index);
+ }
+ };
+
+ private void release() {
+ if (VDBG) logv("release");
+
+ mTelephonyRegistryManager.removeOnSubscriptionsChangedListener(mSubChangedListener);
+ mApp.unregisterReceiver(mReceiver);
+
+ for (int i = 0; i < mMmTelFeatureListeners.size(); i++) {
+ mMmTelFeatureListeners.valueAt(i).destroy();
+ }
+ mMmTelFeatureListeners.clear();
+
+ for (int i = 0; i < mRcsFeatureListeners.size(); i++) {
+ mRcsFeatureListeners.valueAt(i).destroy();
+ }
+ mRcsFeatureListeners.clear();
+ }
+
+ /**
+ * destroy the instance
+ */
+ @VisibleForTesting
+ public void destroy() {
+ if (VDBG) logv("destroy it");
+
+ release();
+ mHandler.getLooper().quit();
+ }
+
+ /**
+ * get the handler
+ */
+ @VisibleForTesting
+ public Handler getHandler() {
+ return mHandler;
+ }
+
+ /**
+ * Determine whether the callback is registered or not
+ */
+ @VisibleForTesting
+ public boolean isRegistered(IImsStateCallback cb) {
+ if (cb == null) return false;
+ return mWrappers.containsKey(cb.asBinder());
+ }
+
+ /**
+ * Dump this instance into a readable format for dumpsys usage.
+ */
+ public void dump(IndentingPrintWriter pw) {
+ pw.increaseIndent();
+ synchronized (mDumpLock) {
+ pw.println("CallbackWrappers:");
+ pw.increaseIndent();
+ mWrappers.values().forEach(wrapper -> wrapper.dump(pw));
+ pw.decreaseIndent();
+ pw.println("MmTelFeatureListeners:");
+ pw.increaseIndent();
+ for (int i = 0; i < mNumSlots; i++) {
+ MmTelFeatureListener l = mMmTelFeatureListeners.get(i);
+ if (l == null) continue;
+ l.dump(pw);
+ }
+ pw.decreaseIndent();
+ pw.println("RcsFeatureListeners:");
+ pw.increaseIndent();
+ for (int i = 0; i < mNumSlots; i++) {
+ RcsFeatureListener l = mRcsFeatureListeners.get(i);
+ if (l == null) continue;
+ l.dump(pw);
+ }
+ pw.decreaseIndent();
+ pw.println("Most recent logs:");
+ pw.increaseIndent();
+ sLocalLog.dump(pw);
+ pw.decreaseIndent();
+ }
+ pw.decreaseIndent();
+ }
+
+ private static void logv(String msg) {
+ Rlog.d(TAG, msg);
+ }
+
+ private static void logd(String msg) {
+ Rlog.d(TAG, msg);
+ sLocalLog.log(msg);
+ }
+
+ private static void loge(String msg) {
+ Rlog.e(TAG, msg);
+ sLocalLog.log(msg);
+ }
+}
diff --git a/src/com/android/phone/NotificationMgr.java b/src/com/android/phone/NotificationMgr.java
index fb45f4c..f2641a1 100644
--- a/src/com/android/phone/NotificationMgr.java
+++ b/src/com/android/phone/NotificationMgr.java
@@ -567,8 +567,6 @@
Intent intent = new Intent(TelecomManager.ACTION_SHOW_CALL_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
- intent.setPackage(mContext.getResources().getString(
- R.string.call_settings_package_name));
SubscriptionInfoHelper.addExtrasToIntent(
intent, mSubscriptionManager.getActiveSubscriptionInfo(subId));
builder.setContentIntent(PendingIntent.getActivity(mContext, subId /* requestCode */,
diff --git a/src/com/android/phone/PhoneDisplayMessage.java b/src/com/android/phone/PhoneDisplayMessage.java
index 199fbb8..be7fc7f 100644
--- a/src/com/android/phone/PhoneDisplayMessage.java
+++ b/src/com/android/phone/PhoneDisplayMessage.java
@@ -68,7 +68,7 @@
// displaying system alert dialog on the screen instead of
// using another activity to display the message. This
// places the message at the forefront of the UI.
- sDisplayMessageDialog = new AlertDialog.Builder(context)
+ sDisplayMessageDialog = FrameworksUtils.makeAlertDialogBuilder(context)
.setIcon(android.R.drawable.ic_dialog_info)
.setTitle(title)
.setMessage(msg)
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 2535365..e7cb28c 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -74,6 +74,7 @@
import com.android.internal.telephony.imsphone.ImsPhone;
import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
import com.android.internal.telephony.uicc.UiccCard;
+import com.android.internal.telephony.uicc.UiccPort;
import com.android.internal.telephony.uicc.UiccProfile;
import com.android.internal.util.IndentingPrintWriter;
import com.android.phone.settings.SettingsConstants;
@@ -155,11 +156,11 @@
CallManager mCM;
CallNotifier notifier;
- CallerInfoCache callerInfoCache;
NotificationMgr notificationMgr;
TelephonyRcsService mTelephonyRcsService;
public PhoneInterfaceManager phoneMgr;
public ImsRcsController imsRcsController;
+ public ImsStateCallbackController mImsStateCallbackController;
CarrierConfigLoader configLoader;
private Phone phoneInEcm;
@@ -242,13 +243,13 @@
// if passed in subType is unknown, retrieve it here.
if (subType == -1) {
- final UiccCard uiccCard = phone.getUiccCard();
- if (uiccCard == null) {
+ final UiccPort uiccPort = phone.getUiccPort();
+ if (uiccPort == null) {
Log.e(LOG_TAG,
- "handleSimLock: uiccCard for phone " + phone.getPhoneId() + " is null");
+ "handleSimLock: uiccPort for phone " + phone.getPhoneId() + " is null");
return;
}
- final UiccProfile uiccProfile = uiccCard.getUiccProfile();
+ final UiccProfile uiccProfile = uiccPort.getUiccProfile();
if (uiccProfile == null) {
Log.e(LOG_TAG,
"handleSimLock: uiccProfile for phone " + phone.getPhoneId() + " is null");
@@ -458,17 +459,13 @@
mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
- // Create the CallerInfoCache singleton, which remembers custom ring tone and
- // send-to-voicemail settings.
- //
- // The asynchronous caching will start just after this call.
- callerInfoCache = CallerInfoCache.init(this);
-
phoneMgr = PhoneInterfaceManager.init(this);
imsRcsController = ImsRcsController.init(this);
if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS)) {
+ mImsStateCallbackController =
+ ImsStateCallbackController.make(this, PhoneFactory.getPhones().length);
mTelephonyRcsService = new TelephonyRcsService(this,
PhoneFactory.getPhones().length);
mTelephonyRcsService.initialize();
@@ -489,8 +486,12 @@
mCM.registerForMmiComplete(mHandler, MMI_COMPLETE, null);
// Initialize cell status using current airplane mode.
- handleAirplaneModeChange(this, Settings.Global.getInt(getContentResolver(),
- Settings.Global.AIRPLANE_MODE_ON, AIRPLANE_OFF));
+ handleAirplaneModeChange(
+ Settings.Global.getInt(
+ getContentResolver(),
+ Settings.Global.AIRPLANE_MODE_ON,
+ AIRPLANE_OFF)
+ == AIRPLANE_ON);
// Register for misc other intent broadcasts.
IntentFilter intentFilter =
@@ -649,20 +650,20 @@
notifier.updateCallNotifierRegistrationsAfterRadioTechnologyChange();
}
- private void handleAirplaneModeChange(Context context, int newMode) {
- int cellState = Settings.Global.getInt(context.getContentResolver(),
- Settings.Global.CELL_ON, PhoneConstants.CELL_ON_FLAG);
- boolean isAirplaneNewlyOn = (newMode == 1);
+ private void handleAirplaneModeChange(boolean isAirplaneNewlyOn) {
+ int cellState =
+ Settings.Global.getInt(
+ getContentResolver(), Settings.Global.CELL_ON, PhoneConstants.CELL_ON_FLAG);
switch (cellState) {
case PhoneConstants.CELL_OFF_FLAG:
// Airplane mode does not affect the cell radio if user
// has turned it off.
break;
case PhoneConstants.CELL_ON_FLAG:
- maybeTurnCellOff(context, isAirplaneNewlyOn);
+ maybeTurnCellOff(isAirplaneNewlyOn);
break;
case PhoneConstants.CELL_OFF_DUE_TO_AIRPLANE_MODE_FLAG:
- maybeTurnCellOn(context, isAirplaneNewlyOn);
+ maybeTurnCellOn(isAirplaneNewlyOn);
break;
}
for (Phone phone : PhoneFactory.getPhones()) {
@@ -673,57 +674,59 @@
/*
* Returns true if the radio must be turned off when entering airplane mode.
*/
- private boolean isCellOffInAirplaneMode(Context context) {
- String airplaneModeRadios = Settings.Global.getString(context.getContentResolver(),
- Settings.Global.AIRPLANE_MODE_RADIOS);
+ private boolean isCellOffInAirplaneMode() {
+ String airplaneModeRadios =
+ Settings.Global.getString(
+ getContentResolver(), Settings.Global.AIRPLANE_MODE_RADIOS);
return airplaneModeRadios == null
|| airplaneModeRadios.contains(Settings.Global.RADIO_CELL);
}
- private void setRadioPowerOff(Context context) {
+ private void setRadioPowerOff() {
Log.i(LOG_TAG, "Turning radio off - airplane");
- Settings.Global.putInt(context.getContentResolver(), Settings.Global.CELL_ON,
- PhoneConstants.CELL_OFF_DUE_TO_AIRPLANE_MODE_FLAG);
- TelephonyProperties.airplane_mode_on(true); // true means int value 1
+ Settings.Global.putInt(
+ getContentResolver(),
+ Settings.Global.CELL_ON,
+ PhoneConstants.CELL_OFF_DUE_TO_AIRPLANE_MODE_FLAG);
Settings.Global.putInt(getContentResolver(), Settings.Global.ENABLE_CELLULAR_ON_BOOT, 0);
+ TelephonyProperties.airplane_mode_on(true); // true means int value 1
PhoneUtils.setRadioPower(false);
}
- private void setRadioPowerOn(Context context) {
+ private void setRadioPowerOn() {
Log.i(LOG_TAG, "Turning radio on - airplane");
- Settings.Global.putInt(context.getContentResolver(), Settings.Global.CELL_ON,
- PhoneConstants.CELL_ON_FLAG);
- Settings.Global.putInt(getContentResolver(), Settings.Global.ENABLE_CELLULAR_ON_BOOT,
- 1);
+ Settings.Global.putInt(
+ getContentResolver(), Settings.Global.CELL_ON, PhoneConstants.CELL_ON_FLAG);
+ Settings.Global.putInt(getContentResolver(), Settings.Global.ENABLE_CELLULAR_ON_BOOT, 1);
TelephonyProperties.airplane_mode_on(false); // false means int value 0
PhoneUtils.setRadioPower(true);
}
- private void maybeTurnCellOff(Context context, boolean isAirplaneNewlyOn) {
+ private void maybeTurnCellOff(boolean isAirplaneNewlyOn) {
if (isAirplaneNewlyOn) {
// If we are trying to turn off the radio, make sure there are no active
// emergency calls. If there are, switch airplane mode back to off.
- TelecomManager tm = (TelecomManager) context.getSystemService(TELECOM_SERVICE);
+ TelecomManager tm = (TelecomManager) getSystemService(TELECOM_SERVICE);
if (tm != null && tm.isInEmergencyCall()) {
// Switch airplane mode back to off.
ConnectivityManager cm =
- (ConnectivityManager) context.getSystemService(CONNECTIVITY_SERVICE);
+ (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
cm.setAirplaneMode(false);
Toast.makeText(this, R.string.radio_off_during_emergency_call, Toast.LENGTH_LONG)
.show();
Log.i(LOG_TAG, "Ignoring airplane mode: emergency call. Turning airplane off");
- } else if (isCellOffInAirplaneMode(context)) {
- setRadioPowerOff(context);
+ } else if (isCellOffInAirplaneMode()) {
+ setRadioPowerOff();
} else {
Log.i(LOG_TAG, "Ignoring airplane mode: settings prevent cell radio power off");
}
}
}
- private void maybeTurnCellOn(Context context, boolean isAirplaneNewlyOn) {
+ private void maybeTurnCellOn(boolean isAirplaneNewlyOn) {
if (!isAirplaneNewlyOn) {
- setRadioPowerOn(context);
+ setRadioPowerOn();
}
}
@@ -735,13 +738,8 @@
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_AIRPLANE_MODE_CHANGED)) {
- int airplaneMode = Settings.Global.getInt(getContentResolver(),
- Settings.Global.AIRPLANE_MODE_ON, AIRPLANE_OFF);
- // Treat any non-OFF values as ON.
- if (airplaneMode != AIRPLANE_OFF) {
- airplaneMode = AIRPLANE_ON;
- }
- handleAirplaneModeChange(context, airplaneMode);
+ boolean airplaneMode = intent.getBooleanExtra("state", false);
+ handleAirplaneModeChange(airplaneMode);
} else if (action.equals(TelephonyIntents.ACTION_SIM_STATE_CHANGED)) {
// re-register as it may be a new IccCard
int phoneId = intent.getIntExtra(PhoneConstants.PHONE_KEY,
@@ -1040,6 +1038,12 @@
} catch (Exception e) {
e.printStackTrace();
}
+ pw.println("ImsStateCallbackController:");
+ try {
+ if (mImsStateCallbackController != null) mImsStateCallbackController.dump(pw);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
pw.decreaseIndent();
pw.println("------- End PhoneGlobals -------");
}
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 03b0be9..4cd0a4d 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -152,6 +152,7 @@
import com.android.internal.telephony.HalVersion;
import com.android.internal.telephony.IBooleanConsumer;
import com.android.internal.telephony.ICallForwardingInfoCallback;
+import com.android.internal.telephony.IImsStateCallback;
import com.android.internal.telephony.IIntegerConsumer;
import com.android.internal.telephony.INumberVerificationCallback;
import com.android.internal.telephony.ITelephony;
@@ -189,6 +190,7 @@
import com.android.internal.telephony.uicc.UiccCard;
import com.android.internal.telephony.uicc.UiccCardApplication;
import com.android.internal.telephony.uicc.UiccController;
+import com.android.internal.telephony.uicc.UiccPort;
import com.android.internal.telephony.uicc.UiccProfile;
import com.android.internal.telephony.uicc.UiccSlot;
import com.android.internal.telephony.util.LocaleUtils;
@@ -503,7 +505,7 @@
MainThreadRequest request;
Message onCompleted;
AsyncResult ar;
- UiccCard uiccCard;
+ UiccPort uiccPort;
IccAPDUArgument iccArgument;
final Phone defaultPhone = getDefaultPhone();
@@ -553,15 +555,15 @@
case CMD_TRANSMIT_APDU_LOGICAL_CHANNEL:
request = (MainThreadRequest) msg.obj;
iccArgument = (IccAPDUArgument) request.argument;
- uiccCard = getUiccCardFromRequest(request);
- if (uiccCard == null) {
+ uiccPort = getUiccPortFromRequest(request);
+ if (uiccPort == null) {
loge("iccTransmitApduLogicalChannel: No UICC");
request.result = new IccIoResult(0x6F, 0, (byte[])null);
notifyRequester(request);
} else {
onCompleted = obtainMessage(EVENT_TRANSMIT_APDU_LOGICAL_CHANNEL_DONE,
request);
- uiccCard.iccTransmitApduLogicalChannel(
+ uiccPort.iccTransmitApduLogicalChannel(
iccArgument.channel, iccArgument.cla, iccArgument.command,
iccArgument.p1, iccArgument.p2, iccArgument.p3, iccArgument.data,
onCompleted);
@@ -590,15 +592,15 @@
case CMD_TRANSMIT_APDU_BASIC_CHANNEL:
request = (MainThreadRequest) msg.obj;
iccArgument = (IccAPDUArgument) request.argument;
- uiccCard = getUiccCardFromRequest(request);
- if (uiccCard == null) {
+ uiccPort = getUiccPortFromRequest(request);
+ if (uiccPort == null) {
loge("iccTransmitApduBasicChannel: No UICC");
request.result = new IccIoResult(0x6F, 0, (byte[])null);
notifyRequester(request);
} else {
onCompleted = obtainMessage(EVENT_TRANSMIT_APDU_BASIC_CHANNEL_DONE,
request);
- uiccCard.iccTransmitApduBasicChannel(
+ uiccPort.iccTransmitApduBasicChannel(
iccArgument.cla, iccArgument.command, iccArgument.p1, iccArgument.p2,
iccArgument.p3, iccArgument.data, onCompleted);
}
@@ -626,15 +628,15 @@
case CMD_EXCHANGE_SIM_IO:
request = (MainThreadRequest) msg.obj;
iccArgument = (IccAPDUArgument) request.argument;
- uiccCard = getUiccCardFromRequest(request);
- if (uiccCard == null) {
+ uiccPort = getUiccPortFromRequest(request);
+ if (uiccPort == null) {
loge("iccExchangeSimIO: No UICC");
request.result = new IccIoResult(0x6F, 0, (byte[])null);
notifyRequester(request);
} else {
onCompleted = obtainMessage(EVENT_EXCHANGE_SIM_IO_DONE,
request);
- uiccCard.iccExchangeSimIO(iccArgument.cla, /* fileID */
+ uiccPort.iccExchangeSimIO(iccArgument.cla, /* fileID */
iccArgument.command, iccArgument.p1, iccArgument.p2, iccArgument.p3,
iccArgument.data, onCompleted);
}
@@ -653,14 +655,14 @@
case CMD_SEND_ENVELOPE:
request = (MainThreadRequest) msg.obj;
- uiccCard = getUiccCardFromRequest(request);
- if (uiccCard == null) {
+ uiccPort = getUiccPortFromRequest(request);
+ if (uiccPort == null) {
loge("sendEnvelopeWithStatus: No UICC");
request.result = new IccIoResult(0x6F, 0, (byte[])null);
notifyRequester(request);
} else {
onCompleted = obtainMessage(EVENT_SEND_ENVELOPE_DONE, request);
- uiccCard.sendEnvelopeWithStatus((String)request.argument, onCompleted);
+ uiccPort.sendEnvelopeWithStatus((String)request.argument, onCompleted);
}
break;
@@ -685,16 +687,16 @@
case CMD_OPEN_CHANNEL:
request = (MainThreadRequest) msg.obj;
- uiccCard = getUiccCardFromRequest(request);
+ uiccPort = getUiccPortFromRequest(request);
Pair<String, Integer> openChannelArgs = (Pair<String, Integer>) request.argument;
- if (uiccCard == null) {
+ if (uiccPort == null) {
loge("iccOpenLogicalChannel: No UICC");
request.result = new IccOpenLogicalChannelResponse(-1,
IccOpenLogicalChannelResponse.STATUS_MISSING_RESOURCE, null);
notifyRequester(request);
} else {
onCompleted = obtainMessage(EVENT_OPEN_CHANNEL_DONE, request);
- uiccCard.iccOpenLogicalChannel(openChannelArgs.first,
+ uiccPort.iccOpenLogicalChannel(openChannelArgs.first,
openChannelArgs.second, onCompleted);
}
break;
@@ -742,14 +744,14 @@
case CMD_CLOSE_CHANNEL:
request = (MainThreadRequest) msg.obj;
- uiccCard = getUiccCardFromRequest(request);
- if (uiccCard == null) {
+ uiccPort = getUiccPortFromRequest(request);
+ if (uiccPort == null) {
loge("iccCloseLogicalChannel: No UICC");
request.result = false;
notifyRequester(request);
} else {
onCompleted = obtainMessage(EVENT_CLOSE_CHANNEL_DONE, request);
- uiccCard.iccCloseLogicalChannel((Integer) request.argument, onCompleted);
+ uiccPort.iccCloseLogicalChannel((Integer) request.argument, onCompleted);
}
break;
@@ -1096,7 +1098,9 @@
// any service for voice call.
if ((callForwardInfo.serviceClass
& CommandsInterface.SERVICE_CLASS_VOICE) > 0) {
- callForwardingInfo = new CallForwardingInfo(true,
+ callForwardingInfo = new CallForwardingInfo(
+ callForwardInfo.status
+ == CommandsInterface.CF_ACTION_ENABLE,
callForwardInfo.reason,
callForwardInfo.number,
callForwardInfo.timeSeconds);
@@ -1461,16 +1465,16 @@
case CMD_GET_FORBIDDEN_PLMNS:
request = (MainThreadRequest) msg.obj;
- uiccCard = getUiccCardFromRequest(request);
- if (uiccCard == null) {
- loge("getForbiddenPlmns() UiccCard is null");
+ uiccPort = getUiccPortFromRequest(request);
+ if (uiccPort == null) {
+ loge("getForbiddenPlmns() UiccPort is null");
request.result = new IllegalArgumentException(
- "getForbiddenPlmns() UiccCard is null");
+ "getForbiddenPlmns() UiccPort is null");
notifyRequester(request);
break;
}
Integer appType = (Integer) request.argument;
- UiccCardApplication uiccApp = uiccCard.getApplicationByType(appType);
+ UiccCardApplication uiccApp = uiccPort.getApplicationByType(appType);
if (uiccApp == null) {
loge("getForbiddenPlmns() no app with specified type -- "
+ appType);
@@ -1766,9 +1770,9 @@
break;
case CMD_SET_FORBIDDEN_PLMNS:
request = (MainThreadRequest) msg.obj;
- uiccCard = getUiccCardFromRequest(request);
- if (uiccCard == null) {
- loge("setForbiddenPlmns: UiccCard is null");
+ uiccPort = getUiccPortFromRequest(request);
+ if (uiccPort == null) {
+ loge("setForbiddenPlmns: UiccPort is null");
request.result = -1;
notifyRequester(request);
break;
@@ -1777,7 +1781,7 @@
(Pair<Integer, List<String>>) request.argument;
appType = setFplmnsArgs.first;
List<String> fplmns = setFplmnsArgs.second;
- uiccApp = uiccCard.getApplicationByType(appType);
+ uiccApp = uiccPort.getApplicationByType(appType);
if (uiccApp == null) {
loge("setForbiddenPlmns: no app with specified type -- " + appType);
request.result = -1;
@@ -1975,7 +1979,7 @@
(Pair<Integer, SignalStrengthUpdateRequest>) request.argument;
onCompleted = obtainMessage(EVENT_SET_SIGNAL_STRENGTH_UPDATE_REQUEST_DONE,
request);
- phone.getServiceStateTracker().setSignalStrengthUpdateRequest(
+ phone.getSignalStrengthController().setSignalStrengthUpdateRequest(
request.subId, pair.first /*callingUid*/,
pair.second /*request*/, onCompleted);
break;
@@ -2003,7 +2007,7 @@
(Pair<Integer, SignalStrengthUpdateRequest>) request.argument;
onCompleted = obtainMessage(EVENT_CLEAR_SIGNAL_STRENGTH_UPDATE_REQUEST_DONE,
request);
- phone.getServiceStateTracker().clearSignalStrengthUpdateRequest(
+ phone.getSignalStrengthController().clearSignalStrengthUpdateRequest(
request.subId, pair.first /*callingUid*/,
pair.second /*request*/, onCompleted);
break;
@@ -2295,10 +2299,10 @@
? getDefaultPhone() : getPhone(subId);
}
- private UiccCard getUiccCardFromRequest(MainThreadRequest request) {
+ private UiccPort getUiccPortFromRequest(MainThreadRequest request) {
Phone phone = getPhoneFromRequest(request);
return phone == null ? null :
- UiccController.getInstance().getUiccCard(phone.getPhoneId());
+ UiccController.getInstance().getUiccPort(phone.getPhoneId());
}
// returns phone associated with the subId.
@@ -3221,7 +3225,12 @@
String tac = null;
if (phone != null) {
String imei = phone.getImei();
- tac = imei == null ? null : imei.substring(0, TYPE_ALLOCATION_CODE_LENGTH);
+ try {
+ tac = imei == null ? null : imei.substring(0, TYPE_ALLOCATION_CODE_LENGTH);
+ } catch (IndexOutOfBoundsException e) {
+ Log.e(LOG_TAG, "IMEI length shorter than upper index.");
+ return null;
+ }
}
return tac;
}
@@ -3260,7 +3269,13 @@
String manufacturerCode = null;
if (phone != null) {
String meid = phone.getMeid();
- manufacturerCode = meid == null ? null : meid.substring(0, MANUFACTURER_CODE_LENGTH);
+ try {
+ manufacturerCode =
+ meid == null ? null : meid.substring(0, MANUFACTURER_CODE_LENGTH);
+ } catch (IndexOutOfBoundsException e) {
+ Log.e(LOG_TAG, "MEID length shorter than upper index.");
+ return null;
+ }
}
return manufacturerCode;
}
@@ -3382,17 +3397,6 @@
mApp.enforceCallingOrSelfPermission(android.Manifest.permission.MODIFY_PHONE_STATE, null);
}
- /**
- * Make sure the caller is system.
- *
- * @throws SecurityException if the caller is not system.
- */
- private static void enforceSystemCaller() {
- if (Binder.getCallingUid() != Process.SYSTEM_UID) {
- throw new SecurityException("Caller must be system");
- }
- }
-
private void enforceActiveEmergencySessionPermission() {
mApp.enforceCallingOrSelfPermission(
android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION, null);
@@ -5055,10 +5059,13 @@
@Override
public int getDataNetworkTypeForSubscriber(int subId, String callingPackage,
String callingFeatureId) {
- if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
- mApp, subId, callingPackage, callingFeatureId,
- "getDataNetworkTypeForSubscriber")) {
- return TelephonyManager.NETWORK_TYPE_UNKNOWN;
+ String functionName = "getDataNetworkTypeForSubscriber";
+ if (!TelephonyPermissions.checkCallingOrSelfReadNonDangerousPhoneStateNoThrow(
+ mApp, functionName)) {
+ if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
+ mApp, subId, callingPackage, callingFeatureId, functionName)) {
+ return TelephonyManager.NETWORK_TYPE_UNKNOWN;
+ }
}
final long identity = Binder.clearCallingIdentity();
@@ -5080,10 +5087,13 @@
@Override
public int getVoiceNetworkTypeForSubscriber(int subId, String callingPackage,
String callingFeatureId) {
- if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
- mApp, subId, callingPackage, callingFeatureId,
- "getDataNetworkTypeForSubscriber")) {
- return TelephonyManager.NETWORK_TYPE_UNKNOWN;
+ String functionName = "getVoiceNetworkTypeForSubscriber";
+ if (!TelephonyPermissions.checkCallingOrSelfReadNonDangerousPhoneStateNoThrow(
+ mApp, functionName)) {
+ if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
+ mApp, subId, callingPackage, callingFeatureId, functionName)) {
+ return TelephonyManager.NETWORK_TYPE_UNKNOWN;
+ }
}
final long identity = Binder.clearCallingIdentity();
@@ -6311,28 +6321,35 @@
* Starts a new network scan and returns the id of this scan.
*
* @param subId id of the subscription
+ * @param renounceFineLocationAccess Set this to true if the caller would not like to receive
+ * location related information which will be sent if the caller already possess
+ * {@android.Manifest.permission.ACCESS_FINE_LOCATION} and do not renounce the permission
* @param request contains the radio access networks with bands/channels to scan
* @param messenger callback messenger for scan results or errors
* @param binder for the purpose of auto clean when the user thread crashes
* @return the id of the requested scan which can be used to stop the scan.
*/
@Override
- public int requestNetworkScan(int subId, NetworkScanRequest request, Messenger messenger,
+ public int requestNetworkScan(int subId, boolean renounceFineLocationAccess,
+ NetworkScanRequest request, Messenger messenger,
IBinder binder, String callingPackage, String callingFeatureId) {
TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
mApp, subId, "requestNetworkScan");
LocationAccessPolicy.LocationPermissionResult locationResult =
- LocationAccessPolicy.checkLocationPermission(mApp,
- new LocationAccessPolicy.LocationPermissionQuery.Builder()
- .setCallingPackage(callingPackage)
- .setCallingFeatureId(callingFeatureId)
- .setCallingPid(Binder.getCallingPid())
- .setCallingUid(Binder.getCallingUid())
- .setMethod("requestNetworkScan")
- .setMinSdkVersionForFine(Build.VERSION_CODES.Q)
- .setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
- .setMinSdkVersionForEnforcement(Build.VERSION_CODES.Q)
- .build());
+ LocationAccessPolicy.LocationPermissionResult.DENIED_HARD;
+ if (!renounceFineLocationAccess) {
+ locationResult = LocationAccessPolicy.checkLocationPermission(mApp,
+ new LocationAccessPolicy.LocationPermissionQuery.Builder()
+ .setCallingPackage(callingPackage)
+ .setCallingFeatureId(callingFeatureId)
+ .setCallingPid(Binder.getCallingPid())
+ .setCallingUid(Binder.getCallingUid())
+ .setMethod("requestNetworkScan")
+ .setMinSdkVersionForFine(Build.VERSION_CODES.Q)
+ .setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
+ .setMinSdkVersionForEnforcement(Build.VERSION_CODES.Q)
+ .build());
+ }
if (locationResult != LocationAccessPolicy.LocationPermissionResult.ALLOWED) {
SecurityException e = checkNetworkRequestForSanitizedLocationAccess(
request, subId, callingPackage);
@@ -6350,7 +6367,7 @@
final long identity = Binder.clearCallingIdentity();
try {
return mNetworkScanRequestTracker.startNetworkScan(
- request, messenger, binder, getPhone(subId),
+ renounceFineLocationAccess, request, messenger, binder, getPhone(subId),
callingUid, callingPid, callingPackage);
} finally {
Binder.restoreCallingIdentity(identity);
@@ -6576,34 +6593,6 @@
}
/**
- * Enable or disable always reporting signal strength changes from radio.
- *
- * @param isEnable {@code true} for enabling; {@code false} for disabling.
- */
- @Override
- public void setAlwaysReportSignalStrength(int subId, boolean isEnable) {
- enforceModifyPermission();
- enforceSystemCaller();
-
- final long identity = Binder.clearCallingIdentity();
- final Phone phone = getPhone(subId);
- try {
- if (phone != null) {
- if (DBG) {
- log("setAlwaysReportSignalStrength: subId=" + subId
- + " isEnable=" + isEnable);
- }
- phone.setAlwaysReportSignalStrength(isEnable);
- } else {
- loge("setAlwaysReportSignalStrength: no phone found for subId="
- + subId);
- }
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- /**
* Get the user enabled state of Mobile Data.
*
* TODO: remove and use isUserDataEnabled.
@@ -6624,18 +6613,25 @@
* There are other factors deciding whether mobile data is actually enabled, but they are
* not considered here. See {@link #isDataEnabled(int)} for more details.
*
- * Accepts either ACCESS_NETWORK_STATE, MODIFY_PHONE_STATE or carrier privileges.
+ * Accepts either READ_BASIC_PHONE_STATE, ACCESS_NETWORK_STATE, MODIFY_PHONE_STATE
+ * or carrier privileges.
*
* @return {@code true} if data is enabled else {@code false}
*/
@Override
public boolean isUserDataEnabled(int subId) {
+ String functionName = "isUserDataEnabled";
try {
- mApp.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NETWORK_STATE,
- null);
+ try {
+ mApp.enforceCallingOrSelfPermission(permission.READ_BASIC_PHONE_STATE,
+ functionName);
+ } catch (Exception e) {
+ mApp.enforceCallingOrSelfPermission(permission.ACCESS_NETWORK_STATE, functionName);
+ }
} catch (Exception e) {
TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
- mApp, subId, "isUserDataEnabled");
+ mApp, subId, functionName);
+
}
final long identity = Binder.clearCallingIdentity();
@@ -6665,17 +6661,24 @@
*/
@Override
public boolean isDataEnabled(int subId) {
+ String functionName = "isDataEnabled";
try {
try {
mApp.enforceCallingOrSelfPermission(
android.Manifest.permission.ACCESS_NETWORK_STATE,
- null);
+ functionName);
} catch (Exception e) {
- mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE,
- "isDataEnabled");
+ try {
+ mApp.enforceCallingOrSelfPermission(
+ android.Manifest.permission.READ_PHONE_STATE,
+ functionName);
+ } catch (Exception e2) {
+ mApp.enforceCallingOrSelfPermission(
+ permission.READ_BASIC_PHONE_STATE, functionName);
+ }
}
} catch (Exception e) {
- enforceReadPrivilegedPermission("isDataEnabled");
+ enforceReadPrivilegedPermission(functionName);
}
final long identity = Binder.clearCallingIdentity();
@@ -6705,12 +6708,24 @@
@Override
public boolean isDataEnabledForReason(int subId,
@TelephonyManager.DataEnabledReason int reason) {
+ String functionName = "isDataEnabledForReason";
try {
- mApp.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NETWORK_STATE,
- null);
+ try {
+ mApp.enforceCallingOrSelfPermission(
+ android.Manifest.permission.ACCESS_NETWORK_STATE,
+ functionName);
+ } catch (Exception e) {
+ mApp.enforceCallingOrSelfPermission(permission.READ_BASIC_PHONE_STATE,
+ functionName);
+ }
} catch (Exception e) {
- mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE,
- "isDataEnabledForReason");
+ try {
+ mApp.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE,
+ functionName);
+ } catch (Exception e2) {
+ TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(
+ mApp, subId, functionName);
+ }
}
@@ -6813,14 +6828,14 @@
loge("getCarrierPrivilegeStatus: Invalid subId");
return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
}
- UiccCard card = UiccController.getInstance().getUiccCard(phone.getPhoneId());
- if (card == null) {
+ UiccPort port = UiccController.getInstance().getUiccPort(phone.getPhoneId());
+ if (port == null) {
loge("getCarrierPrivilegeStatus: No UICC");
return TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
}
return getCarrierPrivilegeStatusFromCarrierConfigRules(
- card.getCarrierPrivilegeStatusForCurrentTransaction(
+ port.getCarrierPrivilegeStatusForCurrentTransaction(
phone.getContext().getPackageManager()), Binder.getCallingUid(), phone);
}
@@ -6851,13 +6866,13 @@
}
int phoneId = SubscriptionManager.getPhoneId(subId);
- UiccCard card = UiccController.getInstance().getUiccCard(phoneId);
- if (card == null) {
+ UiccPort port = UiccController.getInstance().getUiccPort(phoneId);
+ if (port == null) {
loge("checkCarrierPrivilegesForPackage: No UICC on subId " + subId);
return TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
}
return getCarrierPrivilegeStatusFromCarrierConfigRules(
- card.getCarrierPrivilegeStatus(mApp.getPackageManager(), pkgName),
+ port.getCarrierPrivilegeStatus(mApp.getPackageManager(), pkgName),
getPhone(phoneId), pkgName);
}
@@ -6868,14 +6883,14 @@
return TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS;
int result = TelephonyManager.CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED;
for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
- UiccCard card = UiccController.getInstance().getUiccCard(i);
- if (card == null) {
+ UiccPort port = UiccController.getInstance().getUiccPort(i);
+ if (port == null) {
// No UICC in that slot.
continue;
}
result = getCarrierPrivilegeStatusFromCarrierConfigRules(
- card.getCarrierPrivilegeStatus(mApp.getPackageManager(), pkgName),
+ port.getCarrierPrivilegeStatus(mApp.getPackageManager(), pkgName),
getPhone(i), pkgName);
if (result == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
break;
@@ -6892,12 +6907,12 @@
loge("phoneId " + phoneId + " is not valid.");
return null;
}
- UiccCard card = UiccController.getInstance().getUiccCard(phoneId);
- if (card == null) {
+ UiccPort port = UiccController.getInstance().getUiccPort(phoneId);
+ if (port == null) {
loge("getCarrierPackageNamesForIntentAndPhone: No UICC");
return null ;
}
- return card.getCarrierPackageNamesForIntent(mApp.getPackageManager(), intent);
+ return port.getCarrierPackageNamesForIntent(mApp.getPackageManager(), intent);
}
@Override
@@ -6906,10 +6921,10 @@
PackageManager pm = mApp.getPackageManager();
List<String> privilegedPackages = new ArrayList<>();
List<PackageInfo> packages = null;
- UiccCard card = UiccController.getInstance().getUiccCard(phoneId);
+ UiccPort port = UiccController.getInstance().getUiccPort(phoneId);
// has UICC in that slot.
- if (card != null) {
- if (card.hasCarrierPrivilegeRules()) {
+ if (port != null) {
+ if (port.hasCarrierPrivilegeRules()) {
if (packages == null) {
// Only check packages in user 0 for now
packages = pm.getInstalledPackagesAsUser(
@@ -6921,7 +6936,9 @@
for (int p = packages.size() - 1; p >= 0; p--) {
PackageInfo pkgInfo = packages.get(p);
if (pkgInfo != null && pkgInfo.packageName != null
- && card.getCarrierPrivilegeStatus(pkgInfo)
+ && getCarrierPrivilegeStatusFromCarrierConfigRules(
+ port.getCarrierPrivilegeStatus(pkgInfo),
+ getPhone(phoneId), pkgInfo.packageName)
== TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
privilegedPackages.add(pkgInfo.packageName);
}
@@ -6950,11 +6967,11 @@
private String getIccId(int subId) {
final Phone phone = getPhone(subId);
- UiccCard card = phone == null ? null : phone.getUiccCard();
- if (card == null) {
+ UiccPort port = phone == null ? null : phone.getUiccPort();
+ if (port == null) {
return null;
}
- String iccId = card.getIccId();
+ String iccId = port.getIccId();
if (TextUtils.isEmpty(iccId)) {
return null;
}
@@ -7881,49 +7898,54 @@
}
/**
- * {@hide}
* Returns the service state information on specified subscription.
*/
@Override
- public ServiceState getServiceStateForSubscriber(int subId, String callingPackage,
- String callingFeatureId) {
+ public ServiceState getServiceStateForSubscriber(int subId,
+ boolean renounceFineLocationAccess, boolean renounceCoarseLocationAccess,
+ String callingPackage, String callingFeatureId) {
if (!TelephonyPermissions.checkCallingOrSelfReadPhoneState(
mApp, subId, callingPackage, callingFeatureId, "getServiceStateForSubscriber")) {
return null;
}
- LocationAccessPolicy.LocationPermissionResult fineLocationResult =
- LocationAccessPolicy.checkLocationPermission(mApp,
- new LocationAccessPolicy.LocationPermissionQuery.Builder()
- .setCallingPackage(callingPackage)
- .setCallingFeatureId(callingFeatureId)
- .setCallingPid(Binder.getCallingPid())
- .setCallingUid(Binder.getCallingUid())
- .setMethod("getServiceStateForSubscriber")
- .setLogAsInfo(true)
- .setMinSdkVersionForFine(Build.VERSION_CODES.Q)
- .setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
- .setMinSdkVersionForEnforcement(Build.VERSION_CODES.Q)
- .build());
+ boolean hasFinePermission = false;
+ boolean hasCoarsePermission = false;
+ if (!renounceFineLocationAccess) {
+ LocationAccessPolicy.LocationPermissionResult fineLocationResult =
+ LocationAccessPolicy.checkLocationPermission(mApp,
+ new LocationAccessPolicy.LocationPermissionQuery.Builder()
+ .setCallingPackage(callingPackage)
+ .setCallingFeatureId(callingFeatureId)
+ .setCallingPid(Binder.getCallingPid())
+ .setCallingUid(Binder.getCallingUid())
+ .setMethod("getServiceStateForSubscriber")
+ .setLogAsInfo(true)
+ .setMinSdkVersionForFine(Build.VERSION_CODES.Q)
+ .setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
+ .setMinSdkVersionForEnforcement(Build.VERSION_CODES.Q)
+ .build());
+ hasFinePermission =
+ fineLocationResult == LocationAccessPolicy.LocationPermissionResult.ALLOWED;
+ }
- LocationAccessPolicy.LocationPermissionResult coarseLocationResult =
- LocationAccessPolicy.checkLocationPermission(mApp,
- new LocationAccessPolicy.LocationPermissionQuery.Builder()
- .setCallingPackage(callingPackage)
- .setCallingFeatureId(callingFeatureId)
- .setCallingPid(Binder.getCallingPid())
- .setCallingUid(Binder.getCallingUid())
- .setMethod("getServiceStateForSubscriber")
- .setLogAsInfo(true)
- .setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
- .setMinSdkVersionForFine(Integer.MAX_VALUE)
- .setMinSdkVersionForEnforcement(Build.VERSION_CODES.Q)
- .build());
- // We don't care about hard or soft here -- all we need to know is how much info to scrub.
- boolean hasFinePermission =
- fineLocationResult == LocationAccessPolicy.LocationPermissionResult.ALLOWED;
- boolean hasCoarsePermission =
- coarseLocationResult == LocationAccessPolicy.LocationPermissionResult.ALLOWED;
+ if (!renounceCoarseLocationAccess) {
+ LocationAccessPolicy.LocationPermissionResult coarseLocationResult =
+ LocationAccessPolicy.checkLocationPermission(mApp,
+ new LocationAccessPolicy.LocationPermissionQuery.Builder()
+ .setCallingPackage(callingPackage)
+ .setCallingFeatureId(callingFeatureId)
+ .setCallingPid(Binder.getCallingPid())
+ .setCallingUid(Binder.getCallingUid())
+ .setMethod("getServiceStateForSubscriber")
+ .setLogAsInfo(true)
+ .setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
+ .setMinSdkVersionForFine(Integer.MAX_VALUE)
+ .setMinSdkVersionForEnforcement(Build.VERSION_CODES.Q)
+ .build());
+ hasCoarsePermission =
+ coarseLocationResult == LocationAccessPolicy.LocationPermissionResult.ALLOWED;
+ }
final Phone phone = getPhone(subId);
if (phone == null) {
@@ -8132,7 +8154,7 @@
}
String aid = null;
try {
- aid = UiccController.getInstance().getUiccCard(phone.getPhoneId())
+ aid = UiccController.getInstance().getUiccPort(phone.getPhoneId())
.getApplicationByType(appType).getAid();
} catch (Exception e) {
Log.e(LOG_TAG, "Not getting aid. Exception ex=" + e);
@@ -8635,6 +8657,7 @@
*
* <p>Requires one of the following permissions:
* {@link android.Manifest.permission#ACCESS_NETWORK_STATE},
+ * {@link android.Manifest.permission#READ_BASIC_PHONE_STATE},
* {@link android.Manifest.permission#READ_PHONE_STATE} or that the calling app has carrier
* privileges.
*
@@ -8644,12 +8667,19 @@
*/
@Override
public boolean isDataRoamingEnabled(int subId) {
+ String functionName = "isDataRoamingEnabled";
try {
- mApp.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NETWORK_STATE,
- null);
+ try {
+ mApp.enforceCallingOrSelfPermission(
+ android.Manifest.permission.ACCESS_NETWORK_STATE,
+ functionName);
+ } catch (Exception e) {
+ mApp.enforceCallingOrSelfPermission(
+ permission.READ_BASIC_PHONE_STATE, functionName);
+ }
} catch (Exception e) {
TelephonyPermissions.enforceCallingOrSelfReadPhoneStatePermissionOrCarrierPrivilege(
- mApp, subId, "isDataRoamingEnabled");
+ mApp, subId, functionName);
}
boolean isEnabled = false;
@@ -8709,6 +8739,22 @@
return isAllowed;
}
+ private boolean haveCarrierPrivilegeAccess(UiccCard card, String callingPackage) {
+ // TODO once MEP API refactoring CL is merged, loop port list from UiccCardInfo,
+ // and if find the matching UiccPort by UiccController.getUiccPortForSlot(slot, portIdx)
+ // Update each UiccPort object based on privilege access
+ UiccPort[] uiccPorts = card.getUiccPortList();
+ for (UiccPort port : uiccPorts) {
+ UiccProfile profile = port.getUiccProfile();
+ if (profile == null ||
+ profile.getCarrierPrivilegeStatus(mApp.getPackageManager(), callingPackage)
+ != TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
+ return false;
+ }
+ }
+ return true;
+ }
+
@Override
public List<UiccCardInfo> getUiccCardsInfo(String callingPackage) {
// Verify that tha callingPackage belongs to the calling UID
@@ -8742,14 +8788,15 @@
// For an inactive eUICC, the UiccCard will be null even though the UiccCardInfo
// is available
UiccCard card = uiccController.getUiccCardForSlot(cardInfo.getSlotIndex());
- if (card == null || card.getUiccProfile() == null) {
- // assume no access if the card or profile is unavailable
+ // TODO remove card.getUiccPortList().length once MEP API refactoring CL is merged
+ // Get UiccPortInfo from CardInfo and process further based on each UiccPort
+ if (card == null || card.getUiccPortList().length == 0) {
+ // assume no access if the card or ports are unavailable
filteredInfos.add(cardInfo.getUnprivileged());
continue;
}
- UiccProfile profile = card.getUiccProfile();
- if (profile.getCarrierPrivilegeStatus(mApp.getPackageManager(), callingPackage)
- == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
+
+ if (haveCarrierPrivilegeAccess(card, callingPackage)) {
filteredInfos.add(cardInfo);
} else {
filteredInfos.add(cardInfo.getUnprivileged());
@@ -8870,11 +8917,11 @@
if (phone == null) {
return;
}
- UiccCard uiccCard = phone.getUiccCard();
- if (uiccCard == null) {
+ UiccPort uiccPort = phone.getUiccPort();
+ if (uiccPort == null) {
return;
}
- UiccProfile uiccProfile = uiccCard.getUiccProfile();
+ UiccProfile uiccProfile = uiccPort.getUiccProfile();
if (uiccProfile == null) {
return;
}
@@ -9381,11 +9428,11 @@
}
final long identity = Binder.clearCallingIdentity();
try {
- UiccCard uiccCard = phone.getUiccCard();
- if (uiccCard == null) {
+ UiccPort uiccPort = phone.getUiccPort();
+ if (uiccPort == null) {
return false;
}
- UiccProfile uiccProfile = uiccCard.getUiccProfile();
+ UiccProfile uiccProfile = uiccPort.getUiccProfile();
if (uiccProfile == null) {
return false;
}
@@ -10791,7 +10838,7 @@
mApp.getSystemService(AppOpsManager.class)
.checkPackage(callingUid, callingPackage);
- validateSignalStrengthUpdateRequest(request, callingUid);
+ validateSignalStrengthUpdateRequest(mApp, request, callingUid);
final long identity = Binder.clearCallingIdentity();
try {
@@ -10830,19 +10877,19 @@
}
}
- private static void validateSignalStrengthUpdateRequest(SignalStrengthUpdateRequest request,
- int callingUid) {
+ private static void validateSignalStrengthUpdateRequest(Context context,
+ SignalStrengthUpdateRequest request, int callingUid) {
if (callingUid == Process.PHONE_UID || callingUid == Process.SYSTEM_UID) {
// phone/system process do not have further restriction on request
return;
}
// Applications has restrictions on how to use the request:
- // Only system caller can set mIsSystemThresholdReportingRequestedWhileIdle
+ // Non-system callers need permission to set mIsSystemThresholdReportingRequestedWhileIdle
if (request.isSystemThresholdReportingRequestedWhileIdle()) {
- // This is not system caller which has been checked above
- throw new IllegalArgumentException(
- "Only system can set isSystemThresholdReportingRequestedWhileIdle");
+ context.enforceCallingOrSelfPermission(
+ android.Manifest.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH,
+ "validateSignalStrengthUpdateRequest");
}
for (SignalThresholdInfo info : request.getSignalThresholdInfos()) {
@@ -10922,4 +10969,123 @@
Binder.restoreCallingIdentity(identity);
}
}
+
+ /**
+ * Register an IMS connection state callback
+ */
+ @Override
+ public void registerImsStateCallback(int subId, int feature, IImsStateCallback cb,
+ String callingPackage) {
+ if (feature == ImsFeature.FEATURE_MMTEL) {
+ // ImsMmTelManager
+ // The following also checks READ_PRIVILEGED_PHONE_STATE.
+ TelephonyPermissions
+ .enforceCallingOrSelfReadPrecisePhoneStatePermissionOrCarrierPrivilege(
+ mApp, subId, "registerImsStateCallback");
+ } else if (feature == ImsFeature.FEATURE_RCS) {
+ // ImsRcsManager or SipDelegateManager
+ TelephonyPermissions.enforceAnyPermissionGrantedOrCarrierPrivileges(mApp, subId,
+ Binder.getCallingUid(), "registerImsStateCallback",
+ Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
+ Manifest.permission.READ_PRECISE_PHONE_STATE,
+ Manifest.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE,
+ Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION);
+ }
+
+ if (!ImsManager.isImsSupportedOnDevice(mApp)) {
+ throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+ "IMS not available on device.");
+ }
+
+ if (subId == SubscriptionManager.DEFAULT_SUBSCRIPTION_ID) {
+ throw new ServiceSpecificException(ImsException.CODE_ERROR_INVALID_SUBSCRIPTION);
+ }
+
+ ImsStateCallbackController controller = ImsStateCallbackController.getInstance();
+ if (controller == null) {
+ throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
+ "IMS not available on device.");
+ }
+
+ if (callingPackage == null) {
+ callingPackage = getCurrentPackageName();
+ }
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ int slotId = getSlotIndexOrException(subId);
+ controller.registerImsStateCallback(subId, feature, cb, callingPackage);
+ } catch (ImsException e) {
+ throw new ServiceSpecificException(e.getCode());
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ /**
+ * Unregister an IMS connection state callback
+ */
+ @Override
+ public void unregisterImsStateCallback(IImsStateCallback cb) {
+ final long token = Binder.clearCallingIdentity();
+ ImsStateCallbackController controller = ImsStateCallbackController.getInstance();
+ if (controller == null) {
+ return;
+ }
+ try {
+ controller.unregisterImsStateCallback(cb);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ /**
+ * @return {@CellIdentity} last known cell identity {@CellIdentity}.
+ *
+ * Require {@link android.Manifest.permission#ACCESS_FINE_LOCATION} and
+ * com.android.phone.permission.ACCESS_LAST_KNOWN_CELL_ID, otherwise throws
+ * SecurityException.
+ * If there is current registered network this value will be same as the registered cell
+ * identity. If the device goes out of service the previous cell identity is cached and
+ * will be returned. If the cache age of the Cell identity is more than 24 hours
+ * it will be cleared and null will be returned.
+ *
+ */
+ @Override
+ public @Nullable CellIdentity getLastKnownCellIdentity(int subId, String callingPackage,
+ String callingFeatureId) {
+ mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
+ LocationAccessPolicy.LocationPermissionResult fineLocationResult =
+ LocationAccessPolicy.checkLocationPermission(mApp,
+ new LocationAccessPolicy.LocationPermissionQuery.Builder()
+ .setCallingPackage(callingPackage)
+ .setCallingFeatureId(callingFeatureId)
+ .setCallingPid(Binder.getCallingPid())
+ .setCallingUid(Binder.getCallingUid())
+ .setMethod("getLastKnownCellIdentity")
+ .setLogAsInfo(true)
+ .setMinSdkVersionForFine(Build.VERSION_CODES.Q)
+ .setMinSdkVersionForCoarse(Build.VERSION_CODES.Q)
+ .setMinSdkVersionForEnforcement(Build.VERSION_CODES.Q)
+ .build());
+
+ boolean hasFinePermission =
+ fineLocationResult == LocationAccessPolicy.LocationPermissionResult.ALLOWED;
+ if (!hasFinePermission
+ || !TelephonyPermissions.checkLastKnownCellIdAccessPermission(mApp)) {
+ throw new SecurityException("getLastKnownCellIdentity need ACCESS_FINE_LOCATION "
+ + "and BIND_CONNECTION_SERVICE permission.");
+ }
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ Phone phone = getPhone(subId);
+ if (phone == null) return null;
+ ServiceStateTracker sst = phone.getServiceStateTracker();
+ if (sst == null) return null;
+ return sst.getLastKnownCellIdentity();
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
}
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index c520063..35cfdd3 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -468,7 +468,8 @@
};
// build the dialog
- final AlertDialog newDialog = new AlertDialog.Builder(contextThemeWrapper)
+ final AlertDialog newDialog =
+ FrameworksUtils.makeAlertDialogBuilder(contextThemeWrapper)
.setMessage(text)
.setView(dialogView)
.setPositiveButton(R.string.send_button, mUSSDDialogListener)
diff --git a/src/com/android/phone/ServiceStateProvider.java b/src/com/android/phone/ServiceStateProvider.java
index 56786f9..6f5fcf5 100644
--- a/src/com/android/phone/ServiceStateProvider.java
+++ b/src/com/android/phone/ServiceStateProvider.java
@@ -28,6 +28,9 @@
import static android.provider.Telephony.ServiceStateTable.getUriForSubscriptionIdAndField;
import android.Manifest;
+import android.app.compat.CompatChanges;
+import android.compat.annotation.ChangeId;
+import android.compat.annotation.EnabledAfter;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.Context;
@@ -230,6 +233,15 @@
*/
public static final String OPERATOR_ALPHA_SHORT_RAW = "operator_alpha_short_raw";
+ /**
+ * If the change Id is enabled, location permission is required to access location sensitive
+ * columns in the ServiceStateTable.
+ */
+ @ChangeId
+ @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.R)
+ @VisibleForTesting
+ /* package */ static final long ENFORCE_LOCATION_PERMISSION_CHECK = 191911306;
+
private final HashMap<Integer, ServiceState> mServiceStates = new HashMap<>();
@VisibleForTesting
@@ -398,7 +410,8 @@
return null;
}
- // TODO(b/182384053): replace targetSdk check with CompatChanges#isChangeEnabled
+ final boolean enforceLocationPermission =
+ CompatChanges.isChangeEnabled(ENFORCE_LOCATION_PERMISSION_CHECK);
final boolean targetingAtLeastS = TelephonyPermissions.getTargetSdk(getContext(),
getCallingPackage()) >= Build.VERSION_CODES.S;
final boolean canReadPrivilegedPhoneState = getContext().checkCallingOrSelfPermission(
@@ -406,7 +419,7 @@
final String[] availableColumns;
final ServiceState ss;
- if (targetingAtLeastS && !canReadPrivilegedPhoneState) {
+ if (enforceLocationPermission && targetingAtLeastS && !canReadPrivilegedPhoneState) {
// targetSdkVersion S+ without read privileged phone state permission can only
// access public columns which have no location sensitive info.
availableColumns = PUBLIC_COLUMNS;
@@ -415,9 +428,9 @@
availableColumns = ALL_COLUMNS;
final boolean hasLocationPermission = hasLocationPermission();
- if (hasLocationPermission) {
+ if (!enforceLocationPermission || hasLocationPermission) {
// No matter the targetSdkVersion, return unredacted ServiceState if caller does
- // have location permission.
+ // have location permission or location permission enforcement is not introduced
ss = unredactedServiceState;
} else {
// The caller has targetSdkVersion S+ but no location permission. It explicitly
diff --git a/src/com/android/phone/SimPhonebookProvider.java b/src/com/android/phone/SimPhonebookProvider.java
index 04c4f48..8952865 100644
--- a/src/com/android/phone/SimPhonebookProvider.java
+++ b/src/com/android/phone/SimPhonebookProvider.java
@@ -43,7 +43,7 @@
import android.telephony.TelephonyFrameworkInitializer;
import android.telephony.TelephonyManager;
import android.util.ArraySet;
-import android.util.Pair;
+import android.util.SparseArray;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -55,10 +55,10 @@
import com.google.common.base.Joiner;
import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.util.concurrent.MoreExecutors;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List;
@@ -333,19 +333,25 @@
if (recordsSize == null || getRecordCount(recordsSize) == 0) {
return;
}
+ int efid = efIdForEfType(efType);
+ // Have to load the existing records to get the size because there may be more than one
+ // phonebook set in which case the total capacity is the sum of the capacity of EF_ADN for
+ // all the phonebook sets whereas the recordsSize is just the size for a single EF.
+ List<AdnRecord> existingRecords = mIccPhoneBookSupplier.get()
+ .getAdnRecordsInEfForSubscriber(subscriptionInfo.getSubscriptionId(), efid);
+ if (existingRecords == null) {
+ existingRecords = ImmutableList.of();
+ }
MatrixCursor.RowBuilder row = result.newRow()
.add(ElementaryFiles.SLOT_INDEX, subscriptionInfo.getSimSlotIndex())
.add(ElementaryFiles.SUBSCRIPTION_ID, subscriptionInfo.getSubscriptionId())
.add(ElementaryFiles.EF_TYPE, efType)
- .add(ElementaryFiles.MAX_RECORDS, getRecordCount(recordsSize))
+ .add(ElementaryFiles.MAX_RECORDS, existingRecords.size())
.add(ElementaryFiles.NAME_MAX_LENGTH,
AdnRecord.getMaxAlphaTagBytes(getRecordSize(recordsSize)))
.add(ElementaryFiles.PHONE_NUMBER_MAX_LENGTH,
AdnRecord.getMaxPhoneNumberDigits());
if (result.getColumnIndex(ElementaryFiles.RECORD_COUNT) != -1) {
- int efid = efIdForEfType(efType);
- List<AdnRecord> existingRecords = mIccPhoneBookSupplier.get()
- .getAdnRecordsInEfForSubscriber(subscriptionInfo.getSubscriptionId(), efid);
int nonEmptyCount = 0;
for (AdnRecord record : existingRecords) {
if (!record.isEmpty()) {
@@ -368,39 +374,46 @@
return new MatrixCursor(projection, 0);
}
MatrixCursor result = new MatrixCursor(projection, records.size());
- List<Pair<AdnRecord, MatrixCursor.RowBuilder>> rowBuilders = new ArrayList<>(
- records.size());
- for (AdnRecord record : records) {
+ SparseArray<MatrixCursor.RowBuilder> rowBuilders = new SparseArray<>(records.size());
+ for (int i = 0; i < records.size(); i++) {
+ AdnRecord record = records.get(i);
if (!record.isEmpty()) {
- rowBuilders.add(Pair.create(record, result.newRow()));
+ rowBuilders.put(i, result.newRow());
}
}
// This is kind of ugly but avoids looking up columns in an inner loop.
for (String column : projection) {
switch (column) {
case SimRecords.SUBSCRIPTION_ID:
- for (Pair<AdnRecord, MatrixCursor.RowBuilder> row : rowBuilders) {
- row.second.add(args.subscriptionId);
+ for (int i = 0; i < rowBuilders.size(); i++) {
+ rowBuilders.valueAt(i).add(args.subscriptionId);
}
break;
case SimRecords.ELEMENTARY_FILE_TYPE:
- for (Pair<AdnRecord, MatrixCursor.RowBuilder> row : rowBuilders) {
- row.second.add(args.efType);
+ for (int i = 0; i < rowBuilders.size(); i++) {
+ rowBuilders.valueAt(i).add(args.efType);
}
break;
case SimRecords.RECORD_NUMBER:
- for (Pair<AdnRecord, MatrixCursor.RowBuilder> row : rowBuilders) {
- row.second.add(row.first.getRecId());
+ for (int i = 0; i < rowBuilders.size(); i++) {
+ int index = rowBuilders.keyAt(i);
+ MatrixCursor.RowBuilder rowBuilder = rowBuilders.valueAt(i);
+ // See b/201685690. The logical record number, i.e. the 1-based index in the
+ // list, is used the rather than AdnRecord.getRecId() because getRecId is
+ // not offset when a single logical EF is made up of multiple physical EFs.
+ rowBuilder.add(index + 1);
}
break;
case SimRecords.NAME:
- for (Pair<AdnRecord, MatrixCursor.RowBuilder> row : rowBuilders) {
- row.second.add(row.first.getAlphaTag());
+ for (int i = 0; i < rowBuilders.size(); i++) {
+ AdnRecord record = records.get(rowBuilders.keyAt(i));
+ rowBuilders.valueAt(i).add(record.getAlphaTag());
}
break;
case SimRecords.PHONE_NUMBER:
- for (Pair<AdnRecord, MatrixCursor.RowBuilder> row : rowBuilders) {
- row.second.add(row.first.getNumber());
+ for (int i = 0; i < rowBuilders.size(); i++) {
+ AdnRecord record = records.get(rowBuilders.keyAt(i));
+ rowBuilders.valueAt(i).add(record.getNumber());
}
break;
default:
@@ -765,20 +778,9 @@
if (records == null || args.recordNumber > records.size()) {
return null;
}
- AdnRecord result = records.get(args.recordNumber - 1);
- // This should be true but the service could have a different implementation.
- if (result.getRecId() == args.recordNumber) {
- return result;
- }
- for (AdnRecord record : records) {
- if (record.getRecId() == args.recordNumber) {
- return result;
- }
- }
- return null;
+ return records.get(args.recordNumber - 1);
}
-
private int[] getRecordsSizeForEf(PhonebookArgs args) {
try {
return mIccPhoneBookSupplier.get().getAdnRecordsSizeForSubscriber(
diff --git a/src/com/android/phone/SpecialCharSequenceMgr.java b/src/com/android/phone/SpecialCharSequenceMgr.java
index 674449e..3bf0e1a 100644
--- a/src/com/android/phone/SpecialCharSequenceMgr.java
+++ b/src/com/android/phone/SpecialCharSequenceMgr.java
@@ -264,7 +264,7 @@
}
return isMMIHandled;
} else {
- AlertDialog dialog = new AlertDialog.Builder(context)
+ AlertDialog dialog = FrameworksUtils.makeAlertDialogBuilder(context)
.setMessage(R.string.pin_puk_system_user_only)
.setPositiveButton(R.string.ok, null)
.setCancelable(true).create();
@@ -294,7 +294,7 @@
int labelId = TelephonyCapabilities.getDeviceIdLabel(phone);
String deviceId = phone.getDeviceId();
- AlertDialog alert = new AlertDialog.Builder(context)
+ AlertDialog alert = FrameworksUtils.makeAlertDialogBuilder(context)
.setTitle(labelId)
.setMessage(deviceId)
.setPositiveButton(R.string.ok, null)
diff --git a/src/com/android/phone/TimeConsumingPreferenceActivity.java b/src/com/android/phone/TimeConsumingPreferenceActivity.java
index 8c5ae6d..caef176 100644
--- a/src/com/android/phone/TimeConsumingPreferenceActivity.java
+++ b/src/com/android/phone/TimeConsumingPreferenceActivity.java
@@ -84,7 +84,7 @@
|| id == FDN_CHECK_FAILURE || id == STK_CC_SS_TO_DIAL_ERROR
|| id == STK_CC_SS_TO_USSD_ERROR || id == STK_CC_SS_TO_SS_ERROR
|| id == STK_CC_SS_TO_DIAL_VIDEO_ERROR) {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ AlertDialog.Builder builder = FrameworksUtils.makeAlertDialogBuilder(this);
int msgId;
int titleId = R.string.error_updating_title;
diff --git a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
index 224a1f9..6bc71dc 100644
--- a/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
+++ b/src/com/android/phone/settings/PhoneAccountSettingsFragment.java
@@ -78,6 +78,9 @@
new SubscriptionManager.OnSubscriptionsChangedListener() {
@Override
public void onSubscriptionsChanged() {
+ if (getActivity() == null) {
+ return;
+ }
updateAccounts();
}
};
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index d4c926e..7681a02 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -17,6 +17,7 @@
package com.android.phone.settings;
import static android.net.ConnectivityManager.NetworkCallback;
+
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import android.content.ComponentName;
@@ -57,7 +58,6 @@
import android.telephony.CellSignalStrengthLte;
import android.telephony.CellSignalStrengthWcdma;
import android.telephony.DataSpecificRegistrationInfo;
-import android.telephony.data.NetworkSlicingConfig;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.PhysicalChannelConfig;
import android.telephony.RadioAccessFamily;
@@ -66,6 +66,7 @@
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyCallback;
import android.telephony.TelephonyManager;
+import android.telephony.data.NetworkSlicingConfig;
import android.text.TextUtils;
import android.util.Log;
import android.view.Menu;
@@ -102,8 +103,8 @@
import java.util.concurrent.Executor;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeoutException;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
/**
* Radio Information Class
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
old mode 100755
new mode 100644
index ce3cf01..ed07726
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -2707,6 +2707,10 @@
capabilities = changeBitmask(capabilities, CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL,
isLocalVideoSupported);
+ capabilities = changeBitmask(capabilities, CAPABILITY_REMOTE_PARTY_SUPPORTS_RTT,
+ (mOriginalConnectionCapabilities & Capability.SUPPORTS_RTT_REMOTE)
+ == Capability.SUPPORTS_RTT_REMOTE);
+
return capabilities;
}
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 766a75e..e637791 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -65,6 +65,7 @@
import com.android.internal.telephony.imsphone.ImsExternalCallTracker;
import com.android.internal.telephony.imsphone.ImsPhone;
import com.android.internal.telephony.imsphone.ImsPhoneConnection;
+import com.android.phone.FrameworksUtils;
import com.android.phone.MMIDialogActivity;
import com.android.phone.PhoneUtils;
import com.android.phone.R;
@@ -2459,7 +2460,7 @@
if (showDialog) {
Log.d(this, "Creating UT Data enable dialog");
String message = SuppServicesUiUtil.makeMessage(context, suppKey, phone);
- AlertDialog.Builder builder = new AlertDialog.Builder(context);
+ AlertDialog.Builder builder = FrameworksUtils.makeAlertDialogBuilder(context);
DialogInterface.OnClickListener networkSettingsClickListener =
new Dialog.OnClickListener() {
@Override
diff --git a/src/com/android/services/telephony/rcs/DelegateStateTracker.java b/src/com/android/services/telephony/rcs/DelegateStateTracker.java
index 321c7ba..29b8121 100644
--- a/src/com/android/services/telephony/rcs/DelegateStateTracker.java
+++ b/src/com/android/services/telephony/rcs/DelegateStateTracker.java
@@ -16,6 +16,10 @@
package com.android.services.telephony.rcs;
+import android.app.compat.CompatChanges;
+import android.compat.annotation.ChangeId;
+import android.compat.annotation.EnabledAfter;
+import android.os.Build;
import android.os.RemoteException;
import android.telephony.ims.DelegateRegistrationState;
import android.telephony.ims.FeatureTagState;
@@ -24,9 +28,13 @@
import android.telephony.ims.aidl.ISipDelegate;
import android.telephony.ims.aidl.ISipDelegateConnectionStateCallback;
import android.telephony.ims.stub.DelegateConnectionStateCallback;
+import android.util.ArraySet;
import android.util.LocalLog;
import android.util.Log;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.metrics.RcsStats;
+
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
@@ -40,21 +48,69 @@
private static final String LOG_TAG = "DelegateST";
private final int mSubId;
+ private final int mUid;
private final ISipDelegateConnectionStateCallback mAppStateCallback;
private final ISipDelegate mLocalDelegateImpl;
private final LocalLog mLocalLog = new LocalLog(SipTransportController.LOG_SIZE);
+ private final RcsStats mRcsStats;
+
private List<FeatureTagState> mDelegateDeniedTags;
private DelegateRegistrationState mLastRegState;
private boolean mCreatedCalled = false;
private int mRegistrationStateOverride = -1;
+ private CompatChangesFactory mCompatChangesFactory;
+ private Set<String> mDelegateSupportedTags;
- public DelegateStateTracker(int subId, ISipDelegateConnectionStateCallback appStateCallback,
- ISipDelegate localDelegateImpl) {
+ /**
+ * Interface for checking compatibility of apps
+ */
+ public interface CompatChangesFactory {
+ /**
+ * @param changeId The ID of the compatibility change.
+ * @param uid The UID of the app.
+ * @return {@code true} if the change is enabled for the current app.
+ */
+ boolean isChangeEnabled(long changeId, int uid);
+ }
+
+ /**
+ * For apps targeting Android T and above, support the REGISTERING state on APIs, such as
+ * {@code DelegateRegistrationState#addRegisteringFeatureTags} and
+ * {@code DelegateRegistrationState#getRegisteringFeatureTags}
+ * @hide
+ */
+ @ChangeId
+ @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.S)
+ @VisibleForTesting
+ public static final long SUPPORT_REGISTERING_DELEGATE_STATE = 205194548;
+
+ /**
+ * For apps targeting Android T and above, support the DEREGISTERING_REASON_LOSING_PDN state
+ * on APIs, such as {@code DelegateRegistrationState#addDeregisteringFeatureTag} and
+ * {@code DelegateRegistrationState#getDeregisteringFeatureTags}
+ * @hide
+ */
+ @ChangeId
+ @EnabledAfter(targetSdkVersion = Build.VERSION_CODES.S)
+ @VisibleForTesting
+ public static final long SUPPORT_DEREGISTERING_LOSING_PDN_STATE = 201522903;
+
+ public DelegateStateTracker(int subId, int uid,
+ ISipDelegateConnectionStateCallback appStateCallback,
+ ISipDelegate localDelegateImpl, RcsStats rcsStats) {
mSubId = subId;
+ mUid = uid;
mAppStateCallback = appStateCallback;
mLocalDelegateImpl = localDelegateImpl;
+ mRcsStats = rcsStats;
+ setCompatChangesFactory((changeId, uid1) -> CompatChanges.isChangeEnabled(changeId, uid1));
+ }
+
+ @VisibleForTesting
+ protected void setCompatChangesFactory(CompatChangesFactory factory) {
+ mCompatChangesFactory = factory;
}
/**
@@ -63,10 +119,13 @@
* Registration and state updates will be send via the
* {@link SipDelegateBinderConnection.StateCallback} callback implemented by this class as they
* arrive.
+ * @param supportedTags the tags supported by the SipTransportController and ImsService creating
+ * the SipDelegate. These tags will be used as a key for SipDelegate
+ * metrics.
* @param deniedTags The tags denied by the SipTransportController and ImsService creating the
* SipDelegate. These tags will need to be notified back to the IMS application.
*/
- public void sipDelegateConnected(Set<FeatureTagState> deniedTags) {
+ public void sipDelegateConnected(Set<String> supportedTags, Set<FeatureTagState> deniedTags) {
logi("SipDelegate connected with denied tags:" + deniedTags);
// From the IMS application perspective, we only call onCreated/onDestroyed once and
// provide the local implementation of ISipDelegate, which doesn't change, even though
@@ -74,6 +133,8 @@
if (!mCreatedCalled) {
mCreatedCalled = true;
notifySipDelegateCreated();
+ mDelegateSupportedTags = supportedTags;
+ mRcsStats.createSipDelegateStats(mSubId, mDelegateSupportedTags);
}
mRegistrationStateOverride = -1;
mDelegateDeniedTags = new ArrayList<>(deniedTags);
@@ -84,8 +145,8 @@
*
* This will trigger an override of the IMS application's registration state. All feature tags
* in the REGISTERED state will be overridden to move to the deregistering state specified until
- * a new SipDelegate was successfully created and {@link #sipDelegateConnected(Set)} was called
- * or it was destroyed and {@link #sipDelegateDestroyed(int)} was called.
+ * a new SipDelegate was successfully created and {@link #sipDelegateConnected(Set, Set)} was
+ * called or it was destroyed and {@link #sipDelegateDestroyed(int)} was called.
* @param deregisteringReason The new deregistering reason that all feature tags in the
* registered state should now report.
*/
@@ -115,6 +176,7 @@
mRegistrationStateOverride = -1;
try {
mAppStateCallback.onDestroyed(reason);
+ mRcsStats.onSipDelegateStats(mSubId, mDelegateSupportedTags, reason);
} catch (RemoteException e) {
logw("sipDelegateDestroyed: IMS application is dead: " + e);
}
@@ -127,6 +189,13 @@
*/
@Override
public void onRegistrationStateChanged(DelegateRegistrationState registrationState) {
+ if (!mCompatChangesFactory.isChangeEnabled(SUPPORT_DEREGISTERING_LOSING_PDN_STATE, mUid)) {
+ registrationState = overrideDeregisteringStateForCompatibility(registrationState);
+ }
+ if (!mCompatChangesFactory.isChangeEnabled(SUPPORT_REGISTERING_DELEGATE_STATE, mUid)) {
+ registrationState = overrideRegistrationForCompatibility(registrationState);
+ }
+
if (mRegistrationStateOverride > DelegateRegistrationState.DEREGISTERED_REASON_UNKNOWN) {
logi("onRegistrationStateChanged: overriding registered state to "
+ mRegistrationStateOverride);
@@ -141,6 +210,11 @@
logi("onRegistrationStateChanged: sending reg state " + registrationState);
try {
mAppStateCallback.onFeatureTagStatusChanged(registrationState, mDelegateDeniedTags);
+ Set<String> registeredFeatureTags = registrationState.getRegisteredFeatureTags();
+ mRcsStats.onSipTransportFeatureTagStats(mSubId,
+ new ArraySet<FeatureTagState>(mDelegateDeniedTags),
+ registrationState.getDeregisteredFeatureTags(),
+ registeredFeatureTags);
} catch (RemoteException e) {
logw("onRegistrationStateChanged: IMS application is dead: " + e);
}
@@ -186,6 +260,7 @@
private DelegateRegistrationState overrideRegistrationForDelegateChange(
int registerOverrideReason, DelegateRegistrationState state) {
Set<String> registeredFeatures = state.getRegisteredFeatureTags();
+ Set<String> registeringFeatures = state.getRegisteringFeatureTags();
DelegateRegistrationState.Builder overriddenState = new DelegateRegistrationState.Builder();
// keep other deregistering/deregistered tags the same.
for (FeatureTagState dereging : state.getDeregisteringFeatureTags()) {
@@ -196,13 +271,78 @@
overriddenState.addDeregisteredFeatureTag(dereged.getFeatureTag(),
dereged.getState());
}
- // Override REGISTERED only
+ // Override REGISTERING/REGISTERED
+ for (String ft : registeringFeatures) {
+ overriddenState.addDeregisteringFeatureTag(ft, registerOverrideReason);
+ }
for (String ft : registeredFeatures) {
overriddenState.addDeregisteringFeatureTag(ft, registerOverrideReason);
}
return overriddenState.build();
}
+ private DelegateRegistrationState overrideRegistrationForCompatibility(
+ DelegateRegistrationState state) {
+ Set<String> registeredFeatures = state.getRegisteredFeatureTags();
+ Set<String> registeringFeatures = state.getRegisteringFeatureTags();
+ DelegateRegistrationState.Builder overriddenState = new DelegateRegistrationState.Builder();
+ // keep other registered/deregistering/deregistered tags the same.
+ for (FeatureTagState dereging : state.getDeregisteringFeatureTags()) {
+ overriddenState.addDeregisteringFeatureTag(dereging.getFeatureTag(),
+ dereging.getState());
+ }
+ for (FeatureTagState dereged : state.getDeregisteredFeatureTags()) {
+ overriddenState.addDeregisteredFeatureTag(dereged.getFeatureTag(),
+ dereged.getState());
+ }
+ overriddenState.addRegisteredFeatureTags(registeredFeatures);
+
+ // move the REGISTERING state to the DEREGISTERED state.
+ for (String tag : registeringFeatures) {
+ overriddenState.addDeregisteredFeatureTag(tag,
+ DelegateRegistrationState.DEREGISTERED_REASON_NOT_REGISTERED);
+ }
+
+ return overriddenState.build();
+ }
+
+ /**
+ * @param state The RegistrationState reported by the SipDelegate to be sent to the
+ * IMS application .
+ * @return DEREGISTERING_REASON_PDN_CHANGE instead of DEREGISTERING_REASON_LOSING_PDN
+ * if the SUPPORT_DEREGISTERING_LOSING_PDN_STATE compat key is not enabled for the application
+ * consuming the registration change events.
+ */
+ private DelegateRegistrationState overrideDeregisteringStateForCompatibility(
+ DelegateRegistrationState state) {
+ Set<String> registeredFeatures = state.getRegisteredFeatureTags();
+ Set<String> registeringFeatures = state.getRegisteringFeatureTags();
+ DelegateRegistrationState.Builder overriddenState = new DelegateRegistrationState.Builder();
+
+ // keep other registered/registering/deregistered tags the same.
+ for (FeatureTagState dereged : state.getDeregisteredFeatureTags()) {
+ overriddenState.addDeregisteredFeatureTag(dereged.getFeatureTag(),
+ dereged.getState());
+ }
+ overriddenState.addRegisteredFeatureTags(registeredFeatures);
+ overriddenState.addRegisteringFeatureTags(registeringFeatures);
+
+ // change DEREGISTERING_REASON_LOSING_PDN to DEREGISTERING_REASON_PDN_CHANGE
+ for (FeatureTagState dereging : state.getDeregisteringFeatureTags()) {
+ overriddenState.addDeregisteringFeatureTag(dereging.getFeatureTag(),
+ getDeregisteringReasonForCompatibility(dereging.getState()));
+ }
+
+ return overriddenState.build();
+ }
+
+ private int getDeregisteringReasonForCompatibility(int reason) {
+ if (reason == DelegateRegistrationState.DEREGISTERING_REASON_LOSING_PDN) {
+ reason = DelegateRegistrationState.DEREGISTERING_REASON_PDN_CHANGE;
+ }
+ return reason;
+ }
+
private void notifySipDelegateCreated() {
try {
mAppStateCallback.onCreated(mLocalDelegateImpl);
diff --git a/src/com/android/services/telephony/rcs/RcsFeatureController.java b/src/com/android/services/telephony/rcs/RcsFeatureController.java
index 7834903..cc1a2cc 100644
--- a/src/com/android/services/telephony/rcs/RcsFeatureController.java
+++ b/src/com/android/services/telephony/rcs/RcsFeatureController.java
@@ -33,6 +33,7 @@
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.imsphone.ImsRegistrationCallbackHelper;
import com.android.internal.util.IndentingPrintWriter;
+import com.android.phone.ImsStateCallbackController;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -139,6 +140,8 @@
// ImsService is gone.
updateConnectionStatus(manager);
setupConnectionToService(manager);
+ ImsStateCallbackController.getInstance()
+ .notifyExternalRcsStateChanged(mSlotId, true, true);
} catch (ImsException e) {
updateConnectionStatus(null /*manager*/);
// Use deprecated Exception for compatibility.
diff --git a/src/com/android/services/telephony/rcs/SipDelegateController.java b/src/com/android/services/telephony/rcs/SipDelegateController.java
index 8cc70a4..860a6d9 100644
--- a/src/com/android/services/telephony/rcs/SipDelegateController.java
+++ b/src/com/android/services/telephony/rcs/SipDelegateController.java
@@ -34,6 +34,7 @@
import android.util.Pair;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.metrics.RcsStats;
import com.android.internal.util.IndentingPrintWriter;
import java.io.PrintWriter;
@@ -77,6 +78,7 @@
}
private final int mSubId;
+ private final int mUid;
private final String mPackageName;
private final DelegateRequest mInitialRequest;
private final ScheduledExecutorService mExecutorService;
@@ -88,12 +90,13 @@
private DelegateBinderStateManager mBinderConnection;
private Set<String> mTrackedFeatureTags;
- public SipDelegateController(int subId, DelegateRequest initialRequest, String packageName,
- ISipTransport transportImpl, IImsRegistration registrationImpl,
+ public SipDelegateController(int subId, int uid, DelegateRequest initialRequest,
+ String packageName, ISipTransport transportImpl, IImsRegistration registrationImpl,
ScheduledExecutorService executorService,
ISipDelegateConnectionStateCallback stateCallback,
ISipDelegateMessageCallback messageCallback) {
mSubId = subId;
+ mUid = uid;
mPackageName = packageName;
mInitialRequest = initialRequest;
mExecutorService = executorService;
@@ -101,20 +104,22 @@
mMessageTransportWrapper = new MessageTransportWrapper(mSubId, executorService,
messageCallback);
- mDelegateStateTracker = new DelegateStateTracker(mSubId, stateCallback,
- mMessageTransportWrapper.getDelegateConnection());
+
+ mDelegateStateTracker = new DelegateStateTracker(mSubId, mUid, stateCallback,
+ mMessageTransportWrapper.getDelegateConnection(), RcsStats.getInstance());
}
/**
* Inject dependencies for testing only.
*/
@VisibleForTesting
- public SipDelegateController(int subId, DelegateRequest initialRequest, String packageName,
- ScheduledExecutorService executorService,
+ public SipDelegateController(int subId, int uid, DelegateRequest initialRequest,
+ String packageName, ScheduledExecutorService executorService,
MessageTransportWrapper messageTransportWrapper,
DelegateStateTracker delegateStateTracker,
DelegateBinderStateManager.Factory connectionFactory) {
mSubId = subId;
+ mUid = uid;
mInitialRequest = initialRequest;
mPackageName = packageName;
mExecutorService = executorService;
@@ -191,7 +196,7 @@
.collect(Collectors.toSet()));
mMessageTransportWrapper.openTransport(resultPair.first, allowedTags,
resultPair.second);
- mDelegateStateTracker.sipDelegateConnected(resultPair.second);
+ mDelegateStateTracker.sipDelegateConnected(allowedTags, resultPair.second);
return true;
});
}
diff --git a/src/com/android/services/telephony/rcs/SipSessionTracker.java b/src/com/android/services/telephony/rcs/SipSessionTracker.java
index 5ab482f..68e3065 100644
--- a/src/com/android/services/telephony/rcs/SipSessionTracker.java
+++ b/src/com/android/services/telephony/rcs/SipSessionTracker.java
@@ -24,6 +24,7 @@
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.SipMessageParsingUtils;
+import com.android.internal.telephony.metrics.RcsStats;
import com.android.internal.util.IndentingPrintWriter;
import java.io.PrintWriter;
@@ -66,6 +67,14 @@
// associated pending operation.
private final ArrayMap<String, Runnable> mPendingAck = new ArrayMap<>();
+ private final RcsStats mRcsStats;
+ int mSubId;
+
+ public SipSessionTracker(int subId, RcsStats rcsStats) {
+ mSubId = subId;
+ mRcsStats = rcsStats;
+ }
+
/**
* Filter a SIP message to determine if it will result in a new SIP dialog. This will need to be
* successfully acknowledged by the remote IMS stack using
@@ -73,10 +82,10 @@
*
* @param message The Incoming SIP message.
*/
- public void filterSipMessage(SipMessage message) {
+ public void filterSipMessage(int direction, SipMessage message) {
final Runnable r;
if (startsEarlyDialog(message)) {
- r = getCreateDialogRunnable(message);
+ r = getCreateDialogRunnable(direction, message);
} else if (closesDialog(message)) {
r = getCloseDialogRunnable(message);
} else if (SipMessageParsingUtils.isSipResponse(message.getStartLine())) {
@@ -137,6 +146,8 @@
if (dialogsToCleanup.isEmpty()) return;
logi("Cleanup dialogs associated with call id: " + callId);
for (SipDialog d : dialogsToCleanup) {
+ mRcsStats.onSipTransportSessionClosed(mSubId, callId, 0,
+ d.getState() == d.STATE_CLOSED);
d.close();
logi("Dialog closed: " + d);
}
@@ -197,6 +208,9 @@
* Clears all tracked sessions.
*/
public void clearAllSessions() {
+ for (SipDialog d : mTrackedDialogs) {
+ mRcsStats.onSipTransportSessionClosed(mSubId, d.getCallId(), 0, false);
+ }
mTrackedDialogs.clear();
mPendingAck.clear();
}
@@ -262,7 +276,7 @@
return SIP_CLOSE_DIALOG_REQUEST_METHOD.equalsIgnoreCase(startLineSegments[0]);
}
- private Runnable getCreateDialogRunnable(SipMessage m) {
+ private Runnable getCreateDialogRunnable(int direction, SipMessage m) {
return () -> {
List<SipDialog> duplicateDialogs = mTrackedDialogs.stream()
.filter(d -> d.getCallId().equals(m.getCallIdParameter()))
@@ -273,6 +287,10 @@
return;
}
SipDialog dialog = SipDialog.fromSipMessage(m);
+ String[] startLineSegments =
+ SipMessageParsingUtils.splitStartLineAndVerify(m.getStartLine());
+ mRcsStats.earlySipTransportSession(startLineSegments[0], dialog.getCallId(),
+ direction);
logi("Starting new SipDialog: " + dialog);
mTrackedDialogs.add(dialog);
};
@@ -285,6 +303,7 @@
.collect(Collectors.toList());
if (dialogsToClose.isEmpty()) return;
logi("Closing dialogs associated with: " + m);
+ mRcsStats.onSipTransportSessionClosed(mSubId, m.getCallIdParameter(), 0, true);
for (SipDialog d : dialogsToClose) {
d.close();
logi("Dialog closed: " + d);
@@ -344,11 +363,13 @@
if (statusCode <= 100) return;
// If 300+, then this dialog has received an error response and should move to closed state.
if (statusCode >= 300) {
+ mRcsStats.onSipTransportSessionClosed(mSubId, m.getCallIdParameter(), statusCode, true);
d.close();
return;
}
if (toTag == null) logw("updateSipDialogState: No to tag for message: " + m);
if (statusCode >= 200) {
+ mRcsStats.confirmedSipTransportSession(m.getCallIdParameter(), statusCode);
d.confirm(toTag);
return;
}
diff --git a/src/com/android/services/telephony/rcs/SipTransportController.java b/src/com/android/services/telephony/rcs/SipTransportController.java
index 709e142..0aa3aa0 100644
--- a/src/com/android/services/telephony/rcs/SipTransportController.java
+++ b/src/com/android/services/telephony/rcs/SipTransportController.java
@@ -243,9 +243,9 @@
@VisibleForTesting
public interface SipDelegateControllerFactory {
/** See {@link SipDelegateController} */
- SipDelegateController create(int subId, DelegateRequest initialRequest, String packageName,
- ISipTransport sipTransportImpl, IImsRegistration registrationImpl,
- ScheduledExecutorService executorService,
+ SipDelegateController create(int subId, int uid, DelegateRequest initialRequest,
+ String packageName, ISipTransport sipTransportImpl,
+ IImsRegistration registrationImpl, ScheduledExecutorService executorService,
ISipDelegateConnectionStateCallback stateCallback,
ISipDelegateMessageCallback messageCallback);
}
@@ -364,17 +364,18 @@
* {@link ISipDelegateConnectionStateCallback#onCreated(ISipDelegate)} must be called with
* the AIDL instance corresponding to the remote {@link SipDelegate}.
* @param subId the subId associated with the request.
+ * @param uid the uid associated with the request
* @param request The request parameters used to create the {@link SipDelegate}.
* @param delegateState The {@link DelegateConnectionStateCallback} Binder connection.
* @param delegateMessage The {@link DelegateConnectionMessageCallback} Binder Connection
* @throws ImsException if the request to create the {@link SipDelegate} did not complete.
*/
- public void createSipDelegate(int subId, DelegateRequest request, String packageName,
+ public void createSipDelegate(int subId, int uid, DelegateRequest request, String packageName,
ISipDelegateConnectionStateCallback delegateState,
ISipDelegateMessageCallback delegateMessage) throws ImsException {
logi("createSipDelegate: request= " + request + ", packageName= " + packageName);
CompletableFuture<ImsException> result = new CompletableFuture<>();
- mExecutorService.submit(() -> createSipDelegateInternal(subId, request, packageName,
+ mExecutorService.submit(() -> createSipDelegateInternal(subId, uid, request, packageName,
delegateState,
// Capture any ImsExceptions generated during the process.
delegateMessage, result::complete));
@@ -423,8 +424,8 @@
return result;
}
- private void createSipDelegateInternal(int subId, DelegateRequest request, String packageName,
- ISipDelegateConnectionStateCallback delegateState,
+ private void createSipDelegateInternal(int subId, int uid, DelegateRequest request,
+ String packageName, ISipDelegateConnectionStateCallback delegateState,
ISipDelegateMessageCallback delegateMessage,
Consumer<ImsException> startedErrorConsumer) {
ISipTransport transport;
@@ -450,8 +451,9 @@
return;
}
- SipDelegateController c = mDelegateControllerFactory.create(subId, request, packageName,
- transport, registration, mExecutorService, delegateState, delegateMessage);
+ SipDelegateController c = mDelegateControllerFactory.create(subId, uid, request,
+ packageName, transport, registration, mExecutorService, delegateState,
+ delegateMessage);
logi("createSipDelegateInternal: request= " + request + ", packageName= " + packageName
+ ", controller created: " + c);
addPendingCreateAndEvaluate(c);
diff --git a/src/com/android/services/telephony/rcs/TelephonyRcsService.java b/src/com/android/services/telephony/rcs/TelephonyRcsService.java
index 034382c..e72b0ab 100644
--- a/src/com/android/services/telephony/rcs/TelephonyRcsService.java
+++ b/src/com/android/services/telephony/rcs/TelephonyRcsService.java
@@ -33,6 +33,7 @@
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.PhoneConfigurationManager;
import com.android.internal.util.IndentingPrintWriter;
+import com.android.phone.ImsStateCallbackController;
import com.android.phone.R;
import java.io.FileDescriptor;
@@ -310,6 +311,9 @@
}
// Only start the connection procedure if we have active features.
if (c.hasActiveFeatures()) c.connect();
+
+ ImsStateCallbackController.getInstance()
+ .notifyExternalRcsStateChanged(slotId, false, c.hasActiveFeatures());
}
/**
diff --git a/src/com/android/services/telephony/rcs/TransportSipMessageValidator.java b/src/com/android/services/telephony/rcs/TransportSipMessageValidator.java
index 777026c..3b1b26d 100644
--- a/src/com/android/services/telephony/rcs/TransportSipMessageValidator.java
+++ b/src/com/android/services/telephony/rcs/TransportSipMessageValidator.java
@@ -16,6 +16,9 @@
package com.android.services.telephony.rcs;
+import static com.android.internal.telephony.TelephonyStatsLog.SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__INCOMING;
+import static com.android.internal.telephony.TelephonyStatsLog.SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__OUTGOING;
+
import android.telephony.ims.DelegateRegistrationState;
import android.telephony.ims.FeatureTagState;
import android.telephony.ims.SipDelegateConfiguration;
@@ -26,6 +29,8 @@
import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.SipMessageParsingUtils;
+import com.android.internal.telephony.metrics.RcsStats;
import com.android.internal.util.IndentingPrintWriter;
import com.android.services.telephony.rcs.validator.IncomingTransportStateValidator;
import com.android.services.telephony.rcs.validator.MalformedSipMessageValidator;
@@ -145,11 +150,13 @@
private PendingTask mPendingClose;
private PendingRegCleanupTask mPendingRegCleanup;
private Consumer<Set<String>> mRegistrationAppliedConsumer;
+ private final RcsStats mRcsStats;
public TransportSipMessageValidator(int subId, ScheduledExecutorService executor) {
mSubId = subId;
mExecutor = executor;
- mSipSessionTracker = new SipSessionTracker();
+ mRcsStats = RcsStats.getInstance();
+ mSipSessionTracker = new SipSessionTracker(subId, mRcsStats);
mOutgoingTransportStateValidator = new OutgoingTransportStateValidator(mSipSessionTracker);
mIncomingTransportStateValidator = new IncomingTransportStateValidator();
mOutgoingMessageValidator = new MalformedSipMessageValidator().andThen(
@@ -163,7 +170,7 @@
public TransportSipMessageValidator(int subId, ScheduledExecutorService executor,
SipSessionTracker sipSessionTracker,
OutgoingTransportStateValidator outgoingStateValidator,
- IncomingTransportStateValidator incomingStateValidator) {
+ IncomingTransportStateValidator incomingStateValidator, RcsStats rcsStats) {
mSubId = subId;
mExecutor = executor;
mSipSessionTracker = sipSessionTracker;
@@ -171,6 +178,7 @@
mIncomingTransportStateValidator = incomingStateValidator;
mOutgoingMessageValidator = mOutgoingTransportStateValidator;
mIncomingMessageValidator = mIncomingTransportStateValidator;
+ mRcsStats = rcsStats;
}
/**
@@ -365,7 +373,11 @@
}
ValidationResult result = mOutgoingMessageValidator.validate(message);
logi("verifyOutgoingMessage: " + result + ", message=" + message);
- if (result.isValidated) mSipSessionTracker.filterSipMessage(message);
+ if (result.isValidated) {
+ mSipSessionTracker.filterSipMessage(
+ SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__OUTGOING, message);
+ }
+ updateForMetrics(SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__OUTGOING, message, result);
return result;
}
@@ -378,7 +390,11 @@
public ValidationResult verifyIncomingMessage(SipMessage message) {
ValidationResult result = mIncomingMessageValidator.validate(message);
logi("verifyIncomingMessage: " + result + ", message=" + message);
- if (result.isValidated) mSipSessionTracker.filterSipMessage(message);
+ if (result.isValidated) {
+ mSipSessionTracker.filterSipMessage(
+ SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__INCOMING, message);
+ }
+ updateForMetrics(SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__INCOMING, message, result);
return result;
}
@@ -539,6 +555,28 @@
.collect(Collectors.toSet());
}
+ private void updateForMetrics(int direction, SipMessage m, ValidationResult result) {
+ String[] startLineSegments = SipMessageParsingUtils
+ .splitStartLineAndVerify(m.getStartLine());
+ if (SipMessageParsingUtils.isSipRequest(m.getStartLine())) {
+ if (result.isValidated) {
+ // SipMessage add to list for Metrics stats
+ mRcsStats.onSipMessageRequest(m.getCallIdParameter(), startLineSegments[0],
+ direction);
+ } else {
+ //Message sending fail and there is no response.
+ mRcsStats.invalidatedMessageResult(mSubId, startLineSegments[0], direction,
+ result.restrictedReason);
+ }
+ } else if (SipMessageParsingUtils.isSipResponse(m.getStartLine())) {
+ int statusCode = Integer.parseInt(startLineSegments[1]);
+ mRcsStats.onSipMessageResponse(mSubId, m.getCallIdParameter(), statusCode,
+ result.restrictedReason);
+ } else {
+ logw("Message is Restricted");
+ }
+ }
+
private void logi(String log) {
Log.i(SipTransportController.LOG_TAG, LOG_TAG + "[" + mSubId + "] " + log);
mLocalLog.log("[I] " + log);
diff --git a/src/com/android/services/telephony/rcs/UceControllerManager.java b/src/com/android/services/telephony/rcs/UceControllerManager.java
index 995d685..02ae048 100644
--- a/src/com/android/services/telephony/rcs/UceControllerManager.java
+++ b/src/com/android/services/telephony/rcs/UceControllerManager.java
@@ -206,10 +206,11 @@
*
* @throws ImsException if the ImsService connected to this controller is currently down.
*/
- public @PublishState int getUcePublishState() throws ImsException {
+ public @PublishState int getUcePublishState(boolean isSupportPublishingState)
+ throws ImsException {
Future<Integer> future = mExecutorService.submit(() -> {
checkUceControllerState();
- return mUceController.getUcePublishState();
+ return mUceController.getUcePublishState(isSupportPublishingState);
});
try {
@@ -390,10 +391,11 @@
*
* @throws ImsException if the ImsService connected to this controller is currently down.
*/
- public void registerPublishStateCallback(IRcsUcePublishStateCallback c) throws ImsException {
+ public void registerPublishStateCallback(IRcsUcePublishStateCallback c,
+ boolean supportPublishingState) throws ImsException {
Future future = mExecutorService.submit(() -> {
checkUceControllerState();
- mUceController.registerPublishStateCallback(c);
+ mUceController.registerPublishStateCallback(c, supportPublishingState);
return true;
});
diff --git a/testapps/TestRcsApp/aosp_test_rcsclient/src/com/android/libraries/rcs/simpleclient/protocol/sip/SipUtils.java b/testapps/TestRcsApp/aosp_test_rcsclient/src/com/android/libraries/rcs/simpleclient/protocol/sip/SipUtils.java
index 13fa53a..942588a 100644
--- a/testapps/TestRcsApp/aosp_test_rcsclient/src/com/android/libraries/rcs/simpleclient/protocol/sip/SipUtils.java
+++ b/testapps/TestRcsApp/aosp_test_rcsclient/src/com/android/libraries/rcs/simpleclient/protocol/sip/SipUtils.java
@@ -183,8 +183,8 @@
// Set a Security-Verify header if exist.
String securityVerify = configuration.getSecurityVerifyHeader();
if (!TextUtils.isEmpty(securityVerify)) {
- request.setHeader(
- sHeaderFactory.createHeader(SecurityVerifyHeader.NAME, securityVerify));
+ request.setHeaders(sHeaderFactory.createHeaders(SecurityVerifyHeader.NAME
+ + ":" + securityVerify.trim()));
}
// Add Route headers.
diff --git a/tests/Android.bp b/tests/Android.bp
index c180476..083d64d 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -50,7 +50,8 @@
"telephony-common-testing",
"testng",
"truth-prebuilt",
- "testables",
+ "testables",
+ "platform-compat-test-rules",
],
test_suites: [
diff --git a/tests/AndroidTest.xml b/tests/AndroidTest.xml
index 4188ee2..f616872 100644
--- a/tests/AndroidTest.xml
+++ b/tests/AndroidTest.xml
@@ -14,6 +14,9 @@
limitations under the License.
-->
<configuration description="Run Phone application tests.">
+ <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer">
+ <option name="force-root" value="true" />
+ </target_preparer>
<option name="test-suite-tag" value="apct" />
<option name="test-suite-tag" value="apct-instrumentation" />
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
@@ -26,5 +29,6 @@
<option name="package" value="com.android.phone.tests" />
<option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
<option name="hidden-api-checks" value="false"/>
+ <option name="test-filter-dir" value="/data/data/com.android.phone" />
</test>
</configuration>
diff --git a/tests/src/com/android/phone/ImsStateCallbackControllerTest.java b/tests/src/com/android/phone/ImsStateCallbackControllerTest.java
new file mode 100644
index 0000000..c493f6b
--- /dev/null
+++ b/tests/src/com/android/phone/ImsStateCallbackControllerTest.java
@@ -0,0 +1,895 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import static android.telephony.ims.ImsStateCallback.REASON_IMS_SERVICE_DISCONNECTED;
+import static android.telephony.ims.ImsStateCallback.REASON_IMS_SERVICE_NOT_READY;
+import static android.telephony.ims.ImsStateCallback.REASON_NO_IMS_SERVICE_CONFIGURED;
+import static android.telephony.ims.ImsStateCallback.REASON_SUBSCRIPTION_INACTIVE;
+import static android.telephony.ims.feature.ImsFeature.FEATURE_MMTEL;
+import static android.telephony.ims.feature.ImsFeature.FEATURE_RCS;
+
+import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_DISCONNECTED;
+import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_IMS_UNSUPPORTED;
+import static com.android.ims.FeatureConnector.UNAVAILABLE_REASON_NOT_READY;
+
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertTrue;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.os.Looper;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyRegistryManager;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.testing.TestableLooper;
+import android.util.Log;
+
+import com.android.ims.FeatureConnector;
+import com.android.ims.ImsManager;
+import com.android.ims.RcsFeatureManager;
+import com.android.internal.telephony.IImsStateCallback;
+import com.android.internal.telephony.ITelephony;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.ims.ImsResolver;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
+import java.lang.reflect.Field;
+import java.util.concurrent.Executor;
+
+/**
+ * Unit tests for RcsProvisioningMonitor
+ */
+public class ImsStateCallbackControllerTest {
+ private static final String TAG = "ImsStateCallbackControllerTest";
+ private static final int FAKE_SUB_ID_BASE = 0x0FFFFFF0;
+
+ private static final int SLOT_0 = 0;
+ private static final int SLOT_1 = 1;
+
+ private static final int SLOT_0_SUB_ID = 1;
+ private static final int SLOT_1_SUB_ID = 2;
+ private static final int SLOT_2_SUB_ID = 3;
+
+ private ImsStateCallbackController mImsStateCallbackController;
+ private Handler mHandler;
+ private HandlerThread mHandlerThread;
+ private TestableLooper mLooper;
+ @Mock private SubscriptionManager mSubscriptionManager;
+ private SubscriptionManager.OnSubscriptionsChangedListener mSubChangedListener;
+ @Mock private TelephonyRegistryManager mTelephonyRegistryManager;
+ @Mock private ITelephony.Stub mITelephony;
+ @Mock private RcsFeatureManager mRcsFeatureManager;
+ @Mock private ImsManager mMmTelFeatureManager;
+ @Mock private ImsStateCallbackController.MmTelFeatureConnectorFactory mMmTelFeatureFactory;
+ @Mock private ImsStateCallbackController.RcsFeatureConnectorFactory mRcsFeatureFactory;
+ @Mock private FeatureConnector<ImsManager> mMmTelFeatureConnectorSlot0;
+ @Mock private FeatureConnector<ImsManager> mMmTelFeatureConnectorSlot1;
+ @Mock private FeatureConnector<RcsFeatureManager> mRcsFeatureConnectorSlot0;
+ @Mock private FeatureConnector<RcsFeatureManager> mRcsFeatureConnectorSlot1;
+ @Captor ArgumentCaptor<FeatureConnector.Listener<ImsManager>> mMmTelConnectorListenerSlot0;
+ @Captor ArgumentCaptor<FeatureConnector.Listener<ImsManager>> mMmTelConnectorListenerSlot1;
+ @Captor ArgumentCaptor<FeatureConnector.Listener<RcsFeatureManager>> mRcsConnectorListenerSlot0;
+ @Captor ArgumentCaptor<FeatureConnector.Listener<RcsFeatureManager>> mRcsConnectorListenerSlot1;
+ @Mock private PhoneGlobals mPhone;
+ @Mock ImsStateCallbackController.PhoneFactoryProxy mPhoneFactoryProxy;
+ @Mock Phone mPhoneSlot0;
+ @Mock Phone mPhoneSlot1;
+ @Mock private IBinder mBinder0;
+ @Mock private IBinder mBinder1;
+ @Mock private IBinder mBinder2;
+ @Mock private IBinder mBinder3;
+ @Mock private IImsStateCallback mCallback0;
+ @Mock private IImsStateCallback mCallback1;
+ @Mock private IImsStateCallback mCallback2;
+ @Mock private IImsStateCallback mCallback3;
+ @Mock private ImsResolver mImsResolver;
+
+ private Executor mExecutor = new Executor() {
+ @Override
+ public void execute(Runnable r) {
+ r.run();
+ }
+ };
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+
+ when(mPhone.getMainExecutor()).thenReturn(mExecutor);
+ when(mPhone.getSystemServiceName(eq(SubscriptionManager.class)))
+ .thenReturn(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
+ when(mPhone.getSystemService(eq(Context.TELEPHONY_SUBSCRIPTION_SERVICE)))
+ .thenReturn(mSubscriptionManager);
+ when(mPhone.getSystemServiceName(eq(TelephonyRegistryManager.class)))
+ .thenReturn(Context.TELEPHONY_REGISTRY_SERVICE);
+ when(mPhone.getSystemService(eq(Context.TELEPHONY_REGISTRY_SERVICE)))
+ .thenReturn(mTelephonyRegistryManager);
+ when(mPhoneFactoryProxy.getPhone(eq(0))).thenReturn(mPhoneSlot0);
+ when(mPhoneFactoryProxy.getPhone(eq(1))).thenReturn(mPhoneSlot1);
+ when(mPhoneSlot0.getSubId()).thenReturn(SLOT_0_SUB_ID);
+ when(mPhoneSlot1.getSubId()).thenReturn(SLOT_1_SUB_ID);
+
+ when(mCallback0.asBinder()).thenReturn(mBinder0);
+ when(mCallback1.asBinder()).thenReturn(mBinder1);
+ when(mCallback2.asBinder()).thenReturn(mBinder2);
+ when(mCallback3.asBinder()).thenReturn(mBinder3);
+
+ // slot 0
+ when(mImsResolver.isImsServiceConfiguredForFeature(eq(0), eq(FEATURE_MMTEL)))
+ .thenReturn(true);
+ when(mImsResolver.isImsServiceConfiguredForFeature(eq(0), eq(FEATURE_RCS)))
+ .thenReturn(true);
+
+ // slot 1
+ when(mImsResolver.isImsServiceConfiguredForFeature(eq(1), eq(FEATURE_MMTEL)))
+ .thenReturn(true);
+ when(mImsResolver.isImsServiceConfiguredForFeature(eq(1), eq(FEATURE_RCS)))
+ .thenReturn(true);
+
+ doAnswer(new Answer<Void>() {
+ @Override
+ public Void answer(InvocationOnMock invocation) throws Throwable {
+ mSubChangedListener = (SubscriptionManager.OnSubscriptionsChangedListener)
+ invocation.getArguments()[0];
+ return null;
+ }
+ }).when(mTelephonyRegistryManager).addOnSubscriptionsChangedListener(
+ any(SubscriptionManager.OnSubscriptionsChangedListener.class),
+ any());
+
+ mHandlerThread = new HandlerThread("ImsStateCallbackControllerTest");
+ mHandlerThread.start();
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ if (mImsStateCallbackController != null) {
+ mImsStateCallbackController.destroy();
+ mImsStateCallbackController = null;
+ }
+
+ if (mLooper != null) {
+ mLooper.destroy();
+ mLooper = null;
+ }
+ }
+
+ @Test
+ @SmallTest
+ public void testMmTelRegisterThenUnregisterCallback() throws Exception {
+ createController(1);
+
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+ processAllMessages();
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+ processAllMessages();
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ }
+
+ @Test
+ @SmallTest
+ public void testMmTelConnectionUnavailable() throws Exception {
+ createController(1);
+
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+ processAllMessages();
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+ mMmTelConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+ processAllMessages();
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+
+ mMmTelConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_IMS_UNSUPPORTED);
+ processAllMessages();
+ verify(mCallback0, times(1)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+ processAllMessages();
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ }
+
+ @Test
+ @SmallTest
+ public void testMmTelConnectionReady() throws Exception {
+ createController(1);
+
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+ processAllMessages();
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+ verify(mCallback0, times(0)).onAvailable();
+
+ mMmTelConnectorListenerSlot0.getValue().connectionReady(null);
+ processAllMessages();
+ verify(mCallback0, atLeastOnce()).onAvailable();
+
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+ processAllMessages();
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ }
+
+ @Test
+ @SmallTest
+ public void testMmTelIgnoreDuplicatedConsecutiveReason() throws Exception {
+ createController(1);
+
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+ processAllMessages();
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+ mMmTelConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_IMS_UNSUPPORTED);
+ processAllMessages();
+ verify(mCallback0, times(1)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+ mMmTelConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_IMS_UNSUPPORTED);
+ processAllMessages();
+ verify(mCallback0, times(1)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+ processAllMessages();
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ }
+
+ @Test
+ @SmallTest
+ public void testRcsRegisterThenUnregisterCallback() throws Exception {
+ createController(1);
+
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_RCS, mCallback0, "callback0");
+ processAllMessages();
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+ processAllMessages();
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ }
+
+ @Test
+ @SmallTest
+ public void testRcsConnectionUnavailable() throws Exception {
+ createController(1);
+
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_RCS, mCallback0, "callback0");
+ processAllMessages();
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+ // TelephonyRcsService notifying active features
+ mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, false, true);
+ processAllMessages();
+
+ mRcsConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+ processAllMessages();
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+
+ mRcsConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_IMS_UNSUPPORTED);
+ processAllMessages();
+ verify(mCallback0, times(1)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+ processAllMessages();
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ }
+
+ @Test
+ @SmallTest
+ public void testRcsConnectionReady() throws Exception {
+ createController(1);
+
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_RCS, mCallback0, "callback0");
+ processAllMessages();
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+ // TelephonyRcsService notifying active features
+ mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, false, true);
+ processAllMessages();
+
+ mRcsConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+ processAllMessages();
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+
+ mRcsConnectorListenerSlot0.getValue().connectionReady(null);
+ processAllMessages();
+ verify(mCallback0, times(0)).onAvailable();
+
+ // RcsFeatureController notifying STATE_READY
+ mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, true, true);
+ processAllMessages();
+ verify(mCallback0, times(1)).onAvailable();
+
+ mRcsConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_DISCONNECTED);
+ processAllMessages();
+ verify(mCallback0, times(2)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+ mRcsConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+ processAllMessages();
+ verify(mCallback0, times(2)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+
+ // RcsFeatureController notifying STATE_READY
+ mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, true, true);
+ processAllMessages();
+ verify(mCallback0, times(1)).onAvailable();
+
+ mRcsConnectorListenerSlot0.getValue().connectionReady(null);
+ processAllMessages();
+ verify(mCallback0, times(2)).onAvailable();
+
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+ processAllMessages();
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ }
+
+ @Test
+ @SmallTest
+ public void testRcsHasNoActiveFeature() throws Exception {
+ createController(1);
+
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_RCS, mCallback0, "callback0");
+ processAllMessages();
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+ // TelephonyRcsService notifying NO active feature
+ mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, false, false);
+ processAllMessages();
+ verify(mCallback0, times(1)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+ mRcsConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+ processAllMessages();
+ verify(mCallback0, times(0)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+
+ mRcsConnectorListenerSlot0.getValue().connectionReady(null);
+ processAllMessages();
+ verify(mCallback0, times(0)).onAvailable();
+
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+ processAllMessages();
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ }
+
+ @Test
+ @SmallTest
+ public void testRcsIgnoreDuplicatedConsecutiveReason() throws Exception {
+ createController(1);
+
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_RCS, mCallback0, "callback0");
+ processAllMessages();
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+ // TelephonyRcsService notifying active features
+ mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, false, true);
+ processAllMessages();
+
+ mRcsConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+ processAllMessages();
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+
+ mRcsConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+ processAllMessages();
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+ processAllMessages();
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ }
+
+ @Test
+ @SmallTest
+ public void testCallbackRemovedWhenSubInfoChanged() throws Exception {
+ createController(2);
+
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_1_SUB_ID, FEATURE_RCS, mCallback1, "callback1");
+ processAllMessages();
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback1));
+
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+ verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+ makeFakeActiveSubIds(0);
+ mExecutor.execute(() -> mSubChangedListener.onSubscriptionsChanged());
+ processAllMessages();
+
+ verify(mCallback0, times(1)).onUnavailable(REASON_SUBSCRIPTION_INACTIVE);
+ verify(mCallback1, times(1)).onUnavailable(REASON_SUBSCRIPTION_INACTIVE);
+
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback1));
+ }
+
+ @Test
+ @SmallTest
+ public void testCarrierConfigurationChanged() throws Exception {
+ createController(2);
+
+ when(mImsResolver.isImsServiceConfiguredForFeature(eq(1), eq(FEATURE_MMTEL)))
+ .thenReturn(false);
+
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_1_SUB_ID, FEATURE_MMTEL, mCallback1, "callback1");
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_1_SUB_ID, FEATURE_RCS, mCallback2, "callback2");
+ processAllMessages();
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback1));
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback2));
+
+ // check initial reason
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+ verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+ verify(mCallback2, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+ verify(mCallback0, times(0)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+ verify(mCallback1, times(0)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+ verify(mCallback2, times(0)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+ // ensure only one reason reported until now
+ verify(mCallback0, times(1)).onUnavailable(anyInt());
+ verify(mCallback1, times(1)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+ // state change in RCS for slot 0
+ mRcsConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+
+ // ensure there is no change, since callbacks are not interested RCS on slot 0
+ verify(mCallback0, times(1)).onUnavailable(anyInt());
+ verify(mCallback1, times(1)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+ // carrier config changed, no MMTEL package for slot 1
+ mImsStateCallbackController.notifyCarrierConfigChanged(SLOT_1);
+ processAllMessages();
+
+ // only the callback for MMTEL of slot 1 received the reason
+ verify(mCallback0, times(0)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+ verify(mCallback1, times(1)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+ verify(mCallback2, times(0)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+ // ensure no other callbacks
+ verify(mCallback0, times(1)).onUnavailable(anyInt());
+ verify(mCallback1, times(2)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+ mMmTelConnectorListenerSlot1.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+ mMmTelConnectorListenerSlot1.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_DISCONNECTED);
+
+ // resons except REASON_NO_IMS_SERVICE_CONFIGURED are discared
+ verify(mCallback0, times(1)).onUnavailable(anyInt());
+ verify(mCallback1, times(2)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+ // IMS package for MMTEL of slot 1 is added
+ when(mImsResolver.isImsServiceConfiguredForFeature(eq(1), eq(FEATURE_MMTEL)))
+ .thenReturn(true);
+ mImsStateCallbackController.notifyCarrierConfigChanged(SLOT_1);
+ processAllMessages();
+
+ // ensure the callback to MMTEL of slot 1 only received REASON_IMS_SERVICE_DISCONNECTED
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+ verify(mCallback1, times(2)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+ verify(mCallback2, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+ // ensure no other reason repored
+ verify(mCallback0, times(1)).onUnavailable(anyInt());
+ verify(mCallback1, times(3)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+ // carrier config changed, no MMTEL package for slot 1
+ when(mImsResolver.isImsServiceConfiguredForFeature(eq(1), eq(FEATURE_MMTEL)))
+ .thenReturn(false);
+ mImsStateCallbackController.notifyCarrierConfigChanged(SLOT_1);
+ mImsStateCallbackController.notifyCarrierConfigChanged(SLOT_1);
+ processAllMessages();
+ // only the callback for MMTEL of slot 1 received the reason
+ verify(mCallback0, times(0)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+ verify(mCallback1, times(2)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+ verify(mCallback2, times(0)).onUnavailable(REASON_NO_IMS_SERVICE_CONFIGURED);
+
+ // ensure no other reason repored
+ verify(mCallback0, times(1)).onUnavailable(anyInt());
+ verify(mCallback1, times(4)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+ mMmTelConnectorListenerSlot1.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+
+ // resons except REASON_NO_IMS_SERVICE_CONFIGURED are discared
+ verify(mCallback0, times(1)).onUnavailable(anyInt());
+ verify(mCallback1, times(4)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+ // IMS package for MMTEL of slot 1 is added
+ when(mImsResolver.isImsServiceConfiguredForFeature(eq(1), eq(FEATURE_MMTEL)))
+ .thenReturn(true);
+ mImsStateCallbackController.notifyCarrierConfigChanged(SLOT_1);
+ processAllMessages();
+
+ // ensure the callback to MMTEL of slot 1
+ // there is a pending reason UNAVAILABLE_REASON_NOT_READY
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+ verify(mCallback1, times(2)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+ verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+ verify(mCallback2, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+ // ensure no other reason repored
+ verify(mCallback0, times(1)).onUnavailable(anyInt());
+ verify(mCallback1, times(5)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(anyInt());
+
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback1));
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback2));
+
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback1);
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback2);
+ processAllMessages();
+
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback1));
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback2));
+ }
+
+ @Test
+ @SmallTest
+ public void testMultiSubscriptions() throws Exception {
+ createController(2);
+
+ // registration
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_MMTEL, mCallback0, "callback0");
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_0_SUB_ID, FEATURE_RCS, mCallback1, "callback1");
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_1_SUB_ID, FEATURE_MMTEL, mCallback2, "callback2");
+ mImsStateCallbackController
+ .registerImsStateCallback(SLOT_1_SUB_ID, FEATURE_RCS, mCallback3, "callback3");
+ processAllMessages();
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback0));
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback1));
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback2));
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback3));
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+ verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+ verify(mCallback2, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+ verify(mCallback3, times(1)).onUnavailable(REASON_IMS_SERVICE_DISCONNECTED);
+
+ // TelephonyRcsService notifying active features
+ // slot 0
+ mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, false, true);
+ // slot 1
+ mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_1, false, true);
+ processAllMessages();
+
+ verify(mCallback0, times(1)).onUnavailable(anyInt());
+ verify(mCallback1, times(1)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(anyInt());
+ verify(mCallback3, times(1)).onUnavailable(anyInt());
+
+ verify(mCallback0, times(0)).onAvailable();
+ verify(mCallback1, times(0)).onAvailable();
+ verify(mCallback2, times(0)).onAvailable();
+ verify(mCallback3, times(0)).onAvailable();
+
+ // connectionUnavailable
+ mMmTelConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+ processAllMessages();
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+ verify(mCallback0, times(2)).onUnavailable(anyInt());
+ verify(mCallback1, times(1)).onUnavailable(anyInt());
+ verify(mCallback1, times(1)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(anyInt());
+ verify(mCallback3, times(1)).onUnavailable(anyInt());
+ verify(mCallback3, times(1)).onUnavailable(anyInt());
+
+ mRcsConnectorListenerSlot0.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+ processAllMessages();
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+ verify(mCallback0, times(2)).onUnavailable(anyInt());
+ verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+ verify(mCallback1, times(2)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(anyInt());
+ verify(mCallback3, times(1)).onUnavailable(anyInt());
+ verify(mCallback3, times(1)).onUnavailable(anyInt());
+
+ mMmTelConnectorListenerSlot1.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+ processAllMessages();
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+ verify(mCallback0, times(2)).onUnavailable(anyInt());
+ verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+ verify(mCallback1, times(2)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+ verify(mCallback2, times(2)).onUnavailable(anyInt());
+ verify(mCallback3, times(1)).onUnavailable(anyInt());
+ verify(mCallback3, times(1)).onUnavailable(anyInt());
+
+ mRcsConnectorListenerSlot1.getValue()
+ .connectionUnavailable(UNAVAILABLE_REASON_NOT_READY);
+ processAllMessages();
+ verify(mCallback0, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+ verify(mCallback0, times(2)).onUnavailable(anyInt());
+ verify(mCallback1, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+ verify(mCallback1, times(2)).onUnavailable(anyInt());
+ verify(mCallback2, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+ verify(mCallback2, times(2)).onUnavailable(anyInt());
+ verify(mCallback3, times(1)).onUnavailable(REASON_IMS_SERVICE_NOT_READY);
+ verify(mCallback3, times(2)).onUnavailable(anyInt());
+
+ // connectionReady
+ mMmTelConnectorListenerSlot0.getValue().connectionReady(null);
+ processAllMessages();
+ verify(mCallback0, times(1)).onAvailable();
+ verify(mCallback1, times(0)).onAvailable();
+ verify(mCallback2, times(0)).onAvailable();
+ verify(mCallback3, times(0)).onAvailable();
+ verify(mCallback0, times(2)).onUnavailable(anyInt());
+ verify(mCallback1, times(2)).onUnavailable(anyInt());
+ verify(mCallback2, times(2)).onUnavailable(anyInt());
+ verify(mCallback3, times(2)).onUnavailable(anyInt());
+
+ mRcsConnectorListenerSlot0.getValue().connectionReady(null);
+ processAllMessages();
+ verify(mCallback0, times(1)).onAvailable();
+ verify(mCallback1, times(0)).onAvailable();
+ verify(mCallback2, times(0)).onAvailable();
+ verify(mCallback3, times(0)).onAvailable();
+ verify(mCallback0, times(2)).onUnavailable(anyInt());
+ verify(mCallback1, times(2)).onUnavailable(anyInt());
+ verify(mCallback2, times(2)).onUnavailable(anyInt());
+ verify(mCallback3, times(2)).onUnavailable(anyInt());
+
+ mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_0, true, true);
+ processAllMessages();
+ verify(mCallback0, times(1)).onAvailable();
+ verify(mCallback1, times(1)).onAvailable();
+ verify(mCallback2, times(0)).onAvailable();
+ verify(mCallback3, times(0)).onAvailable();
+ verify(mCallback0, times(2)).onUnavailable(anyInt());
+ verify(mCallback1, times(2)).onUnavailable(anyInt());
+ verify(mCallback2, times(2)).onUnavailable(anyInt());
+ verify(mCallback3, times(2)).onUnavailable(anyInt());
+
+ mMmTelConnectorListenerSlot1.getValue().connectionReady(null);
+ processAllMessages();
+ verify(mCallback0, times(1)).onAvailable();
+ verify(mCallback1, times(1)).onAvailable();
+ verify(mCallback2, times(1)).onAvailable();
+ verify(mCallback3, times(0)).onAvailable();
+ verify(mCallback0, times(2)).onUnavailable(anyInt());
+ verify(mCallback1, times(2)).onUnavailable(anyInt());
+ verify(mCallback2, times(2)).onUnavailable(anyInt());
+ verify(mCallback3, times(2)).onUnavailable(anyInt());
+
+ mRcsConnectorListenerSlot1.getValue().connectionReady(null);
+ processAllMessages();
+ verify(mCallback0, times(1)).onAvailable();
+ verify(mCallback1, times(1)).onAvailable();
+ verify(mCallback2, times(1)).onAvailable();
+ verify(mCallback3, times(0)).onAvailable();
+ verify(mCallback0, times(2)).onUnavailable(anyInt());
+ verify(mCallback1, times(2)).onUnavailable(anyInt());
+ verify(mCallback2, times(2)).onUnavailable(anyInt());
+ verify(mCallback3, times(2)).onUnavailable(anyInt());
+
+ mImsStateCallbackController.notifyExternalRcsStateChanged(SLOT_1, true, true);
+ processAllMessages();
+ verify(mCallback0, times(1)).onAvailable();
+ verify(mCallback1, times(1)).onAvailable();
+ verify(mCallback2, times(1)).onAvailable();
+ verify(mCallback3, times(1)).onAvailable();
+ verify(mCallback0, times(2)).onUnavailable(anyInt());
+ verify(mCallback1, times(2)).onUnavailable(anyInt());
+ verify(mCallback2, times(2)).onUnavailable(anyInt());
+ verify(mCallback3, times(2)).onUnavailable(anyInt());
+
+ // unregistration
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback0);
+ processAllMessages();
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback1));
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback2));
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback3));
+
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback1);
+ processAllMessages();
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback1));
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback2));
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback3));
+
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback2);
+ processAllMessages();
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback1));
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback2));
+ assertTrue(mImsStateCallbackController.isRegistered(mCallback3));
+
+ mImsStateCallbackController.unregisterImsStateCallback(mCallback3);
+ processAllMessages();
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback0));
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback1));
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback2));
+ assertFalse(mImsStateCallbackController.isRegistered(mCallback3));
+ }
+
+ @Test
+ @SmallTest
+ public void testSlotUpdates() throws Exception {
+ createController(1);
+
+ verify(mMmTelFeatureConnectorSlot0, times(1)).connect();
+ verify(mRcsFeatureConnectorSlot0, times(1)).connect();
+ verify(mMmTelFeatureConnectorSlot0, times(0)).disconnect();
+ verify(mRcsFeatureConnectorSlot0, times(0)).disconnect();
+
+ // Add a new slot.
+ mImsStateCallbackController.updateFeatureControllerSize(2);
+
+ // connect in slot 1
+ verify(mMmTelFeatureConnectorSlot1, times(1)).connect();
+ verify(mRcsFeatureConnectorSlot1, times(1)).connect();
+
+ // no change in slot 0
+ verify(mMmTelFeatureConnectorSlot0, times(1)).connect();
+ verify(mRcsFeatureConnectorSlot0, times(1)).connect();
+
+ // Remove a slot.
+ mImsStateCallbackController.updateFeatureControllerSize(1);
+
+ // destroy in slot 1
+ verify(mMmTelFeatureConnectorSlot1, times(1)).disconnect();
+ verify(mRcsFeatureConnectorSlot1, times(1)).disconnect();
+
+ // no change in slot 0
+ verify(mMmTelFeatureConnectorSlot0, times(0)).disconnect();
+ verify(mRcsFeatureConnectorSlot0, times(0)).disconnect();
+ }
+
+ private void createController(int slotCount) throws Exception {
+ if (Looper.myLooper() == null) {
+ Looper.prepare();
+ }
+ makeFakeActiveSubIds(slotCount);
+
+ when(mMmTelFeatureFactory
+ .create(any(), eq(0), any(), mMmTelConnectorListenerSlot0.capture(), any()))
+ .thenReturn(mMmTelFeatureConnectorSlot0);
+ when(mMmTelFeatureFactory
+ .create(any(), eq(1), any(), mMmTelConnectorListenerSlot1.capture(), any()))
+ .thenReturn(mMmTelFeatureConnectorSlot1);
+ when(mRcsFeatureFactory
+ .create(any(), eq(0), mRcsConnectorListenerSlot0.capture(), any(), any()))
+ .thenReturn(mRcsFeatureConnectorSlot0);
+ when(mRcsFeatureFactory
+ .create(any(), eq(1), mRcsConnectorListenerSlot1.capture(), any(), any()))
+ .thenReturn(mRcsFeatureConnectorSlot1);
+
+ mImsStateCallbackController =
+ new ImsStateCallbackController(mPhone, mHandlerThread.getLooper(),
+ slotCount, mMmTelFeatureFactory, mRcsFeatureFactory, mImsResolver);
+
+ replaceInstance(ImsStateCallbackController.class,
+ "mPhoneFactoryProxy", mImsStateCallbackController, mPhoneFactoryProxy);
+ mImsStateCallbackController.onSubChanged();
+
+ mHandler = mImsStateCallbackController.getHandler();
+ try {
+ mLooper = new TestableLooper(mHandler.getLooper());
+ } catch (Exception e) {
+ logd("Unable to create looper from handler.");
+ }
+
+ verify(mRcsFeatureConnectorSlot0, atLeastOnce()).connect();
+ verify(mMmTelFeatureConnectorSlot0, atLeastOnce()).connect();
+
+ if (slotCount == 1) {
+ verify(mRcsFeatureConnectorSlot1, times(0)).connect();
+ verify(mMmTelFeatureConnectorSlot1, times(0)).connect();
+ } else {
+ verify(mRcsFeatureConnectorSlot1, atLeastOnce()).connect();
+ verify(mMmTelFeatureConnectorSlot1, atLeastOnce()).connect();
+ }
+ }
+
+ private static void replaceInstance(final Class c,
+ final String instanceName, final Object obj, final Object newValue) throws Exception {
+ Field field = c.getDeclaredField(instanceName);
+ field.setAccessible(true);
+ field.set(obj, newValue);
+ }
+
+ private void makeFakeActiveSubIds(int count) {
+ final int[] subIds = new int[count];
+ for (int i = 0; i < count; i++) {
+ subIds[i] = FAKE_SUB_ID_BASE + i;
+ }
+ when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(subIds);
+ }
+
+ private void processAllMessages() {
+ while (!mLooper.getLooper().getQueue().isIdle()) {
+ mLooper.processAllMessages();
+ }
+ }
+
+ private static void logd(String str) {
+ Log.d(TAG, str);
+ }
+}
diff --git a/tests/src/com/android/phone/ServiceStateProviderTest.java b/tests/src/com/android/phone/ServiceStateProviderTest.java
index cde584f..532b1c0 100644
--- a/tests/src/com/android/phone/ServiceStateProviderTest.java
+++ b/tests/src/com/android/phone/ServiceStateProviderTest.java
@@ -27,6 +27,8 @@
import static android.provider.Telephony.ServiceStateTable.getUriForSubscriptionId;
import static android.telephony.NetworkRegistrationInfo.REGISTRATION_STATE_HOME;
+import static com.android.phone.ServiceStateProvider.ENFORCE_LOCATION_PERMISSION_CHECK;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
@@ -42,6 +44,7 @@
import android.Manifest;
import android.app.AppOpsManager;
+import android.compat.testing.PlatformCompatChangeRule;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
@@ -62,10 +65,14 @@
import androidx.test.ext.junit.runners.AndroidJUnit4;
+import libcore.junit.util.compat.CoreCompatChangeRule;
+
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.TestRule;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
@@ -91,6 +98,9 @@
@Mock LocationManager mLocationManager;
@Mock PackageManager mPackageManager;
+ @Rule
+ public TestRule compatChangeRule = new PlatformCompatChangeRule();
+
// Exception used internally to verify if the Resolver#notifyChange has been called.
private class TestNotifierException extends RuntimeException {
TestNotifierException() {
@@ -170,6 +180,7 @@
// TODO(b/191995565): Turn this on when location access can be off
@Ignore
@SmallTest
+ @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
public void testQueryServiceState_withNoSubId_withoutLocation() {
setLocationPermissions(false);
@@ -239,7 +250,19 @@
* public columns of ServiceStateTable.
*/
@Test
- public void query_publicColumns_targetS_noReadPrivilege_getPublicColumns() {
+ @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+ public void
+ query_publicColumns_enforceLocatoinEnabled_targetS_noReadPrivilege_getPublicColumns() {
+ setTargetSdkVersion(Build.VERSION_CODES.S);
+ setCanReadPrivilegedPhoneState(false);
+
+ verifyServiceStateWithPublicColumns(mTestServiceState, null /*projection*/);
+ }
+
+ @Test
+ @CoreCompatChangeRule.DisableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+ public void
+ query_publicColumns_enforceLocationDisabled_targetS_noReadPrivilege_getPublicColumns() {
setTargetSdkVersion(Build.VERSION_CODES.S);
setCanReadPrivilegedPhoneState(false);
@@ -251,6 +274,7 @@
* non-public columns should throw IllegalArgumentException.
*/
@Test
+ @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
public void query_hideColumn_targetS_noReadPrivilege_throwIllegalArgumentException() {
setTargetSdkVersion(Build.VERSION_CODES.S);
setCanReadPrivilegedPhoneState(false);
@@ -263,11 +287,30 @@
}
/**
- * Verify that apps target S+ with READ_PRIVILEGED_PHONE_STATE and location permissions should
- * be able to access all columns.
+ * Verify that with changeId ENFORCE_LOCATION_PERMISSION_CHECK enabled, apps target S+ with
+ * READ_PRIVILEGED_PHONE_STATE and location permissions should be able to access all columns.
*/
@Test
- public void query_allColumn_targetS_withReadPrivilegedAndLocation_getAllStateUnredacted() {
+ @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+ public void
+ query_allColumn_enforceLocationEnabled_targetS_withReadPrivilegedAndLocation_getUnredacted() {
+ setTargetSdkVersion(Build.VERSION_CODES.S);
+ setCanReadPrivilegedPhoneState(true);
+ setLocationPermissions(true);
+
+ verifyServiceStateForSubId(
+ getUriForSubscriptionId(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID),
+ mTestServiceState, true /*hasPermission*/);
+ }
+
+ /**
+ * Verify that with changeId ENFORCE_LOCATION_PERMISSION_CHECK disabled, apps target S+ with
+ * READ_PRIVILEGED_PHONE_STATE and location permissions should be able to access all columns.
+ */
+ @Test
+ @CoreCompatChangeRule.DisableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+ public void
+ query_allColumn_enforceLocationDisabled_targetS_withReadPrivilegedAndLocation_getUnredacted() {
setTargetSdkVersion(Build.VERSION_CODES.S);
setCanReadPrivilegedPhoneState(true);
setLocationPermissions(true);
@@ -283,6 +326,7 @@
*/
// TODO(b/191995565): Turn this on once b/191995565 is integrated
@Ignore
+ @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
public void query_locationColumn_targetS_withReadPrivilegeNoLocation_throwSecurityExecption() {
setTargetSdkVersion(Build.VERSION_CODES.S);
setCanReadPrivilegedPhoneState(true);
@@ -296,10 +340,12 @@
}
/**
- * Verify that apps target R- with location permissions should be able to access all columns.
+ * Verify that when changeId ENFORCE_LOCATION_PERMISSION_CHECK is enabled, apps target R- with
+ * location permissions should be able to access all columns.
*/
@Test
- public void query_allColumn_targetR_withLocation_getAllStateUnredacted() {
+ @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+ public void query_allColumn_enforceLoationEnabled_targetR_withLocation_getUnredacted() {
setTargetSdkVersion(Build.VERSION_CODES.R);
setLocationPermissions(true);
@@ -309,12 +355,28 @@
}
/**
- * Verify that apps target R- w/o location permissions should be able to access all columns but
- * with redacted ServiceState.
+ * Verify that when changeId ENFORCE_LOCATION_PERMISSION_CHECK is disabled, apps target R- with
+ * location permissions should be able to access all columns.
+ */
+ @Test
+ @CoreCompatChangeRule.DisableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+ public void query_allColumn_enforceLocationDisabled_targetR_withLocation_getUnredacted() {
+ setTargetSdkVersion(Build.VERSION_CODES.R);
+ setLocationPermissions(true);
+
+ verifyServiceStateForSubId(
+ getUriForSubscriptionId(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID),
+ mTestServiceState, true /*hasPermission*/);
+ }
+
+ /**
+ * Verify that changeId ENFORCE_LOCATION_PERMISSION_CHECK is enabled, apps target R- w/o
+ * location permissions should be able to access all columns but with redacted ServiceState.
*/
// TODO(b/191995565): Turn case on when location access can be off
@Ignore
- public void query_allColumn_targetR_noLocation_getRedacted() {
+ @CoreCompatChangeRule.EnableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+ public void query_allColumn_enforceLocationEnabled_targetR_noLocation_getRedacted() {
setTargetSdkVersion(Build.VERSION_CODES.R);
setLocationPermissions(false);
@@ -324,6 +386,22 @@
true /*hasPermission*/);
}
+ /**
+ * Verify that changeId ENFORCE_LOCATION_PERMISSION_CHECK is disabled, apps target R- w/o
+ * location permissions should be able to access all columns and with unredacted ServiceState.
+ */
+ // TODO(b/191995565): Turn case on when location access can be off
+ @Ignore
+ @CoreCompatChangeRule.DisableCompatChanges({ENFORCE_LOCATION_PERMISSION_CHECK})
+ public void query_allColumn_enforceLocationDisabled_targetR_noLocation_getUnredacted() {
+ setTargetSdkVersion(Build.VERSION_CODES.R);
+ setLocationPermissions(false);
+
+ verifyServiceStateForSubId(
+ getUriForSubscriptionId(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID),
+ mTestServiceState, true /*hasPermission*/);
+ }
+
private void verifyServiceStateWithLocationColumns(ServiceState ss, String[] projection) {
try (Cursor cursor = mContentResolver.query(ServiceStateTable.CONTENT_URI, projection, null,
null)) {
@@ -335,7 +413,6 @@
try (Cursor cursor = mContentResolver.query(ServiceStateTable.CONTENT_URI, projection, null,
null)) {
assertNotNull(cursor);
- assertEquals(cursor.getColumnCount(), ServiceStateProvider.PUBLIC_COLUMNS.length);
cursor.moveToFirst();
assertEquals(ss.getVoiceRegState(),
diff --git a/tests/src/com/android/phone/SimPhonebookProviderTest.java b/tests/src/com/android/phone/SimPhonebookProviderTest.java
index 29a653d..d8518f8 100644
--- a/tests/src/com/android/phone/SimPhonebookProviderTest.java
+++ b/tests/src/com/android/phone/SimPhonebookProviderTest.java
@@ -28,6 +28,7 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
@@ -180,16 +181,16 @@
public void query_entityFiles_multiSim_returnsCursorWithRowForEachSimEf() {
setupSimsWithSubscriptionIds(2, 3, 7);
- mIccPhoneBook.setRecordsSize(2, IccConstants.EF_ADN, 10, 25);
- mIccPhoneBook.setRecordsSize(2, IccConstants.EF_FDN, 5, 20);
- mIccPhoneBook.setRecordsSize(2, IccConstants.EF_SDN, 15, 20);
- mIccPhoneBook.setRecordsSize(3, IccConstants.EF_ADN, 100, 30);
+ mIccPhoneBook.setupEfWithSizes(2, IccConstants.EF_ADN, 10, 25);
+ mIccPhoneBook.setupEfWithSizes(2, IccConstants.EF_FDN, 5, 20);
+ mIccPhoneBook.setupEfWithSizes(2, IccConstants.EF_SDN, 15, 20);
+ mIccPhoneBook.setupEfWithSizes(3, IccConstants.EF_ADN, 100, 30);
// These Will be omitted from results because zero size indicates the EF is not supported.
- mIccPhoneBook.setRecordsSize(3, IccConstants.EF_FDN, 0, 0);
- mIccPhoneBook.setRecordsSize(3, IccConstants.EF_SDN, 0, 0);
- mIccPhoneBook.setRecordsSize(7, IccConstants.EF_ADN, 0, 0);
- mIccPhoneBook.setRecordsSize(7, IccConstants.EF_FDN, 0, 0);
- mIccPhoneBook.setRecordsSize(7, IccConstants.EF_SDN, 0, 0);
+ mIccPhoneBook.setupEfWithSizes(3, IccConstants.EF_FDN, 0, 0);
+ mIccPhoneBook.setupEfWithSizes(3, IccConstants.EF_SDN, 0, 0);
+ mIccPhoneBook.setupEfWithSizes(7, IccConstants.EF_ADN, 0, 0);
+ mIccPhoneBook.setupEfWithSizes(7, IccConstants.EF_FDN, 0, 0);
+ mIccPhoneBook.setupEfWithSizes(7, IccConstants.EF_SDN, 0, 0);
String[] projection = {
ElementaryFiles.SLOT_INDEX, ElementaryFiles.SUBSCRIPTION_ID,
@@ -211,15 +212,44 @@
public void query_entityFiles_simWithZeroSizes_returnsEmptyCursor() {
setupSimsWithSubscriptionIds(1);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 0, 0);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_FDN, 0, 0);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_SDN, 0, 0);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 0, 0);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_FDN, 0, 0);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_SDN, 0, 0);
try (Cursor cursor = mResolver.query(ElementaryFiles.CONTENT_URI, null, null, null)) {
assertThat(cursor).hasCount(0);
}
}
+ /**
+ * USIM cards support more than 255 records by having multiple files for one EF type but
+ * IIccPhoneBook.getAdnRecordsSizeForSubscriber returns the size for a single file and so is
+ * inaccurate for such SIMs.
+ *
+ * <p>See b/201385523#comment4 and b/201685690
+ */
+ @Test
+ public void query_entityFiles_adnRecordCountExceedsSize_returnsAdnRecordCountAsMaxRecords() {
+ setupSimsWithSubscriptionIds(1);
+
+ // There are 400 records returned by getAdnRecordsInEfForSubscriber but the count returned
+ // by getAdnRecordsSizeForSubscriber is only 200.
+ AdnRecord[] records = mIccPhoneBook.createEmptyRecords(IccConstants.EF_ADN, 400);
+ mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 200, 20);
+ mIccPhoneBook.setRecords(1, IccConstants.EF_ADN, records);
+
+ String[] projection = {
+ ElementaryFiles.SUBSCRIPTION_ID, ElementaryFiles.EF_TYPE,
+ ElementaryFiles.MAX_RECORDS
+ };
+ try (Cursor cursor = mResolver.query(
+ ElementaryFiles.CONTENT_URI, projection, null, null)) {
+ assertThat(cursor).hasCount(1);
+ assertThat(cursor)
+ .atRow(0).hasRowValues(1, ElementaryFiles.EF_ADN, 400);
+ }
+ }
+
@Test
public void query_entityFilesItem_nullProjection_returnsCursorWithCorrectProjection() {
setupSimsWithSubscriptionIds(1);
@@ -548,7 +578,7 @@
@Test
public void query_adnRecords_zeroSizeEf_throwsCorrectException() {
setupSimsWithSubscriptionIds(1);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 0, 0);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 0, 0);
IllegalArgumentException e = assertThrows(IllegalArgumentException.class,
() -> mResolver.query(SimRecords.getContentUri(1, EF_ADN), null, null, null));
@@ -617,9 +647,9 @@
@Test
public void query_itemUriEmptyRecord_returnsEmptyCursor() {
setupSimsWithSubscriptionIds(1);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 30);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_FDN, 1, 30);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_SDN, 1, 30);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 30);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_FDN, 1, 30);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_SDN, 1, 30);
try (Cursor adnItem = mResolver.query(SimRecords.getItemUri(1, ElementaryFiles.EF_ADN, 1),
null, null, null);
@@ -637,9 +667,9 @@
@Test
public void query_itemUriIndexExceedsMax_returnsEmptyCursor() {
setupSimsWithSubscriptionIds(1);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 30);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_FDN, 1, 30);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_SDN, 1, 30);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 30);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_FDN, 1, 30);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_SDN, 1, 30);
try (Cursor adnItem = mResolver.query(SimRecords.getItemUri(1, ElementaryFiles.EF_ADN, 2),
null, null, null);
@@ -740,7 +770,7 @@
@Test
public void insert_efFull_throwsCorrectException() {
setupSimsWithSubscriptionIds(1);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 30);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 30);
mIccPhoneBook.addRecord(1, IccConstants.EF_ADN, "Existing", "8005550101");
ContentValues values = new ContentValues();
@@ -842,7 +872,7 @@
@Test
public void insert_phoneNumberOmitted_throwsCorrectException() {
setupSimsWithSubscriptionIds(1);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 25);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 25);
ContentValues values = new ContentValues();
values.put(SimRecords.NAME, "Name");
@@ -855,7 +885,7 @@
@Test
public void insert_nameTooLong_throwsCorrectException() {
setupSimsWithSubscriptionIds(1);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 25);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 25);
ContentValues values = new ContentValues();
// Name is limited to 11 characters when the max record size is 25
@@ -878,7 +908,7 @@
@Test
public void insert_phoneNumberTooLong_throwsCorrectException() {
setupSimsWithSubscriptionIds(1);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 25);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 25);
ContentValues values = new ContentValues();
values.put(SimRecords.NAME, "Name");
@@ -894,7 +924,7 @@
@Test
public void insert_numberWithInvalidCharacters_throwsCorrectException() {
setupSimsWithSubscriptionIds(1);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 32);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 32);
ContentValues values = new ContentValues();
values.put(SimRecords.NAME, "Name");
@@ -914,7 +944,7 @@
@Test
public void insert_unsupportedColumn_throwsCorrectException() {
setupSimsWithSubscriptionIds(1);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 25);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 25);
ContentValues values = new ContentValues();
values.put(SimRecords.NAME, "Name");
@@ -1006,7 +1036,7 @@
@Test
public void update_indexExceedingMax_returnsZero() {
setupSimsWithSubscriptionIds(1);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 30);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 30);
ContentValues values = new ContentValues();
values.put(SimRecords.NAME, "name");
@@ -1045,7 +1075,7 @@
public void delete_indexExceedingMax_returnsZero() {
setupSimsWithSubscriptionIds(1);
mIccPhoneBook.makeAllEfsSupported(1);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 30);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 30);
int result = mResolver.delete(SimRecords.getItemUri(1, ElementaryFiles.EF_ADN, 2), null);
@@ -1066,7 +1096,7 @@
@Test
public void update_nameOrNumberTooLong_throwsCorrectException() {
setupSimsWithSubscriptionIds(1);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 25);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 25);
mIccPhoneBook.addRecord(1, IccConstants.EF_ADN, "Initial", "8005550101");
ContentValues values = new ContentValues();
@@ -1096,7 +1126,7 @@
@Test
public void update_numberWithInvalidCharacters_throwsCorrectException() {
setupSimsWithSubscriptionIds(1);
- mIccPhoneBook.setRecordsSize(1, IccConstants.EF_ADN, 1, 32);
+ mIccPhoneBook.setupEfWithSizes(1, IccConstants.EF_ADN, 1, 32);
mIccPhoneBook.addRecord(1, IccConstants.EF_ADN, "Initial", "8005550101");
ContentValues values = new ContentValues();
@@ -1189,6 +1219,10 @@
public void subscriptionsChange_callsNotifyChange() {
// Clear invocations that happened in setUp
Mockito.reset(mMockSubscriptionManager);
+ // Stubbing this prevents the spied instance from calling the listener when it is added
+ // which may cause flakiness.
+ doNothing().when(mMockSubscriptionManager)
+ .addOnSubscriptionsChangedListener(any(), any());
setupSimsWithSubscriptionIds(1);
mIccPhoneBook.makeAllEfsSupported(1);
SimPhonebookProvider.ContentNotifier mockNotifier = mock(
@@ -1200,9 +1234,20 @@
mResolver, mMockSubscriptionManager, mIccPhoneBook, mockNotifier);
verify(mMockSubscriptionManager).addOnSubscriptionsChangedListener(
any(), listenerCaptor.capture());
+
+ // Fake the initial call that is made by SubscriptionManager when a listener is registered
+ // with addOnSubscriptionsChangedListener
listenerCaptor.getValue().onSubscriptionsChanged();
+
+ // First subscription change
setupSimsWithSubscriptionIds(1, 2);
listenerCaptor.getValue().onSubscriptionsChanged();
+
+ // Second subscription change
+ setupSimsWithSubscriptionIds(1);
+ listenerCaptor.getValue().onSubscriptionsChanged();
+
+ // Listener is called but subscriptions didn't change so this won't notify
listenerCaptor.getValue().onSubscriptionsChanged();
verify(mockNotifier, times(2)).notifyChange(eq(SimPhonebookContract.AUTHORITY_URI));
@@ -1308,7 +1353,7 @@
// The key for both maps is the (subscription ID, efid)
private Map<Pair<Integer, Integer>, AdnRecord[]> mRecords = new HashMap<>();
// The value is the single record size
- private Map<Pair<Integer, Integer>, Integer> mRecordSizes = new HashMap<>();
+ private Map<Pair<Integer, Integer>, int[]> mRecordSizes = new HashMap<>();
private int mDefaultSubscriptionId = 101;
@@ -1316,7 +1361,7 @@
// Assume that if records are being added then the test wants it to be a valid
// elementary file so set sizes as well.
if (!mRecordSizes.containsKey(key)) {
- setRecordsSize(key.first, key.second,
+ setupEfWithSizes(key.first, key.second,
Math.max(record.getRecId(), DEFAULT_RECORDS_COUNT), DEFAULT_RECORD_SIZE);
}
mRecords.get(key)[record.getRecId() - 1] = record;
@@ -1386,18 +1431,33 @@
* subscription IDs.
*/
public void makeAllEfsSupported(int subscriptionId) {
- setRecordsSize(subscriptionId, IccConstants.EF_ADN, DEFAULT_RECORDS_COUNT,
+ setupEfWithSizes(subscriptionId, IccConstants.EF_ADN, DEFAULT_RECORDS_COUNT,
DEFAULT_RECORD_SIZE);
- setRecordsSize(subscriptionId, IccConstants.EF_FDN, DEFAULT_RECORDS_COUNT,
+ setupEfWithSizes(subscriptionId, IccConstants.EF_FDN, DEFAULT_RECORDS_COUNT,
DEFAULT_RECORD_SIZE);
- setRecordsSize(subscriptionId, IccConstants.EF_SDN, DEFAULT_RECORDS_COUNT,
+ setupEfWithSizes(subscriptionId, IccConstants.EF_SDN, DEFAULT_RECORDS_COUNT,
DEFAULT_RECORD_SIZE);
}
+ public void setRecords(int subscriptionId, int efid, AdnRecord[] records) {
+ mRecords.put(Pair.create(subscriptionId, efid), records);
+ }
+
public void setRecordsSize(int subscriptionId, int efid, int maxRecordCount,
int maxRecordSize) {
+ setRecordsSize(Pair.create(subscriptionId, efid), maxRecordCount, maxRecordSize);
+ }
+
+ private void setRecordsSize(Pair<Integer, Integer> key, int maxRecordCount,
+ int maxRecordSize) {
+ int[] sizes = { maxRecordSize, maxRecordSize * maxRecordCount, maxRecordCount };
+ mRecordSizes.put(key, sizes);
+ }
+
+ public void setupEfWithSizes(int subscriptionId, int efid, int maxRecordCount,
+ int maxRecordSize) {
Pair<Integer, Integer> key = Pair.create(subscriptionId, efid);
- mRecordSizes.put(key, maxRecordSize);
+ setRecordsSize(key, maxRecordCount, maxRecordSize);
AdnRecord[] records = mRecords.computeIfAbsent(key, unused ->
createEmptyRecords(efid, maxRecordCount));
if (records.length < maxRecordCount) {
@@ -1405,7 +1465,7 @@
}
}
- private AdnRecord[] createEmptyRecords(int efid, int count) {
+ AdnRecord[] createEmptyRecords(int efid, int count) {
AdnRecord[] records = new AdnRecord[count];
for (int i = 0; i < records.length; i++) {
if (records[i] == null) {
@@ -1483,12 +1543,11 @@
@Override
public int[] getAdnRecordsSizeForSubscriber(int subId, int efid) {
Pair<Integer, Integer> key = Pair.create(subId, efid);
- Integer recordSize = mRecordSizes.get(key);
- if (recordSize == null) {
+ int[] recordsSize = mRecordSizes.get(key);
+ if (recordsSize == null) {
return new int[]{0, 0, 0};
}
- int count = mRecords.get(key).length;
- return new int[]{recordSize, recordSize * count, count};
+ return recordsSize;
}
@Override
diff --git a/tests/src/com/android/services/telephony/rcs/DelegateStateTrackerTest.java b/tests/src/com/android/services/telephony/rcs/DelegateStateTrackerTest.java
index 8236f44..ffbe5ce 100644
--- a/tests/src/com/android/services/telephony/rcs/DelegateStateTrackerTest.java
+++ b/tests/src/com/android/services/telephony/rcs/DelegateStateTrackerTest.java
@@ -16,6 +16,8 @@
package com.android.services.telephony.rcs;
+import static com.android.services.telephony.rcs.DelegateStateTracker.SUPPORT_REGISTERING_DELEGATE_STATE;
+
import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -24,7 +26,9 @@
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import android.app.compat.CompatChanges;
import android.net.InetAddresses;
+import android.os.Binder;
import android.telephony.ims.DelegateRegistrationState;
import android.telephony.ims.FeatureTagState;
import android.telephony.ims.SipDelegateConfiguration;
@@ -33,10 +37,11 @@
import android.telephony.ims.aidl.ISipDelegateConnectionStateCallback;
import android.util.ArraySet;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
import com.android.TelephonyTestBase;
+import com.android.internal.telephony.metrics.RcsStats;
import org.junit.After;
import org.junit.Before;
@@ -56,6 +61,7 @@
@Mock private ISipDelegate mSipDelegate;
@Mock private ISipDelegateConnectionStateCallback mAppCallback;
+ @Mock private RcsStats mRcsStats;
@Before
public void setUp() throws Exception {
@@ -75,13 +81,15 @@
@SmallTest
@Test
public void testDelegateCreated() throws Exception {
- DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID, mAppCallback,
- mSipDelegate);
+ DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID,
+ Binder.getCallingUid(), mAppCallback, mSipDelegate, mRcsStats);
Set<FeatureTagState> deniedTags = getMmTelDeniedTag();
- stateTracker.sipDelegateConnected(deniedTags);
+ Set<String> supportedTags = getSupportedTags();
+ stateTracker.sipDelegateConnected(supportedTags, deniedTags);
// Calling connected multiple times should not generate multiple onCreated events.
- stateTracker.sipDelegateConnected(deniedTags);
+ stateTracker.sipDelegateConnected(supportedTags, deniedTags);
verify(mAppCallback).onCreated(mSipDelegate);
+ verify(mRcsStats).createSipDelegateStats(TEST_SUB_ID, supportedTags);
// Ensure status updates are sent to app as expected.
DelegateRegistrationState regState = new DelegateRegistrationState.Builder()
@@ -97,8 +105,10 @@
stateTracker.onConfigurationChanged(c);
verify(mAppCallback).onFeatureTagStatusChanged(eq(regState),
eq(new ArrayList<>(deniedTags)));
+ verify(mRcsStats).onSipTransportFeatureTagStats(TEST_SUB_ID, deniedTags,
+ regState.getDeregisteredFeatureTags(),
+ regState.getRegisteredFeatureTags());
verify(mAppCallback).onConfigurationChanged(c);
-
verify(mAppCallback, never()).onDestroyed(anyInt());
}
@@ -108,15 +118,19 @@
@SmallTest
@Test
public void testDelegateDestroyed() throws Exception {
- DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID, mAppCallback,
- mSipDelegate);
+ DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID,
+ Binder.getCallingUid(), mAppCallback, mSipDelegate, mRcsStats);
Set<FeatureTagState> deniedTags = getMmTelDeniedTag();
- stateTracker.sipDelegateConnected(deniedTags);
+ Set<String> supportedTags = getSupportedTags();
+ stateTracker.sipDelegateConnected(supportedTags, deniedTags);
+ verify(mRcsStats).createSipDelegateStats(eq(TEST_SUB_ID), eq(supportedTags));
stateTracker.sipDelegateDestroyed(
SipDelegateManager.SIP_DELEGATE_DESTROY_REASON_REQUESTED_BY_APP);
verify(mAppCallback).onDestroyed(
SipDelegateManager.SIP_DELEGATE_DESTROY_REASON_REQUESTED_BY_APP);
+ verify(mRcsStats).onSipDelegateStats(eq(TEST_SUB_ID), eq(supportedTags),
+ eq(SipDelegateManager.SIP_DELEGATE_DESTROY_REASON_REQUESTED_BY_APP));
}
/**
@@ -129,38 +143,75 @@
@SmallTest
@Test
public void testDelegateChangingRegisteredTagsOverride() throws Exception {
- DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID, mAppCallback,
- mSipDelegate);
+ DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID,
+ Binder.getCallingUid(), mAppCallback, mSipDelegate, mRcsStats);
Set<FeatureTagState> deniedTags = getMmTelDeniedTag();
- stateTracker.sipDelegateConnected(deniedTags);
+ Set<String> supportedTags = getSupportedTags();
+ Set<String> registeringTags = getRegisteringTag();
+ stateTracker.sipDelegateConnected(supportedTags, deniedTags);
+
// SipDelegate created
verify(mAppCallback).onCreated(mSipDelegate);
+
DelegateRegistrationState regState = new DelegateRegistrationState.Builder()
.addRegisteredFeatureTag(ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG)
+ .addRegisteringFeatureTags(registeringTags)
.addDeregisteringFeatureTag(ImsSignallingUtils.FILE_TRANSFER_HTTP_TAG,
DelegateRegistrationState.DEREGISTERING_REASON_PROVISIONING_CHANGE)
.addDeregisteredFeatureTag(ImsSignallingUtils.GROUP_CHAT_TAG,
DelegateRegistrationState.DEREGISTERED_REASON_NOT_PROVISIONED)
.build();
+
stateTracker.onRegistrationStateChanged(regState);
// Simulate underlying SipDelegate switch
stateTracker.sipDelegateChanging(
DelegateRegistrationState.DEREGISTERING_REASON_FEATURE_TAGS_CHANGING);
// onFeatureTagStatusChanged should now be called with registered features overridden with
// DEREGISTERING_REASON_FEATURE_TAGS_CHANGING
- DelegateRegistrationState overrideRegState = new DelegateRegistrationState.Builder()
+ DelegateRegistrationState.Builder overrideBuilder =
+ new DelegateRegistrationState.Builder()
.addDeregisteringFeatureTag(ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG,
DelegateRegistrationState.DEREGISTERING_REASON_FEATURE_TAGS_CHANGING)
// Already Deregistering/Deregistered tags should not be overridden.
.addDeregisteringFeatureTag(ImsSignallingUtils.FILE_TRANSFER_HTTP_TAG,
DelegateRegistrationState.DEREGISTERING_REASON_PROVISIONING_CHANGE)
.addDeregisteredFeatureTag(ImsSignallingUtils.GROUP_CHAT_TAG,
- DelegateRegistrationState.DEREGISTERED_REASON_NOT_PROVISIONED)
- .build();
+ DelegateRegistrationState.DEREGISTERED_REASON_NOT_PROVISIONED);
+ if (CompatChanges.isChangeEnabled(SUPPORT_REGISTERING_DELEGATE_STATE,
+ Binder.getCallingUid())) {
+ for (String tag : registeringTags) {
+ overrideBuilder.addDeregisteringFeatureTag(tag,
+ DelegateRegistrationState.DEREGISTERING_REASON_FEATURE_TAGS_CHANGING);
+ }
+ } else {
+ for (String tag : registeringTags) {
+ overrideBuilder.addDeregisteredFeatureTag(tag,
+ DelegateRegistrationState.DEREGISTERED_REASON_NOT_REGISTERED);
+ }
+ }
+
+ DelegateRegistrationState overrideRegState = overrideBuilder.build();
+
// new underlying SipDelegate created
- stateTracker.sipDelegateConnected(deniedTags);
+ stateTracker.sipDelegateConnected(supportedTags, deniedTags);
stateTracker.onRegistrationStateChanged(regState);
+ DelegateRegistrationState.Builder builder = new DelegateRegistrationState.Builder()
+ .addRegisteredFeatureTag(ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG)
+ .addDeregisteringFeatureTag(ImsSignallingUtils.FILE_TRANSFER_HTTP_TAG,
+ DelegateRegistrationState.DEREGISTERING_REASON_PROVISIONING_CHANGE)
+ .addDeregisteredFeatureTag(ImsSignallingUtils.GROUP_CHAT_TAG,
+ DelegateRegistrationState.DEREGISTERED_REASON_NOT_PROVISIONED);
+ if (CompatChanges.isChangeEnabled(SUPPORT_REGISTERING_DELEGATE_STATE,
+ Binder.getCallingUid())) {
+ builder.addRegisteringFeatureTags(registeringTags);
+ } else {
+ for (String tag : registeringTags) {
+ builder.addDeregisteredFeatureTag(tag,
+ DelegateRegistrationState.DEREGISTERED_REASON_NOT_REGISTERED);
+ }
+ }
+ DelegateRegistrationState regStateResult = builder.build();
// Verify registration state through the process:
ArgumentCaptor<DelegateRegistrationState> regCaptor =
ArgumentCaptor.forClass(DelegateRegistrationState.class);
@@ -168,11 +219,11 @@
regCaptor.capture(), eq(new ArrayList<>(deniedTags)));
List<DelegateRegistrationState> testStates = regCaptor.getAllValues();
// feature tags should first be registered
- assertEquals(regState, testStates.get(0));
+ assertEquals(regStateResult, testStates.get(0));
// registered feature tags should have moved to deregistering
assertEquals(overrideRegState, testStates.get(1));
// and then moved back to registered after underlying FT change done.
- assertEquals(regState, testStates.get(2));
+ assertEquals(regStateResult, testStates.get(2));
//onCreate should only have been called once and onDestroy should have never been called.
verify(mAppCallback).onCreated(mSipDelegate);
@@ -180,16 +231,111 @@
}
/**
+ * When registration states are changed in a case that an application doesn't support the new
+ * 'registering' state the 'registering' state will be moved to the 'registered' state
+ * as the old behavior.
+ *
+ * This method tests the case where the application doesn't support consuming the
+ * DEREGISTERING_REASON_LOSING_PDN reason.
+ */
+ @Test
+ public void testDelegateChangingRegisteredTagsRegisteringDisable() throws Exception {
+ DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID,
+ Binder.getCallingUid(), mAppCallback, mSipDelegate, mRcsStats);
+ stateTracker.setCompatChangesFactory((changeId, uid) -> false);
+ Set<FeatureTagState> deniedTags = getMmTelDeniedTag();
+ Set<String> supportedTags = getSupportedTags();
+ Set<String> registeringTags = getRegisteringTag();
+ stateTracker.sipDelegateConnected(supportedTags, deniedTags);
+ // SipDelegate created
+ verify(mAppCallback).onCreated(mSipDelegate);
+ DelegateRegistrationState regState = new DelegateRegistrationState.Builder()
+ .addRegisteredFeatureTag(ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG)
+ .addRegisteringFeatureTags(registeringTags)
+ .addDeregisteringFeatureTag(ImsSignallingUtils.FILE_TRANSFER_HTTP_TAG,
+ DelegateRegistrationState.DEREGISTERING_REASON_LOSING_PDN)
+ .addDeregisteredFeatureTag(ImsSignallingUtils.GROUP_CHAT_TAG,
+ DelegateRegistrationState.DEREGISTERED_REASON_NOT_PROVISIONED)
+ .build();
+ stateTracker.onRegistrationStateChanged(regState);
+
+ DelegateRegistrationState.Builder builder = new DelegateRegistrationState.Builder()
+ .addRegisteredFeatureTag(ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG)
+ .addDeregisteringFeatureTag(ImsSignallingUtils.FILE_TRANSFER_HTTP_TAG,
+ DelegateRegistrationState.DEREGISTERING_REASON_PDN_CHANGE)
+ .addDeregisteredFeatureTag(ImsSignallingUtils.GROUP_CHAT_TAG,
+ DelegateRegistrationState.DEREGISTERED_REASON_NOT_PROVISIONED);
+ for (String tag : registeringTags) {
+ builder.addDeregisteredFeatureTag(tag,
+ DelegateRegistrationState.DEREGISTERED_REASON_NOT_REGISTERED);
+ }
+ DelegateRegistrationState overrideRegState = builder.build();
+
+
+ // Verify registration state through the process:
+ ArgumentCaptor<DelegateRegistrationState> regCaptor =
+ ArgumentCaptor.forClass(DelegateRegistrationState.class);
+ verify(mAppCallback, times(1)).onFeatureTagStatusChanged(
+ regCaptor.capture(), eq(new ArrayList<>(deniedTags)));
+ List<DelegateRegistrationState> testStates = regCaptor.getAllValues();
+
+ assertEquals(overrideRegState, testStates.get(0));
+ verify(mAppCallback).onCreated(mSipDelegate);
+ }
+
+ /**
+ * When registration states are changed in a case that an application supports the new
+ * 'registering' state the state will be kept.
+ *
+ * This method tests the case where the application supports consuming the
+ * DEREGISTERING_REASON_LOSING_PDN reason.
+ */
+ @Test
+ public void testDelegateChangingRegisteredTagsRegisteringEnable() throws Exception {
+ DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID,
+ Binder.getCallingUid(), mAppCallback, mSipDelegate, mRcsStats);
+ stateTracker.setCompatChangesFactory((changeId, uid) -> true);
+ Set<FeatureTagState> deniedTags = getMmTelDeniedTag();
+ Set<String> supportedTags = getSupportedTags();
+ Set<String> registeringTags = getRegisteringTag();
+ stateTracker.sipDelegateConnected(supportedTags, deniedTags);
+ // SipDelegate created
+ verify(mAppCallback).onCreated(mSipDelegate);
+
+ DelegateRegistrationState regState = new DelegateRegistrationState.Builder()
+ .addRegisteredFeatureTag(ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG)
+ .addRegisteringFeatureTags(registeringTags)
+ .addDeregisteringFeatureTag(ImsSignallingUtils.FILE_TRANSFER_HTTP_TAG,
+ DelegateRegistrationState.DEREGISTERING_REASON_LOSING_PDN)
+ .addDeregisteredFeatureTag(ImsSignallingUtils.GROUP_CHAT_TAG,
+ DelegateRegistrationState.DEREGISTERED_REASON_NOT_PROVISIONED)
+ .build();
+ stateTracker.onRegistrationStateChanged(regState);
+
+ // Verify registration state through the process:
+ ArgumentCaptor<DelegateRegistrationState> regCaptor =
+ ArgumentCaptor.forClass(DelegateRegistrationState.class);
+ verify(mAppCallback, times(1)).onFeatureTagStatusChanged(
+ regCaptor.capture(), eq(new ArrayList<>(deniedTags)));
+ List<DelegateRegistrationState> testStates = regCaptor.getAllValues();
+
+ assertEquals(regState, testStates.get(0));
+ verify(mAppCallback).onCreated(mSipDelegate);
+ }
+
+
+ /**
* Test the case that when the underlying Denied tags change in the SipDelegate, the change is
* properly shown in the registration update event.
*/
@SmallTest
@Test
public void testDelegateChangingDeniedTagsChanged() throws Exception {
- DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID, mAppCallback,
- mSipDelegate);
+ DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID,
+ Binder.getCallingUid(), mAppCallback, mSipDelegate, mRcsStats);
Set<FeatureTagState> deniedTags = getMmTelDeniedTag();
- stateTracker.sipDelegateConnected(deniedTags);
+ Set<String> supportedTags = getSupportedTags();
+ stateTracker.sipDelegateConnected(supportedTags, deniedTags);
// SipDelegate created
verify(mAppCallback).onCreated(mSipDelegate);
DelegateRegistrationState regState = new DelegateRegistrationState.Builder()
@@ -220,7 +366,7 @@
// new underlying SipDelegate created, but SipDelegate denied one to one chat
deniedTags.add(new FeatureTagState(ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG,
SipDelegateManager.DENIED_REASON_NOT_ALLOWED));
- stateTracker.sipDelegateConnected(deniedTags);
+ stateTracker.sipDelegateConnected(supportedTags, deniedTags);
DelegateRegistrationState fullyDeniedRegState = new DelegateRegistrationState.Builder()
.build();
// In this special case, it will be the SipDelegateConnectionBase that will trigger
@@ -243,10 +389,11 @@
@SmallTest
@Test
public void testDelegateChangingDeniedTagsChangingToDestroy() throws Exception {
- DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID, mAppCallback,
- mSipDelegate);
+ DelegateStateTracker stateTracker = new DelegateStateTracker(TEST_SUB_ID,
+ Binder.getCallingUid(), mAppCallback, mSipDelegate, mRcsStats);
Set<FeatureTagState> deniedTags = getMmTelDeniedTag();
- stateTracker.sipDelegateConnected(deniedTags);
+ Set<String> supportedTags = getSupportedTags();
+ stateTracker.sipDelegateConnected(supportedTags, deniedTags);
// SipDelegate created
verify(mAppCallback).onCreated(mSipDelegate);
DelegateRegistrationState regState = new DelegateRegistrationState.Builder()
@@ -296,4 +443,18 @@
SipDelegateManager.DENIED_REASON_NOT_ALLOWED));
return deniedTags;
}
+
+ private Set<String> getSupportedTags() {
+ Set<String> supportedTags = new ArraySet<>();
+ supportedTags.add(ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG);
+ supportedTags.add(ImsSignallingUtils.GROUP_CHAT_TAG);
+ return supportedTags;
+ }
+
+ private Set<String> getRegisteringTag() {
+ Set<String> registeringTags = new ArraySet<>();
+ registeringTags.add(ImsSignallingUtils.CHATBOT_COMMUNICATION_USING_SESSION_TAG);
+ return registeringTags;
+
+ }
}
diff --git a/tests/src/com/android/services/telephony/rcs/ImsSignallingUtils.java b/tests/src/com/android/services/telephony/rcs/ImsSignallingUtils.java
index d607f6d..0e725e0 100644
--- a/tests/src/com/android/services/telephony/rcs/ImsSignallingUtils.java
+++ b/tests/src/com/android/services/telephony/rcs/ImsSignallingUtils.java
@@ -28,4 +28,6 @@
"+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gppservice.ims.icsi.oma.cpm.session\"";
public static final String FILE_TRANSFER_HTTP_TAG =
"+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gppapplication.ims.iari.rcs.fthttp\"";
+ public static final String CHATBOT_COMMUNICATION_USING_SESSION_TAG =
+ "+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.chatbot\"";
}
diff --git a/tests/src/com/android/services/telephony/rcs/SipDelegateControllerTest.java b/tests/src/com/android/services/telephony/rcs/SipDelegateControllerTest.java
index 5b0e7c5..575b81e 100644
--- a/tests/src/com/android/services/telephony/rcs/SipDelegateControllerTest.java
+++ b/tests/src/com/android/services/telephony/rcs/SipDelegateControllerTest.java
@@ -30,6 +30,7 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.os.Binder;
import android.telephony.ims.DelegateRegistrationState;
import android.telephony.ims.DelegateRequest;
import android.telephony.ims.FeatureTagState;
@@ -107,7 +108,8 @@
assertTrue(future.get());
verify(mMockMessageTracker).openTransport(mMockSipDelegate, request.getFeatureTags(),
Collections.emptySet());
- verify(mMockDelegateStateTracker).sipDelegateConnected(Collections.emptySet());
+ verify(mMockDelegateStateTracker).sipDelegateConnected(request.getFeatureTags(),
+ Collections.emptySet());
}
@SmallTest
@@ -138,7 +140,7 @@
allowedTags.removeAll(deniedTags.stream().map(FeatureTagState::getFeatureTag)
.collect(Collectors.toSet()));
verify(mMockMessageTracker).openTransport(mMockSipDelegate, allowedTags, deniedTags);
- verify(mMockDelegateStateTracker).sipDelegateConnected(deniedTags);
+ verify(mMockDelegateStateTracker).sipDelegateConnected(allowedTags, deniedTags);
}
@SmallTest
@@ -249,7 +251,9 @@
Collections.emptySet());
verify(mMockMessageTracker).openTransport(mMockSipDelegate, newFts,
Collections.emptySet());
- verify(mMockDelegateStateTracker, times(2)).sipDelegateConnected(Collections.emptySet());
+ verify(mMockDelegateStateTracker).sipDelegateConnected(
+ request.getFeatureTags(), Collections.emptySet());
+ verify(mMockDelegateStateTracker).sipDelegateConnected(newFts, Collections.emptySet());
}
private void createSipDelegate(DelegateRequest request, SipDelegateController controller)
@@ -288,8 +292,8 @@
private SipDelegateController getTestDelegateController(DelegateRequest request,
Set<FeatureTagState> deniedSet) {
- return new SipDelegateController(TEST_SUB_ID, request, "", mExecutorService,
- mMockMessageTracker, mMockDelegateStateTracker,
+ return new SipDelegateController(TEST_SUB_ID, Binder.getCallingUid(), request, "",
+ mExecutorService, mMockMessageTracker, mMockDelegateStateTracker,
(a, b, deniedFeatureSet, d, e) -> {
assertEquals(deniedSet, deniedFeatureSet);
return mMockBinderConnection;
diff --git a/tests/src/com/android/services/telephony/rcs/SipSessionTrackerTest.java b/tests/src/com/android/services/telephony/rcs/SipSessionTrackerTest.java
index 823a8be..37abb83 100644
--- a/tests/src/com/android/services/telephony/rcs/SipSessionTrackerTest.java
+++ b/tests/src/com/android/services/telephony/rcs/SipSessionTrackerTest.java
@@ -16,19 +16,28 @@
package com.android.services.telephony.rcs;
+import static com.android.internal.telephony.TelephonyStatsLog.SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__OUTGOING;
+
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertTrue;
+import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.verify;
+
import android.net.Uri;
import android.telephony.ims.SipMessage;
import android.util.Base64;
import androidx.test.ext.junit.runners.AndroidJUnit4;
+import com.android.internal.telephony.metrics.RcsStats;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
import java.nio.ByteBuffer;
import java.util.Arrays;
@@ -90,11 +99,104 @@
// Keep track of the string entry so we can generate unique strings.
private int mStringEntryCounter = 0;
private SipSessionTracker mTrackerUT;
+ private static final int TEST_SUB_ID = 1;
+ private static final String TEST_INVITE_SIP_METHOD = "INVITE";
+ private static final int TEST_SIP_RESPONSE_CODE = 200;
+ private static final int TEST_SIP_CLOSE_RESPONSE_CODE = 0;
+ @Mock
+ private RcsStats mRcsStats;
@Before
public void setUp() {
mStringEntryCounter = 0;
- mTrackerUT = new SipSessionTracker();
+ MockitoAnnotations.initMocks(this);
+ mTrackerUT = new SipSessionTracker(TEST_SUB_ID, mRcsStats);
+ }
+
+ @Test
+ public void testMetricsEndedGracefullyBye() {
+ DialogAttributes attr = new DialogAttributes();
+ // INVITE
+ SipMessage inviteRequest = generateSipRequest(SipMessageUtils.INVITE_SIP_METHOD, attr);
+ filterMessage(inviteRequest, attr);
+ assertTrue(mTrackerUT.getConfirmedDialogs().isEmpty());
+ verifyContainsCallIds(mTrackerUT.getEarlyDialogs(), attr);
+
+ // confirmed dialog
+ attr.setToTag();
+ SipMessage inviteConfirm = generateSipResponse("200", "OK", attr);
+ filterMessage(inviteConfirm, attr);
+ assertTrue(mTrackerUT.getEarlyDialogs().isEmpty());
+ verifyContainsCallIds(mTrackerUT.getConfirmedDialogs(), attr);
+
+ // Gracefully Ended
+ SipMessage inviteClose = generateSipRequest(SipMessageUtils.BYE_SIP_METHOD, attr);
+ filterMessage(inviteClose, attr);
+
+ assertTrue(mTrackerUT.getEarlyDialogs().isEmpty());
+ assertTrue(mTrackerUT.getConfirmedDialogs().isEmpty());
+ verifyContainsCallIds(mTrackerUT.getClosedDialogs(), attr);
+
+ // verify Metrics information
+ verify(mRcsStats).onSipTransportSessionClosed(eq(TEST_SUB_ID), eq(attr.callId),
+ eq(TEST_SIP_CLOSE_RESPONSE_CODE), eq(true));
+ }
+
+ @Test
+ public void testMetricsCloseCleanupSession() {
+ //mTrackerUT.setRcsStats(mRcsStats);
+ DialogAttributes attr = new DialogAttributes();
+ // INVITE A -> B
+ SipMessage inviteRequest = generateSipRequest(SipMessageUtils.INVITE_SIP_METHOD, attr);
+ filterMessage(inviteRequest, attr);
+ assertTrue(mTrackerUT.getConfirmedDialogs().isEmpty());
+ verifyContainsCallIds(mTrackerUT.getEarlyDialogs(), attr);
+
+ // confirmed dialog
+ attr.setToTag();
+ SipMessage inviteConfirm = generateSipResponse("200", "OK", attr);
+ filterMessage(inviteConfirm, attr);
+ assertTrue(mTrackerUT.getEarlyDialogs().isEmpty());
+ verifyContainsCallIds(mTrackerUT.getConfirmedDialogs(), attr);
+
+ //forcefully close session
+ mTrackerUT.cleanupSession(attr.callId);
+ assertTrue(mTrackerUT.getEarlyDialogs().isEmpty());
+ assertTrue(mTrackerUT.getConfirmedDialogs().isEmpty());
+ assertTrue(mTrackerUT.getClosedDialogs().isEmpty());
+
+ // verify Metrics information
+ verify(mRcsStats).onSipTransportSessionClosed(eq(TEST_SUB_ID), eq(attr.callId),
+ eq(TEST_SIP_CLOSE_RESPONSE_CODE), eq(false));
+ }
+
+ @Test
+ public void testMetricsCloseClearAllSessions() {
+ //mTrackerUT.setRcsStats(mRcsStats);
+ DialogAttributes attr = new DialogAttributes();
+
+ // INVITE
+ SipMessage inviteRequest = generateSipRequest(SipMessageUtils.INVITE_SIP_METHOD, attr);
+ filterMessage(inviteRequest, attr);
+ assertTrue(mTrackerUT.getConfirmedDialogs().isEmpty());
+ verifyContainsCallIds(mTrackerUT.getEarlyDialogs(), attr);
+
+ // confirmed dialog
+ attr.setToTag();
+ SipMessage inviteConfirm = generateSipResponse("200", "OK", attr);
+ filterMessage(inviteConfirm, attr);
+ assertTrue(mTrackerUT.getEarlyDialogs().isEmpty());
+ verifyContainsCallIds(mTrackerUT.getConfirmedDialogs(), attr);
+
+ //forcefully close session
+ mTrackerUT.clearAllSessions();
+ assertTrue(mTrackerUT.getEarlyDialogs().isEmpty());
+ assertTrue(mTrackerUT.getConfirmedDialogs().isEmpty());
+ assertTrue(mTrackerUT.getClosedDialogs().isEmpty());
+
+ // verify Metrics information
+ verify(mRcsStats).onSipTransportSessionClosed(eq(TEST_SUB_ID), eq(attr.callId),
+ eq(TEST_SIP_CLOSE_RESPONSE_CODE), eq(false));
}
@Test
@@ -291,7 +393,8 @@
public void testAcknowledgeMessageFailed() {
DialogAttributes attr = new DialogAttributes();
SipMessage inviteRequest = generateSipRequest(SipMessageUtils.INVITE_SIP_METHOD, attr);
- mTrackerUT.filterSipMessage(inviteRequest);
+ mTrackerUT.filterSipMessage(
+ SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__OUTGOING, inviteRequest);
// Do not acknowledge the request and ensure that the operation has not been applied yet.
assertTrue(mTrackerUT.getConfirmedDialogs().isEmpty());
assertTrue(mTrackerUT.getEarlyDialogs().isEmpty());
@@ -310,8 +413,10 @@
// We unexpectedly received two filter requests for the same branchId without
// acknowledgePendingMessage being called in between. Ensure that when it is called, it
// applies both operations.
- mTrackerUT.filterSipMessage(inviteRequest);
- mTrackerUT.filterSipMessage(inviteConfirm);
+ mTrackerUT.filterSipMessage(
+ SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__OUTGOING, inviteRequest);
+ mTrackerUT.filterSipMessage(
+ SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__OUTGOING, inviteConfirm);
assertTrue(mTrackerUT.getEarlyDialogs().isEmpty());
assertTrue(mTrackerUT.getConfirmedDialogs().isEmpty());
// we should skip right to confirmed as both operations run back-to-back
@@ -321,7 +426,8 @@
}
private void filterMessage(SipMessage m, DialogAttributes attr) {
- mTrackerUT.filterSipMessage(m);
+ mTrackerUT.filterSipMessage(
+ SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__OUTGOING, m);
mTrackerUT.acknowledgePendingMessage(attr.branchId);
}
private void verifyContainsCallIds(Set<SipDialog> callIdSet, DialogAttributes... attrs) {
diff --git a/tests/src/com/android/services/telephony/rcs/SipTransportControllerTest.java b/tests/src/com/android/services/telephony/rcs/SipTransportControllerTest.java
index 0f139f8..42a45f4 100644
--- a/tests/src/com/android/services/telephony/rcs/SipTransportControllerTest.java
+++ b/tests/src/com/android/services/telephony/rcs/SipTransportControllerTest.java
@@ -78,6 +78,7 @@
@RunWith(AndroidJUnit4.class)
public class SipTransportControllerTest extends TelephonyTestBase {
private static final int TEST_SUB_ID = 1;
+ private static final int TEST_UID = 1001;
private static final String TEST_PACKAGE_NAME = "com.test_pkg";
private static final String TEST_PACKAGE_NAME_2 = "com.test_pkg2";
private static final int TIMEOUT_MS = 200;
@@ -132,13 +133,13 @@
mSmsPackageName.add(TEST_PACKAGE_NAME);
doAnswer(invocation -> {
Integer subId = invocation.getArgument(0);
- String packageName = invocation.getArgument(2);
- DelegateRequest request = invocation.getArgument(1);
+ String packageName = invocation.getArgument(3);
+ DelegateRequest request = invocation.getArgument(2);
SipDelegateController c = getMockDelegateController(subId, packageName, request);
assertNotNull("create called with no corresponding controller set up", c);
return c;
- }).when(mMockDelegateControllerFactory).create(anyInt(), any(), anyString(), any(), any(),
- any(), any(), any());
+ }).when(mMockDelegateControllerFactory).create(anyInt(), anyInt(), any(), anyString(),
+ any(), any(), any(), any(), any());
setFeatureAllowedConfig(TEST_SUB_ID, new String[]{ImsSignallingUtils.MMTEL_TAG,
ImsSignallingUtils.ONE_TO_ONE_CHAT_TAG, ImsSignallingUtils.GROUP_CHAT_TAG,
ImsSignallingUtils.FILE_TRANSFER_HTTP_TAG});
@@ -254,7 +255,7 @@
doReturn(mSipTransport).when(mRcsManager).getSipTransport();
controller.onRcsConnected(mRcsManager);
try {
- controller.createSipDelegate(TEST_SUB_ID + 1,
+ controller.createSipDelegate(TEST_SUB_ID + 1, TEST_UID,
new DelegateRequest(Collections.emptySet()), TEST_PACKAGE_NAME,
mock(ISipDelegateConnectionStateCallback.class),
mock(ISipDelegateMessageCallback.class));
@@ -271,7 +272,7 @@
doReturn(null).when(mRcsManager).getSipTransport();
controller.onRcsConnected(mRcsManager);
try {
- controller.createSipDelegate(TEST_SUB_ID,
+ controller.createSipDelegate(TEST_SUB_ID, TEST_UID,
new DelegateRequest(Collections.emptySet()), TEST_PACKAGE_NAME,
mock(ISipDelegateConnectionStateCallback.class),
mock(ISipDelegateMessageCallback.class));
@@ -289,7 +290,7 @@
.when(mRcsManager).getSipTransport();
// No RCS connected message
try {
- controller.createSipDelegate(TEST_SUB_ID,
+ controller.createSipDelegate(TEST_SUB_ID, TEST_UID,
new DelegateRequest(Collections.emptySet()), TEST_PACKAGE_NAME,
mock(ISipDelegateConnectionStateCallback.class),
mock(ISipDelegateMessageCallback.class));
@@ -812,7 +813,7 @@
CompletableFuture<Boolean> pendingChange = setChangeSupportedFeatureTagsFuture(
delegateControllerContainer.delegateController, allowedTags, deniedTags);
try {
- controller.createSipDelegate(delegateControllerContainer.subId,
+ controller.createSipDelegate(delegateControllerContainer.subId, TEST_UID,
delegateControllerContainer.delegateRequest,
delegateControllerContainer.packageName,
delegateControllerContainer.mockDelegateConnectionCallback,
diff --git a/tests/src/com/android/services/telephony/rcs/TransportSipMessageValidatorTest.java b/tests/src/com/android/services/telephony/rcs/TransportSipMessageValidatorTest.java
index 4d222e3..0fe897f 100644
--- a/tests/src/com/android/services/telephony/rcs/TransportSipMessageValidatorTest.java
+++ b/tests/src/com/android/services/telephony/rcs/TransportSipMessageValidatorTest.java
@@ -16,6 +16,9 @@
package com.android.services.telephony.rcs;
+import static com.android.internal.telephony.TelephonyStatsLog.SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__INCOMING;
+import static com.android.internal.telephony.TelephonyStatsLog.SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__OUTGOING;
+
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
@@ -23,6 +26,7 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -37,6 +41,7 @@
import com.android.TelephonyTestBase;
import com.android.TestExecutorService;
+import com.android.internal.telephony.metrics.RcsStats;
import com.android.services.telephony.rcs.validator.IncomingTransportStateValidator;
import com.android.services.telephony.rcs.validator.OutgoingTransportStateValidator;
import com.android.services.telephony.rcs.validator.ValidationResult;
@@ -76,6 +81,8 @@
private IncomingTransportStateValidator mIncomingStateValidator;
@Mock
private OutgoingTransportStateValidator mOutgoingStateValidator;
+ @Mock
+ private RcsStats mRcsStats;
@Before
public void setUp() throws Exception {
@@ -117,12 +124,50 @@
}
@Test
+ public void testMetricsResponse() {
+ String testSipInviteMethod = "INVITE";
+ String testSipMessageMethod = "MESSAGE";
+ int testSipResponseCode = 200;
+ int testMessageError = 0;
+
+ TestExecutorService executor = new TestExecutorService();
+ TransportSipMessageValidator tracker = openTransport(executor);
+ // Since the incoming/outgoing messages were verified, there should have been two calls
+ // to filter the message.
+ verify(mSipSessionTracker).filterSipMessage(
+ SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__OUTGOING, TEST_MESSAGE);
+ verify(mSipSessionTracker).filterSipMessage(
+ SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__INCOMING, TEST_MESSAGE);
+
+ assertTrue(tracker.verifyOutgoingMessage(generateSipRequest("INVITE",
+ "testId1"), TEST_CONFIG_VERSION).isValidated);
+ verify(mRcsStats).onSipMessageRequest(eq("testId1"),
+ eq(testSipInviteMethod),
+ eq(SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__OUTGOING));
+
+ assertTrue(tracker.verifyOutgoingMessage(generateSipRequest("MESSAGE",
+ "testId2"), TEST_CONFIG_VERSION).isValidated);
+ verify(mRcsStats).onSipMessageRequest(eq("testId2"),
+ eq(testSipMessageMethod),
+ eq(SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__OUTGOING));
+
+ assertTrue(tracker.verifyIncomingMessage(
+ generateSipResponse("200", "OK", "testId2"))
+ .isValidated);
+ verify(mRcsStats).onSipMessageResponse(eq(TEST_SUB_ID), eq("testId2"),
+ eq(testSipResponseCode), eq(testMessageError));
+ }
+
+ @Test
public void testSessionTrackerFiltering() {
TestExecutorService executor = new TestExecutorService();
TransportSipMessageValidator tracker = openTransport(executor);
// Since the incoming/outgoing messages were verified, there should have been two calls
// to filter the message.
- verify(mSipSessionTracker, times(2)).filterSipMessage(TEST_MESSAGE);
+ verify(mSipSessionTracker).filterSipMessage(
+ SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__OUTGOING, TEST_MESSAGE);
+ verify(mSipSessionTracker).filterSipMessage(
+ SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__INCOMING, TEST_MESSAGE);
// ensure pass through methods are working
tracker.acknowledgePendingMessage("abc");
verify(mSipSessionTracker).acknowledgePendingMessage("abc");
@@ -140,7 +185,10 @@
assertFalse(tracker.verifyOutgoingMessage(TEST_MESSAGE, TEST_CONFIG_VERSION).isValidated);
// The number of times the filter method was called should still only be two after these
// messages were not validated.
- verify(mSipSessionTracker, times(2)).filterSipMessage(TEST_MESSAGE);
+ verify(mSipSessionTracker).filterSipMessage(
+ SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__OUTGOING, TEST_MESSAGE);
+ verify(mSipSessionTracker).filterSipMessage(
+ SIP_TRANSPORT_SESSION__SIP_MESSAGE_DIRECTION__INCOMING, TEST_MESSAGE);
}
@@ -482,6 +530,27 @@
doReturn(ValidationResult.SUCCESS).when(mIncomingStateValidator).validate(any());
doReturn(mIncomingStateValidator).when(mIncomingStateValidator).andThen(any());
return new TransportSipMessageValidator(TEST_SUB_ID, executor, mSipSessionTracker,
- mOutgoingStateValidator, mIncomingStateValidator);
+ mOutgoingStateValidator, mIncomingStateValidator, mRcsStats);
+ }
+
+ private SipMessage generateSipResponse(String statusCode, String statusString, String callId) {
+ String fromHeader = "Alice <sip:alice@atlanta.com>;tag=1928301774";
+ String toHeader = "Bob <sip:bob@biloxi.com>";
+ String branchId = "AAAA";
+ String fromTag = "tag=1928301774";
+ String toTag = "";
+ return SipMessageUtils.generateSipResponse(statusCode, statusString, fromHeader,
+ toHeader, branchId, callId, fromTag, toTag);
+ }
+
+ private SipMessage generateSipRequest(String requestMethod, String callId) {
+ String fromHeader = "Alice <sip:alice@atlanta.com>;tag=1928301774";
+ String toHeader = "Bob <sip:bob@biloxi.com>";
+ String branchId = "AAAA";
+ String fromTag = "tag=1928301774";
+ String toTag = "";
+ String toUri = "sip:bob@biloxi.com";
+ return SipMessageUtils.generateSipRequest(requestMethod, fromHeader, toHeader,
+ toUri, branchId, callId, fromTag, toTag);
}
}
diff --git a/tests/src/com/android/services/telephony/rcs/UceControllerManagerTest.java b/tests/src/com/android/services/telephony/rcs/UceControllerManagerTest.java
index 8d719fd..17decb9 100644
--- a/tests/src/com/android/services/telephony/rcs/UceControllerManagerTest.java
+++ b/tests/src/com/android/services/telephony/rcs/UceControllerManagerTest.java
@@ -19,6 +19,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
@@ -199,9 +200,9 @@
doReturn(false).when(mUceController).isUnavailable();
uceCtrlManager.onRcsConnected(mRcsFeatureManager);
- uceCtrlManager.getUcePublishState();
+ uceCtrlManager.getUcePublishState(true);
- verify(mUceController).getUcePublishState();
+ verify(mUceController).getUcePublishState(eq(true));
}
@Test
@@ -211,7 +212,7 @@
uceCtrlManager.onRcsDisconnected();
try {
- uceCtrlManager.getUcePublishState();
+ uceCtrlManager.getUcePublishState(true);
fail();
} catch (ImsException e) {
assertEquals(ImsException.CODE_ERROR_SERVICE_UNAVAILABLE, e.getCode());
@@ -225,9 +226,9 @@
UceControllerManager uceCtrlManager = getUceControllerManager();
IRcsUcePublishStateCallback callback = Mockito.mock(IRcsUcePublishStateCallback.class);
- uceCtrlManager.registerPublishStateCallback(callback);
+ uceCtrlManager.registerPublishStateCallback(callback, true);
- verify(mUceController).registerPublishStateCallback(callback);
+ verify(mUceController).registerPublishStateCallback(callback, true);
}
@Test
@@ -238,7 +239,7 @@
try {
IRcsUcePublishStateCallback callback = Mockito.mock(IRcsUcePublishStateCallback.class);
- uceCtrlManager.registerPublishStateCallback(callback);
+ uceCtrlManager.registerPublishStateCallback(callback, true);
fail();
} catch (ImsException e) {
assertEquals(ImsException.CODE_ERROR_SERVICE_UNAVAILABLE, e.getCode());