Merge "Update IN emergency routing." into main
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index b6171fc..3dc9e08 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -181,6 +181,8 @@
<!-- Needed because the DISPLAY_EMERGENCY_MESSAGE ConnectionEvent contains a PendingIntent to activate the satellite feature. -->
<uses-permission android:name="com.google.android.apps.stargate.permission.SEND_EMERGENCY_INTENTS"/>
+ <!-- Needed to start demo session -->
+ <uses-permission android:name="com.google.android.apps.stargate.permission.SEND_NON_EMERGENCY_INTENTS"/>
<application android:name="PhoneApp"
android:persistent="true"
@@ -563,7 +565,7 @@
<receiver
android:name="com.android.phone.vvm.VvmSmsReceiver"
- android:exported="false"
+ android:exported="true"
androidprv:systemUserOnly="true">
<intent-filter>
<action android:name="com.android.internal.provider.action.VOICEMAIL_SMS_RECEIVED"/>
@@ -572,7 +574,7 @@
<receiver
android:name="com.android.phone.vvm.VvmSimStateTracker"
- android:exported="false"
+ android:exported="true"
androidprv:systemUserOnly="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
diff --git a/res/layout/radio_info.xml b/res/layout/radio_info.xml
index 24590bc..9ab8157 100644
--- a/res/layout/radio_info.xml
+++ b/res/layout/radio_info.xml
@@ -283,6 +283,16 @@
android:textAllCaps="false"
android:text="@string/satellite_enable_non_emergency_mode_string" />
+ <!-- Demo ESOS -->
+ <Button android:id="@+id/demo_esos_questionnaire"
+ android:textSize="14sp"
+ android:layout_marginTop="8dip"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textAllCaps="false"
+ android:text="@string/demo_esos_satellite_string"
+ />
+
<!-- VoLTE provisioned -->
<Switch android:id="@+id/volte_provisioned_switch"
android:textSize="14sp"
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index ab4d432..62d1768 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Satellietmodus van skyndiensverskaffer (net ontfoutingsbou)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Toets regte satelliet-eSOS-modus (net ontfoutingsbou)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Toets nie-eSOS-modus vir regte satelliet (net ontfoutingsbou)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Toets demonstrasiesatelliet-eSOS-modus (net ontfoutingsbou)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Bekyk SIM-adresboek"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Kyk na vaste skakelnommers"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Bekyk skakeldiensnommers"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 542906e..6d06af7 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock Carrier Satellite Mode (የስህተት ማረሚያ ግንባታ ብቻ)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"የእውነተኛ ሳተላይት eSOS ሁነታን ይሞክሩ (የስህተት ማረሚያ ግንብ ብቻ)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"የእውነተኛ ሳተላይት eSOS ያልሆነ ሁነታን ይሞክሩ (የስህተት ማረሚያ ግንብ ብቻ)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"የቅንጭብ ማሳያ ሳተላይት eSOS ሁነታን ይሞክሩ (የስህተት ማረሚያ ግንብ ብቻ)"</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>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 7bcf5df..3711f6d 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"وضع القمر الصناعي التجريبي لمشغّل شبكة الجوّال (إصدار مخصّص لتصحيح الأخطاء فقط)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"اختبار وضع القمر الصناعي الحقيقي لنظام eSOS (إصدار مخصّص لتصحيح الأخطاء فقط)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"اختبار وضع القمر الصناعي الحقيقي غير تابع لنظام eSOS (إصدار مخصّص لتصحيح الأخطاء فقط)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"اختبار وضع \"اتصالات الطوارئ بالقمر الصناعي\" التجريبي (إصدار مخصّص لتصحيح الأخطاء فقط)"</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>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 8bd4124..3d4e9e5 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"নকল বাহক উপগ্ৰহ ম’ড (কেৱল ডিবাগ বিল্ড)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"বাস্তৱিক উপগ্ৰহৰ eSOS ম’ড পৰীক্ষা কৰক (কেৱল ডিবাগ বিল্ড)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"বাস্তৱিক উপগ্ৰহৰ অনা eSOS ম’ড পৰীক্ষা কৰক (কেৱল ডিবাগ বিল্ড)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"উপগ্ৰহৰ eSOS ম’ডৰ ডেম’ পৰীক্ষা কৰক (কেৱল ডিবাগ বিল্ড)"</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>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 2f116a0..98cba28 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Sınaq Daşıyıcı Peyk Rejimi (yalnız sazlama versiyası)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Real peyk eSOS rejimini sınaqdan keçirin (yalnız sazlama versiyası)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Real peyk qeyri-eSOS rejimini sınaqdan keçirin (yalnız sazlama versiyası)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Demo peyk eSOS rejimini sınaqdan keçirin (yalnız sazlama versiyası)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM Ünvan Kitabçasına Baxın"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Sabit Yığım Nömrələrinə Baxın"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xidmət Yığım Nömrələrinə Baxın"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 7b1f8f1..5847e27 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Lažni režim mobilnog operatera za slanje preko satelita (samo verzija za otklanjanje grešaka)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Testirajte stvarni satelitski eSOS režim (samo verzija sa otklonjenim greškama)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testirajte stvarni satelitski režim koji nije eSOS (samo verzija sa otklonjenim greškama)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testirajte demo verziju satelitskog eSOS režima (samo verzija sa otklonjenim greškama)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži adresar SIM-a"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve za fiksno biranje"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve za servisno biranje"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index a3df58c..3e340b0 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Імітацыя рэжыму спадарожніка з SIM-картай ад аператара (толькі ў зборцы для адладкі)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Тэсціраванне рэальнага рэжыму спадарожнікавага падключэння eSOS (толькі ў зборцы для адладкі)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Тэсціраванне рэальнага няэкстраннага (non-eSOS) рэжыму спадарожнікавага падключэння (толькі ў зборцы для адладкі)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Тэсціраванне дэманстрацыйнага рэжыму спадарожнікавага падключэння eSOS (толькі ў зборцы для адладкі)"</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>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 565f0c4..0b867c0 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Симулиран сателитен режим от оператора (само в компилацията за отстраняване на грешки)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Тестване на режим на истински сателитен eSOS (само в компилацията за отстраняване на грешки)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Тестване на режим на истинска сателитна неспешна комуникация (само в компилацията за отстраняване на грешки)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Тестване на режим на демонстрация на сателитен eSOS (само в компилацията за отстраняване на грешки)"</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>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 8c2f1e3..1dbc459 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"নকল পরিষেবা প্রদানকারী উপগ্রহ মোড (শুধুমাত্র ডিবাগ বিল্ড)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"রিয়েল স্যাটেলাইট eSOS মোড পরীক্ষা করুন (শুধুমাত্র ডিবাগ বিল্ড)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"রিয়েল স্যাটেলাইট নন-ইএসওএস মোড পরীক্ষা করুন (শুধুমাত্র ডিবাগ বিল্ড)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ডেমো স্যাটেলাইট eSOS মোড পরীক্ষা করুন (শুধুমাত্র ডিবাগ বিল্ড)"</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>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 258bc3e..53de99d 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Lažni način rada operatera za slanje putem satelita (samo verzija za otklanjanje grešaka)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Testiraj stvarni način rada satelitskog eSOS-a (samo verzija za otklanjanje grešaka)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testiraj stvarni način rada satelita koji nije eSOS (samo verzija za otklanjanje grešaka)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testiraj demo način rada satelitskog eSOS-a (samo verzija za otklanjanje grešaka)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži SIM adresar"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve fiksnog biranja"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve biranja usluga"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index fbca0e7..2caf08b 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mode de satèl·lit d\'un operador de telefonia mòbil simulat (només per a la compilació de depuració)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Provar el mode eSOS de satèl·lit real (només per a la compilació de depuració)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Prova el mode no eSOS de satèl·lit real (només per a la compilació de depuració)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Provar el mode de demostració d\'eSOS de satèl·lit (només per a la compilació de depuració)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Mostra la llibreta d\'adreces de la SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Mostra els números de marcatge fix"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Mostra els números de marcatge de serveis"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 1ba26ab..f925eed 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simulace satelitního režimu operátora (pouze ladicí sestavení)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Otestovat reálný režim nouzových zpráv přes satelit (pouze ladicí sestavení)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Otestovat reálný režim jiných než nouzových zpráv přes satelit (pouze ladicí sestavení)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Otestovat ukázkový režim nouzových zpráv přes satelit (pouze ladicí sestavení)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Zobrazit adresář SIM karty"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Zobrazit povolená telefonní čísla"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Zobrazit čísla volání služeb"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 8f22449..209c3b8 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Test af satellittilstand via mobilselskab (kun fejlretningsbuild)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Test af virkelig eSOS-satellittilstand (kun fejlretningsbuild)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test af virkelig satellittilstand, der ikke er eSOS (kun fejlretningsbuild)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test af demo for eSOS-satellittilstand (kun fejlretningsbuild)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Vis adressebog på SIM-kortet"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vis numre til begrænset opkald"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vis tjenestens faste opkaldsnumre"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 48b244b..63b55b8 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Vom Mobilfunkanbieter simulierter Satellitenmodus (nur Debug-Build)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"eSOS-Modus mit echtem Satelliten testen (nur Debug-Build)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"non-eSOS-Modus mit echtem Satelliten testen (nur Debug-Build)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"eSOS-Modus mit Demo-Satelliten testen (nur Debug-Build)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM-Adressbuch anzeigen"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Rufnummernbeschränkung ansehen"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Servicerufnummern anzeigen"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 21a6a3d..1bea937 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Εικονική λειτουργία δορυφόρου εταιρείας κινητής τηλεφωνίας (μόνο έκδοση εντοπισμού σφαλμάτων)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Δοκιμή πραγματικής δορυφορικής λειτουργίας eSOS (μόνο έκδοση εντοπισμού σφαλμάτων)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Δοκιμή πραγματικής δορυφορικής λειτουργίας εκτός eSOS (μόνο έκδοση εντοπισμού σφαλμάτων)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Έλεγχος δοκιμαστικής δορυφορικής λειτουργίας eSOS (μόνο έκδοση εντοπισμού σφαλμάτων)"</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>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 6781469..aa47712 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock operator satellite mode (debug build only)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Test real satellite eSOS mode (debug build only)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test real satellite non-eSOS mode (debug build only)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test demo satellite eSOS mode (debug build only)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 23e47f4..787865a 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock Carrier Satellite Mode (Debug Build only)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Test real satellite eSOS mode (Debug Build only)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test real satellite non-eSOS mode (Debug Build only)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test demo satellite eSOS mode (Debug Build only)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM Address Book"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View Fixed Dialing Numbers"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View Service Dialing Numbers"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 6781469..aa47712 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock operator satellite mode (debug build only)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Test real satellite eSOS mode (debug build only)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test real satellite non-eSOS mode (debug build only)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test demo satellite eSOS mode (debug build only)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 6781469..aa47712 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock operator satellite mode (debug build only)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Test real satellite eSOS mode (debug build only)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test real satellite non-eSOS mode (debug build only)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test demo satellite eSOS mode (debug build only)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 937a21b..e63ff72 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock Carrier Satellite Mode (Debug Build only)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Test real satellite eSOS mode (Debug Build only)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test real satellite non-eSOS mode (Debug Build only)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test demo satellite eSOS mode (Debug Build only)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM Address Book"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View Fixed Dialing Numbers"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View Service Dialing Numbers"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 0f9eb27..b16e00a 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Modo Satélite del operador de prueba (solo en la compilación de depuración)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Prueba el modo eSOS de satélite real (solo en la compilación de depuración)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Prueba el modo que no es eSOS por satélite real (solo en la compilación de depuración)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Prueba el modo de demostración de eSOS de satélite (solo en la compilación de depuración)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver libreta de direcciones de SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fija"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servicio"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 6ae502c..02ffc3f 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simulación del modo Satélite de operador (solo versión de depuración)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Probar el modo eSOS por satélite real (solo versión de depuración)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Probar el modo no eSOS por satélite real (solo versión de depuración)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Probar el modo eSOS por satélite de demostración (solo versión de depuración)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver libreta de direcciones de tarjeta SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fija"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servicio"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index cde1355..c40fc7c 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simuleeritud operaatori satelliidirežiim (ainult silumisjärgus)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Režiimi eSOS katsetamine reaalse satelliitsidesüsteemi puhul (ainult silumisjärk)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Režiimi mitte-eSOS katsetamine reaalse satelliitsidesüsteemi puhul (ainult silumisjärk)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Režiimi eSOS katsetamine demo satelliitsidesüsteemi puhul (ainult silumisjärk)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Kuva SIM-i aadressiraamat"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Kuva fikseeritud valimisnumbrid"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Kuva teenuse valimise numbrid"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index d89c331..1400f18 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simulatu operadorearen satelite modua (arazketa-konpilazioa soilik)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Probatu satelite bidezko SOS larrialdien modua (arazketa-konpilazioa soilik)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Probatu satelite bidezko SOS larrialdien modua ez dena (arazketa-konpilazioa soilik)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Probatu satelite bidezko SOS larrialdien moduaren demo-bertsioa (arazketa-konpilazioa soilik)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ikusi SIMeko kontaktuak"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ikusi markatze finkoko zenbakiak"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ikusi zerbitzuaren markatze-zenbakiak"</string>
@@ -871,7 +872,7 @@
<string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Deskonektatuta"</string>
<string name="radioInfo_data_connecting" msgid="925092271092152472">"Konektatzen"</string>
<string name="radioInfo_data_connected" msgid="7637335645634239508">"Konektatuta"</string>
- <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Aldi baterako itxitakoak"</string>
+ <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Aldi baterako etenda"</string>
<string name="radioInfo_unknown" msgid="5401423738500672850">"Ezezaguna"</string>
<string name="radioInfo_imei_primary" msgid="5948747378637224400">"Nagusia"</string>
<string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index baeb97e..eee2cad 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"حالت ماهوارهای شرکت مخابراتی ساختگی (فقط ساخت اشکالزدایی)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"آزمایش کردن حالت واقعی درخواست کمک اضطراری ماهوارهای (فقط ساخت اشکالزدایی)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"آزمایش کردن حالت واقعی درخواست کمک غیراضطراری ماهوارهای (فقط ساخت اشکالزدایی)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"آزمایش کردن نسخه نمایشی درخواست کمک اضطراری ماهوارهای (فقط ساخت اشکالزدایی)"</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>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index e4fdf01..c7a42bf 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Operaattorin satelliittitilaesimerkki (vain virheenkorjauksen koontiversio)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Testaa oikeaa Satellite eSOS ‑tilaa (vain virheenkorjauksen koontiversio)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testaa oikeaa Satellite non-eSOS ‑tilaa (vain virheenkorjauksen koontiversio)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testaa Satellite eSOS ‑demotilaa (vain virheenkorjauksen koontiversio)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Näytä SIM-kortin osoitekirja"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Näytä sallitut numerot"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Näytä sallitut palvelunumerot"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 7f92869..b41952a 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mode Satellite de l\'opérateur simulé (version de débogage uniquement)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Tester le mode eSOS par satellite réel (version de débogage uniquement)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Tester le mode non-eSOS par satellite réel (version de débogage uniquement)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Tester eSOS par satellite en mode Démo (version de débogage uniquement)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afficher le carnet d\'adresses de la carte SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afficher les numéros d\'appel fixes"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Afficher les numéros de service"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index ed4b589..65539b6 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simuler le mode Satellite de l\'opérateur (version de débogage uniquement)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Tester le SOS par satellite en mode réel (version de débogage uniquement)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Tester le mode non-eSOS par satellite réel (version de débogage uniquement)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Tester eSOS par satellite en mode démo (version de débogage uniquement)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afficher le carnet d\'adresses de la carte SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afficher les numéros autorisés"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Afficher les numéros de service"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 605f596..4240da8 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simular o modo Satélite do operador (só compilación de depuración)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Probar o modo real eSOS por satélite (só compilación de depuración)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Probar o modo real non eSOS por satélite (só compilación de depuración)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Probar o modo de demostración de eSOS por satélite (só compilación de depuración)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver axenda de enderezos da SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fixa"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servizo"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 7daef87..576f693 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"મૉક કૅરિઅર સૅટલાઇટ મોડ (માત્ર ડિબગ બિલ્ડ માટે)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"રિઅલ સૅટલાઇટ eSOS મોડનું પરિક્ષણ કરો (માત્ર ડિબગ બિલ્ડ માટે)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"રિઅલ સૅટલાઇટ નૉન-eSOS મોડનું પરિક્ષણ કરો (માત્ર ડિબગ બિલ્ડ માટે)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ડેમો સૅટલાઇટ eSOS મોડનું પરીક્ષણ કરો (માત્ર ડિબગ બિલ્ડ માટે)"</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>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index fceb3ab..701a5e8 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी के सैटलाइट मोड की मॉक टेस्टिंग करें (सिर्फ़ डीबग के लिए बिल्ड)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"रीयल सैटलाइट इमरजेंसी एसओएस मोड को आज़माएं (सिर्फ़ डीबग के लिए बिल्ड)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"रीयल सैटलाइट नॉन इमरजेंसी एसओएस मोड को आज़माएं (सिर्फ़ डीबग के लिए बिल्ड)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"डेमो सैटलाइट इमरजेंसी एसओएस मोड को आज़माएं (सिर्फ़ डीबग के लिए बिल्ड)"</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>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index b232e94..4c6018f 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Lažni način mobilnog operatera za slanje putem satelita (samo međuverzija programa za otklanjanje pogrešaka)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Testiranje eSOS načina pravog satelita (samo međuverzija programa za otklanjanje pogrešaka)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testiranje načina pravog satelita bez eSOS-a (samo međuverzija programa za otklanjanje pogrešaka)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testiranje pokazne verzije eSOS načina satelita (samo međuverzija programa za otklanjanje pogrešaka)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži imenik SIM-a"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve za fiksno biranje"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve za servisno biranje"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 679aa78..0d40686 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Szimulált szolgáltató – Műholdas mód (csak hibaelhárító build)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"A valódi műholdas eSOS mód tesztelése (csak hibaelhárító build)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"A valódi műholdas, nem eSOS mód tesztelése (csak hibaelhárító build)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"A műholdas eSOS demó mód tesztelése (csak hibaelhárító build)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM-kártya telefonkönyvének megtekintése"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Fix hívószámok megtekintése"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Szolgáltatásszámok megtekintése"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index df55938..e4796c6 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -561,7 +561,7 @@
<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_satellite_enabled" msgid="5247740814607087814">"Զանգ կատարելու համար նախ անջատեք արբանյակային կապը։"</string>
- <string name="incall_error_carrier_roaming_satellite_mode" msgid="678603203562886361">"Դուք կարող եք ուղարկել և ստանալ հաղորդագրություններ՝ առանց բջջային կամ Wi-Fi կապի։"</string>
+ <string name="incall_error_carrier_roaming_satellite_mode" msgid="678603203562886361">"Դուք կարող եք հաղորդագրություններ ուղարկել և ստանալ առանց բջջային կամ 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>
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Օպերատորի արբանյակի ռեժիմի սիմուլյացիա (միայն վրիպազերծման կառուցում)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Փորձարկել իրական արբանյակային eSOS ռեժիմը (միայն վրիպազերծման կառուցման մեջ)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Փորձարկել իրական արբանյակային ոչ eSOS ռեժիմը (միայն վրիպազերծման կառուցման մեջ)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Փորձարկել արբանյակային eSOS ռեժիմը դեմո տարբերակով (միայն վրիպազերծման կառուցման մեջ)"</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>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 4dcfe10..e10e576 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mode Satelit Operator Tiruan (khusus Build Debug)."</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Uji mode eSOS satelit asli (khusus Build Debug)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Uji mode non-eSOS satelit asli (khusus Build Debug)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Uji mode eSOS satelit demo (khusus Build Debug)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Lihat Buku Alamat SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Lihat Panggilan Terbatas"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Lihat Nomor Panggilan Layanan"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index ca79dab..80d183a 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Eftirlíking af gervihnattarstillingu símafyrirtækis (aðeins villuleitarsmíði)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Prófa eSOS-stillingu raunverulegs gervihnattar (eingöngu villuleitarsmíð)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Prófa af-eSOS-stillingu raunverulegs gervihnattar (eingöngu villuleitarsmíð)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Prófa prufuútgáfu af eSOS-stillingu gervihnattar (eingöngu villuleitarsmíð)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Skoða símaskrá SIM-korts"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Skoða læst númeraval"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Skoða þjónustunúmer"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 783d454..24fa3f5 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Modalità satellite operatore fittizio (solo build di debug)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Testa la modalità eSOS con satellite reale (solo build di debug)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testa la modalità non-eSOS con satellite reale (solo build di debug)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Prova la demo della modalità eSOS con satellite (solo build di debug)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Visualizza rubrica SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Visualizza numeri consentiti"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Visualizza numeri dell\'elenco dei numeri di servizio"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 86877f3..8beaca6 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -850,6 +850,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"מצב שמדמה תקשורת לוויינית דרך ספק הסלולר (גרסת build לניפוי באגים בלבד)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"מצב בדיקה שמדמה תקשורת לוויינית eSOS (גרסת build לניפוי באגים בלבד)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"מצב בדיקה שמדמה תקשורת לוויינית לא במצב eSOS (גרסת build לניפוי באגים בלבד)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"מצב בדיקה שמדמה תקשורת לוויינית eSOS (גרסת build לניפוי באגים בלבד)"</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>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 45dea92..4d7e6ef 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"携帯通信会社の疑似航空写真モード(デバッグビルドのみ)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"実際に衛星経由の緊急 SOS モードをテストする(デバッグビルドのみ)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"実際に衛星経由の非緊急 SOS モードをテストする(デバッグビルドのみ)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"デモ用の衛星による緊急 SOS モードをテストする(デバッグビルドのみ)"</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>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index fcefd85..84bef56 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"სიმულაციური ოპერატორის სატელიტის რეჟიმი (მხოლოდ გამართვის აგება)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"სატელიტური eSOS-ის რეალური რეჟიმის ტესტირება (მხოლოდ გამართვის მიზნით)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"სატელიტური eSOS-ის რეალური რეჟიმის ტესტირება (მხოლოდ გამართვის მიზნით)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"სატელიტური eSOS-ის დემო-ვერსიის ტესტირება (მხოლოდ გამართვის მიზნით)"</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>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 696f4e1..80cf2db 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock Carrier жер серігі режимі (тек түзету құрамасы)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Шынайы жерсеріктегі құтқару қызметін шақыру режимін сынау (тек түзету құрамасы)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Шынайы жерсерікті құтқару қызметін шақыру режимінен басқа режимде сынау (тек түзету құрамасы)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Демо жерсеріктегі құтқару қызметін шақыру режимін сынау (тек түзету құрамасы)"</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>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index b0cb037..e8754ae 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"មុខងារផ្កាយរណបក្រុមហ៊ុនសេវាទូរសព្ទសាកល្បង (កំណែបង្កើតសម្រាប់ជួសជុលតែប៉ុណ្ណោះ)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"មុខងារធ្វើតេស្ត eSOS ផ្កាយរណបជាក់ស្ដែង (កំណែបង្កើតសម្រាប់ជួសជុលតែប៉ុណ្ណោះ)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"មុខងារធ្វើតេស្តដែលមិនមែនជា eSOS ផ្កាយរណបជាក់ស្ដែង (កំណែបង្កើតសម្រាប់ជួសជុលតែប៉ុណ្ណោះ)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"មុខងារធ្វើតេស្ត eSOS ផ្កាយរណបសាកល្បង (កំណែបង្កើតសម្រាប់ជួសជុលតែប៉ុណ្ណោះ)"</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>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index e06bbdb..590c076 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock Carrier ಉಪಗ್ರಹ ಮೋಡ್ (ಡೀಬಗ್ ಬಿಲ್ಡ್ ಮಾತ್ರ)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"ನೈಜ ಸ್ಯಾಟಲೈಟ್ eSOS ಮೋಡ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಿ (ಡೀಬಗ್ ಬಿಲ್ಡ್ ಮಾತ್ರ)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"ರಿಯಲ್ ಸ್ಯಾಟಲೈಟ್ ನಾನ್-eSOS ಮೋಡ್ (ಡೀಬಗ್ ಬಿಲ್ಡ್ ಮಾತ್ರ) ಅನ್ನು ಟೆಸ್ಟ್ ಮಾಡಿ"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ಸ್ಯಾಟಲೈಟ್ eSOS ಮೋಡ್ ಅನ್ನು ಟೆಸ್ಟ್ ಡೆಮೋ ನೀಡಿ (ಡೀಬಗ್ ಬಿಲ್ಡ್ ಮಾತ್ರ)"</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>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 353c085..0f2d842 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"모의 이동통신사 위성 모드(디버그 빌드만 해당)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"실제 위성 eSOS 모드 테스트(디버그 빌드만 해당)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"실제 위성 비eSOS 모드 테스트(디버그 빌드만 해당)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"데모 위성 eSOS 모드 테스트(디버그 빌드만 해당)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM 주소록 보기"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"발신 허용 번호 보기"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"SDN(Service Dialing Numbers) 보기"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index f1ed6ec..7b95b1c 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Симуляцияланган байланыш операторунун спутниги (Мүчүлүштүктөрдү оңдоо үчүн гана)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Чыныгы спутник eSOS режимин сыноо (Мүчүлүштүктөрдү оңдоо үчүн гана)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"eSOS болбогон чыныгы спутник режимин сыноо (Мүчүлүштүктөрдү оңдоо үчүн гана)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Демо спутник eSOS режимин сыноо (Мүчүлүштүктөрдү оңдоо үчүн гана)"</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>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index af275cc..1aa16a7 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"ຈຳລອງໂໝດດາວທຽມຂອງຜູ້ໃຫ້ບໍລິການ (ສຳລັບ Build ດີບັກເທົ່ານັ້ນ)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"ທົດສອບໂໝດ eSOS ດາວທຽມແທ້ (ສຳລັບ Build ດີບັກເທົ່ານັ້ນ)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"ທົດສອບໂໝດດາວທຽມແທ້ທີ່ບໍ່ແມ່ນ eSOS (ສຳລັບ Build ດີບັກເທົ່ານັ້ນ)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ທົດສອບໂໝດ eSOS ຂອງດາວທຽມເດໂມ (ສຳລັບ Build ດີບັກເທົ່ານັ້ນ)"</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>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index ebf0b54..52d7574 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Netikras operatoriaus satelito režimas (tik derinimo versija)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Išbandykite tikrą Pagalbos iškvietimo kritiniu atveju naudojant palydovinį ryšį režimą (tik derinimo versija)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Išbandykite tikrą Pagalbos iškvietimo ne kritiniu atveju naudojant palydovinį ryšį režimą (tik derinimo versija)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Išbandykite demonstracinę Pagalbos iškvietimo kritiniu atveju naudojant palydovinį ryšį versiją (tik derinimo versija)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Žiūrėti SIM kortelės adresų knygą"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Žiūrėti fiksuotojo rinkimo numerius"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Žiūrėti paslaugos renkamus numerius"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 2fe2838..2559bf2 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -848,7 +848,8 @@
<string name="enforce_satellite_channel_string" msgid="295306734591329892">"LTE satelīta kanāla piespiedu izmantošana (tikai atkļūdošanas būvējums)"</string>
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mobilo sakaru operatora satelīta režīma imitēšana (tikai atkļūdošanas būvējums)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Izmēģināt īsta satelīta eSOS režīmu (tikai atkļūdošanas būvējumā)"</string>
- <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Izmēģināt īsta satelīta eSOS režīmu (tikai atkļūdošanas būvējumā)"</string>
+ <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Izmēģināt īsta satelīta režīmu, kas nav eSOS režīms (tikai atkļūdošanas būvējumā)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Izmēģināt demonstrācijas satelīta eSOS režīmu (tikai atkļūdošanas būvējumā)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Skatīt SIM adrešu grāmatu"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Skatīt ierobežotā zvanu saraksta numurus"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Pakalpojuma iezvanes numuru skatīšana"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 1443c5e..7798553 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Симулација на режим на сателит за оператор (само за верзиите за отстранување грешки)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Тестирајте го реалниот режим на eSOS (само во верзијата за отстранување грешки)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Тестирајте го реалниот режим што не е на eSOS (само во верзијата за отстранување грешки)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Тестирајте го демо-режимот на eSOS (само во верзијата за отстранување грешки)"</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>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index c40a014..b7e392d 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock സേവനദാതാവ് ഉപഗ്രഹ മോഡ് (ഡീബഗ് ബിൽഡ് മാത്രം)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"യഥാർത്ഥ സാറ്റലൈറ്റ് eSOS മോഡ് പരീക്ഷിക്കുക (ഡീബഗ് ബിൽഡ് മാത്രം)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"യഥാർത്ഥ സാറ്റലൈറ്റ് eSOS ഇതര മോഡ് പരീക്ഷിക്കുക (ഡീബഗ് ബിൽഡ് മാത്രം)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ഡെമോ സാറ്റലൈറ്റ് eSOS മോഡ് പരീക്ഷിക്കുക (ഡീബഗ് ബിൽഡ് മാത്രം)"</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>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 550be96..1e583ed 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Оператор компанийн хуурамч хиймэл дагуулын горим (зөвхөн дебаг хийсэн хийц)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Жинхэнэ хиймэл дагуул eSOS горимыг турших (зөвхөн дебаг хийсэн хийц)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Жинхэнэ хиймэл дагуул eSOS бус горимыг турших (зөвхөн дебаг хийсэн хийц)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Демо хиймэл дагуул eSOS горимыг турших (зөвхөн дебаг хийсэн хийц)"</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>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 61c42a7..8f69537 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"नमुना वाहकाचा उपग्रह मोड (फक्त डीबग बिल्ड)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"प्रत्यक्ष सॅटेलाइट eSOS मोडची चाचणी करा (फक्त डीबग बिल्ड)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"eSOS नसलेल्या वास्तविक सॅटेलाइट मोडची चाचणी करा (फक्त डीबग बिल्ड)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"डेमो सॅटेलाइट eSOS मोडची चाचणी करा (फक्त डीबग बिल्ड)"</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>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index d961557..da8b455 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Contoh Mod Satelit Pembawa (Binaan Penyahpepijatan sahaja)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Uji mod sSOS satelit sebenar (Binaan Penyahpepijatan sahaja)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Uji mod bukan eSOS satelit sebenar (Binaan Penyahpepijatan sahaja)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Uji mod eSOS satelit demo (Binaan Penyahpepijatan sahaja)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Lihat Buku Alamat SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Lihat Nombor Dailan Tetap"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Lihat Nombor Dailan Perkhidmatan"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index e0b1b0b..2d03099 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock Carrier Satellite Mode (အမှားရှာပြင်ခြင်း အတွက်သာ)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"ဂြိုဟ်တုအစစ် eSOS မုဒ်ကို စမ်းသပ်ခြင်း (အမှားရှာပြင်ခြင်းအတွက်သာ)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"ဂြိုဟ်တုအစစ် eSOS မဟုတ်သော မုဒ်ကို စမ်းသပ်ခြင်း (အမှားရှာပြင်ခြင်းအတွက်သာ)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"သရုပ်ပြ ဂြိုဟ်တု eSOS မုဒ်ကို စမ်းသပ်ခြင်း (အမှားရှာပြင်ခြင်းအတွက်သာ)"</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>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 8c92262..2e0d34a 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Satelittmodus for fiktiv operatør (feilsøkingsversjon)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Test ekte satellitt med eSOS-modus (kun for feilsøkingsversjoner)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test ekte satellitt med ikke-eSOS-modus (kun for feilsøkingsversjoner)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test demo av satellitt med eSOS-modus (kun for feilsøkingsversjoner)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Se adressebok for SIM-kort"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vis forhåndsbestemte numre"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vis tjenestenumre"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 2c6c4a0..8dc8d3c 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"सेवा प्रदायकको स्याटेलाइट मोडको परीक्षण गर्नुहोस् (डिबग बिल्ड मात्र)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"वास्तविक स्याटेलाइट eSOS मोड परीक्षण गर्नुहोस् (डिबग बिल्ड मात्र)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"वास्तविक स्याटेलाइट eSOS बाहेकका मोड (डिबग बिल्ड मात्र) परीक्षण गर्नुहोस्"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"डेमो स्याटेलाइट eSOS मोडको परीक्षण गर्नुहोस् (डिबग बिल्ड मात्र)"</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>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 32e7b8a..903992d 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Satellietmodus voor testprovider (alleen in foutopsporingsbuild)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Echte e-SOS via satellietmodus testen (alleen in foutopsporingsbuild)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Echte niet-noodoproep via satellietmodus testen (alleen in foutopsporingsbuild)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Demo e-SOS via satellietmodus testen (alleen in foutopsporingsbuild)"</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>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 88e246d..d8c85fc 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"ମକ କେରିଅର ସେଟେଲାଇଟ ମୋଡ (କେବଳ ଡିବଗ ବିଲ୍ଡ)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"ପ୍ରକୃତ ସେଟେଲାଇଟର eSOS ମୋଡ ପରୀକ୍ଷା କରନ୍ତୁ (କେବଳ ଡିବଗ ବିଲ୍ଡ)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"ପ୍ରକୃତ ସେଟେଲାଇଟର ଅଣ-eSOS ମୋଡ ପରୀକ୍ଷା କରନ୍ତୁ (କେବଳ ଡିବଗ ବିଲ୍ଡ)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ଡେମୋ ସେଟେଲାଇଟର eSOS ମୋଡ ପରୀକ୍ଷା କରନ୍ତୁ (କେବଳ ଡିବଗ ବିଲ୍ଡ)"</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>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 2daf441..c7716c5 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"ਮੌਕ ਕੈਰੀਅਰ ਉਪਗ੍ਰਹਿ ਮੋਡ (ਸਿਰਫ਼ ਡੀਬੱਗ ਬਿਲਡ)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"ਰੀਅਲ ਸੈਟੇਲਾਈਟ eSOS ਮੋਡ ਅਜ਼ਮਾਓ (ਸਿਰਫ਼ ਡੀਬੱਗ ਬਿਲਡ)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"ਰੀਅਲ ਸੈਟੇਲਾਈਟ ਗੈਰ-eSOS ਮੋਡ ਅਜ਼ਮਾਓ (ਸਿਰਫ਼ ਡੀਬੱਗ ਬਿਲਡ)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ਡੈਮੋ ਸੈਟੇਲਾਈਟ eSOS ਮੋਡ ਅਜ਼ਮਾਓ (ਸਿਰਫ਼ ਡੀਬੱਗ ਬਿਲਡ)"</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>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 9be350d..6869859 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Symulowany tryb satelitarny operatora (tylko kompilacja do debugowania)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Testowanie rzeczywistego trybu satelitarnego eSOS (tylko kompilacja do debugowania)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testowanie rzeczywistego trybu satelitarnego innego niż eSOS (tylko kompilacja do debugowania)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testowanie wersji demonstracyjnej trybu satelitarnego eSOS (tylko kompilacja do debugowania)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Wyświetl książkę adresową z karty SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Wyświetl ustalone numery"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Wyświetl numery usług"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 64f1228..54c04d3 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Modo satélite da operadora fictícia (apenas na versão de depuração)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Testar modo eSOS de satélite real (apenas na versão de depuração)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Teste o modo não eSOS de satélite real (apenas na versão de depuração)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testar demonstração de modo eSOS de satélite (apenas na versão de depuração)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver livro de endereços do SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números autorizados"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcação de serviços"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 2da29c0..91d1ffc 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simulação de modo satélite da operadora (somente build de depuração)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Testar o modo eSOS por satélite (somente build de depuração)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testar o modo sem emergência de satélite real (somente build de depuração)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testar a demonstração do modo eSOS por satélite (somente build de depuração)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver o catálogo de endereços do chip"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de discagem fixa"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de discagem do serviço"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 39ed189..c6ed47a 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mod Satelit al operatorului de testare (numai versiune pentru remedierea erorilor)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Testează modul eSOS prin satelit real (numai versiunea pentru remedierea erorilor)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testează modul non-eSOS prin satelit real (numai versiunea pentru remedierea erorilor)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testează modul demonstrativ eSOS prin satelit (numai versiunea pentru remedierea erorilor)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afișează agenda de pe SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afișează numerele pentru apeluri restricționate"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vezi numere de apelare de serviciu"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index af109ba..1ce3446 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Режим спутниковой связи симуляции оператора (только отладочная сборка)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Проверка спутникового режима eSOS (только отладочная сборка)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Проверка спутниковой связи в режиме, отличном от eSOS (только отладочная сборка)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Проверка демоверсии спутникового режима eSOS (только отладочная сборка)"</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>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 0d55756..ce57f2e 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"ආදර්ශ වාහක චන්ද්රිකා ප්රකාරය (නිදොස් තැනීමට පමණි)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"සැබෑ චන්ද්රිකා eSOS ප්රකාරය පරීක්ෂා කරන්න (නිදොස් තැනීමට පමණි)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"සැබෑ චන්ද්රිකා eSOS නොවන ප්රකාරය පරීක්ෂා කරන්න (නිදොස් තැනීමට පමණි)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ආදර්ශන චන්ද්රිකා eSOS ප්රකාරය පරීක්ෂා කරන්න (නිදොස් තැනීමට පමණි)"</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>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index b8faaf3..cbeef7e 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simulácia satelitného režimu operátora (iba ladiaca zostava)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Testovať režim pomoci v tiesni cez skutočné satelity (iba ladiaca zostava)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testovať štandardný režim cez skutočné satelity (iba ladiaca zostava)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testovať režim pomoci v tiesni cez demo satelity (iba ladiaca zostava)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Zobraziť adresár SIM karty"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Zobraziť povolené čísla"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Zobraziť čísla volaní služieb"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 790f05c..565d6ad 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Lažni satelitski način operaterja (samo gradnja za odpravljanje napak)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Preizkus pravega satelitskega načina eSOS (samo gradnja za odpravljanje napak)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Preizkus pravega satelitskega (nenujnega) načina eSOS (samo gradnja za odpravljanje napak)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Preizkus predstavitvenega satelitskega načina eSOS (samo gradnja za odpravljanje napak)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži imenik na kartici SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži številke za zaporo odhodnih klicev"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži številke za klicanje storitev"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 0b7f3c8..c8483d2 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simulo modalitetin e satelitit të operatorit celular (vetëm versioni i korrigjimit)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Testo modalitetin real të \"eSOS satelitor\" (vetëm versioni i korrigjimit)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testo modalitetin real satelitor jo për eSOS (vetëm versioni i korrigjimit)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testo modalitetin e demonstrimit të \"eSOS satelitor\" (vetëm versioni i korrigjimit)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Shiko librin e adresave të kartës SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Shiko numrat me telefonim të përzgjedhur"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Shiko numrat e telefonit të shërbimit"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 1d862d5..e297d29 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Лажни режим мобилног оператера за слање преко сателита (само верзија за отклањање грешака)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Тестирајте стварни сателитски eSOS режим (само верзија са отклоњеним грешкама)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Тестирајте стварни сателитски режим који није eSOS (само верзија са отклоњеним грешкама)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Тестирајте демо верзију сателитског eSOS режима (само верзија са отклоњеним грешкама)"</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>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 92ae1e8..3083085 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simulering av operatörssatellitläge (version endast för felsökning)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Testa verkligt eSOS-satellitläge (endast felsökningsversion)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testa verkligt icke-eSOS-satellitläge (endast felsökningsversion)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testa demoläge för eSOS-satellit (endast felsökningsversion)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Visa SIM-adressbok"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Visa Fasta nummer"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Visa tjänstenummer"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 3f9e96a..a9f5b5e 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Hali ya Setilaiti ya Jaribio la Mtoa Huduma (Muundo wa Utatuzi pekee)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Kujaribu hali ya msaada halisi wa mtandaoni kupitia setilaiti (Muundo wa Utatuzi pekee)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Kujaribu hali ya non-eSOS kwenye setilaiti halisi (Muundo wa Utatuzi pekee)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Kujaribu hali ya eSOS kwenye setilaiti ya jaribio (Muundo wa Utatuzi pekee)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Angalia Kitabu cha Anwani katika SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ona Nambari za Simu Zilizobainishwa"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Angalia Nambari Zilizowekwa na Mtoa Huduma"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 48b0796..94000ca 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock மொபைல் நிறுவன சாட்டிலைட் பயன்முறை (பிழைதிருத்த பதிப்பு மட்டும்)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"அசல் சாட்டிலைட் eSOS பயன்முறை (பிழைதிருத்தப் பதிப்பு மட்டும்)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"அசல் சாட்டிலைட் eSOS அல்லாத பயன்முறையைப் பயன்படுத்திப் பாருங்கள் (பிழைதிருத்தப் பதிப்பு மட்டும்)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"டொமோ சாட்டிலைட் eSOS பயன்முறையைப் பரிசோதனை செய்தல் (பிழைதிருத்தப் பதிப்பு மட்டும்)"</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>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 75ddcf4..e3f11c2 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"మాక్ క్యారియర్ శాటిలైట్ మోడ్ (డీబగ్ బిల్డ్ మోడ్లో మాత్రమే)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"రియల్ శాటిలైట్ eSOS మోడ్ను టెస్ట్ చేయండి (డీబగ్ బిల్డ్ మోడ్లో మాత్రమే)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"రియల్ శాటిలైట్ eSOS యేతర మోడ్ను టెస్ట్ చేయండి (డీబగ్ బిల్డ్ మోడ్లో మాత్రమే)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"డెమో శాటిలైట్ eSOS మోడ్ను టెస్ట్ చేయండి (డీబగ్ బిల్డ్ మోడ్లో మాత్రమే)"</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>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index c802e9b..856e46f 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"โหมดดาวเทียมของผู้ให้บริการจำลอง (บิลด์การแก้ไขข้อบกพร่องเท่านั้น)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"ทดสอบโหมด eSOS ของดาวเทียมจริง (บิลด์การแก้ไขข้อบกพร่องเท่านั้น)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"ทดสอบโหมด non-eSOS ของดาวเทียมจริง (บิลด์การแก้ไขข้อบกพร่องเท่านั้น)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ทดสอบโหมด eSOS ของดาวเทียมเดโม (บิลด์การแก้ไขข้อบกพร่องเท่านั้น)"</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>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index f879b4e..5a71a7a 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Satellite Mode ng Mock Carrier (Debug Build lang)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Test real satellite eSOS mode (Build sa Pag-debug lang)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test real satellite non-eSOS mode (Build sa Pag-debug lang)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test demo satellite eSOS mode (Build sa Pag-debug lang)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Tingnan ang Address Book ng SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Tingnan ang Mga Fixed Dialing Number"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Tingnan ang Mga Service Dialing Number"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 5874a3d..a838e24 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Örnek operatör uydu modu (yalnızca hata ayıklama derlemesi)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Gerçek uydu eSOS modunu test et (yalnızca hata ayıklama derlemesi)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Gerçek uydu üzerinde eSOS olmayan modu test et (yalnızca hata ayıklama derlemesi)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Demo uydu üzerinde eSOS modunu test et (yalnızca hata ayıklama derlemesi)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM Adres Defterini Görüntüle"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Sabit Arama Numaralarını Görüntüle"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Hizmet Arama Numaralarını Görüntüle"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index f3e6136..9804b5a 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Режим супутника оператора Mock (лише складання для налагодження)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Тестувати реальний режим супутникового сигналу SOS (лише складання для налагодження)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Тестувати реальний режим супутникового сигналу, відмінного від SOS (лише складання для налагодження)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Тестування демоверсії супутникового сигналу SOS (складання лише для налагодження)"</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>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 7a54626..e1ce502 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"موک کیریئر سیٹلائٹ موڈ (صرف ڈیبگ بلڈ)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"اصل سیٹلائٹ eSOS وضع کی جانچ کریں (صرف ڈیبگ بلڈ)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"اصل سیٹلائٹ غیر eSOS وضع کی جانچ کریں (صرف ڈیبگ بلڈ)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ڈیمو سیٹلائٹ eSOS وضع کی جانچ کریں (صرف ڈیبگ بلڈ)"</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>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 9784ba8..19e656f 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Soxta operator sputnik rejimi (faqat debag nashrida)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Haqiqiy sputnik eSOS rejimini sinash (faqat debag nashrida)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Haqiqiy sputnik non-eSOS rejimini sinash (faqat debag nashrida)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Demo sputnik eSOS rejimini sinash (faqat debag nashrida)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM kartadagi abonentlar ro‘yxatini ochish"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ruxsat etilgan raqamlar ro‘yxatini ochish"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xizmatlarni terish raqamlarini ochish"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 624b06f..1c20629 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mô phỏng chế độ vệ tinh của nhà mạng (chỉ dành cho Bản gỡ lỗi)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Thử nghiệm chế độ eSOS thực tế qua vệ tinh (chỉ bản gỡ lỗi)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Thử nghiệm chế độ không khẩn cấp thực tế qua vệ tinh (chỉ dành cho bản gỡ lỗi)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Thử nghiệm chế độ eSOS minh hoạ qua vệ tinh (chỉ dành cho bản gỡ lỗi)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Xem sổ địa chỉ trên SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Xem số gọi định sẵn"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xem số quay số dịch vụ"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 940be24..2e89307 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"模拟运营商卫星模式(仅限调试 build)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"测试真实的卫星 eSOS 模式(仅限调试 build)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"测试真实的卫星非 eSOS 模式(仅限调试 build)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"测试卫星 eSOS 演示模式(仅限调试 build)"</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>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 2848f94..8bd9499 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"模擬流動網絡供應商衛星模式 (僅限偵錯版本)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"測試「緊急衛星連接」真實模式 (僅限偵錯版本)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"測試「非緊急衛星連接」真實模式 (僅限偵錯版本)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"測試「緊急衛星連接」試用模式 (僅限偵錯版本)"</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>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 39b0b84..e979872 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"模擬電信業者衛星模式 (僅限偵錯版本)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"實際測試衛星緊急求救模式 (僅限偵錯版本)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"實際測試衛星非緊急求救模式 (僅限偵錯版本)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"測試衛星緊急求救展示模式 (僅限偵錯版本)"</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>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 4b563fc..eda6421 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -849,6 +849,7 @@
<string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Imodi Yesethelayithi Yenkampani Yenethiwekhi ye-Mock (Susa Iphutha Esakhiweni kuphela)"</string>
<string name="esos_satellite_string" msgid="7274794226125968657">"Hlola imodi yesathelayithi yangempela ye-eSOS (Ukwakhiwa Kokususa Iphutha kuphela)"</string>
<string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Hlola imodi yesathelayithi yangempela ekungesiyo ye-eSOS (Ukwakhiwa Kokususa Iphutha kuphela)"</string>
+ <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Hlola imodi yesathelayithi yedemo ye-eSOS (Ukwakhiwa Kokususa Iphutha kuphela)"</string>
<string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Buka incwadi yekheli le-SIM"</string>
<string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Buka Izinombolo Zokudayela Okungaguquki"</string>
<string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Buka Izinombolo Zokudayela Isevisi"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 305f7cb..f3bff1b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2037,6 +2037,8 @@
<string name="esos_satellite_string">Test real satellite eSOS mode (Debug Build only)</string>
<!-- Title for enable real satellite non-emergency mode. -->
<string name="satellite_enable_non_emergency_mode_string">Test real satellite non-eSOS mode (Debug Build only)</string>
+ <!-- Title for trigger demo satellite eSOS. -->
+ <string name="demo_esos_satellite_string">Test demo satellite eSOS mode (Debug Build only)</string>
<!-- Phone Info screen. Menu item label. Used for diagnostic info screens, precise translation isn't needed -->
<string name="radioInfo_menu_viewADN">View SIM Address Book</string>
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 65dcb94..2cd0336 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -4354,8 +4354,9 @@
PackageManager.FEATURE_TELEPHONY_CALLING, "sendVisualVoicemailSmsForSubscriber");
SmsController smsController = PhoneFactory.getSmsController();
- smsController.sendVisualVoicemailSmsForSubscriber(callingPackage, callingAttributionTag,
- subId, number, port, text, sentIntent);
+ smsController.sendVisualVoicemailSmsForSubscriber(callingPackage,
+ Binder.getCallingUserHandle().getIdentifier(), callingAttributionTag, subId, number,
+ port, text, sentIntent);
}
/**
@@ -9321,11 +9322,17 @@
*/
@Override
public void getCarrierRestrictionStatus(IIntegerConsumer callback, String packageName) {
- enforceReadPermission("getCarrierRestrictionStatus");
-
+ String functionName = "getCarrierRestrictionStatus";
enforceTelephonyFeatureWithException(packageName,
- PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, "getCarrierRestrictionStatus");
-
+ PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, functionName);
+ try {
+ mApp.enforceCallingOrSelfPermission(
+ android.Manifest.permission.READ_BASIC_PHONE_STATE,
+ functionName);
+ } catch (SecurityException e) {
+ mApp.enforceCallingOrSelfPermission(permission.READ_PHONE_STATE,
+ functionName);
+ }
Set<Integer> carrierIds = validateCallerAndGetCarrierIds(packageName);
if (carrierIds.contains(CarrierAllowListInfo.INVALID_CARRIER_ID)) {
Rlog.e(LOG_TAG, "getCarrierRestrictionStatus: caller is not registered");
@@ -13965,9 +13972,9 @@
TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp,
SubscriptionManager.INVALID_SUBSCRIPTION_ID,
"setCachedLocationCountryCode");
- return TelephonyCountryDetector.getInstance(getDefaultPhone().getContext()).setCountryCodes(
- reset, currentNetworkCountryCodes, cachedNetworkCountryCodes, locationCountryCode,
- locationCountryCodeTimestampNanos);
+ return TelephonyCountryDetector.getInstance(getDefaultPhone().getContext(), mFeatureFlags)
+ .setCountryCodes(reset, currentNetworkCountryCodes, cachedNetworkCountryCodes,
+ locationCountryCode, locationCountryCodeTimestampNanos);
}
/**
@@ -14311,8 +14318,13 @@
@SatelliteManager.SatelliteResult public int registerForCommunicationAllowedStateChanged(
int subId, @NonNull ISatelliteCommunicationAllowedStateCallback callback) {
enforceSatelliteCommunicationPermission("registerForCommunicationAllowedStateChanged");
- return mSatelliteAccessController.registerForCommunicationAllowedStateChanged(
- subId, callback);
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return mSatelliteAccessController.registerForCommunicationAllowedStateChanged(
+ subId, callback);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
/**
@@ -14330,7 +14342,13 @@
public void unregisterForCommunicationAllowedStateChanged(
int subId, @NonNull ISatelliteCommunicationAllowedStateCallback callback) {
enforceSatelliteCommunicationPermission("unregisterForCommunicationAllowedStateChanged");
- mSatelliteAccessController.unregisterForCommunicationAllowedStateChanged(subId, callback);
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ mSatelliteAccessController.unregisterForCommunicationAllowedStateChanged(subId,
+ callback);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
/**
@@ -14346,7 +14364,12 @@
public void requestSatelliteSessionStats(int subId, @NonNull ResultReceiver result) {
enforceModifyPermission();
enforcePackageUsageStatsPermission("requestSatelliteSessionStats");
- mSatelliteController.requestSatelliteSessionStats(subId, result);
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ mSatelliteController.requestSatelliteSessionStats(subId, result);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
/**
@@ -14358,25 +14381,14 @@
* @throws SecurityException if the caller doesn't have the required permission.
*/
@Override
- public void requestProvisionSubscriberIds(@NonNull ResultReceiver result) {
- enforceSatelliteCommunicationPermission("requestProvisionSubscriberIds");
- mSatelliteController.requestProvisionSubscriberIds(result);
- }
-
- /**
- * Request to get provisioned status for given a satellite subscriber id.
- *
- * @param satelliteSubscriberId Satellite subscriber id requiring provisioned status check.
- * @param result The result receiver, which returns the provisioned status of the token if the
- * request is successful or an error code if the request failed.
- *
- * @throws SecurityException if the caller doesn't have the required permission.
- */
- @Override
- public void requestIsProvisioned(@NonNull String satelliteSubscriberId,
- @NonNull ResultReceiver result) {
- enforceSatelliteCommunicationPermission("requestIsProvisioned");
- mSatelliteController.requestIsProvisioned(satelliteSubscriberId, result);
+ public void requestSatelliteSubscriberProvisionStatus(@NonNull ResultReceiver result) {
+ enforceSatelliteCommunicationPermission("requestSatelliteSubscriberProvisionStatus");
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ mSatelliteController.requestSatelliteSubscriberProvisionStatus(result);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
/**
@@ -14391,6 +14403,11 @@
public void provisionSatellite(@NonNull List<SatelliteSubscriberInfo> list,
@NonNull ResultReceiver result) {
enforceSatelliteCommunicationPermission("provisionSatellite");
- mSatelliteController.provisionSatellite(list, result);
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ mSatelliteController.provisionSatellite(list, result);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
}
diff --git a/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java b/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
index d6a9b37..1e3aa2f 100644
--- a/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
+++ b/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
@@ -85,7 +85,6 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
-import java.time.Duration;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -130,10 +129,11 @@
private static final boolean DEBUG = !"user".equals(Build.TYPE);
private static final int MAX_CACHE_SIZE = 50;
- private static final int CMD_IS_SATELLITE_COMMUNICATION_ALLOWED = 1;
+ protected static final int CMD_IS_SATELLITE_COMMUNICATION_ALLOWED = 1;
protected static final int EVENT_WAIT_FOR_CURRENT_LOCATION_TIMEOUT = 2;
protected static final int EVENT_KEEP_ON_DEVICE_ACCESS_CONTROLLER_RESOURCES_TIMEOUT = 3;
protected static final int EVENT_CONFIG_DATA_UPDATED = 4;
+ protected static final int CMD_HANDLE_COUNTRY_CODE_CHANGED = 5;
private static SatelliteAccessController sInstance;
@@ -224,6 +224,25 @@
@Nullable
private PersistentLogger mPersistentLogger = null;
+ private final Object mPossibleChangeInSatelliteAllowedRegionLock = new Object();
+ @GuardedBy("mPossibleChangeInSatelliteAllowedRegionLock")
+ private boolean mIsSatelliteAllowedRegionPossiblyChanged = false;
+ protected long mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos = 0;
+
+ protected int mRetryCountForValidatingPossibleChangeInAllowedRegion;
+ protected static final int
+ DEFAULT_DELAY_MINUTES_BEFORE_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION = 10;
+ protected static final int
+ DEFAULT_MAX_RETRY_COUNT_FOR_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION = 3;
+ protected static final int DEFAULT_THROTTLE_INTERVAL_FOR_LOCATION_QUERY_MINUTES = 10;
+
+ private long mRetryIntervalToEvaluateUserInSatelliteAllowedRegion = 0;
+ private int mMaxRetryCountForValidatingPossibleChangeInAllowedRegion = 0;
+ private long mLocationQueryThrottleIntervalNanos = 0;
+
+ @NonNull
+ protected ResultReceiver mHandlerForSatelliteAllowedResult;
+
/**
* Map key: binder of the callback, value: callback to receive the satellite communication
* allowed state changed events.
@@ -234,10 +253,11 @@
@GuardedBy("mSatelliteCommunicationAllowStateLock")
private boolean mCurrentSatelliteAllowedState = false;
- private static final long ALLOWED_STATE_CACHE_VALID_DURATION_HOURS =
- Duration.ofHours(4).toNanos();
+ protected static final long ALLOWED_STATE_CACHE_VALID_DURATION_NANOS =
+ TimeUnit.HOURS.toNanos(4);
+
private boolean mLatestSatelliteCommunicationAllowed;
- private long mLatestSatelliteCommunicationAllowedSetTime;
+ protected long mLatestSatelliteCommunicationAllowedSetTime;
private long mLocationQueryStartTimeMillis;
private long mOnDeviceLookupStartTimeMillis;
@@ -249,10 +269,13 @@
* @param context The context associated with the
* {@link SatelliteAccessController} instance.
* @param featureFlags The FeatureFlags that are supported.
- * @param locationManager The LocationManager for querying current location of
+ * @param locationManager The LocationManager for querying current
+ * location of
* the device.
- * @param looper The Looper to run the SatelliteAccessController on.
- * @param satelliteOnDeviceAccessController The on-device satellite access controller instance.
+ * @param looper The Looper to run the SatelliteAccessController
+ * on.
+ * @param satelliteOnDeviceAccessController The on-device satellite access controller
+ * instance.
*/
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
protected SatelliteAccessController(@NonNull Context context,
@@ -269,7 +292,13 @@
mLocationManager = locationManager;
mTelecomManager = telecomManager;
mSatelliteOnDeviceAccessController = satelliteOnDeviceAccessController;
- mCountryDetector = TelephonyCountryDetector.getInstance(context);
+
+ mCountryDetector = TelephonyCountryDetector.getInstance(context, mFeatureFlags);
+ mCountryDetector.registerForCountryCodeChanged(this,
+ CMD_HANDLE_COUNTRY_CODE_CHANGED, null);
+ initializeHandlerForSatelliteAllowedResult();
+ setIsSatelliteAllowedRegionPossiblyChanged(false);
+
mSatelliteController = SatelliteController.getInstance();
mControllerMetricsStats = ControllerMetricsStats.getInstance();
mAccessControllerMetricsStats = AccessControllerMetricsStats.getInstance();
@@ -391,6 +420,9 @@
AsyncResult ar = (AsyncResult) msg.obj;
updateSatelliteConfigData((Context) ar.userObj);
break;
+ case CMD_HANDLE_COUNTRY_CODE_CHANGED:
+ handleSatelliteAllowedRegionPossiblyChanged();
+ break;
default:
plogw("SatelliteAccessControllerHandler: unexpected message code: " + msg.what);
break;
@@ -739,7 +771,8 @@
mConfigUpdaterMetricsStats.reportConfigUpdateSuccess();
}
- private void loadOverlayConfigs(@NonNull Context context) {
+ @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
+ protected void loadOverlayConfigs(@NonNull Context context) {
mSatelliteCountryCodes = getSatelliteCountryCodesFromOverlayConfig(context);
mIsSatelliteAllowAccessControl = getSatelliteAccessAllowFromOverlayConfig(context);
String satelliteS2CellFileName = getSatelliteS2CellFileFromOverlayConfig(context);
@@ -752,6 +785,11 @@
mLocationFreshDurationNanos = getSatelliteLocationFreshDurationFromOverlayConfig(context);
mAccessControllerMetricsStats.setConfigDataSource(
SatelliteConstants.CONFIG_DATA_SOURCE_DEVICE_CONFIG);
+ mRetryIntervalToEvaluateUserInSatelliteAllowedRegion =
+ getDelayBeforeRetryValidatingPossibleChangeInSatelliteAllowedRegionMillis(context);
+ mMaxRetryCountForValidatingPossibleChangeInAllowedRegion =
+ getMaxRetryCountForValidatingPossibleChangeInAllowedRegion(context);
+ mLocationQueryThrottleIntervalNanos = getLocationQueryThrottleIntervalNanos(context);
}
private void loadConfigUpdaterConfigs() {
@@ -874,6 +912,30 @@
}
}
+ /**
+ * At country borders, a multi-SIM device might connect to multiple cellular base
+ * stations and thus might have multiple different MCCs.
+ * In such cases, framework is not sure whether the region should be disallowed or not,
+ * and thus the geofence data will be used to decide whether to allow satellite.
+ */
+ private boolean isRegionDisallowed(List<String> networkCountryIsoList) {
+ if (networkCountryIsoList.isEmpty()) {
+ plogd("isRegionDisallowed : true : it's not sure if empty is disallowed");
+ return false;
+ }
+
+ for (String countryCode : networkCountryIsoList) {
+ if (isSatelliteAccessAllowedForLocation(List.of(countryCode))) {
+ plogd("isRegionDisallowed : false : Country Code " + countryCode
+ + " is in the list from the configuration");
+ return false;
+ }
+ }
+
+ plogd("isRegionDisallowed : true : " + networkCountryIsoList);
+ return true;
+ }
+
private void handleIsSatelliteSupportedResult(int resultCode, Bundle resultData) {
plogd("handleIsSatelliteSupportedResult: resultCode=" + resultCode);
synchronized (mLock) {
@@ -888,7 +950,19 @@
sendSatelliteAllowResultToReceivers(resultCode, bundle, false);
} else {
plogd("Satellite is supported");
- checkSatelliteAccessRestrictionUsingGPS();
+ List<String> networkCountryIsoList =
+ mCountryDetector.getCurrentNetworkCountryIso();
+ if (isRegionDisallowed(networkCountryIsoList)) {
+ Bundle bundle = new Bundle();
+ bundle.putBoolean(KEY_SATELLITE_COMMUNICATION_ALLOWED, false);
+ mAccessControllerMetricsStats.setAccessControlType(
+ SatelliteConstants.ACCESS_CONTROL_TYPE_NETWORK_COUNTRY_CODE)
+ .setCountryCodes(networkCountryIsoList);
+ sendSatelliteAllowResultToReceivers(SATELLITE_RESULT_SUCCESS, bundle,
+ false);
+ } else {
+ checkSatelliteAccessRestrictionUsingGPS();
+ }
}
} else {
ploge("KEY_SATELLITE_SUPPORTED does not exist.");
@@ -938,11 +1012,15 @@
}
mSatelliteAllowResultReceivers.clear();
}
+ if (!shouldRetryValidatingPossibleChangeInAllowedRegion(resultCode)) {
+ setIsSatelliteAllowedRegionPossiblyChanged(false);
+ }
reportMetrics(resultCode, allowed);
}
/**
- * Telephony-internal logic to verify if satellite access is restricted at the current location.
+ * Telephony-internal logic to verify if satellite access is restricted at the current
+ * location.
*/
private void checkSatelliteAccessRestrictionForCurrentLocation() {
synchronized (mLock) {
@@ -972,6 +1050,89 @@
}
}
+ private boolean shouldRetryValidatingPossibleChangeInAllowedRegion(int resultCode) {
+ return (resultCode == SATELLITE_RESULT_LOCATION_NOT_AVAILABLE);
+ }
+
+ private void initializeHandlerForSatelliteAllowedResult() {
+ mHandlerForSatelliteAllowedResult = new ResultReceiver(null) {
+ @Override
+ protected void onReceiveResult(int resultCode, Bundle resultData) {
+ plogd("query satellite allowed for current "
+ + "location, resultCode=" + resultCode + ", resultData=" + resultData);
+ synchronized (mPossibleChangeInSatelliteAllowedRegionLock) {
+ if (shouldRetryValidatingPossibleChangeInAllowedRegion(resultCode)
+ && (mRetryCountForValidatingPossibleChangeInAllowedRegion
+ < mMaxRetryCountForValidatingPossibleChangeInAllowedRegion)) {
+ mRetryCountForValidatingPossibleChangeInAllowedRegion++;
+ plogd("mRetryCountForValidatingPossibleChangeInAllowedRegion is "
+ + mRetryCountForValidatingPossibleChangeInAllowedRegion);
+ sendDelayedRequestAsync(CMD_IS_SATELLITE_COMMUNICATION_ALLOWED,
+ new Pair<>(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
+ mHandlerForSatelliteAllowedResult),
+ mRetryIntervalToEvaluateUserInSatelliteAllowedRegion);
+ } else {
+ mRetryCountForValidatingPossibleChangeInAllowedRegion = 0;
+ plogd("Stop retry validating the possible change in satellite allowed "
+ + "region");
+ }
+ }
+ }
+ };
+ }
+
+ private void handleSatelliteAllowedRegionPossiblyChanged() {
+ if (!mFeatureFlags.oemEnabledSatelliteFlag()) {
+ ploge("handleSatelliteAllowedRegionPossiblyChanged: "
+ + "The feature flag oemEnabledSatelliteFlag() is not enabled");
+ return;
+ }
+ synchronized (mPossibleChangeInSatelliteAllowedRegionLock) {
+ logd("handleSatelliteAllowedRegionPossiblyChanged");
+ setIsSatelliteAllowedRegionPossiblyChanged(true);
+ requestIsCommunicationAllowedForCurrentLocation(
+ SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
+ mHandlerForSatelliteAllowedResult);
+ }
+ }
+
+ protected boolean allowLocationQueryForSatelliteAllowedCheck() {
+ synchronized (mPossibleChangeInSatelliteAllowedRegionLock) {
+ if (!isCommunicationAllowedCacheValid()) {
+ logd("allowLocationQueryForSatelliteAllowedCheck: cache is not valid");
+ return true;
+ }
+
+ if (isSatelliteAllowedRegionPossiblyChanged() && !isLocationQueryThrottled()) {
+ logd("allowLocationQueryForSatelliteAllowedCheck: location query is not throttled");
+ return true;
+ }
+ }
+ logd("allowLocationQueryForSatelliteAllowedCheck: false");
+ return false;
+ }
+
+ private boolean isLocationQueryThrottled() {
+ if (mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos == 0) {
+ plogv("isLocationQueryThrottled: "
+ + "mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos is 0, return "
+ + "false");
+ return false;
+ }
+
+ long currentTime = getElapsedRealtimeNanos();
+ if (currentTime - mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos
+ > mLocationQueryThrottleIntervalNanos) {
+ plogv("isLocationQueryThrottled: currentTime - "
+ + "mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos is "
+ + "bigger than " + mLocationQueryThrottleIntervalNanos + " so return false");
+ return false;
+ }
+
+ plogd("isLocationQueryThrottled : true");
+ return true;
+ }
+
/**
* Telephony-internal logic to verify if satellite access is restricted from the location query.
*/
@@ -982,14 +1143,14 @@
} else {
if (mLocationManager.isLocationEnabled()) {
plogd("location query is allowed");
- if (isCommunicationAllowedCacheValid()) {
+ if (allowLocationQueryForSatelliteAllowedCheck()) {
+ executeLocationQuery();
+ } else {
Bundle bundle = new Bundle();
bundle.putBoolean(KEY_SATELLITE_COMMUNICATION_ALLOWED,
mLatestSatelliteCommunicationAllowed);
sendSatelliteAllowResultToReceivers(SATELLITE_RESULT_SUCCESS, bundle,
mLatestSatelliteCommunicationAllowed);
- } else {
- executeLocationQuery();
}
} else {
plogv("location query is not allowed");
@@ -1006,9 +1167,9 @@
*/
private boolean isCommunicationAllowedCacheValid() {
if (mLatestSatelliteCommunicationAllowedSetTime > 0) {
- long currentTime = SystemClock.elapsedRealtimeNanos();
+ long currentTime = getElapsedRealtimeNanos();
if ((currentTime - mLatestSatelliteCommunicationAllowedSetTime)
- <= ALLOWED_STATE_CACHE_VALID_DURATION_HOURS) {
+ <= ALLOWED_STATE_CACHE_VALID_DURATION_NANOS) {
logv("isCommunicationAllowedCacheValid: cache is valid");
return true;
}
@@ -1018,7 +1179,15 @@
}
private void executeLocationQuery() {
- plogv("executeLocationQuery");
+ plogd("executeLocationQuery");
+ synchronized (mPossibleChangeInSatelliteAllowedRegionLock) {
+ if (isSatelliteAllowedRegionPossiblyChanged()) {
+ mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos =
+ getElapsedRealtimeNanos();
+ plogd("mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos is set "
+ + mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos);
+ }
+ }
synchronized (mLock) {
mFreshLastKnownLocation = getFreshLastKnownLocation();
checkSatelliteAccessRestrictionUsingOnDeviceData();
@@ -1167,7 +1336,7 @@
sendSatelliteAllowResultToReceivers(SATELLITE_RESULT_SUCCESS, bundle,
satelliteAllowed);
mLatestSatelliteCommunicationAllowed = satelliteAllowed;
- mLatestSatelliteCommunicationAllowedSetTime = SystemClock.elapsedRealtimeNanos();
+ mLatestSatelliteCommunicationAllowedSetTime = getElapsedRealtimeNanos();
persistLatestSatelliteCommunicationAllowedState();
} catch (Exception ex) {
ploge("checkSatelliteAccessRestrictionForLocation: ex=" + ex);
@@ -1204,7 +1373,8 @@
return true;
}
- private boolean isSatelliteAccessAllowedForLocation(
+ @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
+ protected boolean isSatelliteAccessAllowedForLocation(
@NonNull List<String> networkCountryIsoList) {
if (isSatelliteAllowAccessControl()) {
// The current country is unidentified, we're uncertain and thus returning false
@@ -1267,6 +1437,9 @@
long lastKnownLocationAge =
getElapsedRealtimeNanos() - lastKnownLocation.getElapsedRealtimeNanos();
if (lastKnownLocationAge <= getLocationFreshDurationNanos()) {
+ plogd("getFreshLastKnownLocation: lat=" + Rlog.pii(TAG,
+ lastKnownLocation.getLatitude())
+ + ", long=" + Rlog.pii(TAG, lastKnownLocation.getLongitude()));
return lastKnownLocation;
}
}
@@ -1436,6 +1609,63 @@
}
@NonNull
+ private static long getDelayBeforeRetryValidatingPossibleChangeInSatelliteAllowedRegionMillis(
+ @NonNull Context context) {
+ Integer retryDuration = null;
+ try {
+ retryDuration = context.getResources().getInteger(com.android.internal.R.integer
+ .config_satellite_delay_minutes_before_retry_validating_possible_change_in_allowed_region);
+ } catch (Resources.NotFoundException ex) {
+ loge("getDelayBeforeRetryValidatingPossibleChangeInSatelliteAllowedRegionMillis: got "
+ + "ex=" + ex);
+ }
+ if (retryDuration == null) {
+ logd("Use default retry duration for possible change satellite allowed region ="
+ + DEFAULT_DELAY_MINUTES_BEFORE_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION);
+ retryDuration =
+ DEFAULT_DELAY_MINUTES_BEFORE_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION;
+ }
+ return TimeUnit.MINUTES.toMillis(retryDuration);
+ }
+
+ @NonNull
+ private static int getMaxRetryCountForValidatingPossibleChangeInAllowedRegion(
+ @NonNull Context context) {
+ Integer maxRetrycount = null;
+ try {
+ maxRetrycount = context.getResources().getInteger(com.android.internal.R.integer
+ .config_satellite_max_retry_count_for_validating_possible_change_in_allowed_region);
+ } catch (Resources.NotFoundException ex) {
+ loge("getMaxRetryCountForValidatingPossibleChangeInAllowedRegion: got ex= " + ex);
+ }
+ if (maxRetrycount == null) {
+ logd("Use default max retry count for possible change satellite allowed region ="
+ + DEFAULT_MAX_RETRY_COUNT_FOR_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION);
+ maxRetrycount =
+ DEFAULT_MAX_RETRY_COUNT_FOR_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION;
+ }
+ return maxRetrycount;
+ }
+
+ @NonNull
+ private static long getLocationQueryThrottleIntervalNanos(@NonNull Context context) {
+ Integer throttleInterval = null;
+ try {
+ throttleInterval = context.getResources().getInteger(com.android.internal.R.integer
+ .config_satellite_location_query_throttle_interval_minutes);
+ } catch (Resources.NotFoundException ex) {
+ loge("getLocationQueryThrottleIntervalNanos: got ex=" + ex);
+ }
+ if (throttleInterval == null) {
+ logd("Use default location query throttle interval ="
+ + DEFAULT_THROTTLE_INTERVAL_FOR_LOCATION_QUERY_MINUTES);
+ throttleInterval =
+ DEFAULT_THROTTLE_INTERVAL_FOR_LOCATION_QUERY_MINUTES;
+ }
+ return TimeUnit.MINUTES.toNanos(throttleInterval);
+ }
+
+ @NonNull
private static String[] readStringArrayFromOverlayConfig(
@NonNull Context context, @ArrayRes int id) {
String[] strArray = null;
@@ -1525,6 +1755,17 @@
* @param command command to be executed on the main thread
* @param argument additional parameters required to perform of the operation
*/
+ private void sendDelayedRequestAsync(int command, @NonNull Object argument, long dealyMillis) {
+ Message msg = this.obtainMessage(command, argument);
+ sendMessageDelayed(msg, dealyMillis);
+ }
+
+ /**
+ * Posts the specified command to be executed on the main thread and returns immediately.
+ *
+ * @param command command to be executed on the main thread
+ * @param argument additional parameters required to perform of the operation
+ */
private void sendRequestAsync(int command, @NonNull Object argument) {
Message msg = this.obtainMessage(command, argument);
msg.sendToTarget();
@@ -1550,11 +1791,6 @@
mSatelliteCommunicationAllowedStateChangedListeners.put(callback.asBinder(), callback);
- if (!mFeatureFlags.geofenceEnhancementForBetterUx()) {
- plogd("The feature flag geofenceEnhancementForBetterUx is not enabled");
- return SATELLITE_RESULT_SUCCESS;
- }
-
this.post(() -> {
try {
synchronized (mSatelliteCommunicationAllowStateLock) {
@@ -1596,7 +1832,7 @@
* This API can be used by only CTS to set the cache whether satellite communication is allowed.
*
* @param state a state indicates whether satellite access allowed state should be cached and
- * the allowed state.
+ * the allowed state.
* @return {@code true} if the setting is successful, {@code false} otherwise.
*/
public boolean setIsSatelliteCommunicationAllowedForCurrentLocationCache(String state) {
@@ -1616,7 +1852,7 @@
synchronized (mSatelliteCommunicationAllowStateLock) {
if ("cache_allowed".equalsIgnoreCase(state)) {
- mLatestSatelliteCommunicationAllowedSetTime = SystemClock.elapsedRealtimeNanos();
+ mLatestSatelliteCommunicationAllowedSetTime = getElapsedRealtimeNanos();
mLatestSatelliteCommunicationAllowed = true;
mCurrentSatelliteAllowedState = true;
} else if ("cache_clear_and_not_allowed".equalsIgnoreCase(state)) {
@@ -1673,6 +1909,19 @@
mTotalCheckingStartTimeMillis = 0;
}
+ protected boolean isSatelliteAllowedRegionPossiblyChanged() {
+ synchronized (mPossibleChangeInSatelliteAllowedRegionLock) {
+ return mIsSatelliteAllowedRegionPossiblyChanged;
+ }
+ }
+
+ protected void setIsSatelliteAllowedRegionPossiblyChanged(boolean changed) {
+ synchronized (mPossibleChangeInSatelliteAllowedRegionLock) {
+ plogd("setIsSatelliteAllowedRegionPossiblyChanged : " + changed);
+ mIsSatelliteAllowedRegionPossiblyChanged = changed;
+ }
+ }
+
private static void logd(@NonNull String log) {
Rlog.d(TAG, log);
}
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index 9d8f070..005c0fa 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -135,9 +135,6 @@
private static final boolean IS_USER_BUILD = "user".equals(Build.TYPE);
- private static final String ACTION_ESOS_TEST =
- "com.google.android.apps.stargate.ACTION_ESOS_QUESTIONNAIRE";
-
private static final String[] PREFERRED_NETWORK_LABELS = {
"GSM/WCDMA preferred",
"GSM only",
@@ -206,7 +203,7 @@
ServiceState.RIL_RADIO_TECHNOLOGY_LTE_CA,
ServiceState.RIL_RADIO_TECHNOLOGY_NR
};
- private static String[] sPhoneIndexLabels;
+ private static String[] sPhoneIndexLabels = new String[0];
private static final int sCellInfoListRateDisabled = Integer.MAX_VALUE;
private static final int sCellInfoListRateMax = 0;
@@ -317,6 +314,7 @@
private Button mTriggerCarrierProvisioningButton;
private Button mEsosButton;
private Button mSatelliteEnableNonEmergencyModeButton;
+ private Button mEsosDemoButton;
private Switch mImsVolteProvisionedSwitch;
private Switch mImsVtProvisionedSwitch;
private Switch mImsWfcProvisionedSwitch;
@@ -361,6 +359,9 @@
private int mCellInfoRefreshRateIndex;
private int mSelectedPhoneIndex;
+ private String mActionEsos;
+ private String mActionEsosDemo;
+
private final NetworkRequest mDefaultNetworkRequest = new NetworkRequest.Builder()
.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
@@ -547,8 +548,10 @@
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
- if (!android.os.Process.myUserHandle().isSystem()) {
- Log.e(TAG, "Not run from system user, don't do anything.");
+ try {
+ PhoneFactory.getDefaultPhone();
+ } catch (Exception e) {
+ loge("Do nothing due to getDefaultPhone " + e);
finish();
return;
}
@@ -566,6 +569,16 @@
log("Started onCreate");
+ Resources r = getResources();
+ mActionEsos =
+ r.getString(
+ com.android.internal.R.string
+ .config_satellite_emergency_handover_intent_action);
+
+ mActionEsosDemo =
+ r.getString(
+ com.android.internal.R.string.config_satellite_demo_mode_sos_intent_action);
+
mQueuedWork = new ThreadPoolExecutor(1, 1, RUNNABLE_TIMEOUT_MS, TimeUnit.MICROSECONDS,
new LinkedBlockingDeque<Runnable>());
mConnectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
@@ -752,6 +765,7 @@
}
mEsosButton = (Button) findViewById(R.id.esos_questionnaire);
+ mEsosDemoButton = (Button) findViewById(R.id.demo_esos_questionnaire);
mSatelliteEnableNonEmergencyModeButton = (Button) findViewById(
R.id.satellite_enable_non_emergency_mode);
CarrierConfigManager cm = mPhone.getContext().getSystemService(CarrierConfigManager.class);
@@ -761,14 +775,25 @@
mSatelliteEnableNonEmergencyModeButton.setVisibility(View.GONE);
}
if (!TelephonyUtils.IS_DEBUGGABLE) {
- mEsosButton.setVisibility(View.GONE);
+ if (!TextUtils.isEmpty(mActionEsos)) {
+ mEsosButton.setVisibility(View.GONE);
+ }
+ if (!TextUtils.isEmpty(mActionEsosDemo)) {
+ mEsosDemoButton.setVisibility(View.GONE);
+ }
mSatelliteEnableNonEmergencyModeButton.setVisibility(View.GONE);
} else {
mEsosButton.setOnClickListener(v ->
mPhone.getContext().startActivity(
- new Intent(ACTION_ESOS_TEST)
+ new Intent(mActionEsos)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK))
);
+ mEsosDemoButton.setOnClickListener(v ->
+ mPhone.getContext().startActivity(
+ new Intent(mActionEsosDemo)
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
+ | Intent.FLAG_ACTIVITY_CLEAR_TASK))
+ );
mSatelliteEnableNonEmergencyModeButton.setOnClickListener(v ->
enableSatelliteNonEmergencyMode());
}
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index da9cfdf..6897b08 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -477,11 +477,13 @@
isHandoverFromSupported);
}
- final boolean isTelephonyAudioDeviceSupported = mContext.getResources().getBoolean(
- R.bool.config_support_telephony_audio_device);
- if (isTelephonyAudioDeviceSupported && !isEmergency
- && isCarrierUseCallRecordingTone()) {
- extras.putBoolean(PhoneAccount.EXTRA_PLAY_CALL_RECORDING_TONE, true);
+ if (!com.android.server.telecom.flags.Flags.telecomResolveHiddenDependencies()) {
+ final boolean isTelephonyAudioDeviceSupported = mContext.getResources().getBoolean(
+ R.bool.config_support_telephony_audio_device);
+ if (isTelephonyAudioDeviceSupported && !isEmergency
+ && isCarrierUseCallRecordingTone()) {
+ extras.putBoolean(PhoneAccount.EXTRA_PLAY_CALL_RECORDING_TONE, true);
+ }
}
extras.putBoolean(EXTRA_SUPPORTS_VIDEO_CALLING_FALLBACK,
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 163fc26..412e44a 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -1201,17 +1201,20 @@
}
}
+ boolean forNormalRoutingEmergencyCall = false;
if (mDomainSelectionResolver.isDomainSelectionSupported()) {
- // Normal routing emergency number shall be handled by normal call domain selector.
- int routing = (isEmergencyNumber)
- ? getEmergencyCallRouting(phone, number, needToTurnOnRadio)
- : EmergencyNumber.EMERGENCY_CALL_ROUTING_UNKNOWN;
- if (isEmergencyNumber && routing != EmergencyNumber.EMERGENCY_CALL_ROUTING_NORMAL) {
- final Connection resultConnection =
- placeEmergencyConnection(phone,
- request, numberToDial, isTestEmergencyNumber,
- handle, needToTurnOnRadio, routing);
- if (resultConnection != null) return resultConnection;
+ if (isEmergencyNumber) {
+ // Normal routing emergency number shall be handled by normal call domain selector.
+ int routing = getEmergencyCallRouting(phone, number, needToTurnOnRadio);
+ if (routing != EmergencyNumber.EMERGENCY_CALL_ROUTING_NORMAL) {
+ final Connection resultConnection =
+ placeEmergencyConnection(phone,
+ request, numberToDial, isTestEmergencyNumber,
+ handle, needToTurnOnRadio, routing);
+ if (resultConnection != null) return resultConnection;
+ }
+ forNormalRoutingEmergencyCall = true;
+ Log.d(this, "onCreateOutgoingConnection, forNormalRoutingEmergencyCall");
}
}
@@ -1300,7 +1303,7 @@
}
}
}, isEmergencyNumber && !isTestEmergencyNumber, phone, isTestEmergencyNumber,
- timeoutToOnTimeoutCallback);
+ timeoutToOnTimeoutCallback, forNormalRoutingEmergencyCall);
// Return the still unconnected GsmConnection and wait for the Radios to boot before
// connecting it to the underlying Phone.
return resultConnection;
diff --git a/src/com/android/services/telephony/domainselection/CrossSimRedialingController.java b/src/com/android/services/telephony/domainselection/CrossSimRedialingController.java
index d368d46..3a69459 100644
--- a/src/com/android/services/telephony/domainselection/CrossSimRedialingController.java
+++ b/src/com/android/services/telephony/domainselection/CrossSimRedialingController.java
@@ -227,6 +227,8 @@
if (isThereOtherSlot()) {
mSelector.notifyCrossStackTimerExpired();
+ } else if (!mPermanentRejectedSlots.isEmpty()) {
+ mSelector.maybeHangupOngoingDialing();
}
}
diff --git a/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelector.java b/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelector.java
index 3946d1a..0d373de 100644
--- a/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelector.java
+++ b/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelector.java
@@ -925,8 +925,7 @@
requestScan(true);
return;
}
- // If NGRAN, request scan to trigger emergency registration.
- if (mPsNetworkType == EUTRAN) {
+ if (mPsNetworkType != UNKNOWN) {
onWwanNetworkTypeSelected(mPsNetworkType);
} else if (mCsNetworkType != UNKNOWN) {
checkAndSetTerminateAfterCsFailure(mLastRegResult);
@@ -1344,13 +1343,19 @@
int accessNetwork = regResult.getAccessNetwork();
List<Integer> ratList = getImsNetworkTypeConfiguration();
+ if (!inService && !ratList.contains(NGRAN) && !isSimReady()
+ && !TextUtils.isEmpty(regResult.getCountryIso())) {
+ ratList.add(NGRAN);
+ logi("getSelectablePsNetworkType ratList=" + ratList);
+ }
if (ratList.contains(accessNetwork)) {
if (mIsEmergencyBarred) {
logi("getSelectablePsNetworkType barred");
return UNKNOWN;
}
if (accessNetwork == NGRAN) {
- return (regResult.getNwProvidedEmc() > 0 && regResult.isVopsSupported())
+ return (regResult.getNwProvidedEmc() > 0
+ && (regResult.isVopsSupported() || !inService))
? NGRAN : UNKNOWN;
} else if (accessNetwork == EUTRAN) {
return (regResult.isEmcBearerSupported()
@@ -1845,6 +1850,18 @@
terminateSelectionForCrossSimRedialing(isHangupOngoingDialing);
}
+ /**
+ * If another slot has already permanently failed,
+ * and IMS REG is not completed in the current slot, hang up the ongoing call.
+ */
+ public void maybeHangupOngoingDialing() {
+ logi("maybeHangupOngoingDialing");
+
+ if (mDomainSelected && hangupOngoingDialing()) {
+ notifyCrossStackTimerExpired();
+ }
+ }
+
private boolean hangupOngoingDialing() {
return Flags.hangupEmergencyCallForCrossSimRedialing()
&& (mCallSetupTimerOnCurrentRat > 0)
diff --git a/src/com/android/services/telephony/domainselection/NormalCallDomainSelector.java b/src/com/android/services/telephony/domainselection/NormalCallDomainSelector.java
index 906aa28..37813e3 100644
--- a/src/com/android/services/telephony/domainselection/NormalCallDomainSelector.java
+++ b/src/com/android/services/telephony/domainselection/NormalCallDomainSelector.java
@@ -263,6 +263,12 @@
}
private void notifyCsSelected() {
+ if (isOutOfService()) {
+ loge("Cannot place call in current ServiceState: " + mServiceState.getState());
+ notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
+ return;
+ }
+
logd("notifyCsSelected");
mSelectorState = SelectorState.INACTIVE;
if (mWwanSelectorCallback == null) {
@@ -317,26 +323,14 @@
logd("WPS call placed over PS");
notifyPsSelected();
} else {
- if (isOutOfService()) {
- loge("Cannot place call in current ServiceState: " + mServiceState.getState());
- notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
- } else {
- logd("WPS call placed over CS");
- notifyCsSelected();
- }
+ logd("WPS call placed over CS");
+ notifyCsSelected();
}
}
private void handleReselectDomain(ImsReasonInfo imsReasonInfo) {
mReselectDomain = false;
- // Out of service
- if (isOutOfService()) {
- loge("Cannot place call in current ServiceState: " + mServiceState.getState());
- notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
- return;
- }
-
// IMS -> CS
if (imsReasonInfo != null) {
logd("PsDisconnectCause:" + imsReasonInfo.getCode());
@@ -413,12 +407,7 @@
if (!mImsStateTracker.isMmTelFeatureAvailable()) {
logd("MmTelFeatureAvailable unavailable");
- if (isOutOfService()) {
- loge("Cannot place call in current ServiceState: " + mServiceState.getState());
- notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
- } else {
- notifyCsSelected();
- }
+ notifyCsSelected();
return;
}
@@ -434,23 +423,13 @@
// Check IMS registration state.
if (!mImsStateTracker.isImsRegistered()) {
logd("IMS is NOT registered");
- if (isOutOfService()) {
- loge("Cannot place call in current ServiceState: " + mServiceState.getState());
- notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
- } else {
- notifyCsSelected();
- }
+ notifyCsSelected();
return;
}
// Check TTY
if (isTtyModeEnabled() && !isTtySupportedByIms()) {
- if (isOutOfService()) {
- loge("Cannot place call in current ServiceState: " + mServiceState.getState());
- notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
- } else {
- notifyCsSelected();
- }
+ notifyCsSelected();
return;
}
@@ -479,12 +458,7 @@
} else {
logd("IMS is not voice capable");
// Voice call CS fallback
- if (isOutOfService()) {
- loge("Cannot place call in current ServiceState: " + mServiceState.getState());
- notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
- } else {
- notifyCsSelected();
- }
+ notifyCsSelected();
}
}
diff --git a/testapps/TestSatelliteApp/res/layout/activity_SatelliteControl.xml b/testapps/TestSatelliteApp/res/layout/activity_SatelliteControl.xml
index b1b2ccf..9bb8d3f 100644
--- a/testapps/TestSatelliteApp/res/layout/activity_SatelliteControl.xml
+++ b/testapps/TestSatelliteApp/res/layout/activity_SatelliteControl.xml
@@ -126,17 +126,11 @@
android:paddingRight="4dp"
android:text="@string/getIsEmergency"/>
<Button
- android:id="@+id/requestProvisionSubscriberIds"
+ android:id="@+id/requestSatelliteSubscriberProvisionStatus"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingRight="4dp"
- android:text="@string/requestProvisionSubscriberIds"/>
- <Button
- android:id="@+id/requestIsProvisioned"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingRight="4dp"
- android:text="@string/requestIsProvisioned"/>
+ android:text="@string/requestSatelliteSubscriberProvisionStatus"/>
<Button
android:id="@+id/provisionSatellite"
android:layout_width="match_parent"
diff --git a/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml b/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml
index c51d574..728576a 100644
--- a/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml
+++ b/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml
@@ -93,8 +93,7 @@
<string name="reportSatelliteNotSupportedFromModem">reportSatelliteNotSupportedFromModem</string>
<string name="showCurrentSatelliteSupportedStated">showCurrentSatelliteSupportedStated</string>
- <string name="requestProvisionSubscriberIds">requestProvisionSubscriberIds</string>
- <string name="requestIsProvisioned">requestIsProvisioned</string>
+ <string name="requestSatelliteSubscriberProvisionStatus">requestSatelliteSubscriberProvisionStatus</string>
<string name="provisionSatellite">provisionSatellite</string>
<string name="Back">Back</string>
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteControl.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteControl.java
index 4843c5f..379fc74 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteControl.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteControl.java
@@ -26,6 +26,7 @@
import android.telephony.satellite.SatelliteCapabilities;
import android.telephony.satellite.SatelliteManager;
import android.telephony.satellite.SatelliteSubscriberInfo;
+import android.telephony.satellite.SatelliteSubscriberProvisionStatus;
import android.telephony.satellite.stub.SatelliteResult;
import android.view.View;
import android.view.View.OnClickListener;
@@ -47,7 +48,8 @@
private SatelliteManager mSatelliteManager;
private SubscriptionManager mSubscriptionManager;
- private List<SatelliteSubscriberInfo> mSatelliteSubscriberInfoList = new ArrayList<>();
+ private List<SatelliteSubscriberProvisionStatus> mSatelliteSubscriberProvisionStatuses =
+ new ArrayList<>();
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -86,10 +88,8 @@
.setOnClickListener(this::isRequestIsSatelliteEnabledForCarrierApp);
findViewById(R.id.getIsEmergency)
.setOnClickListener(this::getIsEmergencyApp);
- findViewById(R.id.requestProvisionSubscriberIds)
- .setOnClickListener(this::requestProvisionSubscriberIdsApp);
- findViewById(R.id.requestIsProvisioned)
- .setOnClickListener(this::requestIsProvisionedApp);
+ findViewById(R.id.requestSatelliteSubscriberProvisionStatus)
+ .setOnClickListener(this::requestSatelliteSubscriberProvisionStatusApp);
findViewById(R.id.provisionSatellite)
.setOnClickListener(this::provisionSatelliteApp);
findViewById(R.id.Back).setOnClickListener(new OnClickListener() {
@@ -393,67 +393,36 @@
.getIsEmergency());
}
- private void requestProvisionSubscriberIdsApp(View view) {
- final AtomicReference<List<SatelliteSubscriberInfo>> list = new AtomicReference<>();
+ private void requestSatelliteSubscriberProvisionStatusApp(View view) {
+ final AtomicReference<List<SatelliteSubscriberProvisionStatus>> list =
+ new AtomicReference<>();
final AtomicReference<Integer> errorCode = new AtomicReference<>();
- OutcomeReceiver<List<SatelliteSubscriberInfo>, SatelliteManager.SatelliteException>
+ OutcomeReceiver<List<SatelliteSubscriberProvisionStatus>,
+ SatelliteManager.SatelliteException>
receiver =
new OutcomeReceiver<>() {
@Override
- public void onResult(List<SatelliteSubscriberInfo> result) {
- mSatelliteSubscriberInfoList = result;
+ public void onResult(List<SatelliteSubscriberProvisionStatus> result) {
+ mSatelliteSubscriberProvisionStatuses = result;
list.set(result);
TextView textView = findViewById(R.id.text_id);
- String text = "";
- for (SatelliteSubscriberInfo psi : result) {
+ String text = "requestSatelliteSubscriberProvisionStatus: result=";
+ for (SatelliteSubscriberProvisionStatus psi : result) {
text += "" + psi + " , ";
}
- textView.setText("requestProvisionSubscriberIds: result=" + text);
+ textView.setText(text);
}
@Override
public void onError(SatelliteManager.SatelliteException exception) {
errorCode.set(exception.getErrorCode());
TextView textView = findViewById(R.id.text_id);
- textView.setText("Status for requestProvisionSubscriberIds error : "
- + SatelliteErrorUtils.mapError(errorCode.get()));
+ textView.setText(
+ "Status for requestSatelliteSubscriberProvisionStatus error : "
+ + SatelliteErrorUtils.mapError(errorCode.get()));
}
};
- mSatelliteManager.requestProvisionSubscriberIds(Runnable::run, receiver);
- }
-
- private void requestIsProvisionedApp(View view) {
- final AtomicReference<Boolean> enabled = new AtomicReference<>();
- final AtomicReference<Integer> errorCode = new AtomicReference<>();
- OutcomeReceiver<Boolean, SatelliteManager.SatelliteException> receiver =
- new OutcomeReceiver<>() {
- @Override
- public void onResult(Boolean result) {
- enabled.set(result);
- TextView textView = findViewById(R.id.text_id);
- if (enabled.get()) {
- textView.setText("requestIsProvisioned is true");
- } else {
- textView.setText("Status for requestIsProvisioned result : "
- + enabled.get());
- }
- }
-
- @Override
- public void onError(SatelliteManager.SatelliteException exception) {
- errorCode.set(exception.getErrorCode());
- TextView textView = findViewById(R.id.text_id);
- textView.setText("Status for requestIsProvisioned error : "
- + SatelliteErrorUtils.mapError(errorCode.get()));
- }
- };
- if (mSatelliteSubscriberInfoList == null || mSatelliteSubscriberInfoList.get(0) == null) {
- TextView textView = findViewById(R.id.text_id);
- textView.setText("No ProvisionSubscriberIdList");
- return;
- }
- mSatelliteManager.requestIsProvisioned(
- mSatelliteSubscriberInfoList.get(0).getSubscriberId(), Runnable::run, receiver);
+ mSatelliteManager.requestSatelliteSubscriberProvisionStatus(Runnable::run, receiver);
}
private void provisionSatelliteApp(View view) {
@@ -481,6 +450,10 @@
+ SatelliteErrorUtils.mapError(errorCode.get()));
}
};
- mSatelliteManager.provisionSatellite(mSatelliteSubscriberInfoList, Runnable::run, receiver);
+ List<SatelliteSubscriberInfo> list = new ArrayList<>();
+ for (SatelliteSubscriberProvisionStatus status : mSatelliteSubscriberProvisionStatuses) {
+ list.add(status.getSatelliteSubscriberInfo());
+ }
+ mSatelliteManager.provisionSatellite(list, Runnable::run, receiver);
}
}
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteService.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteService.java
index 54bb16d..9c75a84 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteService.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteService.java
@@ -33,6 +33,7 @@
import android.telephony.satellite.stub.SatelliteCapabilities;
import android.telephony.satellite.stub.SatelliteDatagram;
import android.telephony.satellite.stub.SatelliteImplBase;
+import android.telephony.satellite.stub.SatelliteModemEnableRequestAttributes;
import android.telephony.satellite.stub.SatelliteModemState;
import android.telephony.satellite.stub.SatelliteResult;
import android.telephony.satellite.stub.SatelliteService;
@@ -184,21 +185,25 @@
}
@Override
- public void requestSatelliteEnabled(boolean enableSatellite, boolean enableDemoMode,
- boolean isEmergency, @NonNull IIntegerConsumer errorCallback) {
- logd("requestSatelliteEnabled: mErrorCode=" + mErrorCode + " enable = " + enableSatellite
- + " isEmergency=" + isEmergency);
+ public void requestSatelliteEnabled(SatelliteModemEnableRequestAttributes enableAttributes,
+ @NonNull IIntegerConsumer errorCallback) {
+ logd("requestSatelliteEnabled: mErrorCode=" + mErrorCode
+ + ", isEnabled=" + enableAttributes.isEnabled
+ + ", isDemoMode=" + enableAttributes.isDemoMode
+ + ", isEmergency= " + enableAttributes.isEmergencyMode
+ + ", iccId=" + enableAttributes.satelliteSubscriptionInfo.iccId
+ + ", niddApn=" + enableAttributes.satelliteSubscriptionInfo.niddApn);
if (mErrorCode != SatelliteResult.SATELLITE_RESULT_SUCCESS) {
runWithExecutor(() -> errorCallback.accept(mErrorCode));
return;
}
- if (enableSatellite) {
+ if (enableAttributes.isEnabled) {
enableSatellite(errorCallback);
} else {
disableSatellite(errorCallback);
}
- mIsEmergnecy = isEmergency;
+ mIsEmergnecy = enableAttributes.isEmergencyMode;
}
private void enableSatellite(@NonNull IIntegerConsumer errorCallback) {
diff --git a/tests/src/com/android/phone/satellite/accesscontrol/SatelliteAccessControllerTest.java b/tests/src/com/android/phone/satellite/accesscontrol/SatelliteAccessControllerTest.java
index 8eba53b..87c73ac 100644
--- a/tests/src/com/android/phone/satellite/accesscontrol/SatelliteAccessControllerTest.java
+++ b/tests/src/com/android/phone/satellite/accesscontrol/SatelliteAccessControllerTest.java
@@ -22,8 +22,14 @@
import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_REQUEST_NOT_SUPPORTED;
import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_SUCCESS;
+import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.ALLOWED_STATE_CACHE_VALID_DURATION_NANOS;
+import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.CMD_HANDLE_COUNTRY_CODE_CHANGED;
+import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.CMD_IS_SATELLITE_COMMUNICATION_ALLOWED;
+import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.DEFAULT_DELAY_MINUTES_BEFORE_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION;
+import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.DEFAULT_THROTTLE_INTERVAL_FOR_LOCATION_QUERY_MINUTES;
import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.EVENT_CONFIG_DATA_UPDATED;
import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.GOOGLE_US_SAN_SAT_S2_FILE_NAME;
+import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.DEFAULT_MAX_RETRY_COUNT_FOR_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -34,10 +40,12 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -63,6 +71,7 @@
import android.os.Message;
import android.os.ResultReceiver;
import android.telecom.TelecomManager;
+import android.telephony.SubscriptionManager;
import android.telephony.satellite.SatelliteManager;
import android.testing.TestableLooper;
import android.util.Log;
@@ -106,11 +115,19 @@
public class SatelliteAccessControllerTest {
private static final String TAG = "SatelliteAccessControllerTest";
private static final String[] TEST_SATELLITE_COUNTRY_CODES = {"US", "CA", "UK"};
+ private static final String[] TEST_SATELLITE_COUNTRY_CODES_EMPTY = {""};
+ private static final String TEST_SATELLITE_COUNTRY_CODE_US = "US";
+ private static final String TEST_SATELLITE_COUNTRY_CODE_KR = "KR";
+ private static final String TEST_SATELLITE_COUNTRY_CODE_JP = "JP";
+
private static final String TEST_SATELLITE_S2_FILE = "sat_s2_file.dat";
private static final boolean TEST_SATELLITE_ALLOW = true;
+ private static final boolean TEST_SATELLITE_NOT_ALLOW = false;
private static final int TEST_LOCATION_FRESH_DURATION_SECONDS = 10;
private static final long TEST_LOCATION_FRESH_DURATION_NANOS =
TimeUnit.SECONDS.toNanos(TEST_LOCATION_FRESH_DURATION_SECONDS);
+ private static final long TEST_LOCATION_QUERY_THROTTLE_INTERVAL_NANOS =
+ TimeUnit.MINUTES.toNanos(10); // DEFAULT_THROTTLE_INTERVAL_FOR_LOCATION_QUERY_MINUTES
private static final long TIMEOUT = 500;
private static final List<String> EMPTY_STRING_LIST = new ArrayList<>();
private static final List<String> LOCATION_PROVIDERS =
@@ -170,6 +187,13 @@
private ArgumentCaptor<Integer> mConfigUpdateIntCaptor;
@Captor
private ArgumentCaptor<Object> mConfigUpdateObjectCaptor;
+ @Captor
+ private ArgumentCaptor<Handler> mCountryDetectorHandlerCaptor;
+ @Captor
+ private ArgumentCaptor<Integer> mCountryDetectorIntCaptor;
+ @Captor
+ private ArgumentCaptor<Object> mCountryDetectorObjCaptor;
+
private boolean mQueriedSatelliteAllowed = false;
private int mQueriedSatelliteAllowedResultCode = SATELLITE_RESULT_SUCCESS;
private Semaphore mSatelliteAllowedSemaphore = new Semaphore(0);
@@ -243,6 +267,17 @@
when(mMockResources.getInteger(com.android.internal.R.integer
.config_oem_enabled_satellite_location_fresh_duration))
.thenReturn(TEST_LOCATION_FRESH_DURATION_SECONDS);
+ when(mMockResources.getInteger(com.android.internal.R.integer
+ .config_satellite_delay_minutes_before_retry_validating_possible_change_in_allowed_region))
+ .thenReturn(
+ DEFAULT_DELAY_MINUTES_BEFORE_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION);
+ when(mMockResources.getInteger(com.android.internal.R.integer
+ .config_satellite_max_retry_count_for_validating_possible_change_in_allowed_region))
+ .thenReturn(
+ DEFAULT_MAX_RETRY_COUNT_FOR_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION);
+ when(mMockResources.getInteger(com.android.internal.R.integer
+ .config_satellite_location_query_throttle_interval_minutes))
+ .thenReturn(DEFAULT_THROTTLE_INTERVAL_FOR_LOCATION_QUERY_MINUTES);
when(mMockLocationManager.getProviders(true)).thenReturn(LOCATION_PROVIDERS);
when(mMockLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER))
@@ -266,8 +301,12 @@
.putBoolean(anyString(), anyBoolean());
doReturn(mMockSharedPreferencesEditor).when(mMockSharedPreferencesEditor)
.putStringSet(anyString(), any());
+ doReturn(mMockSharedPreferencesEditor).when(mMockSharedPreferencesEditor)
+ .putLong(anyString(), anyLong());
+ doNothing().when(mMockSharedPreferencesEditor).apply();
when(mMockFeatureFlags.satellitePersistentLogging()).thenReturn(true);
+ when(mMockFeatureFlags.geofenceEnhancementForBetterUx()).thenReturn(true);
mSatelliteAccessControllerUT = new TestSatelliteAccessController(mMockContext,
mMockFeatureFlags, mLooper, mMockLocationManager, mMockTelecomManager,
@@ -299,6 +338,269 @@
}
@Test
+ public void testIsSatelliteAccessAllowedForLocation() {
+ when(mMockFeatureFlags.oemEnabledSatelliteFlag()).thenReturn(true);
+
+ // Test disallowList case
+ when(mMockResources.getBoolean(
+ com.android.internal.R.bool.config_oem_enabled_satellite_access_allow))
+ .thenReturn(TEST_SATELLITE_NOT_ALLOW);
+
+ // configuration is EMPTY then we return true with any network country code.
+ when(mMockResources.getStringArray(
+ com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+ .thenReturn(TEST_SATELLITE_COUNTRY_CODES_EMPTY);
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ assertTrue(mSatelliteAccessControllerUT
+ .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_US)));
+ assertTrue(mSatelliteAccessControllerUT
+ .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_JP)));
+
+ // configuration is ["US", "CA", "UK"]
+ // - if network country code is ["US"] or ["US","KR"] or [EMPTY] return false;
+ // - if network country code is ["KR"] return true;
+ when(mMockResources.getStringArray(
+ com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+ .thenReturn(TEST_SATELLITE_COUNTRY_CODES);
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ assertFalse(mSatelliteAccessControllerUT.isSatelliteAccessAllowedForLocation(List.of()));
+ assertFalse(mSatelliteAccessControllerUT
+ .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_US)));
+ assertFalse(mSatelliteAccessControllerUT.isSatelliteAccessAllowedForLocation(
+ List.of(TEST_SATELLITE_COUNTRY_CODE_US, TEST_SATELLITE_COUNTRY_CODE_KR)));
+ assertTrue(mSatelliteAccessControllerUT
+ .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_KR)));
+
+ // Test allowList case
+ when(mMockResources.getBoolean(
+ com.android.internal.R.bool.config_oem_enabled_satellite_access_allow))
+ .thenReturn(TEST_SATELLITE_ALLOW);
+
+ // configuration is [EMPTY] then return false in case of any network country code
+ when(mMockResources.getStringArray(
+ com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+ .thenReturn(TEST_SATELLITE_COUNTRY_CODES_EMPTY);
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ assertFalse(mSatelliteAccessControllerUT
+ .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_US)));
+ assertFalse(mSatelliteAccessControllerUT
+ .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_JP)));
+
+ // configuration is ["US", "CA", "UK"]
+ // - if network country code is [EMPTY] or ["US","KR"] or [KR] return false;
+ // - if network country code is ["US"] return true;
+ when(mMockResources.getStringArray(
+ com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+ .thenReturn(TEST_SATELLITE_COUNTRY_CODES);
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ assertFalse(mSatelliteAccessControllerUT.isSatelliteAccessAllowedForLocation(List.of()));
+ assertFalse(mSatelliteAccessControllerUT
+ .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_KR)));
+ assertFalse(mSatelliteAccessControllerUT.isSatelliteAccessAllowedForLocation(
+ List.of(TEST_SATELLITE_COUNTRY_CODE_US, TEST_SATELLITE_COUNTRY_CODE_KR)));
+ assertTrue(mSatelliteAccessControllerUT
+ .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_US)));
+ }
+
+ @Test
+ public void testIsRegionDisallowed() throws Exception {
+ // setup to make the return value of mQueriedSatelliteAllowed 'true'
+ when(mMockFeatureFlags.oemEnabledSatelliteFlag()).thenReturn(true);
+ when(mMockContext.getResources()).thenReturn(mMockResources);
+ when(mMockResources.getBoolean(
+ com.android.internal.R.bool.config_oem_enabled_satellite_access_allow))
+ .thenReturn(TEST_SATELLITE_ALLOW);
+ setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
+ setUpResponseForRequestIsSatelliteProvisioned(true, SATELLITE_RESULT_SUCCESS);
+ doReturn(true).when(mMockLocationManager).isLocationEnabled();
+ when(mMockSatelliteOnDeviceAccessController.isSatCommunicationAllowedAtLocation(
+ any(SatelliteOnDeviceAccessController.LocationToken.class))).thenReturn(true);
+ replaceInstance(SatelliteAccessController.class, "mCachedAccessRestrictionMap",
+ mSatelliteAccessControllerUT, mMockCachedAccessRestrictionMap);
+ doReturn(true).when(mMockCachedAccessRestrictionMap).containsKey(any());
+ doReturn(true).when(mMockCachedAccessRestrictionMap).get(any());
+
+ // get allowed country codes EMPTY from resources
+ when(mMockResources.getStringArray(
+ com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+ .thenReturn(TEST_SATELLITE_COUNTRY_CODES_EMPTY);
+
+ // allow case that network country codes [US] with [EMPTY] configuration
+ // location will not be compared and mQueriedSatelliteAllowed will be set false
+ clearInvocations(mMockCachedAccessRestrictionMap);
+ when(mMockCountryDetector.getCurrentNetworkCountryIso())
+ .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODE_US));
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+ SUB_ID, mSatelliteAllowedReceiver);
+ mTestableLooper.processAllMessages();
+ verify(mMockCachedAccessRestrictionMap, times(0)).containsKey(any());
+ assertFalse(mQueriedSatelliteAllowed);
+
+ // allow case that network country codes [EMPTY] with [EMPTY] configuration
+ // location will be compared and mQueriedSatelliteAllowed will be set true
+ clearInvocations(mMockCachedAccessRestrictionMap);
+ when(mMockCountryDetector.getCurrentNetworkCountryIso()).thenReturn(List.of());
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+ SUB_ID, mSatelliteAllowedReceiver);
+ mTestableLooper.processAllMessages();
+ verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+ assertTrue(mQueriedSatelliteAllowed);
+
+ // get allowed country codes [US, CA, UK] from resources
+ when(mMockResources.getStringArray(
+ com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+ .thenReturn(TEST_SATELLITE_COUNTRY_CODES);
+
+ // allow case that network country codes [US, CA, UK] with [US, CA, UK] configuration
+ // location will be compared and mQueriedSatelliteAllowed will be set true
+ clearInvocations(mMockCachedAccessRestrictionMap);
+ when(mMockCountryDetector.getCurrentNetworkCountryIso())
+ .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODES));
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+ SUB_ID, mSatelliteAllowedReceiver);
+ mTestableLooper.processAllMessages();
+ verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+ assertTrue(mQueriedSatelliteAllowed);
+
+ // allow case that network country codes [US] with [US, CA, UK] configuration
+ // location will be compared and mQueriedSatelliteAllowed will be set true
+ clearInvocations(mMockCachedAccessRestrictionMap);
+ when(mMockCountryDetector.getCurrentNetworkCountryIso())
+ .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODE_US));
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+ SUB_ID, mSatelliteAllowedReceiver);
+ mTestableLooper.processAllMessages();
+ verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+ assertTrue(mQueriedSatelliteAllowed);
+
+ // allow case that network country codes [US, KR] with [US, CA, UK] configuration
+ // location will be compared and mQueriedSatelliteAllowed will be set true
+ clearInvocations(mMockCachedAccessRestrictionMap);
+ when(mMockCountryDetector.getCurrentNetworkCountryIso()).thenReturn(
+ List.of(TEST_SATELLITE_COUNTRY_CODE_US, TEST_SATELLITE_COUNTRY_CODE_KR));
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+ SUB_ID, mSatelliteAllowedReceiver);
+ mTestableLooper.processAllMessages();
+ verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+ assertTrue(mQueriedSatelliteAllowed);
+
+ // allow case that network country codes [US] with [EMPTY] configuration
+ // location will be compared and mQueriedSatelliteAllowed will be set true
+ clearInvocations(mMockCachedAccessRestrictionMap);
+ when(mMockCountryDetector.getCurrentNetworkCountryIso()).thenReturn(List.of());
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+ SUB_ID, mSatelliteAllowedReceiver);
+ mTestableLooper.processAllMessages();
+ verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+ assertTrue(mQueriedSatelliteAllowed);
+
+ // allow case that network country codes [KR, JP] with [US, CA, UK] configuration
+ // location will not be compared and mQueriedSatelliteAllowed will be set false
+ clearInvocations(mMockCachedAccessRestrictionMap);
+ when(mMockCountryDetector.getCurrentNetworkCountryIso()).thenReturn(
+ List.of(TEST_SATELLITE_COUNTRY_CODE_KR, TEST_SATELLITE_COUNTRY_CODE_JP));
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+ SUB_ID, mSatelliteAllowedReceiver);
+ mTestableLooper.processAllMessages();
+ verify(mMockCachedAccessRestrictionMap, times(0)).containsKey(any());
+ assertFalse(mQueriedSatelliteAllowed);
+
+ // allow case that network country codes [KR] with [US, CA, UK] configuration
+ // location will not be compared and mQueriedSatelliteAllowed will be set false
+ clearInvocations(mMockCachedAccessRestrictionMap);
+ when(mMockCountryDetector.getCurrentNetworkCountryIso())
+ .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODE_KR));
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+ SUB_ID, mSatelliteAllowedReceiver);
+ mTestableLooper.processAllMessages();
+ verify(mMockCachedAccessRestrictionMap, times(0)).containsKey(any());
+ assertFalse(mQueriedSatelliteAllowed);
+
+
+ // set disallowed list case
+ when(mMockResources.getBoolean(
+ com.android.internal.R.bool.config_oem_enabled_satellite_access_allow))
+ .thenReturn(TEST_SATELLITE_NOT_ALLOW);
+ // get disallowed country codes list [EMPTY] from resources
+ when(mMockResources.getStringArray(
+ com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+ .thenReturn(TEST_SATELLITE_COUNTRY_CODES_EMPTY);
+
+ // disallow case that network country codes [US] with [EMPTY] configuration
+ // location will be compared and mQueriedSatelliteAllowed will be set true
+ clearInvocations(mMockCachedAccessRestrictionMap);
+ when(mMockCountryDetector.getCurrentNetworkCountryIso())
+ .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODE_US));
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+ SUB_ID, mSatelliteAllowedReceiver);
+ mTestableLooper.processAllMessages();
+ verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+ assertTrue(mQueriedSatelliteAllowed);
+
+ // get disallowed country codes list ["US", "CA", "UK"] from resources
+ when(mMockResources.getStringArray(
+ com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+ .thenReturn(TEST_SATELLITE_COUNTRY_CODES);
+
+ // disallow case that network country codes [EMPTY] with [US, CA, UK] configuration
+ // location will be compared and mQueriedSatelliteAllowed will be set true
+ clearInvocations(mMockCachedAccessRestrictionMap);
+ when(mMockCountryDetector.getCurrentNetworkCountryIso())
+ .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODES_EMPTY));
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+ SUB_ID, mSatelliteAllowedReceiver);
+ mTestableLooper.processAllMessages();
+ verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+ assertTrue(mQueriedSatelliteAllowed);
+
+ // disallow case that network country codes [US, JP] with [US, CA, UK] configuration
+ // location will be compared and mQueriedSatelliteAllowed will be set true
+ clearInvocations(mMockCachedAccessRestrictionMap);
+ when(mMockCountryDetector.getCurrentNetworkCountryIso()).thenReturn(
+ List.of(TEST_SATELLITE_COUNTRY_CODE_US, TEST_SATELLITE_COUNTRY_CODE_JP));
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+ SUB_ID, mSatelliteAllowedReceiver);
+ mTestableLooper.processAllMessages();
+ verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+ assertTrue(mQueriedSatelliteAllowed);
+
+ // disallow case that network country codes [JP] with [US, CA, UK] configuration
+ // location will be compared and mQueriedSatelliteAllowed will be set true
+ clearInvocations(mMockCachedAccessRestrictionMap);
+ when(mMockCountryDetector.getCurrentNetworkCountryIso())
+ .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODE_JP));
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+ SUB_ID, mSatelliteAllowedReceiver);
+ mTestableLooper.processAllMessages();
+ verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+ assertTrue(mQueriedSatelliteAllowed);
+
+ // disallow case that network country codes [US] with [US, CA, UK] configuration
+ // location will not be compared and mQueriedSatelliteAllowed will be set false
+ clearInvocations(mMockCachedAccessRestrictionMap);
+ when(mMockCountryDetector.getCurrentNetworkCountryIso())
+ .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODE_US));
+ mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+ mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+ SUB_ID, mSatelliteAllowedReceiver);
+ mTestableLooper.processAllMessages();
+ verify(mMockCachedAccessRestrictionMap, times(0)).containsKey(any());
+ assertFalse(mQueriedSatelliteAllowed);
+ }
+
+ @Test
public void testRequestIsSatelliteCommunicationAllowedForCurrentLocation() throws Exception {
// OEM-enabled satellite is not supported
when(mMockFeatureFlags.oemEnabledSatelliteFlag()).thenReturn(false);
@@ -376,6 +678,8 @@
when(mMockCountryDetector.getCurrentNetworkCountryIso()).thenReturn(EMPTY_STRING_LIST);
when(mMockTelecomManager.isInEmergencyCall()).thenReturn(false);
when(mMockPhone.isInEcm()).thenReturn(true);
+ when(mMockPhone.getContext()).thenReturn(mMockContext);
+ when(mMockPhone2.getContext()).thenReturn(mMockContext);
mSatelliteAccessControllerUT.elapsedRealtimeNanos = TEST_LOCATION_FRESH_DURATION_NANOS + 1;
when(mMockLocation0.getElapsedRealtimeNanos()).thenReturn(0L);
when(mMockLocation1.getElapsedRealtimeNanos()).thenReturn(0L);
@@ -457,6 +761,136 @@
}
@Test
+ public void testAllowLocationQueryForSatelliteAllowedCheck() {
+ mSatelliteAccessControllerUT.mLatestSatelliteCommunicationAllowedSetTime = 1;
+
+ mSatelliteAccessControllerUT.setIsSatelliteAllowedRegionPossiblyChanged(false);
+ // cash is invalid
+ mSatelliteAccessControllerUT.elapsedRealtimeNanos =
+ ALLOWED_STATE_CACHE_VALID_DURATION_NANOS + 10;
+ assertTrue(mSatelliteAccessControllerUT.allowLocationQueryForSatelliteAllowedCheck());
+
+ // cash is valid
+ mSatelliteAccessControllerUT.elapsedRealtimeNanos =
+ ALLOWED_STATE_CACHE_VALID_DURATION_NANOS - 10;
+ assertFalse(mSatelliteAccessControllerUT.allowLocationQueryForSatelliteAllowedCheck());
+
+ mSatelliteAccessControllerUT.setIsSatelliteAllowedRegionPossiblyChanged(true);
+ // cash is invalid
+ mSatelliteAccessControllerUT.elapsedRealtimeNanos =
+ ALLOWED_STATE_CACHE_VALID_DURATION_NANOS + 10;
+ assertTrue(mSatelliteAccessControllerUT.allowLocationQueryForSatelliteAllowedCheck());
+
+ // cash is valid and throttled
+ mSatelliteAccessControllerUT.elapsedRealtimeNanos =
+ ALLOWED_STATE_CACHE_VALID_DURATION_NANOS - 10;
+
+ // cash is valid and never queried before
+ mSatelliteAccessControllerUT.mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos = 0;
+ assertTrue(mSatelliteAccessControllerUT.allowLocationQueryForSatelliteAllowedCheck());
+
+ // cash is valid and throttled
+ mSatelliteAccessControllerUT.mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos =
+ mSatelliteAccessControllerUT.elapsedRealtimeNanos
+ - TEST_LOCATION_QUERY_THROTTLE_INTERVAL_NANOS + 100;
+ assertFalse(mSatelliteAccessControllerUT.allowLocationQueryForSatelliteAllowedCheck());
+
+ // cash is valid and not throttled
+ mSatelliteAccessControllerUT.mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos =
+ mSatelliteAccessControllerUT.elapsedRealtimeNanos
+ - TEST_LOCATION_QUERY_THROTTLE_INTERVAL_NANOS - 100;
+ assertTrue(mSatelliteAccessControllerUT.allowLocationQueryForSatelliteAllowedCheck());
+ }
+
+ @Test
+ public void testValidatePossibleChangeInSatelliteAllowedRegion() throws Exception {
+ // OEM-enabled satellite is supported
+ when(mMockFeatureFlags.oemEnabledSatelliteFlag()).thenReturn(true);
+
+ verify(mMockCountryDetector).registerForCountryCodeChanged(
+ mCountryDetectorHandlerCaptor.capture(), mCountryDetectorIntCaptor.capture(),
+ mCountryDetectorObjCaptor.capture());
+
+ assertSame(mCountryDetectorHandlerCaptor.getValue(), mSatelliteAccessControllerUT);
+ assertSame(mCountryDetectorIntCaptor.getValue(), CMD_HANDLE_COUNTRY_CODE_CHANGED);
+ assertNull(mCountryDetectorObjCaptor.getValue());
+
+ // Normal case that invokes
+ // mMockSatelliteOnDeviceAccessController.isSatCommunicationAllowedAtLocation
+ clearInvocations(mMockSatelliteOnDeviceAccessController);
+ setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
+ setUpResponseForRequestIsSatelliteProvisioned(true, SATELLITE_RESULT_SUCCESS);
+ doReturn(true).when(mMockLocationManager).isLocationEnabled();
+ mSatelliteAccessControllerUT.elapsedRealtimeNanos = TEST_LOCATION_FRESH_DURATION_NANOS;
+ sendCommandValidateCountryCodeChangeEvent(mMockContext);
+ verify(mMockSatelliteOnDeviceAccessController,
+ times(1)).isSatCommunicationAllowedAtLocation(
+ any(SatelliteOnDeviceAccessController.LocationToken.class));
+
+ // Case that isCommunicationAllowedCacheValid is true
+ clearInvocations(mMockSatelliteOnDeviceAccessController);
+ mSatelliteAccessControllerUT.elapsedRealtimeNanos = TEST_LOCATION_FRESH_DURATION_NANOS + 1;
+ sendCommandValidateCountryCodeChangeEvent(mMockContext);
+ verify(mMockSatelliteOnDeviceAccessController, never()).isSatCommunicationAllowedAtLocation(
+ any(SatelliteOnDeviceAccessController.LocationToken.class));
+
+ // Case that mLatestCacheEnforcedValidateTimeNanos is over
+ // ALLOWED_STATE_CACHE_VALIDATE_INTERVAL_NANOS (1hours)
+ clearInvocations(mMockSatelliteOnDeviceAccessController);
+ mSatelliteAccessControllerUT.elapsedRealtimeNanos =
+ mSatelliteAccessControllerUT.elapsedRealtimeNanos
+ + TEST_LOCATION_QUERY_THROTTLE_INTERVAL_NANOS + 1;
+ when(mMockLocation0.getElapsedRealtimeNanos())
+ .thenReturn(mSatelliteAccessControllerUT.elapsedRealtimeNanos + 1L);
+ when(mMockLocation1.getElapsedRealtimeNanos())
+ .thenReturn(mSatelliteAccessControllerUT.elapsedRealtimeNanos + 1L);
+ when(mMockLocation0.getLatitude()).thenReturn(2.0);
+ when(mMockLocation0.getLongitude()).thenReturn(2.0);
+ when(mMockLocation1.getLatitude()).thenReturn(3.0);
+ when(mMockLocation1.getLongitude()).thenReturn(3.0);
+ when(mMockSatelliteOnDeviceAccessController.isSatCommunicationAllowedAtLocation(
+ any(SatelliteOnDeviceAccessController.LocationToken.class))).thenReturn(false);
+ sendCommandValidateCountryCodeChangeEvent(mMockContext);
+ verify(mMockSatelliteOnDeviceAccessController,
+ times(1)).isSatCommunicationAllowedAtLocation(
+ any(SatelliteOnDeviceAccessController.LocationToken.class));
+ }
+
+ @Test
+ public void testRetryValidatePossibleChangeInSatelliteAllowedRegion() throws Exception {
+ when(mMockFeatureFlags.oemEnabledSatelliteFlag()).thenReturn(true);
+
+ verify(mMockCountryDetector).registerForCountryCodeChanged(
+ mCountryDetectorHandlerCaptor.capture(), mCountryDetectorIntCaptor.capture(),
+ mCountryDetectorObjCaptor.capture());
+
+ assertSame(mCountryDetectorHandlerCaptor.getValue(), mSatelliteAccessControllerUT);
+ assertSame(mCountryDetectorIntCaptor.getValue(), CMD_HANDLE_COUNTRY_CODE_CHANGED);
+ assertNull(mCountryDetectorObjCaptor.getValue());
+
+ assertTrue(mSatelliteAccessControllerUT
+ .getRetryCountPossibleChangeInSatelliteAllowedRegion() == 0);
+
+ setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_LOCATION_NOT_AVAILABLE);
+ sendCommandValidateCountryCodeChangeEvent(mMockContext);
+
+ assertTrue(mSatelliteAccessControllerUT
+ .getRetryCountPossibleChangeInSatelliteAllowedRegion() == 1);
+
+ mSatelliteAccessControllerUT.setRetryCountPossibleChangeInSatelliteAllowedRegion(
+ DEFAULT_MAX_RETRY_COUNT_FOR_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION);
+ sendSatelliteCommunicationAllowedEvent();
+ assertTrue(mSatelliteAccessControllerUT
+ .getRetryCountPossibleChangeInSatelliteAllowedRegion() == 0);
+
+ mSatelliteAccessControllerUT.setRetryCountPossibleChangeInSatelliteAllowedRegion(2);
+ setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
+ sendSatelliteCommunicationAllowedEvent();
+ assertTrue(mSatelliteAccessControllerUT
+ .getRetryCountPossibleChangeInSatelliteAllowedRegion() == 0);
+ }
+
+ @Test
public void testUpdateSatelliteConfigData() throws Exception {
verify(mMockSatelliteController).registerForConfigUpdateChanged(
mConfigUpdateHandlerCaptor.capture(), mConfigUpdateIntCaptor.capture(),
@@ -528,6 +962,18 @@
verify(mMockCachedAccessRestrictionMap, times(1)).clear();
}
+ private void sendSatelliteCommunicationAllowedEvent() {
+ Pair<Integer, ResultReceiver> requestPair =
+ new Pair<>(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
+ mSatelliteAccessControllerUT.getResultReceiverCurrentLocation());
+ Message msg = mSatelliteAccessControllerUT.obtainMessage(
+ CMD_IS_SATELLITE_COMMUNICATION_ALLOWED);
+ msg.obj = requestPair;
+ msg.sendToTarget();
+ mTestableLooper.processAllMessages();
+ }
+
+
private void sendConfigUpdateChangedEvent(Context context) {
Message msg = mSatelliteAccessControllerUT.obtainMessage(EVENT_CONFIG_DATA_UPDATED);
msg.obj = new AsyncResult(context, SATELLITE_RESULT_SUCCESS, null);
@@ -535,6 +981,13 @@
mTestableLooper.processAllMessages();
}
+ private void sendCommandValidateCountryCodeChangeEvent(Context context) {
+ Message msg = mSatelliteAccessControllerUT.obtainMessage(CMD_HANDLE_COUNTRY_CODE_CHANGED);
+ msg.obj = new AsyncResult(context, SATELLITE_RESULT_SUCCESS, null);
+ msg.sendToTarget();
+ mTestableLooper.processAllMessages();
+ }
+
private void clearAllInvocations() {
clearInvocations(mMockSatelliteController);
clearInvocations(mMockSatelliteOnDeviceAccessController);
@@ -678,5 +1131,17 @@
public boolean isWaitForCurrentLocationTimerStarted() {
return hasMessages(EVENT_WAIT_FOR_CURRENT_LOCATION_TIMEOUT);
}
+
+ public int getRetryCountPossibleChangeInSatelliteAllowedRegion() {
+ return mRetryCountForValidatingPossibleChangeInAllowedRegion;
+ }
+
+ public void setRetryCountPossibleChangeInSatelliteAllowedRegion(int retryCount) {
+ mRetryCountForValidatingPossibleChangeInAllowedRegion = retryCount;
+ }
+
+ public ResultReceiver getResultReceiverCurrentLocation() {
+ return mHandlerForSatelliteAllowedResult;
+ }
}
}
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
index 97c3d44..6242710 100644
--- a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
@@ -1306,7 +1306,7 @@
ArgumentCaptor<RadioOnStateListener.Callback> callback =
ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
- eq(testPhone), eq(false), eq(0));
+ eq(testPhone), eq(false), eq(0), eq(false));
assertFalse(callback.getValue()
.isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE, false));
@@ -1334,7 +1334,7 @@
ArgumentCaptor<RadioOnStateListener.Callback> callback =
ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
- eq(testPhone), eq(false), eq(0));
+ eq(testPhone), eq(false), eq(0), eq(false));
assertFalse(callback.getValue()
.isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE, false));
@@ -1446,7 +1446,7 @@
ArgumentCaptor<RadioOnStateListener.Callback> callback =
ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
- eq(testPhone), eq(false), eq(0));
+ eq(testPhone), eq(false), eq(0), eq(false));
assertFalse(callback.getValue()
.isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE, false));
@@ -1546,7 +1546,7 @@
PHONE_ACCOUNT_HANDLE_1, connectionRequest);
verify(mRadioOnHelper).triggerRadioOnAndListen(any(), eq(false),
- eq(testPhone0), eq(false), eq(0));
+ eq(testPhone0), eq(false), eq(0), eq(false));
}
/**
@@ -1580,7 +1580,7 @@
PHONE_ACCOUNT_HANDLE_1, connectionRequest);
verify(mRadioOnHelper).triggerRadioOnAndListen(any(), eq(false),
- eq(testPhone0), eq(false), eq(0));
+ eq(testPhone0), eq(false), eq(0), eq(false));
}
/**
@@ -1613,7 +1613,7 @@
PHONE_ACCOUNT_HANDLE_1, connectionRequest);
verify(mRadioOnHelper, times(0)).triggerRadioOnAndListen(any(),
- eq(true), eq(testPhone0), eq(false), eq(0));
+ eq(true), eq(testPhone0), eq(false), eq(0), eq(false));
}
/**
@@ -2761,7 +2761,7 @@
ArgumentCaptor<RadioOnStateListener.Callback> callback =
ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
- eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS));
+ eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS), eq(true));
ServiceState ss = new ServiceState();
ss.setState(ServiceState.STATE_OUT_OF_SERVICE);
@@ -2800,7 +2800,7 @@
ArgumentCaptor<RadioOnStateListener.Callback> callback =
ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
- eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS));
+ eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS), eq(true));
ServiceState ss = new ServiceState();
ss.setState(ServiceState.STATE_OUT_OF_SERVICE);
@@ -2825,7 +2825,7 @@
ArgumentCaptor<RadioOnStateListener.Callback> callback =
ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
- eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS));
+ eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS), eq(true));
ServiceState ss = new ServiceState();
ss.setState(ServiceState.STATE_IN_SERVICE);
@@ -2861,7 +2861,7 @@
ArgumentCaptor<RadioOnStateListener.Callback> callback =
ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
- eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS));
+ eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS), eq(true));
ServiceState ss = new ServiceState();
ss.setState(ServiceState.STATE_IN_SERVICE);
@@ -2898,7 +2898,7 @@
ArgumentCaptor<RadioOnStateListener.Callback> callback =
ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
- eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS));
+ eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS), eq(true));
ServiceState ss = new ServiceState();
ss.setState(ServiceState.STATE_IN_SERVICE);
@@ -2935,7 +2935,7 @@
ArgumentCaptor<RadioOnStateListener.Callback> callback =
ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
- eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS));
+ eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS), eq(true));
mConnection.setDisconnected(null);
diff --git a/tests/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelectorTest.java b/tests/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelectorTest.java
index 90446af..8a83ab0 100644
--- a/tests/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelectorTest.java
+++ b/tests/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelectorTest.java
@@ -3612,7 +3612,108 @@
EmergencyRegistrationResult regResult = getEmergencyRegResult(NGRAN,
REGISTRATION_STATE_UNKNOWN,
- 0, false, true, 0, 0, "", "");
+ 0, false, true, 1, 0, "", "", "us");
+ SelectionAttributes attr = getSelectionAttributes(SLOT_0, SLOT_0_SUB_ID, regResult);
+ mDomainSelector.selectDomain(attr, mTransportSelectorCallback);
+ processAllMessages();
+
+ bindImsServiceUnregistered();
+
+ verifyScanPsPreferred();
+ }
+
+ @Test
+ public void testNrSaOnlyLimitedServiceNgranEmc() throws Exception {
+ PersistableBundle bundle = getDefaultPersistableBundle();
+ bundle.putIntArray(KEY_EMERGENCY_OVER_IMS_SUPPORTED_3GPP_NETWORK_TYPES_INT_ARRAY,
+ new int[] { NGRAN, EUTRAN });
+ when(mCarrierConfigManager.getConfigForSubId(anyInt(), anyVararg())).thenReturn(bundle);
+
+ createSelector(SLOT_0_SUB_ID);
+ unsolBarringInfoChanged(false);
+
+ EmergencyRegistrationResult regResult = getEmergencyRegResult(NGRAN,
+ REGISTRATION_STATE_UNKNOWN,
+ 0, false, false, 1, 0, "", "", "us");
+ SelectionAttributes attr = getSelectionAttributes(SLOT_0, SLOT_0_SUB_ID, regResult);
+ mDomainSelector.selectDomain(attr, mTransportSelectorCallback);
+ processAllMessages();
+
+ bindImsServiceUnregistered();
+
+ verifyPsDialed();
+ }
+
+ @Test
+ public void testNrSaOnlyLimitedServiceNgranNoEmc() throws Exception {
+ PersistableBundle bundle = getDefaultPersistableBundle();
+ bundle.putIntArray(KEY_EMERGENCY_OVER_IMS_SUPPORTED_3GPP_NETWORK_TYPES_INT_ARRAY,
+ new int[] { NGRAN, EUTRAN });
+ when(mCarrierConfigManager.getConfigForSubId(anyInt(), anyVararg())).thenReturn(bundle);
+
+ createSelector(SLOT_0_SUB_ID);
+ unsolBarringInfoChanged(false);
+
+ EmergencyRegistrationResult regResult = getEmergencyRegResult(NGRAN,
+ REGISTRATION_STATE_UNKNOWN,
+ 0, false, false, 0, 0, "", "", "us");
+ SelectionAttributes attr = getSelectionAttributes(SLOT_0, SLOT_0_SUB_ID, regResult);
+ mDomainSelector.selectDomain(attr, mTransportSelectorCallback);
+ processAllMessages();
+
+ bindImsServiceUnregistered();
+
+ verifyScanPreferred(DomainSelectionService.SCAN_TYPE_NO_PREFERENCE, NGRAN);
+ }
+
+ @Test
+ public void testDefaultLimitedServiceNgranEmcWhenSimNotReady() throws Exception {
+ createSelector(SLOT_0_SUB_ID);
+ unsolBarringInfoChanged(false);
+ doReturn(TelephonyManager.SIM_STATE_PIN_REQUIRED)
+ .when(mTelephonyManager).getSimState(anyInt());
+
+ EmergencyRegistrationResult regResult = getEmergencyRegResult(NGRAN,
+ REGISTRATION_STATE_UNKNOWN,
+ 0, false, false, 1, 0, "", "", "us");
+ SelectionAttributes attr = getSelectionAttributes(SLOT_0, SLOT_0_SUB_ID, regResult);
+ mDomainSelector.selectDomain(attr, mTransportSelectorCallback);
+ processAllMessages();
+
+ bindImsServiceUnregistered();
+
+ verifyPsDialed();
+ }
+
+ @Test
+ public void testDefaultLimitedServiceNgranNoEmcWhenSimNotReady() throws Exception {
+ createSelector(SLOT_0_SUB_ID);
+ unsolBarringInfoChanged(false);
+ doReturn(TelephonyManager.SIM_STATE_PIN_REQUIRED)
+ .when(mTelephonyManager).getSimState(anyInt());
+
+ EmergencyRegistrationResult regResult = getEmergencyRegResult(NGRAN,
+ REGISTRATION_STATE_UNKNOWN,
+ 0, false, false, 0, 0, "", "", "us");
+ SelectionAttributes attr = getSelectionAttributes(SLOT_0, SLOT_0_SUB_ID, regResult);
+ mDomainSelector.selectDomain(attr, mTransportSelectorCallback);
+ processAllMessages();
+
+ bindImsServiceUnregistered();
+
+ verifyScanPsPreferred();
+ }
+
+ @Test
+ public void testNrSaOnlyLimitedServiceNgranEmcNoCountryIsoWhenSimNotReady() throws Exception {
+ createSelector(SLOT_0_SUB_ID);
+ unsolBarringInfoChanged(false);
+ doReturn(TelephonyManager.SIM_STATE_PIN_REQUIRED)
+ .when(mTelephonyManager).getSimState(anyInt());
+
+ EmergencyRegistrationResult regResult = getEmergencyRegResult(NGRAN,
+ REGISTRATION_STATE_UNKNOWN,
+ 0, false, false, 1, 0, "", "", "");
SelectionAttributes attr = getSelectionAttributes(SLOT_0, SLOT_0_SUB_ID, regResult);
mDomainSelector.selectDomain(attr, mTransportSelectorCallback);
processAllMessages();