Merge "Add attribution tag for bypassing location toggle" into 24D1-dev am: 2a86a406c2

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/services/Telephony/+/27632735

Change-Id: I83c7ad85e4c25cc65a1794c5c83f411b0547826f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/Android.bp b/Android.bp
index c717d86..78e6afb 100644
--- a/Android.bp
+++ b/Android.bp
@@ -45,10 +45,10 @@
         "modules-utils-os",
         "nist-sip",
         "service-entitlement",
-        "telephony_flags_core_java_lib",
-        "android.permission.flags-aconfig-java",
+        "android.permission.flags-aconfig-java-export",
         "satellite-s2storage-ro",
         "s2-geometry-library-java",
+        "dropbox_flags_lib",
     ],
 
     srcs: [
@@ -101,3 +101,4 @@
     name: "TeleService-platform-compat-config",
     src: ":TeleService",
 }
+
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 1190d38..97f5858 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -119,6 +119,7 @@
     <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
     <uses-permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST" />
     <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
+    <uses-permission android:name="android.permission.READ_SYSTEM_GRAMMATICAL_GENDER" />
     <!-- Needed to block messages. -->
     <uses-permission android:name="android.permission.READ_BLOCKED_NUMBERS" />
     <!-- Needed for emergency contact notification. -->
diff --git a/assets/CarrierRestrictionOperatorDetails.json b/assets/CarrierRestrictionOperatorDetails.json
index 8602d4e..a088f94 100644
--- a/assets/CarrierRestrictionOperatorDetails.json
+++ b/assets/CarrierRestrictionOperatorDetails.json
@@ -1,6 +1,10 @@
 {
-  "_comment": "Operator should register with its application package name, carrierId and all the corresponding  SHAIDs",
-  "_comment": "Example format :: << \"packageName\" : {\"carrierId\":<int>, \"callerSHA1Id\":[<SHAID1>, <SHAID2>]} >>",
-  "com.vzw.hss.myverizon":{"carrierId":1839,"callerSHA1Id":["C58EE7871896786F8BF70EBDB137DE10074043E9","AE23A03436DF07B0CD70FE881CDA2EC1D21215D7B7B0CC68E67B67F5DF89526A"]},
-  "com.google.android.apps.tycho":{"carrierId":1989,"callerSHA1Id":["B9CFCE1C47A6AC713442718F15EF55B00B3A6D1A6D48CB46249FA8EB51465350","4C36AF4A5BDAD97C1F3D8B283416D244496C2AC5EAFE8226079EF6F676FD1859"]}
+  "_comment": "Operator should register with its application package name, carrierId and all the corresponding  SHA256IDs",
+  "_comment": "Example format :: << \"packageName\" : {\"carrierId\":[<int>], \"callerSHA256Ids\":[<SHAID1>, <SHAID2>]} >>",
+  "com.vzw.hss.myverizon":{"carrierIds":[1839],"callerSHA256Ids":["AE23A03436DF07B0CD70FE881CDA2EC1D21215D7B7B0CC68E67B67F5DF89526A"]},
+  "com.google.android.apps.tycho":{"carrierIds":[1989],"callerSHA256Ids":["B9CFCE1C47A6AC713442718F15EF55B00B3A6D1A6D48CB46249FA8EB51465350","4C36AF4A5BDAD97C1F3D8B283416D244496C2AC5EAFE8226079EF6F676FD1859"]},
+  "com.comcast.mobile.mxs":{"carrierIds": [2032,2532,2556],"callerSHA256Ids":["914C26403B57D2D482359FC235CC825AD00D52B0121C18EF2B2B9D4DDA4B8996"]},
+  "com.xfinity.digitalhome": {"carrierIds": [2032,2532,2556],"callerSHA256Ids":["31b4c17315c2269040d535f7b6a79cf4d11517c664d9de8f1ddf4f8a785aad47"]},
+  "com.xfinity.digitalhome.debug":{"carrierIds": [2032,2532,2556],"callerSHA256Ids":["c9133e8168f97573c8c567f46777dff74ade0c015ecf2c5e91be3e4e76ddcae2"]},
+  "com.xfinity.dh.xm.app": {"carrierIds": [2032,2532,2556],"callerSHA256Ids":["c9133e8168f97573c8c567f46777dff74ade0c015ecf2c5e91be3e4e76ddcae2"]}
 }
\ No newline at end of file
diff --git a/proguard.flags b/proguard.flags
index 8eafd30..c572e1b 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -12,4 +12,6 @@
 -keep class com.android.phone.callcomposer.** {
  *;
 }
+# Keep the FakeFeatureFlagsImpl
+-keep class com.android.internal.telephony.flags.FakeFeatureFlagsImpl { *; }
 -verbose
\ No newline at end of file
diff --git a/res/layout/radio_info.xml b/res/layout/radio_info.xml
index 0c04800..1e5e91b 100644
--- a/res/layout/radio_info.xml
+++ b/res/layout/radio_info.xml
@@ -20,6 +20,7 @@
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:paddingTop="40dp"
     android:layoutDirection="locale"
     android:textDirection="locale">
 
@@ -185,6 +186,12 @@
             <TextView android:id="@+id/network_slicing_config" style="@style/info_value" />
         </LinearLayout>
 
+        <!-- eUICC info -->
+        <LinearLayout style="@style/RadioInfo_entry_layout" android:orientation="horizontal">
+            <TextView android:id="@+id/euicc_info_label" android:text="@string/radio_info_euicc_info" style="@style/info_label" />
+            <TextView android:id="@+id/euicc_info" style="@style/info_value" />
+        </LinearLayout>
+
         <!-- Horizontal Rule -->
         <View
             android:layout_width="fill_parent"
@@ -204,6 +211,22 @@
                  android:layout_height="wrap_content"
                 />
 
+        <!-- Mock signal strength -->
+        <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_signal_strength_label" style="@style/info_label" />
+            <Spinner android:id="@+id/signalStrength"
+                 android:layout_width="match_parent"
+                 android:layout_height="wrap_content"/>
+        </LinearLayout>
+
+       <!-- Mock data network type -->
+       <LinearLayout style="@style/RadioInfo_entry_layout">
+            <TextView android:text="@string/radio_info_data_network_type_label" style="@style/info_label" />
+            <Spinner android:id="@+id/dataNetworkType"
+                 android:layout_width="match_parent"
+                 android:layout_height="wrap_content"/>
+         </LinearLayout>
+
         <!-- Horizontal Rule -->
         <View
             android:layout_width="fill_parent"
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index ca03bfb..8ba0a99 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Verlaat noodterugbelmodus om \'n nienoodoproep te maak."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Nie geregistreer op netwerk nie."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobiele netwerk nie beskikbaar nie."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Selnetwerk is nie beskikbaar nie.\n\nVerbind met ’n draadlose netwerk om ’n oproep te maak.\n\n2G is gedeaktiveer op hierdie toestel, wat dalk jou konnektiwiteit kan beïnvloed. Gaan na Instellings en aktiveer Laat 2G toe om voort te gaan."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobiele netwerk is nie beskikbaar nie. Koppel aan \'n draadlose netwerk om \'n oproep te maak."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Selnetwerk is nie beskikbaar nie.\n\nVerbind met ’n draadlose netwerk om ’n oproep te maak.\n\n2G is gedeaktiveer op hierdie toestel, wat jou konnektiwiteit kan beïnvloed. Gaan na Instellings en aktiveer Laat 2G toe om voort te gaan."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Voer \'n geldige nommer in om \'n oproep te maak."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Oproep het misluk."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Oproep kan nie op die oomblik bygevoeg word nie. Jy kan probeer in verbinding tree deur \'n boodskap te stuur."</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 6aa032e..3846362 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"አስቸኳይ ያልሆነ ጥሪ ለማድረግ ከአስቸኳይ መልሰህ ደውል ሁነታ ይውጡ።"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"በአውታረ መረቡ ላይ አልተመዘገበም።"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"የተንቀሳቃሽ አደራጅ የለም።"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"የተንቀሳቃሽ ስልክ አውታረ መረብ አይገኝም።\n\nጥሪ ለማድረግ ከሽቦ አልባ አውታር ጋር ያገናኙ።\n\n2G በዚህ መሣሪያ ላይ ተሰናክሏል፣ ይህም ግንኙነትዎ ላይ ተጽዕኖ እያሳደረ ይሆናል። ወደ ቅንብሮች ይሂዱ እና ለመቀጠል 2G ፍቀድ የሚለውን ያንቁ።"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"የተንቀሳቃሽ ስልክ አውታረ መረብ አይገኝም። ጥሪ ለማድረግ ከሽቦ አልባ አውታረ መረብ ጋር ያገናኙ።"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"የተንቀሳቃሽ ስልክ አውታረ መረብ አይገኝም።\n\nጥሪ ለማድረግ ከሽቦ አልባ አውታር ጋር ያገናኙ።\n\n2G እዚህ መሣሪያ ላይ ተሰናክሏል፣ ይህም ግንኙነትዎ ላይ ተጽዕኖ እያደረገ ይሆናል። ወደ ቅንብሮች ይሂዱ እና ለመቀጠል 2G ፍቀድ የሚለውን ያንቁ።"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"አንድ ጥሪ ለማድረግ የሚሰራ ቁጥር ያስገቡ።"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"ጥሪ አልተሳካም።"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"ጥሪ አሁን መታከል አይችልም። መልዕክት በመላክ ለማግኘት መሞከር ይችላሉ።"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 13c1822..862be88 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"ينبغي الخروج من وضع معاودة الاتصال بالطوارئ لإجراء مكالمة غير طارئة."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"غير مسجل على الشبكة."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"شبكة الجوال غير متاحة."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"شبكة الجوّال غير متوفّرة.\n\nيُرجى الاتصال بشبكة لاسلكية لإجراء مكالمة.\n\nتم إيقاف شبكة الجيل الثاني على هذا الجهاز، ما قد يؤثر في إمكانية الاتصال بالإنترنت. انتقِل إلى \"الإعدادات\" وفعِّل خيار \"السماح بشبكة الجيل الثاني\" للمتابعة."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"شبكة الجوّال ليست متوفرة. اتصل بشبكة لاسلكية لإجراء مكالمة."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"شبكة الجوّال غير متوفّرة.\n\nيُرجى الاتصال بشبكة لاسلكية لإجراء مكالمة.\n\nتم إيقاف شبكة الجيل الثاني على هذا الجهاز، ما قد يؤثر في إمكانية الاتصال بالإنترنت. انتقِل إلى \"الإعدادات\" وفعِّل خيار \"السماح بشبكة الجيل الثاني\" للمتابعة."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"لإجراء مكالمة، أدخل رقمًا صالحًا."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"تعذّرت المكالمة."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"يتعذر إجراء المكالمة في الوقت الحالي. يمكنك محاولة التواصل من خلال إرسال رسالة."</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 11105cd..bc2eee1 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"সাধাৰণ কল কৰিবৰ কাৰণে জৰুৰীকালীন কলবেক ম\'ডৰ পৰা বাহিৰ হওক।"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"নেটৱৰ্কত পঞ্জীকৃত নহয়।"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"ম’বাইল নেটৱৰ্ক উপলব্ধ নহয়।"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"ম’বাইল নেটৱৰ্ক উপলব্ধ নহয়।\n\nকল কৰিবলৈ এটা ৱায়াৰলেছ নেটৱৰ্কৰ সৈতে সংযোগ কৰক।\n\nএই ডিভাইচটোত 2G অক্ষম কৰা হৈছে, যিটোৱে আপোনাৰ সংযোগত প্ৰভাৱ পেলাব পাৰে। অব্যাহত ৰাখিবলৈ ছেটিঙলৈ গৈ 2Gক অনুমতি দিয়ক সক্ষম কৰক।"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"ম’বাইল নেটৱৰ্ক উপলব্ধ নহয়। কল কৰিবৰ কাৰণে কোনো বেতাঁৰ নেটৱৰ্কৰ সৈতে সংযোগ কৰক।"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"ম’বাইল নেটৱৰ্ক উপলব্ধ নহয়।\n\nকল কৰিবলৈ এটা বেতাঁৰ নেটৱৰ্কৰ সৈতে সংযোগ কৰক।\n\nএই ডিভাইচটোত 2G অক্ষম কৰা হৈছে, যিটোৱে আপোনাৰ সংযোগত প্ৰভাৱ পেলাব পাৰে। অব্যাহত ৰাখিবলৈ ছেটিঙলৈ গৈ 2Gক অনুমতি দিয়ক সক্ষম কৰক।"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"কল কৰিবৰ কাৰণে এটা মান্য নম্বৰ দিয়ক।"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"কল বিফল হৈছে"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"এই মুহূৰ্তত কল যোগ কৰিব নোৱাৰি। আপুনি এটা বাৰ্তা পঠাই যোগাযোগ কৰিবলৈ চেষ্টা কৰি চাব পাৰে।"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index f27d4e2..f443d39 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Qeyri-fövqəladə zəng etmək üçün fövqəladə zəng rejimindən çıxın."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Şəbəkədə qeydə alınmayıb."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobil şəbəkə əlçatımlı deyil."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobil şəbəkə əlçatan deyil.\n\nZəng etmək üçün simsiz şəbəkəyə qoşulun.\n\nBu cihazda 2G deaktiv edilib, bu da bağlantınıza təsir edə bilər. Davam etmək üçün Ayarlara keçib \"2G-yə icazə verin\" seçimini aktiv edin."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobil şəbəkə əlçatmazdır. Zəng etmək üçün Wi-Fi şəbəkəsinə qoşulun."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobil şəbəkə əlçatan deyil.\n\nZəng etmək üçün simsiz şəbəkəyə qoşulun.\n\nBu cihazda 2G deaktiv edilib, bu da bağlantınıza təsir edə bilər. Davam etmək üçün Ayarlara keçib \"2G-yə icazə verin\" seçimini aktiv edin."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Zəngi yerləşdirmək üçün düzgün nömrə daxil edin."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Zəng alınmadı."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Hazırda zəngi əlavə etmək mümkün deyil. Mesaj göndərərək təkrar əlaqə saxlaya bilərsiniz."</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 40050b7..06f6a0a 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Izađite iz režima hitnog povratnog poziva da biste uputili poziv koji nije hitan."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Nije registrovano na mreži."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilna mreža nije dostupna."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobilna mreža nije dostupna.\n\nPovežite se na bežičnu mrežu da biste uputili poziv.\n\n2G je onemogućen na ovom uređaju, što može da utiče na povezivanje. Idite u Podešavanja i omogućite opciju Dozvoli 2G da biste nastavili."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobilna mreža nije dostupna. Povežite se na bežičnu da biste uputili poziv."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobilna mreža nije dostupna.\n\nPovežite se na bežičnu mrežu da biste uputili poziv.\n\n2G je onemogućen na ovom uređaju, što može da utiče na povezivanje. Idite u Podešavanja i omogućite opciju Dozvoli 2G da biste nastavili."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Da biste uputili poziv, unesite važeći broj."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Poziv nije uspeo."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Dodavanje poziva trenutno nije moguće. Možete da pokušate da ostvarite kontakt pomoću poruke."</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 5269786..76c6676 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Каб зрабіць звычайны выклік, выйдзіце з рэжыму экстранных зваротных выклікаў."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Не зарэгістраваны ў сетцы."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Мабільная сетка недаступная."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Мабільная сетка недаступная.\n\nКаб зрабіць выклік, падключыцеся да бесправадной сеткі.\n\nНа гэтай прыладзе адключана перадача даных у рэжыме 2G, што можа ўплываць на магчымасць падключэння. Каб працягнуць, перайдзіце ў налады і ўключыце параметр \"Дазволіць 2G\"."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Мабільная сетка недаступная. Падлучыцеся да бесправадной сеткі, каб зрабіць выклік."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Мабільная сетка недаступная.\n\nКаб зрабіць выклік, падключыцеся да бесправадной сеткі.\n\nНа гэтай прыладзе адключана перадача даных у рэжыме 2G, што можа ўплываць на магчымасць падключэння. Каб працягнуць, перайдзіце ў налады і ўключыце параметр \"Дазволіць 2G\"."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Каб зрабіць выклік, увядзіце сапраўдны нумар."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Збой выклiку."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Немагчыма зараз дадаць выклік. Можна выйсці на сувязь, адправіўшы паведамленне."</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index e2fb21d..6266c3b 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Излезте от режима на обратно обаждане при спешност, за да можете да извършвате обаждания, които не са спешни."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Няма регистрация в мрежата."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Няма мобилна мрежа."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Не е налице мобилна мрежа.\n\nСвържете се с безжична мрежа, за да извършите обаждане.\n\nУслугата 2G е деактивирана на това устройство, което може да влияе на свързаността ви. За да продължите, отворете настройките и активирайте „Разрешаване на 2G“."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Няма мобилна мрежа. Свържете се с безжична, за да се обадите."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Не е налице мобилна мрежа.\n\nСвържете се с безжична мрежа, за да извършите обаждане.\n\nУслугата 2G е деактивирана на това устройство, което може да влияе на свързаността ви. За да продължите, отворете настройките и активирайте „Разрешаване на 2G“."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"За да извършите обаждане, въведете валиден номер."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Обаждането не бе успешно."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Обаждането не може да бъде добавено сега. Може да се опитате да се свържете чрез изпращане на съобщение."</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 8a194b2..d562b95 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"একটি সাধারণ কল করতে জরুরি কলব্যাক মোডের বাইরে আসুন৷"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"নেটওয়ার্কে নিবন্ধিত নয়৷"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"মোবাইল নেটওয়ার্ক উপলব্ধ নয়৷"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"মোবাইল নেটওয়ার্ক উপলভ্য নেই।\n\nকল করতে হলে ওয়্যারলেস নেটওয়ার্কের সাথে কানেক্ট করুন।\n\nএই ডিভাইসে 2G পরিষেবা বন্ধ করে দেওয়া হয়েছে, যার ফলে হয়ত আপনার কানেক্টিভিটি প্রভাবিত হচ্ছে। সেটিংসে যান এবং চালিয়ে যেতে \'2G পরিষেবার অনুমতি দিন\' বিকল্পটি চালু করুন।"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"মোবাইল নেটওয়ার্ক উপলব্ধ নেই৷ একটি কল করতে কোনো ওয়্যারলেস নেটওয়ার্কে সংযোগ করুন৷"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"মোবাইল নেটওয়ার্ক উপলভ্য নেই।\n\nকল করতে হলে ওয়্যারলেস নেটওয়ার্কের সাথে কানেক্ট করুন।\n\nএই ডিভাইসে 2G পরিষেবা বন্ধ করে দেওয়া হয়েছে, যার ফলে হয়ত আপনার কানেক্টিভিটি প্রভাবিত হচ্ছে। সেটিংসে যান এবং চালিয়ে যেতে \'2G পরিষেবার অনুমতি দিন\' বিকল্পটি চালু করুন।"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"কোনো কল স্থাপন করতে, একটি বৈধ নম্বর লিখুন৷"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"কল ব্যর্থ হয়েছে৷"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"এই সময়ে কলটি যোগ করা যাবে না। আপনি একটি মেসেজ পাঠিয়ে যোগাযোগ করার চেষ্টা করতে পারেন।"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index c577c73..2cbbcc8 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Izađite iz načina rada za hitni povratni poziv da uputite poziv koji nije hitan."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Nije registrirano na mreži."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilna mreža nije dostupna."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobilna mreža nije dostupna.\n\nPovežite se s bežičnom mrežom da uputite poziv.\n\n2G je onemogućen na uređaju, što može uticati na povezivost. Da nastavite, idite u Postavke i omogućite Dozvoli 2G."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobilna mreža nije dostupna. Povežite se na bežičnu mrežu da pozovete."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobilna mreža nije dostupna.\n\nPovežite se s bežičnom mrežom da uputite poziv.\n\n2G je onemogućen na uređaju, što može uticati na povezivost. Da nastavite, idite u Postavke i omogućite Dozvoli 2G."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Da uputite poziv, upišite važeći broj."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Poziv nije uspio."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Trenutno nije moguće dodati poziv. Možete pokušati poslati poruku."</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index e3bf00c..3bfa70b 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Surt del mode de devolució de trucada d\'emergència per fer un altre tipus de trucada."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"No registrat a la xarxa."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"La xarxa mòbil no està disponible."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"La xarxa mòbil no està disponible.\n\nConnecta\'t a una xarxa sense fil per fer una trucada.\n\nEl 2G està desactivat en aquest dispositiu, cosa que pot afectar la connectivitat. Ves a Configuració i activa Permet 2G per continuar."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"La xarxa mòbil no està disponible. Per fer una trucada, connecta\'t a una xarxa sense fil."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"La xarxa mòbil no està disponible.\n\nConnecta\'t a una xarxa sense fil per fer una trucada.\n\nEl 2G està desactivat en aquest dispositiu, cosa que pot afectar la connectivitat. Ves a Configuració i activa Permet 2G per continuar."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Per realitzar una trucada, introdueix un número vàlid."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"No s\'ha pogut fer la trucada."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"En aquest moment no es pot afegir la trucada. Prova d\'enviar un missatge."</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 4caad61..552567d 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Chcete-li uskutečnit běžný hovor, opusťte režim tísňového volání."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Přihlášení k síti nebylo úspěšné."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilní síť je nedostupná."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobilní síť není k dispozici.\n\nAbyste mohli uskutečnit hovor, připojte se k bezdrátové síti.\n\nV tomto zařízení není aktivní připojení 2G, což může ovlivňovat možnosti připojení. Přejděte do nastavení a zapněte volbu Povolit 2G."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobilní síť není k dispozici. Pokud chcete provést hovor, připojte se k bezdrátové síti."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobilní síť není k dispozici.\n\nAbyste mohli uskutečnit hovor, připojte se k bezdrátové síti.\n\nV tomto zařízení není aktivní připojení 2G, což může ovlivňovat možnosti připojení. Přejděte do nastavení a zapněte volbu Povolit 2G."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Chcete-li uskutečnit hovor, zadejte platné telefonní číslo."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Volání se nezdařilo."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Hovor momentálně není možné přidat. Můžete místo toho zkusit poslat zprávu."</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 43410cb..e099858 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Afslut nødtilbagekaldstilstand for at foretage et almindeligt opkald."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Ikke registreret på netværk."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilnetværket er ikke tilgængeligt."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobilnetværk er ikke tilgængeligt.\n\nOpret forbindelse til et trådløst netværk for at foretage et opkald.\n\n2G er deaktiveret på denne enhed, hvilket kan påvirke dine forbindelsesmuligheder. Gå til Indstillinger, og aktivér Tillad 2G for at fortsætte."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobilnetværk er ikke tilgængeligt. Opret forbindelse til et trådløst netværk for at foretage et opkald."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobilnetværk er ikke tilgængeligt.\n\nOpret forbindelse til et trådløst netværk for at foretage et opkald.\n\n2G er deaktiveret på denne enhed, hvilket kan påvirke dine forbindelsesmuligheder. Gå til Indstillinger, og aktivér Tillad 2G for at fortsætte."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Angiv et gyldigt nummer for at foretage et opkald."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Opkald mislykkedes."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Opkaldet kan ikke tilføjes lige nu. Du kan prøve at sende en besked i stedet."</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 6c7d41a..06da7f9 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Beende den Notfallrückrufmodus, um einen Anruf zu tätigen, bei dem es sich nicht um einen Notfall handelt."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Nicht in Netzwerk registriert."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilfunknetz ist nicht verfügbar."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobilfunknetz nicht verfügbar.\n\nStelle eine Verbindung zu einem drahtlosen Netzwerk her, um zu telefonieren.\n\n2G ist auf diesem Gerät deaktiviert. Dies kann deine Verbindung beeinträchtigen. Gehe zu den Einstellungen und aktiviere „2G zulassen“, um fortzufahren."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Es ist kein Mobilfunknetz verfügbar. Stelle zum Telefonieren eine WLAN-Verbindung her."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobilfunknetz nicht verfügbar.\n\nStelle eine Verbindung zu einem drahtlosen Netzwerk her, um zu telefonieren.\n\n2G ist auf diesem Gerät deaktiviert. Dies kann deine Verbindung beeinträchtigen. Gehe zu den Einstellungen und aktiviere „2G zulassen“, um fortzufahren."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Gib eine gültige Nummer ein."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Fehler beim Anruf."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Der Anruf kann momentan nicht hinzugefügt werden. Versuche stattdessen, eine Nachricht zu senden."</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 0f49f2f..324fc41 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Πραγματοποιήστε έξοδο από τη λειτουργία επιστροφής κλήσης έκτακτης ανάγκης για να πραγματοποιήσετε μια κλήση μη έκτακτης ανάγκης."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Δεν έχετε εγγραφεί στο δίκτυο."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Το δίκτυο κινητής τηλεφωνίας δεν είναι διαθέσιμο."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Το δίκτυο κινητής τηλεφωνίας δεν είναι διαθέσιμο.\n\nΣυνδεθείτε σε ένα ασύρματο δίκτυο για να πραγματοποιήσετε μια κλήση.\n\nΤο 2G είναι απενεργοποιημένο σε αυτή τη συσκευή και αυτό ενδέχεται να επηρεάζει τη σύνδεσή σας. Μεταβείτε στις Ρυθμίσεις και ενεργοποιήστε το στοιχείο Να επιτρέπεται το 2G για να συνεχίσετε."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Το δίκτυο κινητής τηλεφωνίας δεν είναι διαθέσιμο. Συνδεθείτε σε ένα ασύρματο δίκτυο για να πραγματοποιήσετε μια κλήση."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Το δίκτυο κινητής τηλεφωνίας δεν είναι διαθέσιμο.\n\nΣυνδεθείτε σε ένα ασύρματο δίκτυο για να πραγματοποιήσετε μια κλήση.\n\nΤο δίκτυο 2G είναι απενεργοποιημένο σε αυτή τη συσκευή και αυτό ενδέχεται να επηρεάζει τη σύνδεσή σας. Μεταβείτε στις Ρυθμίσεις και ενεργοποιήστε το στοιχείο Να επιτρέπεται το 2G για να συνεχίσετε."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Για να πραγματοποιήσετε κλήση, εισαγάγετε έναν έγκυρο αριθμό."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Η κλήση απέτυχε."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Δεν είναι δυνατή η προσθήκη της κλήσης αυτήν τη στιγμή. Δοκιμάστε να επικοινωνήσετε με αποστολή μηνύματος."</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 02bf46d..2a602c2 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Exit emergency callback mode to make a non-emergency call."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Not registered on network."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobile network not available."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobile network not available.\n\nConnect to a wireless network to make a call.\n\n2G is disabled on this device, which may be impacting your connectivity. Go to Settings and enable Allow 2G to continue."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobile network isn\'t available. Connect to a wireless network to make a call."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobile network is not available.\n\nConnect to a wireless network to make a call.\n\n2 G is disabled on this device, which may be impacting your connectivity. Go to Settings and enable Allow 2 G to continue."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"To place a call, enter a valid number."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Call failed."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Call cannot be added at this time. You can try to get in touch by sending a message."</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 7daee5a..5fb42ff 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Exit emergency callback mode to make a non-emergency call."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Not registered on network."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobile network not available."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobile network not available.\n\nConnect to a wireless network to make a call.\n\n2G is disabled on this device, which may be impacting your connectivity. Go to Settings and enable Allow 2G to continue."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobile network is not available. Connect to a wireless network to make a call."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobile network is not available.\n\nConnect to a wireless network to make a call.\n\n2G is disabled on this device, which may be impacting your connectivity. Go to Settings and enable Allow 2G to continue."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"To place a call, enter a valid number."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Call failed."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Call cannot be added at this time. You can try to reach out by sending a message."</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 02bf46d..2a602c2 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Exit emergency callback mode to make a non-emergency call."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Not registered on network."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobile network not available."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobile network not available.\n\nConnect to a wireless network to make a call.\n\n2G is disabled on this device, which may be impacting your connectivity. Go to Settings and enable Allow 2G to continue."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobile network isn\'t available. Connect to a wireless network to make a call."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobile network is not available.\n\nConnect to a wireless network to make a call.\n\n2 G is disabled on this device, which may be impacting your connectivity. Go to Settings and enable Allow 2 G to continue."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"To place a call, enter a valid number."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Call failed."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Call cannot be added at this time. You can try to get in touch by sending a message."</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 02bf46d..2a602c2 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Exit emergency callback mode to make a non-emergency call."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Not registered on network."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobile network not available."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobile network not available.\n\nConnect to a wireless network to make a call.\n\n2G is disabled on this device, which may be impacting your connectivity. Go to Settings and enable Allow 2G to continue."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobile network isn\'t available. Connect to a wireless network to make a call."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobile network is not available.\n\nConnect to a wireless network to make a call.\n\n2 G is disabled on this device, which may be impacting your connectivity. Go to Settings and enable Allow 2 G to continue."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"To place a call, enter a valid number."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Call failed."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Call cannot be added at this time. You can try to get in touch by sending a message."</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index e27767b..9af3f97 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‎‏‏‎‎‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‎‏‎‏‎‏‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‎‎Exit emergency callback mode to make a non-emergency call.‎‏‎‎‏‎"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‎‎‏‏‎‏‏‏‎‏‏‎‏‎Not registered on network.‎‏‎‎‏‎"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‏‎‏‎‏‏‏‏‏‏‎‎‎‎‎‏‎‏‎‏‏‏‏‏‎‎‎‏‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‎‏‎‏‏‏‎Mobile network not available.‎‏‎‎‏‎"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‏‎‎‎‏‏‎‏‎‎‏‏‎‎‏‎‎‎‎‎‎‎‎‏‎‎‏‎‏‎‎‏‎‏‎‏‎‎‎‎‏‎‏‎‏‎‏‎‎‎‏‎‎‏‎‎‎Mobile network not available.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Connect to a wireless network to make a call.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎2G is disabled on this device, which may be impacting your connectivity. Go to Settings and enable Allow 2G to continue.‎‏‎‎‏‎"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‏‎‏‎‏‏‎‏‎‎‎‎‎‎‎‎‏‎‏‏‏‏‎‏‎‎‏‏‎‏‏‏‏‏‎‎‏‎‏‎Mobile network is not available. Connect to a wireless network to make a call.‎‏‎‎‏‎"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‎‎‏‏‎‏‎‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‎Mobile network is not available.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Connect to a wireless network to make a call.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎2G is disabled on this device, which may be impacting your connectivity. Go to Settings and enable Allow 2G to continue.‎‏‎‎‏‎"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‎‏‎‎‎‎‎‎‏‏‏‏‎‎‎‏‎‎‎‎‎‎‏‎‏‎‏‎‏‎‏‏‏‏‎‏‎‎‎‎‎‏‎‏‏‎‏‏‎‎To place a call, enter a valid number.‎‏‎‎‏‎"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‎‏‎‏‏‏‎‏‏‎‎‎‎‎‎‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‏‎‎‎‏‏‎‏‎‏‏‎‏‎‎‎‏‎‎‏‏‎‏‎‏‎‏‏‎Call failed.‎‏‎‎‏‎"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎‎‏‏‎‎‎‎‎‏‏‎‎‏‎‏‎‏‎‎‎‏‏‏‏‏‎‎‎‏‏‎‏‏‏‏‎‎‎‏‎‏‎‏‎‎‏‏‎Call cannot be added at this time. You can try to reach out by sending a message.‎‏‎‎‏‎"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 78a1eba..77865c2 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Para realizar una llamada que no sea de emergencia, sal del modo de devolución de llamada de emergencia."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"No registrado en la red."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"La red móvil no está disponible."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"La red móvil no está disponible.\n\nConéctate a una red inalámbrica para realizar una llamada.\n\nLa conexión 2G está inhabilitada en este dispositivo, lo que podría afectar la conectividad. Ve a Configuración y habilita Permitir 2G para continuar."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"La red móvil no está disponible. Conéctate a una red inalámbrica para realizar una llamada."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"La red móvil no está disponible.\n\nConéctate a una red inalámbrica para realizar una llamada.\n\nLa conexión 2G está inhabilitada en este dispositivo, lo que podría afectar la conectividad. Ve a Configuración y habilita Permitir 2G para continuar."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Para realizar una llamada, ingresa un número válido."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Error en la llamada"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"No se puede agregar la llamada en este momento. Para comunicarte, puedes enviar un mensaje."</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index bbc8096..1fbc5f2 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Sal del modo de devolución de llamada de emergencia para hacer otro tipo de llamada."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"No se ha podido conectar a la red"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"La red móvil no está disponible."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"La red móvil no está disponible.\n\nConéctate a una red inalámbrica para hacer una llamada.\n\nEl 2G está inhabilitado en este dispositivo, lo que puede afectar a tu conectividad. Ve a Ajustes y habilita Permitir 2G para continuar."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"La red móvil no está disponible. Conéctate a una para llamar."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"La red móvil no está disponible.\n\nConéctate a una red inalámbrica para hacer una llamada.\n\nEl 2G está inhabilitado en este dispositivo, lo que puede afectar a tu conectividad. Ve a Ajustes y habilita Permitir 2G para continuar."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Para realizar una llamada, introduce un número válido."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"No se ha podido llamar."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"No se puede realizar la llamada en estos momentos. Intenta ponerte en contacto mediante un mensaje."</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 421a5ec..6b3c1c1 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Muude kui hädaabikõne tegemiseks väljuge hädaabikõnede režiimist."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Ei ole võrku registreeritud."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobiilsidevõrk pole saadaval."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobiilsidevõrk pole saadaval.\n\nHelistamiseks looge ühendus juhtmeta võrguga.\n\n2G on selles seadmes keelatud, mis võib teie ühenduvust mõjutada. Jätkamiseks avage Seaded ja lubage lüliti Luba 2G."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobiilsidevõrk pole saadaval. Helistamiseks looge ühendus traadita võrguga."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobiilsidevõrk pole saadaval.\n\nHelistamiseks looge ühendus juhtmeta võrguga.\n\n2G on selles seadmes keelatud, mis võib teie ühenduvust mõjutada. Jätkamiseks avage Seaded ja lubage lüliti Luba 2G."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Helistamiseks sisestage kehtiv number."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Kõne ebaõnnestus."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Kõnet ei saa praegu lisada. Proovige helistamise asemel sõnum saata."</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 4b8d6a0..c8dbdda 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Larrialdikoak ez diren deiak egiteko, irten larrialdi-zerbitzuen deiak jasotzeko modutik."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Ez dago sarean erregistratuta."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Sare mugikorra ez dago erabilgarri."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Sare mugikorra ez dago erabilgarri.\n\nDeia egiteko, konektatu hari gabeko sare batera.\n\n2G desgaituta dago gailuan, eta baliteke horrek konexioan eragina izatea. Aurrera egiteko, joan ezarpenetara eta eman 2G erabiltzeko baimena."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Sare mugikorra ez dago erabilgarri. Deia egiteko, konektatu haririk gabeko sare batera."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Sare mugikorra ez dago erabilgarri.\n\nDeia egiteko, konektatu hari gabeko sare batera.\n\n2G desgaituta dago gailuan, eta baliteke horrek konexioan eragina izatea. Aurrera egiteko, joan ezarpenetara eta eman 2G erabiltzeko baimena."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Deitzeko, idatzi balio duen zenbaki bat."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Ezin izan da deitu."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Une honetan, ezin da egin deia. Deitu ordez, mezu bat bidaltzen saia zaitezke."</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index b7b8977..268b082 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"برای برقراری تماس غیراضطراری از حالت پاسخ تماس اضطراری خارج شوید."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"در شبکه ثبت نشده است."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"شبکهٔ تلفن همراه موجود نیست."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"شبکه تلفن همراه دردسترس نیست.\n\nبرای تماس گرفتن به شبکه بی‌سیم متصل شوید.\n\nشبکه نسل دوم در این دستگاه غیرفعال است که ممکن است بر قابلیت اتصالتان تأثیر بگذارد. برای ادامه دادن به «تنظیمات» بروید و گزینه «اجازه دادن به شبکه نسل دوم» را فعال کنید."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"شبکه تلفن همراه دردسترس نیست. برای برقراری تماس به شبکه بی‌سیم متصل شوید."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"شبکه تلفن همراه دردسترس نیست.\n\nبرای تماس گرفتن به شبکه بی‌سیم متصل شوید.\n\nشبکه نسل دوم در این دستگاه غیرفعال است که ممکن است بر قابلیت اتصالتان تأثیر بگذارد. برای ادامه دادن به «تنظیمات» بروید و گزینه «اجازه دادن به شبکه نسل دوم» را فعال کنید."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"برای برقراری تماس، یک شماره معتبر وارد کنید."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"تماس ناموفق بود."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"درحال حاضر برقراری تماس امکان‌پذیر نیست. می‌توانید با ارسال پیام ارتباط برقرار کنید."</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index ba6c66e..9d375dd 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Poistu hätäpuhelujen takaisinsoittotilasta soittaaksesi muun kuin hätäpuhelun."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Ei rekisteröity verkkoon."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobiiliverkko ei käytettävissä."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobiiliverkko ei ole käytettävissä.\n\nYhdistä langattomaan verkkoon, jos haluat soittaa puhelun.\n\n2G ei ole käytössä tällä laitteella, mikä saattaa vaikuttaa yhteyksiin. Jatka siirtymällä asetuksiin ja ottamalla \"Salli 2G\" käyttöön."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobiiliverkko ei ole käytettävissä. Yhdistä langattomaan verkkoon, jos haluat soittaa puhelun."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobiiliverkko ei ole käytettävissä.\n\nYhdistä langattomaan verkkoon, jos haluat soittaa puhelun.\n\n2G ei ole käytössä tällä laitteella, mikä saattaa vaikuttaa yhteyksiin. Jatka siirtymällä asetuksiin ja ottamalla \"Salli 2G\" käyttöön."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Soita antamalla kelvollinen numero."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Puhelu epäonnistui."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Puhelua ei voi lisätä juuri nyt. Voit sen sijaan yrittää lähettää viestin."</string>
diff --git a/res/values-fr-feminine/strings.xml b/res/values-fr-feminine/strings.xml
new file mode 100644
index 0000000..af39013
--- /dev/null
+++ b/res/values-fr-feminine/strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="manual_mode_disallowed_summary" msgid="3970048592179890197">"Indisponible lorsque vous êtes connectée à %1$s"</string>
+</resources>
diff --git a/res/values-fr-masculine/strings.xml b/res/values-fr-masculine/strings.xml
new file mode 100644
index 0000000..457cf38
--- /dev/null
+++ b/res/values-fr-masculine/strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="manual_mode_disallowed_summary" msgid="3970048592179890197">"Indisponible lorsque vous êtes connecté à %1$s"</string>
+</resources>
diff --git a/res/values-fr-neuter/strings.xml b/res/values-fr-neuter/strings.xml
new file mode 100644
index 0000000..221e1eb
--- /dev/null
+++ b/res/values-fr-neuter/strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="manual_mode_disallowed_summary" msgid="3970048592179890197">"Indisponible lorsque vous êtes connecté·e à %1$s"</string>
+</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index ea0c8e4..1bcb73d 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Quittez le mode de rappel d\'urgence pour effectuer un appel non urgent."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Non enregistré sur le réseau"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Réseau pour mobile non disponible"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Réseau mobile non disponible.\n\nConnectez-vous à un réseau sans fil pour passer un appel.\n\nLe réseau 2G est désactivé sur cet appareil, ce qui peut affecter votre connectivité. Accédez aux paramètres et activez Autoriser les réseaux 2G pour continuer."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Le réseau mobile n\'est pas accessible. Connectez-vous à un réseau sans fil pour effectuer un appel."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Le réseau mobile n\'est pas disponible.\n\nConnectez-vous à un réseau sans fil pour passer un appel.\n\nLe réseau 2G est désactivé sur cet appareil, ce qui peut affecter votre connectivité. Accédez aux paramètres et activez Autoriser les réseaux 2G pour continuer."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Pour faire un appel, entrez un numéro valide."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Échec de l\'appel."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Impossible d\'ajouter l\'appel pour le moment. Vous pouvez essayer de joindre la personne en lui envoyant un message."</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 677fd3e..1475f81 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Veuillez quitter le mode de rappel d\'urgence pour passer un appel standard."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Non enregistré sur le réseau."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Réseau mobile non disponible"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Réseau mobile non disponible.\n\nConnectez-vous à un réseau sans fil pour passer un appel.\n\nLa 2G est désactivée sur cet appareil, ce qui peut affecter votre connectivité. Accédez aux paramètres et activez \"Autoriser la 2G\" pour continuer."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Le réseau mobile n\'est pas disponible. Connectez-vous à un réseau sans fil pour passer un appel."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Réseau mobile non disponible.\n\nConnectez-vous à un réseau sans fil pour passer un appel.\n\nLa 2G est désactivée sur cet appareil, ce qui peut affecter votre connectivité. Accédez aux paramètres et activez \"Autoriser la 2G\" pour continuer."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Pour émettre un appel, veuillez saisir un numéro valide."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Échec de l\'appel."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Impossible d\'ajouter un appel pour le moment. Essayez plutôt d\'envoyer un message."</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index ad75da9..a6a69dc 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Sae do modo de devolución de chamada de emerxencia para facer unha chamada que non sexa de emerxencia."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Sen rexistro na rede"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"A rede móbil non está dispoñible."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"A rede de telefonía móbil non está dispoñible.\n\nConéctate a unha rede sen fíos para facer chamadas.\n\nA rede 2G está desactivada neste dispositivo, o que pode impedir que te conectes. Para continuar, vai a Configuración e activa a opción Permitir uso de 2G."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"A rede móbil non está dispoñible. Conéctate a unha rede sen fíos para facer unha chamada."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"A rede de telefonía móbil non está dispoñible.\n\nConéctate a unha rede sen fíos para facer chamadas.\n\nA rede 2G está desactivada neste dispositivo, o que pode impedir que te conectes. Para continuar, vai a Configuración e activa a opción Permitir uso de 2G."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Para realizar unha chamada, introduce un número válido."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Produciuse un erro na chamada."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Non se pode realizar a chamada neste momento. Podes tentar poñerte en contacto mediante unha mensaxe."</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 9ce8a75..8f7e9ac 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"બિન-કટોકટીનો કૉલ કરવા માટે કટોકટી કૉલબૅક મોડમાંથી બહાર નીકળો."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"નેટવર્ક પર નોંધણી કરાયેલ નથી."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"મોબાઇલ નેટવર્ક ઉપલબ્ધ નથી."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"મોબાઇલ નેટવર્ક ઉપલબ્ધ નથી.\n\nકોઈ કૉલ કરવા માટે, વાયરલેસ નેટવર્કથી કનેક્ટ કરો.\n\nઆ ડિવાઇસ પર 2G સેવા બંધ છે, જે તમારી કનેક્ટિવિટીને અસર કરી શકે છે. સેટિંગમાં જાઓ અને આ સેવાને ચાલુ રાખવા માટે \'2Gને મંજૂરી આપો\' ચાલુ કરો."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"મોબાઇલ નેટવર્ક ઉપલબ્ધ નથી. કૉલ કરવા માટે વાયરલેસ નેટવર્ક સાથે કનેક્ટ કરો."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"મોબાઇલ નેટવર્ક ઉપલબ્ધ નથી.\n\nકોઈ કૉલ કરવા માટે, વાયરલેસ નેટવર્કથી કનેક્ટ કરો.\n\nઆ ડિવાઇસ પર 2G સેવા બંધ છે, જે તમારી કનેક્ટિવિટીને અસર કરી શકે છે. સેટિંગમાં જાઓ અને આ સેવાને ચાલુ રાખવા માટે \'2Gને મંજૂરી આપો\' ચાલુ કરો."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"કૉલ કરવા માટે, માન્ય નંબર દાખલ કરો."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"કૉલ નિષ્ફળ થયો."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"આ સમયે કૉલ ઉમેરી શકાતો નથી. તમે એક સંદેશ મોકલીને સંપર્ક કરવાનો પ્રયાસ કરી શકો છો."</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index e6b1adb..9c91915 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"गैर-आपातकालीन कॉल करने के लिए आपातकालीन कॉलबैक मोड से बाहर निकलें."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"नेटवर्क पर पंजीकृत नहीं."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"मोबाइल नेटवर्क उपलब्ध नहीं."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"मोबाइल नेटवर्क उपलब्ध नहीं है.\n\nकॉल करने के लिए किसी वायरलेस नेटवर्क से कनेक्ट करें.\n\nइस डिवाइस पर 2G नेटवर्क इस्तेमाल करने की सुविधा बंद है. ऐसा हो सकता है कि इसका असर कनेक्टिविटी पर पड़ा हो. जारी रखने के लिए, Settings में जाकर ‘2G के इस्तेमाल की मंज़ूरी दें’ को चालू करें."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"मोबाइल नेटवर्क उपलब्‍ध नहीं है. कॉल करने के लिए किसी वायरलेस नेटवर्क से कनेक्‍ट करें."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"मोबाइल नेटवर्क उपलब्ध नहीं है.\n\nकॉल करने के लिए किसी वायरलेस नेटवर्क से कनेक्ट करें.\n\nइस डिवाइस पर 2G नेटवर्क इस्तेमाल करने की सुविधा बंद है, जिससे कनेक्टिविटी पर असर पड़ सकता है. जारी रखने के लिए, Settings में जाएं और ‘2G के इस्तेमाल की मंज़ूरी दें’ को चालू करें."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"कॉल करने के लिए, मान्‍य नंबर डालें."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"कॉल विफल."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"अभी कॉल जोड़ा नहीं जा सकता. आप संदेश भेजकर संपर्क करने की कोशिश कर सकते हैं."</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 4102ec3..cc35a21 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Isključite način hitnih poziva da biste uputili poziv koji nije hitan."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Nije registrirano na mreži."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilna mreža nije dostupna."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobilna mreža nije dostupna.\n\nPovežite se s bežičnom mrežom da biste uputili poziv.\n\n2G je onemogućen na ovom uređaju, što možda utječe na povezivost. Za nastavak otvorite postavke i omogućite opciju Dopusti 2G."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobilna mreža nije dostupna. Povežite se s bežičnom mrežom da biste uputili poziv."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobilna mreža nije dostupna.\n\nPovežite se s bežičnom mrežom da biste uputili poziv.\n\n2G je onemogućen na ovom uređaju, što možda utječe na povezivost. Za nastavak otvorite postavke i omogućite opciju Dopusti 2G."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Unesite važeći broj da biste uspostavili poziv."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Poziv nije uspio."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Poziv se trenutačno ne može dodati. Pokušajte poslati poruku."</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 8cbd7f9..3b3dd9d 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Lépjen ki a Segélykérő visszahívása módból nem vészjellegű hívás kezdeményezéséhez."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Nincs regisztrálva a hálózaton."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"A mobilhálózat nem érhető el."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Nem áll rendelkezésre mobilhálózat.\n\nHívás indításához csatlakozzon vezeték nélküli hálózathoz.\n\nA 2G le van tiltva ezen az eszközön, ami hatással lehet a kapcsolódásra. A folytatáshoz nyissa meg a beállításokat, és kapcsolja be a 2G engedélyezése lehetőséget."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"A mobilhálózat nem érhető el. Hívás indításához csatlakozzon egy vezeték nélküli hálózathoz."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Nem áll rendelkezésre mobilhálózat.\n\nHívás indításához csatlakozzon vezeték nélküli hálózathoz.\n\nA 2G le van tiltva ezen az eszközön, ami hatással lehet a kapcsolódásra. A folytatáshoz nyissa meg a beállításokat, és kapcsolja be a 2G engedélyezése lehetőséget."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Hívásindításhoz adjon meg egy érvényes számot."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Sikertelen hívás."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Jelenleg nem indítható hívás. Üzenet küldésével érheti el a másik felet."</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 25778e0..3ae4ae9 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Սովորական զանգ կատարելու համար դուրս եկեք շտապ կանչի ռեժիմից։"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Ցանցում գրանցված չէ:"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Բջջային ցանցն անհասանելի է:"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Բջջային ցանցն անհասանելի է։\n\nԶանգելու համար միացեք անլար ցանցին։\n\n2G-ն անջատված է այս սարքում, ինչը կարող է ազդել կապի վրա։ Շարունակելու համար անցեք Կարգավորումներ և միացրեք «Թույլատրել 2G-ն»։"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Բջջային ցանցն անհասանելի է: Զանգելու համար միացեք Wi-Fi ցանցին:"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Բջջային ցանցն անհասանելի է։\n\nԶանգելու համար միացեք անլար ցանցին։\n\n2G-ն անջատված է այս սարքում, ինչը կարող է ազդել կապի վրա։ Շարունակելու համար անցեք Կարգավորումներ և միացրեք «Թույլատրել 2G-ն»։"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Զանգ կատարելու համար մուտքագրեք ճիշտ համար:"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Զանգը ձախողվեց:"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Զանգն այս պահին հնարավոր չէ ավելացնել: Փորձեք հաղորդագրություն ուղարկել:"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 91bbbe5..adf7f52 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Keluar dari mode telepon balik darurat untuk melakukan panggilan non-darurat."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Tidak terdaftar pada jaringan."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Jaringan seluler tidak tersedia."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Jaringan seluler tidak tersedia.\n\nHubungkan ke jaringan nirkabel untuk melakukan panggilan.\n\n2G dinonaktifkan di perangkat ini, yang mungkin memengaruhi konektivitas Anda. Buka Setelan dan aktifkan Izinkan 2G untuk melanjutkan."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Jaringan seluler tidak tersedia. Sambungkan ke jaringan nirkabel untuk melakukan panggilan."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Jaringan seluler tidak tersedia.\n\nSambungkan ke jaringan nirkabel untuk melakukan panggilan.\n\n2G dinonaktifkan di perangkat ini, yang mungkin memengaruhi konektivitas Anda. Buka Setelan dan aktifkan Izinkan 2G untuk melanjutkan."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Untuk melakukan panggilan telepon, masukkan nomor yang valid."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Telepon gagal."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Panggilan tidak bisa ditambahkan saat ini. Anda bisa mencoba menghubungi dengan mengirim pesan."</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index f7b6837..6702a8a 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Hætta í stillingu fyrir svarhringingu neyðarsímtala til að hringja símtal sem ekki er neyðarsímtal."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Ekki skráð á símkerfi."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Farsímakerfi ekki tiltækt."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Farsímakerfið er ekki tiltækt.\n\nTengstu þráðlausu neti til að hringja.\n\nSlökkt er á 2G í þessu tæki, sem kann að hafa áhrif á tenginguna. Opnaðu stillingar og virkjaðu Leyfa 2G til að halda áfram."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Farsímakerfi er ekki tiltækt. Tengstu þráðlausu neti til að hringja."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Farsímakerfið er ekki tiltækt.\n\nTengstu þráðlausu neti til að hringja.\n\nSlökkt er á 2G í þessu tæki, sem kann að hafa áhrif á tenginguna. Opnaðu stillingar og virkjaðu Leyfa 2G til að halda áfram."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Sláðu inn gilt númer til að hringja símtal."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Tókst ekki að hringja."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Ekki er hægt að bæta símtali við að svo stöddu. Þú getur reynt að hafa samband með því að senda skilaboð."</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 571124c..1574fcc 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Per effettuare chiamate non di emergenza, esci dalla modalità di richiamata di emergenza."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Non registrato sulla rete."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Rete cellulare non disponibile."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Rete mobile non disponibile.\n\nConnettiti a una rete wireless per effettuare una chiamata.\n\nIl 2G è disattivato su questo dispositivo, e questo potrebbe influire sulla tua connettività. Vai alle Impostazioni e attiva Consenti 2G per continuare."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"La rete cellulare non è disponibile. Connettiti a una rete wireless per effettuare una chiamata."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"La rete mobile non è disponibile.\n\nConnettiti a una rete wireless per effettuare una chiamata.\n\nIl 2G è disattivato su questo dispositivo, e questo potrebbe influire sulla tua connettività. Vai alle Impostazioni e attiva Consenti 2G per continuare."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Per effettuare una chiamata, inserisci un numero valido."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Chiamata non riuscita."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Impossibile aggiungere la chiamata al momento. Prova a inviare un messaggio."</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 2e10ddf..4a51379 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"עליך לצאת ממצב חירום של התקשרות חזרה כדי לבצע שיחות שאינן שיחות חירום."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"לא רשום ברשת."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"הרשת הסלולרית אינה זמינה."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"‏הרשת הסלולרית לא זמינה.\n\nצריך להתחבר לרשת אלחוטית כדי להתקשר.\n\nהחיבור ל-2G מושבת במכשיר, ויכול להיות שזה משפיע על הקישוריות. כדי להמשיך, צריך לפתוח את ההגדרות ולאפשר שימוש ב-2G."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"הרשת הסלולרית לא זמינה. עליך להתחבר לרשת אלחוטית כדי להתקשר."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"‏הרשת הסלולרית לא זמינה.\n\nצריך להתחבר לרשת אלחוטית כדי להתקשר.\n\nהחיבור ל-2G מושבת במכשיר, ויכול להיות שזה משפיע על הקישוריות. כדי להמשיך, צריך לפתוח את ההגדרות ולאפשר שימוש ב-2G."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"כדי להתקשר, יש להזין מספר טלפון חוקי."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"השיחה נכשלה."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"לא ניתן להוסיף את השיחה כרגע. אפשר לנסות לשלוח הודעה."</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index daa71d4..8b610b0 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"緊急通報以外の通話を発信するには、緊急通報待機モードを終了してください。"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"ご加入の通信サービスがありません"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"モバイルネットワークが利用できません。"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"モバイル ネットワークを利用できません。\n\n電話をかけるにはワイヤレス ネットワークに接続してください。\n\nこのデバイスでは 2G が無効になっており、接続性に影響している可能性があります。続行するには、[設定] に移動し、[2G の許可] を有効にしてください。"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"モバイル ネットワークを利用できません。電話をかけるにはワイヤレス ネットワークに接続してください。"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"モバイル ネットワークを利用できません。\n\n電話をかけるにはワイヤレス ネットワークに接続してください。\n\nこのデバイスでは 2G が無効になっており、接続性に影響している可能性があります。続行するには、[設定] に移動し、[2G の許可] を有効にしてください。"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"発信するには、有効な番号を入力してください。"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"発信できませんでした。"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"現在、通話を追加できません。連絡するには、メッセージを送信してみてください。"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index fc8ff72..0463353 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"გამოდით გადაუდებელი გადმორეკვის რეჟიმიდან არაგადაუდებელი ზარის განსახორციელებლად."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"ქსელში რეგისტრირებული არ არის."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"მობილური ქსელი მიუწვდომელია."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"მობილური ქსელი მიუწვდომელია.\n\nდაუკავშირდით უსადენო ქსელს ზარის განსახორციელებლად.\n\n2G გამორთულია ამ მოწყობილობაზე, რამაც შეიძლება გავლენა მოახდინოს თქვენს კავშირზე. გასაგრძელებლად გადადით პარამეტრებზე და ჩართეთ „2G-ის დაშვება“."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"მობილური ქსელი მიუწვდომელია. ზარის განსახორციელებლად დაუკავშირდით უსადენო ქსელს."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"მობილური ქსელი მიუწვდომელია.\n\nდაუკავშირდით უსადენო ქსელს ზარის განსახორციელებლად.\n\n2G გამორთულია ამ მოწყობილობაზე, რამაც შეიძლება გავლენა მოახდინოს თქვენს კავშირზე. გასაგრძელებლად გადადით პარამეტრებზე და ჩართეთ „2G-ის დაშვება“."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"ზარის განხორციელებისათვის, შეიყვანეთ მოქმედი ნომერი."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"ზარი ვერ განხორციელდა."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"ამჟამად ზარის დამატება შეუძლებელია. შეგიძლიათ სცადოთ დაკავშირება შეტყობინების გაგზავნით."</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index bb11357..d947868 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Төтенше емес қоңырау шалу үшін төтенше қоңырауды кері шалу режимінен шығыңыз."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Желіде тіркелмеген."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Ұялы желі қол жетімсіз."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Мобильдік желі қолжетімді емес.\n\nҚоңырау шалу үшін сымсыз желіге қосылыңыз.\n\nОсы құрылғыдағы 2G функциясы өшірілген. Бұл байланыс жұмысына әсер етуі мүмкін. Жалғастыру үшін параметрлерге өтіп, \"2G қолдануға рұқсат беру\" опциясын қосыңыз."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Мобильдік желі қолжетімді емес. Қоңырау шалу үшін сымсыз желіге қосылыңыз."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Мобильдік желі қолжетімді емес.\n\nҚоңырау шалу үшін сымсыз желіге қосылыңыз.\n\nОсы құрылғыдағы 2G функциясы өшірілген. Бұл қосылу мүмкіндігіне әсер етуі мүмкін. Жалғастыру үшін \"Параметрлерге\" өтіп, \"2G қолдануға рұқсат беру\" опциясын қосыңыз."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Қоңырау шалу үшін жарамды нөмірді енгізіңіз."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Қоңырау шалынбады."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Қоңырауды қазір қосу мүмкін емес. Хабар жіберіп хабарласуға болады."</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 0606272..368043d 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"ចាកចេញពីរបៀបហៅទៅវិញពេលមានអាសន្នដើម្បីធ្វើការហៅធម្មតា។"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"មិន​បាន​ចុះ​ឈ្មោះ​នៅ​លើ​បណ្ដាញ។"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"បណ្ដាញ​​ឧបករណ៍​​ចល័ត​មិន​អាច​ប្រើ​បាន​។"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"មិន​អាចប្រើ​បណ្ដាញ​ទូរសព្ទ​ចល័ត​បានទេ។\n\nសូម​ភ្ជាប់ទៅ​បណ្តាញឥតខ្សែ ដើម្បី​ហៅ​ទូរសព្ទ។\n\n2G ត្រូវបានបិទ​នៅលើ​ឧបករណ៍នេះ ដែលអាច​ប៉ះពាល់ដល់​ការតភ្ជាប់​របស់អ្នក។ សូមចូល​ទៅកាន់​ការកំណត់ ហើយ​បើក \"អនុញ្ញាត 2G\" ដើម្បីបន្ត។"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"មិនមានបណ្តាញទូរសព្ទទេ។ ភ្ជាប់ទៅបណ្តាញឥតខ្សែ ដើម្បី​អាច​ហៅ​ទូរសព្ទ​បាន។"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"មិន​អាចប្រើ​បណ្ដាញ​ទូរសព្ទ​ចល័ត​បានទេ។\n\nសូម​ភ្ជាប់ទៅ​បណ្តាញឥតខ្សែ ដើម្បី​ហៅ​ទូរសព្ទ។\n\n2G ត្រូវបានបិទ​នៅលើ​ឧបករណ៍នេះ ដែលអាច​ប៉ះពាល់ដល់​ការតភ្ជាប់​របស់អ្នក។ សូមចូល​ទៅកាន់​ការកំណត់ ហើយ​បើក \"អនុញ្ញាត 2G\" ដើម្បីបន្ត។"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"ដើម្បីធ្វើការហៅ បញ្ចូលលេខដែលមានសុពលភាព។"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"បាន​បរាជ័យ​ការ​ហៅ។"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"មិន​អាច​បញ្ចូល​ការហៅបាន​ទេ​នៅពេល​នេះ។ អ្នក​អាច​ព្យាយាម​ទាក់ទង​​តាមរយៈ​ការផ្ញើសារ។"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 18f1633..bb89410 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"ತುರ್ತು ರಹಿತ ಕರೆಯನ್ನು ಮಾಡಲು ತುರ್ತು ಮರು ಕರೆಮಾಡುವಿಕೆ ಮೋಡ್ ಅನ್ನು ನಿರ್ಗಮಿಸಿ."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಇನ್ನೂ ನೋಂದಣಿಯಾಗಿಲ್ಲ."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"ಮೊಬೈಲ್‌ ನೆಟ್‌ವರ್ಕ್‌ ಲಭ್ಯವಿಲ್ಲ."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್ ಲಭ್ಯವಿಲ್ಲ.\n\nಕರೆ ಮಾಡಲು ವೈರ್‌ಲೆಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿ.\n\nಈ ಸಾಧನದಲ್ಲಿ 2G ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ, ಇದು ನಿಮ್ಮ ಕನೆಕ್ಟಿವಿಟಿ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರಬಹುದು. ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ ಮತ್ತು ಮುಂದುವರಿಸಲು 2G ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್ ಲಭ್ಯವಿಲ್ಲ. ಕರೆ ಮಾಡಲು ವೈರ್‌ಲೆಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿ."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್ ಲಭ್ಯವಿಲ್ಲ.\n\nಕರೆ ಮಾಡಲು ವೈರ್‌ಲೆಸ್ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿ.\n\nಈ ಸಾಧನದಲ್ಲಿ 2G ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ, ಇದು ನಿಮ್ಮ ಕನೆಕ್ಟಿವಿಟಿ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರಬಹುದು. ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ ಮತ್ತು ಮುಂದುವರಿಸಲು 2G ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"ಕರೆಯನ್ನು ಮಾಡಲು, ಮಾನ್ಯವಾದ ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"ಕರೆ ವಿಫಲವಾಗಿದೆ."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"ಈ ಸಮಯದಲ್ಲಿ ಕರೆಯನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಸಂದೇಶವನ್ನು ಕಳುಹಿಸುವ ಮೂಲಕ ನೀವು ಸಂಪರ್ಕಿಸಲು ಪ್ರಯತ್ನಿಸಬಹುದು."</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 8735dfc..73f4226 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"일반 전화를 걸려면 긴급 콜백 모드를 해제하세요."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"네트워크에서 등록되지 않았습니다."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"모바일 네트워크를 사용할 수 없습니다."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"모바일 네트워크를 사용할 수 없습니다.\n\n전화를 걸려면 무선 네트워크에 연결하세요.\n\n기기에서 2G가 사용 중지되어 있어 연결 상태에 영향을 줄 수 있습니다. 계속하려면 \'설정\'으로 이동하여 \'2G 허용\'을 사용 설정하세요."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"모바일 네트워크를 사용할 수 없습니다. 전화를 걸려면 무선 네트워크에 연결하세요."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"모바일 네트워크를 사용할 수 없습니다.\n\n전화를 걸려면 무선 네트워크에 연결하세요.\n\n이 기기에서 2G가 사용 중지되어 있으므로 연결에 영향을 미칠 수 있습니다. 계속하려면 \'설정\'으로 이동하여 \'2G 허용\'을 사용 설정하세요."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"전화를 걸려면 올바른 번호를 입력하세요."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"전화 연결 실패"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"현재는 통화를 추가할 수 없습니다. 메시지를 보내 연락해 보세요."</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 254a91f..daad4bb 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Кадимки шартта чалуу үчүн шашылыш кайра чалуу режиминен чыгыңыз."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Тармакта катталган эмес."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Мобилдик тармак жок."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Мобилдик тармак жеткиликсиз.\n\nЧалуу үчүн зымсыз тармакка туташыңыз.\n\nБул түзмөктө 2G өчүрүлгөндүктөн, байланышка таасирин тийгизиши мүмкүн. Улантуу үчүн параметрлерге өтүп, \"2G тармагына уруксат берүү\" параметрин иштетиңиз."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Мобилдик тармак жеткиликтүү эмес. Чалуу үчүн зымсыз тармакка туташыңыз."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Мобилдик тармак жеткиликсиз.\n\nЧалуу үчүн зымсыз тармакка туташыңыз.\n\nБул түзмөктө 2G өчүрүлгөндүктөн, байланышка таасирин тийгизиши мүмкүн. Улантуу үчүн параметрлерге өтүп, \"2G тармагына уруксат берүү\" параметрин иштетиңиз."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Чалуу үчүн, жарактуу номер киргизиңиз."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Чалынбай калды."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Чалуу бул жолу кошулбай койду. Билдирүү жөнөтүп, байланышсаңыз болот."</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 076f31c..eb5ca0a 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"ອອກ​ຈາກໂໝດ​ໂທ​ກັບ​ສຸກ​ເສີນ ເພື່ອ​ເຮັດ​ການ​ໂທ​ປົກກະຕິ."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"ບໍ່ໄດ້ລົງທະບຽນໃນເຄືອຂ່າຍ."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"ເຄືອຂ່າຍມືຖືບໍ່ສາມາດໃຊ້ໄດ້."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"ເຄືອຂ່າຍມືຖືບໍ່ມີໃຫ້ໃຊ້.\n\nເຊື່ອມຕໍ່ຫາເຄືອຂ່າຍໄຮ້ສາຍເພື່ອໂທອອກ.\n\n2G ປິດໄວ້ຢູ່ອຸປະກອນນີ້, ເຊິ່ງອາດສົ່ງຜົນຕໍ່ການເຊື່ອມຕໍ່ຂອງທ່ານ. ໄປຫາການຕັ້ງຄ່າ ແລະ ເປີດການນຳໃຊ້ອະນຸຍາດ 2G ເພື່ອສືບຕໍ່."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"ບໍ່ສາມາດໃຊ້ອິນເຕີເນັດມືຖືໄດ້. ກະລຸນາເຊື່ອມຕໍ່ຫາ Wi-Fi ເພື່ອໂທ."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"ເຄືອຂ່າຍມືຖືບໍ່ມີໃຫ້ໃຊ້.\n\nເຊື່ອມຕໍ່ຫາເຄືອຂ່າຍໄຮ້ສາຍເພື່ອໂທອອກ.\n\n2G ປິດໄວ້ຢູ່ອຸປະກອນນີ້, ເຊິ່ງອາດສົ່ງຜົນຕໍ່ການເຊື່ອມຕໍ່ຂອງທ່ານ. ໄປຫາການຕັ້ງຄ່າ ແລະ ເປີດການນຳໃຊ້ອະນຸຍາດ 2G ເພື່ອສືບຕໍ່."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"ເພື່ອ​ທີ່​ຈະ​ໂທ, ປ້ອນ​ເບີ​ໂທ​ທີ່​ໃຊ້​ໄດ້​ເຂົ້າ​ໄປ."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"ໂທບໍ່ສຳເລັດ."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"ບໍ່ສາມາດໂທໄດ້ໃນຕອນນີ້. ທ່ານສາມາດລອງຕິດຕໍ່ຫາໄດ້ໂດຍການສົ່ງຂໍ້ຄວາມ."</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 18cab25..ba3667d 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Jei norite skambinti ne pagalbos numeriu, išjunkite atgalinio skambinimo pagalbos numeriu režimą."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Neregistruota tinkle."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilusis tinklas negalimas."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobiliojo ryšio tinklas nepasiekiamas.\n\nPrisijunkite prie belaidžio ryšio tinklo, kad galėtumėte skambinti.\n\n2G išjungtas šiame įrenginyje, o tai gali paveikti jūsų ryšį. Eikite į skiltį „Nustatymai“ ir įgalinkite funkciją „Leisti 2G“, kad galėtumėte tęsti."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobiliojo ryšio tinklas nepasiekiamas. Prisijunkite prie belaidžio ryšio tinklo, kad galėtumėte skambinti."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobiliojo ryšio tinklas nepasiekiamas.\n\nPrisijunkite prie belaidžio ryšio tinklo, kad galėtumėte skambinti.\n\n2G išjungtas šiame įrenginyje, o tai gali paveikti jūsų ryšį. Eikite į skiltį „Nustatymai“ ir įgalinkite funkciją „Leisti 2G“, kad galėtumėte tęsti."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Kad galėtumėte paskambinti, įveskite tinkamą numerį."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Paskambinti nepavyko."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Šiuo metu skambučio pridėti negalima. Galite pabandyti susisiekti išsiųsdami pranešimą."</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 87eb18c..74873ca 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Lai veiktu parastu zvanu, izejiet no ārkārtas atzvana režīma."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Tīklā nav reģistrēts."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilais tīkls nav pieejams."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobilais tīkls nav pieejams.\n\nLai veiktu zvanu, izveidojiet savienojumu ar bezvadu tīklu.\n\nŠajā ierīcē ir atspējots 2G, un tas var ietekmēt jūsu savienojamību. Lai turpinātu, pārejiet uz iestatījumiem un iespējojiet opciju “Atļaut 2G”."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobilais tīkls nav pieejams. Lai veiktu zvanu, izveidojiet savienojumu ar bezvadu tīklu."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobilais tīkls nav pieejams.\n\nLai veiktu zvanu, izveidojiet savienojumu ar bezvadu tīklu.\n\nŠajā ierīcē ir atspējots 2G, un tas var ietekmēt jūsu savienojamību. Lai turpinātu, pārejiet uz iestatījumiem un iespējojiet opciju “Atļaut 2G”."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Lai veiktu zvanu, ievadiet derīgu numuru."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Zvans neizdevās."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Pašlaik nevar pievienot zvanu. Varat mēģināt sūtīt īsziņu."</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 11b64b1..ca6d7d5 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Излезете од режимот на итен повратен повик за да направите обичен повик."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Не е регистриран на мрежа."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Не е достапна мобилна мрежа."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Мобилната мрежа не е достапна.\n\nПоврзете се на безжична мрежа за да остварите повик.\n\n2G е оневозможено на уредов, а тоа може да влијае врз поврзливоста. Одете во „Поставки“ и овозможете ја опцијата „Дозволи 2G“ за да продолжите."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Не е достапна мобилна мрежа. Поврзете се на безжична мрежа за да повикате."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Мобилната мрежа не е достапна.\n\nПоврзете се на безжична мрежа за да остварите повик.\n\n2G е оневозможено на уредов, а тоа може да влијае врз поврзливоста. Одете во „Поставки“ и овозможете ја опцијата „Дозволи 2G“ за да продолжите."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"За да повикате, внесете важечки број."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Повикот не успеа."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Повикот не може да се додаде во моментов. Може да се обидете да стапите во контакт со испраќање порака."</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index db49622..2e654bd 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"അടിയന്തിരമല്ലാത്ത കോൾ ചെയ്യാൻ അടിയന്തിര കോൾബാക്ക് മോഡിൽ നിന്ന് പുറത്തുകടക്കുക."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"നെറ്റ്‌വർക്കിൽ രജിസ്റ്റർ ചെയ്‌തിട്ടില്ല."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"മൊബൈൽ നെറ്റ്‌വർക്ക് ലഭ്യമല്ല."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"മൊബൈൽ നെറ്റ്‌വർക്ക് ലഭ്യമല്ല.\n\nകോൾ ചെയ്യാൻ ഒരു വയർലെസ് നെറ്റ്‌വർക്കിലേക്ക് കണക്റ്റ് ചെയ്യുക.\n\nഈ ഉപകരണത്തിൽ 2G പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു, അത് നിങ്ങളുടെ കണക്റ്റിവിറ്റിയെ ബാധിച്ചേക്കാം. തുടരാൻ, ക്രമീകരണത്തിലേക്ക് പോയി 2G അനുവദിക്കുക പ്രവർത്തനക്ഷമമാക്കുക."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"മൊബൈൽ നെറ്റ്‌വർക്ക് ലഭ്യമല്ല. കോൾ വിളിക്കാൻ വയർലെസ്സ് നെറ്റ്‌വർക്കിലേക്ക് കണക്റ്റുചെയ്യുക."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"മൊബൈൽ നെറ്റ്‌വർക്ക് ലഭ്യമല്ല.\n\nകോൾ ചെയ്യാൻ ഒരു വയർലെസ് നെറ്റ്‌വർക്കിലേക്ക് കണക്റ്റ് ചെയ്യുക.\n\nഈ ഉപകരണത്തിൽ 2G പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു, അത് നിങ്ങളുടെ കണക്റ്റിവിറ്റിയെ ബാധിച്ചേക്കാം. തുടരാൻ, ക്രമീകരണത്തിലേക്ക് പോയി 2G അനുവദിക്കുക പ്രവർത്തനക്ഷമമാക്കുക."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"ഒരു കോൾ ചെയ്യുന്നതിന്, സാധുതയുള്ള നമ്പർ നൽകുക."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"കോൾ ചെയ്യാനായില്ല."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"ഇപ്പോൾ കോൾ ചേർക്കാനാവില്ല. നിങ്ങൾക്കൊരു സന്ദേശമയച്ചുകൊണ്ട് ബന്ധപ്പെടാൻ ശ്രമിക്കാം."</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index f00f6dc..c15fa11 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Яаралтай түргэн тусламжийн бус дуудлага хийхийн тулд яаралтай түргэн тусламжийн callback горимоос гарна уу."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Сүлжээнд бүртгэгдээгүй."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Мобайль сүлжээ байхгүй."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Мобайл сүлжээ боломжгүй байна.\n\nДуудлага хийхийн тулд утасгүй сүлжээнд холбогдоно уу.\n\n2G-г энэ төхөөрөмж дээр идэвхгүй болгосон бөгөөд энэ нь таны холболтод нөлөөлж байж магадгүй. Үргэлжлүүлэхийн тулд Тохиргоо руу очоод, 2G-г зөвшөөрөхийг идэвхжүүлнэ үү."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Мобайл сүлжээнд холбогдох боломжгүй байна. Дуудлага хийхийн тулд утасгүй интернетэд холбогдоно уу."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Мобайл сүлжээ боломжгүй байна.\n\nДуудлага хийхийн тулд утасгүй сүлжээнд холбогдоно уу.\n\n2G-г энэ төхөөрөмж дээр идэвхгүй болгосон бөгөөд энэ нь таны холболтод нөлөөлж байж магадгүй. Үргэлжлүүлэхийн тулд Тохиргоо руу очоод, 2G-г зөвшөөрөхийг идэвхжүүлнэ үү."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Дуудлага хийхийн тулд хүчин төгөлдөр дугаар оруулна уу."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Дуудлага амжилтгүй болсон."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Дуудлагыг энэ удаад нэмэх боломжгүй. Та мессеж илгээн холбоо тогтоохыг оролдох боломжтой."</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 6918c88..9ee54b0 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"आणीबाणी नसलेला कॉल करण्‍यासाठी आणीबाणी कॉलबॅक मोडमधून बाहेर पडा."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"नेटवर्कवर नोंदणीकृत नाही."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"मोबाइल नेटवर्क उपलब्ध नाही."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"मोबाइल नेटवर्क उपलब्‍ध नाही. \n\nकॉल करण्‍यासाठी वायरलेस नेटवर्कशी कनेक्‍ट करा.\n\nया डिव्हाइसवर 2G बंद केले आहे, ज्यामुळे तुमच्या कनेक्टिव्हिटीवर परिणाम होत असेल. सेटिंग्ज वर जा आणि पुढे सुरू ठेवण्यासाठी 2G सुरू करा."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"मोबाइल नेटवर्क उपलब्‍ध नाही. कॉल करण्‍यासाठी वायरलेस नेटवर्कशी कनेक्‍ट करा."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"मोबाइल नेटवर्क उपलब्‍ध नाही. \n\nकॉल करण्‍यासाठी वायरलेस नेटवर्कशी कनेक्‍ट करा.\n\nया डिव्हाइसवर 2G बंद केले आहे, ज्यामुळे तुमच्या कनेक्टिव्हिटीवर परिणाम होत असेल. सेटिंग्ज वर जा आणि पुढे सुरू ठेवण्यासाठी 2G सुरू करा."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"कॉल करण्यासाठी, एक वैध नंबर एंटर करा."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"कॉल अयशस्वी झाला."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"या वेळी कॉल जोडू शकत नाही. तुम्ही मेसेज पाठवून संपर्क करण्याचा प्रयत्न करू शकता."</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 993ab81..f5d54f9 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Keluar daripada mod panggil balik kecemasan untuk membuat panggilan bukan kecemasan."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Tidak didaftarkan pada rangkaian."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Rangkaian mudah alih tidak tersedia."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Rangkaian mudah alih tidak tersedia.\n\nBuat sambungan kepada rangkaian wayarles untuk membuat panggilan.\n\n2G dilumpuhkan pada peranti ini, yang mungkin menjejaskan kesambungan anda. Akses Tetapan dan dayakan Benarkan 2G untuk meneruskan kesambungan."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Rangkaian selular tidak tersedia. Sambung ke rangkaian wayarles untuk membuat panggilan."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Rangkaian mudah alih tidak tersedia.\n\nSambungkan kepada rangkaian wayarles untuk membuat panggilan.\n\n2G dilumpuhkan pada peranti ini, yang mungkin menjejaskan kesambungan anda. Akses Tetapan dan dayakan Benarkan 2G untuk meneruskan kesambungan."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Untuk membuat panggilan, masukkan nombor yang sah."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Panggilan gagal."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Panggilan tidak dapat ditambahkan pada masa ini. Anda boleh cuba menghantar mesej untuk berhubung."</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 39011c3..c327b54 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"အရေးပေါ် မဟုတ်သည့် ခေါ်ဆိုမှုကို ပြုလုပ်ရန် အရေးပေါ် ဖုန်းခေါ်မှုမှ ထွက်ပါ။"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"ကွန်ယက်ပေါ်မှာ မှတ်ပုံတင်မှု မပြုလုပ်ထားပါ"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"မိုဘိုင်းကွန်ယက်များ မရှိပါ"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"မိုဘိုင်းကွန်ရက် မရနိုင်ပါ။\n\nဖုန်းခေါ်ရန် ကြိုးမဲ့ကွန်ရက်သို့ ချိတ်ဆက်ပါ။\n\nဤစက်တွင် 2G ကိုပိတ်ထားပြီး ၎င်းက သင့်ချိတ်ဆက်နိုင်မှုအပေါ် သက်ရောက်နိုင်သည်။ ဆက်တင်များသို့သွားပြီး ရှေ့ဆက်ရန် 2G ကိုခွင့်ပြုပါ။"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"မိုဘိုင်းကွန်ရက် မရနိုင်ပါ။ ခေါ်ဆိုမှုပြုလုပ်ရန် ကြိုးမဲ့ကွန်ရက်သို့ ချိတ်ဆက်လိုက်ပါ။"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"မိုဘိုင်းကွန်ရက် မရနိုင်ပါ။\n\nဖုန်းခေါ်ရန် ကြိုးမဲ့ကွန်ရက်သို့ ချိတ်ဆက်ပါ။\n\nဤစက်တွင် 2G ကိုပိတ်ထားပြီး ၎င်းက သင့်ချိတ်ဆက်နိုင်မှုအပေါ် သက်ရောက်နိုင်သည်။ ဆက်တင်များသို့သွားပြီး ရှေ့ဆက်ရန် 2G ကိုခွင့်ပြုပါ။"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"ဖုန်းခေါ်ရန်အတွက်၊ သင့်လျော်သည့်နံပါတ် ရိုက်ထည့်ပါ။"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"ခေါ်ဆို၍ မရပါ။"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"ယခုအချိန်တွင် ခေါ်ဆိုမှု ထပ်မထည့်နိုင်ပါ။ မက်ဆေ့ဂျ်ပို့ဆောင်ခြင်းဖြင့်လည်း ဆက်သွယ်ရန်ကြိုးစားနိုင်ပါသည်။"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 4ed61b8..6ca3099 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Avslutt modusen for nødanrop for å gjøre et vanlig anrop."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Ikke registrert på nettverket."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilnettverket er ikke tilgjengelig."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobilnettverk er ikke tilgjengelig.\n\nKoble til et trådløst nettverk for å ringe.\n\n2G er deaktivert på denne enheten – dette kan påvirke tilkoblingen. Gå til Innstillinger og aktiver «Tillat 2G» for å fortsette."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobilnettverk er ikke tilgjengelig. Koble til et trådløst nettverk for å ringe."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobilnettverk er ikke tilgjengelig.\n\nKoble til et trådløst nettverk for å ringe.\n\n2G er deaktivert på denne enheten – dette kan påvirke tilkoblingen. Gå til Innstillinger og aktiver «Tillat 2G» for å fortsette."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Skriv inn et gyldig nummer for å plassere en samtale."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Anropet mislyktes."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Kan ikke legge til anropet akkurat nå. Du kan prøve å ta kontakt ved å sende en melding."</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 1afc0ff..d225c64 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"गैर-आपत्‌कालीन कल गर्न आपत्‌कालीन कलब्याक मोडबाट निस्कनुहोस्।"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"नेटवर्कमा दर्ता भएको छैन।"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"मोबाइल नेटवर्क उपलब्ध छैन।"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"मोबाइल नेटवर्क उपलब्ध छैन।\n\nकल गर्न वायरलेस नेटवर्कमा कनेक्ट गर्नुहोस्।\n\nयो डिभाइसमा 2G नेटवर्क अफ गरिएको छ, यसै कारणले तपाईंको कनेक्टिभिटी प्रभावित भएको हुन सक्छ। सेटिङमा जानुहोस् र जारी राख्नका निम्ति 2G प्रयोग गर्ने अनुमति दिनुहोस्।"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"मोबाइल नेटवर्क उपलब्ध छैन। कल गर्न तारविनाको नेटवर्कमा कनेक्ट गर्नुहोस्।"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"मोबाइल नेटवर्क उपलब्ध छैन।\n\nकल गर्न वायरलेस नेटवर्कमा कनेक्ट गर्नुहोस्।\n\nयो डिभाइसमा 2G अफ गरिएको छ, यसै कारणले तपाईंको कनेक्टिभिटी प्रभावित भएको हुन सक्छ। सेटिङमा जानुहोस् र जारी राख्नका निम्ति 2G प्रयोग गर्ने अनुमति दिनुहोस्।"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"एक कल गर्नको लागि, एक वैध नम्बर प्रविष्टि गर्नुहोस्।"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"कल विफल भयो।"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"यतिबेला कल गर्न सकिएन। तपाईंले कुनै सन्देश पठाएर सम्पर्क गर्ने प्रयास गर्न सक्नुहुन्छ।"</string>
diff --git a/res/values-night/styles.xml b/res/values-night/styles.xml
index f7d831b..9774396 100644
--- a/res/values-night/styles.xml
+++ b/res/values-night/styles.xml
@@ -25,6 +25,11 @@
         <item name="android:navigationBarDividerColor">@color/dialer_divider_color</item>
         <item name="android:colorAccent">@color/dialer_theme_color</item>
         <item name="android:dialogTheme">@style/DialerAlertDialogTheme</item>
+
+        <!--
+            TODO(b/309578419): Make activities handle insets properly and then remove this.
+        -->
+        <item name="android:windowOptOutEdgeToEdgeEnforcement">true</item>
     </style>
 
     <style name="EmergencyInfoNameTextAppearance"
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 499756c..3384e1d 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Sluit de modus voor noodoproepen af om een niet-noodoproep te plaatsen."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Niet geregistreerd op netwerk."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobiel netwerk niet beschikbaar."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobiel netwerk niet beschikbaar.\n\nMaak verbinding met een draadloos netwerk om te bellen.\n\n2G is uitgezet op dit apparaat. Dit kan gevolgen hebben voor je connectiviteit. Ga naar Instellingen en zet 2G toestaan aan om door te gaan."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobiel netwerk is niet beschikbaar. Maak verbinding met een draadloos netwerk om te bellen."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobiel netwerk is niet beschikbaar.\n\nMaak verbinding met een draadloos netwerk om te bellen.\n\n2G staat uit op dit apparaat. Dit kan gevolgen hebben voor je connectiviteit. Ga naar Instellingen en zet 2G toestaan aan om door te gaan."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Als je wilt bellen, moet je een geldig nummer invoeren."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Gesprek mislukt."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Gesprek kan op dit moment niet worden toegevoegd. Je kunt contact opnemen door een bericht te sturen."</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 68e48c1..178d06c 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"ଗୋଟିଏ ସାଧାରଣ କଲ୍ କରିବା ପାଇଁ ଜରୁରିକାଳୀନ କଲବ୍ୟାକ୍ ମୋଡ୍‌ରୁ ବାହାରି ଆସନ୍ତୁ।"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"ନେଟ୍‌ୱର୍କରେ ପଞ୍ଜୀକୃତ କରାଯାଇନାହିଁ।"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"ମୋବାଇଲ୍ ନେଟ୍‌ୱର୍କ ଉପଲବ୍ଧ ନାହିଁ।"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"ମୋବାଇଲ ନେଟୱାର୍କ ଉପଲବ୍ଧ ନାହିଁ।\n\nଏକ କଲ କରିବାକୁ ଗୋଟିଏ ୱେୟାରଲେସ ନେଟୱାର୍କ ସହ କନେକ୍ଟ କରନ୍ତୁ।\n\nଏହି ଡିଭାଇସରେ 2Gକୁ ଅକ୍ଷମ କରାଯାଇଛି, ଯାହା ଆପଣଙ୍କ କନେକ୍ଟିଭିଟିକୁ ପ୍ରଭାବିତ କରୁଥାଇପାରେ। ଜାରି ରଖିବା ପାଇଁ ସେଟିଂସକୁ ଯାଇ \'2Gକୁ ଅନୁମତି ଦିଅନ୍ତୁ\'କୁ ସକ୍ଷମ କରନ୍ତୁ।"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"ମୋବାଇଲ୍ ନେଟ୍‌ୱର୍କ ଉପଲବ୍ଧ ନାହିଁ। କଲ୍ କରିବା ପାଇଁ ଗୋଟିଏ ତାରବିହୀନ ନେଟ୍‌ୱର୍କରେ କନେକ୍ଟ କରନ୍ତୁ"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"ମୋବାଇଲ ନେଟୱାର୍କ ଉପଲବ୍ଧ ନାହିଁ।\n\nଏକ କଲ କରିବାକୁ ଗୋଟିଏ ୱେୟାରଲେସ ନେଟୱାର୍କ ସହ କନେକ୍ଟ କରନ୍ତୁ।\n\nଏହି ଡିଭାଇସରେ 2Gକୁ ଅକ୍ଷମ କରାଯାଇଛି, ଯାହା ଆପଣଙ୍କ କନେକ୍ଟିଭିଟିକୁ ପ୍ରଭାବିତ କରୁଥାଇପାରେ। ଜାରି ରଖିବା ପାଇଁ ସେଟିଂସକୁ ଯାଇ \'2Gକୁ ଅନୁମତି ଦିଅନ୍ତୁ\'କୁ ସକ୍ଷମ କରନ୍ତୁ।"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"ଗୋଟିଏ କଲ୍ କରିବା ପାଇଁ ଏକ ବୈଧ ନମ୍ବର୍ ପ୍ରବେଶ କରନ୍ତୁ।"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"କଲ୍ ହେଲା ନାହିଁ।"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"ଏବେ କଲ୍‌କୁ ଯୋଡ଼ାଯାଇପାରିବ ନାହିଁ। ଆପଣ ମେସେଜ୍ ପଠାଇ ସମ୍ପର୍କ କରିବା ପାଇଁ ଚେଷ୍ଟା କରିପାରନ୍ତି।"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 9754981..fb0d654 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"ਇੱਕ ਗ਼ੈਰ-ਅਪਾਤਕਾਲ ਕਾਲ ਕਰਨ ਲਈ ਅਪਾਤਕਾਲ ਕਾਲਬੈਕ ਮੋਡ ਤੋਂ ਬਾਹਰ ਆਓ।"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"ਨੈਟਵਰਕ ਤੇ ਰਜਿਸਟਰ ਨਹੀਂ ਕੀਤਾ।"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"ਮੋਬਾਈਲ ਨੈਟਵਰਕ ਉਪਲਬਧ ਨਹੀਂ।"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।\n\nਕਾਲ ਕਰਨ ਲਈ ਵਾਇਰਲੈੱਸ ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੋ।\n\nਇਸ ਡੀਵਾਈਸ \'ਤੇ 2G ਬੰਦ ਹੈ, ਜੋ ਤੁਹਾਡੀ ਕਨੈਕਟੀਵਿਟੀ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰ ਸਕਦਾ ਹੈ। ਜਾਰੀ ਰੱਖਣ ਲਈ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਜਾ ਕੇ \'2G ਨੂੰ ਆਗਿਆ ਦਿਓ\' ਨੂੰ ਚਾਲੂ ਕਰੋ।"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਉਪਲਬਧ ਨਹੀਂ ਹੈ। ਕਾਲ ਕਰਨ ਲਈ ਕਿਸੇ ਵਾਇਰਲੈੱਸ ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੋ।"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।\n\nਕਾਲ ਕਰਨ ਲਈ ਵਾਇਰਲੈੱਸ ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰੋ।\n\nਇਸ ਡੀਵਾਈਸ \'ਤੇ 2G ਬੰਦ ਹੈ, ਜੋ ਤੁਹਾਡੀ ਕਨੈਕਟੀਵਿਟੀ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰ ਸਕਦਾ ਹੈ। ਜਾਰੀ ਰੱਖਣ ਲਈ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਜਾ ਕੇ \'2G ਨੂੰ ਆਗਿਆ ਦਿਓ\' ਨੂੰ ਚਾਲੂ ਕਰੋ।"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"ਇੱਕ ਕਾਲ ਕਰਨ ਲਈ, ਇੱਕ ਪ੍ਰਮਾਣਿਕ ਨੰਬਰ ਦਰਜ ਕਰੋ।"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"ਕਾਲ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ।"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"ਇਸ ਸਮੇਂ ਕਾਲ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਤੁਸੀਂ ਇੱਕ ਸੁਨੇਹਾ ਭੇਜ ਕੇ ਸੰਪਰਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਸਕਦੇ ਹੋ।"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index fb2d45d..2067e08 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Aby zadzwonić normalnie, wyjdź z trybu alarmowego połączenia zwrotnego."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Nie zarejestrowano w sieci"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Sieć komórkowa jest niedostępna."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Sieć komórkowa jest niedostępna.\n\nAby zadzwonić, połącz się z siecią bezprzewodową.\n\nSieć 2G na tym urządzeniu jest wyłączona, co może mieć wpływ na łączność. Aby kontynuować, przejdź do Ustawień i włącz opcję „Zezwól na 2G”."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Sieć komórkowa jest niedostępna. Połącz się z siecią bezprzewodową, by zadzwonić."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Sieć komórkowa jest niedostępna.\n\nAby zadzwonić, połącz się z siecią bezprzewodową.\n\nSieć 2G na tym urządzeniu jest wyłączona, co może mieć wpływ na łączność. Aby kontynuować, przejdź do Ustawień i włącz opcję „Zezwól na 2G”."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Aby zadzwonić, wybierz prawidłowy numer."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Nie udało się połączyć."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"W tej chwili nie możesz zadzwonić. Zamiast tego możesz wysłać wiadomość."</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 464f46a..10aa84d 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Sair do modo de chamada de retorno de emergência para efetuar uma chamada que não é de emergência."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Sem registo na rede."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Rede móvel não disponível."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"A rede móvel não está disponível.\n\nLigue-se a uma rede sem fios para fazer uma chamada.\n\nO 2G está desativado neste dispositivo, o que pode estar a afetar a sua conetividade. Aceda às Definições e ative a opção Permitir 2G para continuar."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"A rede móvel não está disponível. Ligue-se a uma rede sem fios para efetuar uma chamada."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"A rede móvel não está disponível.\n\nLigue-se a uma rede sem fios para fazer uma chamada.\n\nO 2G está desativado neste dispositivo, o que pode estar a afetar a sua conetividade. Aceda às Definições e ative a opção Permitir 2G para continuar."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Para telefonar, introduza um número válido."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"A chamada falhou."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Não é possível adicionar a chamada neste momento. Pode tentar entrar em contacto ao enviar uma mensagem."</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index bf13d80..26d3c06 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Saia do modo de retorno de chamada de emergência para fazer uma chamada que não seja de emergência."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Não registrado na rede."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Rede móvel não disponível."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Rede móvel indisponível.\n\nConecte-se a uma rede sem fio para fazer uma ligação.\n\nO 2G está desativado neste dispositivo e isso pode afetar sua conectividade. Acesse \"Configurações\" e ative a opção \"Permitir 2G\" para continuar."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"A rede móvel não está disponível. Conecte-se a uma rede sem fio para fazer uma chamada."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"A rede móvel está indisponível.\n\nConecte-se a uma rede sem fio para fazer uma ligação.\n\nO 2G está desativado neste dispositivo e pode estar afetando sua conectividade. Acesse \"Configurações\" e ative a opção \"Permitir 2G\" para continuar."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Para realizar uma chamada, digite um número válido."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Falha na chamada."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Não é possível ligar no momento. Entre em contato enviando uma mensagem."</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index d24ee16..39c3d0b 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Ieși din modul de apelare inversă de urgență pentru a efectua un apel care nu este de urgență."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Neînregistrat în rețea."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Rețeaua mobilă nu este disponibilă."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Rețeaua mobilă nu este disponibilă.\n\nConectează-te la o rețea wireless pentru a iniția un apel.\n\n2G este dezactivat pe acest dispozitiv, ceea ce poate afecta conectivitatea. Accesează Setări și activează setarea Permite 2G pentru a continua."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Rețeaua mobilă nu este disponibilă. Pentru a apela, conectează-te la o rețea wireless."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Rețeaua mobilă nu este disponibilă.\n\nConectează-te la o rețea wireless pentru a iniția un apel.\n\n2G este dezactivat pe acest dispozitiv, ceea ce poate afecta conectivitatea. Accesează Setări și activează setarea Permite 2G pentru a continua."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Pentru a apela, introdu un număr valid."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Apelul nu a fost inițiat."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Apelul nu poate fi inițiat în acest moment. Poți lua legătura cu persoana respectivă trimițându-i un mesaj."</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 61d2bcf..cd163bc 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Чтобы сделать обычный звонок, выйдите из режима экстренных обратных вызовов."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Нет регистрации в сети."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Мобильная сеть недоступна."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Мобильная сеть недоступна.\n\nЧтобы позвонить, подключитесь к беспроводной сети.\n\nНа этом устройстве отключена передача данных по сетям 2G, что может влиять на функции связи. Чтобы продолжить, перейдите в настройки и включите параметр \"Разрешить 2G\"."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Мобильная сеть недоступна. Чтобы позвонить, подключитесь к Wi-Fi."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Мобильная сеть недоступна.\n\nЧтобы позвонить, подключитесь к беспроводной сети.\n\nНа этом устройстве отключена передача данных по сетям 2G, что может влиять на функции связи. Чтобы продолжить, перейдите в настройки и включите параметр \"Разрешить 2G\"."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Недействительный номер."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Не удалось отправить вызов."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Не удается позвонить. Попробуйте отправить сообщение."</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index fb2f613..06ac7f4 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"හදිසි-නොවන ඇමතුමක් සිදු කිරීමට හදිසි අවස්ථා පසු ඇමතුම් ප්‍රකාරයෙන් ඉවත් වන්න."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"ජාලය මත ලියාපදිංචි වී නැත."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"ජංගම ජාලය නොමැත."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"ජංගම ජාලය නොලැබේ.\n\nඇමතුමක් කිරීමට රැහැන් රහිත ජාලයකට සම්බන්‍ධ කරන්න.\n\nමෙම උපාංගය මත 2G අබල කර ඇත, එය ඔබේ සම්බන්‍ධතාවට බලපාමින් තිබේවි. ඉදිරියට යාමට සැකසීම් වෙත ගොස් 2G හට ඉඩ දෙන්න සබල කරන්න."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"ජංගම ජාලය ලබා ගැනීමට නොහැකිය. ඇමතුමක් කිරීමට රැහැන් රහිත ජාලයකට සම්බන්ධ කරන්න."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"ජංගම ජාලය නොලැබේ.\n\nඇමතුමක් කිරීමට රැහැන් රහිත ජාලයකට සම්බන්‍ධ කරන්න.\n\nමෙම උපාංගය මත 2G අබල කර ඇත, එය ඔබේ සම්බන්‍ධතාවට බලපාමින් තිබේවි. ඉදිරියට යාමට සැකසීම් වෙත ගොස් 2G හට ඉඩ දෙන්න සබල කරන්න."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"ඇමතුමක් ලබාගැනීමට, වලංගු අංකයක් ලබාගන්න."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"ඇමතුම අසාර්ථක විය."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"ඇමතුම මෙම වේලාවේදී එක් කිරීමට නොහැකිය. ඔබට පණිවිඩයක් යැවීමෙන් ළඟා වීමට උත්සාහ කිරීමට හැකිය."</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 1bfd35f..0931b7c 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Ak chcete volať štandardným spôsobom, ukončite režim tiesňového spätného volania."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Prihlásenie do siete nebolo úspešné."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobilná sieť nie je k dispozícii."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobilná sieť nie je k dispozícii.\n\nAk chcete volať, pripojte sa k bezdrôtovej sieti.\n\nV tomto zariadení nie je zapnuté pripojenie 2G, čo môže mať vplyv na možnosti pripojenia. Ak chcete pokračovať, prejdite do nastavení a zapnite možnosť Povoliť 2G."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobilná sieť nie je k dispozícii. Ak chcete volať, pripojte sa k bezdrôtovej sieti."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobilná sieť nie je k dispozícii.\n\nAk chcete volať, pripojte sa k bezdrôtovej sieti.\n\nV tomto zariadení je prístup k 2G vypnutý, čo môže mať vplyv na pripojenie. Ak chcete pokračovať, prejdite do nastavení a zapnite možnosť Povoliť 2G."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Ak chcete volať, zadajte platné číslo"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Hovor zlyhal."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Hovor sa momentálne nedá pridať. Môžete namiesto toho skúsiť poslať správu."</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 8b68df6..85fc9d1 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Če ne gre za klic v sili, zaprite način za povratni klici v sili."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Ni registrirano v omrežju."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Omrežje prenosnega telefona ni na voljo."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobilno omrežje ni na voljo.\n\nČe želite opraviti klic, vzpostavite povezavo z brezžičnim omrežjem.\n\nOmrežje 2G je v tej napravi onemogočeno, kar lahko vpliva na povezljivost. Odprite nastavitve in vklopite možnost »Omogoči 2G«, če želite nadaljevati."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobilno omrežje ni na voljo. Če želite opraviti klic, vzpostavite povezavo z brezžičnim omrežjem."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobilno omrežje ni na voljo.\n\nČe želite opraviti klic, vzpostavite povezavo z brezžičnim omrežjem.\n\nOmrežje 2G je v tej napravi onemogočeno, kar lahko vpliva na povezljivost. Odprite nastavitve in vklopite možnost »Omogoči 2G«, če želite nadaljevati."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Če želite opraviti klic, vnesite veljavno številko."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Klic ni uspel."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Trenutno ni mogoče dodati klica. Poskusite poslati sporočilo."</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 0b46e90..b7c1e55 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Dil nga modaliteti i kthimit të telefonatës së urgjencës për të bërë një telefonatë jo urgjente."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"I paregjistruar në rrjet."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Rrjeti celular nuk mundësohet."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Rrjeti celular nuk ofrohet.\n\nLidhu me një rrjet wireless për të bërë një telefonatë.\n\n2G është çaktivizuar në këtë pajisje, e cila mund të ketë ndikim te lidhshmëria. Shko te \"Cilësimet\" dhe aktivizo \"Lejo 2G\" për të vazhduar."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Rrjeti celular nuk ofrohet. Lidhu me një rrjet wireless për të bërë një telefonatë."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Rrjeti celular nuk ofrohet.\n\nLidhu me një rrjet wireless për të bërë një telefonatë.\n\n2G është çaktivizuar në këtë pajisje, e cila mund të ketë ndikim te lidhshmëria. Shko te \"Cilësimet\" dhe aktivizo \"Lejo 2G\" për të vazhduar."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Për të kryer një telefonatë, fut një numër të vlefshëm."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Thirrja dështoi."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Telefonata nuk mund të shtohet në këtë moment. Mund të provosh të kontaktosh duke dërguar një mesazh."</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index ab43cde..9bacab0 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Изађите из режима хитног повратног позива да бисте упутили позив који није хитан."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Није регистровано на мрежи."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Мобилна мрежа није доступна."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Мобилна мрежа није доступна.\n\nПовежите се на бежичну мрежу да бисте упутили позив.\n\n2G је онемогућен на овом уређају, што може да утиче на повезивање. Идите у Подешавања и омогућите опцију Дозволи 2G да бисте наставили."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Мобилна мрежа није доступна. Повежите се на бежичну да бисте упутили позив."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Мобилна мрежа није доступна.\n\nПовежите се на бежичну мрежу да бисте упутили позив.\n\n2G је онемогућен на овом уређају, што може да утиче на повезивање. Идите у Подешавања и омогућите опцију Дозволи 2G да бисте наставили."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Да бисте упутили позив, унесите важећи број."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Позив није успео."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Додавање позива тренутно није могуће. Можете да покушате да остварите контакт помоћу поруке."</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 2fa62e7..0bae57a 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Avsluta läget för återuppringning vid nödsamtal om du vill ringa ett vanligt samtal."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Inte registrerat på nätverk."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Inget mobilt nätverk är tillgängligt."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Det finns inga tillgängliga mobilnätverk.\n\nAnslut till ett trådlöst nätverk om du vill ringa.\n\n2G har inaktiverats på den här enheten, vilket kan påverka anslutningen. Öppna inställningarna och aktivera Tillåt 2G om du vill fortsätta."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Det finns inga tillgängliga mobilnätverk. Anslut till ett trådlöst nätverk om du vill ringa."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Det finns inget mobilnätverk.\n\nAnslut till ett trådlöst nätverk om du vill ringa ett samtal.\n\n2G har inaktiverats på den här enheten, vilket kan påverka anslutningen. Öppna inställningarna och aktivera Tillåt 2G om du vill fortsätta."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Ange ett giltigt nummer om du vill ringa ett samtal."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Det gick inte att koppla samtalet."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Det går inte att lägga till samtalet just nu. Ta istället kontakt genom att skicka ett meddelande."</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 97b766a..9d811b3 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Ondoka kwenye hali ya kupiga simu za dharura ili upige simu zisizokuwa za dharura."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Haijasajiliwa kwa mitandao"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mtandao wa simu haupatikani."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mtandao wa simu haupatikani.\n\nUnganisha kwenye mtandao pasiwaya ili upige simu.\n\n2G imezimwa kwenye kifaa hiki, hali ambayo huenda inaathiri muunganisho wako. Nenda kwenye Mipangilio kisha uwashe \'Ruhusu 2G\' ili uendelee."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mtandao wa simu za mkononi haupatikani. Unganisha kwenye mtandao pasiwaya ili upige simu."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mtandao wa simu haupatikani.\n\nUnganisha kwenye mtandao pasiwaya ili upige simu.\n\n2G imezimwa kwenye kifaa hiki, hali ambayo huenda inaathiri muunganisho wako. Nenda kwenye Mipangilio kisha uwashe \'Ruhusu 2G\' ili uendelee."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Ili upige simu, weka namba sahihi."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Imeshindwa kupiga simu."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Simu haiwezi kuongezwa kwa sasa. Unaweza kujaribu kuwasiliana kwa kutuma ujumbe."</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index eae57cb..3bd1812 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"வழக்கமான அழைப்பிற்கு, அவசரகாலத் திரும்ப அழைக்கும் பயன்முறையிலிருந்து வெளியேறவும்."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"நெட்வொர்க்கில் பதிவுசெய்யப்படவில்லை."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"மொபைல் நெட்வொர்க் கிடைக்கவில்லை."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"மொபைல் நெட்வொர்க் கிடைக்கவில்லை.\n\nஅழைப்பைச் செய்ய வயர்லெஸ் நெட்வொர்க்குடன் இணைக்கவும்.\n\nஇந்தச் சாதனத்தில் 2G முடக்கப்பட்டுள்ளதால் இணைப்பு பாதிக்கப்பட்டிருக்கலாம். தொடர, அமைப்புகளுக்குச் சென்று \'2G சேவையை அனுமதி\' என்பதை இயக்கவும்."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"மொபைல் நெட்வொர்க் கிடைக்கவில்லை. அழைக்க, வயர்லெஸ் நெட்வொர்க்குடன் இணைக்கவும்."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"மொபைல் நெட்வொர்க் கிடைக்கவில்லை.\n\nஅழைப்பைச் செய்ய வயர்லெஸ் நெட்வொர்க்குடன் இணைக்கவும்.\n\nஇந்தச் சாதனத்தில் 2G முடக்கப்பட்டுள்ளதால் இணைப்பு பாதிக்கப்பட்டிருக்கலாம். தொடர, அமைப்புகளுக்குச் சென்று \'2G சேவையை அனுமதி\' என்பதை இயக்கவும்."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"அழைக்க, சரியான எண்ணை உள்ளிடவும்."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"அழைப்பு தோல்வியடைந்தது."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"தற்போது அழைக்க முடியவில்லை. செய்தியை அனுப்பி, தொடர்புகொள்ள முயலவும்."</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index db81f01..b271a86 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"సాధారణ కాల్ చేయడానికి అత్యవసర కాల్‌బ్యాక్ మోడ్ నుండి నిష్క్రమించండి."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"నెట్‌వర్క్‌లో నమోదు కాలేదు."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"మొబైల్ నెట్‌వర్క్ అందుబాటులో లేదు."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"మొబైల్ నెట్‌వర్క్ అందుబాటులో లేదు.\n\nకాల్ చేయడానికి వైర్‌లెస్ నెట్‌వర్క్‌కు కనెక్ట్ చేయండి.\n\nఈ పరికరంలో 2G డిజేబుల్ చేయబడింది, ఇది మీ కనెక్టివిటీని ప్రభావితం చేస్తూ ఉండవచ్చు. సెట్టింగ్‌లకు వెళ్లి, \'కొనసాగించడానికి 2Gని అనుమతించండి\'ని ఎనేబుల్ చేయండి."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"మొబైల్ నెట్‌వర్క్ అందుబాటులో లేదు. కాల్ చేయడానికి వైర్‌లెస్ నెట్‌వర్క్‌కు కనెక్ట్ చేయండి."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"మొబైల్ నెట్‌వర్క్ అందుబాటులో లేదు.\n\nకాల్ చేయడానికి వైర్‌లెస్ నెట్‌వర్క్‌కు కనెక్ట్ చేయండి.\n\nఈ పరికరంలో 2G డిజేబుల్ చేయబడింది, ఇది మీ కనెక్టివిటీని ప్రభావితం చేస్తూ ఉండవచ్చు. సెట్టింగ్‌లకు వెళ్లి, \'కొనసాగించడానికి 2Gని అనుమతించండి\'ని ఎనేబుల్ చేయండి."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"కాల్ చేయడానికి, చెల్లుబాటు అయ్యే నంబర్‌ను నమోదు చేయండి."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"కాల్ విఫలమైంది."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"ఈ సమయంలో కాల్ జోడించబడదు. మీరు మెసేజ్‌ను పంపడం ద్వారా సంప్రదించవచ్చు."</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 2358773..1d3f89d 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"โปรดออกจากโหมดการโทรกลับกรณีฉุกเฉินเพื่อโทรไปยังหมายเลขที่ไม่ใช่หมายเลขฉุกเฉิน"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"ยังไม่ได้ลงทะเบียนบนเครือข่าย"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"เครือข่ายมือถือใช้งานไม่ได้"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"เครือข่ายมือถือไม่พร้อมใช้งาน\n\nเชื่อมต่อเครือข่ายไร้สายเพื่อโทรออก\n\nอุปกรณ์นี้ปิดใช้งาน 2G อยู่ซึ่งอาจส่งผลต่อการเชื่อมต่อ โปรดไปที่การตั้งค่าและเปิด \"อนุญาตให้ใช้ 2G\" เพื่อดำเนินการต่อ"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"เครือข่ายมือถือไม่พร้อมใช้งาน โปรดเชื่อมต่อเครือข่ายไร้สายเพื่อโทรออก"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"เครือข่ายมือถือไม่พร้อมใช้งาน\n\nเชื่อมต่อเครือข่ายไร้สายเพื่อโทรออก\n\nอุปกรณ์นี้ปิดใช้งาน 2G อยู่ซึ่งอาจส่งผลต่อการเชื่อมต่อ โปรดไปที่การตั้งค่าและเปิด \"อนุญาตให้ใช้ 2G\" เพื่อดำเนินการต่อ"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"หากต้องการโทรออก โปรดป้อนหมายเลขที่ถูกต้อง"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"การโทรล้มเหลว"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"เพิ่มการโทรไม่ได้ในขณะนี้ คุณสามารถพยายามติดต่อได้โดยการส่งข้อความ"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index e7fc44e..61ca52c 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Lumabas sa emergency callback mode upang makapagsagawa ng hindi pang-emergency na pagtawag."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Hindi nakarehistro sa network."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Hindi available ang mobile network."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Hindi available ang mobile network.\n\nKumonekta sa wireless network para tumawag.\n\nNaka-disable ang 2G sa device na ito, na posibleng nakakaapekto sa iyong pagkakonekta. Pumunta sa Mga Setting at i-enable ang Payagan ang 2G para magpatuloy."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Hindi available ang mobile network. Kumonekta sa isang wireless network upang tumawag."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Hindi available ang mobile network.\n\nKumonekta sa wireless network para tumawag.\n\nNaka-disable ang 2G sa device na ito, na posibleng nakakaapekto sa iyong pagkakonekta. Pumunta sa Mga Setting at i-enable ang Payagan ang 2G para magpatuloy."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Upang tumawag, maglagay ng wastong numero."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Nabigo ang tawag."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Hindi maidaragdag ang tawag na ito sa ngayon. Maaari mong subukang makipag-ugnayan sa pamamagitan ng pagpapadala ng isang mensahe."</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index da502a8..c7b55a5 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Acil durum çağrısı dışında bir çağrı yapmak için acil durumda geri aranma modundan çıkın."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Ağda kayıtlı değil."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mobil ağ kullanılamıyor."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobil ağ kullanılamıyor.\n\nArama yapmak için kablosuz ağa bağlanın.\n\nBu cihazda 2G devre dışı olduğundan bağlantınız etkilenebilir. Devam etmek için Ayarlar\'a gidip \"2G\'ye izin ver\" ayarını etkinleştirin."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobil ağ kullanılamıyor. Telefon etmek için kablosuz ağa bağlanın."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobil ağ kullanılamıyor.\n\nArama yapmak için kablosuz ağa bağlanın.\n\nBu cihazda 2G devre dışı olduğundan bağlantınız etkilenebilir. Devam etmek için Ayarlar\'a gidip \"2G\'ye izin ver\" ayarını etkinleştirin."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Arama yapmak için geçerli bir numara girin."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Sesli arama başarısız oldu."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Çağrı şu anda eklenemiyor. Mesaj göndererek ulaşmayı deneyebilirsiniz."</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index c435493..1075ddf 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Щоб зателефонувати на звичайний номер, вимкніть режим екстрених викликів."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Не зареєстровано в мережі."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Мобільна мережа недоступна."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Мобільна мережа недоступна.\n\nЩоб зателефонувати, підключіться до бездротової мережі.\n\nНа цьому пристрої вимкнено 2G, що може вплинути на з’єднання. Щоб продовжити, перейдіть у налаштування й увімкніть \"Дозволити 2G\"."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Мобільна мережа недоступна. Щоб зателефонувати, під’єднайтеся до бездротової мережі."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Мобільна мережа недоступна.\n\nЩоб зателефонувати, підключіться до бездротової мережі.\n\nНа цьому пристрої вимкнено 2G, що може вплинути на з’єднання. Щоб продовжити, перейдіть у налаштування й увімкніть \"Дозволити 2G\"."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Щоб зателефонувати, введіть дійсний номер."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Не вдалося здійснити виклик."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Не вдається додати виклик. Спробуйте надіслати повідомлення."</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index eb36a08..bf5cd25 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"غیر ایمرجنسی کال کرنے کیلئے ایمرجنسی کال بیک موڈ سے اخراج کریں۔"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"نیٹ ورک پر رجسٹرڈ نہیں ہے۔"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"موبائل نیٹ ورک دستیاب نہیں ہے۔"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"‏موبائل نیٹ ورک دستیاب نہیں ہے۔\n\nکال کرنے کے لیے وائرلیس نیٹ ورک سے منسلک ہوں۔\n\n‫2G اس آلے پر غیر فعال ہے، جو آپ کی کنیکٹیوٹی کو متاثر کر سکتا ہے۔ ترتیبات پر جائیں اور \'2G کو جاری رکھنے کی اجازت دیں\' کو فعال کریں۔"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"موبائل نیٹ ورک دستیاب نہیں ہے۔ کال کرنے کیلئے کسی وائرلیس نیٹ ورک سے منسلک ہوں۔"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"‏موبائل نیٹ ورک دستیاب نہیں ہے۔\n\nکال کرنے کے لیے وائرلیس نیٹ ورک سے منسلک ہوں۔\n\n‫2G اس آلے پر غیر فعال ہے، جو آپ کی کنیکٹیوٹی کو متاثر کر سکتا ہے۔ ترتیبات پر جائیں اور \'2G کو جاری رکھنے کی اجازت دیں\' کو فعال کریں۔"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"کال کرنے کیلئے، ایک درست نمبر درج کریں۔"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"کال ناکام ہوگئی۔"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"اس وقت کال شامل نہیں کی جا سکتی۔ آپ ایک پیغام بھیج کر رابطہ کرنے کی کوشش کر سکتے ہیں۔"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 8f614e2..858bfbc 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Odatiy qo‘ng‘iroq qilish uchun favqulodda qayta qo‘ng‘iroq rejimidan chiqing."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Tarmoqda ro‘yxatdan o‘tmagan."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Uyali tarmoq mavjud emas."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Mobil tarmoq ishlamayapti.\n\nTelefon qilish uchun simsiz tarmoqqa ulaning.\n\nBu qurilmada 2G yoqilmagan va aloqaga taʼsir qilishi mumkin. Davom etish uchun Sozlamalar orqali 2G ulanishga ruxsat bering."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Mobil tarmoqdan foydalanib bo‘lmaydi. Qo‘ng‘iroq qilish uchun Wi-Fi tarmog‘iga ulaning."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Mobil tarmoq ishlamayapti.\n\nTelefon qilish uchun simsiz tarmoqqa ulaning.\n\nBu qurilmada 2G yoqilmagan va aloqaga taʼsir qilishi mumkin. Davom etish uchun Sozlamalar orqali 2G ulanishga ruxsat bering."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Qo‘ng‘iroq qilish uchun raqamni to‘g‘ri kiriting."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Chaqiruv amalga oshmadi."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Qo‘ng‘iroq qilib bo‘lmayapti. Xabar yuborib ko‘ring."</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 126e715..c2e9074 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Thoát khỏi chế độ gọi lại khẩn cấp để thực hiện cuộc gọi không khẩn cấp."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Chưa được đăng ký trên mạng."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Mạng di động không khả dụng."</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Không có mạng di động.\n\nHãy kết nối với mạng không dây để gọi điện.\n\n2G đã bị tắt trên thiết bị này. Điều này có thể ảnh hưởng đến khả năng kết nối của bạn. Chuyển đến phần Cài đặt rồi bật tuỳ chọn Cho phép 2G để tiếp tục."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Hiện không có mạng di động. Hãy kết nối với mạng không dây để thực hiện cuộc gọi."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Không có mạng di động.\n\nHãy kết nối với mạng không dây để gọi điện.\n\n2G đã bị tắt trên thiết bị này. Điều này có thể ảnh hưởng đến khả năng kết nối của bạn. Chuyển đến phần Cài đặt rồi bật cài đặt Cho phép 2G để tiếp tục."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Để thực hiện cuộc gọi, hãy nhập một số hợp lệ."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Cuộc gọi không thành công."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Không thể thêm cuộc gọi tại thời điểm này. Bạn có thể cố gắng liên hệ bằng cách gửi tin nhắn."</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index c9734ed..0e19c2f 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"要拨打非紧急电话,请先退出紧急回拨模式。"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"尚未注册网络。"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"无法连接到移动网络"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"移动网络不可用。\n\n需连接至无线网络才能拨打电话。\n\n此设备已停用 2G,这可能会影响您的连接。如需继续操作,请前往“设置”并启用“允许启用 2G”。"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"移动网络不可用。需连接至无线网络才能拨打电话。"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"移动网络不可用。\n\n需连接至无线网络才能拨打电话。\n\n此设备已停用 2G,这可能会影响您的连接。如需继续操作,请前往“设置”并启用“允许启用 2G”。"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"要拨打电话,请输入有效的电话号码。"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"无法通话。"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"暂时无法拨打电话。您可以尝试通过发送信息来联系对方。"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 05f78e7..51cac5a 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"離開緊急回撥模式即可撥打非緊急電話。"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"未在網絡上完成註冊。"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"無法使用流動網絡。"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"無法使用流動網絡。\n\n必須連接無線網絡才可打電話。\n\n此裝置已停用 2G,可能影響到裝置的連接性。請先前往「設定」開啟「允許 2G」再試。"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"無法使用流動網絡。請連接無線網絡,以撥打電話。"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"無法使用流動網絡。\n\n請連接無線網絡,以撥打電話。\n\n2G 已在此裝置停用,這可能會影響裝置的連接性。請前往「設定」並開啟「允許 2G」以繼續。"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"要撥打電話,請輸入有效的號碼。"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"無法接通。"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"目前無法新增通話。你可以改以傳送短訊聯絡對方。"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 6975707..b4727d7 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"結束緊急回撥模式,以便撥打非緊急電話。"</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"尚未註冊網路。"</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"無法使用 Google 行動服務網路。"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"無法使用行動網路。\n\n如要撥打電話,請連線至無線網路。\n\n這部裝置已停用 2G,這可能會影響連線能力。請前往「設定」並啟用「允許啟用 2G」,再繼續操作。"</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"無法使用行動網路。連上 Wi-Fi 網路即可撥打電話。"</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"無法使用行動網路。\n\n如要撥打電話,請連線至無線網路。\n\n這部裝置已停用 2G,這可能會影響連線能力。請前往「設定」並啟用「允許啟用 2G」,再繼續操作。"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"如要撥打電話,請輸入有效的號碼。"</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"無法通話。"</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"目前無法新增通話,你可以試著傳送簡訊聯絡對方。"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 0059afb..e648619 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -542,7 +542,9 @@
     <string name="incall_error_ecm_emergency_only" msgid="5622379058883722080">"Phuma kwimodi yokushayela emuva yesiko esiphuthumayo ukuze wenze ikholi yemodi engaphuthumi."</string>
     <string name="incall_error_emergency_only" msgid="8786127461027964653">"Ayibhalisiwe kwinethiwekhi."</string>
     <string name="incall_error_out_of_service" msgid="1927265196942672791">"Inethiwekhi yefoni ayitholakali"</string>
+    <string name="incall_error_out_of_service_2g" msgid="904434080740846116">"Inethiwekhi yeselula ayitholakali.\n\nXhuma kunethiwekhi e-wireless ukuze ufone.\n\nU-2G ukhutshaziwe kule divayisi, okungenzeka kunomthelela ekuxhumaneni kwakho. Iya Kumasethingi bese uvula u-Vumela u-2G ukuze uqhubeke."</string>
     <string name="incall_error_out_of_service_wfc" msgid="4497663185857190885">"Inethiwekhi yeselula ayitholakali. Xhumeka kunethiwekhi engenantambo ukuze wenze ikholi."</string>
+    <string name="incall_error_out_of_service_wfc_2g_user" msgid="8218768986365299663">"Inethiwekhi yeselula ayitholakali.\n\nXhuma kunethiwekhi e-wireless ukuze ufone.\n\nU-2G ukhutshaziwe kule divayisi, okungenzeka kunomthelela ekuxhumaneni kwakho. Iya Kumasethingi bese uvula u-Vumela u-2G ukuze uqhubeke."</string>
     <string name="incall_error_no_phone_number_supplied" msgid="8680831089508851894">"Ukuze wenze ikholi, faka inombolo evumelekile."</string>
     <string name="incall_error_call_failed" msgid="393508653582682539">"Ikholi ihlulekile."</string>
     <string name="incall_error_cannot_add_call" msgid="5425764862628655443">"Ikholi ayikwazi ukungezwa ngalesi sikhathi. Ungazama ukufinyelela ngokuthumela umlayezo."</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index bb0d3de..05bcbc1 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1206,8 +1206,13 @@
     <string name="incall_error_emergency_only">Not registered on network.</string>
     <!-- In-call screen: call failure message displayed in an error dialog -->
     <string name="incall_error_out_of_service">Mobile network not available.</string>
+    <!-- In-call screen: call failure message displayed in an error dialog if 2G is disabled -->
+    <string name="incall_error_out_of_service_2g">Mobile network not available.\n\nConnect to a wireless network to make a call.\n\n2G is disabled on this device, which may be impacting your connectivity. Go to Settings and enable "Allow 2G" to continue.</string>
     <!-- In-call screen: call failure message displayed in an error dialog -->
     <string name="incall_error_out_of_service_wfc">Mobile network is not available. Connect to a wireless network to make a call.</string>
+    <!-- In-call screen: call failure message displayed in an error dialog if the user disabled 2G -->
+    <string name="incall_error_out_of_service_wfc_2g_user">Mobile network is not available.\n\nConnect to a wireless network to make a call.\n\n2G is disabled on this device, which may be impacting your connectivity. Go to Settings and enable "Allow 2G" to continue.</string>
+
     <!-- In-call screen: call failure message displayed in an error dialog -->
     <string name="incall_error_no_phone_number_supplied">To place a call, enter a valid number.</string>
     <!-- In-call screen: call failure message displayed in an error dialog -->
@@ -2185,6 +2190,8 @@
     <string name="radio_info_nr_frequency">NR Frequency:</string>
     <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
     <string name="radio_info_network_slicing_config" translatable="false">Network Slicing Config:</string>
+    <!-- Radio Info screen. Label for a status item.  Used for diagnostic info screens, precise translation isn't needed -->
+    <string name="radio_info_euicc_info" translatable="false">eUICC info:</string>
 
     <!-- Band Mode Selection -->
     <!-- Band mode screen.  Title of activity. -->
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 19798f0..435e3a6 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -202,6 +202,11 @@
         <item name="android:colorAccent">@color/dialer_theme_color</item>
         <item name="android:dialogTheme">@style/DialerAlertDialogTheme</item>
         <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
+
+        <!--
+            TODO(b/309578419): Make activities handle insets properly and then remove this.
+        -->
+        <item name="android:windowOptOutEdgeToEdgeEnforcement">true</item>
     </style>
 
     <style name="DialerAlertDialogTheme"
diff --git a/src/com/android/phone/CallForwardEditPreference.java b/src/com/android/phone/CallForwardEditPreference.java
index d1c8303..b877112 100644
--- a/src/com/android/phone/CallForwardEditPreference.java
+++ b/src/com/android/phone/CallForwardEditPreference.java
@@ -26,6 +26,7 @@
 import com.android.internal.telephony.CommandException;
 import com.android.internal.telephony.CommandsInterface;
 import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.flags.Flags;
 
 import java.util.HashMap;
 import java.util.Locale;
@@ -34,6 +35,9 @@
     private static final String LOG_TAG = "CallForwardEditPreference";
 
     private static final String SRC_TAGS[]       = {"{0}"};
+
+    private static final int DEFAULT_NO_REPLY_TIMER_FOR_CFNRY = 20;
+
     private CharSequence mSummaryOnTemplate;
     /**
      * Remembers which button was clicked by a user. If no button is clicked yet, this should have
@@ -154,7 +158,14 @@
                         .getCarrierConfigForSubId(mPhone.getSubId());
                 if (carrierConfig.getBoolean(
                         CarrierConfigManager.KEY_SUPPORT_NO_REPLY_TIMER_FOR_CFNRY_BOOL, true)) {
-                    time = 20;
+                    if (Flags.setNoReplyTimerForCfnry()) {
+                        // Get timer value from carrier config
+                        time = carrierConfig.getInt(
+                                CarrierConfigManager.KEY_NO_REPLY_TIMER_FOR_CFNRY_SEC_INT,
+                                DEFAULT_NO_REPLY_TIMER_FOR_CFNRY);
+                    } else {
+                        time = DEFAULT_NO_REPLY_TIMER_FOR_CFNRY;
+                    }
                 }
             }
             final String number = getPhoneNumber();
diff --git a/src/com/android/phone/CarrierConfigLoader.java b/src/com/android/phone/CarrierConfigLoader.java
index 9b71919..47fd96e 100644
--- a/src/com/android/phone/CarrierConfigLoader.java
+++ b/src/com/android/phone/CarrierConfigLoader.java
@@ -47,6 +47,7 @@
 import android.os.Process;
 import android.os.RemoteException;
 import android.os.ResultReceiver;
+import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.preference.PreferenceManager;
 import android.service.carrier.CarrierIdentifier;
@@ -698,6 +699,7 @@
     @NonNull private final FeatureFlags  mFeatureFlags;
 
     @NonNull private final PackageManager mPackageManager;
+    private final int mVendorApiLevel;
 
     /**
      * Constructs a CarrierConfigLoader, registers it as a service, and registers a broadcast
@@ -736,6 +738,8 @@
         }
         mFeatureFlags = featureFlags;
         mPackageManager = context.getPackageManager();
+        mVendorApiLevel = SystemProperties.getInt(
+                "ro.vendor.api_level", Build.VERSION.DEVICE_INITIAL_SDK_INT);
         logd("CarrierConfigLoader has started");
 
         PhoneConfigurationManager.registerForMultiSimConfigChange(
@@ -1884,7 +1888,11 @@
 
         if (!mFeatureFlags.enforceTelephonyFeatureMappingForPublicApis()
                 || !CompatChanges.isChangeEnabled(ENABLE_FEATURE_MAPPING, callingPackage,
-                Binder.getCallingUserHandle())) {
+                Binder.getCallingUserHandle())
+                || mVendorApiLevel < Build.VERSION_CODES.VANILLA_ICE_CREAM) {
+            // Skip to check associated telephony feature,
+            // if compatibility change is not enabled for the current process or
+            // the SDK version of vendor partition is less than Android V.
             return;
         }
 
diff --git a/src/com/android/phone/EmergencyDialer.java b/src/com/android/phone/EmergencyDialer.java
index 5fe8708..a608b1b 100644
--- a/src/com/android/phone/EmergencyDialer.java
+++ b/src/com/android/phone/EmergencyDialer.java
@@ -263,7 +263,7 @@
         setTurnScreenOn(true);
 
         CarrierConfigManager configMgr = getSystemService(CarrierConfigManager.class);
-        PersistableBundle carrierConfig =
+        PersistableBundle carrierConfig = configMgr == null ? null :
                 configMgr.getConfigForSubId(SubscriptionManager.getDefaultVoiceSubscriptionId());
 
         mShortcutViewConfig = new ShortcutViewUtils.Config(this, carrierConfig, mEntryType);
@@ -313,12 +313,14 @@
         // Check whether we should show the onscreen "Dial" button and co.
         // Read carrier config through the public API because PhoneGlobals is not available when we
         // run as a secondary user.
-        if (carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_ONSCREEN_DIAL_BUTTON_BOOL)) {
+        if (carrierConfig != null
+                && carrierConfig.getBoolean(
+                    CarrierConfigManager.KEY_SHOW_ONSCREEN_DIAL_BUTTON_BOOL)) {
             mDialButton.setOnClickListener(this);
         } else {
             mDialButton.setVisibility(View.GONE);
         }
-        mIsWfcEmergencyCallingWarningEnabled = carrierConfig.getInt(
+        mIsWfcEmergencyCallingWarningEnabled = carrierConfig != null && carrierConfig.getInt(
                 CarrierConfigManager.KEY_EMERGENCY_NOTIFICATION_DELAY_INT) > -1;
         maybeShowWfcEmergencyCallingWarning();
 
diff --git a/src/com/android/phone/ImsProvisioningController.java b/src/com/android/phone/ImsProvisioningController.java
index b2e34ae..d2c720b 100644
--- a/src/com/android/phone/ImsProvisioningController.java
+++ b/src/com/android/phone/ImsProvisioningController.java
@@ -70,6 +70,7 @@
 import com.android.ims.RcsFeatureManager;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.PhoneConfigurationManager;
+import com.android.internal.telephony.flags.FeatureFlags;
 import com.android.internal.telephony.util.HandlerExecutor;
 import com.android.telephony.Rlog;
 
@@ -92,6 +93,7 @@
     @VisibleForTesting
     protected static final int EVENT_MULTI_SIM_CONFIGURATION_CHANGE = 3;
     private static final int EVENT_PROVISIONING_VALUE_CHANGED = 4;
+    private static final int EVENT_NOTIFY_INIT_PROVISIONED_VALUE = 5;
 
     // Provisioning Keys that are handled via AOSP cache and not sent to the ImsService
     private static final int[] LOCAL_IMS_CONFIG_KEYS = {
@@ -121,6 +123,11 @@
             CAPABILITY_TYPE_CALL_COMPOSER
     };
 
+    private static final int[] LOCAL_RCS_CAPABILITY = {
+            CAPABILITY_TYPE_OPTIONS_UCE,
+            CAPABILITY_TYPE_PRESENCE_UCE
+    };
+
     /**
      * map the MmTelCapabilities.MmTelCapability and
      * CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VOICE_INT
@@ -199,6 +206,7 @@
     private final SparseArray<ProvisioningCallbackManager> mProvisioningCallbackManagersSlotMap =
             new SparseArray<>();
     private final ImsProvisioningLoader mImsProvisioningLoader;
+    private final FeatureFlags mFeatureFlags;
 
     private int mNumSlot;
 
@@ -253,6 +261,18 @@
                             + " value : " + (int) msg.obj);
                     updateCapabilityTechFromKey(msg.arg1, msg.arg2, (int) msg.obj);
                     break;
+                case EVENT_NOTIFY_INIT_PROVISIONED_VALUE:
+                    int slotId = msg.arg1;
+                    int subId = msg.arg2;
+                    IFeatureProvisioningCallback callback =
+                            (IFeatureProvisioningCallback) msg.obj;
+                    log("slotId " + slotId + " subId " + subId
+                            + " callback " + (callback != null));
+
+                    // Notify MmTel Provisioning Status
+                    notifyMmTelProvisioningStatus(slotId, subId, callback);
+                    notifyRcsProvisioningStatus(slotId, subId, callback);
+                    break;
                 default:
                     log("unknown message " + msg);
                     break;
@@ -508,6 +528,13 @@
 
                 // notify provisioning key value to ImsService
                 setInitialProvisioningKeys(mSubId);
+
+                if (mFeatureFlags.notifyInitialImsProvisioningStatus()) {
+                    // Notify MmTel provisioning value based on capability and radio tech.
+                    if (mProvisioningCallbackManagersSlotMap.get(mSlotId).hasCallblacks()) {
+                        notifyMmTelProvisioningStatus(mSlotId, mSubId, null);
+                    }
+                }
             } else {
                 // wait until subId is valid
                 mRequiredNotify = true;
@@ -740,6 +767,13 @@
 
                 // notify provisioning key value to ImsService
                 setInitialProvisioningKeys(mSubId);
+
+                if (mFeatureFlags.notifyInitialImsProvisioningStatus()) {
+                    if (mProvisioningCallbackManagersSlotMap.get(mSlotId).hasCallblacks()) {
+                        // Notify RCS provisioning value based on capability and radio tech.
+                        notifyRcsProvisioningStatus(mSlotId, mSubId, null);
+                    }
+                }
             } else {
                 // wait until subId is valid
                 mRequiredNotify = true;
@@ -828,7 +862,7 @@
     @VisibleForTesting
     public ImsProvisioningController(PhoneGlobals app, int numSlot, Looper looper,
             MmTelFeatureConnector mmTelFeatureConnector, RcsFeatureConnector rcsFeatureConnector,
-            ImsProvisioningLoader imsProvisioningLoader) {
+            ImsProvisioningLoader imsProvisioningLoader, FeatureFlags featureFlags) {
         log("ImsProvisioningController");
         mApp = app;
         mNumSlot = numSlot;
@@ -841,6 +875,7 @@
         mTelephonyRegistryManager.addOnSubscriptionsChangedListener(
                 mSubChangedListener, mHandler::post);
         mImsProvisioningLoader = imsProvisioningLoader;
+        mFeatureFlags = featureFlags;
 
         PhoneConfigurationManager.registerForMultiSimConfigChange(mHandler,
                 EVENT_MULTI_SIM_CONFIGURATION_CHANGE, null);
@@ -924,7 +959,8 @@
      * create an instance
      */
     @VisibleForTesting
-    public static ImsProvisioningController make(PhoneGlobals app, int numSlot) {
+    public static ImsProvisioningController make(PhoneGlobals app, int numSlot,
+            FeatureFlags featureFlags) {
         synchronized (ImsProvisioningController.class) {
             if (sInstance == null) {
                 Rlog.i(TAG, "ImsProvisioningController created");
@@ -932,7 +968,7 @@
                 handlerThread.start();
                 sInstance = new ImsProvisioningController(app, numSlot, handlerThread.getLooper(),
                         ImsManager::getConnector, RcsFeatureManager::getConnector,
-                        new ImsProvisioningLoader(app));
+                        new ImsProvisioningLoader(app), featureFlags);
             }
         }
         return sInstance;
@@ -966,6 +1002,11 @@
         try {
             mProvisioningCallbackManagersSlotMap.get(slotId).registerCallback(callback);
             log("Feature Provisioning Callback registered.");
+
+            if (mFeatureFlags.notifyInitialImsProvisioningStatus()) {
+                mHandler.sendMessage(mHandler.obtainMessage(EVENT_NOTIFY_INIT_PROVISIONED_VALUE,
+                        getSlotId(subId), subId, (Object) callback));
+            }
         } catch (NullPointerException e) {
             logw("can not access callback manager to add callback");
         }
@@ -1639,6 +1680,90 @@
         return true;
     }
 
+    private void notifyMmTelProvisioningStatus(int slotId, int subId,
+            @Nullable IFeatureProvisioningCallback callback) {
+        int value = ImsProvisioningLoader.STATUS_NOT_SET;
+        int[] techArray;
+        for (int capability : LOCAL_MMTEL_CAPABILITY) {
+            techArray = getTechsFromCarrierConfig(subId, capability, /*isMmTle*/true);
+            if (techArray == null) {
+                continue;
+            }
+
+            for (int radioTech : techArray) {
+                value = mImsProvisioningLoader.getProvisioningStatus(subId, FEATURE_MMTEL,
+                        capability, radioTech);
+                if (value == ImsProvisioningLoader.STATUS_NOT_SET) {
+                    // Not yet provisioned
+                    continue;
+                }
+
+                value = (value == ImsProvisioningLoader.STATUS_PROVISIONED)
+                        ? PROVISIONING_VALUE_ENABLED : PROVISIONING_VALUE_DISABLED;
+
+                // Notify all registered callbacks
+                if (callback == null) {
+                    mProvisioningCallbackManagersSlotMap.get(slotId)
+                            .notifyProvisioningCapabilityChanged(
+                                    new FeatureProvisioningData(
+                                            capability,
+                                            radioTech,
+                                            getBoolValue(value),
+                                            /*isMmTle*/true));
+                } else {
+                    try {
+                        callback.onFeatureProvisioningChanged(capability, radioTech,
+                                getBoolValue(value));
+                    } catch (RemoteException e) {
+                        logw("notifyMmTelProvisioningStatus callback is not available");
+                    }
+                }
+            }
+        }
+    }
+
+    private void notifyRcsProvisioningStatus(int slotId, int subId,
+            @Nullable IFeatureProvisioningCallback callback) {
+        int value = ImsProvisioningLoader.STATUS_NOT_SET;
+        int[] techArray;
+        for (int capability : LOCAL_RCS_CAPABILITY) {
+            techArray = getTechsFromCarrierConfig(subId, capability, /*isMmTle*/false);
+            if (techArray == null) {
+                continue;
+            }
+
+            for (int radioTech : techArray) {
+                value = mImsProvisioningLoader.getProvisioningStatus(subId, FEATURE_RCS,
+                        capability, radioTech);
+                if (value == ImsProvisioningLoader.STATUS_NOT_SET) {
+                    // Not yet provisioned
+                    continue;
+                }
+
+                value = (value == ImsProvisioningLoader.STATUS_PROVISIONED)
+                        ? PROVISIONING_VALUE_ENABLED : PROVISIONING_VALUE_DISABLED;
+
+                // Notify all registered callbacks
+                if (callback == null) {
+                    mProvisioningCallbackManagersSlotMap.get(slotId)
+                            .notifyProvisioningCapabilityChanged(
+                                    new FeatureProvisioningData(
+                                            capability,
+                                            radioTech,
+                                            getBoolValue(value),
+                                            /*isMmTle*/false));
+                } else {
+                    try {
+                        callback.onRcsFeatureProvisioningChanged(capability, radioTech,
+                                getBoolValue(value));
+                    } catch (RemoteException e) {
+                        logw("notifyRcsProvisioningStatus callback is not available");
+                    }
+                }
+            }
+        }
+    }
+
     private void log(String s) {
         Rlog.d(TAG, s);
     }
diff --git a/src/com/android/phone/ImsRcsController.java b/src/com/android/phone/ImsRcsController.java
index a778f6a..766d719 100644
--- a/src/com/android/phone/ImsRcsController.java
+++ b/src/com/android/phone/ImsRcsController.java
@@ -32,6 +32,7 @@
 import android.os.Build;
 import android.os.RemoteException;
 import android.os.ServiceSpecificException;
+import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyFrameworkInitializer;
@@ -85,6 +86,7 @@
     private PackageManager mPackageManager;
     // set by shell cmd phone src set-device-enabled true/false
     private Boolean mSingleRegistrationOverride;
+    private final int mVendorApiLevel;
 
     /**
      * For apps targeting Android T and above, support the publishing state on APIs, such as
@@ -119,6 +121,8 @@
         TelephonyFrameworkInitializer
                 .getTelephonyServiceManager().getTelephonyImsServiceRegisterer().register(this);
         mImsResolver = ImsResolver.getInstance();
+        mVendorApiLevel = SystemProperties.getInt(
+                "ro.vendor.api_level", Build.VERSION.DEVICE_INITIAL_SDK_INT);
     }
 
     /**
@@ -1000,7 +1004,11 @@
 
         if (!mFeatureFlags.enforceTelephonyFeatureMappingForPublicApis()
                 || !CompatChanges.isChangeEnabled(ENABLE_FEATURE_MAPPING, callingPackage,
-                Binder.getCallingUserHandle())) {
+                Binder.getCallingUserHandle())
+                || mVendorApiLevel < Build.VERSION_CODES.VANILLA_ICE_CREAM) {
+            // Skip to check associated telephony feature,
+            // if compatibility change is not enabled for the current process or
+            // the SDK version of vendor partition is less than Android V.
             return;
         }
 
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index da6cf25..6b85016 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -91,6 +91,7 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * Global state for the telephony subsystem when running in the primary
@@ -189,13 +190,15 @@
                     ROAMING_NOTIFICATION_REASON_DATA_ROAMING_SETTING_CHANGED,
                     ROAMING_NOTIFICATION_REASON_CARRIER_CONFIG_CHANGED,
                     ROAMING_NOTIFICATION_REASON_SERVICE_STATE_CHANGED,
-                    ROAMING_NOTIFICATION_REASON_DEFAULT_DATA_SUBS_CHANGED})
+                    ROAMING_NOTIFICATION_REASON_DEFAULT_DATA_SUBS_CHANGED,
+                    ROAMING_NOTIFICATION_REASON_DISCONNECTED_SINGLE_NETWORK})
     public @interface RoamingNotificationReason {}
     private static final int ROAMING_NOTIFICATION_REASON_DATA_SETTING_CHANGED = 0;
     private static final int ROAMING_NOTIFICATION_REASON_DATA_ROAMING_SETTING_CHANGED = 1;
     private static final int ROAMING_NOTIFICATION_REASON_CARRIER_CONFIG_CHANGED = 2;
     private static final int ROAMING_NOTIFICATION_REASON_SERVICE_STATE_CHANGED = 3;
     private static final int ROAMING_NOTIFICATION_REASON_DEFAULT_DATA_SUBS_CHANGED = 4;
+    private static final int ROAMING_NOTIFICATION_REASON_DISCONNECTED_SINGLE_NETWORK = 5;
 
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
@@ -214,6 +217,14 @@
     private int mCurrentRoamingNotification = ROAMING_NOTIFICATION_NO_NOTIFICATION;
 
     /**
+     * If true, update roaming notifications after the Internet is completely disconnected. If
+     * carrier allows only a single data network, wait until the Internet connection is completely
+     * disconnected and then update the roaming notification once more to check if
+     * ONLY_ALLOWED_SINGLE_NETWORK disallow reason is disappeared.
+     */
+    private AtomicBoolean mWaitForInternetDisconnection = new AtomicBoolean(false);
+
+    /**
      * Reasons that have already shown notification to prevent duplicate shows for the same reason.
      */
     private ArraySet<String> mShownNotificationReasons = new ArraySet<>();
@@ -252,7 +263,8 @@
     private FeatureFlags mFeatureFlags = new FeatureFlagsImpl();
 
     private class PhoneAppCallback extends TelephonyCallback implements
-            TelephonyCallback.ServiceStateListener {
+            TelephonyCallback.ServiceStateListener,
+            TelephonyCallback.DataConnectionStateListener {
         private final int mSubId;
 
         PhoneAppCallback(int subId) {
@@ -266,6 +278,23 @@
             handleServiceStateChanged(serviceState, mSubId);
         }
 
+        @Override
+        public void onDataConnectionStateChanged(int state, int networkType) {
+            if (mSubId == mDefaultDataSubId && state == TelephonyManager.DATA_DISCONNECTED) {
+                // onDataConnectionStateChanged is an event about the state of exact DataNetwork,
+                // but since the DataNetwork of internet may not have been completely removed from
+                // the DataNetworkController list, The post handler event expects the internet data
+                // network to be completely removed from the DataNetworkController list.
+                mHandler.post(() -> {
+                    if (mWaitForInternetDisconnection.compareAndSet(true, false)) {
+                        Log.d(LOG_TAG, "onDisconnectedInternetDataNetwork.");
+                        updateDataRoamingStatus(
+                                ROAMING_NOTIFICATION_REASON_DISCONNECTED_SINGLE_NETWORK);
+                    }
+                });
+            }
+        }
+
         public int getSubId() {
             return mSubId;
         }
@@ -489,7 +518,9 @@
 
         ContentResolver resolver = getContentResolver();
 
-        if (mFeatureFlags.enforceTelephonyFeatureMappingForPublicApis()) {
+        if (mFeatureFlags.enforceTelephonyFeatureMappingForPublicApis()
+                && !getResources().getBoolean(
+                    com.android.internal.R.bool.config_force_phone_globals_creation)) {
             if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)) {
                 Log.v(LOG_TAG, "onCreate()... but not defined FEATURE_TELEPHONY");
                 return;
@@ -547,7 +578,7 @@
                         R.string.config_ims_rcs_package);
                 ImsResolver.make(this, defaultImsMmtelPackage,
                         defaultImsRcsPackage, PhoneFactory.getPhones().length,
-                        new ImsFeatureBinderRepository());
+                        new ImsFeatureBinderRepository(), mFeatureFlags);
                 ImsResolver.getInstance().initialize();
 
                 // With the IMS phone created, load static config.xml values from the phone process
@@ -607,11 +638,12 @@
                 mImsStateCallbackController =
                         ImsStateCallbackController.make(this, PhoneFactory.getPhones().length);
                 mTelephonyRcsService = new TelephonyRcsService(this,
-                        PhoneFactory.getPhones().length);
+                        PhoneFactory.getPhones().length, mFeatureFlags);
                 mTelephonyRcsService.initialize();
                 imsRcsController.setRcsService(mTelephonyRcsService);
                 mImsProvisioningController =
-                        ImsProvisioningController.make(this, PhoneFactory.getPhones().length);
+                        ImsProvisioningController.make(this, PhoneFactory.getPhones().length,
+                                mFeatureFlags);
             }
 
             // Create the CallNotifier singleton, which handles
@@ -1006,10 +1038,9 @@
      * When roaming, if mobile data cannot be established due to data roaming not enabled, we need
      * to notify the user so they can enable it through settings. Vise versa if the condition
      * changes, we need to dismiss the notification.
-     * @param reason to inform which event is called for notification update.
+     * @param notificationReason to inform which event is called for notification update.
      */
-    private void updateDataRoamingStatus(@RoamingNotificationReason int reason) {
-        if (VDBG) Log.v(LOG_TAG, "updateDataRoamingStatus");
+    private void updateDataRoamingStatus(@RoamingNotificationReason int notificationReason) {
         Phone phone = getPhone(mDefaultDataSubId);
         if (phone == null) {
             Log.w(LOG_TAG, "Can't get phone with sub id = " + mDefaultDataSubId);
@@ -1022,20 +1053,59 @@
             return;
         }
 
+        List<DataDisallowedReason> disallowReasons = phone.getDataNetworkController()
+                .getInternetDataDisallowedReasons();
+
+        if (mFeatureFlags.roamingNotificationForSingleDataNetwork()) {
+            if (disallowReasons.contains(DataDisallowedReason.ONLY_ALLOWED_SINGLE_NETWORK)
+                    && disallowReasons.contains(DataDisallowedReason.ROAMING_DISABLED)
+                    && (notificationReason == ROAMING_NOTIFICATION_REASON_DATA_SETTING_CHANGED
+                            || notificationReason
+                                    == ROAMING_NOTIFICATION_REASON_DATA_ROAMING_SETTING_CHANGED)) {
+                // If the ONLY_ALLOWED_SINGLE_NETWORK disallow reason has not yet been removed due
+                // to a change in mobile_data (including roaming_data) settings, update roaming
+                // notification again after the Internet is completely disconnected to check
+                // ONLY_ALLOWED_SINGLE_NETWORK disallow reason is removed.
+                mWaitForInternetDisconnection.set(true);
+                Log.d(LOG_TAG, "updateDataRoamingStatus,"
+                        + " wait for internet disconnection for single data network");
+            } else if (!disallowReasons.contains(DataDisallowedReason.ONLY_ALLOWED_SINGLE_NETWORK)
+                    && mWaitForInternetDisconnection.compareAndSet(true, false)) {
+                // If the ONLY_ALLOWED_SINGLE_NETWORK disallow reason has been removed,
+                // no longer wait for Internet disconnection.
+                Log.d(LOG_TAG, "updateDataRoamingStatus,"
+                        + " cancel to wait for internet disconnection for single data network");
+            }
+        }
+
+        updateDataRoamingStatus(notificationReason, disallowReasons, serviceState);
+    }
+
+    /**
+     * When roaming, if mobile data cannot be established due to data roaming not enabled, we need
+     * to notify the user so they can enable it through settings. Vise versa if the condition
+     * changes, we need to dismiss the notification.
+     * @param notificationReason to inform which event is called for notification update.
+     * @param disallowReasons List of reasons why internet data is not allowed. An empty list if
+     *                       internet is allowed.
+     * @param serviceState Service state from phone
+     */
+    private void updateDataRoamingStatus(@RoamingNotificationReason int notificationReason,
+            List<DataDisallowedReason> disallowReasons, ServiceState serviceState) {
+
+        if (VDBG) Log.v(LOG_TAG, "updateDataRoamingStatus");
         String roamingNumeric = serviceState.getOperatorNumeric();
         String roamingNumericReason = "RoamingNumeric=" + roamingNumeric;
-        String callingReason = "CallingReason=" + reason;
+        String callingReason = "CallingReason=" + notificationReason;
         boolean dataIsNowRoaming = serviceState.getDataRoaming();
         boolean dataAllowed;
         boolean notAllowedDueToRoamingOff;
-        List<DataDisallowedReason> reasons = phone.getDataNetworkController()
-                .getInternetDataDisallowedReasons();
-        dataAllowed = reasons.isEmpty();
-        notAllowedDueToRoamingOff = (reasons.size() == 1
-                && reasons.contains(DataDisallowedReason.ROAMING_DISABLED));
+        dataAllowed = disallowReasons.isEmpty();
+        notAllowedDueToRoamingOff = (disallowReasons.size() == 1
+                && disallowReasons.contains(DataDisallowedReason.ROAMING_DISABLED));
         StringBuilder sb = new StringBuilder("updateDataRoamingStatus");
         sb.append(" dataAllowed=").append(dataAllowed);
-        sb.append(", reasons=").append(reasons);
+        sb.append(", disallowReasons=").append(disallowReasons);
         sb.append(", dataIsNowRoaming=").append(dataIsNowRoaming);
         sb.append(", ").append(roamingNumericReason);
         sb.append(", ").append(callingReason);
@@ -1046,8 +1116,8 @@
 
         // Determine if a given roaming numeric has never been shown.
         boolean shownInThisNumeric = false;
-        if (reason == ROAMING_NOTIFICATION_REASON_CARRIER_CONFIG_CHANGED
-                || reason == ROAMING_NOTIFICATION_REASON_SERVICE_STATE_CHANGED) {
+        if (notificationReason == ROAMING_NOTIFICATION_REASON_CARRIER_CONFIG_CHANGED
+                || notificationReason == ROAMING_NOTIFICATION_REASON_SERVICE_STATE_CHANGED) {
             shownInThisNumeric = mShownNotificationReasons.contains(roamingNumericReason);
         }
         // Determine if a notification has never been shown by given calling reason.
@@ -1058,7 +1128,7 @@
                 mShownNotificationReasons.add(roamingNumericReason);
             }
             if (!shownForThisReason
-                    && reason == ROAMING_NOTIFICATION_REASON_CARRIER_CONFIG_CHANGED) {
+                    && notificationReason == ROAMING_NOTIFICATION_REASON_CARRIER_CONFIG_CHANGED) {
                 mShownNotificationReasons.add(callingReason);
             }
             // No need to show it again if we never cancelled it explicitly.
@@ -1085,7 +1155,7 @@
                 mShownNotificationReasons.add(roamingNumericReason);
             }
             if (!shownForThisReason
-                    && reason == ROAMING_NOTIFICATION_REASON_CARRIER_CONFIG_CHANGED) {
+                    && notificationReason == ROAMING_NOTIFICATION_REASON_CARRIER_CONFIG_CHANGED) {
                 mShownNotificationReasons.add(callingReason);
             }
             boolean shouldShowRoamingNotification = shouldShowRoamingNotification(roamingNumeric);
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index e66b784..e22f51a 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -76,6 +76,7 @@
 import android.os.ResultReceiver;
 import android.os.ServiceSpecificException;
 import android.os.SystemClock;
+import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.os.WorkSource;
@@ -259,8 +260,10 @@
 import com.android.phone.vvm.RemoteVvmTaskManager;
 import com.android.phone.vvm.VisualVoicemailSettingsUtil;
 import com.android.phone.vvm.VisualVoicemailSmsFilterConfig;
+import com.android.server.feature.flags.Flags;
 import com.android.services.telephony.TelecomAccountRegistry;
 import com.android.services.telephony.TelephonyConnectionService;
+import com.android.services.telephony.domainselection.TelephonyDomainSelectionService;
 import com.android.telephony.Rlog;
 
 import java.io.ByteArrayOutputStream;
@@ -424,18 +427,20 @@
 
     private final PhoneGlobals mApp;
     private FeatureFlags mFeatureFlags;
+    private com.android.server.telecom.flags.FeatureFlags mTelecomFeatureFlags;
     private final CallManager mCM;
     private final ImsResolver mImsResolver;
 
     private final SatelliteController mSatelliteController;
     private final SatelliteAccessController mSatelliteAccessController;
     private final UserManager mUserManager;
-    private final AppOpsManager mAppOps;
     private final MainThreadHandler mMainThreadHandler;
     private final SharedPreferences mTelephonySharedPreferences;
     private final PhoneConfigurationManager mPhoneConfigurationManager;
     private final RadioInterfaceCapabilityController mRadioInterfaceCapabilities;
+    private AppOpsManager mAppOps;
     private PackageManager mPackageManager;
+    private final int mVendorApiLevel;
 
     /** User Activity */
     private final AtomicBoolean mNotifyUserActivity;
@@ -1588,7 +1593,7 @@
                         // This is for the implementation of carrierRestrictionStatus.
                         CallerCallbackInfo callbackInfo = (CallerCallbackInfo) request.argument;
                         Consumer<Integer> callback = callbackInfo.getConsumer();
-                        int callerCarrierId = callbackInfo.getCarrierId();
+                        Set<Integer> callerCarrierIds = callbackInfo.getCarrierIds();
                         int lockStatus = TelephonyManager.CARRIER_RESTRICTION_STATUS_UNKNOWN;
                         if (ar.exception == null && ar.result instanceof CarrierRestrictionRules) {
                             CarrierRestrictionRules carrierRestrictionRules =
@@ -1603,8 +1608,10 @@
                                 Rlog.e(LOG_TAG, "CarrierIdentifier exception = " + ex);
                             }
                             lockStatus = carrierRestrictionRules.getCarrierRestrictionStatus();
-                            if (carrierId != -1 && callerCarrierId == carrierId && lockStatus
-                                    == TelephonyManager.CARRIER_RESTRICTION_STATUS_RESTRICTED) {
+                            int restrictedStatus =
+                                    TelephonyManager.CARRIER_RESTRICTION_STATUS_RESTRICTED;
+                            if (carrierId != -1 && callerCarrierIds.contains(carrierId) &&
+                                    lockStatus == restrictedStatus) {
                                 lockStatus = TelephonyManager
                                         .CARRIER_RESTRICTION_STATUS_RESTRICTED_TO_CALLER;
                             }
@@ -2464,6 +2471,7 @@
     private PhoneInterfaceManager(PhoneGlobals app, FeatureFlags featureFlags) {
         mApp = app;
         mFeatureFlags = featureFlags;
+        mTelecomFeatureFlags = new com.android.server.telecom.flags.FeatureFlagsImpl();
         mCM = PhoneGlobals.getInstance().mCM;
         mImsResolver = ImsResolver.getInstance();
         mSatelliteController = SatelliteController.getInstance();
@@ -2478,6 +2486,9 @@
         mPackageManager = app.getPackageManager();
         mSatelliteAccessController = SatelliteAccessController.getOrCreateInstance(
                 getDefaultPhone().getContext(), featureFlags);
+        mVendorApiLevel = SystemProperties.getInt(
+                "ro.vendor.api_level", Build.VERSION.DEVICE_INITIAL_SDK_INT);
+
         PropertyInvalidatedCache.invalidateCache(TelephonyManager.CACHE_KEY_PHONE_ACCOUNT_TO_SUBID);
         publish();
         CarrierAllowListInfo.loadInstance(mApp);
@@ -2720,6 +2731,10 @@
 
         // For async handler to identify request type
         private static final int SUPPLY_PIN_COMPLETE = 100;
+        private static final int SUPPLY_PIN_DELAYED  = 101;
+        private static final int SUPPLY_PIN_DELAYED_TIMER_IN_MILLIS = 10000;
+        private static final UUID SUPPLY_PIN_UUID = UUID.fromString(
+                "d3768135-4323-491d-a6c8-bda01fc89040");
 
         UnlockSim(int phoneId, IccCard simCard) {
             mPhoneId = phoneId;
@@ -2758,9 +2773,17 @@
                                         mResult = PhoneConstants.PIN_RESULT_SUCCESS;
                                     }
                                     mDone = true;
+                                    removeMessages(SUPPLY_PIN_DELAYED);
                                     UnlockSim.this.notifyAll();
                                 }
                                 break;
+                            case SUPPLY_PIN_DELAYED:
+                                if(!mDone) {
+                                    String logStr = "Delay in receiving SIM PIN response ";
+                                    if (DBG) log(logStr);
+                                    AnomalyReporter.reportAnomaly(SUPPLY_PIN_UUID, logStr);
+                                }
+                                break;
                         }
                     }
                 };
@@ -2799,6 +2822,8 @@
             while (!mDone) {
                 try {
                     Log.d(LOG_TAG, "wait for done");
+                    mHandler.sendEmptyMessageDelayed(SUPPLY_PIN_DELAYED,
+                            SUPPLY_PIN_DELAYED_TIMER_IN_MILLIS);
                     wait();
                 } catch (InterruptedException e) {
                     // Restore the interrupted status
@@ -9238,15 +9263,15 @@
         enforceTelephonyFeatureWithException(packageName,
                 PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, "getCarrierRestrictionStatus");
 
-        int carrierId = validateCallerAndGetCarrierId(packageName);
-        if (carrierId == CarrierAllowListInfo.INVALID_CARRIER_ID) {
+        Set<Integer> carrierIds = validateCallerAndGetCarrierIds(packageName);
+        if (carrierIds.contains(CarrierAllowListInfo.INVALID_CARRIER_ID)) {
             Rlog.e(LOG_TAG, "getCarrierRestrictionStatus: caller is not registered");
             throw new SecurityException("Not an authorized caller");
         }
         final long identity = Binder.clearCallingIdentity();
         try {
             Consumer<Integer> consumer = FunctionalUtils.ignoreRemoteException(callback::accept);
-            CallerCallbackInfo callbackInfo = new CallerCallbackInfo(consumer, carrierId);
+            CallerCallbackInfo callbackInfo = new CallerCallbackInfo(consumer, carrierIds);
             sendRequestAsync(CMD_GET_ALLOWED_CARRIERS, callbackInfo);
         } finally {
             Binder.restoreCallingIdentity(identity);
@@ -9261,9 +9286,9 @@
     }
 
     @VisibleForTesting
-    public int validateCallerAndGetCarrierId(String packageName) {
+    public Set<Integer> validateCallerAndGetCarrierIds(String packageName) {
         CarrierAllowListInfo allowListInfo = CarrierAllowListInfo.loadInstance(mApp);
-        return allowListInfo.validateCallerAndGetCarrierId(packageName);
+        return allowListInfo.validateCallerAndGetCarrierIds(packageName);
     }
 
     /**
@@ -9463,7 +9488,7 @@
         try {
             if (reason == TelephonyManager.DATA_ENABLED_REASON_USER && enabled
                     && null != callingPackage && opEnableMobileDataByUser()) {
-                mAppOps.noteOp(AppOpsManager.OPSTR_ENABLE_MOBILE_DATA_BY_USER,
+                mAppOps.noteOpNoThrow(AppOpsManager.OPSTR_ENABLE_MOBILE_DATA_BY_USER,
                         callingUid, callingPackage, null, null);
             }
             Phone phone = getPhone(subId);
@@ -12894,8 +12919,16 @@
     public void persistEmergencyCallDiagnosticData(@NonNull String dropboxTag, boolean enableLogcat,
             long logcatStartTimestampMillis, boolean enableTelecomDump,
             boolean enableTelephonyDump) {
-        mApp.enforceCallingPermission(android.Manifest.permission.DUMP,
-                "persistEmergencyCallDiagnosticData");
+        // Verify that the caller has READ_DROPBOX_DATA permission.
+        if (mTelecomFeatureFlags.telecomResolveHiddenDependencies()
+                && Flags.enableReadDropboxPermission()) {
+            mApp.enforceCallingPermission(permission.READ_DROPBOX_DATA,
+                    "persistEmergencyCallDiagnosticData");
+        } else {
+            // Otherwise, enforce legacy permission.
+            mApp.enforceCallingPermission(android.Manifest.permission.DUMP,
+                    "persistEmergencyCallDiagnosticData");
+        }
         final long identity = Binder.clearCallingIdentity();
         try {
             persistEmergencyCallDiagnosticDataInternal(dropboxTag, enableLogcat,
@@ -12980,6 +13013,34 @@
     }
 
     /**
+     * Returns whether the AOSP domain selection service is supported.
+     *
+     * @return {@code true} if the AOSP domain selection service is supported,
+     *         {@code false} otherwise.
+     */
+    @Override
+    public boolean isAospDomainSelectionService() {
+        mApp.enforceCallingOrSelfPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
+                "isAospDomainSelectionService");
+
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            if (DomainSelectionResolver.getInstance().isDomainSelectionSupported()) {
+                String dssComponentName = mApp.getResources().getString(
+                        R.string.config_domain_selection_service_component_name);
+                ComponentName componentName = ComponentName.createRelative(mApp.getPackageName(),
+                        TelephonyDomainSelectionService.class.getName());
+                Log.i(LOG_TAG, "isAospDomainSelectionService dss=" + dssComponentName
+                        + ", aosp=" + componentName.flattenToString());
+                return TextUtils.equals(componentName.flattenToString(), dssComponentName);
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+        return false;
+    }
+
+    /**
      * Request to enable or disable the satellite modem and demo mode. If the satellite modem is
      * enabled, this may also disable the cellular modem, and if the satellite modem is disabled,
      * this may also re-enable the cellular modem.
@@ -14043,19 +14104,19 @@
      */
     private static class CallerCallbackInfo {
         private final Consumer<Integer> mConsumer;
-        private final int mCarrierId;
+        private final Set<Integer> mCarrierIds;
 
-        public CallerCallbackInfo(Consumer<Integer> consumer, int carrierId) {
+        public CallerCallbackInfo(Consumer<Integer> consumer, Set<Integer> carrierIds) {
             mConsumer = consumer;
-            mCarrierId = carrierId;
+            mCarrierIds = carrierIds;
         }
 
         public Consumer<Integer> getConsumer() {
             return mConsumer;
         }
 
-        public int getCarrierId() {
-            return mCarrierId;
+        public Set<Integer> getCarrierIds() {
+            return mCarrierIds;
         }
     }
 
@@ -14070,6 +14131,16 @@
     }
 
     /*
+     * PhoneInterfaceManager is a singleton. Unit test calls the init() with context.
+     * But the context that is passed in is unused if the phone app is already alive.
+     * In this case PackageManager object is different in PhoneInterfaceManager and Unit test.
+     */
+    @VisibleForTesting
+    public void setAppOpsManager(AppOpsManager appOps) {
+        mAppOps = appOps;
+    }
+
+    /*
      * PhoneInterfaceManager is a singleton. Unit test calls the init() with FeatureFlags.
      * But the FeatureFlags that is passed in is unused if the phone app is already alive.
      * In this case FeatureFlags object is different in PhoneInterfaceManager and Unit test.
@@ -14092,7 +14163,11 @@
 
         if (!mFeatureFlags.enforceTelephonyFeatureMappingForPublicApis()
                 || !CompatChanges.isChangeEnabled(ENABLE_FEATURE_MAPPING, callingPackage,
-                Binder.getCallingUserHandle())) {
+                Binder.getCallingUserHandle())
+                || mVendorApiLevel < Build.VERSION_CODES.VANILLA_ICE_CREAM) {
+            // Skip to check associated telephony feature,
+            // if compatibility change is not enabled for the current process or
+            // the SDK version of vendor partition is less than Android V.
             return;
         }
 
diff --git a/src/com/android/phone/ServiceStateProvider.java b/src/com/android/phone/ServiceStateProvider.java
index 3fa1e58..894d1c7 100644
--- a/src/com/android/phone/ServiceStateProvider.java
+++ b/src/com/android/phone/ServiceStateProvider.java
@@ -41,6 +41,7 @@
 import android.os.Binder;
 import android.os.Build;
 import android.os.Parcel;
+import android.os.UserHandle;
 import android.telephony.LocationAccessPolicy;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
@@ -577,27 +578,31 @@
             ServiceState newSS, int subId) {
         final boolean firstUpdate = (oldSS == null) ? true : false;
 
-        // for every field, if the field has changed values, notify via the provider
+        // For every field, if the field has changed values, notify via the provider to all users
         if (firstUpdate || voiceRegStateChanged(oldSS, newSS)) {
             context.getContentResolver().notifyChange(
                     getUriForSubscriptionIdAndField(subId, VOICE_REG_STATE),
-                    /* observer= */ null, /* syncToNetwork= */ false);
+                    /* observer= */ null, /* syncToNetwork= */ false, UserHandle.USER_ALL);
         }
         if (firstUpdate || dataRegStateChanged(oldSS, newSS)) {
             context.getContentResolver().notifyChange(
-                    getUriForSubscriptionIdAndField(subId, DATA_REG_STATE), null, false);
+                    getUriForSubscriptionIdAndField(subId, DATA_REG_STATE),
+                    /* observer= */ null, /* syncToNetwork= */ false, UserHandle.USER_ALL);
         }
         if (firstUpdate || voiceRoamingTypeChanged(oldSS, newSS)) {
             context.getContentResolver().notifyChange(
-                    getUriForSubscriptionIdAndField(subId, VOICE_ROAMING_TYPE), null, false);
+                    getUriForSubscriptionIdAndField(subId, VOICE_ROAMING_TYPE),
+                    /* observer= */ null, /* syncToNetwork= */ false, UserHandle.USER_ALL);
         }
         if (firstUpdate || dataRoamingTypeChanged(oldSS, newSS)) {
             context.getContentResolver().notifyChange(
-                    getUriForSubscriptionIdAndField(subId, DATA_ROAMING_TYPE), null, false);
+                    getUriForSubscriptionIdAndField(subId, DATA_ROAMING_TYPE),
+                    /* observer= */ null, /* syncToNetwork= */ false, UserHandle.USER_ALL);
         }
         if (firstUpdate || dataNetworkTypeChanged(oldSS, newSS)) {
             context.getContentResolver().notifyChange(
-                    getUriForSubscriptionIdAndField(subId, DATA_NETWORK_TYPE), null, false);
+                    getUriForSubscriptionIdAndField(subId, DATA_NETWORK_TYPE),
+                    /* observer= */ null, /* syncToNetwork= */ false, UserHandle.USER_ALL);
         }
     }
 
@@ -635,14 +640,15 @@
     @VisibleForTesting
     public static void notifyChangeForSubId(Context context, ServiceState oldSS, ServiceState newSS,
             int subId) {
-        // if the voice or data registration or roaming state field has changed values, notify via
-        // the provider.
+        // If the voice or data registration or roaming state field has changed values, notify via
+        // the provider to all users.
         // If oldSS is null and newSS is not (e.g. first update of service state) this will also
-        // notify
+        // notify to all users.
         if (oldSS == null || voiceRegStateChanged(oldSS, newSS) || dataRegStateChanged(oldSS, newSS)
                 || voiceRoamingTypeChanged(oldSS, newSS) || dataRoamingTypeChanged(oldSS, newSS)
                 || dataNetworkTypeChanged(oldSS, newSS)) {
-            context.getContentResolver().notifyChange(getUriForSubscriptionId(subId), null, false);
+            context.getContentResolver().notifyChange(getUriForSubscriptionId(subId),
+                    /* observer= */ null, /* syncToNetwork= */ false, UserHandle.USER_ALL);
         }
     }
 
diff --git a/src/com/android/phone/TelephonyShellCommand.java b/src/com/android/phone/TelephonyShellCommand.java
index 23232ce..9f67c75 100644
--- a/src/com/android/phone/TelephonyShellCommand.java
+++ b/src/com/android/phone/TelephonyShellCommand.java
@@ -3928,7 +3928,7 @@
     /**
      * Building the string that can be used to build the JsonObject which supports to stub the data
      * in CarrierAllowListInfo for CTS testing. sample format is like
-     * {"com.android.example":{"carrierId":"10000","callerSHA1Id":["XXXXXXXXXXXXXX"]}}
+     * {"com.android.example":{"carrierIds":[10000],"callerSHA256Ids":["XXXXXXXXXXXXXX"]}}
      */
     private String convertToJsonString(int index, String param) {
 
@@ -3940,7 +3940,7 @@
                 break;
             case 1:
                 jSonString =
-                        "{" + QUOTES + token[0] + QUOTES + ":" + QUOTES + token[1] + QUOTES + ",";
+                        "{" + QUOTES + token[0] + QUOTES + ":" + "[" + token[1] + "],";
                 break;
             case 2:
                 jSonString =
diff --git a/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java b/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
index 5da52d6..3e44062 100644
--- a/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
+++ b/src/com/android/phone/euicc/EuiccUiDispatcherActivity.java
@@ -113,7 +113,7 @@
     @Nullable
     Intent resolveEuiccUiIntent() {
         EuiccManager euiccManager = (EuiccManager) getSystemService(Context.EUICC_SERVICE);
-        if (!euiccManager.isEnabled()) {
+        if (euiccManager == null || !euiccManager.isEnabled()) {
             Log.w(TAG, "eUICC not enabled");
             return null;
         }
diff --git a/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java b/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
index ccef8a9..d8c54eb 100644
--- a/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
+++ b/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
@@ -248,9 +248,6 @@
                 handleIsSatelliteSupportedResult(resultCode, resultData);
             }
         };
-
-        mConfigUpdaterMetricsStats = ConfigUpdaterMetricsStats.getOrCreateInstance();
-
         mInternalSatelliteProvisionedResultReceiver = new ResultReceiver(this) {
             @Override
             protected void onReceiveResult(int resultCode, Bundle resultData) {
@@ -258,6 +255,8 @@
             }
         };
 
+        mConfigUpdaterMetricsStats = ConfigUpdaterMetricsStats.getOrCreateInstance();
+
         // Init the SatelliteOnDeviceAccessController so that the S2 level can be cached
         initSatelliteOnDeviceAccessController();
     }
diff --git a/src/com/android/phone/security/SafetySourceReceiver.java b/src/com/android/phone/security/SafetySourceReceiver.java
index d2be1a1..76f8e72 100644
--- a/src/com/android/phone/security/SafetySourceReceiver.java
+++ b/src/com/android/phone/security/SafetySourceReceiver.java
@@ -28,8 +28,10 @@
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.flags.Flags;
 import com.android.phone.PhoneGlobals;
+import com.android.telephony.Rlog;
 
 public class SafetySourceReceiver extends BroadcastReceiver {
+    private static final String TAG = "TelephonySafetySourceReceiver";
     @Override
     public void onReceive(Context context, Intent intent) {
 
@@ -72,6 +74,11 @@
 
     @VisibleForTesting
     public Phone getDefaultPhone() {
-        return PhoneGlobals.getPhone();
+        try {
+            return PhoneGlobals.getPhone();
+        } catch (IllegalStateException e) {
+            Rlog.i(TAG, "Unable to get phone. Skipping safety source refresh: " + e.getMessage());
+        }
+        return null;
     }
 }
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index 62ca3b3..86b3afe 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -58,6 +58,7 @@
 import android.telephony.CellInfoLte;
 import android.telephony.CellInfoNr;
 import android.telephony.CellInfoWcdma;
+import android.telephony.CellSignalStrength;
 import android.telephony.CellSignalStrengthCdma;
 import android.telephony.CellSignalStrengthGsm;
 import android.telephony.CellSignalStrengthLte;
@@ -74,6 +75,7 @@
 import android.telephony.TelephonyDisplayInfo;
 import android.telephony.TelephonyManager;
 import android.telephony.data.NetworkSlicingConfig;
+import android.telephony.euicc.EuiccManager;
 import android.telephony.ims.ImsException;
 import android.telephony.ims.ImsManager;
 import android.telephony.ims.ImsMmTelManager;
@@ -110,6 +112,7 @@
 import java.io.IOException;
 import java.net.HttpURLConnection;
 import java.net.URL;
+import java.util.Arrays;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
@@ -167,6 +170,36 @@
             "Unknown"
     };
 
+    private static final Integer[] SIGNAL_STRENGTH_LEVEL = new Integer[] {
+            -1 /*clear mock*/,
+            CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN,
+            CellSignalStrength.SIGNAL_STRENGTH_POOR,
+            CellSignalStrength.SIGNAL_STRENGTH_MODERATE,
+            CellSignalStrength.SIGNAL_STRENGTH_GOOD,
+            CellSignalStrength.SIGNAL_STRENGTH_GREAT
+    };
+    private static final Integer[] MOCK_DATA_NETWORK_TYPE = new Integer[] {
+            -1 /*clear mock*/,
+            ServiceState.RIL_RADIO_TECHNOLOGY_GPRS,
+            ServiceState.RIL_RADIO_TECHNOLOGY_EDGE,
+            ServiceState.RIL_RADIO_TECHNOLOGY_UMTS,
+            ServiceState.RIL_RADIO_TECHNOLOGY_IS95A,
+            ServiceState.RIL_RADIO_TECHNOLOGY_IS95B,
+            ServiceState.RIL_RADIO_TECHNOLOGY_1xRTT,
+            ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_0,
+            ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_A,
+            ServiceState.RIL_RADIO_TECHNOLOGY_HSDPA,
+            ServiceState.RIL_RADIO_TECHNOLOGY_HSUPA,
+            ServiceState.RIL_RADIO_TECHNOLOGY_HSPA,
+            ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_B,
+            ServiceState.RIL_RADIO_TECHNOLOGY_EHRPD,
+            ServiceState.RIL_RADIO_TECHNOLOGY_LTE,
+            ServiceState.RIL_RADIO_TECHNOLOGY_HSPAP,
+            ServiceState.RIL_RADIO_TECHNOLOGY_GSM,
+            ServiceState.RIL_RADIO_TECHNOLOGY_TD_SCDMA,
+            ServiceState.RIL_RADIO_TECHNOLOGY_LTE_CA,
+            ServiceState.RIL_RADIO_TECHNOLOGY_NR
+    };
     private static String[] sPhoneIndexLabels;
 
     private static final int sCellInfoListRateDisabled = Integer.MAX_VALUE;
@@ -263,6 +296,7 @@
     private TextView mNrState;
     private TextView mNrFrequency;
     private TextView mNetworkSlicingConfig;
+    private TextView mEuiccInfo;
     private EditText mSmsc;
     private Switch mRadioPowerOnSwitch;
     private Switch mSimulateOutOfServiceSwitch;
@@ -282,6 +316,9 @@
     private Switch mDsdsSwitch;
     private Switch mRemovableEsimSwitch;
     private Spinner mPreferredNetworkType;
+    private Spinner mMockSignalStrength;
+    private Spinner mMockDataNetworkType;
+
     private Spinner mSelectPhoneIndex;
     private Spinner mCellInfoRefreshRateSpinner;
 
@@ -294,6 +331,7 @@
     private ImsManager mImsManager = null;
     private Phone mPhone = null;
     private ProvisioningManager mProvisioningManager = null;
+    private EuiccManager mEuiccManager;
 
     private String mPingHostnameResultV4;
     private String mPingHostnameResultV6;
@@ -304,6 +342,9 @@
     private final PersistableBundle[] mCarrierSatelliteOriginalBundle = new PersistableBundle[2];
     private List<CellInfo> mCellInfoResult = null;
     private final boolean[] mSimulateOos = new boolean[2];
+    private int[] mSelectedSignalStrengthIndex = new int[2];
+    private int[] mSelectedMockDataNetworkTypeIndex = new int[2];
+    private String mEuiccInfoResult = "";
 
     private int mPreferredNetworkTypeResult;
     private int mCellInfoRefreshRateIndex;
@@ -520,6 +561,7 @@
         mPhone = getPhone(SubscriptionManager.getDefaultSubscriptionId());
         mTelephonyManager = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE))
                 .createForSubscriptionId(mPhone.getSubId());
+        mEuiccManager = getSystemService(EuiccManager.class);
 
         mImsManager = new ImsManager(mPhone.getContext());
         try {
@@ -567,6 +609,7 @@
         mNrFrequency = (TextView) findViewById(R.id.nr_frequency);
         mPhyChanConfig = (TextView) findViewById(R.id.phy_chan_config);
         mNetworkSlicingConfig = (TextView) findViewById(R.id.network_slicing_config);
+        mEuiccInfo = (TextView) findViewById(R.id.euicc_info);
 
         // hide 5G stats on devices that don't support 5G
         if ((mTelephonyManager.getSupportedRadioAccessFamily()
@@ -581,6 +624,29 @@
                 .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
         mPreferredNetworkType.setAdapter(mPreferredNetworkTypeAdapter);
 
+        mMockSignalStrength = (Spinner) findViewById(R.id.signalStrength);
+        if (!TelephonyUtils.IS_DEBUGGABLE) {
+            mMockSignalStrength.setVisibility(View.GONE);
+        } else {
+            ArrayAdapter<Integer> mSignalStrengthAdapter = new ArrayAdapter<>(this,
+                    android.R.layout.simple_spinner_item, SIGNAL_STRENGTH_LEVEL);
+            mSignalStrengthAdapter
+                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+            mMockSignalStrength.setAdapter(mSignalStrengthAdapter);
+        }
+
+        mMockDataNetworkType = (Spinner) findViewById(R.id.dataNetworkType);
+        if (!TelephonyUtils.IS_DEBUGGABLE) {
+            mMockDataNetworkType.setVisibility(View.GONE);
+        } else {
+            ArrayAdapter<String> mNetworkTypeAdapter = new ArrayAdapter<>(this,
+                    android.R.layout.simple_spinner_item, Arrays.stream(MOCK_DATA_NETWORK_TYPE)
+                    .map(ServiceState::rilRadioTechnologyToString).toArray(String[]::new));
+            mNetworkTypeAdapter
+                    .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+            mMockDataNetworkType.setAdapter(mNetworkTypeAdapter);
+        }
+
         mSelectPhoneIndex = (Spinner) findViewById(R.id.phoneIndex);
         ArrayAdapter<String> phoneIndexAdapter = new ArrayAdapter<String>(this,
                 android.R.layout.simple_spinner_item, sPhoneIndexLabels);
@@ -724,6 +790,7 @@
         updateDnsCheckState();
         updateNetworkType();
         updateNrStats();
+        updateEuiccInfo();
 
         updateCellInfo(mCellInfoResult);
         updateSubscriptionIds();
@@ -749,6 +816,14 @@
                     RadioAccessFamily.getNetworkTypeFromRaf(networkType)));
         }).start();
 
+        // mock signal strength
+        mMockSignalStrength.setSelection(mSelectedSignalStrengthIndex[mPhone.getPhoneId()]);
+        mMockSignalStrength.setOnItemSelectedListener(mOnMockSignalStrengthSelectedListener);
+
+        // mock data network type
+        mMockDataNetworkType.setSelection(mSelectedMockDataNetworkTypeIndex[mPhone.getPhoneId()]);
+        mMockDataNetworkType.setOnItemSelectedListener(mOnMockDataNetworkTypeSelectedListener);
+
         // set phone index
         mSelectPhoneIndex.setSelection(mSelectedPhoneIndex, true);
         mSelectPhoneIndex.setOnItemSelectedListener(mSelectPhoneIndexHandler);
@@ -877,11 +952,20 @@
     }
 
     private void clearOverride() {
-        if (mSimulateOutOfServiceSwitch.isChecked()) {
-            mSimulateOosOnChangeListener.onCheckedChanged(mSimulateOutOfServiceSwitch, false);
-        }
-        if (mMockSatellite.isChecked()) {
-            mMockSatelliteListener.onCheckedChanged(mMockSatellite, false);
+        for (int phoneId = 0; phoneId < sPhoneIndexLabels.length; phoneId++) {
+            mPhone = PhoneFactory.getPhone(phoneId);
+            if (mSimulateOos[mPhone.getPhoneId()])  {
+                mSimulateOosOnChangeListener.onCheckedChanged(mSimulateOutOfServiceSwitch, false);
+            }
+            if (mCarrierSatelliteOriginalBundle[mPhone.getPhoneId()] != null) {
+                mMockSatelliteListener.onCheckedChanged(mMockSatellite, false);
+            }
+            if (mSelectedSignalStrengthIndex[mPhone.getPhoneId()] > 0) {
+                mOnMockSignalStrengthSelectedListener.onItemSelected(null, null, 0/*pos*/, 0);
+            }
+            if (mSelectedMockDataNetworkTypeIndex[mPhone.getPhoneId()] > 0) {
+                mOnMockDataNetworkTypeSelectedListener.onItemSelected(null, null, 0/*pos*/, 0);
+            }
         }
     }
 
@@ -1368,6 +1452,34 @@
         mReceived.setText(rxPackets + " " + packets + ", " + rxBytes + " " + bytes);
     }
 
+    private void updateEuiccInfo() {
+        final Runnable setEuiccInfo = new Runnable() {
+            public void run() {
+                mEuiccInfo.setText(mEuiccInfoResult);
+            }
+        };
+
+        mQueuedWork.execute(new Runnable() {
+            @Override
+            public void run() {
+                if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY_EUICC)) {
+                    mEuiccInfoResult = "Euicc Feature is disabled";
+                } else if (mEuiccManager == null || !mEuiccManager.isEnabled()) {
+                    mEuiccInfoResult = "EuiccManager is not enabled";
+                } else {
+                    try {
+                        mEuiccInfoResult = " { Available memory in bytes:"
+                                + mEuiccManager.getAvailableMemoryInBytes()
+                                + " }";
+                    } catch (Exception e) {
+                        mEuiccInfoResult = e.getMessage();
+                    }
+                }
+                mHandler.post(setEuiccInfo);
+            }
+        });
+    }
+
     /**
      *  Ping a host name
      */
@@ -2030,6 +2142,43 @@
         }
     };
 
+    AdapterView.OnItemSelectedListener mOnMockSignalStrengthSelectedListener =
+            new AdapterView.OnItemSelectedListener() {
+
+                public void onItemSelected(AdapterView<?> parent, View v, int pos, long id) {
+                    log("mOnSignalStrengthSelectedListener: " + pos);
+                    mSelectedSignalStrengthIndex[mPhone.getPhoneId()] = pos;
+                    mPhone.getTelephonyTester().setSignalStrength(SIGNAL_STRENGTH_LEVEL[pos]);
+                }
+
+                public void onNothingSelected(AdapterView<?> parent) {}
+            };
+
+
+    AdapterView.OnItemSelectedListener mOnMockDataNetworkTypeSelectedListener =
+            new AdapterView.OnItemSelectedListener() {
+
+                public void onItemSelected(AdapterView<?> parent, View v, int pos, long id) {
+                    log("mOnMockDataNetworkTypeSelectedListener: " + pos);
+                    mSelectedMockDataNetworkTypeIndex[mPhone.getPhoneId()] = pos;
+                    Intent intent = new Intent("com.android.internal.telephony.TestServiceState");
+                    if (pos > 0) {
+                        log("mOnMockDataNetworkTypeSelectedListener: Override RAT: "
+                                + ServiceState.rilRadioTechnologyToString(
+                                        MOCK_DATA_NETWORK_TYPE[pos]));
+                        intent.putExtra("data_reg_state", ServiceState.STATE_IN_SERVICE);
+                        intent.putExtra("data_rat", MOCK_DATA_NETWORK_TYPE[pos]);
+                    } else {
+                        log("mOnMockDataNetworkTypeSelectedListener: Remove RAT override.");
+                        intent.putExtra("action", "reset");
+                    }
+
+                    mPhone.getTelephonyTester().setServiceStateTestIntent(intent);
+                }
+
+                public void onNothingSelected(AdapterView<?> parent) {}
+            };
+
     AdapterView.OnItemSelectedListener mSelectPhoneIndexHandler =
             new AdapterView.OnItemSelectedListener() {
 
diff --git a/src/com/android/phone/utils/CarrierAllowListInfo.java b/src/com/android/phone/utils/CarrierAllowListInfo.java
index 8e22cb9..3ab9733 100644
--- a/src/com/android/phone/utils/CarrierAllowListInfo.java
+++ b/src/com/android/phone/utils/CarrierAllowListInfo.java
@@ -23,7 +23,6 @@
 import android.content.pm.Signature;
 import android.telephony.Rlog;
 import android.text.TextUtils;
-import android.util.Log;
 
 import com.android.internal.telephony.uicc.IccUtils;
 
@@ -37,6 +36,7 @@
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
@@ -45,9 +45,9 @@
     private static final String LOG_TAG = "CarrierAllowListInfo";
     private JSONObject mDataJSON;
     private static final String JSON_CHARSET = "UTF-8";
-    private static final String MESSAGE_DIGEST_ALGORITHM = "SHA1";
-    private static final String CALLER_SHA_1_ID = "callerSHA1Id";
-    private static final String CALLER_CARRIER_ID = "carrierId";
+    private static final String MESSAGE_DIGEST_256_ALGORITHM = "SHA-256";
+    private static final String CALLER_SHA256_ID = "callerSHA256Ids";
+    private static final String CALLER_CARRIER_ID = "carrierIds";
     public static final int INVALID_CARRIER_ID = -1;
 
     private static final String CARRIER_RESTRICTION_OPERATOR_REGISTERED_FILE =
@@ -68,11 +68,12 @@
         return mInstance;
     }
 
-    public int validateCallerAndGetCarrierId(String packageName) {
+    public Set<Integer> validateCallerAndGetCarrierIds(String packageName) {
         CarrierInfo carrierInfo = parseJsonForCallerInfo(packageName);
         boolean isValid = (carrierInfo != null) && validateCallerSignature(mContext, packageName,
                 carrierInfo.getSHAIdList());
-        return (isValid) ? carrierInfo.getCallerCarrierId() : INVALID_CARRIER_ID;
+        return (isValid) ? carrierInfo.getCallerCarrierIdList() : Collections.singleton(
+                INVALID_CARRIER_ID);
     }
 
     private void loadJsonFile(Context context) {
@@ -94,13 +95,19 @@
         try {
             if (mDataJSON != null && callerPackage != null) {
                 JSONObject callerJSON = mDataJSON.getJSONObject(callerPackage.trim());
-                JSONArray callerJSONArray = callerJSON.getJSONArray(CALLER_SHA_1_ID);
-                int carrierId = callerJSON.getInt(CALLER_CARRIER_ID);
+                JSONArray callerJSONArray = callerJSON.getJSONArray(CALLER_SHA256_ID);
+                JSONArray carrierIdArray = callerJSON.getJSONArray(CALLER_CARRIER_ID);
+
+                Set<Integer> carrierIds = new HashSet<>();
+                for (int index = 0; index < carrierIdArray.length(); index++) {
+                    carrierIds.add(carrierIdArray.getInt(index));
+                }
+
                 List<String> appSignatures = new ArrayList<>();
                 for (int index = 0; index < callerJSONArray.length(); index++) {
                     appSignatures.add((String) callerJSONArray.get(index));
                 }
-                return new CarrierInfo(carrierId, appSignatures);
+                return new CarrierInfo(carrierIds, appSignatures);
             }
         } catch (JSONException ex) {
             Rlog.e(LOG_TAG, "getCallerSignatureInfo: JSONException = " + ex);
@@ -134,7 +141,7 @@
 
     /**
      * API fetches all the related signatures of the given package from the packageManager
-     * and validate all the signatures.
+     * and validate all the signatures using SHA-256.
      *
      * @param context             context
      * @param packageName         package name of the caller to validate the signatures.
@@ -150,13 +157,13 @@
         }
         final PackageManager packageManager = context.getPackageManager();
         try {
-            MessageDigest sha1MDigest = MessageDigest.getInstance(MESSAGE_DIGEST_ALGORITHM);
+            MessageDigest sha256MDigest = MessageDigest.getInstance(MESSAGE_DIGEST_256_ALGORITHM);
             final PackageInfo packageInfo = packageManager.getPackageInfo(packageName,
                     PackageManager.GET_SIGNATURES);
             for (Signature signature : packageInfo.signatures) {
-                final byte[] signatureSha1 = sha1MDigest.digest(signature.toByteArray());
-                final String hexSignatureSha1 = IccUtils.bytesToHexString(signatureSha1);
-                if (!allowListSignatures.contains(hexSignatureSha1)) {
+                final byte[] signatureSha256 = sha256MDigest.digest(signature.toByteArray());
+                final String hexSignatureSha256 = IccUtils.bytesToHexString(signatureSha256);
+                if (!allowListSignatures.contains(hexSignatureSha256)) {
                     return false;
                 }
             }
@@ -183,16 +190,16 @@
     }
 
     private static class CarrierInfo {
-        final private int mCallerCarrierId;
+        final private Set<Integer> mCallerCarrierIdList;
         final private List<String> mSHAIdList;
 
-        public CarrierInfo(int carrierId, List<String> SHAIds) {
-            mCallerCarrierId = carrierId;
+        public CarrierInfo(Set<Integer> carrierIds, List<String> SHAIds) {
+            mCallerCarrierIdList = carrierIds;
             mSHAIdList = SHAIds;
         }
 
-        public int getCallerCarrierId() {
-            return mCallerCarrierId;
+        public Set<Integer> getCallerCarrierIdList() {
+            return mCallerCarrierIdList;
         }
 
         public List<String> getSHAIdList() {
@@ -203,10 +210,10 @@
     @TestApi
     public List<String> getShaIdList(String srcPkg, int carrierId) {
         CarrierInfo carrierInfo = parseJsonForCallerInfo(srcPkg);
-        if (carrierInfo != null && carrierInfo.getCallerCarrierId() == carrierId) {
+        if (carrierInfo != null && carrierInfo.getCallerCarrierIdList().contains(carrierId)) {
             return carrierInfo.getSHAIdList();
         }
-        Rlog.e(LOG_TAG, "getShaIdList carrierId or shaIdList is empty");
+        Rlog.e(LOG_TAG, "getShaIdList: carrierId or shaIdList is empty");
         return Collections.EMPTY_LIST;
     }
 }
diff --git a/src/com/android/services/telephony/DisconnectCauseUtil.java b/src/com/android/services/telephony/DisconnectCauseUtil.java
index 55d4a49..48786dc 100644
--- a/src/com/android/services/telephony/DisconnectCauseUtil.java
+++ b/src/com/android/services/telephony/DisconnectCauseUtil.java
@@ -23,12 +23,15 @@
 import android.telecom.DisconnectCause;
 import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
 import android.telephony.ims.ImsReasonInfo;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.CallFailCause;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneFactory;
+import com.android.internal.telephony.flags.FeatureFlags;
+import com.android.internal.telephony.flags.FeatureFlagsImpl;
 import com.android.internal.telephony.satellite.SatelliteController;
 import com.android.phone.ImsUtil;
 import com.android.phone.PhoneGlobals;
@@ -87,7 +90,7 @@
     public static DisconnectCause toTelecomDisconnectCause(int telephonyDisconnectCause,
             String reason, int phoneId) {
         return toTelecomDisconnectCause(telephonyDisconnectCause, CallFailCause.NOT_VALID,
-                reason, phoneId, null, new FlagsAdapterImpl());
+                reason, phoneId, null, new FlagsAdapterImpl(), false);
     }
 
    /**
@@ -104,7 +107,27 @@
             int telephonyDisconnectCause, int telephonyPreciseDisconnectCause, String reason,
             int phoneId, ImsReasonInfo imsReasonInfo, FlagsAdapter featureFlags) {
         return toTelecomDisconnectCause(telephonyDisconnectCause, telephonyPreciseDisconnectCause,
-                reason, phoneId, imsReasonInfo, getCarrierConfigBundle(phoneId), featureFlags);
+                reason, phoneId, imsReasonInfo, getCarrierConfigBundle(phoneId), featureFlags,
+                false);
+    }
+
+   /**
+    * Converts from a disconnect code in {@link android.telephony.DisconnectCause} into a more
+    * generic {@link android.telecom.DisconnectCause}.object, possibly populated with a localized
+    * message and tone for Slot.
+    * @param telephonyDisconnectCause The code for the reason for the disconnect.
+    * @param telephonyPreciseDisconnectCause The code for the precise reason for the disconnect.
+    * @param reason Description of the reason for the disconnect, not intended for the user to see.
+    * @param phoneId To support localized message based on phoneId
+    * @param imsReasonInfo
+    */
+    public static DisconnectCause toTelecomDisconnectCause(
+            int telephonyDisconnectCause, int telephonyPreciseDisconnectCause, String reason,
+            int phoneId, ImsReasonInfo imsReasonInfo, FlagsAdapter featureFlags,
+            boolean shouldTreatAsEmergency) {
+        return toTelecomDisconnectCause(telephonyDisconnectCause, telephonyPreciseDisconnectCause,
+                reason, phoneId, imsReasonInfo, getCarrierConfigBundle(phoneId), featureFlags,
+                shouldTreatAsEmergency);
     }
 
     /**
@@ -117,15 +140,15 @@
     static DisconnectCause toTelecomDisconnectCause(
             int telephonyDisconnectCause, int telephonyPreciseDisconnectCause, String reason,
             int phoneId, ImsReasonInfo imsReasonInfo, PersistableBundle carrierConfig,
-            FlagsAdapter featureFlags) {
+            FlagsAdapter featureFlags, boolean shouldTreatAsEmergency) {
         Context context = PhoneGlobals.getInstance();
 
-        return new DisconnectCause.Builder()
-                .setCode(toTelecomDisconnectCauseCode(telephonyDisconnectCause, carrierConfig))
+        return new DisconnectCause.Builder(
+                toTelecomDisconnectCauseCode(telephonyDisconnectCause, carrierConfig))
                 .setLabel(toTelecomDisconnectCauseLabel(context, telephonyDisconnectCause,
                         telephonyPreciseDisconnectCause, carrierConfig, featureFlags))
                 .setDescription(toTelecomDisconnectCauseDescription(
-                        context, telephonyDisconnectCause, phoneId))
+                        context, telephonyDisconnectCause, phoneId, shouldTreatAsEmergency))
                 .setReason(toTelecomDisconnectReason(
                         context, telephonyDisconnectCause, reason, phoneId))
                 .setTone(toTelecomDisconnectCauseTone(
@@ -141,8 +164,8 @@
      * {@link android.telecom.DisconnectCause} disconnect code.
      * @return The disconnect code as defined in {@link android.telecom.DisconnectCause}.
      */
-    private static int toTelecomDisconnectCauseCode(int telephonyDisconnectCause,
-            PersistableBundle carrierConfig) {
+    private static @DisconnectCause.DisconnectCauseCode int toTelecomDisconnectCauseCode(
+            int telephonyDisconnectCause, PersistableBundle carrierConfig) {
 
         // special case: some carriers determine what disconnect causes play the BUSY tone.
         // hence, must adjust the disconnectCause CODE to match the tone.
@@ -634,7 +657,8 @@
      * Returns a description of the disconnect cause to be shown to the user.
      */
     private static CharSequence toTelecomDisconnectCauseDescription(
-            Context context, int telephonyDisconnectCause, int phoneId) {
+            Context context, int telephonyDisconnectCause, int phoneId,
+            boolean shouldTreatAsEmergency) {
         if (context == null ) {
             return "";
         }
@@ -757,14 +781,31 @@
 
             case android.telephony.DisconnectCause.OUT_OF_SERVICE:
                 // No network connection.
+                FeatureFlags mFeatureFlags = new FeatureFlagsImpl();
                 if (ImsUtil.shouldPromoteWfc(context, phoneId)) {
                     resourceId = R.string.incall_error_promote_wfc;
                 } else if (ImsUtil.isWfcModeWifiOnly(context, phoneId)) {
                     resourceId = R.string.incall_error_wfc_only_no_wireless_network;
                 } else if (ImsUtil.isWfcEnabled(context, phoneId)) {
-                    resourceId = R.string.incall_error_out_of_service_wfc;
+                    if (!mFeatureFlags.showCallFailNotificationFor2gToggle()) {
+                        resourceId = R.string.incall_error_out_of_service_wfc;
+                        break;
+                    }
+                    if (is2gDisabled(phoneId) && !shouldTreatAsEmergency) {
+                        resourceId = R.string.incall_error_out_of_service_wfc_2g_user;
+                    } else {
+                        resourceId = R.string.incall_error_out_of_service_wfc;
+                    }
                 } else {
-                    resourceId = R.string.incall_error_out_of_service;
+                    if (!mFeatureFlags.showCallFailNotificationFor2gToggle()) {
+                        resourceId = R.string.incall_error_out_of_service;
+                        break;
+                    }
+                    if (is2gDisabled(phoneId) && !shouldTreatAsEmergency) {
+                        resourceId = R.string.incall_error_out_of_service_2g;
+                    } else {
+                        resourceId = R.string.incall_error_out_of_service;
+                    }
                 }
                 break;
 
@@ -989,6 +1030,21 @@
         return config;
     }
 
+    /**
+     * Returns true if 2G is disabled.
+     */
+    protected static boolean is2gDisabled(int phoneId) {
+        Phone phone = PhoneFactory.getPhone(phoneId);
+        if (phone == null) {
+            return false;
+        }
+        long bitmask2g = TelephonyManager.NETWORK_CLASS_BITMASK_2G;
+        long currentlyAllowedNetworkTypes = phone.getAllowedNetworkTypes(
+                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_ENABLE_2G);
+        boolean is2gEnabled = (currentlyAllowedNetworkTypes & bitmask2g) != 0;
+        return !is2gEnabled;
+    }
+
     private static Integer getSatelliteErrorString() {
         if (SatelliteController.getInstance().isSatelliteEnabled()) {
             return R.string.incall_error_satellite_enabled;
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index 7749a2c..5bfad6b 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -2561,7 +2561,8 @@
                                         preciseDisconnectCause,
                                         mOriginalConnection.getVendorDisconnectCause(),
                                         getPhone().getPhoneId(), imsReasonInfo,
-                                        new FlagsAdapterImpl()));
+                                        new FlagsAdapterImpl(),
+                                        shouldTreatAsEmergencyCall()));
                         close();
                     }
                     break;
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index cf3b354..4450dae 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -33,6 +33,7 @@
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.net.Uri;
 import android.os.Bundle;
@@ -153,10 +154,6 @@
     private static final String DISCONNECT_REASON_CARRIER_ROAMING_SATELLITE_MODE =
             "CARRIER_ROAMING_SATELLITE_MODE";
 
-    private static final String KEY_TURN_OFF_OEM_ENABLED_SATELLITE_DURING_EMERGENCY_CALL =
-            "config_turn_off_oem_enabled_satellite_during_emergency_call";
-
-
     private final TelephonyConnectionServiceProxy mTelephonyConnectionServiceProxy =
             new TelephonyConnectionServiceProxy() {
         @Override
@@ -1871,7 +1868,6 @@
         // different underlying signaling (CDMA), which is already encapsulated in
         // TelephonyConnection.
         connection.onReject();
-        connection.close();
     }
 
     /**
@@ -4662,6 +4658,11 @@
 
     private void handleEmergencyCallStartedForSatelliteSOSMessageRecommender(
             @NonNull TelephonyConnection connection, @NonNull Phone phone) {
+        if (!phone.getContext().getPackageManager().hasSystemFeature(
+                PackageManager.FEATURE_TELEPHONY_SATELLITE)) {
+            return;
+        }
+
         if (mSatelliteSOSMessageRecommender == null) {
             mSatelliteSOSMessageRecommender = new SatelliteSOSMessageRecommender(phone.getContext(),
                     phone.getContext().getMainLooper());
diff --git a/src/com/android/services/telephony/rcs/TelephonyRcsService.java b/src/com/android/services/telephony/rcs/TelephonyRcsService.java
index f6ba40b..63753c2 100644
--- a/src/com/android/services/telephony/rcs/TelephonyRcsService.java
+++ b/src/com/android/services/telephony/rcs/TelephonyRcsService.java
@@ -33,6 +33,7 @@
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.PhoneConfigurationManager;
+import com.android.internal.telephony.flags.FeatureFlags;
 import com.android.internal.telephony.metrics.RcsStats;
 import com.android.internal.util.IndentingPrintWriter;
 import com.android.phone.ImsStateCallbackController;
@@ -63,7 +64,8 @@
         /**
          * @return an instance of {@link UceControllerManager} associated with the slot specified.
          */
-        UceControllerManager createUceControllerManager(Context context, int slotId, int subId);
+        UceControllerManager createUceControllerManager(Context context, int slotId, int subId,
+                FeatureFlags featureFlags);
 
         /**
          * @return an instance of {@link SipTransportController} for the slot and subscription
@@ -80,8 +82,8 @@
 
         @Override
         public UceControllerManager createUceControllerManager(Context context, int slotId,
-                int subId) {
-            return new UceControllerManager(context, slotId, subId);
+                int subId, FeatureFlags featureFlags) {
+            return new UceControllerManager(context, slotId, subId, featureFlags);
         }
 
         @Override
@@ -112,6 +114,7 @@
 
     private final Context mContext;
     private final Object mLock = new Object();
+    private final FeatureFlags mFeatureFlags;
     private int mNumSlots;
 
     // Maps slot ID -> RcsFeatureController.
@@ -160,23 +163,26 @@
         return true;
     });
 
-    public TelephonyRcsService(Context context, int numSlots) {
+    public TelephonyRcsService(Context context, int numSlots, FeatureFlags featureFlags) {
         mContext = context;
         mNumSlots = numSlots;
         mFeatureControllers = new SparseArray<>(numSlots);
         mSlotToAssociatedSubIds = new SparseArray<>(numSlots);
         mRcsUceEnabled = sResourceProxy.getDeviceUceEnabled(mContext);
+        mFeatureFlags = featureFlags;
         RcsStats.getInstance().registerUceCallback();
     }
 
     @VisibleForTesting
-    public TelephonyRcsService(Context context, int numSlots, ResourceProxy resourceProxy) {
+    public TelephonyRcsService(Context context, int numSlots, ResourceProxy resourceProxy,
+            FeatureFlags featureFlags) {
         mContext = context;
         mNumSlots = numSlots;
         mFeatureControllers = new SparseArray<>(numSlots);
         mSlotToAssociatedSubIds = new SparseArray<>(numSlots);
         sResourceProxy = resourceProxy;
         mRcsUceEnabled = sResourceProxy.getDeviceUceEnabled(mContext);
+        mFeatureFlags = featureFlags;
         RcsStats.getInstance().registerUceCallback();
     }
 
@@ -310,8 +316,8 @@
     private void updateSupportedFeatures(RcsFeatureController c, int slotId, int subId) {
         if (isDeviceUceEnabled() && doesSubscriptionSupportPresence(subId)) {
             if (c.getFeature(UceControllerManager.class) == null) {
-                c.addFeature(mFeatureFactory.createUceControllerManager(mContext, slotId, subId),
-                        UceControllerManager.class);
+                c.addFeature(mFeatureFactory.createUceControllerManager(
+                        mContext, slotId, subId, mFeatureFlags), UceControllerManager.class);
             }
         } else {
             if (c.getFeature(UceControllerManager.class) != null) {
diff --git a/src/com/android/services/telephony/rcs/UceControllerManager.java b/src/com/android/services/telephony/rcs/UceControllerManager.java
index 02ae048..b7e12a3 100644
--- a/src/com/android/services/telephony/rcs/UceControllerManager.java
+++ b/src/com/android/services/telephony/rcs/UceControllerManager.java
@@ -32,6 +32,7 @@
 import com.android.ims.RcsFeatureManager;
 import com.android.ims.rcs.uce.UceController;
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.flags.FeatureFlags;
 
 import java.io.PrintWriter;
 import java.util.List;
@@ -53,15 +54,17 @@
     private final int mSlotId;
     private final Context mContext;
     private final ExecutorService mExecutorService;
+    private final FeatureFlags mFeatureFlags;
 
     private volatile @Nullable UceController mUceController;
     private volatile @Nullable RcsFeatureManager mRcsFeatureManager;
 
-    public UceControllerManager(Context context, int slotId, int subId) {
+    public UceControllerManager(Context context, int slotId, int subId, FeatureFlags featureFlags) {
         Log.d(LOG_TAG, "create: slotId=" + slotId + ", subId=" + subId);
         mSlotId = slotId;
         mContext = context;
         mExecutorService = Executors.newSingleThreadExecutor();
+        mFeatureFlags = featureFlags;
         initUceController(subId);
     }
 
@@ -70,11 +73,12 @@
      */
     @VisibleForTesting
     public UceControllerManager(Context context, int slotId, ExecutorService executor,
-            UceController uceController) {
+            UceController uceController, FeatureFlags featureFlags) {
         mSlotId = slotId;
         mContext = context;
         mExecutorService = executor;
         mUceController = uceController;
+        mFeatureFlags = featureFlags;
     }
 
     @Override
@@ -440,7 +444,7 @@
         if (mUceController == null) {
             // Create new UceController only when the subscription ID is valid.
             if (SubscriptionManager.isValidSubscriptionId(newSubId)) {
-                mUceController = new UceController(mContext, newSubId);
+                mUceController = new UceController(mContext, newSubId, mFeatureFlags);
             }
         } else if (mUceController.getSubId() != newSubId) {
             // The subscription ID is updated. Remove the old UceController instance.
@@ -448,7 +452,7 @@
             mUceController = null;
             // Create new UceController only when the subscription ID is valid.
             if (SubscriptionManager.isValidSubscriptionId(newSubId)) {
-                mUceController = new UceController(mContext, newSubId);
+                mUceController = new UceController(mContext, newSubId, mFeatureFlags);
             }
         }
     }
diff --git a/testapps/TestRcsApp/TestApp/Android.bp b/testapps/TestRcsApp/TestApp/Android.bp
index ea62925..7654973 100644
--- a/testapps/TestRcsApp/TestApp/Android.bp
+++ b/testapps/TestRcsApp/TestApp/Android.bp
@@ -24,7 +24,7 @@
     product_specific: true,
 
     sdk_version: "system_current",
-    min_sdk_version: "30",
+    min_sdk_version: "31",
     required: ["privapp-permissions-com.google.android.sample.rcsclient.xml"],
     lint: {
         baseline_filename: "lint-baseline.xml",
diff --git a/testapps/TestRcsApp/aosp_test_rcsclient/Android.bp b/testapps/TestRcsApp/aosp_test_rcsclient/Android.bp
index e1de685..fc4dc8b 100644
--- a/testapps/TestRcsApp/aosp_test_rcsclient/Android.bp
+++ b/testapps/TestRcsApp/aosp_test_rcsclient/Android.bp
@@ -25,7 +25,7 @@
     ],
 
     sdk_version: "system_current",
-    min_sdk_version: "30",
+    min_sdk_version: "31",
     lint: {
         baseline_filename: "lint-baseline.xml",
     },
diff --git a/testapps/TestSatelliteApp/AndroidManifest.xml b/testapps/TestSatelliteApp/AndroidManifest.xml
index fb30bf3..eaddf95 100644
--- a/testapps/TestSatelliteApp/AndroidManifest.xml
+++ b/testapps/TestSatelliteApp/AndroidManifest.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2023 The Android Open Source Project
+  ~ Copyright (C) 2024 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -46,6 +46,7 @@
         <activity android:name=".Provisioning" />
         <activity android:name=".MultipleSendReceive" />
         <activity android:name=".SendReceive" />
+        <activity android:name=".NbIotSatellite" />
         <activity android:name=".TestSatelliteWrapper" />
     </application>
 </manifest>
diff --git a/testapps/TestSatelliteApp/res/layout/activity_NbIotSatellite.xml b/testapps/TestSatelliteApp/res/layout/activity_NbIotSatellite.xml
new file mode 100644
index 0000000..c33522e
--- /dev/null
+++ b/testapps/TestSatelliteApp/res/layout/activity_NbIotSatellite.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2024 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:gravity="center"
+    android:paddingStart="4dp"
+    android:paddingEnd="4dp">
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="0dp"
+        android:layout_weight="0"
+        android:textColor="@android:color/holo_blue_dark"
+        android:textSize="20sp"
+        android:text="@string/NbIotSatellite"/>
+    <Button
+        android:id="@+id/testRegisterForSupportedStateChanged"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="4dp"
+        android:paddingEnd="4dp"
+        android:text="@string/testRegisterForSupportedStateChanged"/>
+    <Button
+        android:id="@+id/testUnregisterForSupportedStateChanged"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="4dp"
+        android:paddingEnd="4dp"
+        android:text="@string/testUnregisterForSupportedStateChanged"/>
+    <Button
+        android:id="@+id/testRequestIsSupported"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="4dp"
+        android:paddingEnd="4dp"
+        android:text="@string/testRequestIsSupported"/>
+     <Button
+        android:id="@+id/reportSatelliteSupportedFromModem"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="4dp"
+        android:paddingEnd="4dp"
+        android:text="@string/reportSatelliteSupportedFromModem"/>
+    <Button
+        android:id="@+id/reportSatelliteNotSupportedFromModem"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="4dp"
+        android:paddingEnd="4dp"
+        android:text="@string/reportSatelliteNotSupportedFromModem"/>
+    <Button
+        android:id="@+id/showCurrentSatelliteSupportedStated"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="4dp"
+        android:paddingEnd="4dp"
+        android:text="@string/showCurrentSatelliteSupportedStated"/>
+    <Button
+        android:id="@+id/Back"
+        android:onClick="Back"
+        android:textColor="@android:color/holo_blue_dark"
+        android:layout_marginTop="100dp"
+        android:layout_gravity="center"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingStart="4dp"
+        android:paddingEnd="4dp"
+        android:text="@string/Back"/>
+    <TextView
+        android:id="@+id/text_id"
+        android:layout_width="300dp"
+        android:layout_height="200dp"
+        android:textColor="@android:color/holo_blue_light"
+        android:textSize="15sp" />
+</LinearLayout>
diff --git a/testapps/TestSatelliteApp/res/layout/activity_SatelliteTestApp.xml b/testapps/TestSatelliteApp/res/layout/activity_SatelliteTestApp.xml
index 0753b82..5ba7946 100644
--- a/testapps/TestSatelliteApp/res/layout/activity_SatelliteTestApp.xml
+++ b/testapps/TestSatelliteApp/res/layout/activity_SatelliteTestApp.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2023 The Android Open Source Project
+  ~ Copyright (C) 2024 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -65,9 +65,17 @@
              android:paddingRight="4dp"
              android:text="@string/SendReceive"/>
         <Button
+            android:id="@+id/NbIotSatellite"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingStart="4dp"
+            android:paddingEnd="4dp"
+            android:text="@string/NbIotSatellite"/>
+        <Button
             android:id="@+id/TestSatelliteWrapper"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:paddingStart="4dp"
             android:paddingEnd="4dp"
             android:text="@string/TestSatelliteWrapper"/>
     </LinearLayout>
diff --git a/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml b/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml
index 8ddfee1..df2aaf7 100644
--- a/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml
+++ b/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2023 The Android Open Source Project
+  ~ Copyright (C) 2024 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
     <string name="Provisioning">Provisioning APIs</string>
     <string name="MultipleSendReceive">Test multiple poll and send</string>
     <string name="SendReceive">Send and Receive datagrams</string>
+    <string name="NbIotSatellite">NB IoT Satellite modem interface test</string>
 
     <string name="enableSatellite">enableSatellite</string>
     <string name="disableSatellite">disableSatellite</string>
@@ -83,6 +84,13 @@
     <string name="isSatelliteEnabledForCarrier">isSatelliteEnabledForCarrier</string>
     <string name="isRequestIsSatelliteEnabledForCarrier">isRequestIsSatelliteEnabledForCarrier</string>
 
+    <string name="testRegisterForSupportedStateChanged">testRegisterForSupportedStateChanged</string>
+    <string name="testUnregisterForSupportedStateChanged">testUnregisterForSupportedStateChanged</string>
+    <string name="testRequestIsSupported">testRequestIsSupported</string>
+    <string name="reportSatelliteSupportedFromModem">reportSatelliteSupportedFromModem</string>
+    <string name="reportSatelliteNotSupportedFromModem">reportSatelliteNotSupportedFromModem</string>
+    <string name="showCurrentSatelliteSupportedStated">showCurrentSatelliteSupportedStated</string>
+
     <string name="Back">Back</string>
     <string name="ClearLog">Clear Log</string>
 </resources>
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/NbIotSatellite.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/NbIotSatellite.java
new file mode 100644
index 0000000..17646f0
--- /dev/null
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/NbIotSatellite.java
@@ -0,0 +1,194 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone.testapps.satellitetestapp;
+
+import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_SUCCESS;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.os.OutcomeReceiver;
+import android.telephony.satellite.SatelliteManager;
+import android.telephony.satellite.SatelliteSupportedStateCallback;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.TextView;
+
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ * Activity related to NB IoT satellite APIs.
+ */
+public class NbIotSatellite extends Activity {
+
+    private static final String TAG = "NbIotSatellite";
+    private static final String MY_SHARED_PREF = "MySharedPref";
+    private static final String SHARED_PREF_KEY = "supported_stated";
+    TextView mTextView;
+    private boolean mSatelliteSupported = false;
+    public static TestSatelliteService sSatelliteService;
+    private SatelliteManager mSatelliteManager;
+    private TestSatelliteSupportedStateCallback mSatelliteSupportedStateCallback;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        sSatelliteService = SatelliteTestApp.getTestSatelliteService();
+        mSatelliteManager = getSystemService(SatelliteManager.class);
+
+        setContentView(R.layout.activity_NbIotSatellite);
+        findViewById(R.id.testRegisterForSupportedStateChanged)
+                .setOnClickListener(this::testRegisterForSupportedStateChanged);
+        findViewById(R.id.testUnregisterForSupportedStateChanged)
+                .setOnClickListener(this::testUnregisterForSupportedStateChanged);
+        findViewById(R.id.testRequestIsSupported)
+                .setOnClickListener(this::testRequestIsSupported);
+        findViewById(R.id.reportSatelliteSupportedFromModem)
+                .setOnClickListener(this::reportSatelliteSupportedFromModem);
+        findViewById(R.id.reportSatelliteNotSupportedFromModem)
+                .setOnClickListener(this::reportSatelliteNotSupportedFromModem);
+        findViewById(R.id.showCurrentSatelliteSupportedStated)
+                .setOnClickListener(this::showCurrentSatelliteSupportedStated);
+        findViewById(R.id.Back).setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                startActivity(new Intent(NbIotSatellite.this, SatelliteTestApp.class));
+            }
+        });
+
+        mTextView = findViewById(R.id.text_id);
+    }
+
+    protected class TestSatelliteSupportedStateCallback implements SatelliteSupportedStateCallback {
+        @Override
+        public void onSatelliteSupportedStateChanged(boolean supported) {
+            mSatelliteSupported = supported;
+            updateLogMessage("onSatelliteSupportedStateChanged: "
+                    + (mSatelliteSupported ? "Satellite is supported"
+                    : "Satellite is not supported"));
+            Log.d(TAG, "onSatelliteSupportedStateChanged(): supported="
+                    + mSatelliteSupported);
+        }
+    }
+
+    @SuppressLint("MissingPermission")
+    private void testRegisterForSupportedStateChanged(View view) {
+        if (mSatelliteSupportedStateCallback == null) {
+            mSatelliteSupportedStateCallback = new TestSatelliteSupportedStateCallback();
+        }
+        int result = mSatelliteManager.registerForSupportedStateChanged(Runnable::run,
+                mSatelliteSupportedStateCallback);
+
+        if (result == SATELLITE_RESULT_SUCCESS) {
+            updateLogMessage("testRegisterForSupportedStateChanged(): "
+                    + "registered mSatelliteSupportedStateCallback");
+        } else {
+            updateLogMessage("Failed to registerForSupportedStateChanged(), reason=" + result);
+        }
+    }
+
+    @SuppressLint("MissingPermission")
+    private void testUnregisterForSupportedStateChanged(View view) {
+        if (mSatelliteSupportedStateCallback != null) {
+            mSatelliteManager.unregisterForSupportedStateChanged(mSatelliteSupportedStateCallback);
+            mSatelliteSupportedStateCallback = null;
+            updateLogMessage("testUnregisterForSupportedStateChanged(): unregister callback.");
+        } else {
+            updateLogMessage("testUnregisterForSupportedStateChanged(): ignored, "
+                    + "mSatelliteSupportedStateCallback is already null");
+        }
+    }
+
+    private void testRequestIsSupported(View view) {
+        final AtomicReference<Boolean> enabled = new AtomicReference<>();
+        final AtomicReference<Integer> errorCode = new AtomicReference<>();
+        OutcomeReceiver<Boolean, SatelliteManager.SatelliteException> mReceiver =
+                new OutcomeReceiver<>() {
+                        @Override
+                        public void onResult(Boolean result) {
+                            enabled.set(result);
+                            updateLogMessage("Status for requestIsSupported result: "
+                                    + enabled.get());
+                        }
+
+                        @Override
+                        public void onError(SatelliteManager.SatelliteException exception) {
+                            errorCode.set(exception.getErrorCode());
+                            updateLogMessage("Status for requestIsSupported error : "
+                                    + SatelliteErrorUtils.mapError(errorCode.get()));
+                        }
+                    };
+        mSatelliteManager.requestIsSupported(Runnable::run, mReceiver);
+    }
+
+    private void showCurrentSatelliteSupportedStated(View view) {
+        boolean mModemSupportedState = sSatelliteService.getSatelliteSupportedState();
+        updateLogMessage("reported supported state is " + mSatelliteSupported
+                        + ", modem supported state is " + mModemSupportedState);
+    }
+
+    private void reportSatelliteSupportedFromModem(View view) {
+        sSatelliteService.updateSatelliteSupportedState(true);
+    }
+
+    private void reportSatelliteNotSupportedFromModem(View view) {
+        sSatelliteService.updateSatelliteSupportedState(false);
+    }
+
+    // Fetch the stored data in onResume()
+    // Because this is what will be called when the app opens again
+    @Override
+    protected void onResume() {
+        super.onResume();
+        // Fetching the stored data from the SharedPreference
+        SharedPreferences sh = getSharedPreferences("MySharedPref", MODE_PRIVATE);
+        boolean isProvisioned = sh.getBoolean("provision_state", mSatelliteSupported);
+
+        // Setting the fetched data
+        mSatelliteSupported = isProvisioned;
+    }
+
+    // Store the data in the SharedPreference in the onPause() method
+    // When the user closes the application onPause() will be called and data will be stored
+    @Override
+    protected void onPause() {
+        super.onPause();
+        // Creating a shared pref object with a file name "MySharedPref" in private mode
+        SharedPreferences sharedPreferences = getSharedPreferences(MY_SHARED_PREF, MODE_PRIVATE);
+        SharedPreferences.Editor myEdit = sharedPreferences.edit();
+
+        // write all the data entered by the user in SharedPreference and apply
+        myEdit.putBoolean(SHARED_PREF_KEY, mSatelliteSupported);
+        myEdit.apply();
+    }
+
+    private void updateLogMessage(String message) {
+        runOnUiThread(() -> mTextView.setText(message));
+    }
+
+    protected void onDestroy() {
+        super.onDestroy();
+        SharedPreferences sharedPreferences = getSharedPreferences(MY_SHARED_PREF, MODE_PRIVATE);
+
+        final SharedPreferences.Editor sharedPrefsEditor = sharedPreferences.edit();
+        sharedPrefsEditor.remove(SHARED_PREF_KEY);
+        sharedPrefsEditor.apply();
+    }
+}
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteTestApp.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteTestApp.java
index c8ee5fa..7c4ae00 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteTestApp.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteTestApp.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2023 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -89,6 +89,13 @@
                 startActivity(intent);
             }
         });
+        findViewById(R.id.NbIotSatellite).setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Intent intent = new Intent(SatelliteTestApp.this, NbIotSatellite.class);
+                startActivity(intent);
+            }
+        });
         findViewById(R.id.TestSatelliteWrapper).setOnClickListener(new OnClickListener() {
             @Override
             public void onClick(View view) {
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 afa20bc..b5b781c 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteService.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteService.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2023 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,6 +36,7 @@
 import android.telephony.satellite.stub.SatelliteModemState;
 import android.telephony.satellite.stub.SatelliteResult;
 import android.telephony.satellite.stub.SatelliteService;
+import android.telephony.satellite.stub.SystemSelectionSpecifier;
 import android.util.Log;
 
 import com.android.internal.util.FunctionalUtils;
@@ -434,6 +435,23 @@
         mIsRequestIsSatelliteEnabledForCarrier = true;
     }
 
+    @Override
+    public void updateSatelliteSubscription(@NonNull String iccId,
+            @NonNull IIntegerConsumer resultCallback) {
+        logd("updateSatelliteSubscription: iccId=" + iccId + " mErrorCode=" + mErrorCode);
+        runWithExecutor(() -> resultCallback.accept(mErrorCode));
+    }
+
+    @Override
+    public void updateSystemSelectionChannels(
+            @NonNull List<SystemSelectionSpecifier> systemSelectionSpecifiers,
+            @NonNull IIntegerConsumer resultCallback) {
+        logd(" updateSystemSelectionChannels: "
+                + "systemSelectionSpecifiers=" + systemSelectionSpecifiers
+                + " mErrorCode=" + mErrorCode);
+        runWithExecutor(() -> resultCallback.accept(mErrorCode));
+    }
+
     public void setLocalSatelliteListener(@NonNull ILocalSatelliteListener listener) {
         logd("setLocalSatelliteListener: listener=" + listener);
         mLocalListener = listener;
@@ -471,6 +489,16 @@
     }
 
     /**
+     * Helper method to report satellite supported from modem side for testing purpose.
+     * @param supported whether satellite is supported from modem or not.
+     */
+    public void sendOnSatelliteSupportedStateChanged(boolean supported) {
+        logd("sendOnSatelliteSupportedStateChanged: supported=" + supported);
+        mRemoteListeners.values().forEach(listener -> runWithExecutor(() ->
+                listener.onSatelliteSupportedStateChanged(supported)));
+    }
+
+    /**
      * Helper method to verify that the satellite modem is properly configured to receive
      * requests.
      *
@@ -574,6 +602,22 @@
     }
 
     /**
+     * Helper methoid to provide a way to set supported state from test application to mock modem.
+     * @param supported whether satellite is supported by modem or not.
+     */
+    public void updateSatelliteSupportedState(boolean  supported) {
+        logd("updateSatelliteSupportedState: supported=" + supported);
+        mIsSupported = supported;
+        mRemoteListeners.values().forEach(listener -> runWithExecutor(
+                () -> listener.onSatelliteSupportedStateChanged(mIsSupported)));
+
+    }
+
+    public boolean getSatelliteSupportedState() {
+        return mIsSupported;
+    }
+
+    /**
      * Log the message to the radio buffer with {@code DEBUG} priority.
      *
      * @param log The message to log.
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteWrapper.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteWrapper.java
index 4f0679d..27967f4 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteWrapper.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteWrapper.java
@@ -248,7 +248,7 @@
                         String message = "Received SatelliteCapabillities : "
                                 + SatelliteCapabilities;
                         logd(message);
-                        runOnUiThread(() -> addLogMessage(message));
+                        addLogMessage(message);
                     };
         }
 
@@ -281,7 +281,7 @@
                 @NonNull NtnSignalStrengthWrapper ntnSignalStrength) {
             String message = "Received NTN SignalStrength : " + ntnSignalStrength.getLevel();
             logd(message);
-            runOnUiThread(() -> addLogMessage(message));
+            addLogMessage(message);
         }
     }
 
@@ -317,7 +317,7 @@
         }
 
         Consumer<Integer> callback = result -> {
-            runOnUiThread(() -> addLogMessage("requestAttachEnabledForCarrier result: " + result));
+            addLogMessage("requestAttachEnabledForCarrier result: " + result);
             logd("requestAttachEnabledForCarrier result: " + result);
         };
 
@@ -342,7 +342,7 @@
         }
 
         Consumer<Integer> callback = result -> {
-            runOnUiThread(() -> addLogMessage("requestAttachEnabledForCarrier result: " + result));
+            addLogMessage("requestAttachEnabledForCarrier result: " + result);
             logd("requestAttachEnabledForCarrier result: " + result);
         };
 
@@ -409,7 +409,7 @@
         int reason = SatelliteManagerWrapper.SATELLITE_COMMUNICATION_RESTRICTION_REASON_USER;
 
         Consumer<Integer> callback = result -> {
-            runOnUiThread(() -> addLogMessage("addAttachRestrictionForCarrier result: " + result));
+            addLogMessage("addAttachRestrictionForCarrier result: " + result);
             logd("addAttachRestrictionForCarrier result: " + result);
         };
 
@@ -436,8 +436,7 @@
         int reason = SatelliteManagerWrapper.SATELLITE_COMMUNICATION_RESTRICTION_REASON_USER;
 
         Consumer<Integer> callback = result -> {
-            runOnUiThread(
-                    () -> addLogMessage("removeAttachRestrictionForCarrier result: " + result));
+            addLogMessage("removeAttachRestrictionForCarrier result: " + result);
             logd("removeAttachRestrictionForCarrier result: " + result);
         };
 
@@ -569,9 +568,11 @@
     }
 
     private void addLogMessage(String message) {
-        mLogMessages.add(message);
-        mAdapter.notifyDataSetChanged();
-        mLogListView.setSelection(mAdapter.getCount() - 1);
+        runOnUiThread(() -> {
+            mLogMessages.add(message);
+            mAdapter.notifyDataSetChanged();
+            mLogListView.setSelection(mAdapter.getCount() - 1);
+        });
     }
 
     private static void logd(String message) {
diff --git a/tests/Android.bp b/tests/Android.bp
index 6914839..0fcd60e 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -50,7 +50,6 @@
         "testables",
         "platform-compat-test-rules",
         "flag-junit",
-        "telephony_flags_core_java_lib",
         "satellite-s2storage-rw",
         "satellite-s2storage-testutils",
         "s2-geometry-library-java",
diff --git a/tests/src/com/android/TestContext.java b/tests/src/com/android/TestContext.java
index 111df53..a96ce2e 100644
--- a/tests/src/com/android/TestContext.java
+++ b/tests/src/com/android/TestContext.java
@@ -19,6 +19,7 @@
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.when;
 
 import android.content.AttributionSource;
 import android.content.BroadcastReceiver;
@@ -61,6 +62,7 @@
     @Mock SubscriptionManager mMockSubscriptionManager;
     @Mock ImsManager mMockImsManager;
     @Mock UserManager mMockUserManager;
+    @Mock PackageManager mPackageManager;
 
     private final SparseArray<PersistableBundle> mCarrierConfigs = new SparseArray<>();
 
@@ -80,6 +82,7 @@
             int subId = (int) invocation.getArguments()[0];
             return getTestConfigs(subId);
         }).when(mMockCarrierConfigManager).getConfigForSubId(anyInt(), anyString());
+        when(mPackageManager.hasSystemFeature(anyString())).thenReturn(true);
     }
 
     @Override
@@ -145,6 +148,11 @@
     }
 
     @Override
+    public PackageManager getPackageManager() {
+        return mPackageManager;
+    }
+
+    @Override
     public ContentResolver getContentResolver() {
         return null;
     }
diff --git a/tests/src/com/android/phone/CarrierConfigLoaderTest.java b/tests/src/com/android/phone/CarrierConfigLoaderTest.java
index f4197d9..bda2313 100644
--- a/tests/src/com/android/phone/CarrierConfigLoaderTest.java
+++ b/tests/src/com/android/phone/CarrierConfigLoaderTest.java
@@ -429,11 +429,16 @@
 
     @Test
     @EnableCompatChanges({TelephonyManager.ENABLE_FEATURE_MAPPING})
-    public void testGetConfigForSubIdWithFeature_withTelephonyFeatureMapping() {
+    public void testGetConfigForSubIdWithFeature_withTelephonyFeatureMapping() throws Exception {
         doNothing().when(mContext).enforcePermission(
                 eq(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE),
                 anyInt(), anyInt(), anyString());
 
+        // Replace field to set SDK version of vendor partition to Android V
+        int vendorApiLevel = Build.VERSION_CODES.VANILLA_ICE_CREAM;
+        replaceInstance(CarrierConfigLoader.class, "mVendorApiLevel", mCarrierConfigLoader,
+                vendorApiLevel);
+
         doReturn(true).when(mFeatureFlags).enforceTelephonyFeatureMappingForPublicApis();
         doReturn(false).when(mPackageManager).hasSystemFeature(
                 eq(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION));
diff --git a/tests/src/com/android/phone/ImsProvisioningControllerTest.java b/tests/src/com/android/phone/ImsProvisioningControllerTest.java
index e12be53..6599f03 100644
--- a/tests/src/com/android/phone/ImsProvisioningControllerTest.java
+++ b/tests/src/com/android/phone/ImsProvisioningControllerTest.java
@@ -77,6 +77,7 @@
 import com.android.ims.ImsConfig;
 import com.android.ims.ImsManager;
 import com.android.ims.RcsFeatureManager;
+import com.android.internal.telephony.flags.FeatureFlags;
 
 import org.junit.After;
 import org.junit.Before;
@@ -169,6 +170,9 @@
     @Mock
     IBinder mIbinder1;
 
+    @Mock
+    FeatureFlags mFeatureFlags;
+
     private SubscriptionManager.OnSubscriptionsChangedListener mSubChangedListener;
 
     private Handler mHandler;
@@ -192,7 +196,7 @@
         TestImsProvisioningController() {
             super(mPhone, 2, mHandlerThread.getLooper(),
                     mMmTelFeatureConnector, mRcsFeatureConnector,
-                    mImsProvisioningLoader);
+                    mImsProvisioningLoader, mFeatureFlags);
         }
 
         protected int getSubId(int slotId) {
@@ -369,8 +373,6 @@
         }
 
         // verify other interactions
-        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
-        verifyNoMoreInteractions(mIFeatureProvisioningCallback1);
         verifyNoMoreInteractions(mImsConfig);
     }
 
@@ -408,8 +410,6 @@
         verify(mImsConfig, times(1)).setConfig(eq(key), anyInt());
 
         // verify other interactions
-        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
-        verifyNoMoreInteractions(mIFeatureProvisioningCallback1);
         verifyNoMoreInteractions(mImsConfig);
     }
 
@@ -926,8 +926,6 @@
         verify(mImsConfig, times(1)).setConfig(
                 eq(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE), eq(PROVISIONING_VALUE_ENABLED));
 
-        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
-        verifyNoMoreInteractions(mIFeatureProvisioningCallback1);
         verifyNoMoreInteractions(mImsConfig);
         verifyNoMoreInteractions(mImsProvisioningLoader);
     }
@@ -1849,6 +1847,184 @@
         verifyNoMoreInteractions(mImsConfig);
     }
 
+    @Test
+    @SmallTest
+    public void initialNotifyMmTelProvisioningStatusWhenCallbackRegistered() throws Exception {
+        when(mFeatureFlags.notifyInitialImsProvisioningStatus()).thenReturn(true);
+
+        createImsProvisioningController();
+
+        // Provisioning required for capability on all network type
+        setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VOICE_INT_ARRAY,
+                RADIO_TECHS);
+        setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VIDEO_INT_ARRAY,
+                RADIO_TECHS);
+        setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_UT_INT_ARRAY,
+                RADIO_TECHS);
+        setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_SMS_INT_ARRAY,
+                RADIO_TECHS);
+        setCarrierConfig(mSubId0,
+                CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_CALL_COMPOSER_INT_ARRAY, RADIO_TECHS);
+
+        // Stored provisioning Status
+        mMmTelProvisioningStorage = new int[][] {
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE, 0},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_CROSS_SIM, 1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_NR, 1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE, 0},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_IWLAN, 0},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_CROSS_SIM, 1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_NR, 1},
+                {CAPABILITY_TYPE_UT, REGISTRATION_TECH_LTE, 0},
+                {CAPABILITY_TYPE_UT, REGISTRATION_TECH_IWLAN, 0},
+                {CAPABILITY_TYPE_UT, REGISTRATION_TECH_CROSS_SIM, 0},
+                {CAPABILITY_TYPE_UT, REGISTRATION_TECH_NR, 0},
+                {CAPABILITY_TYPE_SMS, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_SMS, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_SMS, REGISTRATION_TECH_CROSS_SIM, 1},
+                {CAPABILITY_TYPE_SMS, REGISTRATION_TECH_NR, 1},
+                {CAPABILITY_TYPE_CALL_COMPOSER, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_CALL_COMPOSER, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_CALL_COMPOSER, REGISTRATION_TECH_CROSS_SIM, 0},
+                {CAPABILITY_TYPE_CALL_COMPOSER, REGISTRATION_TECH_NR, 1}
+        };
+
+        try {
+            mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                    mSubId0, mIFeatureProvisioningCallback0);
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+        processAllMessages();
+
+        for (int[] capa: mMmTelProvisioningStorage) {
+            verify(mIFeatureProvisioningCallback0, times(1))
+                    .onFeatureProvisioningChanged(eq(capa[0]), eq(capa[1]), eq(capa[2] == 1));
+        }
+    }
+
+    @Test
+    @SmallTest
+    public void initialNotifyRcsProvisioningStatusWhenCallbackRegistered() throws Exception {
+        when(mFeatureFlags.notifyInitialImsProvisioningStatus()).thenReturn(true);
+
+        createImsProvisioningController();
+
+        // Provisioning required capability : PRESENCE, tech : all
+        setCarrierConfig(mSubId0,
+                CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_PRESENCE_UCE_INT_ARRAY, RADIO_TECHS);
+
+        // Stored provisioning Status
+        mRcsProvisioningStorage = new int[][]{
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_CROSS_SIM, 0},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_NR, 1}
+        };
+
+        try {
+            mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                    mSubId0, mIFeatureProvisioningCallback0);
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+        processAllMessages();
+
+        for (int[] capa: mRcsProvisioningStorage) {
+            verify(mIFeatureProvisioningCallback0, times(1))
+                    .onRcsFeatureProvisioningChanged(eq(capa[0]), eq(capa[1]), eq(capa[2] == 1));
+        }
+    }
+
+    @Test
+    @SmallTest
+    public void initialNotifyMmTelProvisioningStatusWhenImsServiceConnected() throws Exception {
+        when(mFeatureFlags.notifyInitialImsProvisioningStatus()).thenReturn(true);
+
+        createImsProvisioningController();
+
+        // Provisioning required for capability on all network type
+        setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VOICE_INT_ARRAY,
+                RADIO_TECHS);
+        setCarrierConfig(mSubId0, CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_VIDEO_INT_ARRAY,
+                RADIO_TECHS);
+
+        // Stored provisioning Status
+        mMmTelProvisioningStorage = new int[][] {
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN, 1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_CROSS_SIM, 1},
+                {CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_NR, 1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_IWLAN, 0},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_CROSS_SIM, 0},
+                {CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_NR, 1},
+        };
+
+        try {
+            mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                    mSubId0, mIFeatureProvisioningCallback0);
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+        processAllMessages();
+
+        // clear interactions
+        clearInvocations(mIFeatureProvisioningCallback0);
+
+        // ImsService connected
+        mMmTelConnectorListener0.getValue().connectionReady(mImsManager, mSubId0);
+
+        for (int[] capa: mMmTelProvisioningStorage) {
+            verify(mIFeatureProvisioningCallback0, times(1))
+                    .onFeatureProvisioningChanged(eq(capa[0]), eq(capa[1]), eq(capa[2] == 1));
+        }
+
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
+    }
+
+    @Test
+    @SmallTest
+    public void initialNotifyRcsProvisioningStatusWhenRcsServiceConnected() throws Exception {
+        when(mFeatureFlags.notifyInitialImsProvisioningStatus()).thenReturn(true);
+
+        createImsProvisioningController();
+
+        // Provisioning required capability : PRESENCE, tech : all
+        setCarrierConfig(mSubId0,
+                CarrierConfigManager.Ims.KEY_CAPABILITY_TYPE_PRESENCE_UCE_INT_ARRAY, RADIO_TECHS);
+
+        // Stored provisioning Status
+        mRcsProvisioningStorage = new int[][]{
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE, 1},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_IWLAN, 0},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_CROSS_SIM, 0},
+                {CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_NR, 1}
+        };
+
+        try {
+            mTestImsProvisioningController.addFeatureProvisioningChangedCallback(
+                    mSubId0, mIFeatureProvisioningCallback0);
+        } catch (Exception e) {
+            throw new AssertionError("not expected exception", e);
+        }
+        processAllMessages();
+
+        // clear interactions
+        clearInvocations(mIFeatureProvisioningCallback0);
+
+        // ImsService connected
+        mRcsConnectorListener0.getValue().connectionReady(mRcsFeatureManager, mSubId0);
+
+        for (int[] capa: mRcsProvisioningStorage) {
+            verify(mIFeatureProvisioningCallback0, times(1))
+                    .onRcsFeatureProvisioningChanged(eq(capa[0]), eq(capa[1]), eq(capa[2] == 1));
+        }
+
+        verifyNoMoreInteractions(mIFeatureProvisioningCallback0);
+    }
+
     private void createImsProvisioningController() throws Exception {
         if (Looper.myLooper() == null) {
             Looper.prepare();
diff --git a/tests/src/com/android/phone/PhoneInterfaceManagerTest.java b/tests/src/com/android/phone/PhoneInterfaceManagerTest.java
index 2d338f2..2d46c80 100644
--- a/tests/src/com/android/phone/PhoneInterfaceManagerTest.java
+++ b/tests/src/com/android/phone/PhoneInterfaceManagerTest.java
@@ -23,6 +23,8 @@
 import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.doThrow;
@@ -32,11 +34,13 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.AppOpsManager;
 import android.compat.testing.PlatformCompatChangeRule;
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.content.res.Resources;
+import android.os.Build;
 import android.permission.flags.Flags;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.telephony.RadioAccessFamily;
@@ -63,6 +67,7 @@
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
+import java.util.Collections;
 import java.util.Locale;
 
 /**
@@ -90,6 +95,9 @@
     @Mock
     private SubscriptionManagerService mSubscriptionManagerService;
 
+    @Mock
+    private AppOpsManager mAppOps;
+
     @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     @Before
@@ -117,6 +125,8 @@
         doReturn(false).when(mFeatureFlags).enforceTelephonyFeatureMappingForPublicApis();
         mPhoneInterfaceManager.setPackageManager(mPackageManager);
         doReturn(true).when(mPackageManager).hasSystemFeature(anyString());
+
+        mPhoneInterfaceManager.setAppOpsManager(mAppOps);
     }
 
     @Test
@@ -413,7 +423,8 @@
      */
     @Test
     public void getCarrierRestrictionStatus() {
-        when(mPhoneInterfaceManager.validateCallerAndGetCarrierId(anyString())).thenReturn(1);
+        when(mPhoneInterfaceManager.validateCallerAndGetCarrierIds(anyString())).thenReturn(
+                Collections.singleton(1));
         mPhoneInterfaceManager.getCarrierRestrictionStatus(mIIntegerConsumer,
                 "com.test.package");
     }
@@ -422,37 +433,18 @@
     public void notifyEnableDataWithAppOps_enableByUser_doNoteOp() {
         mSetFlagsRule.enableFlags(Flags.FLAG_OP_ENABLE_MOBILE_DATA_BY_USER);
         String packageName = "INVALID_PACKAGE";
-        String error = "";
-        try {
-            mPhoneInterfaceManager.setDataEnabledForReason(1,
-                    TelephonyManager.DATA_ENABLED_REASON_USER, true, packageName);
-        } catch (SecurityException expected) {
-            // The test doesn't have access to note the op, but we're just interested that it makes
-            // the attempt.
-            error = expected.getMessage();
-        }
-
-        String appop = "ENABLE_MOBILE_DATA_BY_USER";
-        assertTrue("expected error to contain " + packageName + " but it didn't: " + error,
-                error.contains(packageName));
-        assertTrue("expected error to contain " + appop + " but it didn't: " + error,
-                error.contains(appop));
+        mPhoneInterfaceManager.setDataEnabledForReason(1,
+                TelephonyManager.DATA_ENABLED_REASON_USER, true, packageName);
+        verify(mAppOps).noteOpNoThrow(eq(AppOpsManager.OPSTR_ENABLE_MOBILE_DATA_BY_USER), anyInt(),
+                eq(packageName), isNull(), isNull());
     }
 
     @Test
     public void notifyEnableDataWithAppOps_enableByCarrier_doNotNoteOp() {
         mSetFlagsRule.enableFlags(Flags.FLAG_OP_ENABLE_MOBILE_DATA_BY_USER);
         String packageName = "INVALID_PACKAGE";
-        String error = "";
-        try {
-            mPhoneInterfaceManager.setDataEnabledForReason(1,
-                    TelephonyManager.DATA_ENABLED_REASON_CARRIER, true, packageName);
-        } catch (SecurityException expected) {
-            // The test doesn't have access to note the op, but we're just interested that it makes
-            // the attempt.
-            error = expected.getMessage();
-        }
-        assertEquals("Expected error to be empty, was " + error, error, "");
+        verify(mAppOps, never()).noteOpNoThrow(eq(AppOpsManager.OPSTR_ENABLE_MOBILE_DATA_BY_USER),
+                anyInt(), eq(packageName), isNull(), isNull());
     }
 
     @Test
@@ -507,6 +499,11 @@
     @Test
     @EnableCompatChanges({TelephonyManager.ENABLE_FEATURE_MAPPING})
     public void testWithoutTelephonyFeatureAndCompatChanges() throws Exception {
+        // Replace field to set SDK version of vendor partition to Android V
+        int vendorApiLevel = Build.VERSION_CODES.VANILLA_ICE_CREAM;
+        replaceInstance(PhoneInterfaceManager.class, "mVendorApiLevel", mPhoneInterfaceManager,
+                vendorApiLevel);
+
         // telephony features is not defined, expect UnsupportedOperationException.
         doReturn(false).when(mPackageManager).hasSystemFeature(
                 PackageManager.FEATURE_TELEPHONY_CALLING);
diff --git a/tests/src/com/android/phone/ServiceStateProviderTest.java b/tests/src/com/android/phone/ServiceStateProviderTest.java
index 1d2ca74..ab26e94 100644
--- a/tests/src/com/android/phone/ServiceStateProviderTest.java
+++ b/tests/src/com/android/phone/ServiceStateProviderTest.java
@@ -123,6 +123,11 @@
             public void notifyChange(Uri uri, ContentObserver observer, boolean syncToNetwork) {
                 throw new TestNotifierException();
             }
+            @Override
+            public void notifyChange(Uri uri, ContentObserver observer, boolean syncToNetwork,
+                    int userHandle) {
+                throw new TestNotifierException();
+            }
         };
         doReturn(mContentResolver).when(mContext).getContentResolver();
 
diff --git a/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java b/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java
index e5f7fd3..71a23e6 100644
--- a/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java
+++ b/tests/src/com/android/services/telephony/DisconnectCauseUtilTest.java
@@ -152,7 +152,8 @@
         android.telecom.DisconnectCause tcCause =
                 DisconnectCauseUtil.toTelecomDisconnectCause(
                         DisconnectCause.BUSY, -1 /*  precise label is NOT given */,
-                        EMPTY_STRING, PHONE_ID, null, getBundleWithBusyToneArray(), mFeatureFlags);
+                        EMPTY_STRING, PHONE_ID, null, getBundleWithBusyToneArray(), mFeatureFlags,
+                        false);
 
         assertBusyCauseWithTargetLabel(R.string.callFailed_userBusy, tcCause);
     }
@@ -170,7 +171,8 @@
         android.telecom.DisconnectCause tcCause =
                 DisconnectCauseUtil.toTelecomDisconnectCause(DisconnectCause.BUSY,
                         CallFailCause.USER_BUSY /* Telephony defined a precise label */,
-                        EMPTY_STRING, PHONE_ID, null, getBundleWithBusyToneArray(), mFeatureFlags);
+                        EMPTY_STRING, PHONE_ID, null, getBundleWithBusyToneArray(), mFeatureFlags,
+                        false);
         // Note: The precise label should not be overridden even though the carrier defined
         // the cause to play a busy tone
         assertBusyCauseWithTargetLabel(R.string.clh_callFailed_user_busy_txt, tcCause);
diff --git a/tests/src/com/android/services/telephony/rcs/TelephonyRcsServiceTest.java b/tests/src/com/android/services/telephony/rcs/TelephonyRcsServiceTest.java
index d575d77..4cabf95 100644
--- a/tests/src/com/android/services/telephony/rcs/TelephonyRcsServiceTest.java
+++ b/tests/src/com/android/services/telephony/rcs/TelephonyRcsServiceTest.java
@@ -39,6 +39,7 @@
 import com.android.ims.FeatureConnector;
 import com.android.ims.RcsFeatureManager;
 import com.android.internal.telephony.ISub;
+import com.android.internal.telephony.flags.FeatureFlags;
 
 import org.junit.After;
 import org.junit.Before;
@@ -68,6 +69,8 @@
     @Mock
     private TelephonyManager mTelephonyManager;
 
+    @Mock FeatureFlags mFeatureFlags;
+
     private RcsFeatureController mFeatureControllerSlot0;
     private RcsFeatureController mFeatureControllerSlot1;
 
@@ -91,9 +94,9 @@
         doReturn(mFeatureControllerSlot1).when(mFeatureFactory).createController(any(), eq(1),
                 anyInt());
         doReturn(mMockUceSlot0).when(mFeatureFactory).createUceControllerManager(any(), eq(0),
-                anyInt());
+                anyInt(), any());
         doReturn(mMockUceSlot1).when(mFeatureFactory).createUceControllerManager(any(), eq(1),
-                anyInt());
+                anyInt(), any());
         doReturn(mMockSipTransportSlot0).when(mFeatureFactory).createSipTransportController(any(),
                 eq(0), anyInt());
         doReturn(mMockSipTransportSlot1).when(mFeatureFactory).createSipTransportController(any(),
@@ -363,7 +366,8 @@
     }
 
     private TelephonyRcsService createRcsService(int numSlots) {
-        TelephonyRcsService service = new TelephonyRcsService(mContext, numSlots, mResourceProxy);
+        TelephonyRcsService service = new TelephonyRcsService(mContext, numSlots, mResourceProxy,
+                mFeatureFlags);
         service.setFeatureFactory(mFeatureFactory);
         service.initialize();
         verify(mContext).registerReceiver(mReceiverCaptor.capture(), any());
diff --git a/tests/src/com/android/services/telephony/rcs/UceControllerManagerTest.java b/tests/src/com/android/services/telephony/rcs/UceControllerManagerTest.java
index 17decb9..e506931 100644
--- a/tests/src/com/android/services/telephony/rcs/UceControllerManagerTest.java
+++ b/tests/src/com/android/services/telephony/rcs/UceControllerManagerTest.java
@@ -35,6 +35,7 @@
 import com.android.TestExecutorService;
 import com.android.ims.RcsFeatureManager;
 import com.android.ims.rcs.uce.UceController;
+import com.android.internal.telephony.flags.FeatureFlags;
 
 import org.junit.After;
 import org.junit.Before;
@@ -52,6 +53,7 @@
 
     @Mock private UceController mUceController;
     @Mock private RcsFeatureManager mRcsFeatureManager;
+    @Mock private FeatureFlags mFeatureFlags;
 
     private final ExecutorService mExecutorService = new TestExecutorService();
 
@@ -260,7 +262,7 @@
 
     private UceControllerManager getUceControllerManager() {
         UceControllerManager manager = new UceControllerManager(mContext, mSlotId,
-                mExecutorService, mUceController);
+                mExecutorService, mUceController, mFeatureFlags);
         return manager;
     }
 }