diff --git a/Android.bp b/Android.bp
index a4cb2ca..50a41d0 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,7 +1,6 @@
 // Build the Telecom service.
 android_app {
     name: "Telecom",
-    libs: ["telephony-common"],
     srcs: [
         "src/**/*.java",
         "proto/**/*.proto",
@@ -53,7 +52,6 @@
         "android.test.mock",
         "android.test.base",
         "android.test.runner",
-        "telephony-common",
     ],
 
     jni_libs: ["libdexmakerjvmtiagent"],
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 07ee6fa..3003aad 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -35,6 +35,7 @@
     <uses-permission android:name="android.permission.BROADCAST_PHONE_ACCOUNT_REGISTRATION" />
     <uses-permission android:name="android.permission.CALL_PRIVILEGED" />
     <uses-permission android:name="android.permission.HANDLE_CALL_INTENT" />
+    <uses-permission android:name="android.permission.HANDLE_CAR_MODE_CHANGES" />
     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
     <uses-permission android:name="android.permission.MANAGE_USERS" />
diff --git a/TEST_MAPPING b/TEST_MAPPING
new file mode 100644
index 0000000..75feeb6
--- /dev/null
+++ b/TEST_MAPPING
@@ -0,0 +1,20 @@
+{
+  "presubmit": [
+    {
+      "name": "TelecomUnitTests",
+      "options": [
+        {
+          "exclude-annotation": "androidx.test.filters.FlakyTest"
+        }
+      ]
+    },
+    {
+      "name": "TeleServiceTests",
+      "options": [
+        {
+          "exclude-annotation": "androidx.test.filters.FlakyTest"
+        }
+      ]
+    }
+  ]
+}
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index a253efa..ad6bfec 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Gemiste oproepe"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Oproepblokkering"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"As jy hierdie oproep maak, sal dit jou <xliff:g id="OTHER_APP">%1$s</xliff:g>-oproep beëindig."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Kies hoe om hierdie oproep te maak"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Herlei oproep deur <xliff:g id="OTHER_APP">%1$s</xliff:g> te gebruik"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Bel deur my foonnommer te gebruik"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Laat <xliff:g id="OTHER_APP">%1$s</xliff:g> toe om \'n oproep te maak deur \'n ander nommer of rekening te gebruik."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Oproep kan nie deur <xliff:g id="OTHER_APP">%1$s</xliff:g> geplaas word nie. Probeer om \'n ander oproepherlei-toepassing te gebruik of die ontwikkelaar vir hulp te kontak."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Oproepblokkering"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Nommers nie in Kontakte nie"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 711baed..70b5b0e 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"ያመለጡ ጥሪዎች"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"ጥሪን ማገድ"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"ይህን ጥሪ ማድረግ የ<xliff:g id="OTHER_APP">%1$s</xliff:g> ጥሪዎን ያቋርጣል።"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"ይህን ጥሪ እንዴት እንደሚያደርጉ ይምረጡ"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g>ን በመጠቀም አዘዋውር"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"የእኔን ስልክ ቁጥር በመጠቀም ደውል"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ሌላ ቁጥር ወይም መለያ በመጠቀም ጥሪ እንዲያደርግ ይፍቀዱ።"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"ጥሪ በ <xliff:g id="OTHER_APP">%1$s</xliff:g> መደረግ አይችልም። ሌላ የጥሪ አቅጣጫ ማስቀየሪያ መተግበሪያ ለመጠቀም ወይም አልሚውን እገዛ ለመጠየቅ ይሞክሩ።"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"ጥሪን ማገድ"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"ቁጥሮች በእውቂያዎች ውስጥ የሉም"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 293361e..a0025a1 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -56,7 +56,7 @@
     <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"التحديد كتطبيق تلقائي"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"إلغاء"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"الأرقام المحظورة"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"لن تتلقّى أي مكالمات أو مراسلات نصية من الأرقام المحظورة."</string>
+    <string name="blocked_numbers_msg" msgid="1045015186124965643">"لن تتلقى أي مكالمات أو مراسلات نصية من الأرقام المحظورة."</string>
     <string name="block_number" msgid="1101252256321306179">"إضافة رقم"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"هل تريد إلغاء حظر <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>؟"</string>
     <string name="unblock_button" msgid="3078048901972674170">"إلغاء الحظر"</string>
@@ -68,7 +68,7 @@
     <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"تم إيقاف الحظر مؤقتًا"</string>
     <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"بعد الاتصال الهاتفي أو إرسال رسالة نصية إلى رقم طوارئ، يتم إيقاف تشغيل الحظر لضمان تمكن خدمات الطوارئ من الاتصال بك."</string>
     <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"إعادة تفعيل الآن"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"تم حظر <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g>"</string>
+    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> محظور"</string>
     <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"تم إلغاء حظر <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g>"</string>
     <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"غير قادر على حظر رقم الطوارئ."</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"تم حظر <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> بالفعل."</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"المكالمات الفائتة"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"حظر المكالمات"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"يؤدي إجراء هذه المكالمة إلى إنهاء مكالمة <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"اختيار كيفية إجراء هذه المكالمة"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"إعادة توجيه المكالمة باستخدام <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"الاتصال باستخدام رقم هاتفي"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"اسمح لتطبيق <xliff:g id="OTHER_APP">%1$s</xliff:g> بإجراء المكالمة باستخدام رقم آخر أو حساب مختلف."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"لا يمكن إجراء المكالمة بواسطة <xliff:g id="OTHER_APP">%1$s</xliff:g>. يمكنك تجربة استخدام تطبيق آخر لإعادة توجيه المكالمة أو الاتصال بمطور البرنامج للحصول على مساعدة."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"حظر المكالمات"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"الأرقام غير المسردة في \"جهات الاتصال\""</string>
@@ -103,7 +101,7 @@
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"هاتف مدفوع"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"حظر المكالمات من الهواتف المدفوعة"</string>
     <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"غير معروف"</string>
-    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"حظر المكالمات من المتّصلين مجهولي الهوية"</string>
+    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"حظر المكالمات من المتصلين مجهولي الهوية"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"حظر المكالمات"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"تم إيقاف حظر المكالمات"</string>
     <string name="phone_strings_emergency_call_made_dialog_title_txt" msgid="7421611725400166580">"تم إجراء مكالمة طوارئ"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index d04115b..8c5ac87 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"মিছ্ড কল"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"কল অৱৰোধ"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"এই কলটো কৰিলে আপোনাৰ <xliff:g id="OTHER_APP">%1$s</xliff:g> কলটোৰ অন্ত পৰিব।"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"এই কলটো কেনেকৈ কৰা হ’ব সেয়া বাছনি কৰক"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ব্যৱহাৰ কৰি কল ৰিডাইৰেক্ট কৰক"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"মোৰ ফ’ন নম্বৰ ব্যৱহাৰ কৰি কল কৰক"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"বেলেগ এটা নম্বৰ বা একাউণ্ট ব্যৱহাৰ কৰি <xliff:g id="OTHER_APP">%1$s</xliff:g>ক কল কৰিবলৈ অনুমতি দিয়ক।"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g>এ কলটো কৰিব পৰা নাই। বেলেগ এটা কল ৰিডাইৰেক্ট কৰা এপ্ ব্যৱহাৰ কৰি চাওক বা বিকাশকৰ্তাৰ সৈতে যোগাযোগ কৰক।"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"কল অৱৰোধ"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"আপোনাৰ সর্ম্পকসূচীত নথকা"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index f496ce8..f7a7edb 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Buraxılmış zənglər"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Zəngi Bloklama"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Bu zəngin yerləşdirilməsi <xliff:g id="OTHER_APP">%1$s</xliff:g> zəngini sonlandıracaq."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Bu zəngi necə etməyi seçin"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> istifadə edərək zəngi yönləndirin"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Telefon nömrəmdən istifadə edərək zəng edin"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Başqa nömrə və ya hesabdan istifadə etməklə zəng etmək üçün <xliff:g id="OTHER_APP">%1$s</xliff:g> tətbiqinə icazə verin."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ilə zəng etmək mümkün deyil. Başqa zəng yönləndirmə tətbiqindən istifadə edin və ya yardım üçün developerlə əlaqə saxlayın."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Zəngi Bloklama"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Kontaktda olmayan nömrələr"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index ea7c9d8..b9caec2 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -57,7 +57,7 @@
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"Otkaži"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"Blokirani brojevi"</string>
     <string name="blocked_numbers_msg" msgid="1045015186124965643">"Nećete primati pozive ni SMS-ove sa blokiranih brojeva."</string>
-    <string name="block_number" msgid="1101252256321306179">"Dodajte broj"</string>
+    <string name="block_number" msgid="1101252256321306179">"Dodaj broj"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"Želite li da deblokirate <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Deblokiraj"</string>
     <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokirajte pozive i SMS-ove od"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Propušteni pozivi"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Blokiranje poziva"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Ako uputite ovaj poziv, završićete <xliff:g id="OTHER_APP">%1$s</xliff:g> poziv."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Izaberite kako želite da uputite ovaj poziv"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Preusmeri poziv pomoću: <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Pozovi pomoću mog broja telefona"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Dozvolite da <xliff:g id="OTHER_APP">%1$s</xliff:g> uputi poziv pomoću drugog broja ili naloga."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ne može da uputi poziv. Probajte pomoću druge aplikacije za preusmeravanje poziva ili zatražite pomoć od programera."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Blokiranje poziva"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Brojevi koji nisu u kontaktima"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 0b9de4c..0263ffe 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -29,9 +29,9 @@
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Выклік сцішаны."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Уключаная гучная сувязь."</string>
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Не магу гаварыць. У чым справа?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Я выклікаю цябе праз момант."</string>
-    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Я выклікаю цябе пазней."</string>
-    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Не магу адказаць. Пагаворым пазней?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Зараз перазваню."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Я патэлефаную пазней."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Не магу гаварыць. Патэлефануеце пазней?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Хуткія адказы"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Рэдагаваць хуткія адказы"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Прапушчаныя выклікі"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Блакіраванне выклікаў"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Калі зрабіць гэты выклік, ваш выклік праз праграму <xliff:g id="OTHER_APP">%1$s</xliff:g> скончыцца."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Выберыце, праз які нумар зрабіць выклік"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Перанакіраваць выклік, выкарыстоўваючы нумар \"<xliff:g id="OTHER_APP">%1$s</xliff:g>\""</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Зрабіць выклік, выкарыстоўваючы мой нумар тэлефона"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Дазвольце праграме \"<xliff:g id="OTHER_APP">%1$s</xliff:g>\" зрабіць выклік, выкарыстоўваючы іншы нумар ці ўліковы запіс."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Не ўдалося зрабіць выклік праз праграму \"<xliff:g id="OTHER_APP">%1$s</xliff:g>\". Скарыстайце іншую праграму для перанакіравання выклікаў або звярніцеся да распрацоўшчыка па дапамогу."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Блакіраванне выклікаў"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Нумары не ў спісе кантактаў"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 6bc19cb..78d36a5 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -29,8 +29,8 @@
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Обаждането бе спряно."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Високоговорителят бе активиран."</string>
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Сега не мога да говоря. Какво има?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Ще се обадя веднага обратно."</string>
-    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Ще се обадя по-късно."</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Ще ви се обадя веднага обратно."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Ще ви се обадя по-късно."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Сега не мога да говоря. По-късно?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Бързи отговори"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Редакт. на бързи отговори"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Пропуснати обаждания"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Блокиране на обажданията"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Ако извършите това обаждане, обаждането ви през <xliff:g id="OTHER_APP">%1$s</xliff:g> ще прекъсне."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Изберете как да се извърши обаждането"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Пренасочване на обаждането през <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Обаждане през телефонния ми номер"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Разрешаване на <xliff:g id="OTHER_APP">%1$s</xliff:g> да извърши обаждането с друг номер или профил."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Не може да се извърши от <xliff:g id="OTHER_APP">%1$s</xliff:g>. Опитайте да използвате друго приложение за пренасочване на обаждания или се обърнете за помощ към програмиста."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Блокиране на обажданията"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Номера, които не са в контактите"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 50cf6d9..a5a3d2d 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -58,18 +58,18 @@
     <string name="blocked_numbers" msgid="2751843139572970579">"ব্লক করা নম্বরগুলি"</string>
     <string name="blocked_numbers_msg" msgid="1045015186124965643">"ব্লক করা নম্বরগুলি থেকে আপনি কল বা এসএমএস পাবেন না।"</string>
     <string name="block_number" msgid="1101252256321306179">"একটি নম্বর যোগ করুন"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> আনব্লক করবেন?"</string>
+    <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> অবরোধ মুক্ত করবেন?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"অবরোধ মুক্ত করুন"</string>
     <string name="add_blocked_dialog_body" msgid="9030243212265516828">"এর থেকে কল এবং এসএমএস ব্লক করুন"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"ফোন নম্বর"</string>
-    <string name="block_button" msgid="8822290682524373357">"ব্লক করুন"</string>
+    <string name="block_button" msgid="8822290682524373357">"অবরোধ করুন"</string>
     <string name="non_primary_user" msgid="5180129233352533459">"শুধুমাত্র ডিভাইসের মালিক এই অবরুদ্ধ নম্বরগুলিকে দেখতে এবং পরিচালনা করতে পারেন৷"</string>
     <string name="delete_icon_description" msgid="8903995728252556724">"অবরোধ মুক্ত করুন"</string>
     <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"অবরুদ্ধ করা সাময়িকভাবে বন্ধ আছে"</string>
     <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"আপনি কোনো জরুরি নম্বরে ডায়াল করার বা এসএমএস পাঠানোর পরে, জরুরি পরিষেবাগুলি যাতে আপনাকে কল করতে পারে সেই বিষয়টি নিশ্চিত করতে অবরুদ্ধ করার ব্যবস্থাটিকে বন্ধ করা হয়৷"</string>
     <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"এখনই পুনরায় সক্ষম করুন"</string>
     <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> অবরোধ করা হয়েছে"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> আনব্লক করা হয়েছে"</string>
+    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> অবরোধ মুক্ত করা হয়েছে"</string>
     <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"জরুরি নম্বর অবরোধ করতে অক্ষম৷"</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> ইতিমধ্যেই অবরোধ করা রয়েছে৷"</string>
     <string name="toast_personal_call_msg" msgid="5115361633476779723">"কল করার জন্য ব্যক্তিগত ডায়ালার ব্যবহার করা হচ্ছে"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"মিস করা কল"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"কল ব্লক করা"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"এই কলটির উত্তর দেওয়া হলে তা আপনার <xliff:g id="OTHER_APP">%1$s</xliff:g> কলটি কেটে যাবে৷"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"এই কলটি কীভাবে করবেন বেছে নিন"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ব্যবহার করে কল রিডাইরেক্ট করুন"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"আমার ফোন নম্বর দিয়ে কল করুন"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"অন্য কোনও নম্বর বা অ্যাকাউন্ট থেকে কল করার জন্য <xliff:g id="OTHER_APP">%1$s</xliff:g>-কে অনুমতি দিন।"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g>-এর মাধ্যমে কল করা যায়নি। অন্য একটি কল রিডাইরেক্ট করার অ্যাপ ব্যবহার করে দেখুন অথবা সহয়তার জন্য ডেভেলপারের সাথে যোগাযোগ করুন।"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"কল ব্লক করা"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"পরিচিতিতে নেই এমন নম্বর"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index dc5145f..b81567c 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -60,7 +60,7 @@
     <string name="block_number" msgid="1101252256321306179">"Dodaj broj"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"Deblokirati <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Deblokiraj"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokirajte pozive i SMS-ove od"</string>
+    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokiraj pozive i poruke od"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"Broj telefona"</string>
     <string name="block_button" msgid="8822290682524373357">"Blokiraj"</string>
     <string name="non_primary_user" msgid="5180129233352533459">"Samo vlasnik uređaja može pregledati i upravljati blokiranim brojevima."</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Propušteni pozivi"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Blokiranje poziva"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Upućivanje ovog poziva će prekinuti poziv: <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Odaberite kako želite uputiti ovaj poziv"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Preusmjeri poziv pomoću aplikacije <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Pozovi putem mobilnog telefona"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Dozvolite aplikaciji <xliff:g id="OTHER_APP">%1$s</xliff:g> uspostavljanje poziva putem drugog broja ili računa."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Nije moguće uspostaviti poziv putem aplikacije <xliff:g id="OTHER_APP">%1$s</xliff:g>. Isprobajte drugu aplikaciju za preusmjeravanje poziva ili kontaktirajte programera za pomoć."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Blokiranje poziva"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Brojevi koji nisu u Kontaktima"</string>
@@ -102,7 +100,7 @@
     <string name="phone_settings_private_num_summary_txt" msgid="7516314821207782191">"Blokirajte pozivaoce koji ne otkrivaju svoj broj"</string>
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"Telefonska govornica"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"Blokirajte pozive s telefonskih govornica"</string>
-    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Nepoznato"</string>
+    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Nepoznat"</string>
     <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Blokirajte pozive neidentificiranih pozivalaca"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"Blokiranje poziva"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"Blokiranje poziva je onemogućeno"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index d834a2e..c4ff4b1 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Trucades perdudes"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Bloqueig de trucades"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"En fer aquesta trucada, finalitzarà la de l\'aplicació <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Tria com vols fer aquesta trucada"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Desvia la trucada amb <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Truca amb el meu número de telèfon"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Permet que <xliff:g id="OTHER_APP">%1$s</xliff:g> faci la trucada amb un compte o un número diferent."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> no pot fer la trucada. Prova d\'utilitzar una altra aplicació de redirecció de trucades o bé contacta amb el desenvolupador per obtenir ajuda."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Bloqueig de trucades"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Números que no surten a Contactes"</string>
@@ -102,8 +100,8 @@
     <string name="phone_settings_private_num_summary_txt" msgid="7516314821207782191">"Bloqueja les trucades que tinguin el número ocult"</string>
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"Telèfons públics"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"Bloqueja les trucades de telèfons públics"</string>
-    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Desconeguts"</string>
-    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Bloqueja les trucades de números no identificats"</string>
+    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Desconegudes"</string>
+    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Bloqueja les trucades de números desconeguts"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"Bloqueig de trucades"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"El bloqueig de trucades s\'ha desactivat"</string>
     <string name="phone_strings_emergency_call_made_dialog_title_txt" msgid="7421611725400166580">"S\'ha fet una trucada d\'emergència"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 2166c40..ece0925 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -28,10 +28,10 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Zpráva"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Hovor ztlumen."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Reproduktor je zapnutý."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Teď nemůžu mluvit, o co jde?"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Teď nemůžu telefonovat, o co jde?"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Zavolám zpátky."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Zavolám později."</string>
-    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Nemůžu telefonovat. Zavoláš později?"</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Nemůžu telefonovat. Zavoláte později?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Rychlé odpovědi"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Upravit rychlé odpovědi"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Zmeškané hovory"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Blokování hovorů"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Uskutečněním tohoto hovoru ukončíte hovor <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Vyberte, jak chcete tento hovor provést"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Přesměrovat hovor přes aplikaci <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Zavolat prostřednictvím mého telefonního čísla"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Povolte aplikaci <xliff:g id="OTHER_APP">%1$s</xliff:g> provést hovor přes jiné číslo nebo účet."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Aplikace <xliff:g id="OTHER_APP">%1$s</xliff:g> nemůže hovor provést. Zkuste jinou aplikaci na přesměrování hovorů nebo požádejte o pomoc vývojáře."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Blokování hovorů"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Čísla, která nejsou v kontaktech"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 98f9d43..9cedcdd 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -50,9 +50,9 @@
     <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Indstil standard"</string>
     <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Annuller"</string>
     <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> kan foretage og administrere alle aspekter af opkald. Du bør kun indstille en app til din standardapp til opkald, hvis du har tillid til den."</string>
-    <string name="change_default_call_screening_dialog_title" msgid="8714534302859934164">"Vil du gøre <xliff:g id="NEW_APP">%s</xliff:g> til din standardapp til screening?"</string>
-    <string name="change_default_call_screening_warning_message_for_disable_old_app" msgid="5128397581530600941">"<xliff:g id="OLD_APP">%s</xliff:g> kan ikke længere screene opkald."</string>
-    <string name="change_default_call_screening_warning_message" msgid="3881131132588596837">"<xliff:g id="NEW_APP">%s</xliff:g> kan se oplysninger om opringere, når de ikke er i dine kontakter, og kan blokere disse opkald. Du bør kun angive en app som din standardapp til screening, hvis du har tillid til den."</string>
+    <string name="change_default_call_screening_dialog_title" msgid="8714534302859934164">"Vil du gøre <xliff:g id="NEW_APP">%s</xliff:g> til din standardapp til opkaldsvalg?"</string>
+    <string name="change_default_call_screening_warning_message_for_disable_old_app" msgid="5128397581530600941">"<xliff:g id="OLD_APP">%s</xliff:g> kan ikke længere vælge opkald."</string>
+    <string name="change_default_call_screening_warning_message" msgid="3881131132588596837">"<xliff:g id="NEW_APP">%s</xliff:g> kan se oplysninger om opringere, når de ikke er i dine kontakter, og kan blokere disse opkald. Du bør kun angive en app som din standardapp til opkaldsvalg, hvis du har tillid til den."</string>
     <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"Angiv som standard"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"Annuller"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"Blokerede telefonnumre"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Ubesvarede opkald"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Opkaldsblokering"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Hvis du foretager dette opkald, afsluttes dit opkald i <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Vælg, hvordan du vil foretage dette opkald"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Omdiriger opkaldet ved hjælp af <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Ring via mit telefonnummer"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Tillad, at <xliff:g id="OTHER_APP">%1$s</xliff:g> kan foretage opkald ved at bruge et andet nummer eller en anden konto."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> kan ikke foretage opkaldet. Prøv at bruge en anden app til omdirigering af opkald eller kontakte udvikleren for at få hjælp."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Opkaldsblokering"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numre er ikke i Kontakter"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index c06314c..394764c 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -31,7 +31,7 @@
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Kann jetzt nicht sprechen. Was gibt\'s?"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Ich rufe gleich zurück."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Ich rufe später zurück."</string>
-    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Kann jetzt nicht. Später nochmal?"</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Kann jetzt nicht sprechen. Später?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Kurzantworten"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Kurzantworten bearbeiten"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Entgangene Anrufe"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Anrufblockierung"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Durch diesen Anruf wird der Anruf in <xliff:g id="OTHER_APP">%1$s</xliff:g> beendet."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Wie möchtest du anrufen?"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Mit <xliff:g id="OTHER_APP">%1$s</xliff:g> weiterleiten"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Mit meiner Telefonnummer anrufen"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Erlaube <xliff:g id="OTHER_APP">%1$s</xliff:g>, den Anruf über eine andere Nummer oder ein anderes Konto zu tätigen."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Anruf kann nicht mit <xliff:g id="OTHER_APP">%1$s</xliff:g> getätigt werden. Bitte verwende eine andere App zur Anrufweiterleitung oder wende dich an den Entwickler, um Hilfe zu erhalten."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Anrufblockierung"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Nicht in den Kontakten gespeicherte Telefonnummern"</string>
@@ -101,9 +99,9 @@
     <string name="phone_settings_private_num_txt" msgid="8623574188879134262">"Privat"</string>
     <string name="phone_settings_private_num_summary_txt" msgid="7516314821207782191">"Anrufer mit unterdrückter Nummer werden blockiert"</string>
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"Öffentliche Telefone"</string>
-    <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"Anrufe von öffentlichen Telefonen blockieren"</string>
+    <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"Anrufe von öffentlichen Telefonen werden blockiert"</string>
     <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Unbekannt"</string>
-    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Anrufe von nicht identifizierten Anrufern blockieren"</string>
+    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Anrufe von nicht identifizierten Anrufern werden blockiert"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"Anrufblockierung"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"Anrufblockierung deaktiviert"</string>
     <string name="phone_strings_emergency_call_made_dialog_title_txt" msgid="7421611725400166580">"Notruf abgesetzt"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 350bdea..307564b 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Αναπάντητες κλήσεις"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Φραγή κλήσεων"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Εάν πραγματοποιήσετε αυτήν την κλήση, η κλήση σας μέσω <xliff:g id="OTHER_APP">%1$s</xliff:g> θα τερματιστεί."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Επιλέξτε πώς θα πραγματοποιήσετε την κλήση"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Ανακατεύθυνση της κλήσης μέσω <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Κλήση μέσω του αριθμού τηλεφώνου μου"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Να επιτραπεί στην εφαρμογή <xliff:g id="OTHER_APP">%1$s</xliff:g> η πραγματοποίηση κλήσης χρησιμοποιώντας διαφορετικό αριθμό ή λογαριασμό."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Δεν είναι δυνατή η πραγματοποίηση κλήσης από την εφαρμογή <xliff:g id="OTHER_APP">%1$s</xliff:g>. Δοκιμάστε να χρησιμοποιήσετε μια άλλη εφαρμογή ανακατεύθυνσης κλήσεων ή να επικοινωνήσετε με τον προγραμματιστή της εφαρμογής για βοήθεια."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Φραγή κλήσεων"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Αριθμοί που δεν βρίσκονται στις Επαφές"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 68c7b6b..a0a7e82 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -28,8 +28,8 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Message"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Call muted."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Speakerphone enabled."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Can\'t talk now. What\'s going on?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"I\'ll call you back."</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Can\'t talk now. What\'s up?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"I\'ll call you right back."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"I\'ll call you later."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Can\'t talk now. Call me later?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Quick responses"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Missed calls"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Call Blocking"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Placing this call will end your <xliff:g id="OTHER_APP">%1$s</xliff:g> call."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Choose how to make this call"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Redirect call using <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Call using my phone number"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Allow <xliff:g id="OTHER_APP">%1$s</xliff:g> to place call using a different number or account."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Call can\'t be placed by <xliff:g id="OTHER_APP">%1$s</xliff:g>. Try using a different call redirecting app or contacting the developer for help."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Call Blocking"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numbers not in Contacts"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 68c7b6b..a0a7e82 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -28,8 +28,8 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Message"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Call muted."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Speakerphone enabled."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Can\'t talk now. What\'s going on?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"I\'ll call you back."</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Can\'t talk now. What\'s up?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"I\'ll call you right back."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"I\'ll call you later."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Can\'t talk now. Call me later?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Quick responses"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Missed calls"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Call Blocking"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Placing this call will end your <xliff:g id="OTHER_APP">%1$s</xliff:g> call."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Choose how to make this call"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Redirect call using <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Call using my phone number"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Allow <xliff:g id="OTHER_APP">%1$s</xliff:g> to place call using a different number or account."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Call can\'t be placed by <xliff:g id="OTHER_APP">%1$s</xliff:g>. Try using a different call redirecting app or contacting the developer for help."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Call Blocking"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numbers not in Contacts"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 68c7b6b..a0a7e82 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -28,8 +28,8 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Message"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Call muted."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Speakerphone enabled."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Can\'t talk now. What\'s going on?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"I\'ll call you back."</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Can\'t talk now. What\'s up?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"I\'ll call you right back."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"I\'ll call you later."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Can\'t talk now. Call me later?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Quick responses"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Missed calls"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Call Blocking"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Placing this call will end your <xliff:g id="OTHER_APP">%1$s</xliff:g> call."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Choose how to make this call"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Redirect call using <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Call using my phone number"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Allow <xliff:g id="OTHER_APP">%1$s</xliff:g> to place call using a different number or account."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Call can\'t be placed by <xliff:g id="OTHER_APP">%1$s</xliff:g>. Try using a different call redirecting app or contacting the developer for help."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Call Blocking"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numbers not in Contacts"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 65c747e..7bcea81 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -29,7 +29,7 @@
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Llamada silenciada"</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Altavoz habilitado"</string>
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"No puedo hablar ahora. ¿Todo bien?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Te llamo enseguida."</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Te llamo en seguida."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Te llamo más tarde."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"No puedo hablar ahora. ¿Me llamas más tarde?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Respuestas rápidas"</string>
@@ -58,7 +58,7 @@
     <string name="blocked_numbers" msgid="2751843139572970579">"Números bloqueados"</string>
     <string name="blocked_numbers_msg" msgid="1045015186124965643">"No recibirás llamadas ni mensajes de texto de los números bloqueados."</string>
     <string name="block_number" msgid="1101252256321306179">"Agregar un número"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"¿Quieres desbloquear el número <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
+    <string name="unblock_dialog_body" msgid="1614238499771862793">"¿Quieres desbloquear el <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Desbloquear"</string>
     <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Bloquear llamadas y mensajes de texto de"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"Número de teléfono"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Llamadas perdidas"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Bloqueo de llamadas"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Si realizas esta llamada, finalizará la de <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Elige cómo quieres realizar esta llamada"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Redireccionar la llamada mediante <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Llamar mediante mi número de teléfono"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Permite que <xliff:g id="OTHER_APP">%1$s</xliff:g> realice llamadas con un número o una cuenta diferentes."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"No se puede realizar la llamada a través de <xliff:g id="OTHER_APP">%1$s</xliff:g>. Intenta usar otra app de derivación de llamadas o comunícate con el desarrollador para obtener ayuda."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Bloqueo de llamadas"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Números que no están en Contactos"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index cec693b..098a5eb 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -56,7 +56,7 @@
     <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"Configurar como predeterminada"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"Cancelar"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"Números bloqueados"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"No recibirás llamadas ni mensajes de los números bloqueados."</string>
+    <string name="blocked_numbers_msg" msgid="1045015186124965643">"No recibirás llamadas ni SMS de los números bloqueados."</string>
     <string name="block_number" msgid="1101252256321306179">"Añadir un número"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"¿Desbloquear el número <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Desbloquear"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Llamadas perdidas"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Bloqueo de llamadas"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Si haces esta llamada, se finalizará la de <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Elige cómo quieres hacer esta llamada"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Redirigir llamada con <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Llamar con mi número de teléfono"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Deja que <xliff:g id="OTHER_APP">%1$s</xliff:g> llame con otro número o cuenta diferente."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> no puede realizar la llamada. Prueba con otra aplicación de redirección de llamadas o ponte en contacto con el desarrollador para obtener ayuda."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Bloqueo de llamadas"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Números que no están en Contactos"</string>
@@ -102,7 +100,7 @@
     <string name="phone_settings_private_num_summary_txt" msgid="7516314821207782191">"Bloquea las llamadas que tengan el número oculto"</string>
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"Teléfono público"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"Bloquea las llamadas de teléfonos públicos"</string>
-    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Desconocidos"</string>
+    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Desconocida"</string>
     <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Bloquea las llamadas de números desconocidos"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"Bloqueo de llamadas"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"Se ha inhabilitado el bloqueo de llamadas"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index a5203f7..31a43de 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Vastamata kõned"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Kõnede blokeerimine"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Selle kõne tegemisel lõpetatakse pooleliolev kõne rakenduses <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Valige, kuidas soovite helistada"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Suuna kõne ümber rakenduse <xliff:g id="OTHER_APP">%1$s</xliff:g> abil"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Helista minu telefoninumbri abil"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Lubage rakendusel <xliff:g id="OTHER_APP">%1$s</xliff:g> helistada, kasutades teist numbrit või kontot."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Rakendus <xliff:g id="OTHER_APP">%1$s</xliff:g> ei saa helistada. Proovige kasutada teist kõnede ümbersuunamise rakendust või võtke abi saamiseks arendajaga ühendust."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Kõnede blokeerimine"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numbrid, mis ei ole kontaktide hulgas"</string>
@@ -102,7 +100,7 @@
     <string name="phone_settings_private_num_summary_txt" msgid="7516314821207782191">"Nende helistajate blokeerimine, kes ei avalda oma numbrit"</string>
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"Telefoniautomaat"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"Kõnede blokeerimine telefoniautomaatidest"</string>
-    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Tundmatud"</string>
+    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Tundmatu"</string>
     <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Kõnede blokeerimine tuvastamata helistajatelt"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"Kõnede blokeerimine"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"Kõnede blokeerimine on keelatud"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 7067507..159a846 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -24,12 +24,12 @@
     <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Dei galduak"</string>
     <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> dei galdu"</string>
     <string name="notification_missedCallTicker" msgid="504686252427747209">"Deitzaile honen dei galdua: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
-    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Itzuli deia"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Erantzun deiari"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Mezua"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Deiaren audioa desaktibatu da."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Bozgorailua gaitu da."</string>
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Ezin dut hitz egin. Arazoren bat al dago?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Oraintxe itzuliko dizut deia."</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Oraintxe deituko dizut bueltan."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Geroago deituko dizut."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Ezin dut hitz egin. Deitu geroago, mesedez."</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Erantzun bizkorrak"</string>
@@ -57,7 +57,7 @@
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"Utzi"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"Blokeatutako zenbakiak"</string>
     <string name="blocked_numbers_msg" msgid="1045015186124965643">"Ez duzu jasoko deirik edo testu-mezurik blokeatutako zenbakietatik."</string>
-    <string name="block_number" msgid="1101252256321306179">"Gehitu zenbaki bat"</string>
+    <string name="block_number" msgid="1101252256321306179">"Gehitu zenbakia"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> desblokeatu nahi duzu?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Desblokeatu"</string>
     <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokeatu zenbaki honetatik jasotzen diren deiak eta testu-mezuak:"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Dei galduak"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Deiak blokeatzeko aukera"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Dei hau egiten baduzu, amaitu egingo da <xliff:g id="OTHER_APP">%1$s</xliff:g> aplikazioko deia."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Aukeratu dei hau egiteko modua"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Birbideratu deia <xliff:g id="OTHER_APP">%1$s</xliff:g> aplikazioaren bidez"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Erabili nire telefono-zenbakia deitzeko"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Eman baimena <xliff:g id="OTHER_APP">%1$s</xliff:g> aplikazioari zenbaki edo kontu desberdin baten bidez deiak egiteko."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> aplikazioak ezin du egin deia. Erabili deiak birbideratzeko beste aplikazio bat edo jarri harremanetan garatzailearekin laguntza lortzeko."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Deiak blokeatzeko aukera"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Kontaktuak zerbitzuan ez dauden zenbakiak"</string>
@@ -102,7 +100,7 @@
     <string name="phone_settings_private_num_summary_txt" msgid="7516314821207782191">"Blokeatu zenbakia erakusten ez duten deitzaileak"</string>
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"Telefono publikoa"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"Blokeatu telefono publikoen deiak"</string>
-    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Ezezagunak"</string>
+    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Ezezaguna"</string>
     <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Blokeatu identifikatu gabeko deitzaileen deiak"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"Deiak blokeatzeko aukera"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"Desgaitu da deiak blokeatzeko aukera"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index ed754a6..d728309 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -28,8 +28,8 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"پیام"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"تماس نادیده گرفته شد."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"تلفن آیفون‌دار فعال شد."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"الآن نمی‌توانم صحبت کنم. موضوع چیست؟"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"همین حالا با شما تماس می‌گیرم.."</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"اکنون نمی‌توانم صحبت کنم. موضوع چیست؟"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"بی‌درنگ با شما تماس می‌گیرم."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"بعداً با شما تماس می‌گیرم."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"اکنون نمی‌توانم صحبت کنم. بعداً به من زنگ می‌زنید؟"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"پاسخ‌های سریع"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"تماس‌های بی‌پاسخ"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"مسدود کردن تماس"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"اگر این تماس را برقرار کنید، تماس <xliff:g id="OTHER_APP">%1$s</xliff:g> شما قطع می‌شود."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"انتخاب نحوه برقراری این تماس"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"هدایت تماس با استفاده از <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"تماس با استفاده از شماره تلفن من"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"به <xliff:g id="OTHER_APP">%1$s</xliff:g> اجازه دهید با شماره یا حساب دیگری تماس برقرار کند."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"نمی‌توان با <xliff:g id="OTHER_APP">%1$s</xliff:g> تماس برقرار کرد. لطفاً از برنامه هدایت تماس دیگری استفاده کنید یا برای دریافت راهنمایی با برنامه‌نویس تماس بگیرید."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"مسدود کردن تماس"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"شماره‌هایی که در «مخاطبین» نیستند"</string>
@@ -103,7 +101,7 @@
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"تلفن عمومی"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"مسدود کردن تماس‌ها از تلفن‌های عمومی"</string>
     <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"ناشناس"</string>
-    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"مسدود کردن تماس‌های تماس‌گیرندگان ناشناس"</string>
+    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"مسدودن تماس‌های تماس‌گیرندگان ناشناس"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"مسدود کردن تماس"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"مسدود کردن تماس غیرفعال شد"</string>
     <string name="phone_strings_emergency_call_made_dialog_title_txt" msgid="7421611725400166580">"تماس اضطراری برقرار شد"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 5c973c6..892fa7f 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Vastaamattomat puhelut"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Puhelujen esto"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Tämän puhelun soittaminen päättää puhelun sovelluksessa <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Valitse, miten puhelu soitetaan"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Uudelleenohjaa puhelu sovelluksella <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Soita puhelinnumerollani"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Salli sovelluksen <xliff:g id="OTHER_APP">%1$s</xliff:g> soittaa puhelu toisella numerolla tai tilillä."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ei voi soittaa puhelua. Kokeile jotakin toista soitonsiirtosovellusta tai ota yhteyttä kehittäjään."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Puhelujen esto"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numerot eivät ole yhteystiedoissa"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index f92fc45..26b6eca 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Appels manqués"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Blocage des appels"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Si vous passez cet appel, vous mettrez fin à l\'appel <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Choisissez comment passer cet appel"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Rediriger l\'appel en utilisant <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Appeler en utilisant mon numéro de téléphone"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Autoriser l\'application <xliff:g id="OTHER_APP">%1$s</xliff:g> à passer l\'appel au moyen d\'un autre numéro ou d\'un autre compte."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Impossible de passer l\'appel au moyen de l\'application <xliff:g id="OTHER_APP">%1$s</xliff:g>. Essayez d\'utiliser une autre application de redirection d\'appels ou de communiquer avec le concepteur de l\'application pour obtenir de l\'aide."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Blocage des appels"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numéros non répertoriés dans les contacts"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 4af49bd..c025a89 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Appels manqués"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Blocage d\'appels"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Si vous passez cet appel, vous mettrez fin à celui qui est en cours dans l\'application <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Choisissez comment passer cet appel"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Rediriger l\'appel avec <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Appeler avec mon numéro de téléphone"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Autorisez <xliff:g id="OTHER_APP">%1$s</xliff:g> à passer un appel avec un numéro ou un compte différent."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ne peut pas passer d\'appel. Essayez d\'utiliser une autre application de redirection des appels ou contactez le développeur pour obtenir de l\'aide."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Blocage d\'appels"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numéros non répertoriés dans Contacts"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index f1dfde5..b0404af 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -50,13 +50,13 @@
     <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Establecer como predeterminada"</string>
     <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Cancelar"</string>
     <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> poderá facer chamadas e controlar todo o referente a estas. Só deberías establecer como aplicación de teléfono predeterminada aplicacións nas que confíes."</string>
-    <string name="change_default_call_screening_dialog_title" msgid="8714534302859934164">"Usar <xliff:g id="NEW_APP">%s</xliff:g> como app de filtrado de chamadas predeterminada?"</string>
+    <string name="change_default_call_screening_dialog_title" msgid="8714534302859934164">"Queres que <xliff:g id="NEW_APP">%s</xliff:g> sexa a app de filtro de chamadas predet.?"</string>
     <string name="change_default_call_screening_warning_message_for_disable_old_app" msgid="5128397581530600941">"<xliff:g id="OLD_APP">%s</xliff:g> xa non poderá filtrar chamadas."</string>
-    <string name="change_default_call_screening_warning_message" msgid="3881131132588596837">"<xliff:g id="NEW_APP">%s</xliff:g> poderá consultar a información sobre os emisores de chamadas, aínda que non figuren entre os teus contactos, así como bloquear as súas chamadas. Só deberías establecer como aplicación de filtrado de chamadas predeterminada aplicacións nas que confíes."</string>
+    <string name="change_default_call_screening_warning_message" msgid="3881131132588596837">"<xliff:g id="NEW_APP">%s</xliff:g> poderá consultar a información sobre os emisores de chamadas, aínda que non figuren entre os teus contactos, así como bloquear as súas chamadas. Só deberías establecer como aplicación de filtro de chamadas predeterminada aplicacións nas que confíes."</string>
     <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"Establecer como predeterminada"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"Cancelar"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"Números bloqueados"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Non recibirás chamadas nin mensaxes de texto dos números bloqueados."</string>
+    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Non recibirás chamadas nin mensaxes de texto desde números bloqueados."</string>
     <string name="block_number" msgid="1101252256321306179">"Engadir un número"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"Queres desbloquear o <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Desbloquear"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Chamadas perdidas"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Bloqueo de chamadas"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Ao facer esta chamada, finalizarase o túa chamada de <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Escolle como facer esta chamada"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Redirixir a chamada con <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Chamar co meu número de teléfono"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Deixa que <xliff:g id="OTHER_APP">%1$s</xliff:g> faga unha chamada cunha conta ou número diferente."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Non se pode realizar a chamada a través de <xliff:g id="OTHER_APP">%1$s</xliff:g>. Proba con outra aplicación de redirección de chamadas ou ponte en contacto co programador para obter axuda."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Bloqueo de chamadas"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Números que non aparezan nos contactos"</string>
@@ -103,7 +101,7 @@
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"Teléfono público"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"Bloquea as chamadas de teléfonos públicos"</string>
     <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Descoñecido"</string>
-    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Bloquear as chamadas de emisores non identificados"</string>
+    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Bloquea as chamadas de emisores non identificados"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"Bloqueo de chamadas"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"Desactivouse o bloqueo de chamadas"</string>
     <string name="phone_strings_emergency_call_made_dialog_title_txt" msgid="7421611725400166580">"Realizouse unha chamada de emerxencia"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index a7e4ec4..35b02c0 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -28,12 +28,12 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"સંદેશ"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"કૉલ મ્યૂટ કરેલ છે."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"સ્પીકરફોન પસંદ કરેલ છે."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"હમણાં વાત નહીં કરી શકું. શું હતું?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"હમણાં કામમાં છું. થોડી વારમાં કૉલ કરું તમને."</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"હમણાં વાત નહીં કરી શકું. શું ચાલે છે?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"હું તરત જ પાછો કૉલ કરીશ."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"હું પછીથી કૉલ કરીશ."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"હમણાં વાત નહીં કરી શકું. મને પછીથી કૉલ કરી શકશો?"</string>
-    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"હાજરજવાબ"</string>
-    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"હાજરજવાબમાં ફેરફાર કરો"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"ઝડપી પ્રતિસાદ"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"ઝડપી પ્રતિસાદ સંપાદિત કરો"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
     <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"ઝડપી પ્રતિસાદ"</string>
     <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"<xliff:g id="PHONE_NUMBER">%s</xliff:g> પર સંદેશ મોકલ્યો."</string>
@@ -56,11 +56,11 @@
     <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"ડિફૉલ્ટ સેટ કરો"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"રદ કરો"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"અવરોધિત નંબરો"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"બ્લૉક કરેલા નંબર પરથી કૉલ અથવા ટેક્સ્ટ તમને આવશે નહિ."</string>
+    <string name="blocked_numbers_msg" msgid="1045015186124965643">"તમે અવરોધિત નંબરોથી કૉલ્સ અથવા ટેક્સ્ટ પ્રાપ્ત કરશો નહીં."</string>
     <string name="block_number" msgid="1101252256321306179">"એક નંબર ઉમેરો"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> ને બ્લૉક કરીએ?"</string>
+    <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> ને અનાવરોધિત કરીએ?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"અનાવરોધિત કરો"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"આ નંબરના કૉલ અને ટેક્સ્ટને અવરોધિત કરો"</string>
+    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"આ નંબરના કૉલ્સ અને ટેક્સ્ટને અવરોધિત કરો"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"ફોન નંબર"</string>
     <string name="block_button" msgid="8822290682524373357">"અવરોધિત કરો"</string>
     <string name="non_primary_user" msgid="5180129233352533459">"ફક્ત ઉપકરણના માલિક અવરોધિત નંબરોને જોઈ અને સંચાલિત કરી શકે છે."</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"છૂટેલા કૉલ"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"કૉલ બ્લૉક કરી રહ્યાં છીએ"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"આ કૉલ કરવાથી તમારો <xliff:g id="OTHER_APP">%1$s</xliff:g> કૉલ સમાપ્ત થઈ જશે."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"આ કૉલ કેવી રીતે કરવો તે પસંદ કરો"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g>નો ઉપયોગ કરીને કૉલ રીડાયરેક્ટ કરો"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"મારા ફોન નંબરનો ઉપયોગ કરીને કૉલ કરો"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"<xliff:g id="OTHER_APP">%1$s</xliff:g>ને કોઈ અલગ નંબર અથવા એકાઉન્ટનો ઉપયોગ કરીને કૉલ કરવાની મંજૂરી આપો."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> દ્વારા કૉલ કરી શકાશે નહીં. સહાય માટે કોઈ અલગ કૉલ રીડાયરેક્ટ કરનારી ઍપનો ઉપયોગ કરવાનો અથવા ડેવલપરનો સંપર્ક કરવાનો પ્રયાસ કરો."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"કૉલ બ્લૉક કરી રહ્યાં છીએ"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"સંપર્કોમાં આ નંબર નથી"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index d70f1c0..b94be42 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -20,7 +20,7 @@
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"फ़ोन"</string>
     <string name="unknown" msgid="6878797917991465859">"अज्ञात"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"छूटी कॉल"</string>
-    <string name="notification_missedWorkCallTitle" msgid="6242489980390803090">"दफ़्तर का छूटा हुआ कॉल"</string>
+    <string name="notification_missedWorkCallTitle" msgid="6242489980390803090">"कार्यस्थल का छूटा हुआ कॉल"</string>
     <string name="notification_missedCallsTitle" msgid="1361677948941502522">"छूटी कॉल"</string>
     <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> छूटी कॉल"</string>
     <string name="notification_missedCallTicker" msgid="504686252427747209">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> की कॉल छूटी"</string>
@@ -55,32 +55,32 @@
     <string name="change_default_call_screening_warning_message" msgid="3881131132588596837">"<xliff:g id="NEW_APP">%s</xliff:g> आपके उन कॉल करने वालों की जानकारी देख पाएगा जो आपकी संपर्क सूची में नहीं हैं और उन कॉल को ब्लॉक कर पाएगा. सिर्फ़ उन्हीं ऐप्लिकेशन को डिफ़ॉल्ट कॉल स्क्रीन करने वाले ऐप्लिकेशन के रूप में सेट करना चाहिए जिन पर आप भरोसा करते हैं."</string>
     <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"डिफ़ॉल्ट सेट करें"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"अभी नहीं"</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"ब्लॉक किए गए नंबर"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"ब्लॉक किए गए नंबर से आपको कॉल या मैसेज नहीं मिलेंगे."</string>
+    <string name="blocked_numbers" msgid="2751843139572970579">"अवरोधित नंबर"</string>
+    <string name="blocked_numbers_msg" msgid="1045015186124965643">"आपको ब्लॉक किए गए नंबर से कॉल या मैसेज नहीं मिलेंगे."</string>
     <string name="block_number" msgid="1101252256321306179">"नंबर जोड़ें"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> को अनब्लॉक करें?"</string>
+    <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> को अनवरोधित करें?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"अनवरोधित करें"</string>
     <string name="add_blocked_dialog_body" msgid="9030243212265516828">"इसके कॉल और मैसेज रोकें"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"फ़ोन नंबर"</string>
-    <string name="block_button" msgid="8822290682524373357">"ब्लॉक करें"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"सिर्फ़ डिवाइस के मालिक रोके गए नंबर देख और प्रबंधित कर सकते हैं."</string>
+    <string name="block_button" msgid="8822290682524373357">"अवरुद्ध करें"</string>
+    <string name="non_primary_user" msgid="5180129233352533459">"केवल डिवाइस स्वामी अवरुद्ध किए गए नंबर देख और प्रबंधित कर सकते हैं."</string>
     <string name="delete_icon_description" msgid="8903995728252556724">"अनवरोधित करें"</string>
     <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"अवरोधन अस्थायी रूप से बंद है"</string>
     <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"आपातकालीन नंबर डायल करने या उस पर लेख संदेश भेजने के बाद, अवरोधन बंद हो जाता है ताकि आपातकालीन सेवाएं आपसे संपर्क कर सकें."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"अभी फिर से सक्षम करें"</string>
+    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"अभी पुन: सक्षम करें"</string>
     <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> अवरोधित है"</string>
     <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> अनवरोधित है"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"आपातकालीन नंबर ब्लॉक करने में असमर्थ."</string>
+    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"आपातकालीन नंबर अवरुद्ध करने में असमर्थ."</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> पहले से अवरोधित है."</string>
     <string name="toast_personal_call_msg" msgid="5115361633476779723">"कॉल करने के लिए व्यक्तिगत डायलर का उपयोग करना"</string>
     <string name="notification_incoming_call" msgid="7713197997773986670">"<xliff:g id="CALL_FROM">%2$s</xliff:g> की ओर से <xliff:g id="CALL_VIA">%1$s</xliff:g> कॉल"</string>
     <string name="notification_incoming_video_call" msgid="6638486071698373893">"<xliff:g id="CALL_FROM">%2$s</xliff:g> की ओर से <xliff:g id="CALL_VIA">%1$s</xliff:g> वीडियो कॉल"</string>
-    <string name="answering_ends_other_call" msgid="8282145910153766401">"उत्तर देने से आपका <xliff:g id="CALL_VIA">%1$s</xliff:g> कॉल खत्म हो जाएगा"</string>
-    <string name="answering_ends_other_calls" msgid="1198589551399049197">"उत्तर देने से आपके <xliff:g id="CALL_VIA">%1$s</xliff:g> कॉल खत्म हो जाएंगे"</string>
-    <string name="answering_ends_other_video_call" msgid="8510410917384186360">"उत्तर देने से आपका <xliff:g id="CALL_VIA">%1$s</xliff:g> वीडियो कॉल खत्म हो जाएगा"</string>
-    <string name="answering_ends_other_managed_call" msgid="5186137550267947785">"उत्तर देने से आपका जारी कॉल खत्म हो जाएगा"</string>
-    <string name="answering_ends_other_managed_calls" msgid="6429838309560397988">"उत्तर देने से आपके जारी कॉल खत्म हो जाएंगे"</string>
-    <string name="answering_ends_other_managed_video_call" msgid="1585423762458248435">"उत्तर देने से आपका जारी वीडियो कॉल खत्म हो जाएगा"</string>
+    <string name="answering_ends_other_call" msgid="8282145910153766401">"उत्तर देने से आपका <xliff:g id="CALL_VIA">%1$s</xliff:g> कॉल समाप्त हो जाएगा"</string>
+    <string name="answering_ends_other_calls" msgid="1198589551399049197">"उत्तर देने से आपके <xliff:g id="CALL_VIA">%1$s</xliff:g> कॉल समाप्त हो जाएंगे"</string>
+    <string name="answering_ends_other_video_call" msgid="8510410917384186360">"उत्तर देने से आपका <xliff:g id="CALL_VIA">%1$s</xliff:g> वीडियो कॉल समाप्त हो जाएगा"</string>
+    <string name="answering_ends_other_managed_call" msgid="5186137550267947785">"उत्तर देने से आपका जारी कॉल समाप्त हो जाएगा"</string>
+    <string name="answering_ends_other_managed_calls" msgid="6429838309560397988">"उत्तर देने से आपके जारी कॉल समाप्त हो जाएंगे"</string>
+    <string name="answering_ends_other_managed_video_call" msgid="1585423762458248435">"उत्तर देने से आपका जारी वीडियो कॉल समाप्त हो जाएगा"</string>
     <string name="answer_incoming_call" msgid="4140530013111794587">"उत्तर दें"</string>
     <string name="decline_incoming_call" msgid="806026168661598368">"अस्वीकार करें"</string>
     <string name="cant_call_due_to_no_supported_service" msgid="5128162419227548372">"कॉल नहीं किया जा सकता क्योंकि कॉल करने के लिए ऐसा कोई खाता नहीं है जिस पर इस तरह के कॉल की सुविधा हो."</string>
@@ -90,10 +90,8 @@
     <string name="notification_channel_incoming_call" msgid="3513761697082968084">"इनकमिंग कॉल"</string>
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"छूटे कॉल"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"कॉल पर रोक"</string>
-    <string name="alert_outgoing_call" msgid="982908156825958001">"इस कॉल को करने से आपका <xliff:g id="OTHER_APP">%1$s</xliff:g> कॉल खत्म हो जाएगा."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"चुनें कि आप इस कॉल को कैसे करना चाहते हैं"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> का इस्तेमाल करके कॉल को दूसरे नंबर पर भेजें"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"मेरे फ़ोन नंबर का इस्तेमाल करके कॉल करें"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"इस कॉल को करने से आपका <xliff:g id="OTHER_APP">%1$s</xliff:g> कॉल समाप्त हो जाएगा."</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"<xliff:g id="OTHER_APP">%1$s</xliff:g> को किसी और नंबर या खाते का इस्तेमाल करके कॉल करने की अनुमति दें."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> के ज़रिए कॉल नहीं किया जा सकता. कॉल को रीडायरेक्ट करने वाले दूसरे ऐप्लिकेशन का इस्तेमाल करके देखें या मदद के लिए डेवलपर से संपर्क करने की कोशिश करें."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"कॉल पर रोक"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"वे नंबर जो संपर्कों में नहीं हैं"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index e400993..59d7817 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -57,10 +57,10 @@
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"Otkaži"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"Blokirani brojevi"</string>
     <string name="blocked_numbers_msg" msgid="1045015186124965643">"Nećete primati ni pozive ni poruke s blokiranih brojeva."</string>
-    <string name="block_number" msgid="1101252256321306179">"Dodajte broj"</string>
+    <string name="block_number" msgid="1101252256321306179">"Dodaj broj"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"Želite li deblokirati <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Deblokiraj"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokiraj pozive i poruke koje upućuje"</string>
+    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokirajte pozive i poruke koje upućuje"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonski broj"</string>
     <string name="block_button" msgid="8822290682524373357">"Blokiraj"</string>
     <string name="non_primary_user" msgid="5180129233352533459">"Samo vlasnik uređaja može pregledavati i kontrolirati blokirane brojeve."</string>
@@ -68,7 +68,7 @@
     <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokiranje je privremeno isključeno"</string>
     <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Nakon što nazovete broj hitne službe ili pošaljete poruku na njega, blokada će se isključiti kako bi vam se hitna služba mogla javiti."</string>
     <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Ponovno omogući sada"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"Broj <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> blokiran je"</string>
+    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"Broj <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> je blokiran"</string>
     <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Broj <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> deblokiran je"</string>
     <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Broj hitne službe ne može se blokirati."</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"Broj <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> već je blokiran."</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Propušteni pozivi"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Blokiranje poziva"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Upućivanjem ovog poziva prekinut ćete poziv u aplikaciji <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Odaberite kako ćete uputiti poziv"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Preusmjeri poziv putem aplikacije <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Uputi poziv pomoću mog telefonskog broja"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Omogućite aplikaciji <xliff:g id="OTHER_APP">%1$s</xliff:g> upućivanje poziva na drugi broj ili račun."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Aplikacija <xliff:g id="OTHER_APP">%1$s</xliff:g> ne može uputiti poziv. Pokušajte s drugom aplikacijom za preusmjeravanje poziva ili se obratite razvojnom programeru za pomoć."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Blokiranje poziva"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Brojevi koji nisu u kontaktima"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index b608522..8941416 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Nem fogadott hívások"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Hívásletiltás"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Ha hívást indít, azzal megszakítja a(z) <xliff:g id="OTHER_APP">%1$s</xliff:g>-hívást."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"A hívás módjának kiválasztása"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Hívás átirányítása a következővel: <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Hívás a saját telefonszámommal"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Más számmal vagy fiókkal való hívásindítás engedélyezése a(z) <xliff:g id="OTHER_APP">%1$s</xliff:g> számára."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"A(z) <xliff:g id="OTHER_APP">%1$s</xliff:g> nem tudja elindítani a hívást. Használjon másik hívásátirányítási alkalmazást, vagy forduljon az alkalmazás fejlesztőjéhez."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Hívásletiltás"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"A névjegyek között nem szereplő számok"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 5566c0b..3e350cd 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -29,9 +29,9 @@
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Զանգը խլացված է:"</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Բարձրախոսը միացված է:"</string>
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Հիմա չեմ կարող խոսել: Ի՞նչ կա:"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Հիմա հետ կզանգեմ:"</string>
-    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Ավելի ուշ հետ կզանգեմ։"</string>
-    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Հիմա չեմ կարող խոսել, խնդրում եմ ավելի ուշ զանգել։"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Ես ձեզ հիմա հետ կզանգեմ:"</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Ես ձեզ մի փոքր ուշ կզանգեմ:"</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Չեմ կարող խոսել հիմա: Կզանգե՞ք ավելի ուշ:"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Արագ պատասխաններ"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Արագ պատասխաններ"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Բաց թողնված զանգեր"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Զանգերի արգելափակում"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Այս զանգը կատարելու դեպքում <xliff:g id="OTHER_APP">%1$s</xliff:g>-ի ընթացիկ զանգը կընդհատվի"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Ընտրեք, թե ինչպես եք ուզում կատարել այս զանգը"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Վերահասցեավորել զանգը <xliff:g id="OTHER_APP">%1$s</xliff:g> հավելվածով"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Զանգել իմ հեռախոսահամարով"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Թույլատրեք <xliff:g id="OTHER_APP">%1$s</xliff:g> հավելվածին զանգ կատարել մեկ այլ համարի կամ հաշվի միջոցով:"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Զանգը չի կարող կատարվել <xliff:g id="OTHER_APP">%1$s</xliff:g> հավելվածով: Օգտագործեք զանգի վերահասցեավորման մեկ այլ հավելված կամ կապվեք մշակողի հետ՝ օգնություն ստանալու համար:"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Զանգերի արգելափակում"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Կոնտակտներում չներառված համարներ"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 8f2ead2..f3c7088 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -69,7 +69,7 @@
     <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Setelah Anda menelepon atau mengirim SMS ke nomor gawat darurat, blokir akan dinonaktifkan agar layanan gawat darurat tersebut dapat menghubungi Anda."</string>
     <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Aktifkan lagi sekarang"</string>
     <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> diblokir"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> dibatalkan blokirnya"</string>
+    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> dibebaskan"</string>
     <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Tidak dapat memblokir nomor darurat."</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> sudah diblokir."</string>
     <string name="toast_personal_call_msg" msgid="5115361633476779723">"Menggunakan telepon pribadi untuk melakukan panggilan"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Panggilan tak terjawab"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Pemblokiran Panggilan"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Melakukan panggilan ini akan mengakhiri panggilan <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Pilih cara melakukan panggilan ini"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Alihkan panggilan menggunakan <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Lakukan panggilan dengan nomor telepon saya"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Izinkan <xliff:g id="OTHER_APP">%1$s</xliff:g> untuk melakukan panggilan menggunakan nomor atau akun lain."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Tidak dapat melakukan panggilan melalui <xliff:g id="OTHER_APP">%1$s</xliff:g>. Coba gunakan aplikasi pengalihan panggilan lain atau hubungi developer untuk mendapatkan bantuan."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Pemblokiran Panggilan"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Nomor yang tidak ada di Kontak"</string>
@@ -102,7 +100,7 @@
     <string name="phone_settings_private_num_summary_txt" msgid="7516314821207782191">"Blokir penelepon yang menyembunyikan nomornya"</string>
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"Telepon umum"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"Blokir panggilan dari telepon umum"</string>
-    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Tidak dikenal"</string>
+    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Tidak tahu"</string>
     <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Blokir panggilan dari penelepon yang tidak dikenal"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"Pemblokiran Panggilan"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"Pemblokiran Panggilan dinonaktifkan"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 4d5fa7e..903d72f 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Ósvöruð símtöl"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Lokað fyrir símtöl"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Ef þú hringir mun þessu símtali í <xliff:g id="OTHER_APP">%1$s</xliff:g> ljúka."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Veldu hvernig hringt er"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Framsenda símtal með <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Hringja með símanúmerinu mínu"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Leyfa <xliff:g id="OTHER_APP">%1$s</xliff:g> að hringja með öðru númeri eða reikningi."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Ekki er hægt að hringja símtal með <xliff:g id="OTHER_APP">%1$s</xliff:g>. Prófaðu að nota annað símtalaforrit eða hafðu samband við þróunaraðila til að fá aðstoð."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Lokað fyrir símtöl"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Númer sem eru ekki í tengiliðum"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 2040837..a41e901 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Chiamate perse"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Blocco delle chiamate"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Se effettui questa chiamata, la chiamata di <xliff:g id="OTHER_APP">%1$s</xliff:g> verrà terminata."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Scegli come effettuare questa chiamata"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Reindirizza la chiamata utilizzando <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Chiama utilizzando il mio numero di telefono"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Consenti all\'app <xliff:g id="OTHER_APP">%1$s</xliff:g> di effettuare una chiamata utilizzando un altro numero o account."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> non è in grado di effettuare la chiamata. Prova a utilizzare un\'altra app per il reindirizzamento delle chiamate o contatta lo sviluppatore per ricevere assistenza."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Blocco delle chiamate"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numeri esterni ai Contatti"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 0604092..2a7f6bd 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -33,14 +33,14 @@
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"אני אתקשר אליך יותר מאוחר."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"לא נוח לי עכשיו. נדבר אחר כך?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"תגובות מהירות"</string>
-    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"עריכת תגובות מהירות"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"תגובות מהירות"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
     <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"תגובה מהירה"</string>
     <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"הודעה נשלחה אל <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
     <string name="respond_via_sms_failure_format" msgid="90791421289769504">"לא ניתן היה לשלוח את ההודעה ל-<xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
     <string name="enable_account_preference_title" msgid="2021848090086481720">"חשבונות לביצוע שיחות"</string>
     <string name="outgoing_call_not_allowed_user_restriction" msgid="6872406278300131364">"ניתן לבצע רק שיחות חירום."</string>
-    <string name="outgoing_call_not_allowed_no_permission" msgid="1996571596464271228">"לא ניתן להוציא שיחות באמצעות האפליקציה הזו ללא ההרשאה \'טלפון\'."</string>
+    <string name="outgoing_call_not_allowed_no_permission" msgid="1996571596464271228">"לא ניתן לבצע שיחות יוצאות באמצעות האפליקציה הזו ללא ההרשאה \'טלפון\'."</string>
     <string name="outgoing_call_error_no_phone_number_supplied" msgid="1940125199802007505">"כדי להתקשר, הזן מספר טלפון חוקי."</string>
     <string name="duplicate_video_call_not_allowed" msgid="3749211605014548386">"לא ניתן כעת להוסיף את השיחה."</string>
     <string name="no_vm_number" msgid="4164780423805688336">"חסר מספר של דואר קולי"</string>
@@ -53,7 +53,7 @@
     <string name="change_default_call_screening_dialog_title" msgid="8714534302859934164">"רוצה להפוך את <xliff:g id="NEW_APP">%s</xliff:g> לאפליקציית ברירת המחדל שלך לסינון שיחות?"</string>
     <string name="change_default_call_screening_warning_message_for_disable_old_app" msgid="5128397581530600941">"אפליקציית <xliff:g id="OLD_APP">%s</xliff:g> לא תוכל לסנן שיחות עוד."</string>
     <string name="change_default_call_screening_warning_message" msgid="3881131132588596837">"אפליקציית <xliff:g id="NEW_APP">%s</xliff:g> תוכל לראות מידע על מתקשרים שאינם באנשי הקשר שלך ולחסום שיחות מהם. מומלץ לבחור רק אפליקציות שסומכים עליהן כברירת המחדל לסינון שיחות."</string>
-    <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"ברירת מחדל"</string>
+    <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"הגדרה כברירת מחדל"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"ביטול"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"מספרים חסומים"</string>
     <string name="blocked_numbers_msg" msgid="1045015186124965643">"לא יגיעו אליך שיחות או הודעות טקסט מהמספרים החסומים."</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"שיחות שלא נענו"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"חסימת שיחות"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"ביצוע השיחה הזו יסיים את השיחה ב-<xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"איך להתקשר?"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"ניתוב דרך <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"ממספר הטלפון שלי"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"השיחה תנותב דרך <xliff:g id="OTHER_APP">%1$s</xliff:g> באמצעות מספר או חשבון אחר. להמשיך?"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"אי אפשר להתקשר דרך <xliff:g id="OTHER_APP">%1$s</xliff:g>. אפשר לנסות אפליקציה אחרת לניתוב שיחות או לפנות למפתח האפליקציה לקבלת עזרה."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"חסימת שיחות"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"מספרים שאינם באנשי הקשר"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 8c953c0..0461797 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -63,7 +63,7 @@
     <string name="add_blocked_dialog_body" msgid="9030243212265516828">"次の発信元からの通話とテキスト メッセージをブロック"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"電話番号"</string>
     <string name="block_button" msgid="8822290682524373357">"ブロック"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"ブロックした番号を表示、管理できるのはデバイスの所有者のみです。"</string>
+    <string name="non_primary_user" msgid="5180129233352533459">"ブロックした番号を表示、管理できるのは端末の所有者のみです。"</string>
     <string name="delete_icon_description" msgid="8903995728252556724">"ブロックを解除"</string>
     <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ブロックが一時的に OFF になっています"</string>
     <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"緊急通報番号に電話をかけたり、テキスト メッセージを送信したりすると、ブロックが OFF になり、緊急通報受理機関からの通話を着信できるようになります。"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"不在着信"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"着信のブロック"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"この通話を発信すると、<xliff:g id="OTHER_APP">%1$s</xliff:g> の通話が終了します。"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"通話の発信方法を選択してください"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> を使用して通話をリダイレクト"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"自分の電話番号を使用して通話を発信"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"別の電話番号またはアカウントを使用して <xliff:g id="OTHER_APP">%1$s</xliff:g> から通話を発信することを許可してください。"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> から通話を発信することができません。別の通話転送アプリを使用するか、デベロッパーに問い合わせてみてください。"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"着信のブロック"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"連絡帳にない番号"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 79a907d..bad431d 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"გამოტოვებული ზარები"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"ზარების დაბლოკვა"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"ამ ზარის განხორციელება თქვენს <xliff:g id="OTHER_APP">%1$s</xliff:g> ზარს დაასრულებს."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"აირჩიეთ, როგორ განათავსოთ ეს ზარი"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"ზარის გადამისამართება <xliff:g id="OTHER_APP">%1$s</xliff:g>-ის გამოყენებით"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"დარეკვა ჩემი ტელეფონის ნომრის გამოყენებით"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"<xliff:g id="OTHER_APP">%1$s</xliff:g>-ის დაშვება, განათავსოს ზარი სხვა ნომრის ან ანგარიშის გამოყენებით."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"ზარის განთავსება შეუძლებელია <xliff:g id="OTHER_APP">%1$s</xliff:g>-ით. სცადეთ ზარის გადამისამართების სხვა აპის გამოყენება ან დახმარებისთვის დაუკავშირდით დეველოპერს."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"ზარების დაბლოკვა"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"ნომრები არ არის კონტაქტებში"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 9cd1698..4266223 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -39,7 +39,7 @@
     <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Хабар <xliff:g id="PHONE_NUMBER">%s</xliff:g> нөміріне жіберілді."</string>
     <string name="respond_via_sms_failure_format" msgid="90791421289769504">"<xliff:g id="PHONE_NUMBER">%s</xliff:g> нөміріне хабар жіберілмеді."</string>
     <string name="enable_account_preference_title" msgid="2021848090086481720">"Қоңырау шалу есептік жазбалары"</string>
-    <string name="outgoing_call_not_allowed_user_restriction" msgid="6872406278300131364">"Құтқару қызметіне ғана қоңырау шалуға рұқсат етілген."</string>
+    <string name="outgoing_call_not_allowed_user_restriction" msgid="6872406278300131364">"Тек төтенше қоңырауларға рұқсат етілген."</string>
     <string name="outgoing_call_not_allowed_no_permission" msgid="1996571596464271228">"\"Телефон\" рұқсатынсыз бұл қолданба шығыс қоңырауларды соға алмайды."</string>
     <string name="outgoing_call_error_no_phone_number_supplied" msgid="1940125199802007505">"Қоңырау шалу үшін жарамды нөмірді енгізіңіз."</string>
     <string name="duplicate_video_call_not_allowed" msgid="3749211605014548386">"Қоңырауды қазіргі уақытта қосу мүмкін емес."</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Қабылданбаған қоңыраулар"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Қоңырауды бөгеу"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Жаңа қоңырау шалу <xliff:g id="OTHER_APP">%1$s</xliff:g> қоңырауын тоқтатады."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Қоңырау шалу әдісін таңдаңыз."</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Қоңырау бағытын <xliff:g id="OTHER_APP">%1$s</xliff:g> арқылы ауыстыру"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Телефон нөміріммен қоңырау шалу"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"<xliff:g id="OTHER_APP">%1$s</xliff:g> қолданбасының басқа нөмір немесе есептік жазба арқылы қоңырау шалуына рұқсат ету."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> арқылы қоңырау шалу мүмкін емес. Басқа қоңырау бағыттайтын қолданбаны пайдаланып көріңіз немесе әзірлеушіден көмек сұраңыз."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Қоңырауды бөгеу"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Контактілерде жоқ нөмірлер"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index ae7c80c..ade1187 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"ការ​ហៅ​ដែល​មិន​បាន​ទទួល"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"ការទប់ស្កាត់ការហៅ"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"ការ​ហៅ​ទូរសព្ទ​នេះ នឹង​បញ្ចប់​ការហៅ <xliff:g id="OTHER_APP">%1$s</xliff:g> របស់​អ្នក។"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"ជ្រើសរើស​របៀប​ធ្វើ​ការហៅ​ទូរសព្ទ​នេះ"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"បញ្ជូន​ការហៅ​ទូរសព្ទ​បន្ត​ដោយ​ប្រើប្រាស់ <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"ហៅ​ទូរសព្ទ​ដោយ​ប្រើប្រាស់​លេខ​ទូរសព្ទ"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"អនុញ្ញាតឲ្យ <xliff:g id="OTHER_APP">%1$s</xliff:g> ធ្វើ​ការ​ហៅ​ទូរសព្ទ​ ដោយ​ប្រើប្រាស់​គណនី ឬ​លេខ​ផ្សេង។"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"មិន​អាច​ធ្វើ​ការ​ហៅ​ទូរសព្ទ​តាម <xliff:g id="OTHER_APP">%1$s</xliff:g> បាន​ទេ។ សាកល្បង​ប្រើប្រាស់​កម្មវិធី​បញ្ជូន​បន្ត​ការ​ហៅ​ទូរសព្ទផ្សេងទៀត ឬ​ទាក់ទង​អ្នក​អភិវឌ្ឍន៍​ដើម្បីទទួលបានជំនួយ។"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"ការទប់ស្កាត់ការហៅ"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"លេខ​មិន​នៅ​ក្នុង​ទំនាក់ទំនង"</string>
@@ -103,7 +101,7 @@
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"ទូរសព្ទ​ដែល​បង់ប្រាក់"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"ទប់ស្កាត់​ការហៅ​ពី​ទូរសព្ទ​ដែល​បង់ប្រាក់"</string>
     <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"មិនស្គាល់"</string>
-    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"ទប់ស្កាត់​ការហៅ​ទូរសព្ទពី​អ្នក​ហៅ​ដែល​មិន​ស្គាល់អត្តសញ្ញាណ"</string>
+    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"ទប់ស្កាត់​ការហៅ​ពី​អ្នក​ហៅ​ដែល​មិន​សម្គាល់​អត្តសញ្ញាណ"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"ការទប់ស្កាត់​ការហៅ"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"បាន​បិទ​ការទប់ស្កាត់​ការហៅ"</string>
     <string name="phone_strings_emergency_call_made_dialog_title_txt" msgid="7421611725400166580">"បាន​ធ្វើការហៅ​បន្ទាន់"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 2888e50..f2036b5 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -28,7 +28,7 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"ಸಂದೇಶ"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"ಕರೆಯನ್ನು ಮ್ಯೂಟ್ ಮಾಡಲಾಗಿದೆ."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"ಸ್ಪೀಕರ್‌ಫೋನ್ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"ಕ್ಷಮಿಸಿ, ಈಗ ಮಾತನಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಸಮಾಚಾರವೇನು?"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"ಈಗ ಮಾತನಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಏನು ವಿಷಯ?"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"ನಾನು ಮರಳಿ ನಿಮಗೆ ಕರೆ ಮಾಡುತ್ತೇನೆ."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"ನಾನು ನಂತರ ನಿಮಗೆ ಕರೆ ಮಾಡುತ್ತೇನೆ."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"ಈಗ ಮಾತನಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಂತರ ಮಾಡುವಿರಾ?"</string>
@@ -62,7 +62,7 @@
     <string name="unblock_button" msgid="3078048901972674170">"ನಿರ್ಬಂಧ ತೆಗೆಯಿರಿ"</string>
     <string name="add_blocked_dialog_body" msgid="9030243212265516828">"ಇದರಿಂದ ಬರುವ ಕರೆಗಳು ಮತ್ತು ಪಠ್ಯ ಸಂದೇಶಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"ಫೋನ್ ಸಂಖ್ಯೆ"</string>
-    <string name="block_button" msgid="8822290682524373357">"ನಿರ್ಬಂಧಿಸಿ"</string>
+    <string name="block_button" msgid="8822290682524373357">"ನಿರ್ಬಂಧಿಸು"</string>
     <string name="non_primary_user" msgid="5180129233352533459">"ಸಾಧನ ಮಾಲೀಕರು ಮಾತ್ರ ನಿರ್ಬಂಧಿಸಿದ ಸಂಖ್ಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಬಹುದು ಮತ್ತು ನಿರ್ವಹಿಸಬಹುದು."</string>
     <string name="delete_icon_description" msgid="8903995728252556724">"ನಿರ್ಬಂಧ ತೆಗೆಯಿರಿ"</string>
     <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ನಿರ್ಬಂಧಿಸುವಿಕೆ ತಾತ್ಕಾಲಿಕವಾಗಿ ಆಫ್ ಮಾಡಲಾಗಿದೆ"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"ಮಿಸ್ಡ್‌ ಕರೆಗಳು"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆ"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"ಈ ಕರೆಯನ್ನು ಮಾಡುವುದರಿಂದ ನಿಮ್ಮ <xliff:g id="OTHER_APP">%1$s</xliff:g> ಕರೆಯು ಅಂತ್ಯಗೊಳ್ಳುತ್ತದೆ."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"ಈ ಕರೆ ಮಾಡುವುದು ಹೇಗೆ ಎಂಬುದನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ಬಳಸಿಕೊಂಡು ಕರೆಯನ್ನು ಮರುನಿರ್ದೇರ್ಶಿಸಿ"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"ನನ್ನ ಫೋನ್ ಸಂಖ್ಯೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಕರೆ ಮಾಡಿ"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"ಬೇರೆ ಸಂಖ್ಯೆ ಅಥವಾ ಖಾತೆಯನ್ನು ಬಳಸಿಕೊಂಡು <xliff:g id="OTHER_APP">%1$s</xliff:g> ಆ್ಯಪ್‌ಗೆ ಕರೆ ಮಾಡಲು ಅನುಮತಿಸಿ."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"ಕರೆಯನ್ನು <xliff:g id="OTHER_APP">%1$s</xliff:g> ಮೂಲಕ ನಿಯೋಜಿಸಲಾಗುವುದಿಲ್ಲ. ಕರೆ ಮರುನಿರ್ದೇಶಿಸುವ ಬೇರೆ ಆ್ಯಪ್‌ ಅನ್ನು ಬಳಸುವ ಮೂಲಕ ಅಥವಾ ಸಹಾಯಕ್ಕಾಗಿ ಡೆವಲಪರ್ ಅನ್ನು ಸಂಪರ್ಕಿಸುವ ಮೂಲಕ ಪ್ರಯತ್ನಿಸಿ."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆ"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"ಸಂಖ್ಯೆಗಳು ಸಂಪರ್ಕದಲ್ಲಿಲ್ಲ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index dfa3eb1..d994e55 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -56,7 +56,7 @@
     <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"기본으로 설정"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"취소"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"차단된 번호"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"차단한 번호에서 걸려오는 전화나 문자는 더 이상 수신되지 않습니다."</string>
+    <string name="blocked_numbers_msg" msgid="1045015186124965643">"차단한 번호에서 걸려오는 전화나 문자를 더 이상 받지 않습니다."</string>
     <string name="block_number" msgid="1101252256321306179">"번호 추가"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>번을 차단 해제하시겠습니까?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"차단 해제"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"부재중 전화"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"통화 차단"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"이 전화를 걸면 현재 <xliff:g id="OTHER_APP">%1$s</xliff:g>에서 진행 중인 통화가 종료됩니다."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"전화 걸 방법 선택"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> 앱으로 전화 리디렉션"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"내 전화번호로 전화 걸기"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"<xliff:g id="OTHER_APP">%1$s</xliff:g> 앱이 다른 번호나 계정을 사용하여 전화를 걸도록 허용합니다."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> 앱으로는 전화를 걸 수 없습니다. 다른 통화 리디렉션 앱을 사용하거나 개발자에게 도움을 요청해 보세요."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"통화 차단"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"연락처에 없는 번호"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 21da1d4..602b06f 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Кабыл алынбаган чалуулар"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Чалууну бөгөттөө"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Эгер чалып баштасаңыз, <xliff:g id="OTHER_APP">%1$s</xliff:g> чалууңуз аяктайт."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Чалуу жолун тандаңыз"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> аркылуу чалуу багытын буруу"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Телефон номерим аркылуу чалуу"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"<xliff:g id="OTHER_APP">%1$s</xliff:g>башка номер же аккаунт колдонуп чалуусуна уруксат бериңиз."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g>аркылуу чалынбайт. Чалууну башка дарекке багыттоочу колдонмону колдонуп көрүңүз же жардам алуу үчүн иштеп чыгуучу менен байланышыңыз."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Чалууну бөгөттөө"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Номерлер Байланыштар тизмесинде жок"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 87a9ebd..d6cba22 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"ສາຍບໍ່ໄດ້ຮັບ"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"ການບລັອກສາຍ"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"ການໂທສາຍນີ້ຈະເປັນການສິ້ນສຸດສາຍ <xliff:g id="OTHER_APP">%1$s</xliff:g> ຂອງທ່ານ."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"ເລືອກວິທີໂທສາຍນີ້"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"ປ່ຽນເສັ້ນທາງການໂທໂດຍໃຊ້ <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"ໂທໂດຍໃຊ້ເບີໂທລະສັບຂອງຂ້ອຍ"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"ອະນຸຍາດໃຫ້ <xliff:g id="OTHER_APP">%1$s</xliff:g> ໂທໄດ້ໂດຍໃຊ້ເບີໂທ ຫຼື ບັນຊີອື່ນ."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"ບໍ່ສາມາດໂທດ້ວຍແອັບ <xliff:g id="OTHER_APP">%1$s</xliff:g> ໄດ້. ກະລຸນາລອງໃຊ້ແອັບການປ່ຽນເສັ້ນທາງການໂທອື່ນ ຫຼື ຕິດຕໍ່ຫາຜູ້ພັດທະນາສຳລັບຄວາມຊ່ວຍເຫຼືອ."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"ການບລັອກສາຍ"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"ເບີໂທບໍ່ໄດ້ຢູ່ໃນລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 9b522d3..df12ca6 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Praleisti skambučiai"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Skambučių blokavimas"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Atliekant šį skambutį bus užbaigtas „<xliff:g id="OTHER_APP">%1$s</xliff:g>“ skambutis."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Pasirinkite, kaip norite skambinti"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Peradresuoti skambutį naudojant programą „<xliff:g id="OTHER_APP">%1$s</xliff:g>“"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Skambinti naudojant mano telefono numerį"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Leisti „<xliff:g id="OTHER_APP">%1$s</xliff:g>“ skambinti naudojant kitą numerį ar paskyrą."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Negalima skambinti naudojant „<xliff:g id="OTHER_APP">%1$s</xliff:g>“. Pabandykite naudoti kitą skambučių peradresavimo programą arba susisiekite su kūrėju, jei reikia pagalbos."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Skambučių blokavimas"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numerių nėra Kontaktuose"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 4fae9fe..71d5343 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Neatbildētie zvani"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Zvanu bloķēšana"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Veicot šo zvanu, tiks beigts zvans lietotnē <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Izvēlieties, kā veikt šo zvanu"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Novirzīt zvanu, izmantojot lietotni <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Zvanīt, izmantojot manu tālruņa numuru"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Atļaujiet lietotnei <xliff:g id="OTHER_APP">%1$s</xliff:g> veikt zvanu, izmantojot citu numuru vai kontu."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Zvanu nevar veikt lietotnē <xliff:g id="OTHER_APP">%1$s</xliff:g>. Mēģiniet izmantot citu zvanu pāradresācijas lietotni vai sazināties ar izstrādātāju, lai saņemtu palīdzību."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Zvanu bloķēšana"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numuri, kas nav ietverti kontaktpersonu sarakstā"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 2a1fe48..67045ff 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Пропуштени повици"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Блокирање повици"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Ако се воспостави повиков, вашиот повик на <xliff:g id="OTHER_APP">%1$s</xliff:g> ќе заврши."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Изберете како да се воспостави повиков"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Пренасочи го повикот со <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Повикај со мојот телефонски број"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Дозволи <xliff:g id="OTHER_APP">%1$s</xliff:g> да воспостави повик со друг број или сметка."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Не може да се воспостави повик со <xliff:g id="OTHER_APP">%1$s</xliff:g>. Обидете се со друга апликација за пренасочување повици или пак, контактирајте со програмерот за помош."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Блокирање повици"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Броеви што не се наведени во „Контакти“"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index caa12a4..1d9230a 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -28,7 +28,7 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"സന്ദേശം"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"കോൾ നിശബ്‌ദമാക്കി."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"സ്‌പീക്കർഫോൺ പ്രവർത്തനക്ഷമമാക്കി."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"ഇപ്പോൾ സംസാരിക്കാനാകില്ല. എന്താ വിളിച്ചത്?"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"ഇപ്പോൾ സംസാരിക്കാനാകില്ല. എന്തുചെയ്യുന്നു?"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"ഞാൻ നിങ്ങളെ ഉടൻ തിരിച്ചുവിളിക്കാം."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"ഞാൻ നിങ്ങളെ പിന്നീട് വിളിക്കാം."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"ഇപ്പോൾ സംസാരിക്കാനാകില്ല. എന്നെ പിന്നീട് വിളിക്കാമോ?"</string>
@@ -55,20 +55,20 @@
     <string name="change_default_call_screening_warning_message" msgid="3881131132588596837">"<xliff:g id="NEW_APP">%s</xliff:g>-ന് നിങ്ങളുടെ കോൺടാക്റ്റുകളിൽ ഇല്ലാത്ത വിളിക്കുന്ന ആളുടെ, വിവരങ്ങൾ കാണാനും, ആ കോളുകളെ ബ്ലോക്കുചെയ്യാനുമാവും. വിശ്വസിക്കാവുന്ന ആപ്പുകൾ മാത്രം ഡിഫോൾട്ട് കോൾ സ്‌ക്രീനിംഗ് ആപ്പായി സജ്ജീകരിക്കുക."</string>
     <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"ഡിഫോൾട്ട് കോൾ സ്‌ക്രീനിംഗ് ആപ്പ് സജ്ജീകരിക്കുക"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"റദ്ദാക്കുക"</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"ബ്ലോക്ക് ചെയ്‍ത നമ്പറുകൾ"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"ബ്ലോക്ക് ചെയ്‌ത നമ്പറുകളിൽ നിന്ന് നിങ്ങൾക്ക് കോളുകളോ സന്ദേശങ്ങളോ ലഭിക്കില്ല."</string>
+    <string name="blocked_numbers" msgid="2751843139572970579">"ബ്ലോക്കുചെയ്ത നമ്പറുകൾ"</string>
+    <string name="blocked_numbers_msg" msgid="1045015186124965643">"ബ്ലോക്കുചെയ്‌ത നമ്പറുകളിൽ നിന്ന് നിങ്ങൾക്ക് കോളുകളോ സന്ദേശങ്ങളോ ലഭിക്കില്ല."</string>
     <string name="block_number" msgid="1101252256321306179">"ഒരു നമ്പർ ചേർക്കുക"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> അൺബ്ലോക്ക് ചെയ്യണോ?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"അൺബ്ലോക്ക് ചെയ്യുക"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"ഈ നമ്പറിൽ നിന്നുള്ള കോളുകളും ടെക്സ്റ്റുകളും ബ്ലോക്ക് ചെയ്യുക"</string>
+    <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> അൺബ്ലോക്കുചെയ്യണോ?"</string>
+    <string name="unblock_button" msgid="3078048901972674170">"അൺബ്ലോക്കുചെയ്യുക"</string>
+    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"ഇനിപ്പറയുന്നതിൽ നിന്നുള്ള കോളുകളും ടെക്സ്റ്റുകളും ബ്ലോക്കുചെയ്യുക"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"ഫോൺ നമ്പർ"</string>
     <string name="block_button" msgid="8822290682524373357">"ബ്ലോക്കുചെയ്യുക"</string>
     <string name="non_primary_user" msgid="5180129233352533459">"ബ്ലോക്കുചെയ്ത നമ്പറുകൾ ഉപകരണ ഉടമയ്ക്ക് മാത്രമേ കാണാനും മാനേജുചെയ്യാനും കഴിയൂ."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"അൺബ്ലോക്ക് ചെയ്യുക"</string>
+    <string name="delete_icon_description" msgid="8903995728252556724">"അൺബ്ലോക്കുചെയ്യുക"</string>
     <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ബ്ലോക്കുചെയ്യൽ താൽക്കാലികമായി ഓഫാണ്"</string>
     <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"നിങ്ങൾ ഒരു എമർജൻസി നമ്പർ ഡയൽ ചെയ്‌ത് കഴിയുമ്പോഴോ അതിലേക്ക് സന്ദേശമയച്ചുകഴിയുമ്പോഴോ, എമർജൻസി സേവനങ്ങൾ നിങ്ങളിലേക്ക് എത്തുമെന്ന് ഉറപ്പാക്കാൻ കോൾ ബ്ലോക്കിംഗ് ഓഫാക്കും."</string>
     <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"ഇപ്പോൾ വീണ്ടും പ്രവർത്തനക്ഷമമാക്കുക"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> ബ്ലോക്ക് ചെയ്‌തു"</string>
+    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> ബ്ലോക്കുചെയ്‌തു"</string>
     <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> അൺബ്ലോക്കുചെയ്‌തു"</string>
     <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"അടിയന്തര നമ്പർ ബ്ലോക്കുചെയ്യാനാകുന്നില്ല."</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> മുമ്പേതന്നെ ബ്ലോക്കുചെയ്‌തതാണ്."</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"മിസ്‌ഡ് കോളുകൾ"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"കോൾ ബ്ലോക്ക് ചെയ്യൽ"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"ഈ കോൾ ചെയ്യുന്നത് നിങ്ങളുടെ <xliff:g id="OTHER_APP">%1$s</xliff:g> കോൾ അവസാനിക്കാനിടയാക്കും."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"ഈ കോൾ എങ്ങനെ ചെയ്യണമെന്ന് തിരഞ്ഞെടുക്കുക"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ഉപയോഗിച്ച് കോൾ റീഡയറക്‌റ്റ് ചെയ്യുക"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"എന്റെ ഫോൺ നമ്പർ ഉപയോഗിച്ച് കോൾ ചെയ്യുക"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"മറ്റൊരു നമ്പറോ അക്കൗണ്ടോ ഉപയോഗിച്ച് <xliff:g id="OTHER_APP">%1$s</xliff:g>-നെ കോൾ ചെയ്യാൻ അനുവദിക്കുക."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g>-ന് കോൾ ചെയ്യാനാവില്ല. സഹായത്തിനായി, ഡെവലപ്പറിനെ കോൺടാക്റ്റ് ചെയ്യുകയോ ആപ്പിനെ റീഡയറക്‌ട് ചെയ്യുകയോ ചെയ്‌ത്, മറ്റൊരു കോൾ ചെയ്യാൻ ശ്രമിക്കുക."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"കോൾ ബ്ലോക്ക് ചെയ്യൽ"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"കോൺടാക്‌റ്റുകളിൽ ഇല്ലാത്ത നമ്പറുകൾ"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index a1d9dd7..c1b382e 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -30,7 +30,7 @@
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Чанга яригчийг идэвхжүүлсэн."</string>
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Ярих боломжгүй байна. Сонин юу байна?"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Би тань руу одоо буцаагаад залгая."</string>
-    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Би тань руу дараа залгая."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Би тань руу дараа залгана."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Ярих боломжгүй байна. Дараа залгах уу?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Шуурхай хариунууд"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Шуурхай хариуг засах"</string>
@@ -56,7 +56,7 @@
     <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"Үндсэн болгох"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"Болих"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"Блоклосон дугаар"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Та блоклосон дугаараас дуудлага, мессеж хүлээн авахгүй."</string>
+    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Та хориглосон дугаараас дуудлага, мессеж хүлээн авахгүй."</string>
     <string name="block_number" msgid="1101252256321306179">"Дугаар нэмэх"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>-г блокоос гаргах уу?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Блокоос гаргах"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Аваагүй дуудлага"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Дуудлага хориглох"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Энэ дуудлагыг хийснээр таны <xliff:g id="OTHER_APP">%1$s</xliff:g> дуудлагыг дуусгана."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Энэ дуудлагыг хэрхэн хийхийг сонгох"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g>-г ашиглан дуудлагыг дахин чиглүүлэх"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Миний дугаарыг ашиглаж буй дуудлага"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Өөр дугаар эсвэл бүртгэл ашиглан дуудлага хийхийн тулд <xliff:g id="OTHER_APP">%1$s</xliff:g>-г зөвшөөрнө үү."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> дуудлага байршуулах боломжгүй. Тусламж авахын тулд өөр дуудлага дахин чиглүүлэх аппыг ашиглах эсвэл хөгжүүлэгчтэй холбогдоно уу."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Дуудлага хориглох"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Харилцагчид дотор байхгүй дугаарууд"</string>
@@ -103,7 +101,7 @@
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"Төлбөртэй утас"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"Төлбөртэй утаснаас залгасан дуудлагуудыг хориглох"</string>
     <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Тодорхойгүй"</string>
-    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Тодорхойгүй дугаараас ирсэн дуудлагуудыг блоклох"</string>
+    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Тодорхойгүй дугаараас ирсэн дуудлагуудыг хориглох"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"Дуудлага хориглох"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"Дуудлага хориглохыг идэвхгүй болгосон"</string>
     <string name="phone_strings_emergency_call_made_dialog_title_txt" msgid="7421611725400166580">"Яаралтай тусламжийн дуудлага хийсэн"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 7a44107..c4f274a 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -28,10 +28,10 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"मेसेज"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"कॉल नि.शब्‍द केला."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"स्‍पीकरफोन सक्षम केला."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"आत्ता बोलू शकत नाही. कशासाठी कॉल केला होता?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"मी तुम्हाला परत कॉल करेन."</string>
-    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"मी तुम्हाला नंतर कॉल करेन."</string>
-    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"आत्ता बोलू शकत नाही. नंतर कॉल कराल?"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"आत्ता बोलू शकत नाही. काय चालले आहे?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"मी आपल्‍याला परत कॉल करेन."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"मी आपल्‍याला नंतर कॉल करेन."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"आत्ता बोलू शकत नाही. नंतर कॉल करा?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"द्रुत प्रतिसाद"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"द्रुत प्रतिसाद संपादित करा"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
@@ -56,20 +56,20 @@
     <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"डीफॉल्ट सेट करा"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"रद्द करा"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"ब्लॉक केलेले नंबर"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"ब्लॉक केलेल्या नंबरवरुन तुम्हाला कॉल किंवा एसएमएस येणार नाहीत."</string>
+    <string name="blocked_numbers_msg" msgid="1045015186124965643">"तुम्हाला ब्लॉक केलेल्या नंबरवरून कॉल किंवा मजकूर येणार नाहीत."</string>
     <string name="block_number" msgid="1101252256321306179">"एक नंबर जोडा"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> अनब्लॉक करायचा?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"ब्लॉक करा"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"यावरील कॉल आणि एसएमएस ब्लॉक करा"</string>
+    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"यावरील कॉल आणि मजकूर ब्लॉक करा"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"फोन नंबर"</string>
-    <string name="block_button" msgid="8822290682524373357">"ब्लॉक करा"</string>
+    <string name="block_button" msgid="8822290682524373357">"अवरोधित करा"</string>
     <string name="non_primary_user" msgid="5180129233352533459">"फक्त डिव्हाइस मालक अवरोधित केलेले नंबर पाहू आणि व्यवस्थापित करू शकतो."</string>
     <string name="delete_icon_description" msgid="8903995728252556724">"ब्लॉक करा"</string>
     <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"अवरोधित करणे तात्पुरते बंद आहे"</string>
     <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"तुम्ही एखादा आणीबाणी नंबर डायल केला किंवा त्यावर मजकूर पाठविल्यानंतर, आणीबाणी सेवा आपल्याशी संपर्क साधू शकतात हे सुनिश्चित करण्यासाठी अवरोधित करणे बंद करते."</string>
     <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"आता पुन्हा-सक्षम करा"</string>
     <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> अवरोधित केला"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> अनब्लॉक केला"</string>
+    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> अनावरोधित केला"</string>
     <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"आणीबाणी नंबर अवरोधित करण्यात अक्षम."</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> आधीपासून अवरोधित केला आहे."</string>
     <string name="toast_personal_call_msg" msgid="5115361633476779723">"कॉल करण्यासाठी वैयक्तिक डायलर वापरणे"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"सुटलेले कॉल"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"कॉल ब्‍लॉक करणे"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"हा कॉल केल्याने तुमचा <xliff:g id="OTHER_APP">%1$s</xliff:g> कॉल समाप्त होईल."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"हा कॉल कसा करायचा ते निवडा"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> वापरून कॉल रीडिरेक्ट करा"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"माझा फोन नंबर वापरून कॉल करा"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"वेगळा नंबर किंवा खाते वापरून कॉल करण्याची <xliff:g id="OTHER_APP">%1$s</xliff:g> ला अनुमती द्या."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> द्वारे कॉल केला जाऊ शकत नाही. वेगळे कॉल रीडिरेक्टिंग अ‍ॅप वापरण्याचा किंवा मदतीसाठी डेव्हलपरशी संपर्क साधण्याचा प्रयत्न करा."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"कॉल ब्‍लॉक करणे"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"संपर्कांमध्‍ये क्रमांक नाहीत"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 4359582..64c21e1 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Panggilan tidak dijawab"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Sekatan Panggilan"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Membuat panggilan ini akan menamatkan panggilan <xliff:g id="OTHER_APP">%1$s</xliff:g> anda."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Pilih cara untuk membuat panggilan ini"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Ubah hala panggilan menggunakan <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Panggil menggunakan nombor telefon saya"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Benarkan <xliff:g id="OTHER_APP">%1$s</xliff:g> membuat panggilan menggunakan nombor atau akaun yang lain."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Panggilan tidak boleh dibuat oleh <xliff:g id="OTHER_APP">%1$s</xliff:g>. Cuba gunakan apl pengubahhalaan panggilan yang lain atau hubungi pembangun untuk mendapatkan bantuan."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Sekatan Panggilan"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Nombor bukan dalam Kenalan"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index dc2be21..25d8d6c 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"လွတ်သွားသော ဖုန်းခေါ်ဆိုမှုများ"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"ခေါ်ဆိုမှု ပိတ်ခြင်း"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"ဤခေါ်ဆိုမှု ပြုလုပ်ပါက <xliff:g id="OTHER_APP">%1$s</xliff:g> သုံးပြီးပြောနေခြင်းကို ဖြတ်ပစ်ပါမည်။"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"ဤခေါ်ဆိုမှု ပြုလုပ်ပုံကို ရွေးချယ်ပါ"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"ခေါ်ဆိုမှုကို <xliff:g id="OTHER_APP">%1$s</xliff:g> ဖြင့် တစ်ဆင့်ပြန်ညွှန်ရန်"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"ကျွန်ုပ်၏ ဖုန်းနံပါတ်ဖြင့် ဖုန်းခေါ်ရန်"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"အခြားနံပါတ် (သို့) အကောင့်သုံးပြီး ဖုန်းခေါ်ဆိုရန် <xliff:g id="OTHER_APP">%1$s</xliff:g> ကို ခွင့်ပြုပါ။"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ဖြင့်ဖုန်းခေါ်ဆို၍မရပါ။ ဖုန်းခေါ်ဆိုမှု တစ်ဆင့်ပြန်ညွှန်ပြသည့် အခြားအက်ပ်ကို အသုံးပြုပါ (သို့) အကူအညီအတွက် ဆော့ဖ်ဝဲအင်ဂျင်နီယာကို ဆက်သွယ်ပါ။"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"ခေါ်ဆိုမှု ပိတ်ခြင်း"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"\'အဆက်အသွယ်များ\' ထဲတွင် မရှိသော နံပါတ်များ"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 1d1a8f7..b2c4346 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Tapte anrop"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Anropsblokkering"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Samtalen din i <xliff:g id="OTHER_APP">%1$s</xliff:g> avsluttes hvis du foretar dette anropet."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Velg hvordan du vil ringe"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Viderekoble anropet med <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Ring med telefonnummeret mitt"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Tillat <xliff:g id="OTHER_APP">%1$s</xliff:g> å utføre anrop med et annet nummer eller en annen konto."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Anrop kan ikke utføres av <xliff:g id="OTHER_APP">%1$s</xliff:g>. Prøv å bruke en annen app for viderekobling av anrop eller ta kontakt med utvikleren for å få hjelp."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Anropsblokkering"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numre som ikke står i Kontakter"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index bec2e68..afdad88 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"छुटेका कलहरू"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"कलमाथि रोक लगाउने सुविधा"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"यो कल गर्नुले तपाईंको <xliff:g id="OTHER_APP">%1$s</xliff:g> कल अन्त्य गर्दछ।"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"यो कल गर्ने तरिका छनौट गर्नुहोस्"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> प्रयोग गरी कल रिडाइरेक्ट गर्नुहोस्"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"फोन नम्बर प्रयोग गरी कल गर्नुहोस्"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"कुनै अर्को नम्बर वा खाता प्रयोग गरी <xliff:g id="OTHER_APP">%1$s</xliff:g> लाई कल गर्ने अनुमति दिनुहोस्।"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> प्रयोग गरेर कल गर्न सकिएन। कुनै अर्को रिडिरेक्टिङ अनुप्रयोगको प्रयोग वा मद्दतका लागि विकासकर्तासँग सम्पर्क गरी हेर्नुहोस्।"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"कलमाथि रोक लगाउने सुविधा"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"सम्पर्क सूचीहरूमा नरहेका नम्बरहरू"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 75364ff..c7026ce 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Gemiste gesprekken"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Gesprekken blokkeren"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Als je dit gesprek start, wordt je <xliff:g id="OTHER_APP">%1$s</xliff:g>-gesprek beëindigd."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Kies hoe je dit gesprek wilt plaatsen"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Gesprek omleiden via <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Bellen via mijn telefoonnummer"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Sta <xliff:g id="OTHER_APP">%1$s</xliff:g> toe om een gesprek te plaatsen via een ander nummer of account."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> kan geen gesprek plaatsen. Probeer een andere app om gesprekken om te leiden of neem voor hulp contact op met de ontwikkelaar."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Gesprekken blokkeren"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Nummers die niet op je contactenlijst staan"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index e199029..8902b25 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -55,20 +55,20 @@
     <string name="change_default_call_screening_warning_message" msgid="3881131132588596837">"ଆପଣଙ୍କ ଯୋଗାଯୋଗରେ ନଥିବା କଲର୍‌ଙ୍କ ସମ୍ଵନ୍ଧରେ ସୂଚନା ଦେଖିବାକୁ <xliff:g id="NEW_APP">%s</xliff:g> ସକ୍ଷମ ହେବେ। କେବଳ ଆପଣ ବିଶ୍ଵାସ କରୁଥିବା ଆପ୍ସ ଡିଫଲ୍ଟ କଲ୍ ସ୍କ୍ରିନିଂ ଆପ୍ ଭାବରେ ସେଟ୍ ହେବା ଆବଶ୍ୟକ ଅଟେ।"</string>
     <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"ଡିଫଲ୍ଟ ସେଟ୍ କରନ୍ତୁ"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"ବାତିଲ୍‌ କରନ୍ତୁ"</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"ବ୍ଲକ୍ କରାଯାଇଥିବା ନମ୍ବର୍"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"ବ୍ଲକ୍ କରାଯାଇଥିବା ନମ୍ବର୍‌ରୁ ଆପଣ କଲ୍ କିମ୍ବା ଟେକ୍ସଟ୍ ଗ୍ରହଣ କରିପାରିବେ ନାହିଁ।"</string>
+    <string name="blocked_numbers" msgid="2751843139572970579">"ଅବରୋଧ କରାଯାଇଥିବା ନମ୍ବର୍"</string>
+    <string name="blocked_numbers_msg" msgid="1045015186124965643">"ଅବରୋଧ କରାଯାଇଥିବା ନମ୍ବର୍‌ରୁ ଆପଣ କଲ୍ କିମ୍ବା ଟେକ୍ସଟ୍ ଗ୍ରହଣ କରିପାରିବେ ନାହିଁ।"</string>
     <string name="block_number" msgid="1101252256321306179">"ଗୋଟିଏ ନମ୍ବର୍ ଯୋଡ଼ନ୍ତୁ"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>ରୁ ବ୍ଲକ୍ ହଟାଇବେ?"</string>
+    <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>ରୁ ଅବରୋଧ ହଟାଇବେ?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"ଅବରୋଧ ହଟାନ୍ତୁ"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"ଏହାର କଲ୍ ଓ ଟେକ୍ସଟ୍‌କୁ ବ୍ଲକ୍ କରନ୍ତୁ"</string>
+    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"ଏହାର କଲ୍ ଓ ଟେକ୍ସଟ୍‌କୁ ଅବରୋଧ କରନ୍ତୁ"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"ଫୋନ୍ ନମ୍ଵର୍"</string>
-    <string name="block_button" msgid="8822290682524373357">"ବ୍ଲକ୍ କରନ୍ତୁ"</string>
+    <string name="block_button" msgid="8822290682524373357">"ଅବରୋଧ କରନ୍ତୁ"</string>
     <string name="non_primary_user" msgid="5180129233352533459">"କେବଳ ଡିଭାଇସ୍‌ର ମାଲିକ ଅବରୋଧ କରାଯାଇଥିବା ନମ୍ବର୍‌କୁ ଦେଖିପାରିବେ ଓ ପରିଚାଳନା କରିପାରିବେ।"</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"ଅନବ୍ଲକ୍ କରନ୍ତୁ"</string>
+    <string name="delete_icon_description" msgid="8903995728252556724">"ଅବରୋଧ ହଟାନ୍ତୁ"</string>
     <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ଅସ୍ଥାୟୀରୂପେ ଅବରୋଧ ଅଫ୍ ଅଛି"</string>
     <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"ଆପଣ ଗୋଟିଏ ଜରୁରିକାଳୀନ ନମ୍ବର୍‌କୁ ଡାଏଲ୍ କିମ୍ବା ଟେକ୍ସଟ୍ କରିବା ପରେ, ଜରୁରିକାଳୀନ ସେବା ଆପଣଙ୍କୁ ଯୋଗାଯୋଗ କରିବାକୁ ସୁନିଶ୍ଚିତ କରିବା ପାଇଁ ଅବରୋଧକୁ ବନ୍ଦ କରିଦିଆଯାଇଥାଏ।"</string>
     <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"ବର୍ତ୍ତମାନ ପୁନଃସକ୍ଷମ କରନ୍ତୁ"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> ବ୍ଲକ୍ କରାଯାଇଛି"</string>
+    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> ଅବରୋଧ କରାଯାଇଛି"</string>
     <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> ଅବରୋଧ ହଟାଇଦିଆଯାଇଛି"</string>
     <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"ଜରୁରିକାଳୀନ ନମ୍ବର୍‌କୁ ଅବରୋଧ କରିବାରେ ଅକ୍ଷମ।"</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g>କୁ ଅବରୋଧ କରାଯାଇସରିଛି।"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"ମିସଡ୍ କଲ୍"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"କଲ୍‌କୁ ଅବରୋଧ କରନ୍ତୁ"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"ଏହି କଲ୍‌କୁ ସ୍ଥାପନ କରିବା ଦ୍ଵାରା ଆପଣଙ୍କର <xliff:g id="OTHER_APP">%1$s</xliff:g> କଲ୍ ସମାପ୍ତ ହୋ‌ଇଯିବ।"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"ଏହି କଲ୍ କିପରି କରିବାକୁ ଚାହାନ୍ତି ବାଛନ୍ତୁ"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ବ୍ୟବହାର କରି କଲ୍ ରିଡାଇରେକ୍ଟ କରନ୍ତୁ"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"ମୋ ଫୋନ୍ ନମ୍ବର ବ୍ୟବହାର କରି କଲ୍ କରନ୍ତୁ"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"ଏକ ଭିନ୍ନ ନମ୍ବର୍‍ କିମ୍ବା ଆକାଉଣ୍ଟ ବ୍ୟବହାର କରି ଏକ କଲ୍‍ କରିବା ପାଇଁ <xliff:g id="OTHER_APP">%1$s</xliff:g>କୁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> କଲ୍‍ କରିପାରିବ ନାହିଁ। ଏକ ଭିନ୍ନ କଲ୍‍ ପୁନଃନିର୍ଦ୍ଦେଶିତ ଆପ୍‍ ବ୍ୟବହାର କରି ଚେଷ୍ଟା କରନ୍ତୁ କିମ୍ବା ସାହାଯ୍ୟ ପାଇଁ ଡେଭେଲପ୍‍ରଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"କଲ୍‌କୁ ଅବରୋଧ କରନ୍ତୁ"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"ଯୋଗାଯୋଗରେ ନଥିବା ନମ୍ବର୍"</string>
@@ -103,7 +101,7 @@
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"ପେ-ଫୋନ୍"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"ପେ-ଫୋନ୍‌ରୁ କଲ୍‌କୁ ଅବରୋଧ କରନ୍ତୁ"</string>
     <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"ଅଜଣା"</string>
-    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"ଅଜଣା କଲକର୍ତ୍ତାଙ୍କର କଲ୍‌କୁ ବ୍ଲକ୍ କରନ୍ତୁ"</string>
+    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"ଅଚିହ୍ନା କଲକର୍ତ୍ତାଙ୍କର କଲ୍‌କୁ ଅବରୋଧ କରନ୍ତୁ"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"କଲ୍‌କୁ ଅବରୋଧ କରନ୍ତୁ"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"କଲ୍ ଅବରୋଧ ସୁବିଧାକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
     <string name="phone_strings_emergency_call_made_dialog_title_txt" msgid="7421611725400166580">"ଜରୁରିକାଳୀନ କଲ୍ କରାଗଲା"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 982a382..492081a 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -28,10 +28,10 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"ਸੁਨੇਹਾ"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"ਕਾਲ ਮਿਊਟ ਕੀਤੀ।"</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"ਸਪੀਕਰਫੋਨ ਸਮਰਥਿਤ।"</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"ਹੁਣੇ ਗੱਲ ਨਹੀਂ ਹੋ ਸਕਦੀ। ਕੀ ਹੋਇਆ?"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"ਹੁਣ ਗੱਲ ਨਹੀਂ ਹੋ ਸਕਦੀ। ਕੀ ਮਾਜ਼ਰਾ ਹੈ?"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"ਮੈਂ ਤੁਹਾਨੂੰ ਹੁਣੇ ਵਾਪਸ ਕਾਲ ਕਰਾਂਗਾ/ਗੀ।"</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"ਮੈਂ ਤੁਹਾਨੂੰ ਬਾਅਦ ਵਿੱਚ ਕਾਲ ਕਰਾਂਗਾ/ਗੀ।"</string>
-    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"ਹੁਣੇ ਗੱਲ ਨਹੀਂ ਹੋ ਸਕਦੀ। ਕੀ ਬਾਅਦ \'ਚ ਫ਼ੋਨ ਕਰ ਸਕਦੇ ਹੋ?"</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"ਹੁਣ ਗੱਲ ਨਹੀਂ ਹੋ ਸਕਦੀ। ਕੀ ਮੈਨੂੰ ਬਾਅਦ ਵਿੱਚ ਫ਼ੋਨ ਕਰ ਸਕਦੇ ਹੋ?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"ਤਤਕਾਲ ਜਵਾਬ"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"ਤਤਕਾਲ ਜਵਾਬ ਸੰਪਾਦਿਤ ਕਰੋ"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
@@ -55,21 +55,21 @@
     <string name="change_default_call_screening_warning_message" msgid="3881131132588596837">"<xliff:g id="NEW_APP">%s</xliff:g> ਉਹਨਾਂ ਕਾਲਰਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਦੇਖ ਸਕੇਗੀ ਜੋ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਵਿੱਚ ਨਹੀਂ ਹਨ ਅਤੇ ਉਹਨਾਂ ਕਾਲਾਂ ਨੂੰ ਬਲਾਕ ਕਰ ਸਕੇਗੀ। ਸਿਰਫ਼ ਉਹਨਾਂ ਐਪਾਂ ਨੂੰ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਸਕ੍ਰੀਨਿੰਗ ਐਪ ਵਜੋਂ ਸੈੱਟ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਜਿਨ੍ਹਾਂ \'ਤੇ ਤੁਸੀਂ ਭਰੋਸਾ ਕਰਦੇ ਹੋ।"</string>
     <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"ਪੂਰਵ-ਨਿਰਧਾਰਤ ਸੈੱਟ ਕਰੋ"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"ਰੱਦ ਕਰੋ"</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"ਬਲਾਕ ਕੀਤੇ ਨੰਬਰ"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"ਤੁਹਾਨੂੰ ਬਲਾਕ ਕੀਤੇ ਨੰਬਰਾਂ ਤੋਂ ਕਾਲਾਂ ਜਾਂ ਲਿਖਤ ਸੁਨੇਹੇ ਪ੍ਰਾਪਤ ਨਹੀਂ ਹੋਣਗੇ।"</string>
+    <string name="blocked_numbers" msgid="2751843139572970579">"ਬਲੌਕ ਕੀਤੇ ਗਏ ਨੰਬਰ"</string>
+    <string name="blocked_numbers_msg" msgid="1045015186124965643">"ਤੁਹਾਨੂੰ ਬਲੌਕ ਕੀਤੇ ਨੰਬਰਾਂ ਤੋਂ ਕਾਲਾਂ ਜਾਂ ਲਿਖਤ ਸੁਨੇਹੇ ਪ੍ਰਾਪਤ ਨਹੀਂ ਹੋਣਗੇ।"</string>
     <string name="block_number" msgid="1101252256321306179">"ਇੱਕ ਨੰਬਰ ਸ਼ਾਮਲ ਕਰੋ"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"ਕੀ <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> ਨੂੰ ਅਣਬਲਾਕ ਕਰਨਾ ਹੈ?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"ਅਣਬਲਾਕ ਕਰੋ"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"ਇਸ ਨੰਬਰ ਤੋਂ ਕਾਲਾਂ ਅਤੇ ਲਿਖਤੀ ਸੁਨੇਹਿਆਂ ਨੂੰ ਬਲਾਕ ਕਰੋ"</string>
+    <string name="unblock_dialog_body" msgid="1614238499771862793">"ਕੀ <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> ਨੂੰ ਅਣਬਲੌਕ ਕਰਨਾ ਹੈ?"</string>
+    <string name="unblock_button" msgid="3078048901972674170">"ਅਣਬਲੌਕ ਕਰੋ"</string>
+    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"ਇਸ ਨੰਬਰ ਤੋਂ ਕਾਲਾਂ ਅਤੇ ਲਿਖਤੀ ਸੁਨੇਹਿਆਂ ਨੂੰ ਬਲੌਕ ਕਰੋ"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"ਫ਼ੋਨ ਨੰਬਰ"</string>
-    <string name="block_button" msgid="8822290682524373357">"ਬਲਾਕ ਕਰੋ"</string>
+    <string name="block_button" msgid="8822290682524373357">"ਬਲੌਕ ਕਰੋ"</string>
     <string name="non_primary_user" msgid="5180129233352533459">"ਸਿਰਫ਼ ਡੀਵਾਈਸ ਮਾਲਕ ਹੀ ਬਲੌਕ ਕੀਤੇ ਗਏ ਨੰਬਰਾਂ ਨੂੰ  ਦੇਖ  ਅਤੇ ਪ੍ਰਬੰਧਿਤ ਕਰ ਸਕਦਾ ਹੈ।"</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"ਅਣਬਲਾਕ ਕਰੋ"</string>
+    <string name="delete_icon_description" msgid="8903995728252556724">"ਅਨਬਲੌਕ ਕਰੋ"</string>
     <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ਬਲੌਕਿੰਗ ਆਰਜ਼ੀ ਤੌਰ \'ਤੇ ਬੰਦ ਹੈ"</string>
     <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਇੱਕ ਐਮਰਜੈਂਸੀ ਨੰਬਰ ਨੂੰ ਡਾਇਲ ਕੀਤੇ ਜਾਣ ਜਾਂ ਲਿਖਤ ਸੁਨੇਹਾ ਭੇਜੇ ਜਾਣ ਤੋਂ ਬਾਅਦ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਬਲੌਕਿੰਗ ਨੂੰ ਬੰਦ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਕਿ ਐਮਰਜੈਂਸੀ ਸੇਵਾਵਾਂ ਤੁਹਾਨੂੰ ਸੰਪਰਕ ਕਰ ਸਕਣ।"</string>
     <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"ਹੁਣੇ ਦੁਬਾਰਾ ਯੋਗ ਬਣਾਓ"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> ਬਲਾਕ ਕੀਤਾ ਗਿਆ"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> ਅਣਬਲਾਕ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> ਬਲੌਕ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> ਅਣਬਲੌਕ ਕੀਤਾ ਗਿਆ"</string>
     <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"ਐਮਰਜੈਂਸੀ ਨੰਬਰ ਨੂੰ ਬਲੌਕ ਕਰਨ ਵਿੱਚ ਅਸਮਰੱਥ।"</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਬਲੌਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।"</string>
     <string name="toast_personal_call_msg" msgid="5115361633476779723">"ਕਾਲ ਕਰਨ ਲਈ ਨਿੱਜੀ ਡਾਇਲਰ ਦੀ ਵਰਤੋਂ ਕਰਨੀ"</string>
@@ -81,8 +81,8 @@
     <string name="answering_ends_other_managed_call" msgid="5186137550267947785">"ਜਵਾਬ ਦੇਣ ਨਾਲ ਤੁਹਾਡੀ ਜਾਰੀ ਕਾਲ ਸਮਾਪਤ ਹੋ ਜਾਵੇਗੀ"</string>
     <string name="answering_ends_other_managed_calls" msgid="6429838309560397988">"ਜਵਾਬ ਦੇਣ ਨਾਲ ਤੁਹਾਡੀਆਂ ਜਾਰੀ ਕਾਲਾਂ ਸਮਾਪਤ ਹੋ ਜਾਣਗੀਆਂ"</string>
     <string name="answering_ends_other_managed_video_call" msgid="1585423762458248435">"ਜਵਾਬ ਦੇਣ ਨਾਲ ਤੁਹਾਡੀ ਜਾਰੀ ਵੀਡੀਓ ਕਾਲ ਸਮਾਪਤ ਹੋ ਜਾਵੇਗੀ"</string>
-    <string name="answer_incoming_call" msgid="4140530013111794587">"ਕਾਲ ਚੁੱਕੋ"</string>
-    <string name="decline_incoming_call" msgid="806026168661598368">"ਕਾਲ ਕੱਟੋ"</string>
+    <string name="answer_incoming_call" msgid="4140530013111794587">"ਜਵਾਬ ਦਿਓ"</string>
+    <string name="decline_incoming_call" msgid="806026168661598368">"ਅਸਵੀਕਾਰ ਕਰੋ"</string>
     <string name="cant_call_due_to_no_supported_service" msgid="5128162419227548372">"ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਕਿਉਂਕਿ ਇੱਥੇ ਅਜਿਹੇ ਕੋਈ ਕਾਲਿੰਗ ਖਾਤੇ ਨਹੀਂ ਹਨ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਇਸ ਕਿਸਮ ਦੀਆਂ ਕਾਲਾਂ ਦੀ ਸੁਵਿਧਾ ਹੋਵੇ।"</string>
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"ਤੁਹਾਡੀ <xliff:g id="OTHER_CALL">%1$s</xliff:g> ਕਾਲ ਦੇ ਕਾਰਨ ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"ਤੁਹਾਡੀਆਂ <xliff:g id="OTHER_CALL">%1$s</xliff:g> ਕਾਲਾਂ ਦੇ ਕਾਰਨ ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"ਖੁੰਝੀਆਂ ਕਾਲਾਂ"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"ਕਾਲ ਬਲਾਕਿੰਗ"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"ਇਹ ਕਾਲ ਕਰਨ ਨਾਲ ਤੁਹਾਡੀ <xliff:g id="OTHER_APP">%1$s</xliff:g> ਕਾਲ ਸਮਾਪਤ ਹੋ ਜਾਵੇਗੀ।"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"ਚੁਣੋ ਕਿ ਕਾਲ ਕਿਵੇਂ ਕਰਨੀ ਹੈ"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਾਲ ਰੀਡਾਇਰੈਕਟ ਕਰੋ"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"ਮੇਰਾ ਫ਼ੋਨ ਨੰਬਰ ਵਰਤ ਕੇ ਕਾਲ ਕਰੋ"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ਨੂੰ ਕਾਲ ਕਰਨ ਲਈ ਕਿਸੇ ਵੱਖਰੇ ਨੰਬਰ ਜਾਂ ਖਾਤੇ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦਿਓ।"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ਤੋਂ ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ। ਕਾਲ ਨੂੰ ਰੀਡਾਇਰੈਕਟ ਕਰਨ ਲਈ ਕੋਈ ਵੱਖਰੀ ਐਪ ਵਰਤ ਕੇ ਦੇਖੋ ਜਾਂ ਮਦਦ ਲਈ ਵਿਕਾਸਕਾਰ ਨਾਲ ਸੰਪਰਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"ਕਾਲ ਬਲਾਕਿੰਗ"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"ਨੰਬਰ ਜੋ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ ਵਿੱਚ ਨਹੀਂ ਹਨ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index cc8263f..a7fd99a 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -60,7 +60,7 @@
     <string name="block_number" msgid="1101252256321306179">"Dodaj numer"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"Odblokować <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Odblokuj"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokuj połączenia i SMS-y z numeru:"</string>
+    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokuj połączenia i SMS-y z:"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"Numer telefonu"</string>
     <string name="block_button" msgid="8822290682524373357">"Zablokuj"</string>
     <string name="non_primary_user" msgid="5180129233352533459">"Tylko właściciel urządzenia może przeglądać zablokowane numery i nimi zarządzać."</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Połączenia nieodebrane"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Blokowanie połączeń"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Jeśli zadzwonisz, połączenie w aplikacji <xliff:g id="OTHER_APP">%1$s</xliff:g> zostanie zakończone."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Wybierz, jak chcesz zadzwonić"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Przekieruj połączenie za pomocą aplikacji <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Zadzwoń z mojego numeru telefonu"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Zezwalaj aplikacji <xliff:g id="OTHER_APP">%1$s</xliff:g> na nawiązywanie połączeń przy użyciu innego numeru lub konta."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Aplikacja <xliff:g id="OTHER_APP">%1$s</xliff:g> nie może nawiązać połączenia. Skorzystaj z innej aplikacji do przekierowywania połączeń lub skontaktuj się z deweloperem i poproś o pomoc."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Blokowanie połączeń"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numery spoza Kontaktów"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 28f5001..02e3bcc 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Chamadas não atendidas"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Bloqueio de chamadas"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Ao efetuar esta chamada, irá terminar a chamada na aplicação <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Escolha como pretende efetuar esta chamada"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Redirecionar chamada através de <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Ligar com o meu número de telefone"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Permitir que a aplicação <xliff:g id="OTHER_APP">%1$s</xliff:g> efetue uma chamada através de um número ou conta diferente."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Não é possível efetuar uma chamada através da aplicação <xliff:g id="OTHER_APP">%1$s</xliff:g>. Experimente utilizar uma aplicação de redirecionamento de chamadas diferente ou contactar o programador para obter ajuda."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Bloqueio de chamadas"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Números não incluídos nos Contactos"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index af7ed9f..c818e98 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -38,7 +38,7 @@
     <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Resposta rápida"</string>
     <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Mensagem enviada para <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
     <string name="respond_via_sms_failure_format" msgid="90791421289769504">"Falha ao enviar a mensagem para <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
-    <string name="enable_account_preference_title" msgid="2021848090086481720">"Contas para chamadas"</string>
+    <string name="enable_account_preference_title" msgid="2021848090086481720">"Contas de chamadas"</string>
     <string name="outgoing_call_not_allowed_user_restriction" msgid="6872406278300131364">"Somente chamadas de emergência são permitidas."</string>
     <string name="outgoing_call_not_allowed_no_permission" msgid="1996571596464271228">"Este aplicativo não pode fazer chamadas sem a permissão do smartphone."</string>
     <string name="outgoing_call_error_no_phone_number_supplied" msgid="1940125199802007505">"Para realizar uma chamada, digite um número válido."</string>
@@ -60,17 +60,17 @@
     <string name="block_number" msgid="1101252256321306179">"Adicionar um número"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"Desbloquear <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Desbloquear"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Bloquear chamadas e mensagens de:"</string>
+    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Bloquear chamadas e mensagens de texto de"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"Nº de telefone"</string>
     <string name="block_button" msgid="8822290682524373357">"Bloquear"</string>
     <string name="non_primary_user" msgid="5180129233352533459">"Apenas o proprietário do dispositivo pode ver e gerenciar os números bloqueados."</string>
     <string name="delete_icon_description" msgid="8903995728252556724">"Desbloquear"</string>
     <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Bloqueio temporariamente desativado"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Após discar ou enviar uma mensagem de texto para um telefone de emergência, o bloqueio é desativado para garantir o contato do serviço de emergência."</string>
+    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Após discar ou enviar uma mensagem de texto para um número de emergência, o bloqueio é desativado para garantir o contato do serviço de emergência com você."</string>
     <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Reativar agora"</string>
     <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"O número <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> está bloqueado."</string>
     <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"O número <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> está desbloqueado."</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Não é possível bloquear o telefone de emergência."</string>
+    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Não é possível bloquear o número de emergência."</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"O número <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> já está bloqueado."</string>
     <string name="toast_personal_call_msg" msgid="5115361633476779723">"Usando o discador pessoal para fazer a chamada"</string>
     <string name="notification_incoming_call" msgid="7713197997773986670">"Chamada de <xliff:g id="CALL_FROM">%2$s</xliff:g> no <xliff:g id="CALL_VIA">%1$s</xliff:g>"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Chamadas perdidas"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Bloqueio de chamadas"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Se você ligar agora, sua chamada será encerrada no <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Escolha como fazer esta chamada"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Redirecionar a chamada usando o <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Ligar usando meu número de telefone"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Permita que o <xliff:g id="OTHER_APP">%1$s</xliff:g> faça uma chamada usando um número ou uma conta diferente."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Não é possível fazer uma chamada com o <xliff:g id="OTHER_APP">%1$s</xliff:g>. Use um app de redirecionamento de chamadas diferente ou entre em contato com o desenvolvedor para receber ajuda."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Bloqueio de chamadas"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Números que não estão nos contatos"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index a1d2ec0..5ccd94a 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Apeluri nepreluate"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Blocarea apelurilor"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Dacă inițiați acest apel, cel din <xliff:g id="OTHER_APP">%1$s</xliff:g> va fi încheiat."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Alegeți cum vreți să inițiați apelul"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Redirecționați apelul folosind <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Apelează folosind numărul meu"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Permiteți aplicației <xliff:g id="OTHER_APP">%1$s</xliff:g> pentru a iniția un apel folosind alt număr sau cont."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Apelul nu poate fi inițiat de <xliff:g id="OTHER_APP">%1$s</xliff:g>. Încercați să folosiți o aplicație de redirecționare a apelurilor sau să contactați dezvoltatorul pentru a solicita ajutorul."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Blocarea apelurilor"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numere care nu sunt în Agendă"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 6018347..ed40f98 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -68,8 +68,8 @@
     <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Блокировка временно снята"</string>
     <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"После набора или отправки сообщения на номер экстренной службы блокировка будет выключена, чтобы специалисты могли связаться с вами."</string>
     <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Включить блокировку"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"Номер <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> заблокирован."</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Номер <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> разблокирован."</string>
+    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"Номер <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> заблокирован"</string>
+    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Номер <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> разблокирован"</string>
     <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Невозможно заблокировать номер экстренной службы."</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"Номер <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> уже заблокирован."</string>
     <string name="toast_personal_call_msg" msgid="5115361633476779723">"Набор номера с помощью персонализированной панели"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Пропущенные вызовы"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Блокировка вызовов"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Если вы начнете этот звонок, вызов в <xliff:g id="OTHER_APP">%1$s</xliff:g> будет завершен."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Выберите, как хотите позвонить."</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Перенаправить вызов с использованием <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Позвонить с использованием моего номера телефона"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Разрешить приложению \"<xliff:g id="OTHER_APP">%1$s</xliff:g>\" совершать звонки с использованием другого номера или аккаунта."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Невозможно использовать для звонка приложение \"<xliff:g id="OTHER_APP">%1$s</xliff:g>\". Попробуйте воспользоваться другим приложением для перенаправления звонков или обратитесь за помощью к разработчику."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Блокировка вызовов"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Незнакомые номера"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index fabb125..fc67adf 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"මඟ හැරුණු ඇමතුම්"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"ඇමතුම් අවහිර කිරීම"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"මෙම ඇමතුම ගැනීම ඔබේ <xliff:g id="OTHER_APP">%1$s</xliff:g> ඇමතුම අවසන් කරනු ඇත."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"මෙම ඇමතුම ගන්නා ආකාරය තෝරන්න"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> භාවිතයෙන් ඇමතුම ප්‍රතියොමු කරන්න"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"මගේ දුරකථන අංකය භාවිතයෙන් ඇමතුම"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"වෙනස් අංකයක් හෝ ගිණුමක් භාවිතයෙන් ඇමතුම ගැනීමට <xliff:g id="OTHER_APP">%1$s</xliff:g>ට ඉඩ දෙන්න."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"ඇමතුම <xliff:g id="OTHER_APP">%1$s</xliff:g> මගින් ගැනීමට නොහැකිය. වෙනස් ඇමතුම ප්‍රතියොමු කිරීමේ යෙදුමක් භාවිත කිරීමට හෝ සහාය සඳහා සංවර්ධකයා අැමතීමට උත්සාහ කරන්න."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"ඇමතුම් අවහිර කිරීම"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"සම්බන්ධතා තුළ නොමැති අංක"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 9b6f3b0..4fb52a1 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -58,7 +58,7 @@
     <string name="blocked_numbers" msgid="2751843139572970579">"Blokované čísla"</string>
     <string name="blocked_numbers_msg" msgid="1045015186124965643">"Z blokovaných čísel nebudete prijímať hovory ani textové správy."</string>
     <string name="block_number" msgid="1101252256321306179">"Pridať číslo"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Chcete odblokovať číslo <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
+    <string name="unblock_dialog_body" msgid="1614238499771862793">"Odblokovať číslo <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Odblokovať"</string>
     <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokovať hovory a textové správy"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefónne číslo"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Zmeškané hovory"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Blokovanie hovorov"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Ak uskutočníte tento hovor, hovor cez <xliff:g id="OTHER_APP">%1$s</xliff:g> bude ukončený."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Vyberte, ako chcete tento hovor uskutočniť"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Presmerovať hovor cez aplikáciu <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Zavolať pomocou môjho telefónneho čísla"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Ak chcete uskutočniť hovor pomocou iného čísla alebo účtu, povoľte aplikáciu <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Aplikácia <xliff:g id="OTHER_APP">%1$s</xliff:g> nemôže uskutočniť hovor. Skúste použiť inú aplikáciu na presmerovanie hovorov alebo kontaktujte vývojára a požiadajte o pomoc."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Blokovanie hovorov"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Čísla, ktoré nie sú v kontaktoch"</string>
@@ -102,7 +100,7 @@
     <string name="phone_settings_private_num_summary_txt" msgid="7516314821207782191">"Blokovať volajúcich, ktorí skrývajú svoje číslo"</string>
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"Verejný telefón"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"Blokovať hovory z verejných telefónov"</string>
-    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Neznáme číslo"</string>
+    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Nerozpoznané číslo"</string>
     <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Blokovať hovory od nerozpoznaných volajúcich"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"Blokovanie hovorov"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"Blokovanie hovorov je vypnuté"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 2525c69..c7886c7 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Neodgovorjeni klici"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Blokiranje klicev"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Če opravite ta klic, bo končan klic prek aplikacije <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Izberite, kako želite opraviti klic"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Preusmeri klic z aplikacijo <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Kliči z mojo telefonsko številko"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Omogočite aplikaciji <xliff:g id="OTHER_APP">%1$s</xliff:g>, da klic opravi prek druge številke ali računa."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"V aplikaciji <xliff:g id="OTHER_APP">%1$s</xliff:g> ni mogoče opraviti klica. Uporabite drugo aplikacijo za preusmerjanje klicev ali se za pomoč obrnite na razvijalca."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Blokiranje klicev"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Številke, ki niso v stikih"</string>
@@ -103,7 +101,7 @@
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"Telefonska govorilnica"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"Blokirajte klice iz telefonskih govorilnic"</string>
     <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Neznano"</string>
-    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Blokiranje klicev neznanih klicateljev"</string>
+    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Blokirajte klice neznanih klicateljev"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"Blokiranje klicev"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"Blokiranje klicev je onemogočeno"</string>
     <string name="phone_strings_emergency_call_made_dialog_title_txt" msgid="7421611725400166580">"Opravljen je klic v sili"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 0e7134f..76c086c 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Telefonatat e humbura"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Bllokimi i telefonatave"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Kryerja e kësaj telefonate do të mbyllë telefonatën tënde në <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Zgjidh se si do ta kryesh këtë telefonatë"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Ridrejtoje telefonatën duke përdorur <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Telefono duke përdorur numrin tim të telefonit"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Lejo që <xliff:g id="OTHER_APP">%1$s</xliff:g> ta kryejë telefonatën duke përdorur një numër ose një llogari tjetër."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Telefonata nuk mund të kryhet nga <xliff:g id="OTHER_APP">%1$s</xliff:g>. Provo të përdorësh një aplikacion tjetër për ridrejtimin e telefonatave ose kontakto me zhvilluesin për ndihmë."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Bllokimi i telefonatave"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Numrat që nuk janë te \"Kontaktet\""</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index c7255e1..8797519 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -57,7 +57,7 @@
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"Откажи"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"Блокирани бројеви"</string>
     <string name="blocked_numbers_msg" msgid="1045015186124965643">"Нећете примати позиве ни SMS-ове са блокираних бројева."</string>
-    <string name="block_number" msgid="1101252256321306179">"Додајте број"</string>
+    <string name="block_number" msgid="1101252256321306179">"Додај број"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"Желите ли да деблокирате <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Деблокирај"</string>
     <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Блокирајте позиве и SMS-ове од"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Пропуштени позиви"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Блокирање позива"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Ако упутите овај позив, завршићете <xliff:g id="OTHER_APP">%1$s</xliff:g> позив."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Изаберите како желите да упутите овај позив"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Преусмери позив помоћу: <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Позови помоћу мог броја телефона"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Дозволите да <xliff:g id="OTHER_APP">%1$s</xliff:g> упути позив помоћу другог броја или налога."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> не може да упути позив. Пробајте помоћу друге апликације за преусмеравање позива или затражите помоћ од програмера."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Блокирање позива"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Бројеви који нису у контактима"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 49a6837..d3d5880 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -58,8 +58,8 @@
     <string name="blocked_numbers" msgid="2751843139572970579">"Blockerade nummer"</string>
     <string name="blocked_numbers_msg" msgid="1045015186124965643">"Du kommer inte ta emot samtal eller sms från blockerade nummer."</string>
     <string name="block_number" msgid="1101252256321306179">"Lägg till ett telefonnummer"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Vill du avblockera <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Avblockera"</string>
+    <string name="unblock_dialog_body" msgid="1614238499771862793">"Vill du häva blockeringen av <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
+    <string name="unblock_button" msgid="3078048901972674170">"Häv blockering"</string>
     <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blockera samtal och sms från"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonnummer"</string>
     <string name="block_button" msgid="8822290682524373357">"Blockera"</string>
@@ -68,7 +68,7 @@
     <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blockeringen har inaktiverats tillfälligt"</string>
     <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"När du ringer eller sms:ar ett nödnummer inaktiveras blockering för att säkerställa att räddningstjänsten kan kontakta dig."</string>
     <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Återaktivera nu"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> blockerade"</string>
+    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> blockerat"</string>
     <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> avblockerat"</string>
     <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Det går inte att blockera nödnummer."</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> är redan blockerat."</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Missade samtal"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Samtalsblockering"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Ringer du det här samtalet avslutas samtalet i <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Välj hur du vill ringa samtalet"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Omdirigera samtal med <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Ring med mitt telefonnummer"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Tillåt att <xliff:g id="OTHER_APP">%1$s</xliff:g> ringer med ett annat nummer eller konto."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Det går inte att ringa med <xliff:g id="OTHER_APP">%1$s</xliff:g>. Försök att omdirigera samtalet med en annan app eller kontakta utvecklaren för hjälp."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Samtalsblockering"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Nummer inte i Kontakter"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 9b35001..55dba0d 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Simu ambazo hukujibu"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Kuzuia Simu"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Ukipiga simu hii, simu yako kwenye <xliff:g id="OTHER_APP">%1$s</xliff:g> itakatwa."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Chagua jinsi utakavyopiga simu hii"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Elekeza simu ukitumia <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Piga simu ukitumia nambari yangu ya simu"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Ruhusu <xliff:g id="OTHER_APP">%1$s</xliff:g> ipige simu kwa kutumia nambari au akaunti tofauti."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> imeshindwa kupiga simu. Jaribu kutumia programu nyingine inayoelekeza simu kwingine au uwasiliane na msanidi programu kwa usaidizi."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Kuzuia Simu"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Nambari ambazo haziko kwenye Anwani"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 764532e..3171a3c 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -28,7 +28,7 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"செய்தி"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"அழைப்பு முடக்கப்பட்டது."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"ஸ்பீக்கர்ஃபோன் இயக்கப்பட்டது."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"இப்போது பேசமுடியாது. என்ன விஷயம்?"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"இப்போது பேசமுடியாது. என்ன விசேஷம்?"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"சிறிதுநேரம் கழித்து நான் அழைக்கிறேன்."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"பிறகு அழைக்கிறேன்."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"இப்போது பேசமுடியாது, பிறகு அழைக்கிறீர்களா?"</string>
@@ -49,7 +49,7 @@
     <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"<xliff:g id="NEW_APP">%s</xliff:g>ஐ இயல்புநிலை ஃபோன் பயன்பாடாக அமைக்கவா?"</string>
     <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"இயல்புநிலையாக அமை"</string>
     <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"ரத்துசெய்"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"அழைப்புகளின் எல்லா அம்சங்களையும் <xliff:g id="NEW_APP">%s</xliff:g> ஆல் செயல்படுத்தவும் கட்டுப்படுத்தவும் முடியும். நீங்கள் நம்பகமானது என கருதும் ஆப்ஸை மட்டுமே இயல்புநிலை ஃபோன் பயன்பாடாக அமைக்க வேண்டும்."</string>
+    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"அழைப்புகளின் எல்லா அம்சங்களையும் <xliff:g id="NEW_APP">%s</xliff:g> ஆல் செயல்படுத்தவும் கட்டுப்படுத்தவும் முடியும். நீங்கள் நம்பகமானது என கருதும் பயன்பாடுகளை மட்டுமே இயல்புநிலை ஃபோன் பயன்பாடாக அமைக்க வேண்டும்."</string>
     <string name="change_default_call_screening_dialog_title" msgid="8714534302859934164">"<xliff:g id="NEW_APP">%s</xliff:g>ஐ இயல்பு அழைப்புச் சோதனை ஆப்ஸாக அமைக்கவா?"</string>
     <string name="change_default_call_screening_warning_message_for_disable_old_app" msgid="5128397581530600941">"<xliff:g id="OLD_APP">%s</xliff:g> ஆப்ஸால் இனி அழைப்புகளைச் சோதனைச் செய்ய முடியாது."</string>
     <string name="change_default_call_screening_warning_message" msgid="3881131132588596837">"<xliff:g id="NEW_APP">%s</xliff:g> ஆப்ஸால் உங்கள் தொடர்புகளில் இல்லாத அழைப்பாளர்களைப் பற்றிய தகவலைப் பார்க்க முடியும், மேலும் அவர்கள் செய்யும் அழைப்புகளைத் தடுக்கவும் முடியும். நீங்கள் நம்பும் ஆப்ஸை மட்டுமே இயல்பு அழைப்புச் சோதனை ஆப்ஸாக அமைக்க வேண்டும்."</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"தவறிய அழைப்புகள்"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"அழைப்புத் தடுப்பு"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"புதிய அழைப்பைச் செய்தால், செயலில் உள்ள <xliff:g id="OTHER_APP">%1$s</xliff:g> அழைப்பு துண்டிக்கப்படும்."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"இந்த அழைப்பை எவ்வாறு மேற்கொள்ள வேண்டும் எனத் தேர்ந்தெடுக்கவும்"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g>ஐப் பயன்படுத்தி அழைப்பைத் திருப்பி விடு"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"எனது மொபைல் எண்ணைப் பயன்படுத்தி அழை"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"வேறொரு எண் அல்லது கணக்கைப் பயன்படுத்தி அழைக்க, <xliff:g id="OTHER_APP">%1$s</xliff:g>ஐ அனுமதிக்கவும்."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> மூலம் அழைக்க முடியாது. அழைப்பைத் திருப்பிவிடுவதற்கான வேறொரு ஆப்ஸைப் பயன்படுத்திப் பார்க்கவும் அல்லது டெவெலப்பரைத் தொடர்பு கொண்டு, உதவி பெறவும்."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"அழைப்புத் தடுப்பு"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"தொடர்புகளில் இல்லாத எண்கள்"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 23067e6..dbe52cf 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"సమాధానం ఇవ్వని కాల్‌లు"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"కాల్ బ్లాక్ చేయడం"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"ఈ కాల్ చేయడం వలన మీ <xliff:g id="OTHER_APP">%1$s</xliff:g> కాల్ ముగుస్తుంది."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"ఈ కాల్ ఎలా చేయాలో ఎంచుకోండి"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ఉపయోగించి కాల్ మళ్లించు"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"నా ఫోన్ నంబర్ ఉపయోగించి కాల్ చేయి"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"వేరే నంబర్ లేదా ఖాతాను ఉపయోగించి కాల్ చేయడానికి <xliff:g id="OTHER_APP">%1$s</xliff:g>ని అనుమతించండి."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ద్వారా కాల్ చేయలేము. వేరే కాల్ మళ్లింపు యాప్ ఉపయోగించండి లేదా సహాయం కోసం డెవలపర్‌ను సంప్రదించడానికి ప్రయత్నించండి."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"కాల్ బ్లాక్ చేయడం"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"పరిచయాలలో లేని నంబర్‌లు"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 514c123..2b49758 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"สายที่ไม่ได้รับ"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"การบล็อกสาย"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"การโทรออกนี้จะวางสายใน <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"เลือกวิธีโทรออก"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"โอนสายโดยใช้ <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"โทรออกโดยใช้หมายเลขโทรศัพท์ของฉัน"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"อนุญาตให้ <xliff:g id="OTHER_APP">%1$s</xliff:g> โทรออกโดยใช้หมายเลขหรือบัญชีอื่น"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> จะไม่รองรับการโทรออก ลองใช้แอปการเปลี่ยนเส้นทางการโทรอื่นหรือติดต่อนักพัฒนาซอฟต์แวร์เพื่อขอความช่วยเหลือ"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"การบล็อกสาย"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"หมายเลขที่ไม่อยู่ในรายชื่อติดต่อ"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index d340b41..7c0ea81 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -29,7 +29,7 @@
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Naka-mute ang tawag."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Pinapagana ang speakerphone."</string>
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Di masagot ngayon. Ano\'ng meron?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Ako na lang ang tatawag sa \'yo."</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Tawagan kita muli."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Tawagan kita mamaya."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Di masagot ngayon. Tawag ka mamaya?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Mga mabilisang tugon"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Mga hindi nasagot na tawag"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Pag-block ng Tawag"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Tatapusin ng pagtawag na ito ang iyong tawag sa <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Piliin kung paano gagawin ang tawag na ito"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"I-redirect ang tawag gamit ang <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Tumawag gamit ang aking numero ng telepono"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Payagan ang <xliff:g id="OTHER_APP">%1$s</xliff:g> na tumawag gamit ang ibang numero o account."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Hindi makatawag sa pamamagitan ng <xliff:g id="OTHER_APP">%1$s</xliff:g>. Subukang gumamit ng ibang app sa pag-redirect ng tawag o makipag-ugnayan sa developer para sa tulong."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Pag-block ng Tawag"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Mga numerong wala sa Mga Contact"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index b9d74bd..132ef54 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -56,11 +56,11 @@
     <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"Varsayılan Olarak Ayarla"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"İptal"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"Engellenen numaralar"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Engellenen numaralardan gelen telefon aramalarını veya kısa mesajları almayacaksınız."</string>
+    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Engellenen numaralardan gelen çağrıları veya kısa mesajları almazsınız."</string>
     <string name="block_number" msgid="1101252256321306179">"Numara ekle"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> numaralı telefonun engellemesi kaldırılsın mı?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Engellemeyi kaldır"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Şu numaradan gelen aramaları ve kısa mesajları engelle:"</string>
+    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Şu numaradan gelen çağrıları ve kısa mesajları engelle:"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefon numarası"</string>
     <string name="block_button" msgid="8822290682524373357">"Engelle"</string>
     <string name="non_primary_user" msgid="5180129233352533459">"Yalnızca cihaz sahibi engellenen numaraları görüntüleyebilir ve yönetebilir."</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Cevapsız çağrılar"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Çağrı Engelleme"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Bu çağrıyı yaptığınızda <xliff:g id="OTHER_APP">%1$s</xliff:g> çağrınız sona erecek."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Bu aramanın nasıl yapılacağını seçin"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> uygulamasını kullanarak aramayı yönlendir"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Telefon numaramı kullanarak ara"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"<xliff:g id="OTHER_APP">%1$s</xliff:g> uygulamasının, farklı bir numara veya hesap kullanarak arama yapmasına izin verin."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Arama <xliff:g id="OTHER_APP">%1$s</xliff:g> ile yapılamaz. Farklı bir arama yönlendirme uygulaması kullanmayı veya yardım almak için geliştirici ile iletişime geçmeyi deneyin."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Çağrı Engelleme"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Kişiler arasında bulunmayan numaralar"</string>
@@ -102,8 +100,8 @@
     <string name="phone_settings_private_num_summary_txt" msgid="7516314821207782191">"Gizli numaradan arayanlar engellenir"</string>
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"Ankesörlü telefon"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"Ankesörlü telefonlardan gelen çağrılar engellenir"</string>
-    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Bilinmeyen numaralar"</string>
-    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Tanımlanamayan arayanlardan gelen aramaları engelle"</string>
+    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Bilinmeyen"</string>
+    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Tanımlanamayan arayanlardan gelen çağrılar engellenir"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"Çağrı Engelleme"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"Çağrı Engelleme devre dışı bırakıldı"</string>
     <string name="phone_strings_emergency_call_made_dialog_title_txt" msgid="7421611725400166580">"Acil durum çağrısı yapıldı"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index bf5b1c4..1acdcf6 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Пропущені виклики"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Блокування викликів"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Якщо здійснити цей виклик, буде завершено виклик у додатку <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Виберіть, як здійснити цей виклик"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Переспрямувати через додаток <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Телефонувати зі свого номера"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Дозволити додатку <xliff:g id="OTHER_APP">%1$s</xliff:g> здійснити виклик з іншого номера чи облікового запису."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Не вдається здійснити виклик у додатку <xliff:g id="OTHER_APP">%1$s</xliff:g>. Спробуйте інший додаток для переспрямування викликів або зверніться по допомогу до розробника."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Блокування викликів"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Номери, які не входять до списку контактів"</string>
@@ -102,8 +100,8 @@
     <string name="phone_settings_private_num_summary_txt" msgid="7516314821207782191">"Блокування абонентів, які не розкривають свої номери"</string>
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"Таксофон"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"Блокування викликів із таксофонів"</string>
-    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Невідомі"</string>
-    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Блокувати виклики від невизначених абонентів"</string>
+    <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"Невідомо"</string>
+    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"Блокування викликів від невизначених абонентів"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"Блокування викликів"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"Блокування викликів вимкнено"</string>
     <string name="phone_strings_emergency_call_made_dialog_title_txt" msgid="7421611725400166580">"Здійснено екстрений виклик"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index f62b2df..e22f21f 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -68,8 +68,8 @@
     <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"مسدود کرنا عارضی طور پر آف ہے"</string>
     <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"جب آپ کوئی ایمرجنسی نمبر ڈائل کرتے یا اسے متن بھیجتے ہیں تو انسداد کو آ‌ف کر دیا جاتا ہے تاکہ ہنگامی سروسز آپ سے رابطہ کر سکیں۔"</string>
     <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"اب دوبارہ فعال کریں"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> مسدود کر دیا گیا"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> غیر مسدود کر دیا گیا"</string>
+    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> مسدود ہے"</string>
+    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> غیر مسدود ہے"</string>
     <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"ہنگامی نمبر مسدود کرنے سے قاصر۔"</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> پہلے ہی مسدود ہے۔"</string>
     <string name="toast_personal_call_msg" msgid="5115361633476779723">"کال کرنے کیلئے ذاتی ڈائلر استعمال ہو رہا ہے"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"چھوٹی ہوئی کالیں"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"کال مسدود کرنا"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"یہ کال کرنے سے <xliff:g id="OTHER_APP">%1$s</xliff:g> کال ختم ہو جائے گی۔"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"یہ کال کرنے کا طریقہ منتخب کریں"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"<xliff:g id="OTHER_APP">%1$s</xliff:g> کے ذریعے کال کو ریڈائریکٹ کریں"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"میرا فون نمبر استعمال کر کے کال کريں"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"<xliff:g id="OTHER_APP">%1$s</xliff:g> کو کوئی دوسرا نمبر یا اکاؤنٹ استعمال کر کے کال کرنے کی اجازت دیں۔"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g> کے ذریعے کال نہیں کی جا سکتی۔ کال آگے بڑھانے والی کوئی دوسری ایپ آزما کر یا مدد کے لیے ڈیولپر سے رابطہ کر کے دیکھیں۔"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"کال مسدود کرنا"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"وہ نمبرز جو رابطوں میں نہیں ہیں"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index ceec81b..39ef640 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -50,13 +50,13 @@
     <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Asosiy ilova sifatida o‘rnatish"</string>
     <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Bekor qilish"</string>
     <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> ilovasi qo‘ng‘iroq qilishga yodam beradi va qo‘ng‘iroqlarga tegishli boshqa barcha parametrlarni boshqaradi. Qo‘ng‘iroqlar uchun faqat ishonarli ilovani asosiy ilova qilib o‘rnatish lozim."</string>
-    <string name="change_default_call_screening_dialog_title" msgid="8714534302859934164">"<xliff:g id="NEW_APP">%s</xliff:g> chaqiruv nazorati uchunn birlamchi ilova qilinsinmi?"</string>
+    <string name="change_default_call_screening_dialog_title" msgid="8714534302859934164">"<xliff:g id="NEW_APP">%s</xliff:g> chaqiruv-ni boshqarish u-n birlamchi ilova qilinsinmi?"</string>
     <string name="change_default_call_screening_warning_message_for_disable_old_app" msgid="5128397581530600941">"<xliff:g id="OLD_APP">%s</xliff:g> kiruvchi chaqiruvlarni boshqa boshqara olmay qoladi."</string>
-    <string name="change_default_call_screening_warning_message" msgid="3881131132588596837">"<xliff:g id="NEW_APP">%s</xliff:g> kontaktlaringizga kiritilmagan abonentlar haqidagi axborotni ko‘rish ruxsatiga ega bo‘ladi va ulardan keladigan chaqiruvlarni bloklay oladi. Chaqiruv nazorati uchun faqat ishonchli ilovalarni ishlating."</string>
-    <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"Asosiy qilib belgilash"</string>
+    <string name="change_default_call_screening_warning_message" msgid="3881131132588596837">"<xliff:g id="NEW_APP">%s</xliff:g> ilovasi kontaktlaringiz ro‘yxatida bo‘lmagan abonentlar haqidagi axborotni ko‘rish ruxsatiga ega bo‘ladi va ulardan kiruvchi chaqiruvlarni bloklay oladi. Kiruvchi chaqiruvlarni boshqarish uchun faqat ishonchli ilovalarni ishlating."</string>
+    <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"Birlamchi ilova qilish"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"Bekor qilish"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"Bloklangan raqamlar"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Bloklangan raqamlardan keladigan chaqiruv yoki SMS xabarlar qabul qilinmaydi."</string>
+    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Bloklangan telefon raqamlaridan chaqiruv yoki matnli xabarlar qabul qilib bo‘lmaydi."</string>
     <string name="block_number" msgid="1101252256321306179">"Biror raqamni bloklash"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> raqami blokdan chiqarilsinmi?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Blokdan chiqarish"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Javobsiz chaqiruvlar"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Chaqiruvlarni bloklash"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Bu qo‘ng‘iroqni amalga oshirsangiz, <xliff:g id="OTHER_APP">%1$s</xliff:g> qo‘ng‘irog‘i tugatiladi."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Telefon qilish usulini tanlang"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Chaqiruv <xliff:g id="OTHER_APP">%1$s</xliff:g> orqali qayta uzatilsin"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Mening raqamim orqali telefon qilinsin"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"<xliff:g id="OTHER_APP">%1$s</xliff:g> ilovasiga chaqiruvlarni boshqa raqam yoki hisob orqali amalga oshirishiga ruxsat berilsin."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Chaqiruvlar uchun <xliff:g id="OTHER_APP">%1$s</xliff:g> ilovasidan foydalanish imkonsiz. Chaqiruvlarni uzatish uchun boshqa ilovadan foydalaning yoki dasturchiga yordam uchun murojaat qiling."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Chaqiruvlarni bloklash"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Notanish raqamlar"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 233c30e..09df557 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -28,12 +28,12 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Tin nhắn"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Đã tắt tiếng cuộc gọi."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Đã bật loa ngoài."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Giờ tôi không nói chuyện được. Có việc gì không?"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Giờ tôi ko thể nói chuyện. Gì vậy?"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Tôi sẽ gọi lại ngay."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Tôi sẽ gọi lại sau."</string>
-    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Giờ tôi không nói chuyện được. Bạn gọi lại sau nhé?"</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Giờ tôi ko thể nói chuyện. Gọi sau nhé?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Trả lời nhanh"</string>
-    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Chỉnh sửa tin nhắn trả lời nhanh"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Chỉnh sửa trả lời nhanh"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
     <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Trả lời nhanh"</string>
     <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Đã gửi tin nhắn tới <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Cuộc gọi nhỡ"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Chặn cuộc gọi"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Thực hiện cuộc gọi này sẽ kết thúc cuộc gọi <xliff:g id="OTHER_APP">%1$s</xliff:g> của bạn."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Chọn cách thực hiện cuộc gọi này"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Chuyển hướng cuộc gọi bằng cách sử dụng <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Gọi bằng số điện thoại của bạn"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Cho phép <xliff:g id="OTHER_APP">%1$s</xliff:g> thực hiện cuộc gọi bằng số hoặc tài khoản khác."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Không thể thực hiện cuộc gọi bằng <xliff:g id="OTHER_APP">%1$s</xliff:g>. Hãy thử dùng ứng dụng chuyển hướng cuộc gọi khác hoặc liên hệ với nhà phát triển để nhận trợ giúp."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Chặn cuộc gọi"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Các số không có trong Danh bạ"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index d370d74..2512a91 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -30,7 +30,7 @@
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"扬声器已启用。"</string>
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"现在无法接听。有什么事吗？"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"我马上会打给你。"</string>
-    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"我稍后给你回电。"</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"我稍后会再打给你。"</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"现在无法接听。能稍后再打给我吗？"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"快速回复"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"修改快速回复"</string>
@@ -73,7 +73,7 @@
     <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"无法屏蔽紧急服务号码。"</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> 已被屏蔽。"</string>
     <string name="toast_personal_call_msg" msgid="5115361633476779723">"使用个人拨号器拨打电话"</string>
-    <string name="notification_incoming_call" msgid="7713197997773986670">"<xliff:g id="CALL_FROM">%2$s</xliff:g>的 <xliff:g id="CALL_VIA">%1$s</xliff:g> 通话请求"</string>
+    <string name="notification_incoming_call" msgid="7713197997773986670">"接到来自<xliff:g id="CALL_FROM">%2$s</xliff:g>的 <xliff:g id="CALL_VIA">%1$s</xliff:g> 通话邀请"</string>
     <string name="notification_incoming_video_call" msgid="6638486071698373893">"接到来自<xliff:g id="CALL_FROM">%2$s</xliff:g>的 <xliff:g id="CALL_VIA">%1$s</xliff:g> 视频通话邀请"</string>
     <string name="answering_ends_other_call" msgid="8282145910153766401">"如果接听此来电，您的 <xliff:g id="CALL_VIA">%1$s</xliff:g> 通话会中断。"</string>
     <string name="answering_ends_other_calls" msgid="1198589551399049197">"如果接听此来电，您的 <xliff:g id="CALL_VIA">%1$s</xliff:g> 通话会中断。"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"未接电话"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"来电屏蔽"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"拨打此电话将导致<xliff:g id="OTHER_APP">%1$s</xliff:g>通话结束。"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"选择拨打此电话的方式"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"使用<xliff:g id="OTHER_APP">%1$s</xliff:g>转移呼叫"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"使用我的电话号码拨打电话"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"允许<xliff:g id="OTHER_APP">%1$s</xliff:g>通过其他号码或帐号拨打电话。"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"无法使用<xliff:g id="OTHER_APP">%1$s</xliff:g>拨打电话。请尝试使用其他通话重定向应用，或联系开发者获取帮助。"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"来电屏蔽"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"不在通讯录中的号码"</string>
@@ -103,7 +101,7 @@
     <string name="phone_settings_payphone_txt" msgid="2493356957416981318">"公用电话"</string>
     <string name="phone_settings_payphone_summary_txt" msgid="6126709946103814653">"屏蔽公用电话来电"</string>
     <string name="phone_settings_unknown_txt" msgid="5836407031508172721">"未知"</string>
-    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"屏蔽不明身份人员的来电"</string>
+    <string name="phone_settings_unknown_summary_txt" msgid="3457690230497753233">"屏蔽身份不明的来电者的电话"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_title_txt" msgid="628536625775266096">"来电屏蔽"</string>
     <string name="phone_strings_call_blocking_turned_off_notification_text_txt" msgid="6264230048947693941">"来电屏蔽功能已停用"</string>
     <string name="phone_strings_emergency_call_made_dialog_title_txt" msgid="7421611725400166580">"已拨打紧急呼救电话"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index b8380dd..de78d66 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"未接來電"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"來電封鎖"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"如果撥打此電話，您的 <xliff:g id="OTHER_APP">%1$s</xliff:g> 通話將會結束。"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"選擇如何撥打此電話"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"使用「<xliff:g id="OTHER_APP">%1$s</xliff:g>」將通話重新導向"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"使用我的電話號碼撥打"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"允許<xliff:g id="OTHER_APP">%1$s</xliff:g>使用其他號碼或帳戶撥打電話。"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"<xliff:g id="OTHER_APP">%1$s</xliff:g>無法撥打電話。建議您使用其他通話重新導向應用程式，或向開發人員求助。"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"來電封鎖"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"不在通訊錄中的號碼"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index aa6f739..f9b7b54 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -32,7 +32,7 @@
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"我待會就回電。"</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"我晚點回電。"</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"我現在不方便講話，晚點再打來好嗎？"</string>
-    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"快速回應"</string>
+    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"應答短訊"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"編輯快速回應"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
     <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"快速回應"</string>
@@ -56,7 +56,7 @@
     <string name="change_default_call_screening_dialog_affirmative" msgid="5503888845998386856">"設為預設來電過濾應用程式"</string>
     <string name="change_default_call_screening_dialog_negative" msgid="3420459312464019224">"取消"</string>
     <string name="blocked_numbers" msgid="2751843139572970579">"已封鎖的號碼"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"你不會收到已封鎖號碼的來電或簡訊。"</string>
+    <string name="blocked_numbers_msg" msgid="1045015186124965643">"您不會收到已封鎖號碼的來電或簡訊。"</string>
     <string name="block_number" msgid="1101252256321306179">"新增號碼"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"要解除封鎖 <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> 嗎？"</string>
     <string name="unblock_button" msgid="3078048901972674170">"解除封鎖"</string>
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"未接來電"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"來電封鎖"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"撥打這通電話將結束你的「<xliff:g id="OTHER_APP">%1$s</xliff:g>」通話。"</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"選擇撥打這通電話的方式"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"使用「<xliff:g id="OTHER_APP">%1$s</xliff:g>」轉接電話"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"使用我的電話號碼撥打電話"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"允許「<xliff:g id="OTHER_APP">%1$s</xliff:g>」使用其他號碼或帳戶撥打電話。"</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"無法使用「<xliff:g id="OTHER_APP">%1$s</xliff:g>」撥打電話。請嘗試使用其他的通話轉接應用程式，或向開發人員尋求協助。"</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"來電封鎖"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"不屬於聯絡人的號碼"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 6b9e899..718260e 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -91,9 +91,7 @@
     <string name="notification_channel_missed_call" msgid="8727062678632713146">"Amakholi akuphuthile"</string>
     <string name="notification_channel_call_blocking" msgid="2943358779746676070">"Ukuvimbela ikholi"</string>
     <string name="alert_outgoing_call" msgid="982908156825958001">"Ukwenza le kholi kuzoqeda enye ikholi yakho ye-<xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
-    <string name="alert_redirect_outgoing_call_or_not" msgid="7419614878375226644">"Khetha ukuthi uyibeka kanjani le kholi"</string>
-    <string name="alert_place_outgoing_call_with_redirection" msgid="3728173638697188636">"Qondisa kabusha ikholi usebenzisa i-<xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
-    <string name="alert_place_unredirect_outgoing_call" msgid="3066499005445865910">"Shaya usebenzisa inombolo yami yefoni"</string>
+    <string name="alert_redirect_outgoing_call" msgid="1267579501303765238">"Vumela i-<xliff:g id="OTHER_APP">%1$s</xliff:g> ukuthi yenze ikholi isebenzisa inombolo ehlukile noma i-akhawunti."</string>
     <string name="alert_redirect_outgoing_call_timeout" msgid="7268954889515301158">"Ikholi ayikwazi ukwenziwa i-<xliff:g id="OTHER_APP">%1$s</xliff:g>. Zama ukusebenzisa uhlelo lokusebenza oluhlukile lokuqondisa kabusha ikholi noma uxhumane nonjiniyela ukuze uthole usizo."</string>
     <string name="phone_settings_call_blocking_txt" msgid="3976004073043846733">"Ukuvimbela ikholi"</string>
     <string name="phone_settings_number_not_in_contact_txt" msgid="3126829421867168652">"Inombolo ayikho koxhumana nabo"</string>
diff --git a/res/values/config.xml b/res/values/config.xml
index 5b9636d..9cbbf46 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -53,11 +53,6 @@
          Devices should overlay this value based on the type of vibration hardware they employ. -->
     <bool name="use_simple_vibration_pattern">false</bool>
 
-    <!-- When true, if Telecom is playing the ringtone, it will attempt to pause for some time
-         between repeats of the ringtone.
-         When false, the ringtone will be looping with no pause. -->
-    <bool name="should_pause_between_ringtone_repeats">true</bool>
-
     <!-- Threshold for the X+Y component of gravity needed for the device orientation to be
          classified as being on a user's ear. -->
     <item name="device_on_ear_xy_gravity_threshold" format="float" type="dimen">5.5</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2c6a84a..93c5782 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -48,6 +48,14 @@
          [CHAR LIMIT=18] -->
     <string name="notification_missedCall_message">Message</string>
 
+    <!-- Disconnected call notification label, used when the call has been automatically
+         disconnected by telecom to make room for a higher priority call, such as an emergency
+         call.-->
+    <string name="notification_disconnectedCall_title">Disconnected call</string>
+    <!-- Body of the notification presented when an ongoing call is disconnected in favor of placing
+         an emergency call. This is required by some carriers. [CHAR LIMIT=NONE] -->
+    <string name="notification_disconnectedCall_body">The call to <xliff:g id="caller">%s</xliff:g> has been disconnected due to an emergency call being placed.</string>
+
     <!-- Title for the persistent notification presented when an app has requested that a call
          be put into the background so that the app can access the audio from the call
          [CHAR LIMIT=40] -->
@@ -290,6 +298,8 @@
     <string name="notification_channel_call_blocking">Call Blocking</string>
     <!-- Notification channel name for a channel containing background call notifications. -->
     <string name="notification_channel_background_calls">Background calls</string>
+    <!-- Notification channel name for a channel containing disconnected call notifications. -->
+    <string name="notification_channel_disconnected_calls">Disconnected calls</string>
 
     <!-- Alert dialog content used to inform the user that placing a new outgoing call will end the
          ongoing call in the app "other_app". -->
diff --git a/src/com/android/server/telecom/AsyncRingtonePlayer.java b/src/com/android/server/telecom/AsyncRingtonePlayer.java
index 8f11882..1a7d0f7 100644
--- a/src/com/android/server/telecom/AsyncRingtonePlayer.java
+++ b/src/com/android/server/telecom/AsyncRingtonePlayer.java
@@ -43,10 +43,6 @@
     // Message codes used with the ringtone thread.
     private static final int EVENT_PLAY = 1;
     private static final int EVENT_STOP = 2;
-    private static final int EVENT_REPEAT = 3;
-
-    // The interval in which to restart the ringer.
-    private static final int RESTART_RINGER_MILLIS = 3000;
 
     /** Handler running on the ringtone thread. */
     private Handler mHandler;
@@ -60,26 +56,10 @@
      */
     private CompletableFuture<Boolean> mHapticsFuture = null;
 
-    /**
-     * Determines if the {@link AsyncRingtonePlayer} should pause between repeats of the ringtone.
-     * When {@code true}, the system will check if the ringtone has stopped every
-     * {@link #RESTART_RINGER_MILLIS} and restart the ringtone if it has stopped.  This does not
-     * guarantee that there is {@link #RESTART_RINGER_MILLIS} between each repeat of the ringtone,
-     * rather it ensures that for short ringtones, or ringtones which are not a multiple of
-     * {@link #RESTART_RINGER_MILLIS} in duration that there will be some pause between repetitions.
-     * When {@code false}, the ringtone will be looped continually with no attempt to pause between
-     * repeats.
-     */
-    private boolean mShouldPauseBetweenRepeat = true;
-
     public AsyncRingtonePlayer() {
         // Empty
     }
 
-    public AsyncRingtonePlayer(boolean shouldPauseBetweenRepeat) {
-        mShouldPauseBetweenRepeat = shouldPauseBetweenRepeat;
-    }
-
     /**
      * Plays the appropriate ringtone for the specified call.
      * If {@link VolumeShaper.Configuration} is specified, it is applied to the ringtone to change
@@ -156,9 +136,6 @@
                     case EVENT_PLAY:
                         handlePlay((SomeArgs) msg.obj);
                         break;
-                    case EVENT_REPEAT:
-                        handleRepeat();
-                        break;
                     case EVENT_STOP:
                         handleStop();
                         break;
@@ -241,43 +218,18 @@
                 }
             }
 
-            if (mShouldPauseBetweenRepeat) {
-                // We're trying to pause between repeats, so the ringtone will not intentionally loop.
-                // Instead, we'll use a handler message to perform repeats.
-                handleRepeat();
-            } else {
-                mRingtone.setLooping(true);
-                if (mRingtone.isPlaying()) {
-                    Log.d(this, "Ringtone already playing.");
-                    return;
-                }
-                mRingtone.play();
-                Log.i(this, "Play ringtone, looping.");
+            mRingtone.setLooping(true);
+            if (mRingtone.isPlaying()) {
+                Log.d(this, "Ringtone already playing.");
+                return;
             }
+            mRingtone.play();
+            Log.i(this, "Play ringtone, looping.");
         } finally {
             Log.cancelSubsession(session);
         }
     }
 
-    private void handleRepeat() {
-        if (mRingtone == null) {
-            return;
-        }
-        if (mRingtone.isPlaying()) {
-            Log.d(this, "Ringtone already playing.");
-        } else {
-            mRingtone.play();
-            Log.i(this, "Repeat ringtone.");
-        }
-
-        // Repost event to restart ringer in {@link RESTART_RINGER_MILLIS}.
-        synchronized(this) {
-            if (!mHandler.hasMessages(EVENT_REPEAT)) {
-                mHandler.sendEmptyMessageDelayed(EVENT_REPEAT, RESTART_RINGER_MILLIS);
-            }
-        }
-    }
-
     /**
      * Stops the playback of the ringtone. Executes on the ringtone-thread.
      */
@@ -292,10 +244,6 @@
         }
 
         synchronized(this) {
-            // At the time that STOP is handled, there should be no need for repeat messages in the
-            // queue.
-            mHandler.removeMessages(EVENT_REPEAT);
-
             if (mHandler.hasMessages(EVENT_PLAY)) {
                 Log.v(this, "Keeping alive ringtone thread for subsequent play request.");
             } else {
diff --git a/src/com/android/server/telecom/Call.java b/src/com/android/server/telecom/Call.java
index 91466b5..a923d66 100644
--- a/src/com/android/server/telecom/Call.java
+++ b/src/com/android/server/telecom/Call.java
@@ -58,6 +58,7 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telecom.IVideoProvider;
 import com.android.internal.util.Preconditions;
+import com.android.server.telecom.ui.DisconnectedCallNotifier;
 import com.android.server.telecom.ui.ToastFactory;
 
 import java.io.IOException;
@@ -327,6 +328,11 @@
      */
     private int mHandlePresentation;
 
+    /**
+     * The verification status for an incoming call's number.
+     */
+    private @Connection.VerificationStatus int mCallerNumberVerificationStatus;
+
     /** The caller display name (CNAP) set by the connection service. */
     private String mCallerDisplayName;
 
@@ -369,9 +375,10 @@
 
     /**
      * Override the disconnect cause set by the connection service. Used for audio processing and
-     * simulated ringing calls.
+     * simulated ringing calls as well as the condition when an emergency call is ended due to
+     * an emergency call being placed.
      */
-    private int mOverrideDisconnectCauseCode = DisconnectCause.UNKNOWN;
+    private DisconnectCause mOverrideDisconnectCause = new DisconnectCause(DisconnectCause.UNKNOWN);
 
     private Bundle mIntentExtras = new Bundle();
 
@@ -1086,6 +1093,14 @@
         return mHandlePresentation;
     }
 
+    public void setCallerNumberVerificationStatus(
+            @Connection.VerificationStatus int callerNumberVerificationStatus) {
+        mCallerNumberVerificationStatus = callerNumberVerificationStatus;
+    }
+
+    public @Connection.VerificationStatus int getCallerNumberVerificationStatus() {
+        return mCallerNumberVerificationStatus;
+    }
 
     void setHandle(Uri handle) {
         setHandle(handle, TelecomManager.PRESENTATION_ALLOWED);
@@ -1169,23 +1184,30 @@
     }
 
     /**
-     * @param disconnectCause The reason for the disconnection, represented by
-     *         {@link android.telecom.DisconnectCause}.
+     * @param cause The reason for the disconnection, represented by
+     * {@link android.telecom.DisconnectCause}.
      */
-    public void setDisconnectCause(DisconnectCause disconnectCause) {
+    public void setDisconnectCause(DisconnectCause cause) {
         // TODO: Consider combining this method with a setDisconnected() method that is totally
         // separate from setState.
-        if (mOverrideDisconnectCauseCode != DisconnectCause.UNKNOWN) {
-            disconnectCause = new DisconnectCause(mOverrideDisconnectCauseCode,
-                    disconnectCause.getLabel(), disconnectCause.getDescription(),
-                    disconnectCause.getReason(), disconnectCause.getTone());
+
+        if (mOverrideDisconnectCause.getCode() != DisconnectCause.UNKNOWN) {
+            cause = new DisconnectCause(mOverrideDisconnectCause.getCode(),
+                    TextUtils.isEmpty(mOverrideDisconnectCause.getLabel()) ?
+                            cause.getLabel() : mOverrideDisconnectCause.getLabel(),
+                    (mOverrideDisconnectCause.getDescription() == null) ?
+                            cause.getDescription() :mOverrideDisconnectCause.getDescription(),
+                    TextUtils.isEmpty(mOverrideDisconnectCause.getReason()) ?
+                            cause.getReason() : mOverrideDisconnectCause.getReason(),
+                    (mOverrideDisconnectCause.getTone() == 0) ?
+                            cause.getTone() : mOverrideDisconnectCause.getTone());
         }
-        mAnalytics.setCallDisconnectCause(disconnectCause);
-        mDisconnectCause = disconnectCause;
+        mAnalytics.setCallDisconnectCause(cause);
+        mDisconnectCause = cause;
     }
 
-    public void setOverrideDisconnectCauseCode(int overrideDisconnectCauseCode) {
-        mOverrideDisconnectCauseCode = overrideDisconnectCauseCode;
+    public void setOverrideDisconnectCauseCode(DisconnectCause overrideDisconnectCause) {
+        mOverrideDisconnectCause = overrideDisconnectCause;
     }
 
 
@@ -1830,6 +1852,8 @@
 
         switch (mCallDirection) {
             case CALL_DIRECTION_INCOMING:
+                setCallerNumberVerificationStatus(connection.getCallerNumberVerificationStatus());
+
                 // Listeners (just CallsManager for now) will be responsible for checking whether
                 // the call should be blocked.
                 for (Listener l : mListeners) {
@@ -1965,12 +1989,12 @@
             abort(disconnectionTimeout);
         } else if (mState != CallState.ABORTED && mState != CallState.DISCONNECTED) {
             if (mState == CallState.AUDIO_PROCESSING && !hasGoneActiveBefore()) {
-                mOverrideDisconnectCauseCode = DisconnectCause.REJECTED;
+                setOverrideDisconnectCauseCode(new DisconnectCause(DisconnectCause.REJECTED));
             } else if (mState == CallState.SIMULATED_RINGING) {
                 // This is the case where the dialer calls disconnect() because the call timed out
                 // or an emergency call was dialed while in this state.
                 // Override the disconnect cause to MISSED
-                mOverrideDisconnectCauseCode = DisconnectCause.MISSED;
+                setOverrideDisconnectCauseCode(new DisconnectCause(DisconnectCause.MISSED));
             }
             if (mConnectionService == null) {
                 Log.e(this, new Exception(), "disconnect() request on a call without a"
@@ -2131,7 +2155,7 @@
             // This handles the case where the user manually rejects a call that's in simulated
             // ringing. Since the call is already active on the connectionservice side, we want to
             // hangup, not reject.
-            mOverrideDisconnectCauseCode = DisconnectCause.REJECTED;
+            setOverrideDisconnectCauseCode(new DisconnectCause(DisconnectCause.REJECTED));
             if (mConnectionService != null) {
                 mConnectionService.disconnect(this);
             } else {
diff --git a/src/com/android/server/telecom/CallAudioModeStateMachine.java b/src/com/android/server/telecom/CallAudioModeStateMachine.java
index 1d3752b..5440ebf 100644
--- a/src/com/android/server/telecom/CallAudioModeStateMachine.java
+++ b/src/com/android/server/telecom/CallAudioModeStateMachine.java
@@ -122,8 +122,8 @@
         }
     }
 
-    // TODO: remove this and replace when the new audio mode gets checked in.
-    public static final int NEW_AUDIO_MODE_FOR_AUDIO_PROCESSING = AudioManager.MODE_NORMAL;
+    // TODO: remove this and replace when the new audio mode gets pushed to AOSP.
+    public static final int NEW_AUDIO_MODE_FOR_AUDIO_PROCESSING = 4;
 
     public static final int INITIALIZE = 1;
     // These ENTER_*_FOCUS commands are for testing.
diff --git a/src/com/android/server/telecom/CallAudioRouteStateMachine.java b/src/com/android/server/telecom/CallAudioRouteStateMachine.java
index 3a5d113..82d245d 100644
--- a/src/com/android/server/telecom/CallAudioRouteStateMachine.java
+++ b/src/com/android/server/telecom/CallAudioRouteStateMachine.java
@@ -123,6 +123,11 @@
     // Wired headset, earpiece, or speakerphone, in that order of precedence.
     public static final int SWITCH_BASELINE_ROUTE = 1005;
 
+    // Messages denoting that the speakerphone was turned on/off. Used to update state when we
+    // weren't the ones who turned it on/off
+    public static final int SPEAKER_ON = 1006;
+    public static final int SPEAKER_OFF = 1007;
+
     public static final int USER_SWITCH_EARPIECE = 1101;
     public static final int USER_SWITCH_BLUETOOTH = 1102;
     public static final int USER_SWITCH_HEADSET = 1103;
@@ -181,6 +186,8 @@
         put(SWITCH_HEADSET, "SWITCH_HEADSET");
         put(SWITCH_SPEAKER, "SWITCH_SPEAKER");
         put(SWITCH_BASELINE_ROUTE, "SWITCH_BASELINE_ROUTE");
+        put(SPEAKER_ON, "SPEAKER_ON");
+        put(SPEAKER_OFF, "SPEAKER_OFF");
 
         put(USER_SWITCH_EARPIECE, "USER_SWITCH_EARPIECE");
         put(USER_SWITCH_BLUETOOTH, "USER_SWITCH_BLUETOOTH");
@@ -374,6 +381,7 @@
             switch (msg.what) {
                 case SWITCH_EARPIECE:
                 case USER_SWITCH_EARPIECE:
+                case SPEAKER_OFF:
                     // Nothing to do here
                     return HANDLED;
                 case BT_AUDIO_CONNECTED:
@@ -405,6 +413,7 @@
                     return HANDLED;
                 case SWITCH_SPEAKER:
                 case USER_SWITCH_SPEAKER:
+                case SPEAKER_ON:
                     transitionTo(mActiveSpeakerRoute);
                     return HANDLED;
                 case SWITCH_FOCUS:
@@ -449,6 +458,7 @@
             switch (msg.what) {
                 case SWITCH_EARPIECE:
                 case USER_SWITCH_EARPIECE:
+                case SPEAKER_OFF:
                     // Nothing to do here
                     return HANDLED;
                 case BT_AUDIO_CONNECTED:
@@ -473,6 +483,7 @@
                     return HANDLED;
                 case SWITCH_SPEAKER:
                 case USER_SWITCH_SPEAKER:
+                case SPEAKER_ON:
                     transitionTo(mQuiescentSpeakerRoute);
                     return HANDLED;
                 case SWITCH_FOCUS:
@@ -594,10 +605,12 @@
                     return HANDLED;
                 case SWITCH_HEADSET:
                 case USER_SWITCH_HEADSET:
+                case SPEAKER_OFF:
                     // Nothing to do
                     return HANDLED;
                 case SWITCH_SPEAKER:
                 case USER_SWITCH_SPEAKER:
+                case SPEAKER_ON:
                     transitionTo(mActiveSpeakerRoute);
                     return HANDLED;
                 case SWITCH_FOCUS:
@@ -662,10 +675,12 @@
                     return HANDLED;
                 case SWITCH_HEADSET:
                 case USER_SWITCH_HEADSET:
+                case SPEAKER_OFF:
                     // Nothing to do
                     return HANDLED;
                 case SWITCH_SPEAKER:
                 case USER_SWITCH_SPEAKER:
+                case SPEAKER_ON:
                     transitionTo(mQuiescentSpeakerRoute);
                     return HANDLED;
                 case SWITCH_FOCUS:
@@ -835,9 +850,12 @@
                     mHasUserExplicitlyLeftBluetooth = true;
                     // fall through
                 case SWITCH_SPEAKER:
+                case SPEAKER_ON:
                     setBluetoothOff();
                     transitionTo(mActiveSpeakerRoute);
                     return HANDLED;
+                case SPEAKER_OFF:
+                    return HANDLED;
                 case SWITCH_FOCUS:
                     if (msg.arg1 == NO_FOCUS) {
                         // Only disconnect SCO audio here instead of routing away from BT entirely.
@@ -926,8 +944,11 @@
                     mHasUserExplicitlyLeftBluetooth = true;
                     // fall through
                 case SWITCH_SPEAKER:
+                case SPEAKER_ON:
                     transitionTo(mActiveSpeakerRoute);
                     return HANDLED;
+                case SPEAKER_OFF:
+                    return HANDLED;
                 case SWITCH_FOCUS:
                     if (msg.arg1 == NO_FOCUS) {
                         reinitialize();
@@ -987,6 +1008,7 @@
                     return HANDLED;
                 case SWITCH_BLUETOOTH:
                 case USER_SWITCH_BLUETOOTH:
+                case SPEAKER_OFF:
                     // Nothing to do
                     return HANDLED;
                 case SWITCH_HEADSET:
@@ -999,6 +1021,7 @@
                     return HANDLED;
                 case SWITCH_SPEAKER:
                 case USER_SWITCH_SPEAKER:
+                case SPEAKER_ON:
                     transitionTo(mQuiescentSpeakerRoute);
                     return HANDLED;
                 case SWITCH_FOCUS:
@@ -1143,6 +1166,12 @@
                 case USER_SWITCH_SPEAKER:
                     // Nothing to do
                     return HANDLED;
+                case SPEAKER_ON:
+                    // Expected, since we just transitioned here
+                    return HANDLED;
+                case SPEAKER_OFF:
+                    sendInternalMessage(SWITCH_BASELINE_ROUTE, INCLUDE_BLUETOOTH_IN_BASELINE);
+                    return HANDLED;
                 case SWITCH_FOCUS:
                     if (msg.arg1 == NO_FOCUS) {
                         reinitialize();
@@ -1215,8 +1244,12 @@
                     return HANDLED;
                 case SWITCH_SPEAKER:
                 case USER_SWITCH_SPEAKER:
+                case SPEAKER_ON:
                     // Nothing to do
                     return HANDLED;
+                case SPEAKER_OFF:
+                    sendInternalMessage(SWITCH_BASELINE_ROUTE, INCLUDE_BLUETOOTH_IN_BASELINE);
+                    return HANDLED;
                 case SWITCH_FOCUS:
                     if (msg.arg1 == ACTIVE_FOCUS || msg.arg1 == RINGING_FOCUS) {
                         transitionTo(mActiveSpeakerRoute);
@@ -1294,6 +1327,28 @@
         }
     };
 
+    private final BroadcastReceiver mSpeakerPhoneChangeReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            Log.startSession("CARSM.mSPCR");
+            try {
+                if (AudioManager.ACTION_SPEAKERPHONE_STATE_CHANGED.equals(intent.getAction())) {
+                    if (mAudioManager != null) {
+                        if (mAudioManager.isSpeakerphoneOn()) {
+                            sendInternalMessage(SPEAKER_ON);
+                        } else {
+                            sendInternalMessage(SPEAKER_OFF);
+                        }
+                    }
+                } else {
+                    Log.w(this, "Received non-speakerphone-change intent");
+                }
+            } finally {
+                Log.endSession();
+            }
+        }
+    };
+
     private final ActiveEarpieceRoute mActiveEarpieceRoute = new ActiveEarpieceRoute();
     private final ActiveHeadsetRoute mActiveHeadsetRoute = new ActiveHeadsetRoute();
     private final ActiveBluetoothRoute mActiveBluetoothRoute = new ActiveBluetoothRoute();
@@ -1446,6 +1501,8 @@
         mWasOnSpeaker = false;
         mContext.registerReceiver(mMuteChangeReceiver,
                 new IntentFilter(AudioManager.ACTION_MICROPHONE_MUTE_CHANGED));
+        mContext.registerReceiver(mSpeakerPhoneChangeReceiver,
+                new IntentFilter(AudioManager.ACTION_SPEAKERPHONE_STATE_CHANGED));
 
         mStatusBarNotifier.notifyMute(initState.isMuted());
         mStatusBarNotifier.notifySpeakerphone(initState.getRoute() == CallAudioState.ROUTE_SPEAKER);
@@ -1531,8 +1588,12 @@
     }
 
     private void setSpeakerphoneOn(boolean on) {
-        Log.i(this, "turning speaker phone %s", on);
-        mAudioManager.setSpeakerphoneOn(on);
+        if (mAudioManager.isSpeakerphoneOn() != on) {
+            Log.i(this, "turning speaker phone %s", on);
+            mAudioManager.setSpeakerphoneOn(on);
+        } else {
+            Log.i(this, "Ignoring speakerphone request -- already %s", on);
+        }
         mStatusBarNotifier.notifySpeakerphone(on);
     }
 
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index cf922a6..5d51149 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -72,7 +72,6 @@
 import android.util.Pair;
 
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.telephony.AsyncEmergencyContactNotifier;
 import android.telecom.CallerInfo;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.TelephonyProperties;
@@ -95,6 +94,7 @@
 import com.android.server.telecom.ui.CallRedirectionConfirmDialogActivity;
 import com.android.server.telecom.ui.CallRedirectionTimeoutDialogActivity;
 import com.android.server.telecom.ui.ConfirmCallDialogActivity;
+import com.android.server.telecom.ui.DisconnectedCallNotifier;
 import com.android.server.telecom.ui.IncomingCallNotifier;
 import com.android.server.telecom.ui.ToastFactory;
 
@@ -329,6 +329,7 @@
     private final TelecomSystem.SyncRoot mLock;
     private final PhoneAccountRegistrar mPhoneAccountRegistrar;
     private final MissedCallNotifier mMissedCallNotifier;
+    private final DisconnectedCallNotifier mDisconnectedCallNotifier;
     private IncomingCallNotifier mIncomingCallNotifier;
     private final CallerInfoLookupHelper mCallerInfoLookupHelper;
     private final IncomingCallFilter.Factory mIncomingCallFilterFactory;
@@ -437,6 +438,7 @@
             TelecomSystem.SyncRoot lock,
             CallerInfoLookupHelper callerInfoLookupHelper,
             MissedCallNotifier missedCallNotifier,
+            DisconnectedCallNotifier.Factory disconnectedCallNotifierFactory,
             PhoneAccountRegistrar phoneAccountRegistrar,
             HeadsetMediaButtonFactory headsetMediaButtonFactory,
             ProximitySensorManagerFactory proximitySensorManagerFactory,
@@ -468,6 +470,7 @@
         mPhoneAccountRegistrar = phoneAccountRegistrar;
         mPhoneAccountRegistrar.addListener(mPhoneAccountListener);
         mMissedCallNotifier = missedCallNotifier;
+        mDisconnectedCallNotifier = disconnectedCallNotifierFactory.create(mContext, this);
         StatusBarNotifier statusBarNotifier = new StatusBarNotifier(context, this);
         mWiredHeadsetManager = wiredHeadsetManager;
         mSystemStateHelper = systemStateHelper;
@@ -547,6 +550,7 @@
         mListeners.add(mCallAudioManager);
         mListeners.add(mCallRecordingTonePlayer);
         mListeners.add(missedCallNotifier);
+        mListeners.add(mDisconnectedCallNotifier);
         mListeners.add(mHeadsetMediaButton);
         mListeners.add(mProximitySensorManager);
         mListeners.add(audioProcessingNotification);
@@ -1194,10 +1198,8 @@
             }
         }
 
-        boolean isRttSettingOn = isRttSettingOn(phoneAccountHandle);
-        if (isRttSettingOn ||
-                extras.getBoolean(TelecomManager.EXTRA_START_CALL_WITH_RTT, false)) {
-            Log.i(this, "Incoming call requesting RTT, rtt setting is %b", isRttSettingOn);
+        if (extras.getBoolean(TelecomManager.EXTRA_START_CALL_WITH_RTT, false)) {
+            Log.i(this, "Incoming call requesting RTT");
             call.createRttStreams();
             // Even if the phone account doesn't support RTT yet, the connection manager might
             // change that. Set this to check it later.
@@ -1645,12 +1647,9 @@
 
                     boolean isVoicemail = isVoicemail(callToUse.getHandle(), accountToUse);
 
-                    boolean isRttSettingOn = isRttSettingOn(phoneAccountHandle);
-                    if (!isVoicemail && (isRttSettingOn || (extras != null
-                            && extras.getBoolean(TelecomManager.EXTRA_START_CALL_WITH_RTT,
-                            false)))) {
-                        Log.d(this, "Outgoing call requesting RTT, rtt setting is %b",
-                                isRttSettingOn);
+                    if (!isVoicemail && extras != null
+                            && extras.getBoolean(TelecomManager.EXTRA_START_CALL_WITH_RTT, false)) {
+                        Log.d(this, "Outgoing call requesting RTT");
                         if (callToUse.isEmergencyCall() || (accountToUse != null
                                 && accountToUse.hasCapabilities(PhoneAccount.CAPABILITY_RTT))) {
                             // If the call requested RTT and it's an emergency call, ignore the
@@ -2536,24 +2535,6 @@
         mProximitySensorManager.turnOff(screenOnImmediately);
     }
 
-    private boolean isRttSettingOn(PhoneAccountHandle handle) {
-        boolean isRttModeSettingOn = Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.RTT_CALLING_MODE, 0) != 0;
-        // If the carrier config says that we should ignore the RTT mode setting from the user,
-        // assume that it's off (i.e. only make an RTT call if it's requested through the extra).
-        boolean shouldIgnoreRttModeSetting = getCarrierConfigForPhoneAccount(handle)
-                .getBoolean(CarrierConfigManager.KEY_IGNORE_RTT_MODE_SETTING_BOOL, false);
-        return isRttModeSettingOn && !shouldIgnoreRttModeSetting;
-    }
-
-    private PersistableBundle getCarrierConfigForPhoneAccount(PhoneAccountHandle handle) {
-        int subscriptionId = mPhoneAccountRegistrar.getSubscriptionIdForPhoneAccount(handle);
-        CarrierConfigManager carrierConfigManager =
-                mContext.getSystemService(CarrierConfigManager.class);
-        PersistableBundle result = carrierConfigManager.getConfigForSubId(subscriptionId);
-        return result == null ? new PersistableBundle() : result;
-    }
-
     void phoneAccountSelected(Call call, PhoneAccountHandle account, boolean setDefault) {
         if (!mCalls.contains(call)) {
             Log.i(this, "Attempted to add account to unknown call %s", call);
@@ -2716,7 +2697,7 @@
                 && disconnectCause.getCode() == DisconnectCause.REMOTE) {
             // If the remote end hangs up while in SIMULATED_RINGING, the call should
             // be marked as missed.
-            call.setOverrideDisconnectCauseCode(DisconnectCause.MISSED);
+            call.setOverrideDisconnectCauseCode(new DisconnectCause(DisconnectCause.MISSED));
         }
         call.setDisconnectCause(disconnectCause);
         setCallState(call, CallState.DISCONNECTED, "disconnected set explicitly");
@@ -3115,6 +3096,14 @@
     }
 
     /**
+     * Retrieves the {@link DisconnectedCallNotifier}
+     * @return The {@link DisconnectedCallNotifier}.
+     */
+    DisconnectedCallNotifier getDisconnectedCallNotifier() {
+        return mDisconnectedCallNotifier;
+    }
+
+    /**
      * Retrieves the {@link MissedCallNotifier}
      * @return The {@link MissedCallNotifier}.
      */
@@ -3643,7 +3632,8 @@
                     // we will try to connect the first outgoing call.
                     call.getAnalytics().setCallIsAdditional(true);
                     outgoingCall.getAnalytics().setCallIsInterrupted(true);
-                    outgoingCall.disconnect();
+                    outgoingCall.disconnect("Disconnecting dialing call in favor of new dialing"
+                            + " emergency call.");
                     return true;
                 }
                 if (outgoingCall.getState() == CallState.SELECT_PHONE_ACCOUNT) {
@@ -3651,7 +3641,8 @@
                     // state, just disconnect it since the user has explicitly started a new call.
                     call.getAnalytics().setCallIsAdditional(true);
                     outgoingCall.getAnalytics().setCallIsInterrupted(true);
-                    outgoingCall.disconnect();
+                    outgoingCall.disconnect("Disconnecting call in SELECT_PHONE_ACCOUNT in favor"
+                            + " of new outgoing call.");
                     return true;
                 }
                 return false;
@@ -3690,6 +3681,23 @@
                         liveCallPhoneAccount);
             }
 
+            // We may not know which PhoneAccount the emergency call will be placed on yet, but if
+            // the liveCall PhoneAccount does not support placing emergency calls, then we know it
+            // will not be that one and we do not want multiple PhoneAccounts active during an
+            // emergency call if possible. Disconnect the active call in favor of the emergency call
+            // instead of trying to hold.
+            if (isEmergency && liveCall.getTargetPhoneAccount() != null) {
+                PhoneAccount pa = mPhoneAccountRegistrar.getPhoneAccountUnchecked(
+                        liveCall.getTargetPhoneAccount());
+                if((pa.getCapabilities() & PhoneAccount.CAPABILITY_PLACE_EMERGENCY_CALLS) == 0) {
+                    liveCall.setOverrideDisconnectCauseCode(new DisconnectCause(
+                            DisconnectCause.LOCAL, DisconnectCause.REASON_EMERGENCY_CALL_PLACED));
+                    liveCall.disconnect("outgoing call does not support emergency calls, "
+                            + "disconnecting.");
+                }
+                return true;
+            }
+
             // First thing, if we are trying to make a call with the same phone account as the live
             // call, then allow it so that the connection service can make its own decision about
             // how to handle the new call relative to the current one.
@@ -3740,7 +3748,8 @@
             } else { // normal incoming ringing call.
                 // Hang up the ringing call to make room for the emergency call and mark as missed,
                 // since the user did not reject.
-                ringingCall.setOverrideDisconnectCauseCode(DisconnectCause.MISSED);
+                ringingCall.setOverrideDisconnectCauseCode(
+                        new DisconnectCause(DisconnectCause.MISSED));
                 ringingCall.reject(false, null, "emergency call dialed during ringing.");
             }
             return true;
@@ -4669,8 +4678,10 @@
 
         @Override
         public void performAction() {
-            Log.d(this, "perform set call state for %s, state = %s", mCall, mState);
-            setCallState(mCall, mState, mTag);
+            synchronized (mLock) {
+                Log.d(this, "perform set call state for %s, state = %s", mCall, mState);
+                setCallState(mCall, mState, mTag);
+            }
         }
     }
 
@@ -4685,8 +4696,10 @@
 
         @Override
         public void performAction() {
-            Log.d(this, "perform unhold call for %s", mCall);
-            mCall.unhold("held " + mPreviouslyHeldCallId);
+            synchronized (mLock) {
+                Log.d(this, "perform unhold call for %s", mCall);
+                mCall.unhold("held " + mPreviouslyHeldCallId);
+            }
         }
     }
 
diff --git a/src/com/android/server/telecom/CarModeTracker.java b/src/com/android/server/telecom/CarModeTracker.java
new file mode 100644
index 0000000..0ec4917
--- /dev/null
+++ b/src/com/android/server/telecom/CarModeTracker.java
@@ -0,0 +1,209 @@
+/*
+ * Copyright (C) 2019 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.server.telecom;
+
+import android.annotation.IntRange;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.app.UiModeManager;
+import android.telecom.Log;
+import android.util.LocalLog;
+
+import com.android.internal.util.IndentingPrintWriter;
+
+import java.util.Comparator;
+import java.util.List;
+import java.util.Objects;
+import java.util.PriorityQueue;
+import java.util.stream.Collectors;
+
+/**
+ * Tracks the package names of apps which enter end exit car mode.
+ */
+public class CarModeTracker {
+    /**
+     * Data class holding information about apps which have requested to enter car mode.
+     */
+    private class CarModeApp {
+        private @IntRange(from = 0) int mPriority;
+        private @NonNull String mPackageName;
+
+        public CarModeApp(int priority, @NonNull String packageName) {
+            mPriority = priority;
+            mPackageName = Objects.requireNonNull(packageName);
+        }
+
+        /**
+         * The priority at which the app requested to enter car mode.
+         * Will be the same as the one specified when {@link UiModeManager#enableCarMode(int, int)}
+         * was called, or {@link UiModeManager#DEFAULT_PRIORITY} if no priority was specifeid.
+         * @return The priority.
+         */
+        public int getPriority() {
+            return mPriority;
+        }
+
+        public void setPriority(int priority) {
+            mPriority = priority;
+        }
+
+        /**
+         * @return The package name of the app which requested to enter car mode.
+         */
+        public String getPackageName() {
+            return mPackageName;
+        }
+
+        public void setPackageName(String packageName) {
+            mPackageName = packageName;
+        }
+    }
+
+    /**
+     * Comparator used to maintain the car mode priority queue ordering.
+     */
+    private class CarModeAppComparator implements Comparator<CarModeApp> {
+        @Override
+        public int compare(CarModeApp o1, CarModeApp o2) {
+            // highest priority takes precedence.
+            return Integer.compare(o2.getPriority(), o1.getPriority());
+        }
+    }
+
+    /**
+     * Priority list of apps which have entered or exited car mode, ordered with the highest
+     * priority app at the top of the queue.  Where items have the same priority, they are ordered
+     * by insertion time.
+     */
+    private PriorityQueue<CarModeApp> mCarModeApps = new PriorityQueue<>(2,
+            new CarModeAppComparator());
+
+    private final LocalLog mCarModeChangeLog = new LocalLog(20);
+
+    /**
+     * Handles a request to enter car mode by a package name.
+     * @param priority The priority at which car mode is entered.
+     * @param packageName The package name of the app entering car mode.
+     */
+    public void handleEnterCarMode(@IntRange(from = 0) int priority, @NonNull String packageName) {
+        if (mCarModeApps.stream().anyMatch(c -> c.getPriority() == priority)) {
+            Log.w(this, "handleEnterCarMode: already in car mode at priority %d (apps: %s)",
+                    priority, getCarModePriorityString());
+            return;
+        }
+
+        if (mCarModeApps.stream().anyMatch(c -> c.getPackageName().equals(packageName))) {
+            Log.w(this, "handleEnterCarMode: %s is already in car mode (apps: %s)",
+                    packageName, getCarModePriorityString());
+            return;
+        }
+
+        Log.i(this, "handleEnterCarMode: packageName=%s, priority=%d", packageName, priority);
+        mCarModeChangeLog.log("enterCarMode: packageName=" + packageName + ", priority="
+                + priority);
+        mCarModeApps.add(new CarModeApp(priority, packageName));
+    }
+
+    /**
+     * Handles a request to exist car mode at a priority level.
+     * @param priority The priority level.
+     * @param packageName The packagename of the app requesting the change.
+     */
+    public void handleExitCarMode(@IntRange(from = 0) int priority, @NonNull String packageName) {
+        if (!mCarModeApps.stream().anyMatch(c -> c.getPriority() == priority)) {
+            Log.w(this, "handleExitCarMode: not in car mode at priority %d (apps=%s)",
+                    priority, getCarModePriorityString());
+            return;
+        }
+
+        if (priority != UiModeManager.DEFAULT_PRIORITY && !mCarModeApps.stream().anyMatch(
+                c -> c.getPackageName().equals(packageName) && c.getPriority() == priority)) {
+            Log.w(this, "handleExitCarMode: %s didn't enter car mode at priority %d (apps=%s)",
+                    packageName, priority, getCarModePriorityString());
+            return;
+        }
+
+        Log.i(this, "handleExitCarMode: packageName=%s, priority=%d", packageName, priority);
+        mCarModeChangeLog.log("exitCarMode: packageName=" + packageName + ", priority="
+                + priority);
+        mCarModeApps.removeIf(c -> c.getPriority() == priority);
+    }
+
+    /**
+     * Retrieves a list of the apps which are currently in car mode, ordered by priority such that
+     * the highest priority app is first.
+     * @return List of apps in car mode.
+     */
+    public @NonNull List<String> getCarModeApps() {
+        return mCarModeApps
+                .stream()
+                .sorted(mCarModeApps.comparator())
+                .map(cma -> cma.getPackageName())
+                .collect(Collectors.toList());
+    }
+
+    private @NonNull String getCarModePriorityString() {
+        return mCarModeApps
+                .stream()
+                .sorted(mCarModeApps.comparator())
+                .map(cma -> "[" + cma.getPriority() + ", " + cma.getPackageName() + "]")
+                .collect(Collectors.joining(", "));
+    }
+
+    /**
+     * Gets the app which is currently in car mode.  This is the highest priority app which has
+     * entered car mode.
+     * @return The app which is in car mode.
+     */
+    public @Nullable String getCurrentCarModePackage() {
+        CarModeApp app = mCarModeApps.peek();
+        return app == null ? null : app.getPackageName();
+    }
+
+    /**
+     * @return {@code true} if the device is in car mode, {@code false} otherwise.
+     */
+    public boolean isInCarMode() {
+        return !mCarModeApps.isEmpty();
+    }
+
+    /**
+     * Dumps the state of the car mode tracker to the specified print writer.
+     * @param pw
+     */
+    public void dump(IndentingPrintWriter pw) {
+        pw.println("CarModeTracker:");
+        pw.increaseIndent();
+
+        pw.println("Current car mode apps:");
+        pw.increaseIndent();
+        for (CarModeApp app : mCarModeApps) {
+            pw.print("[");
+            pw.print(app.getPriority());
+            pw.print("] ");
+            pw.println(app.getPackageName());
+        }
+        pw.decreaseIndent();
+
+        pw.println("Car mode history:");
+        pw.increaseIndent();
+        mCarModeChangeLog.dump(pw);
+        pw.decreaseIndent();
+
+        pw.decreaseIndent();
+    }
+}
diff --git a/src/com/android/server/telecom/ConnectionServiceWrapper.java b/src/com/android/server/telecom/ConnectionServiceWrapper.java
index d608852..dd50318 100644
--- a/src/com/android/server/telecom/ConnectionServiceWrapper.java
+++ b/src/com/android/server/telecom/ConnectionServiceWrapper.java
@@ -813,8 +813,11 @@
                     // ParcelableConnection is in fact registered to Telecom and is being called
                     // from the correct user.
                     List<PhoneAccountHandle> accountHandles =
+                    // Include CAPABILITY_EMERGENCY_CALLS_ONLY in this list in case we are adding
+                    // an emergency call.
                             mPhoneAccountRegistrar.getCallCapablePhoneAccounts(null /*uriScheme*/,
-                                    false /*includeDisabledAccounts*/, userHandle);
+                            false /*includeDisabledAccounts*/, userHandle, 0 /*capabilities*/,
+                            0 /*excludedCapabilities*/);
                     PhoneAccountHandle phoneAccountHandle = null;
                     for (PhoneAccountHandle accountHandle : accountHandles) {
                         if(accountHandle.equals(callingPhoneAccountHandle)) {
diff --git a/src/com/android/server/telecom/InCallController.java b/src/com/android/server/telecom/InCallController.java
index b0ac9d7..9fc06e4 100644
--- a/src/com/android/server/telecom/InCallController.java
+++ b/src/com/android/server/telecom/InCallController.java
@@ -17,6 +17,7 @@
 package com.android.server.telecom;
 
 import android.Manifest;
+import android.annotation.NonNull;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -48,6 +49,7 @@
 import com.android.server.telecom.SystemStateHelper.SystemStateListener;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.LinkedList;
 import java.util.List;
@@ -55,6 +57,7 @@
 import java.util.Objects;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 /**
  * Binds to {@link IInCallService} and provides the service to {@link CallsManager} through which it
@@ -256,9 +259,13 @@
         @Override
         public void disconnect() {
             if (mIsConnected) {
+                Log.i(InCallController.this, "ICSBC#disconnect: unbinding; %s",
+                        mInCallServiceInfo);
                 mContext.unbindService(mServiceConnection);
                 mIsConnected = false;
             } else {
+                Log.i(InCallController.this, "ICSBC#disconnect: already disconnected; %s",
+                        mInCallServiceInfo);
                 Log.addEvent(null, LogUtils.Events.INFO, "Already disconnected, ignoring request.");
             }
         }
@@ -270,9 +277,13 @@
 
         @Override
         public void dump(IndentingPrintWriter pw) {
-            pw.append("BindingConnection [");
-            pw.append(mIsConnected ? "" : "not ").append("connected, ");
-            pw.append(mIsBound ? "" : "not ").append("bound]\n");
+            pw.print("BindingConnection [");
+            pw.print(mIsConnected ? "" : "not ");
+            pw.print("connected, ");
+            pw.print(mIsBound ? "" : "not ");
+            pw.print("bound, ");
+            pw.print(mInCallServiceInfo);
+            pw.println("\n");
         }
 
         protected void onConnected(IBinder service) {
@@ -436,7 +447,7 @@
      */
     private class CarSwappingInCallServiceConnection extends InCallServiceConnection {
         private final InCallServiceConnection mDialerConnection;
-        private final InCallServiceConnection mCarModeConnection;
+        private InCallServiceConnection mCarModeConnection;
         private InCallServiceConnection mCurrentConnection;
         private boolean mIsCarMode = false;
         private boolean mIsConnected = false;
@@ -449,8 +460,13 @@
             mCurrentConnection = getCurrentConnection();
         }
 
-        public synchronized void setCarMode(boolean isCarMode) {
-            Log.i(this, "carmodechange: " + mIsCarMode + " => " + isCarMode);
+        /**
+         * Called when we move to a state where calls are present on the device.  Chooses the
+         * {@link InCallService} to which we should connect.
+         * @param isCarMode {@code true} if device is in car mode, {@code false} otherwise.
+         */
+        public synchronized void chooseInitialInCallService(boolean isCarMode) {
+            Log.i(this, "chooseInitialInCallService: " + mIsCarMode + " => " + isCarMode);
             if (isCarMode != mIsCarMode) {
                 mIsCarMode = isCarMode;
                 InCallServiceConnection newConnection = getCurrentConnection();
@@ -465,6 +481,63 @@
             }
         }
 
+        /**
+         * Invoked when {@link CarModeTracker} has determined that the device is no longer in car
+         * mode (i.e. has no car mode {@link InCallService}).
+         *
+         * Switches back to the default dialer app.
+         */
+        public synchronized void disableCarMode() {
+            mIsCarMode = false;
+            if (mIsConnected) {
+                mCurrentConnection.disconnect();
+            }
+
+            mCurrentConnection = mDialerConnection;
+            int result = mDialerConnection.connect(null);
+            mIsConnected = result == CONNECTION_SUCCEEDED;
+        }
+
+        /**
+         * Changes the active {@link InCallService} to a car mode app.  Called whenever the device
+         * changes to car mode or the currently active car mode app changes.
+         * @param packageName The package name of the car mode app.
+         */
+        public synchronized void changeCarModeApp(String packageName) {
+            Log.i(this, "changeCarModeApp: isCarModeNow=" + mIsCarMode);
+
+            InCallServiceInfo currentConnectionInfo = mCurrentConnection == null ? null
+                    : mCurrentConnection.getInfo();
+            InCallServiceInfo carModeConnectionInfo =
+                    getInCallServiceComponent(packageName, IN_CALL_SERVICE_TYPE_CAR_MODE_UI);
+
+            if (!Objects.equals(currentConnectionInfo, carModeConnectionInfo)) {
+                Log.i(this, "changeCarModeApp: " + currentConnectionInfo + " => "
+                        + carModeConnectionInfo);
+                if (mIsConnected) {
+                    mCurrentConnection.disconnect();
+                }
+
+                if (carModeConnectionInfo != null) {
+                    // Valid car mode app.
+                    mCarModeConnection = mCurrentConnection =
+                            new InCallServiceBindingConnection(carModeConnectionInfo);
+                    mIsCarMode = true;
+                } else {
+                    // Invalid car mode app; don't expect this but should handle it gracefully.
+                    mCarModeConnection = null;
+                    mIsCarMode = false;
+                    mCurrentConnection = mDialerConnection;
+                }
+
+                int result = mCurrentConnection.connect(null);
+                mIsConnected = result == CONNECTION_SUCCEEDED;
+            } else {
+                Log.i(this, "changeCarModeApp: unchanged; " + currentConnectionInfo + " => "
+                        + carModeConnectionInfo);
+            }
+        }
+
         @Override
         public int connect(Call call) {
             if (mIsConnected) {
@@ -484,6 +557,7 @@
         @Override
         public void disconnect() {
             if (mIsConnected) {
+                Log.i(InCallController.this, "CSICSC: disconnect %s", mCurrentConnection);
                 mCurrentConnection.disconnect();
                 mIsConnected = false;
             } else {
@@ -699,14 +773,9 @@
         }
     };
 
-    private final SystemStateListener mSystemStateListener = new SystemStateListener() {
-        @Override
-        public void onCarModeChanged(boolean isCarMode) {
-            if (mInCallServiceConnection != null) {
-                mInCallServiceConnection.setCarMode(shouldUseCarModeUI());
-            }
-        }
-    };
+    private final SystemStateListener mSystemStateListener =
+            (priority, packageName, isCarMode) -> InCallController.this.handleCarModeChange(
+                    priority, packageName, isCarMode);
 
     private static final int IN_CALL_SERVICE_TYPE_INVALID = 0;
     private static final int IN_CALL_SERVICE_TYPE_DIALER_UI = 1;
@@ -735,10 +804,12 @@
     // The future will complete with true if binding succeeds, false if it timed out.
     private CompletableFuture<Boolean> mBindingFuture = CompletableFuture.completedFuture(true);
 
+    private final CarModeTracker mCarModeTracker;
+
     public InCallController(Context context, TelecomSystem.SyncRoot lock, CallsManager callsManager,
             SystemStateHelper systemStateHelper,
             DefaultDialerCache defaultDialerCache, Timeouts.Adapter timeoutsAdapter,
-            EmergencyCallHelper emergencyCallHelper) {
+            EmergencyCallHelper emergencyCallHelper, CarModeTracker carModeTracker) {
         mContext = context;
         mLock = lock;
         mCallsManager = callsManager;
@@ -746,7 +817,7 @@
         mTimeoutsAdapter = timeoutsAdapter;
         mDefaultDialerCache = defaultDialerCache;
         mEmergencyCallHelper = emergencyCallHelper;
-
+        mCarModeTracker = carModeTracker;
         mSystemStateHelper.addListener(mSystemStateListener);
     }
 
@@ -1109,7 +1180,7 @@
             systemInCall.setHasEmergency(mCallsManager.isInEmergencyCall());
 
             InCallServiceConnection carModeInCall = null;
-            InCallServiceInfo carModeComponentInfo = getCarModeComponent();
+            InCallServiceInfo carModeComponentInfo = getCurrentCarModeComponent();
             if (carModeComponentInfo != null &&
                     !carModeComponentInfo.getComponentName().equals(
                             mDefaultDialerCache.getSystemDialerComponent())) {
@@ -1120,7 +1191,7 @@
                     new CarSwappingInCallServiceConnection(systemInCall, carModeInCall);
         }
 
-        mInCallServiceConnection.setCarMode(shouldUseCarModeUI());
+        mInCallServiceConnection.chooseInitialInCallService(shouldUseCarModeUI());
 
         // Actually try binding to the UI InCallService.  If the response
         if (mInCallServiceConnection.connect(call) ==
@@ -1167,11 +1238,9 @@
         return getInCallServiceComponent(packageName, IN_CALL_SERVICE_TYPE_DIALER_UI);
     }
 
-    private InCallServiceInfo getCarModeComponent() {
-        // The signatures of getInCallServiceComponent differ in the types of the first parameter,
-        // and passing in null is inherently ambiguous. (If no car mode component found)
-        String defaultCarMode = mCallsManager.getRoleManagerAdapter().getCarModeDialerApp();
-        return getInCallServiceComponent(defaultCarMode, IN_CALL_SERVICE_TYPE_CAR_MODE_UI);
+    private InCallServiceInfo getCurrentCarModeComponent() {
+        return getInCallServiceComponent(mCarModeTracker.getCurrentCarModePackage(),
+                IN_CALL_SERVICE_TYPE_CAR_MODE_UI);
     }
 
     private InCallServiceInfo getInCallServiceComponent(ComponentName componentName, int type) {
@@ -1253,7 +1322,7 @@
     }
 
     private boolean shouldUseCarModeUI() {
-        return mSystemStateHelper.isCarMode();
+        return mCarModeTracker.isInCarMode();
     }
 
     /**
@@ -1281,26 +1350,24 @@
         // Check to see if the service holds permissions or metadata for third party apps.
         boolean isUIService = serviceInfo.metaData != null &&
                 serviceInfo.metaData.getBoolean(TelecomManager.METADATA_IN_CALL_SERVICE_UI);
-        boolean isThirdPartyCompanionApp = packageManager.checkPermission(
-                Manifest.permission.CALL_COMPANION_APP,
-                serviceInfo.packageName) == PackageManager.PERMISSION_GRANTED &&
-                !isUIService;
 
         // Check to see if the service is a car-mode UI type by checking that it has the
         // CONTROL_INCALL_EXPERIENCE (to verify it is a system app) and that it has the
         // car-mode UI metadata.
-        boolean hasControlInCallPermission = packageManager.checkPermission(
-                Manifest.permission.CONTROL_INCALL_EXPERIENCE,
-                serviceInfo.packageName) == PackageManager.PERMISSION_GRANTED;
+        // We check the permission grant on all of the packages contained in the InCallService's
+        // same UID to see if any of them have been granted the permission.  This accomodates the
+        // CTS tests, which have some shared UID stuff going on in order to work.  It also still
+        // obeys the permission model since a single APK typically normally only has a single UID.
+        String[] uidPackages = packageManager.getPackagesForUid(serviceInfo.applicationInfo.uid);
+        boolean hasControlInCallPermission = Arrays.stream(uidPackages).anyMatch(
+                p -> packageManager.checkPermission(
+                        Manifest.permission.CONTROL_INCALL_EXPERIENCE,
+                        p) == PackageManager.PERMISSION_GRANTED);
         boolean isCarModeUIService = serviceInfo.metaData != null &&
                 serviceInfo.metaData.getBoolean(
                         TelecomManager.METADATA_IN_CALL_SERVICE_CAR_MODE_UI, false);
-        if (isCarModeUIService) {
-            // ThirdPartyInCallService shouldn't be used when role manager hasn't assigned any car
-            // mode role holders, i.e. packageName is null.
-            if (hasControlInCallPermission || (isThirdPartyCompanionApp && packageName != null)) {
-                return IN_CALL_SERVICE_TYPE_CAR_MODE_UI;
-            }
+        if (isCarModeUIService && hasControlInCallPermission) {
+            return IN_CALL_SERVICE_TYPE_CAR_MODE_UI;
         }
 
         // Check to see that it is the default dialer package
@@ -1313,14 +1380,8 @@
 
         // Also allow any in-call service that has the control-experience permission (to ensure
         // that it is a system app) and doesn't claim to show any UI.
-        if (!isUIService && !isCarModeUIService) {
-            if (hasControlInCallPermission && !isThirdPartyCompanionApp) {
-                return IN_CALL_SERVICE_TYPE_NON_UI;
-            }
-            // Third party companion alls without CONTROL_INCALL_EXPERIENCE permission.
-            if (!hasControlInCallPermission && isThirdPartyCompanionApp) {
-                return IN_CALL_SERVICE_TYPE_COMPANION;
-            }
+        if (!isUIService && !isCarModeUIService && hasControlInCallPermission) {
+            return IN_CALL_SERVICE_TYPE_NON_UI;
         }
 
         // Anything else that remains, we will not bind to.
@@ -1514,6 +1575,8 @@
             mInCallServiceConnection.dump(pw);
         }
         pw.decreaseIndent();
+
+        mCarModeTracker.dump(pw);
     }
 
     /**
@@ -1595,4 +1658,43 @@
     public Handler getHandler() {
         return mHandler;
     }
+
+    /**
+     * Determines if the specified package is a valid car mode {@link InCallService}.
+     * @param packageName The package name to check.
+     * @return {@code true} if the package has a valid car mode {@link InCallService} defined,
+     * {@code false} otherwise.
+     */
+    private boolean isCarModeInCallService(@NonNull String packageName) {
+        InCallServiceInfo info =
+                getInCallServiceComponent(packageName, IN_CALL_SERVICE_TYPE_CAR_MODE_UI);
+        return info != null && info.getType() == IN_CALL_SERVICE_TYPE_CAR_MODE_UI;
+    }
+
+    public void handleCarModeChange(int priority, String packageName, boolean isCarMode) {
+        Log.i(this, "handleCarModeChange: packageName=%s, priority=%d, isCarMode=%b",
+                packageName, priority, isCarMode);
+        if (!isCarModeInCallService(packageName)) {
+            Log.i(this, "handleCarModeChange: not a valid InCallService; packageName=%s",
+                    packageName);
+            return;
+        }
+
+        if (isCarMode) {
+            mCarModeTracker.handleEnterCarMode(priority, packageName);
+        } else {
+            mCarModeTracker.handleExitCarMode(priority, packageName);
+        }
+
+        if (mInCallServiceConnection != null) {
+            Log.i(this, "handleCarModeChange: car mode apps: %s",
+                    mCarModeTracker.getCarModeApps().stream().collect(Collectors.joining(", ")));
+            if (shouldUseCarModeUI()) {
+                mInCallServiceConnection.changeCarModeApp(
+                        mCarModeTracker.getCurrentCarModePackage());
+            } else {
+                mInCallServiceConnection.disableCarMode();
+            }
+        }
+    }
 }
diff --git a/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java b/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java
index 1abd6fb..7f71ad2 100644
--- a/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java
+++ b/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java
@@ -519,7 +519,13 @@
     private boolean isPotentialEmergencyNumber(String number) {
         Log.v(this, "Checking restrictions for number : %s", Log.pii(number));
         if (number == null) return false;
-        return mContext.getSystemService(TelephonyManager.class).isPotentialEmergencyNumber(number);
+        try {
+            return mContext.getSystemService(TelephonyManager.class).isPotentialEmergencyNumber(
+                    number);
+        } catch (Exception e) {
+            Log.e(this, e, "isPotentialEmergencyNumber: Telephony threw an exception.");
+            return false;
+        }
     }
 
     /**
diff --git a/src/com/android/server/telecom/ParcelableCallUtils.java b/src/com/android/server/telecom/ParcelableCallUtils.java
index be44131..d490cd2 100644
--- a/src/com/android/server/telecom/ParcelableCallUtils.java
+++ b/src/com/android/server/telecom/ParcelableCallUtils.java
@@ -29,10 +29,14 @@
 import android.telecom.TelecomManager;
 import android.text.TextUtils;
 
+import com.android.internal.annotations.VisibleForTesting;
+
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Utilities dealing with {@link ParcelableCall}.
@@ -254,7 +258,8 @@
                 call.getIntentExtras(),
                 extras,
                 call.getCreationTimeMillis(),
-                callDirection);
+                callDirection,
+                call.getCallerNumberVerificationStatus());
     }
 
     /**
@@ -267,6 +272,7 @@
      *     <li>Connection time</li>
      *     <li>Handle (phone number)</li>
      *     <li>Handle (phone number) presentation</li>
+     *     <li>Caller number verification status (verstat)</li>
      * </ul>
      * All other fields are nulled or set to 0 values.
      * Where the call screening service is part of the system dialer, the
@@ -324,7 +330,8 @@
                 null, /* intentExtras */
                 callExtras, /* callExtras */
                 call.getCreationTimeMillis(),
-                callDirection);
+                callDirection,
+                call.getCallerNumberVerificationStatus());
     }
 
     /**
diff --git a/src/com/android/server/telecom/RoleManagerAdapter.java b/src/com/android/server/telecom/RoleManagerAdapter.java
index a04ae57..ba82a06 100644
--- a/src/com/android/server/telecom/RoleManagerAdapter.java
+++ b/src/com/android/server/telecom/RoleManagerAdapter.java
@@ -102,18 +102,6 @@
     void addOrRemoveTestCallCompanionApp(String packageName, boolean isAdded);
 
     /**
-     * @return Package name of the car more app or {@code null} if there are no apps that match.
-     */
-    String getCarModeDialerApp();
-
-    /**
-     * Override the automotive app with another value. Used for testing purposes only.
-     * @param packageName Package name of the automotive app. Where
-     *                    {@code null}, the override is removed.
-     */
-    void setTestAutoModeApp(String packageName);
-
-    /**
      * Using role manager needs to know the current user handle.  Need to make sure the role manager
      * adapter can pass this to role manager.  As it changes, we'll pass it in.
      * @param currentUserHandle The new user handle.
diff --git a/src/com/android/server/telecom/RoleManagerAdapterImpl.java b/src/com/android/server/telecom/RoleManagerAdapterImpl.java
index 6f3fddd..eb216d0 100644
--- a/src/com/android/server/telecom/RoleManagerAdapterImpl.java
+++ b/src/com/android/server/telecom/RoleManagerAdapterImpl.java
@@ -38,7 +38,6 @@
 
     private String mOverrideDefaultCallRedirectionApp = null;
     private String mOverrideDefaultCallScreeningApp = null;
-    private String mOverrideDefaultCarModeApp = null;
     private String mOverrideDefaultDialerApp = null;
     private List<String> mOverrideCallCompanionApps = new ArrayList<>();
     private Context mContext;
@@ -112,19 +111,6 @@
     }
 
     @Override
-    public String getCarModeDialerApp() {
-        if (mOverrideDefaultCarModeApp != null) {
-            return mOverrideDefaultCarModeApp;
-        }
-        return getRoleManagerCarModeDialerApp();
-    }
-
-    @Override
-    public void setTestAutoModeApp(String packageName) {
-        mOverrideDefaultCarModeApp = packageName;
-    }
-
-    @Override
     public void setCurrentUserHandle(UserHandle currentUserHandle) {
         mCurrentUserHandle = currentUserHandle;
     }
@@ -147,11 +133,6 @@
         return roleHolders.get(0);
     }
 
-    // TODO in R: query and return car mode apps
-    private String getRoleManagerCarModeDialerApp() {
-        return null;
-    }
-
     // TODO in R: Use companion app manager
     private List<String> getRoleManagerCallCompanionApps() {
         return new ArrayList<>();
@@ -213,15 +194,6 @@
         }
         pw.println();
 
-        pw.print("DefaultCarModeDialerApp: ");
-        if (mOverrideDefaultCarModeApp != null) {
-            pw.print("(override ");
-            pw.print(mOverrideDefaultCarModeApp);
-            pw.print(") ");
-            pw.print(getRoleManagerCarModeDialerApp());
-        }
-        pw.println();
-
         pw.print("DefaultCallCompanionApps: ");
         if (mOverrideCallCompanionApps != null) {
             pw.print("(override ");
diff --git a/src/com/android/server/telecom/SystemStateHelper.java b/src/com/android/server/telecom/SystemStateHelper.java
index 69a46c6..073b081 100644
--- a/src/com/android/server/telecom/SystemStateHelper.java
+++ b/src/com/android/server/telecom/SystemStateHelper.java
@@ -39,7 +39,15 @@
  */
 public class SystemStateHelper {
     public static interface SystemStateListener {
-        public void onCarModeChanged(boolean isCarMode);
+        /**
+         * Listener method to inform interested parties when a package name requests to enter or
+         * exit car mode.
+         * @param priority the priority of the enter/exit request.
+         * @param packageName the package name of the requester.
+         * @param isCarMode {@code true} if the package is entering car mode, {@code false}
+         *                              otherwise.
+         */
+        void onCarModeChanged(int priority, String packageName, boolean isCarMode);
     }
 
     private final Context mContext;
@@ -49,10 +57,22 @@
             Log.startSession("SSP.oR");
             try {
                 String action = intent.getAction();
-                if (UiModeManager.ACTION_ENTER_CAR_MODE.equals(action)) {
-                    onEnterCarMode();
-                } else if (UiModeManager.ACTION_EXIT_CAR_MODE.equals(action)) {
-                    onExitCarMode();
+                if (UiModeManager.ACTION_ENTER_CAR_MODE_PRIORITIZED.equals(action)) {
+                    int priority = intent.getIntExtra(UiModeManager.EXTRA_PRIORITY,
+                            UiModeManager.DEFAULT_PRIORITY);
+                    String callingPackage = intent.getStringExtra(
+                            UiModeManager.EXTRA_CALLING_PACKAGE);
+                    Log.i(SystemStateHelper.this, "ENTER_CAR_MODE_PRIVILEGED; priority=%d, pkg=%s",
+                            priority, callingPackage);
+                    onEnterCarMode(priority, callingPackage);
+                } else if (UiModeManager.ACTION_EXIT_CAR_MODE_PRIORITIZED.equals(action)) {
+                    int priority = intent.getIntExtra(UiModeManager.EXTRA_PRIORITY,
+                            UiModeManager.DEFAULT_PRIORITY);
+                    String callingPackage = intent.getStringExtra(
+                            UiModeManager.EXTRA_CALLING_PACKAGE);
+                    Log.i(SystemStateHelper.this, "EXIT_CAR_MODE_PRIVILEGED; priority=%d, pkg=%s",
+                            priority, callingPackage);
+                    onExitCarMode(priority, callingPackage);
                 } else {
                     Log.w(this, "Unexpected intent received: %s", intent.getAction());
                 }
@@ -68,8 +88,9 @@
     public SystemStateHelper(Context context) {
         mContext = context;
 
-        IntentFilter intentFilter = new IntentFilter(UiModeManager.ACTION_ENTER_CAR_MODE);
-        intentFilter.addAction(UiModeManager.ACTION_EXIT_CAR_MODE);
+        IntentFilter intentFilter = new IntentFilter(
+                UiModeManager.ACTION_ENTER_CAR_MODE_PRIORITIZED);
+        intentFilter.addAction(UiModeManager.ACTION_EXIT_CAR_MODE_PRIORITIZED);
         mContext.registerReceiver(mBroadcastReceiver, intentFilter);
         Log.i(this, "Registering car mode receiver: %s", intentFilter);
 
@@ -170,25 +191,19 @@
         }
     }
 
-    private void onEnterCarMode() {
-        if (!mIsCarMode) {
-            Log.i(this, "Entering carmode");
-            mIsCarMode = true;
-            notifyCarMode();
-        }
-    }
-
-    private void onExitCarMode() {
-        if (mIsCarMode) {
-            Log.i(this, "Exiting carmode");
-            mIsCarMode = false;
-            notifyCarMode();
-        }
-    }
-
-    private void notifyCarMode() {
+    private void onEnterCarMode(int priority, String packageName) {
+        Log.i(this, "Entering carmode");
+        mIsCarMode = getSystemCarMode();
         for (SystemStateListener listener : mListeners) {
-            listener.onCarModeChanged(mIsCarMode);
+            listener.onCarModeChanged(priority, packageName, true /* isCarMode */);
+        }
+    }
+
+    private void onExitCarMode(int priority, String packageName) {
+        Log.i(this, "Exiting carmode");
+        mIsCarMode = getSystemCarMode();
+        for (SystemStateListener listener : mListeners) {
+            listener.onCarModeChanged(priority, packageName, false /* isCarMode */);
         }
     }
 
diff --git a/src/com/android/server/telecom/TelecomBroadcastIntentProcessor.java b/src/com/android/server/telecom/TelecomBroadcastIntentProcessor.java
index 8d2a2c5..06aa174 100644
--- a/src/com/android/server/telecom/TelecomBroadcastIntentProcessor.java
+++ b/src/com/android/server/telecom/TelecomBroadcastIntentProcessor.java
@@ -26,6 +26,7 @@
 
 import com.android.server.telecom.ui.CallRedirectionConfirmDialogActivity;
 import com.android.server.telecom.ui.ConfirmCallDialogActivity;
+import com.android.server.telecom.ui.DisconnectedCallNotifier;
 
 import java.util.List;
 
@@ -38,6 +39,14 @@
     public static final String ACTION_CALL_BACK_FROM_NOTIFICATION =
             "com.android.server.telecom.ACTION_CALL_BACK_FROM_NOTIFICATION";
 
+    /** The action used to send SMS response for the disconnected call notification. */
+    public static final String ACTION_DISCONNECTED_SEND_SMS_FROM_NOTIFICATION =
+            "com.android.server.telecom.ACTION_DISCONNECTED_SEND_SMS_FROM_NOTIFICATION";
+
+    /** The action used to call a handle back for the disconnected call notification. */
+    public static final String ACTION_DISCONNECTED_CALL_BACK_FROM_NOTIFICATION =
+            "com.android.server.telecom.ACTION_DISCONNECTED_CALL_BACK_FROM_NOTIFICATION";
+
     /** The action used to clear missed calls. */
     public static final String ACTION_CLEAR_MISSED_CALLS =
             "com.android.server.telecom.ACTION_CLEAR_MISSED_CALLS";
@@ -121,34 +130,45 @@
                 // Close the notification shade and the notification itself.
                 closeSystemDialogs(mContext);
                 missedCallNotifier.clearMissedCalls(userHandle);
-
-                Intent callIntent = new Intent(Intent.ACTION_SENDTO, intent.getData());
-                callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                PackageManager packageManager = mContext.getPackageManager();
-                List<ResolveInfo> activities = packageManager.queryIntentActivitiesAsUser(
-                        callIntent, PackageManager.MATCH_DEFAULT_ONLY, userHandle.getIdentifier());
-                if (activities.size() > 0) {
-                    mContext.startActivityAsUser(callIntent, userHandle);
-                } else {
-                    Toast.makeText(mContext, com.android.internal.R.string.noApplications,
-                            Toast.LENGTH_SHORT).show();
-                }
+                sendSmsIntent(intent, userHandle);
 
                 // Call back recent caller from the missed call notification.
             } else if (ACTION_CALL_BACK_FROM_NOTIFICATION.equals(action)) {
                 // Close the notification shade and the notification itself.
                 closeSystemDialogs(mContext);
                 missedCallNotifier.clearMissedCalls(userHandle);
-
-                Intent callIntent = new Intent(Intent.ACTION_CALL, intent.getData());
-                callIntent.setFlags(
-                        Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
-                mContext.startActivityAsUser(callIntent, userHandle);
+                sendCallBackIntent(intent, userHandle);
 
                 // Clear the missed call notification and call log entries.
             } else if (ACTION_CLEAR_MISSED_CALLS.equals(action)) {
                 missedCallNotifier.clearMissedCalls(userHandle);
             }
+        } else if(ACTION_DISCONNECTED_SEND_SMS_FROM_NOTIFICATION.equals(action) ||
+                ACTION_DISCONNECTED_CALL_BACK_FROM_NOTIFICATION.equals(action)) {
+            Log.v(this, "Action received: %s.", action);
+            UserHandle userHandle = intent.getParcelableExtra(EXTRA_USERHANDLE);
+            if (userHandle == null) {
+                Log.d(this, "disconnect user handle can't be null, not processing the broadcast");
+                return;
+            }
+
+            DisconnectedCallNotifier disconnectedCallNotifier =
+                    mCallsManager.getDisconnectedCallNotifier();
+
+            // Send an SMS from the disconnected call notification.
+            if (ACTION_DISCONNECTED_SEND_SMS_FROM_NOTIFICATION.equals(action)) {
+                // Close the notification shade and the notification itself.
+                closeSystemDialogs(mContext);
+                disconnectedCallNotifier.clearNotification(userHandle);
+                sendSmsIntent(intent, userHandle);
+
+            // Call back recent caller from the disconnected call notification.
+            } else if (ACTION_DISCONNECTED_CALL_BACK_FROM_NOTIFICATION.equals(action)) {
+                // Close the notification shade and the notification itself.
+                closeSystemDialogs(mContext);
+                disconnectedCallNotifier.clearNotification(userHandle);
+                sendCallBackIntent(intent, userHandle);
+            }
         } else if (ACTION_ANSWER_FROM_NOTIFICATION.equals(action)) {
             Log.startSession("TBIP.aAFM");
             try {
@@ -230,4 +250,25 @@
         Intent intent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
         context.sendBroadcastAsUser(intent, UserHandle.ALL);
     }
+
+    private void sendSmsIntent(Intent intent, UserHandle userHandle) {
+        Intent callIntent = new Intent(Intent.ACTION_SENDTO, intent.getData());
+        callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        PackageManager packageManager = mContext.getPackageManager();
+        List<ResolveInfo> activities = packageManager.queryIntentActivitiesAsUser(
+                callIntent, PackageManager.MATCH_DEFAULT_ONLY, userHandle.getIdentifier());
+        if (activities.size() > 0) {
+            mContext.startActivityAsUser(callIntent, userHandle);
+        } else {
+            Toast.makeText(mContext, com.android.internal.R.string.noApplications,
+                    Toast.LENGTH_SHORT).show();
+        }
+    }
+
+    private void sendCallBackIntent(Intent intent, UserHandle userHandle) {
+        Intent callIntent = new Intent(Intent.ACTION_CALL, intent.getData());
+        callIntent.setFlags(
+                Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
+        mContext.startActivityAsUser(callIntent, userHandle);
+    }
 }
diff --git a/src/com/android/server/telecom/TelecomServiceImpl.java b/src/com/android/server/telecom/TelecomServiceImpl.java
index cb70c99..e2f441c 100644
--- a/src/com/android/server/telecom/TelecomServiceImpl.java
+++ b/src/com/android/server/telecom/TelecomServiceImpl.java
@@ -181,7 +181,12 @@
                 boolean includeDisabledAccounts, String callingPackage) {
             try {
                 Log.startSession("TSI.gCCPA");
-                if (!canReadPhoneState(callingPackage, "getDefaultOutgoingPhoneAccount")) {
+                if (includeDisabledAccounts &&
+                        !canReadPrivilegedPhoneState(
+                                callingPackage, "getCallCapablePhoneAccounts")) {
+                    return Collections.emptyList();
+                }
+                if (!canReadPhoneState(callingPackage, "getCallCapablePhoneAccounts")) {
                     return Collections.emptyList();
                 }
                 synchronized (mLock) {
@@ -444,8 +449,8 @@
             try {
                 Log.startSession("TSI.rPA");
                 synchronized (mLock) {
-                    if (!mContext.getApplicationContext().getResources().getBoolean(
-                            com.android.internal.R.bool.config_voice_capable)) {
+                    if (!((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE))
+                                .isVoiceCapable()) {
                         Log.w(this,
                                 "registerPhoneAccount not allowed on non-voice capable device.");
                         return;
@@ -1660,27 +1665,6 @@
         }
 
         @Override
-        public void setTestAutoModeApp(String packageName) {
-            try {
-                Log.startSession("TSI.sTAMA");
-                enforceModifyPermission();
-                if (!Build.IS_USERDEBUG) {
-                    throw new SecurityException("Test-only API.");
-                }
-                synchronized (mLock) {
-                    long token = Binder.clearCallingIdentity();
-                    try {
-                        mCallsManager.getRoleManagerAdapter().setTestAutoModeApp(packageName);
-                    } finally {
-                        Binder.restoreCallingIdentity(token);
-                    }
-                }
-            } finally {
-                Log.endSession();
-            }
-        }
-
-        @Override
         public void setTestPhoneAcctSuggestionComponent(String flattenedComponentName) {
             try {
                 Log.startSession("TSI.sPASA");
@@ -2027,6 +2011,17 @@
         }
     }
 
+    private boolean canReadPrivilegedPhoneState(String callingPackage, String message) {
+        // The system/default dialer can always read phone state - so that emergency calls will
+        // still work.
+        if (isPrivilegedDialerCalling(callingPackage)) {
+            return true;
+        }
+
+        mContext.enforceCallingOrSelfPermission(READ_PRIVILEGED_PHONE_STATE, message);
+        return true;
+    }
+
     private boolean isDialerOrPrivileged(String callingPackage, String message) {
         // The system/default dialer can always read phone state - so that emergency calls will
         // still work.
diff --git a/src/com/android/server/telecom/TelecomSystem.java b/src/com/android/server/telecom/TelecomSystem.java
index 7700852..a8e16ae 100644
--- a/src/com/android/server/telecom/TelecomSystem.java
+++ b/src/com/android/server/telecom/TelecomSystem.java
@@ -24,6 +24,7 @@
 import com.android.server.telecom.components.UserCallIntentProcessor;
 import com.android.server.telecom.components.UserCallIntentProcessorFactory;
 import com.android.server.telecom.ui.AudioProcessingNotification;
+import com.android.server.telecom.ui.DisconnectedCallNotifier;
 import com.android.server.telecom.ui.IncomingCallNotifier;
 import com.android.server.telecom.ui.MissedCallNotifierImpl.MissedCallNotifierImplFactory;
 import com.android.server.telecom.BluetoothPhoneServiceImpl.BluetoothPhoneServiceImplFactory;
@@ -251,6 +252,8 @@
 
         mMissedCallNotifier = missedCallNotifierImplFactory
                 .makeMissedCallNotifierImpl(mContext, mPhoneAccountRegistrar, defaultDialerCache);
+        DisconnectedCallNotifier.Factory disconnectedCallNotifierFactory =
+                new DisconnectedCallNotifier.Default();
 
         CallerInfoLookupHelper callerInfoLookupHelper =
                 new CallerInfoLookupHelper(context, callerInfoAsyncQueryFactory,
@@ -266,7 +269,8 @@
                     DefaultDialerCache defaultDialerCache, Timeouts.Adapter timeoutsAdapter,
                     EmergencyCallHelper emergencyCallHelper) {
                 return new InCallController(context, lock, callsManager, systemStateProvider,
-                        defaultDialerCache, timeoutsAdapter, emergencyCallHelper);
+                        defaultDialerCache, timeoutsAdapter, emergencyCallHelper,
+                        new CarModeTracker());
             }
         };
 
@@ -291,6 +295,7 @@
                 mLock,
                 callerInfoLookupHelper,
                 mMissedCallNotifier,
+                disconnectedCallNotifierFactory,
                 mPhoneAccountRegistrar,
                 headsetMediaButtonFactory,
                 proximitySensorManagerFactory,
diff --git a/src/com/android/server/telecom/callfiltering/BlockCheckerAdapter.java b/src/com/android/server/telecom/callfiltering/BlockCheckerAdapter.java
index 1a641f0..a83f314 100644
--- a/src/com/android/server/telecom/callfiltering/BlockCheckerAdapter.java
+++ b/src/com/android/server/telecom/callfiltering/BlockCheckerAdapter.java
@@ -21,8 +21,6 @@
 import android.provider.BlockedNumberContract;
 import android.telecom.Log;
 
-import com.android.internal.telephony.BlockChecker;
-
 public class BlockCheckerAdapter {
     private static final String TAG = BlockCheckerAdapter.class.getSimpleName();
 
diff --git a/src/com/android/server/telecom/components/TelecomService.java b/src/com/android/server/telecom/components/TelecomService.java
index 2acc548..e20da80 100644
--- a/src/com/android/server/telecom/components/TelecomService.java
+++ b/src/com/android/server/telecom/components/TelecomService.java
@@ -90,8 +90,6 @@
                     new NotificationChannelManager();
             notificationChannelManager.createChannels(context);
 
-            boolean shouldPauseBetweenRingtoneRepeat = context.getResources().getBoolean(
-                    R.bool.should_pause_between_ringtone_repeats);
             TelecomSystem.setInstance(
                     new TelecomSystem(
                             context,
@@ -173,7 +171,7 @@
                             },
                             ConnectionServiceFocusManager::new,
                             new Timeouts.Adapter(),
-                            new AsyncRingtonePlayer(shouldPauseBetweenRingtoneRepeat),
+                            new AsyncRingtonePlayer(),
                             new PhoneNumberUtilsAdapterImpl(),
                             new IncomingCallNotifier(context),
                             ToneGenerator::new,
diff --git a/src/com/android/server/telecom/components/UserCallIntentProcessor.java b/src/com/android/server/telecom/components/UserCallIntentProcessor.java
index 134db80..75c1996 100644
--- a/src/com/android/server/telecom/components/UserCallIntentProcessor.java
+++ b/src/com/android/server/telecom/components/UserCallIntentProcessor.java
@@ -27,6 +27,7 @@
 import android.telecom.TelecomManager;
 import android.telecom.VideoProfile;
 import android.telephony.PhoneNumberUtils;
+import android.telephony.TelephonyManager;
 
 import com.android.server.telecom.CallIntentProcessor;
 import com.android.server.telecom.R;
@@ -163,8 +164,8 @@
      * @return {@code True} if the device is voice-capable.
      */
     private boolean isVoiceCapable() {
-        return mContext.getApplicationContext().getResources().getBoolean(
-                com.android.internal.R.bool.config_voice_capable);
+        return ((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE))
+                .isVoiceCapable();
     }
 
     /**
diff --git a/src/com/android/server/telecom/ui/DisconnectedCallNotifier.java b/src/com/android/server/telecom/ui/DisconnectedCallNotifier.java
new file mode 100644
index 0000000..aa05552
--- /dev/null
+++ b/src/com/android/server/telecom/ui/DisconnectedCallNotifier.java
@@ -0,0 +1,373 @@
+/*
+ * Copyright (C) 2019 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.server.telecom.ui;
+
+import android.annotation.NonNull;
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.app.TaskStackBuilder;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.Icon;
+import android.net.Uri;
+import android.os.Binder;
+import android.os.UserHandle;
+import android.provider.CallLog;
+import android.telecom.DisconnectCause;
+import android.telecom.Log;
+import android.telecom.PhoneAccount;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.TelephonyManager;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
+import android.text.TextUtils;
+
+import com.android.server.telecom.Call;
+import com.android.server.telecom.CallState;
+import com.android.server.telecom.CallsManager;
+import com.android.server.telecom.CallsManagerListenerBase;
+import com.android.server.telecom.Constants;
+import com.android.server.telecom.R;
+import com.android.server.telecom.TelecomBroadcastIntentProcessor;
+import com.android.server.telecom.components.TelecomBroadcastReceiver;
+
+import java.util.Locale;
+
+/**
+ * Handles notifications generated by Telecom for the case that a call was disconnected in order to
+ * connect another "higher priority" emergency call and gives the user the choice to call or
+ * message that user back after, similar to the missed call notifier.
+ */
+public class DisconnectedCallNotifier extends CallsManagerListenerBase {
+
+    public interface Factory {
+        DisconnectedCallNotifier create(Context context, CallsManager manager);
+    }
+
+    public static class Default implements Factory {
+
+        @Override
+        public DisconnectedCallNotifier create(Context context, CallsManager manager) {
+            return new DisconnectedCallNotifier(context, manager);
+        }
+    }
+
+    private static class CallInfo {
+        public final UserHandle userHandle;
+        public final Uri handle;
+        public final long endTimeMs;
+        public final Bitmap callerInfoIcon;
+        public final Drawable callerInfoPhoto;
+        public final String callerInfoName;
+
+        public CallInfo(UserHandle userHandle, Uri handle, long endTimeMs, Bitmap callerInfoIcon,
+                Drawable callerInfoPhoto, String callerInfoName) {
+            this.userHandle = userHandle;
+            this.handle = handle;
+            this.endTimeMs = endTimeMs;
+            this.callerInfoIcon = callerInfoIcon;
+            this.callerInfoPhoto = callerInfoPhoto;
+            this.callerInfoName = callerInfoName;
+        }
+
+        @Override
+        public String toString() {
+            return "CallInfo{" +
+                    "userHandle=" + userHandle +
+                    ", handle=" + handle +
+                    ", endTimeMs=" + endTimeMs +
+                    ", callerInfoIcon=" + callerInfoIcon +
+                    ", callerInfoPhoto=" + callerInfoPhoto +
+                    ", callerInfoName='" + callerInfoName + '\'' +
+                    '}';
+        }
+    }
+
+    private static final String NOTIFICATION_TAG =
+            DisconnectedCallNotifier.class.getSimpleName();
+    private static final int DISCONNECTED_CALL_NOTIFICATION_ID = 1;
+
+    private final Context mContext;
+    private final CallsManager mCallsManager;
+    private final NotificationManager mNotificationManager;
+    // The pending info to display to the user after they have ended the emergency call.
+    private CallInfo mPendingCallNotification;
+
+    public DisconnectedCallNotifier(Context context, CallsManager callsManager) {
+        mContext = context;
+        mNotificationManager =
+                (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
+        mCallsManager = callsManager;
+    }
+
+    @Override
+    public void onCallRemoved(Call call) {
+        // Wait until the emergency call is ended before showing the notification.
+        if (mCallsManager.getCalls().isEmpty() && mPendingCallNotification != null) {
+            showDisconnectedNotification(mPendingCallNotification);
+            mPendingCallNotification = null;
+        }
+    }
+
+    @Override
+    public void onCallStateChanged(Call call, int oldState, int newState) {
+        DisconnectCause cause = call.getDisconnectCause();
+        if (cause == null) {
+            Log.w(this, "onCallStateChanged: unexpected null disconnect cause.");
+            return;
+        }
+        // Call disconnected in favor of an emergency call. Place the call into a pending queue.
+        if ((newState == CallState.DISCONNECTED) && (cause.getCode() == DisconnectCause.LOCAL) &&
+                DisconnectCause.REASON_EMERGENCY_CALL_PLACED.equals(cause.getReason())) {
+            // Clear any existing notification.
+            clearNotification(mCallsManager.getCurrentUserHandle());
+            UserHandle userHandle = call.getTargetPhoneAccount() != null ?
+                    call.getTargetPhoneAccount().getUserHandle() : call.getInitiatingUser();
+            // As a last resort, use the current user to display the notification.
+            if (userHandle == null) userHandle = mCallsManager.getCurrentUserHandle();
+            mPendingCallNotification = new CallInfo(userHandle, call.getHandle(),
+                    call.getCreationTimeMillis() + call.getAgeMillis(), call.getPhotoIcon(),
+                    call.getPhoto(), call.getName());
+        }
+    }
+
+    private void showDisconnectedNotification(@NonNull CallInfo call) {
+        Log.i(this, "showDisconnectedNotification: userHandle=%d", call.userHandle.getIdentifier());
+
+        final int titleResId = R.string.notification_disconnectedCall_title;
+        final String expandedText = mContext.getString(R.string.notification_disconnectedCall_body,
+                getNameForCallNotification(call));
+
+        // Create a public viewable version of the notification, suitable for display when sensitive
+        // notification content is hidden.
+        // We use user's context here to make sure notification is badged if it is a managed user.
+        Context contextForUser = getContextForUser(call.userHandle);
+        Notification.Builder publicBuilder = new Notification.Builder(contextForUser,
+                NotificationChannelManager.CHANNEL_ID_DISCONNECTED_CALLS);
+        publicBuilder.setSmallIcon(android.R.drawable.stat_notify_error)
+                .setColor(mContext.getResources().getColor(R.color.theme_color, null /*theme*/))
+                // Set when the call was disconnected.
+                .setWhen(call.endTimeMs)
+                .setShowWhen(true)
+                // Show "Phone" for notification title.
+                .setContentTitle(mContext.getText(R.string.userCallActivityLabel))
+                // Notification details shows that there are disconnected call(s), but does not
+                // reveal the caller information.
+                .setContentText(mContext.getText(titleResId))
+                .setContentIntent(createCallLogPendingIntent(call.userHandle))
+                .setAutoCancel(true);
+
+        // Create the notification suitable for display when sensitive information is showing.
+        Notification.Builder builder = new Notification.Builder(contextForUser,
+                NotificationChannelManager.CHANNEL_ID_DISCONNECTED_CALLS);
+        builder.setSmallIcon(android.R.drawable.stat_notify_error)
+                .setColor(mContext.getResources().getColor(R.color.theme_color, null /*theme*/))
+                .setWhen(call.endTimeMs)
+                .setShowWhen(true)
+                .setContentTitle(mContext.getText(titleResId))
+                //Only show expanded text for sensitive information
+                .setStyle(new Notification.BigTextStyle().bigText(expandedText))
+                .setContentIntent(createCallLogPendingIntent(call.userHandle))
+                .setAutoCancel(true)
+                // Include a public version of the notification to be shown when the call
+                // notification is shown on the user's lock screen and they have chosen to hide
+                // sensitive notification information.
+                .setPublicVersion(publicBuilder.build())
+                .setChannelId(NotificationChannelManager.CHANNEL_ID_DISCONNECTED_CALLS);
+
+        String handle = call.handle != null ? call.handle.getSchemeSpecificPart() : null;
+
+        if (!TextUtils.isEmpty(handle)
+                && !TextUtils.equals(handle, mContext.getString(R.string.handle_restricted))) {
+            builder.addAction(new Notification.Action.Builder(
+                    Icon.createWithResource(contextForUser, R.drawable.ic_phone_24dp),
+                    // Reuse missed call "Call back"
+                    mContext.getString(R.string.notification_missedCall_call_back),
+                    createCallBackPendingIntent(call.handle, call.userHandle)).build());
+
+            if (canRespondViaSms(call)) {
+                builder.addAction(new Notification.Action.Builder(
+                        Icon.createWithResource(contextForUser, R.drawable.ic_message_24dp),
+                        // Reuse missed call "Call back"
+                        mContext.getString(R.string.notification_missedCall_message),
+                        createSendSmsFromNotificationPendingIntent(call.handle,
+                                call.userHandle)).build());
+            }
+        }
+
+        if (call.callerInfoIcon != null) {
+            builder.setLargeIcon(call.callerInfoIcon);
+        } else {
+            if (call.callerInfoPhoto instanceof BitmapDrawable) {
+                builder.setLargeIcon(((BitmapDrawable) call.callerInfoPhoto).getBitmap());
+            }
+        }
+
+        Notification notification = builder.build();
+
+        Log.i(this, "Adding missed call notification for %s.", Log.pii(call.handle));
+        long token = Binder.clearCallingIdentity();
+        try {
+            // TODO: Only support one notification right now, so if multiple are hung up, we only
+            // show the last one. Support multiple in the future.
+            mNotificationManager.notifyAsUser(NOTIFICATION_TAG, DISCONNECTED_CALL_NOTIFICATION_ID,
+                    notification, call.userHandle);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+
+    /**
+     * Returns the name to use in the call notification.
+     */
+    private String getNameForCallNotification(@NonNull CallInfo call) {
+        String number = call.handle != null ? call.handle.getSchemeSpecificPart() : null;
+
+        if (!TextUtils.isEmpty(number)) {
+            String formattedNumber = PhoneNumberUtils.formatNumber(number,
+                    getCurrentCountryIso(mContext));
+
+            // The formatted number will be null if there was a problem formatting it, but we can
+            // default to using the unformatted number instead (e.g. a SIP URI may not be able to
+            // be formatted.
+            if (!TextUtils.isEmpty(formattedNumber)) {
+                number = formattedNumber;
+            }
+        }
+
+        if (!TextUtils.isEmpty(call.callerInfoName) && TextUtils.isGraphic(call.callerInfoName)) {
+            return call.callerInfoName;
+        }
+        if (!TextUtils.isEmpty(number)) {
+            // A handle should always be displayed LTR using {@link BidiFormatter} regardless of the
+            // content of the rest of the notification.
+            // TODO: Does this apply to SIP addresses?
+            BidiFormatter bidiFormatter = BidiFormatter.getInstance();
+            return bidiFormatter.unicodeWrap(number, TextDirectionHeuristics.LTR);
+        } else {
+            // Use "unknown" if the call is unidentifiable.
+            return mContext.getString(R.string.unknown);
+        }
+    }
+
+    /**
+     * @return The ISO 3166-1 two letters country code of the country the user is in based on the
+     *      network location.  If the network location does not exist, fall back to the locale
+     *      setting.
+     */
+    private String getCurrentCountryIso(Context context) {
+        // Without framework function calls, this seems to be the most accurate location service
+        // we can rely on.
+        final TelephonyManager telephonyManager =
+                (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+        String countryIso = telephonyManager.getNetworkCountryIso().toUpperCase();
+
+        if (countryIso == null) {
+            countryIso = Locale.getDefault().getCountry();
+            Log.w(this, "No CountryDetector; falling back to countryIso based on locale: "
+                    + countryIso);
+        }
+        return countryIso;
+    }
+
+    private Context getContextForUser(UserHandle user) {
+        try {
+            return mContext.createPackageContextAsUser(mContext.getPackageName(), 0, user);
+        } catch (PackageManager.NameNotFoundException e) {
+            // Default to mContext, not finding the package system is running as is unlikely.
+            return mContext;
+        }
+    }
+
+    /**
+     * Creates an intent to be invoked when the user opts to "call back" from the disconnected call
+     * notification.
+     *
+     * @param handle The handle to call back.
+     */
+    private PendingIntent createCallBackPendingIntent(Uri handle, UserHandle userHandle) {
+        return createTelecomPendingIntent(
+                TelecomBroadcastIntentProcessor.ACTION_DISCONNECTED_CALL_BACK_FROM_NOTIFICATION,
+                handle, userHandle);
+    }
+
+    /**
+     * Creates generic pending intent from the specified parameters to be received by
+     * {@link TelecomBroadcastIntentProcessor}.
+     *
+     * @param action The intent action.
+     * @param data The intent data.
+     */
+    private PendingIntent createTelecomPendingIntent(String action, Uri data,
+            UserHandle userHandle) {
+        Intent intent = new Intent(action, data, mContext, TelecomBroadcastReceiver.class);
+        intent.putExtra(TelecomBroadcastIntentProcessor.EXTRA_USERHANDLE, userHandle);
+        return PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+    }
+
+    private boolean canRespondViaSms(@NonNull CallInfo call) {
+        // Only allow respond-via-sms for "tel:" calls.
+        return call.handle != null &&
+                PhoneAccount.SCHEME_TEL.equals(call.handle.getScheme());
+    }
+
+    /**
+     * Creates a new pending intent that sends the user to the call log.
+     *
+     * @return The pending intent.
+     */
+    private PendingIntent createCallLogPendingIntent(UserHandle userHandle) {
+        Intent intent = new Intent(Intent.ACTION_VIEW, null);
+        intent.setType(CallLog.Calls.CONTENT_TYPE);
+
+        TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(mContext);
+        taskStackBuilder.addNextIntent(intent);
+
+        return taskStackBuilder.getPendingIntent(0, 0, null, userHandle);
+    }
+
+    /**
+     * Creates an intent to be invoked when the user opts to "send sms" from the missed call
+     * notification.
+     */
+    private PendingIntent createSendSmsFromNotificationPendingIntent(Uri handle,
+            UserHandle userHandle) {
+        return createTelecomPendingIntent(
+                TelecomBroadcastIntentProcessor.ACTION_DISCONNECTED_SEND_SMS_FROM_NOTIFICATION,
+                Uri.fromParts(Constants.SCHEME_SMSTO, handle.getSchemeSpecificPart(), null),
+                userHandle);
+    }
+
+    /**
+     * Clear any of the active notifications.
+     * @param userHandle The user to clear the notifications for.
+     */
+    public void clearNotification(UserHandle userHandle) {
+        long token = Binder.clearCallingIdentity();
+        try {
+            mNotificationManager.cancelAsUser(NOTIFICATION_TAG, DISCONNECTED_CALL_NOTIFICATION_ID,
+                    userHandle);
+        } finally {
+            Binder.restoreCallingIdentity(token);
+        }
+    }
+}
diff --git a/src/com/android/server/telecom/ui/NotificationChannelManager.java b/src/com/android/server/telecom/ui/NotificationChannelManager.java
index d812ad8..360239b 100644
--- a/src/com/android/server/telecom/ui/NotificationChannelManager.java
+++ b/src/com/android/server/telecom/ui/NotificationChannelManager.java
@@ -38,6 +38,7 @@
     public static final String CHANNEL_ID_INCOMING_CALLS = "TelecomIncomingCalls";
     public static final String CHANNEL_ID_CALL_BLOCKING = "TelecomCallBlocking";
     public static final String CHANNEL_ID_AUDIO_PROCESSING = "TelecomBackgroundAudioProcessing";
+    public static final String CHANNEL_ID_DISCONNECTED_CALLS = "TelecomDisconnectedCalls";
 
     private BroadcastReceiver mLocaleChangeReceiver = new BroadcastReceiver() {
         @Override
@@ -59,6 +60,7 @@
         createOrUpdateChannel(context, CHANNEL_ID_INCOMING_CALLS);
         createOrUpdateChannel(context, CHANNEL_ID_CALL_BLOCKING);
         createOrUpdateChannel(context, CHANNEL_ID_AUDIO_PROCESSING);
+        createOrUpdateChannel(context, CHANNEL_ID_DISCONNECTED_CALLS);
     }
 
     private void createOrUpdateChannel(Context context, String channelId) {
@@ -108,6 +110,14 @@
                 vibration = false;
                 sound = null;
                 break;
+            case CHANNEL_ID_DISCONNECTED_CALLS:
+                name = context.getText(R.string.notification_channel_disconnected_calls);
+                importance = NotificationManager.IMPORTANCE_DEFAULT;
+                canShowBadge = true;
+                lights = true;
+                vibration = true;
+                sound = silentRingtone;
+                break;
         }
 
         NotificationChannel channel = new NotificationChannel(channelId, name, importance);
diff --git a/testapps/carmodedialer/Android.bp b/testapps/carmodedialer/Android.bp
new file mode 100644
index 0000000..7179b1f
--- /dev/null
+++ b/testapps/carmodedialer/Android.bp
@@ -0,0 +1,26 @@
+//
+// Copyright (C) 2019 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.
+//
+
+android_test {
+    name: "TelecomCarModeApp",
+    static_libs: [
+        "androidx.legacy_legacy-support-v4",
+        "guava",
+    ],
+    srcs: ["src/**/*.java"],
+    platform_apis: true,
+    certificate: "platform",
+}
diff --git a/testapps/carmodedialer/AndroidManifest.xml b/testapps/carmodedialer/AndroidManifest.xml
new file mode 100644
index 0000000..7f55f7e
--- /dev/null
+++ b/testapps/carmodedialer/AndroidManifest.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          coreApp="true"
+          package="com.android.server.telecom.carmodedialer">
+
+    <uses-sdk
+        android:minSdkVersion="28"
+        android:targetSdkVersion="29" />
+
+    <uses-permission android:name="android.permission.ACCEPT_HANDOVER" />
+    <uses-permission android:name="android.permission.BLUETOOTH" />
+    <uses-permission android:name="android.permission.CALL_PHONE" />
+    <uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE" />
+    <uses-permission android:name="android.permission.ENTER_CAR_MODE_PRIORITIZED" />
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.READ_CALL_LOG" />
+    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
+
+    <application android:label="Telecom CarMode">
+        <uses-library android:name="android.test.runner" />
+
+        <service android:name="com.android.server.telecom.carmodedialer.CarModeInCallServiceImpl"
+                 android:permission="android.permission.BIND_INCALL_SERVICE" >
+          <meta-data android:name="android.telecom.IN_CALL_SERVICE_CAR_MODE_UI"
+                     android:value="true"/>
+          <intent-filter>
+              <action android:name="android.telecom.InCallService"/>
+          </intent-filter>
+        </service>
+
+        <activity android:name="com.android.server.telecom.carmodedialer.CarModeInCallUI"
+                android:label="CarMode Dialer"
+                android:launchMode="singleInstance">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="com.android.server.telecom.carmodedialer.CarModeDialerActivity"
+                  android:label="CarMode Dialer">
+            <intent-filter>
+                <action android:name="android.intent.action.DIAL" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.BROWSABLE" />
+                <data android:mimeType="vnd.android.cursor.item/phone" />
+                <data android:mimeType="vnd.android.cursor.item/person" />
+            </intent-filter>
+            <intent-filter>
+                <action android:name="android.intent.action.DIAL" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.BROWSABLE" />
+                <data android:scheme="voicemail" />
+            </intent-filter>
+            <intent-filter>
+                <action android:name="android.intent.action.DIAL" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+                <action android:name="android.intent.action.DIAL" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.BROWSABLE" />
+                <data android:scheme="tel" />
+            </intent-filter>
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/testapps/carmodedialer/res/drawable-hdpi/ic_android_black_24dp.png b/testapps/carmodedialer/res/drawable-hdpi/ic_android_black_24dp.png
new file mode 100644
index 0000000..ed3ee45
--- /dev/null
+++ b/testapps/carmodedialer/res/drawable-hdpi/ic_android_black_24dp.png
Binary files differ
diff --git a/testapps/carmodedialer/res/drawable-mdpi/ic_android_black_24dp.png b/testapps/carmodedialer/res/drawable-mdpi/ic_android_black_24dp.png
new file mode 100644
index 0000000..a4add51
--- /dev/null
+++ b/testapps/carmodedialer/res/drawable-mdpi/ic_android_black_24dp.png
Binary files differ
diff --git a/testapps/carmodedialer/res/drawable-xhdpi/ic_android_black_24dp.png b/testapps/carmodedialer/res/drawable-xhdpi/ic_android_black_24dp.png
new file mode 100644
index 0000000..41558f2
--- /dev/null
+++ b/testapps/carmodedialer/res/drawable-xhdpi/ic_android_black_24dp.png
Binary files differ
diff --git a/testapps/carmodedialer/res/drawable-xhdpi/stat_sys_phone_call.png b/testapps/carmodedialer/res/drawable-xhdpi/stat_sys_phone_call.png
new file mode 100644
index 0000000..1bb4340
--- /dev/null
+++ b/testapps/carmodedialer/res/drawable-xhdpi/stat_sys_phone_call.png
Binary files differ
diff --git a/testapps/carmodedialer/res/drawable-xxhdpi/ic_android_black_24dp.png b/testapps/carmodedialer/res/drawable-xxhdpi/ic_android_black_24dp.png
new file mode 100644
index 0000000..6006b12
--- /dev/null
+++ b/testapps/carmodedialer/res/drawable-xxhdpi/ic_android_black_24dp.png
Binary files differ
diff --git a/testapps/carmodedialer/res/drawable-xxxhdpi/ic_android_black_24dp.png b/testapps/carmodedialer/res/drawable-xxxhdpi/ic_android_black_24dp.png
new file mode 100644
index 0000000..4f935bf
--- /dev/null
+++ b/testapps/carmodedialer/res/drawable-xxxhdpi/ic_android_black_24dp.png
Binary files differ
diff --git a/testapps/carmodedialer/res/layout/call_list_item.xml b/testapps/carmodedialer/res/layout/call_list_item.xml
new file mode 100644
index 0000000..9a77ceb
--- /dev/null
+++ b/testapps/carmodedialer/res/layout/call_list_item.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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" >
+    <TextView
+            android:id="@+id/phoneNumber"
+            android:layout_gravity="left"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="25dp"
+            android:text="TextView" />
+    <TextView
+            android:id="@+id/callState"
+            android:layout_gravity="left"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="25dp"
+            android:text="TextView" />
+    <TextView
+            android:id="@+id/duration"
+            android:layout_gravity="right"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="25dp"
+            android:text="TextView" />
+</LinearLayout>
diff --git a/testapps/carmodedialer/res/layout/incall_screen.xml b/testapps/carmodedialer/res/layout/incall_screen.xml
new file mode 100644
index 0000000..bef6915
--- /dev/null
+++ b/testapps/carmodedialer/res/layout/incall_screen.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical" >
+    <ListView
+            android:id="@+id/callListView"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:divider="#FFCC00"
+            android:dividerHeight="4px">
+    </ListView>
+    <GridLayout
+        android:columnCount="3"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+        <Button
+            android:id="@+id/end_call_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/endCallButton" />
+        <Button
+            android:id="@+id/mute_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/muteButton" />
+        <Button
+            android:id="@+id/hold_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/holdButton"/>
+        <Button
+            android:id="@+id/rtt_iface_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/rttIfaceButton"/>
+        <Button
+            android:id="@+id/answer_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/answerCallButton"/>
+        <Button
+            android:id="@+id/start_rtt_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/startRttButton"/>
+        <Button
+            android:id="@+id/accept_rtt_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/acceptRttButton"/>
+        <Button
+            android:id="@+id/request_handover_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/handoverButton"/>
+    </GridLayout>
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+        <Spinner
+            android:id="@+id/available_bt_devices"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"/>
+        <Button
+            android:id="@+id/set_bt_device_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/setBtDeviceButton"/>
+    </LinearLayout>
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+        <Button
+            android:id="@+id/earpiece_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/earpieceButton"/>
+        <Button
+            android:id="@+id/speaker_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/speakerButton"/>
+    </LinearLayout>
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+        <TextView
+            android:id="@+id/current_route_label"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/currentRouteLabel"/>
+        <TextView
+            android:id="@+id/current_audio_route"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="10dp"/>
+    </LinearLayout>
+</LinearLayout>
diff --git a/testapps/carmodedialer/res/layout/testdialer_main.xml b/testapps/carmodedialer/res/layout/testdialer_main.xml
new file mode 100644
index 0000000..c332d19
--- /dev/null
+++ b/testapps/carmodedialer/res/layout/testdialer_main.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical" >
+    <TextView
+        android:id="@+id/appLabel"
+        android:layout_gravity="left"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textSize="25dp"
+        android:text="Telecom CarMode Dialer" />
+    <EditText
+        android:id="@+id/number"
+        android:inputType="number"
+        android:layout_width="200dp"
+        android:layout_height="wrap_content" />
+    <Button
+        android:id="@+id/place_call_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/placeCallButton" />
+    <LinearLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal" >
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="15dp"
+            android:text="Priority:" />
+        <EditText
+            android:id="@+id/priority"
+            android:inputType="number"
+            android:text="100"
+            android:layout_width="50dp"
+            android:layout_height="wrap_content" />
+        <Button
+            android:id="@+id/enable_car_mode"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Enable Car mode" />
+        <Button
+            android:id="@+id/disable_car_mode"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Disable Car mode" />
+    </LinearLayout>
+    <Button
+        android:id="@+id/toggle_incallservice"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="Toggle InCallService" />
+</LinearLayout>
diff --git a/testapps/carmodedialer/res/values/donottranslate_strings.xml b/testapps/carmodedialer/res/values/donottranslate_strings.xml
new file mode 100644
index 0000000..3b5fa65
--- /dev/null
+++ b/testapps/carmodedialer/res/values/donottranslate_strings.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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>
+    <!-- Application label -->
+    <string name="app_name">TelecommTests</string>
+
+    <!-- String for the TestCallActivity -->
+    <string name="testCallActivityLabel">Test Connection Service App</string>
+
+    <!-- String for the CarModeDialerActivity -->
+    <string name="testDialerActivityLabel">Test Dialer</string>
+
+    <!-- String for button in CarModeDialerActivity that reassigns the default Dialer -->
+    <string name="defaultDialerButton">Default dialer request</string>
+
+    <!-- String for button in CarModeDialerActivity that places a test call -->
+    <string name="placeCallButton">Place call</string>
+
+    <!-- String for button in CarModeDialerActivity that performs voicemail requests to verify
+            voicemail permissions -->
+    <string name="testVoicemailButton">Exercise voicemail permissions</string>
+
+    <!-- String for button in CarModeDialerActivity that tries to exercise the
+            TelecomManager.cancelMissedCallNotifications() functionality -->
+    <string name="cancelMissedButton">Cancel missed calls</string>
+
+    <string name="endCallButton">End Call</string>
+
+    <string name="answerCallButton">Answer</string>
+
+    <string name="startCallWithRtt">Start call with RTT</string>
+
+    <string name="rttIfaceButton">RTT</string>
+
+    <string name="endRttButton">End RTT</string>
+
+    <string name="startRttButton">Start RTT</string>
+
+    <string name="acceptRttButton">Accept RTT request</string>
+
+    <string name="muteButton">Mute</string>
+
+    <string name="holdButton">Hold</string>
+
+    <string name="handoverButton">Handover</string>
+
+    <string name="inCallUiAppLabel">Test InCall UI</string>
+
+    <string name="UssdUiAppLabel">Test Ussd UI</string>
+
+    <string name="placeUssdButton">Send USSD</string>
+
+    <string name="KeyUiAppLabel">Get Key UI</string>
+
+    <string name="getKeyButton">Get Key Json</string>
+
+    <string name="earpieceButton">Earpiece/Wired</string>
+
+    <string name="speakerButton">Speakerphone</string>
+
+    <string name="setBtDeviceButton">Set BT device</string>
+
+    <string name="currentRouteLabel">Current audio route</string>
+    <!-- String for button in SelfManagedCallingActivity. -->
+    <string name="checkIfPermittedBeforeCallingButton">Check if calls permitted before calling</string>
+
+    <string name="selfManagedCallingActivityLabel">Self-Managed Sample</string>
+
+    <string name="outgoingCallNotPermitted">Outgoing call not permitted.</string>
+
+    <string name="outgoingCallNotPermittedCS">Outgoing call not permitted (CS Reported).</string>
+
+    <string name="incomingCallNotPermitted">Incoming call not permitted.</string>
+
+    <string name="incomingCallNotPermittedCS">Incoming call not permitted (CS Reported).</string>
+
+    <string name="rttUiLabel">Test RTT UI</string>
+
+    <string-array name="rtt_mode_array">
+        <item>Full</item>
+        <item>HCO</item>
+        <item>VCO</item>
+    </string-array>
+
+    <string-array name="rtt_reply_one_liners">
+        <item>To RTT or not to RTT, that is the question...</item>
+        <item>Making TTY great again!</item>
+        <item>I would be more comfortable with real "Thyme" chatting. I don\'t know how to end
+        this pun</item>
+        <item>お疲れ様でした</item>
+        <item>The FCC has mandated that I respond... I will do so begrudgingly</item>
+        <item>😂😂😂💯</item>
+    </string-array>
+</resources>
diff --git a/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CallListAdapter.java b/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CallListAdapter.java
new file mode 100644
index 0000000..8ba59a7
--- /dev/null
+++ b/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CallListAdapter.java
@@ -0,0 +1,152 @@
+/*
+ * Copyright (C) 2019 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.server.telecom.carmodedialer;
+
+import android.content.Context;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.telecom.Call;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+public class CallListAdapter extends BaseAdapter {
+    private static final String TAG = "CallListAdapter";
+
+    private final CarModeCallList.Listener mListener = new CarModeCallList.Listener() {
+        @Override
+        public void onCallAdded(Call call) {
+            notifyDataSetChanged();
+        }
+
+        @Override
+        public void onCallRemoved(Call call) {
+            notifyDataSetChanged();
+            if (mCallList.size() == 0) {
+                mCallList.removeListener(this);
+            }
+        }
+    };
+
+    private final LayoutInflater mLayoutInflater;
+    private final CarModeCallList mCallList;
+    private final Handler mHandler = new Handler();
+    private final Runnable mSecondsRunnable = new Runnable() {
+        @Override
+        public void run() {
+            notifyDataSetChanged();
+            if (mCallList.size() > 0) {
+                mHandler.postDelayed(this, 1000);
+            }
+        }
+    };
+
+    public CallListAdapter(Context context) {
+        mLayoutInflater =
+                (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        mCallList = CarModeCallList.getInstance();
+        mCallList.addListener(mListener);
+        mHandler.postDelayed(mSecondsRunnable, 1000);
+    }
+
+
+    @Override
+    public int getCount() {
+        Log.i(TAG, "size reporting: " + mCallList.size());
+        return mCallList.size();
+    }
+
+    @Override
+    public Object getItem(int position) {
+        return position;
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public View getView(final int position, View convertView, ViewGroup parent) {
+        Log.i(TAG, "getView: " + position);
+        if (convertView == null) {
+            convertView = mLayoutInflater.inflate(R.layout.call_list_item, parent, false);
+        }
+
+        TextView phoneNumber = convertView.findViewById(R.id.phoneNumber);
+        TextView duration = convertView.findViewById(R.id.duration);
+        TextView state = convertView.findViewById(R.id.callState);
+
+        Call call = mCallList.getCall(position);
+        Uri handle = call.getDetails().getHandle();
+        phoneNumber.setText(handle == null ? "No number" : handle.getSchemeSpecificPart());
+
+        long durationMs = System.currentTimeMillis() - call.getDetails().getConnectTimeMillis();
+        duration.setText((durationMs / 1000) + " secs");
+
+        state.setText(getStateString(call));
+
+        Log.i(TAG, "Call found: " + ((handle == null) ? "null" : handle.getSchemeSpecificPart())
+                + ", " + durationMs);
+        Log.i(TAG, "Call extras: " + extrasToString(call.getDetails().getExtras()));
+        Log.i(TAG, "Call intent extras: " + extrasToString(call.getDetails().getIntentExtras()));
+
+        return convertView;
+    }
+
+    private String extrasToString(Bundle bundle) {
+        StringBuilder sb = new StringBuilder("[");
+        for (String key : bundle.keySet()) {
+            sb.append(key);
+            sb.append(": ");
+            sb.append(bundle.get(key));
+            sb.append("\n");
+        }
+        sb.append("]");
+        return sb.toString();
+    }
+
+    private static String getStateString(Call call) {
+        switch (call.getState()) {
+            case Call.STATE_ACTIVE:
+                return "active";
+            case Call.STATE_CONNECTING:
+                return "connecting";
+            case Call.STATE_DIALING:
+                return "dialing";
+            case Call.STATE_DISCONNECTED:
+                return "disconnected";
+            case Call.STATE_DISCONNECTING:
+                return "disconnecting";
+            case Call.STATE_HOLDING:
+                return "on hold";
+            case Call.STATE_NEW:
+                return "new";
+            case Call.STATE_RINGING:
+                return "ringing";
+            case Call.STATE_SELECT_PHONE_ACCOUNT:
+                return "select phone account";
+            default:
+                return "unknown";
+        }
+    }
+}
diff --git a/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CarModeCallList.java b/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CarModeCallList.java
new file mode 100644
index 0000000..5fba5bd
--- /dev/null
+++ b/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CarModeCallList.java
@@ -0,0 +1,260 @@
+/*
+ * Copyright (C) 2019 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.server.telecom.carmodedialer;
+
+import android.content.Context;
+import android.telecom.Call;
+import android.telecom.InCallService;
+import android.telecom.VideoProfile;
+import android.telecom.VideoProfile.CameraCapabilities;
+import android.util.ArrayMap;
+import android.util.ArraySet;
+import android.util.Log;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Maintains a list of calls received via the {@link TestInCallServiceImpl}.
+ */
+public class CarModeCallList extends Call.Callback {
+
+    public static abstract class Listener {
+        public void onCallAdded(Call call) {}
+        public void onCallRemoved(Call call) {}
+        public void onRttStarted(Call call) {}
+        public void onRttStopped(Call call) {}
+        public void onRttInitiationFailed(Call call, int reason) {}
+        public void onRttRequest(Call call, int id) {}
+    }
+
+    private static final com.android.server.telecom.carmodedialer.CarModeCallList
+            INSTANCE = new com.android.server.telecom.carmodedialer.CarModeCallList();
+    private static final String TAG = "TestCallList";
+
+    private class TestVideoCallListener extends InCallService.VideoCall.Callback {
+        private Call mCall;
+
+        public TestVideoCallListener(Call call) {
+            mCall = call;
+        }
+
+        @Override
+        public void onSessionModifyRequestReceived(VideoProfile videoProfile) {
+            Log.v(TAG,
+                    "onSessionModifyRequestReceived: videoState = " + videoProfile.getVideoState()
+                            + " call = " + mCall);
+        }
+
+        @Override
+        public void onSessionModifyResponseReceived(int status, VideoProfile requestedProfile,
+                VideoProfile responseProfile) {
+            Log.v(TAG,
+                    "onSessionModifyResponseReceived: status = " + status + " videoState = "
+                            + responseProfile.getVideoState()
+                            + " call = " + mCall);
+        }
+
+        @Override
+        public void onCallSessionEvent(int event) {
+
+        }
+
+        @Override
+        public void onPeerDimensionsChanged(int width, int height) {
+
+        }
+
+        @Override
+        public void onVideoQualityChanged(int videoQuality) {
+            Log.v(TAG,
+                    "onVideoQualityChanged: videoQuality = " + videoQuality + " call = " + mCall);
+        }
+
+        @Override
+        public void onCallDataUsageChanged(long dataUsage) {
+
+        }
+
+        @Override
+        public void onCameraCapabilitiesChanged(CameraCapabilities cameraCapabilities) {
+
+        }
+    }
+
+    // The calls the call list knows about.
+    private List<Call> mCalls = new LinkedList<Call>();
+    private Map<Call, TestVideoCallListener> mVideoCallListeners =
+            new ArrayMap<Call, TestVideoCallListener>();
+    private Set<Listener> mListeners = new ArraySet<Listener>();
+    private Context mContext;
+    private int mLastRttRequestId = -1;
+
+    /**
+     * Singleton accessor.
+     */
+    public static com.android.server.telecom.carmodedialer.CarModeCallList getInstance() {
+        return INSTANCE;
+    }
+
+    public void addListener(Listener listener) {
+        if (listener != null) {
+            mListeners.add(listener);
+        }
+    }
+
+    public boolean removeListener(Listener listener) {
+        return mListeners.remove(listener);
+    }
+
+    public Call getCall(int position) {
+        return mCalls.get(position);
+    }
+
+    public void addCall(Call call) {
+        if (mCalls.contains(call)) {
+            Log.e(TAG, "addCall: Call already added.");
+            return;
+        }
+        Log.i(TAG, "addCall: " + call + " " + System.identityHashCode(this));
+        mCalls.add(call);
+        call.registerCallback(this);
+
+        for (Listener l : mListeners) {
+            l.onCallAdded(call);
+        }
+    }
+
+    public void removeCall(Call call) {
+        if (!mCalls.contains(call)) {
+            Log.e(TAG, "removeCall: Call cannot be removed -- doesn't exist.");
+            return;
+        }
+        Log.i(TAG, "removeCall: " + call);
+        mCalls.remove(call);
+        call.unregisterCallback(this);
+
+        for (Listener l : mListeners) {
+            if (l != null) {
+                l.onCallRemoved(call);
+            }
+        }
+    }
+
+    public void clearCalls() {
+        for (Call call : new LinkedList<Call>(mCalls)) {
+            removeCall(call);
+        }
+
+        for (Call call : mVideoCallListeners.keySet()) {
+            if (call.getVideoCall() != null) {
+                call.getVideoCall().destroy();
+            }
+        }
+        mVideoCallListeners.clear();
+    }
+
+    public int size() {
+        return mCalls.size();
+    }
+
+    public int getLastRttRequestId() {
+        return mLastRttRequestId;
+    }
+
+    /**
+     * For any video calls tracked, sends an upgrade to video request.
+     */
+    public void sendUpgradeToVideoRequest(int videoState) {
+        Log.v(TAG, "sendUpgradeToVideoRequest : videoState = " + videoState);
+
+        for (Call call : mCalls) {
+            InCallService.VideoCall videoCall = call.getVideoCall();
+            Log.v(TAG, "sendUpgradeToVideoRequest: checkCall "+call);
+            if (videoCall == null) {
+                continue;
+            }
+
+            Log.v(TAG, "send upgrade to video request for call: " + call);
+            videoCall.sendSessionModifyRequest(new VideoProfile(videoState));
+        }
+    }
+
+    /**
+     * For any video calls which are active, sends an upgrade to video response with the specified
+     * video state.
+     *
+     * @param videoState The video state to respond with.
+     */
+    public void sendUpgradeToVideoResponse(int videoState) {
+        Log.v(TAG, "sendUpgradeToVideoResponse : videoState = " + videoState);
+
+        for (Call call : mCalls) {
+            InCallService.VideoCall videoCall = call.getVideoCall();
+            if (videoCall == null) {
+                continue;
+            }
+
+            Log.v(TAG, "send upgrade to video response for call: " + call);
+            videoCall.sendSessionModifyResponse(new VideoProfile(videoState));
+        }
+    }
+
+    @Override
+    public void onVideoCallChanged(Call call, InCallService.VideoCall videoCall) {
+        Log.v(TAG, "onVideoCallChanged: call = " + call + " " + System.identityHashCode(this));
+        if (videoCall != null) {
+            if (!mVideoCallListeners.containsKey(call)) {
+                TestVideoCallListener listener = new TestVideoCallListener(call);
+                videoCall.registerCallback(listener);
+                mVideoCallListeners.put(call, listener);
+                Log.v(TAG, "onVideoCallChanged: added new listener");
+            }
+        }
+    }
+
+    @Override
+    public void onRttStatusChanged(Call call, boolean enabled, Call.RttCall rttCall) {
+        Log.v(TAG, "onRttStatusChanged: call = " + call + " " + System.identityHashCode(this));
+        if (enabled) {
+            for (Listener l : mListeners) {
+                l.onRttStarted(call);
+            }
+        } else {
+            for (Listener l : mListeners) {
+                l.onRttStopped(call);
+            }
+        }
+    }
+
+    @Override
+    public void onRttInitiationFailure(Call call, int reason) {
+        for (Listener l : mListeners) {
+            l.onRttInitiationFailed(call, reason);
+        }
+    }
+
+    @Override
+    public void onRttRequest(Call call, int id) {
+        mLastRttRequestId = id;
+        for (Listener l : mListeners) {
+            l.onRttRequest(call, id);
+        }
+    }
+}
diff --git a/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CarModeDialerActivity.java b/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CarModeDialerActivity.java
new file mode 100644
index 0000000..e46d64f
--- /dev/null
+++ b/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CarModeDialerActivity.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (C) 2019 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.server.telecom.carmodedialer;
+
+import android.app.Activity;
+import android.app.UiModeManager;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.net.Uri;
+import android.os.Bundle;
+import android.telecom.PhoneAccount;
+import android.telecom.TelecomManager;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.EditText;
+import android.widget.Toast;
+
+public class CarModeDialerActivity extends Activity {
+    private static final int REQUEST_CODE_SET_DEFAULT_DIALER = 1;
+
+    private EditText mNumberView;
+    private EditText mPriorityView;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.testdialer_main);
+
+        findViewById(R.id.place_call_button).setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                placeCall();
+            }
+        });
+
+        mNumberView = (EditText) findViewById(R.id.number);
+        findViewById(R.id.enable_car_mode).setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                enableCarMode();
+            }
+        });
+        findViewById(R.id.disable_car_mode).setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                disableCarMode();
+            }
+        });
+        findViewById(R.id.toggle_incallservice).setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                toggleInCallService();
+            }
+        });
+
+        mPriorityView = findViewById(R.id.priority);
+
+        updateMutableUi();
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        if (requestCode == REQUEST_CODE_SET_DEFAULT_DIALER) {
+            if (resultCode == RESULT_OK) {
+                showToast("User accepted request to become default dialer");
+            } else if (resultCode == RESULT_CANCELED) {
+                showToast("User declined request to become default dialer");
+            }
+        }
+    }
+
+    @Override
+    protected void onNewIntent(Intent intent) {
+        super.onNewIntent(intent);
+        updateMutableUi();
+    }
+
+    private void updateMutableUi() {
+        Intent intent = getIntent();
+        if (intent != null) {
+            mNumberView.setText(intent.getDataString());
+        }
+    }
+
+    private void placeCall() {
+        final TelecomManager telecomManager =
+                (TelecomManager) getSystemService(Context.TELECOM_SERVICE);
+        telecomManager.placeCall(Uri.fromParts(PhoneAccount.SCHEME_TEL,
+                mNumberView.getText().toString(), null), createCallIntentExtras());
+    }
+
+    private void showToast(String message) {
+        Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
+    }
+
+    private Bundle createCallIntentExtras() {
+        Bundle extras = new Bundle();
+        extras.putString("com.android.server.telecom.carmodedialer.CALL_EXTRAS", "Tyler was here");
+
+        Bundle intentExtras = new Bundle();
+        intentExtras.putBundle(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS, extras);
+        return intentExtras;
+    }
+
+    private void enableCarMode() {
+        int priority;
+        try {
+            priority = Integer.parseInt(mPriorityView.getText().toString());
+        } catch (NumberFormatException nfe) {
+            Toast.makeText(this, "Invalid priority; not enabling car mode.",
+                    Toast.LENGTH_LONG).show();
+            return;
+        }
+        UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE);
+        uiModeManager.enableCarMode(priority, 0);
+        Toast.makeText(this, "Enabling car mode with priority " + priority,
+                Toast.LENGTH_LONG).show();
+    }
+
+    private void disableCarMode() {
+        UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE);
+        uiModeManager.disableCarMode(0);
+        Toast.makeText(this, "Disabling car mode", Toast.LENGTH_LONG).show();
+    }
+
+    private void toggleInCallService() {
+        ComponentName uiComponent = new ComponentName(
+                com.android.server.telecom.carmodedialer.CarModeInCallServiceImpl.class.getPackage().getName(),
+                com.android.server.telecom.carmodedialer.CarModeInCallServiceImpl.class.getName());
+        boolean isEnabled = getPackageManager().getComponentEnabledSetting(uiComponent)
+                == PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+        getPackageManager().setComponentEnabledSetting(uiComponent,
+                isEnabled ? PackageManager.COMPONENT_ENABLED_STATE_DISABLED
+                        : PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
+                PackageManager.DONT_KILL_APP);
+        isEnabled = getPackageManager().getComponentEnabledSetting(uiComponent)
+                == PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+        Toast.makeText(this, "Is UI enabled? " + isEnabled, Toast.LENGTH_LONG).show();
+    }
+}
diff --git a/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CarModeInCallServiceImpl.java b/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CarModeInCallServiceImpl.java
new file mode 100644
index 0000000..2879bde
--- /dev/null
+++ b/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CarModeInCallServiceImpl.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2019 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.server.telecom.carmodedialer;
+
+import android.content.Intent;
+import android.telecom.Call;
+import android.telecom.CallAudioState;
+import android.telecom.InCallService;
+import android.telecom.Phone;
+import android.util.Log;
+
+import java.lang.Override;
+import java.lang.String;
+
+/**
+ * Test In-Call service implementation.  Logs incoming events.  Mainly used to test binding to
+ * multiple {@link InCallService} implementations.
+ */
+public class CarModeInCallServiceImpl extends InCallService {
+    private static final String TAG = "TestInCallServiceImpl";
+    public static com.android.server.telecom.carmodedialer.CarModeInCallServiceImpl sInstance;
+
+    private Phone mPhone;
+
+    private Phone.Listener mPhoneListener = new Phone.Listener() {
+        @Override
+        public void onCallAdded(Phone phone, Call call) {
+            Log.i(TAG, "onCallAdded: " + call.toString());
+            CarModeCallList callList = CarModeCallList.getInstance();
+            callList.addCall(call);
+
+            if (callList.size() == 1) {
+                startInCallUI();
+            }
+        }
+
+        @Override
+        public void onCallRemoved(Phone phone, Call call) {
+            Log.i(TAG, "onCallRemoved: "+call.toString());
+            CarModeCallList.getInstance().removeCall(call);
+        }
+    };
+
+    @Override
+    public void onPhoneCreated(Phone phone) {
+        Log.i(TAG, "onPhoneCreated");
+        mPhone = phone;
+        mPhone.addListener(mPhoneListener);
+        CarModeCallList.getInstance().clearCalls();
+    }
+
+    @Override
+    public boolean onUnbind(Intent intent) {
+        Log.i(TAG, "onPhoneDestroyed");
+        mPhone.removeListener(mPhoneListener);
+        mPhone = null;
+        CarModeCallList.getInstance().clearCalls();
+        sInstance = null;
+        return super.onUnbind(intent);
+    }
+
+    @Override
+    public void onCallAudioStateChanged(CallAudioState cas) {
+        if (CarModeInCallUI.sInstance != null) {
+            CarModeInCallUI.sInstance.updateCallAudioState(cas);
+        }
+    }
+
+    private void startInCallUI() {
+        sInstance = this;
+        Intent intent = new Intent(Intent.ACTION_MAIN);
+        intent.setFlags(Intent.FLAG_ACTIVITY_NO_USER_ACTION | Intent.FLAG_ACTIVITY_NEW_TASK);
+        intent.setClass(this, CarModeInCallUI.class);
+        startActivity(intent);
+    }
+}
diff --git a/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CarModeInCallUI.java b/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CarModeInCallUI.java
new file mode 100644
index 0000000..6d06862
--- /dev/null
+++ b/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/CarModeInCallUI.java
@@ -0,0 +1,223 @@
+/*
+ * Copyright (C) 2019 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.server.telecom.carmodedialer;
+
+import android.app.Activity;
+import android.bluetooth.BluetoothDevice;
+import android.os.Bundle;
+import android.telecom.Call;
+import android.telecom.CallAudioState;
+import android.telecom.VideoProfile;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+import android.widget.Spinner;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import java.util.Collection;
+
+public class CarModeInCallUI extends Activity {
+    private class BluetoothDeviceAdapter extends ArrayAdapter<BluetoothDevice> {
+        public BluetoothDeviceAdapter() {
+            super(com.android.server.telecom.carmodedialer.CarModeInCallUI.this, android.R.layout.simple_spinner_item);
+            setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            BluetoothDevice info = getItem(position);
+            TextView result = new TextView(com.android.server.telecom.carmodedialer.CarModeInCallUI.this);
+            result.setText(info.getName());
+            return result;
+        }
+
+        public void update(Collection<BluetoothDevice> devices) {
+            clear();
+            addAll(devices);
+        }
+    }
+
+    public static com.android.server.telecom.carmodedialer.CarModeInCallUI sInstance;
+    private ListView mListView;
+    private CarModeCallList mCallList;
+    private Spinner mBtDeviceList;
+    private BluetoothDeviceAdapter mBluetoothDeviceAdapter;
+    private TextView mCurrentRouteDisplay;
+
+    /** ${inheritDoc} */
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        sInstance = this;
+
+        setContentView(R.layout.incall_screen);
+
+        mListView = (ListView) findViewById(R.id.callListView);
+        mListView.setAdapter(new CallListAdapter(this));
+        mListView.setVisibility(View.VISIBLE);
+
+        mCallList = CarModeCallList.getInstance();
+        mCallList.addListener(new CarModeCallList.Listener() {
+            @Override
+            public void onCallRemoved(Call call) {
+                if (mCallList.size() == 0) {
+                    Log.i(CarModeInCallUI.class.getSimpleName(), "Ending the incall UI");
+                    finish();
+                }
+            }
+
+            @Override
+            public void onRttStarted(Call call) {
+                Toast.makeText(CarModeInCallUI.this, "RTT now enabled", Toast.LENGTH_SHORT).show();
+            }
+
+            @Override
+            public void onRttStopped(Call call) {
+                Toast.makeText(CarModeInCallUI.this, "RTT now disabled", Toast.LENGTH_SHORT).show();
+            }
+
+            @Override
+            public void onRttInitiationFailed(Call call, int reason) {
+                Toast.makeText(CarModeInCallUI.this, String.format("RTT failed to init: %d", reason),
+                        Toast.LENGTH_SHORT).show();
+            }
+
+            @Override
+            public void onRttRequest(Call call, int id) {
+                Toast.makeText(CarModeInCallUI.this, String.format("RTT request: %d", id),
+                        Toast.LENGTH_SHORT).show();
+            }
+        });
+
+        View endCallButton = findViewById(R.id.end_call_button);
+        View holdButton = findViewById(R.id.hold_button);
+        View muteButton = findViewById(R.id.mute_button);
+        View answerButton = findViewById(R.id.answer_button);
+        View setBtDeviceButton = findViewById(R.id.set_bt_device_button);
+        View earpieceButton = findViewById(R.id.earpiece_button);
+        View speakerButton = findViewById(R.id.speaker_button);
+        mBtDeviceList = findViewById(R.id.available_bt_devices);
+        mBluetoothDeviceAdapter = new BluetoothDeviceAdapter();
+        mBtDeviceList.setAdapter(mBluetoothDeviceAdapter);
+        mCurrentRouteDisplay = findViewById(R.id.current_audio_route);
+
+        endCallButton.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Call call = mCallList.getCall(0);
+                if (call != null) {
+                    call.disconnect();
+                }
+            }
+        });
+        holdButton.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Call call = mCallList.getCall(0);
+                if (call != null) {
+                    if (call.getState() == Call.STATE_HOLDING) {
+                        call.unhold();
+                    } else {
+                        call.hold();
+                    }
+                }
+            }
+        });
+        muteButton.setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Call call = mCallList.getCall(0);
+                if (call != null) {
+
+                }
+            }
+        });
+
+        answerButton.setOnClickListener(view -> {
+            Call call = mCallList.getCall(0);
+            if (call.getState() == Call.STATE_RINGING) {
+                call.answer(VideoProfile.STATE_AUDIO_ONLY);
+            }
+        });
+
+        earpieceButton.setOnClickListener(view -> {
+            CarModeInCallServiceImpl.sInstance.setAudioRoute(CallAudioState.ROUTE_WIRED_OR_EARPIECE);
+        });
+
+        speakerButton.setOnClickListener(view -> {
+            CarModeInCallServiceImpl.sInstance.setAudioRoute(CallAudioState.ROUTE_SPEAKER);
+        });
+
+        setBtDeviceButton.setOnClickListener(view -> {
+            if (mBtDeviceList.getSelectedItem() != null
+                    && CarModeInCallServiceImpl.sInstance != null) {
+                CarModeInCallServiceImpl.sInstance.requestBluetoothAudio(
+                        (BluetoothDevice) mBtDeviceList.getSelectedItem());
+            }
+        });
+
+    }
+
+    public void updateCallAudioState(CallAudioState cas) {
+        mBluetoothDeviceAdapter.update(cas.getSupportedBluetoothDevices());
+        String routeText;
+        switch (cas.getRoute()) {
+            case CallAudioState.ROUTE_EARPIECE:
+                routeText = "Earpiece";
+                break;
+            case CallAudioState.ROUTE_SPEAKER:
+                routeText = "Speaker";
+                break;
+            case CallAudioState.ROUTE_WIRED_HEADSET:
+                routeText = "Wired";
+                break;
+            case CallAudioState.ROUTE_BLUETOOTH:
+                BluetoothDevice activeDevice = cas.getActiveBluetoothDevice();
+                routeText = activeDevice == null ? "null bt" : activeDevice.getName();
+                break;
+            default:
+                routeText = "unknown: " + cas.getRoute();
+        }
+        mCurrentRouteDisplay.setText(routeText);
+    }
+
+    /** ${inheritDoc} */
+    @Override
+    protected void onDestroy() {
+        sInstance = null;
+        super.onDestroy();
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+    }
+}
diff --git a/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/TestInCallServiceBroadcastReceiver.java b/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/TestInCallServiceBroadcastReceiver.java
new file mode 100644
index 0000000..6b2b009
--- /dev/null
+++ b/testapps/carmodedialer/src/com/android/server/telecom/carmodedialer/TestInCallServiceBroadcastReceiver.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2019 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.server.telecom.carmodedialer;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.telecom.TelecomManager;
+import android.util.Log;
+
+/**
+ * Test in call service broadcast receiver.
+ */
+public class TestInCallServiceBroadcastReceiver extends BroadcastReceiver {
+    private static final String TAG = "TestInCallServiceBR";
+
+    /**
+     * Sends an upgrade to video request for any live calls.
+     */
+    public static final String ACTION_SEND_UPDATE_REQUEST_FROM_TEST_INCALL_SERVICE =
+            "android.server.telecom.testapps.ACTION_SEND_UPDATE_REQUEST_FROM_TEST_INCALL_SERVICE";
+
+    /**
+     * Sends an a response to an upgrade to video request.
+     */
+    public static final String ACTION_SEND_UPGRADE_RESPONSE =
+            "android.server.telecom.testapps.ACTION_SEND_UPGRADE_RESPONSE";
+
+    /**
+     * Handles broadcasts directed at the {@link CarModeInCallServiceImpl}.
+     *
+     * @param context The Context in which the receiver is running.
+     * @param intent  The Intent being received.
+     */
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        String action = intent.getAction();
+        Log.v(TAG, "onReceive: " + action);
+
+        if (ACTION_SEND_UPDATE_REQUEST_FROM_TEST_INCALL_SERVICE.equals(action)) {
+            final int videoState = Integer.parseInt(intent.getData().getSchemeSpecificPart());
+            CarModeCallList.getInstance().sendUpgradeToVideoRequest(videoState);
+        } else if (ACTION_SEND_UPGRADE_RESPONSE.equals(action)) {
+            final int videoState = Integer.parseInt(intent.getData().getSchemeSpecificPart());
+            CarModeCallList.getInstance().sendUpgradeToVideoResponse(videoState);
+        } else if (TelecomManager.ACTION_PHONE_ACCOUNT_REGISTERED.equals(action)) {
+            Log.i(TAG, "onReceive: registered " + intent.getExtras().get(
+                    TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE));
+        } else if (TelecomManager.ACTION_PHONE_ACCOUNT_UNREGISTERED.equals(action)) {
+            Log.i(TAG, "onReceive: unregistered " + intent.getExtras().get(
+                    TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE));
+        }
+    }
+}
diff --git a/testapps/res/layout/testdialer_main.xml b/testapps/res/layout/testdialer_main.xml
index a9507c3..e2ea30c 100644
--- a/testapps/res/layout/testdialer_main.xml
+++ b/testapps/res/layout/testdialer_main.xml
@@ -59,11 +59,32 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/startCallWithRtt"/>
-    <Button
-        android:id="@+id/toggle_car_mode"
+    <LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="Toggle Car mode" />
+        android:orientation="horizontal" >
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="15dp"
+            android:text="Priority:" />
+        <EditText
+            android:id="@+id/priority"
+            android:inputType="number"
+            android:text="100"
+            android:layout_width="50dp"
+            android:layout_height="wrap_content" />
+        <Button
+            android:id="@+id/enable_car_mode"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Enable Car mode" />
+        <Button
+            android:id="@+id/disable_car_mode"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Disable Car mode" />
+    </LinearLayout>
     <Button
         android:id="@+id/toggle_incallservice"
         android:layout_width="wrap_content"
diff --git a/testapps/res/values/donottranslate_strings.xml b/testapps/res/values/donottranslate_strings.xml
index 6a085ee..aa34070 100644
--- a/testapps/res/values/donottranslate_strings.xml
+++ b/testapps/res/values/donottranslate_strings.xml
@@ -21,20 +21,20 @@
     <!-- String for the TestCallActivity -->
     <string name="testCallActivityLabel">Test Connection Service App</string>
 
-    <!-- String for the TestDialerActivity -->
+    <!-- String for the CarModeDialerActivity -->
     <string name="testDialerActivityLabel">Test Dialer</string>
 
-    <!-- String for button in TestDialerActivity that reassigns the default Dialer -->
+    <!-- String for button in CarModeDialerActivity that reassigns the default Dialer -->
     <string name="defaultDialerButton">Default dialer request</string>
 
-    <!-- String for button in TestDialerActivity that places a test call -->
+    <!-- String for button in CarModeDialerActivity that places a test call -->
     <string name="placeCallButton">Place call</string>
 
-    <!-- String for button in TestDialerActivity that performs voicemail requests to verify
+    <!-- String for button in CarModeDialerActivity that performs voicemail requests to verify
             voicemail permissions -->
     <string name="testVoicemailButton">Exercise voicemail permissions</string>
 
-    <!-- String for button in TestDialerActivity that tries to exercise the
+    <!-- String for button in CarModeDialerActivity that tries to exercise the
             TelecomManager.cancelMissedCallNotifications() functionality -->
     <string name="cancelMissedButton">Cancel missed calls</string>
 
diff --git a/testapps/src/com/android/server/telecom/testapps/TestCallScreeningService.java b/testapps/src/com/android/server/telecom/testapps/TestCallScreeningService.java
index 544eb28..a975219 100644
--- a/testapps/src/com/android/server/telecom/testapps/TestCallScreeningService.java
+++ b/testapps/src/com/android/server/telecom/testapps/TestCallScreeningService.java
@@ -98,7 +98,7 @@
                 .setRejectCall(false)
                 .setSkipCallLog(false)
                 .setSkipNotification(false)
-                .setShouldScreenCallFurther(true)
+                .setShouldScreenCallViaAudioProcessing(true)
                 .build();
         respondToCall(mDetails, response);
     }
diff --git a/testapps/src/com/android/server/telecom/testapps/TestDialerActivity.java b/testapps/src/com/android/server/telecom/testapps/TestDialerActivity.java
index 9aa076f..19f09e6 100644
--- a/testapps/src/com/android/server/telecom/testapps/TestDialerActivity.java
+++ b/testapps/src/com/android/server/telecom/testapps/TestDialerActivity.java
@@ -26,6 +26,7 @@
 
     private EditText mNumberView;
     private CheckBox mRttCheckbox;
+    private EditText mPriorityView;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -61,10 +62,16 @@
 
         mNumberView = (EditText) findViewById(R.id.number);
         mRttCheckbox = (CheckBox) findViewById(R.id.call_with_rtt_checkbox);
-        findViewById(R.id.toggle_car_mode).setOnClickListener(new OnClickListener() {
+        findViewById(R.id.enable_car_mode).setOnClickListener(new OnClickListener() {
             @Override
             public void onClick(View v) {
-                toggleCarMode();
+                enableCarMode();
+            }
+        });
+        findViewById(R.id.disable_car_mode).setOnClickListener(new OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                disableCarMode();
             }
         });
         findViewById(R.id.toggle_incallservice).setOnClickListener(new OnClickListener() {
@@ -73,6 +80,7 @@
                 toggleInCallService();
             }
         });
+        mPriorityView = findViewById(R.id.priority);
         updateMutableUi();
     }
 
@@ -158,14 +166,25 @@
         return intentExtras;
     }
 
-    private void toggleCarMode() {
-        UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE);
-        boolean isCarMode = uiModeManager.getCurrentModeType() == UI_MODE_TYPE_CAR;
-        if (isCarMode) {
-            uiModeManager.disableCarMode(0);
-        } else {
-            uiModeManager.enableCarMode(0);
+    private void enableCarMode() {
+        int priority;
+        try {
+            priority = Integer.parseInt(mPriorityView.getText().toString());
+        } catch (NumberFormatException nfe) {
+            Toast.makeText(this, "Invalid priority; not enabling car mode.",
+                    Toast.LENGTH_LONG).show();
+            return;
         }
+        UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE);
+        uiModeManager.enableCarMode(priority, 0);
+        Toast.makeText(this, "Enabling car mode with priority " + priority,
+                Toast.LENGTH_LONG).show();
+    }
+
+    private void disableCarMode() {
+        UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE);
+        uiModeManager.disableCarMode(0);
+        Toast.makeText(this, "Disabling car mode", Toast.LENGTH_LONG).show();
     }
 
     private void toggleInCallService() {
diff --git a/tests/src/com/android/server/telecom/tests/BasicCallTests.java b/tests/src/com/android/server/telecom/tests/BasicCallTests.java
index 01927f5..d536cbd 100644
--- a/tests/src/com/android/server/telecom/tests/BasicCallTests.java
+++ b/tests/src/com/android/server/telecom/tests/BasicCallTests.java
@@ -615,7 +615,7 @@
         waitForHandlerAction(mTelecomSystem.getCallsManager().getCallAudioManager()
                 .getCallAudioRouteStateMachine().getHandler(), TEST_TIMEOUT);
         // setSpeakerPhoneOn(false) gets called once during the call initiation phase
-        verify(audioManager, timeout(TEST_TIMEOUT).atLeast(2))
+        verify(audioManager, timeout(TEST_TIMEOUT).atLeast(1))
                 .setSpeakerphoneOn(false);
 
         mConnectionServiceFixtureA.
@@ -811,7 +811,7 @@
         when(getBlockedNumberProvider().call(
                 anyString(),
                 anyString(),
-                eq(BlockedNumberContract.SystemContract.METHOD_SHOULD_SYSTEM_BLOCK_NUMBER),
+                eq(BlockedNumberContract.METHOD_SHOULD_SYSTEM_BLOCK_NUMBER),
                 eq(phoneNumber),
                 nullable(Bundle.class))).thenAnswer(answer);
     }
diff --git a/tests/src/com/android/server/telecom/tests/CallAudioRouteTransitionTests.java b/tests/src/com/android/server/telecom/tests/CallAudioRouteTransitionTests.java
index 57462c4..58f1ee7 100644
--- a/tests/src/com/android/server/telecom/tests/CallAudioRouteTransitionTests.java
+++ b/tests/src/com/android/server/telecom/tests/CallAudioRouteTransitionTests.java
@@ -219,8 +219,18 @@
             return null;
         }).when(mockBluetoothRouteManager).connectBluetoothAudio(nullable(String.class));
 
-        when(mockAudioManager.isSpeakerphoneOn()).thenReturn(
-                params.initialRoute == CallAudioState.ROUTE_SPEAKER);
+        // Set the speakerphone state depending on the message being sent. If it's one of the
+        // speakerphone override ones, set accordingly. Otherwise consult the initial route.
+        boolean speakerphoneOn;
+        if (params.action == CallAudioRouteStateMachine.SPEAKER_ON) {
+            speakerphoneOn = true;
+        } else if (params.action == CallAudioRouteStateMachine.SPEAKER_OFF) {
+            speakerphoneOn = false;
+        } else {
+            speakerphoneOn = params.initialRoute == CallAudioState.ROUTE_SPEAKER;
+        }
+        when(mockAudioManager.isSpeakerphoneOn()).thenReturn(speakerphoneOn);
+
         when(fakeCall.getSupportedAudioRoutes()).thenReturn(params.callSupportedRoutes);
     }
 
@@ -757,6 +767,58 @@
                 CallAudioRouteStateMachine.EARPIECE_FORCE_ENABLED // earpieceControl
         ));
 
+        params.add(new RoutingTestParameters(
+                "Speakerphone turned on during earpiece", // name
+                CallAudioState.ROUTE_EARPIECE, // initialRoute
+                CallAudioState.ROUTE_EARPIECE | CallAudioState.ROUTE_BLUETOOTH, // availableRoutes
+                NONE, // speakerInteraction
+                NONE, // bluetoothInteraction
+                CallAudioRouteStateMachine.SPEAKER_ON, // action
+                CallAudioState.ROUTE_SPEAKER, // expectedRoute
+                CallAudioState.ROUTE_EARPIECE | CallAudioState.ROUTE_BLUETOOTH, // expectedAvailabl
+                CallAudioRouteStateMachine.EARPIECE_FORCE_ENABLED // earpieceControl
+        ));
+
+        params.add(new RoutingTestParameters(
+                "Speakerphone turned on during wired headset", // name
+                CallAudioState.ROUTE_WIRED_HEADSET, // initialRoute
+                CallAudioState.ROUTE_EARPIECE
+                        | CallAudioState.ROUTE_BLUETOOTH
+                        | CallAudioState.ROUTE_WIRED_HEADSET, // availableRoutes
+                NONE, // speakerInteraction
+                NONE, // bluetoothInteraction
+                CallAudioRouteStateMachine.SPEAKER_ON, // action
+                CallAudioState.ROUTE_SPEAKER, // expectedRoute
+                CallAudioState.ROUTE_EARPIECE
+                        | CallAudioState.ROUTE_BLUETOOTH
+                        | CallAudioState.ROUTE_WIRED_HEADSET, // availableRoutes
+                CallAudioRouteStateMachine.EARPIECE_FORCE_ENABLED // earpieceControl
+        ));
+
+        params.add(new RoutingTestParameters(
+                "Speakerphone turned on during bluetooth", // name
+                CallAudioState.ROUTE_BLUETOOTH, // initialRoute
+                CallAudioState.ROUTE_EARPIECE | CallAudioState.ROUTE_BLUETOOTH, // availableRoutes
+                NONE, // speakerInteraction
+                OFF, // bluetoothInteraction
+                CallAudioRouteStateMachine.SPEAKER_ON, // action
+                CallAudioState.ROUTE_SPEAKER, // expectedRoute
+                CallAudioState.ROUTE_EARPIECE | CallAudioState.ROUTE_BLUETOOTH, // expectedAvailabl
+                CallAudioRouteStateMachine.EARPIECE_FORCE_ENABLED // earpieceControl
+        ));
+
+        params.add(new RoutingTestParameters(
+                "Speakerphone turned off externally during speaker", // name
+                CallAudioState.ROUTE_SPEAKER, // initialRoute
+                CallAudioState.ROUTE_EARPIECE | CallAudioState.ROUTE_BLUETOOTH, // availableRoutes
+                NONE, // speakerInteraction
+                ON, // bluetoothInteraction
+                CallAudioRouteStateMachine.SPEAKER_OFF, // action
+                CallAudioState.ROUTE_BLUETOOTH, // expectedRoute
+                CallAudioState.ROUTE_EARPIECE | CallAudioState.ROUTE_BLUETOOTH, // expectedAvailabl
+                CallAudioRouteStateMachine.EARPIECE_FORCE_ENABLED // earpieceControl
+        ));
+
         return params;
     }
 
diff --git a/tests/src/com/android/server/telecom/tests/CallScreeningServiceControllerTest.java b/tests/src/com/android/server/telecom/tests/CallScreeningServiceControllerTest.java
index 332899b..6f37fdc 100644
--- a/tests/src/com/android/server/telecom/tests/CallScreeningServiceControllerTest.java
+++ b/tests/src/com/android/server/telecom/tests/CallScreeningServiceControllerTest.java
@@ -131,7 +131,6 @@
         super.setUp();
         when(mRoleManagerAdapter.getCallCompanionApps()).thenReturn(Collections.emptyList());
         when(mRoleManagerAdapter.getDefaultCallScreeningApp()).thenReturn(null);
-        when(mRoleManagerAdapter.getCarModeDialerApp()).thenReturn(null);
         when(mCallsManager.getRoleManagerAdapter()).thenReturn(mRoleManagerAdapter);
         when(mCallsManager.getCurrentUserHandle()).thenReturn(UserHandle.CURRENT);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
diff --git a/tests/src/com/android/server/telecom/tests/CallsManagerTest.java b/tests/src/com/android/server/telecom/tests/CallsManagerTest.java
index 110b58e..1b63a42 100644
--- a/tests/src/com/android/server/telecom/tests/CallsManagerTest.java
+++ b/tests/src/com/android/server/telecom/tests/CallsManagerTest.java
@@ -88,6 +88,7 @@
 import com.android.server.telecom.bluetooth.BluetoothStateReceiver;
 import com.android.server.telecom.callfiltering.IncomingCallFilter;
 import com.android.server.telecom.ui.AudioProcessingNotification;
+import com.android.server.telecom.ui.DisconnectedCallNotifier;
 import com.android.server.telecom.ui.ToastFactory;
 
 import org.junit.After;
@@ -150,6 +151,8 @@
     private final TelecomSystem.SyncRoot mLock = new TelecomSystem.SyncRoot() { };
     @Mock private CallerInfoLookupHelper mCallerInfoLookupHelper;
     @Mock private MissedCallNotifier mMissedCallNotifier;
+    @Mock private DisconnectedCallNotifier.Factory mDisconnectedCallNotifierFactory;
+    @Mock private DisconnectedCallNotifier mDisconnectedCallNotifier;
     @Mock private PhoneAccountRegistrar mPhoneAccountRegistrar;
     @Mock private HeadsetMediaButton mHeadsetMediaButton;
     @Mock private HeadsetMediaButtonFactory mHeadsetMediaButtonFactory;
@@ -209,11 +212,14 @@
         when(mClockProxy.elapsedRealtime()).thenReturn(SystemClock.elapsedRealtime());
         when(mConnSvrFocusManagerFactory.create(any())).thenReturn(mConnectionSvrFocusMgr);
         doNothing().when(mRoleManagerAdapter).setCurrentUserHandle(any());
+        when(mDisconnectedCallNotifierFactory.create(any(Context.class),any(CallsManager.class)))
+                .thenReturn(mDisconnectedCallNotifier);
         mCallsManager = new CallsManager(
                 mComponentContextFixture.getTestDouble().getApplicationContext(),
                 mLock,
                 mCallerInfoLookupHelper,
                 mMissedCallNotifier,
+                mDisconnectedCallNotifierFactory,
                 mPhoneAccountRegistrar,
                 mHeadsetMediaButtonFactory,
                 mProximitySensorManagerFactory,
@@ -1162,7 +1168,6 @@
             @Override
             public void onConnectionCapabilitiesChanged(Call call) {
                 try {
-                    Log.i("TYLER", "Listener got " + call.getConnectionCapabilities());
                     capabilitiesQueue.put(call.getConnectionCapabilities());
                 } catch (InterruptedException e) {
                     fail();
diff --git a/tests/src/com/android/server/telecom/tests/CarModeTrackerTest.java b/tests/src/com/android/server/telecom/tests/CarModeTrackerTest.java
new file mode 100644
index 0000000..4ef4596
--- /dev/null
+++ b/tests/src/com/android/server/telecom/tests/CarModeTrackerTest.java
@@ -0,0 +1,217 @@
+/*
+ * Copyright (C) 2019 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.server.telecom.tests;
+
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertTrue;
+import static junit.framework.TestCase.assertNull;
+
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.when;
+
+import android.app.UiModeManager;
+
+import com.android.server.telecom.CarModeTracker;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+import org.mockito.Mock;
+
+@RunWith(JUnit4.class)
+public class CarModeTrackerTest extends TelecomTestCase {
+    private static final String CAR_MODE_APP1_PACKAGE_NAME = "com.android.carmode1";
+    private static final String CAR_MODE_APP2_PACKAGE_NAME = "com.android.carmode2";
+    private static final String CAR_MODE_APP3_PACKAGE_NAME = "com.android.carmode3";
+    private static final String CAR_MODE_APP4_PACKAGE_NAME = "com.android.carmode4";
+
+    private CarModeTracker mCarModeTracker;
+
+    @Override
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+
+        mCarModeTracker = new CarModeTracker();
+    }
+
+    @Override
+    @After
+    public void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    /**
+     * Basic test; see if we can enter car mode.
+     */
+    @Test
+    public void testEnterCarModeBasic() {
+        // At start, no car mode apps.
+        assertNull(mCarModeTracker.getCurrentCarModePackage());
+        assertEquals(0, mCarModeTracker.getCarModeApps().size());
+
+        mCarModeTracker.handleEnterCarMode(100, CAR_MODE_APP1_PACKAGE_NAME);
+
+        // We should be tracking our car mode app.
+        assertEquals(1, mCarModeTracker.getCarModeApps().size());
+        assertTrue(mCarModeTracker.isInCarMode());
+    }
+
+    /**
+     * Ensure when we enter car mode with a package which has already entered car mode, the extra
+     * request is ignored.
+     */
+    @Test
+    public void testEnterCarModeAlreadyInCarMode() {
+        testEnterCarModeBasic();
+
+        mCarModeTracker.handleEnterCarMode(100, CAR_MODE_APP1_PACKAGE_NAME);
+        // Still should just be one.
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+        assertEquals(1, mCarModeTracker.getCarModeApps().size());
+    }
+
+    /**
+     * Ensure when we enter car mode with a package which has already entered car mode, the extra
+     * request is ignored.
+     */
+    @Test
+    public void testEnterCarModePriorityInUse() {
+        testEnterCarModeBasic();
+
+        mCarModeTracker.handleEnterCarMode(100, CAR_MODE_APP2_PACKAGE_NAME);
+
+        // We should be tracking car mode with the first package; the 2nd should have been ignored.
+        assertEquals(1, mCarModeTracker.getCarModeApps().size());
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCarModeApps().get(0));
+    }
+
+    /**
+     * Verifies only the first app at the default priority gets tracked.
+     */
+    @Test
+    public void testEnterCarModeDefaultPriority() {
+        assertEquals(0, mCarModeTracker.getCarModeApps().size());
+
+        mCarModeTracker.handleEnterCarMode(UiModeManager.DEFAULT_PRIORITY,
+                CAR_MODE_APP1_PACKAGE_NAME);
+        assertEquals(1, mCarModeTracker.getCarModeApps().size());
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+
+        mCarModeTracker.handleEnterCarMode(UiModeManager.DEFAULT_PRIORITY,
+                CAR_MODE_APP2_PACKAGE_NAME);
+        assertEquals(1, mCarModeTracker.getCarModeApps().size());
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+    }
+
+    /**
+     * Verifies that multiple apps can enter car mode at the default priority and a higher priority.
+     * Verifies that the priority ordering is retained as expected.
+     */
+    @Test
+    public void testEnterCarModeDefaultAndHigherPriority() {
+        testEnterCarModeDefaultPriority();
+
+        mCarModeTracker.handleEnterCarMode(100, CAR_MODE_APP3_PACKAGE_NAME);
+        assertEquals(2, mCarModeTracker.getCarModeApps().size());
+        assertEquals(CAR_MODE_APP3_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+        assertEquals(CAR_MODE_APP3_PACKAGE_NAME, mCarModeTracker.getCarModeApps().get(0));
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCarModeApps().get(1));
+
+        mCarModeTracker.handleEnterCarMode(50, CAR_MODE_APP4_PACKAGE_NAME);
+        assertEquals(3, mCarModeTracker.getCarModeApps().size());
+        assertEquals(CAR_MODE_APP3_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+        assertEquals(CAR_MODE_APP3_PACKAGE_NAME, mCarModeTracker.getCarModeApps().get(0));
+        assertEquals(CAR_MODE_APP4_PACKAGE_NAME, mCarModeTracker.getCarModeApps().get(1));
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCarModeApps().get(2));
+    }
+
+    /**
+     * Verifies entering and exiting car mode at default priority.
+     */
+    @Test
+    public void testEnterExitCarModeDefaultPriority() {
+        mCarModeTracker.handleEnterCarMode(UiModeManager.DEFAULT_PRIORITY,
+                CAR_MODE_APP1_PACKAGE_NAME);
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+        mCarModeTracker.handleExitCarMode(UiModeManager.DEFAULT_PRIORITY,
+                CAR_MODE_APP1_PACKAGE_NAME);
+        assertNull(mCarModeTracker.getCurrentCarModePackage());
+    }
+
+    /**
+     * Verifies entering and exiting car mode at default priority.
+     * Ensures a different app can exit car mode at the default priority than the one which
+     * entered car mode at that priority.
+     */
+    @Test
+    public void testEnterExitCarModeDefaultPriorityDifferentApp() {
+        mCarModeTracker.handleEnterCarMode(UiModeManager.DEFAULT_PRIORITY,
+                CAR_MODE_APP1_PACKAGE_NAME);
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+        mCarModeTracker.handleExitCarMode(UiModeManager.DEFAULT_PRIORITY,
+                CAR_MODE_APP2_PACKAGE_NAME);
+        assertNull(mCarModeTracker.getCurrentCarModePackage());
+    }
+
+    /**
+     * Verifies entering and exiting car mode at higher priority.
+     */
+    @Test
+    public void testEnterExitCarModeHigherPriority() {
+        mCarModeTracker.handleEnterCarMode(100, CAR_MODE_APP1_PACKAGE_NAME);
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+        mCarModeTracker.handleExitCarMode(100, CAR_MODE_APP1_PACKAGE_NAME);
+        assertNull(mCarModeTracker.getCurrentCarModePackage());
+    }
+
+    /**
+     * Verifies entering and exiting car mode at higher priority, except the exiting app differs.
+     */
+    @Test
+    public void testEnterExitCarModeHigherPriorityDifferentApp() {
+        mCarModeTracker.handleEnterCarMode(100, CAR_MODE_APP1_PACKAGE_NAME);
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+        mCarModeTracker.handleExitCarMode(100, CAR_MODE_APP2_PACKAGE_NAME);
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+    }
+
+    /**
+     * Verifies entering and exiting car mode at a bunch of priorities with a bunch of apps.
+     */
+    @Test
+    public void testEnterExitCarModeMultiple() {
+        mCarModeTracker.handleEnterCarMode(100, CAR_MODE_APP1_PACKAGE_NAME);
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+        mCarModeTracker.handleEnterCarMode(50, CAR_MODE_APP2_PACKAGE_NAME);
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+        mCarModeTracker.handleEnterCarMode(UiModeManager.DEFAULT_PRIORITY,
+                CAR_MODE_APP3_PACKAGE_NAME);
+        assertEquals(CAR_MODE_APP1_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+
+        mCarModeTracker.handleExitCarMode(100, CAR_MODE_APP1_PACKAGE_NAME);
+        assertEquals(CAR_MODE_APP2_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+        mCarModeTracker.handleExitCarMode(50, CAR_MODE_APP2_PACKAGE_NAME);
+        assertEquals(CAR_MODE_APP3_PACKAGE_NAME, mCarModeTracker.getCurrentCarModePackage());
+        mCarModeTracker.handleExitCarMode(UiModeManager.DEFAULT_PRIORITY,
+                CAR_MODE_APP3_PACKAGE_NAME);
+        assertNull(mCarModeTracker.getCurrentCarModePackage());
+    }
+}
diff --git a/tests/src/com/android/server/telecom/tests/ComponentContextFixture.java b/tests/src/com/android/server/telecom/tests/ComponentContextFixture.java
index 91ee977..7effc47 100644
--- a/tests/src/com/android/server/telecom/tests/ComponentContextFixture.java
+++ b/tests/src/com/android/server/telecom/tests/ComponentContextFixture.java
@@ -125,6 +125,11 @@
         }
 
         @Override
+        public Resources.Theme getTheme() {
+            return mResourcesTheme;
+        }
+
+        @Override
         public File getFilesDir() {
             try {
                 return File.createTempFile("temp", "temp").getParentFile();
@@ -451,6 +456,7 @@
     // We then create a spy on the application context allowing standard Mockito-style
     // when(...) logic to be used to add specific little responses where needed.
 
+    private final Resources.Theme mResourcesTheme = mock(Resources.Theme.class);
     private final Resources mResources = mock(Resources.class);
     private final Context mApplicationContextSpy = spy(mApplicationContext);
     private final PackageManager mPackageManager = mock(PackageManager.class);
@@ -558,14 +564,25 @@
 
     public void addInCallService(
             ComponentName componentName,
-            IInCallService service)
+            IInCallService service,
+            int uid)
             throws Exception {
         addService(InCallService.SERVICE_INTERFACE, componentName, service);
         ServiceInfo serviceInfo = new ServiceInfo();
         serviceInfo.permission = android.Manifest.permission.BIND_INCALL_SERVICE;
         serviceInfo.packageName = componentName.getPackageName();
+        serviceInfo.applicationInfo = new ApplicationInfo();
+        serviceInfo.applicationInfo.uid = uid;
+        serviceInfo.metaData = new Bundle();
+        serviceInfo.metaData.putBoolean(TelecomManager.METADATA_IN_CALL_SERVICE_UI, false);
         serviceInfo.name = componentName.getClassName();
         mServiceInfoByComponentName.put(componentName, serviceInfo);
+
+        // Used in InCallController to check permissions for CONTROL_INCALL_EXPERIENCE
+        when(mPackageManager.getPackagesForUid(eq(uid))).thenReturn(new String[] {
+                componentName.getPackageName() });
+        when(mPackageManager.checkPermission(eq(Manifest.permission.CONTROL_INCALL_EXPERIENCE),
+                eq(componentName.getPackageName()))).thenReturn(PackageManager.PERMISSION_GRANTED);
     }
 
     public void putResource(int id, final String value) {
diff --git a/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java b/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java
index 3718419..131e591 100644
--- a/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java
+++ b/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java
@@ -424,6 +424,7 @@
         boolean isVoipAudioMode;
         Bundle extras;
         boolean isConferenceCreated;
+        int callerNumberVerificationStatus;
     }
 
     public class ConferenceInfo {
@@ -712,6 +713,7 @@
                 c.statusHints,
                 c.disconnectCause,
                 c.conferenceableConnectionIds,
-                c.extras);
+                c.extras,
+                c.callerNumberVerificationStatus);
     }
 }
diff --git a/tests/src/com/android/server/telecom/tests/DisconnectedCallNotifierTest.java b/tests/src/com/android/server/telecom/tests/DisconnectedCallNotifierTest.java
new file mode 100644
index 0000000..22963de
--- /dev/null
+++ b/tests/src/com/android/server/telecom/tests/DisconnectedCallNotifierTest.java
@@ -0,0 +1,123 @@
+package com.android.server.telecom.tests;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.res.Resources;
+import android.net.Uri;
+import android.os.UserHandle;
+import android.telecom.DisconnectCause;
+import android.telecom.PhoneAccountHandle;
+import android.telephony.TelephonyManager;
+
+import androidx.test.filters.SmallTest;
+
+import com.android.server.telecom.Call;
+import com.android.server.telecom.CallState;
+import com.android.server.telecom.CallerInfoLookupHelper;
+import com.android.server.telecom.CallsManager;
+import com.android.server.telecom.ui.DisconnectedCallNotifier;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+
+import java.util.Collections;
+
+public class DisconnectedCallNotifierTest extends TelecomTestCase {
+
+    private static final PhoneAccountHandle PHONE_ACCOUNT_HANDLE = new PhoneAccountHandle(
+            new ComponentName("com.android.server.telecom.tests", "DisconnectedCallNotifierTest"),
+            "testId");
+    private static final Uri TEL_CALL_HANDLE = Uri.parse("tel:+11915552620");
+
+    @Mock private CallsManager mCallsManager;
+    @Mock private CallerInfoLookupHelper mCallerInfoLookupHelper;
+
+    private NotificationManager mNotificationManager;
+
+    @Before
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+
+        mContext = mComponentContextFixture.getTestDouble().getApplicationContext();
+
+        mNotificationManager = (NotificationManager) mContext.getSystemService(
+                Context.NOTIFICATION_SERVICE);
+        TelephonyManager fakeTelephonyManager = (TelephonyManager) mContext.getSystemService(
+                Context.TELEPHONY_SERVICE);
+        when(fakeTelephonyManager.getNetworkCountryIso()).thenReturn("US");
+        doReturn(mCallerInfoLookupHelper).when(mCallsManager).getCallerInfoLookupHelper();
+    }
+
+    @After
+    @Override
+    public void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    @Test
+    @SmallTest
+    public void testNotificationShownAfterEmergencyCall() {
+        Call call = createCall(new DisconnectCause(DisconnectCause.LOCAL,
+                DisconnectCause.REASON_EMERGENCY_CALL_PLACED));
+
+        DisconnectedCallNotifier notifier = new DisconnectedCallNotifier(mContext, mCallsManager);
+        notifier.onCallStateChanged(call, CallState.NEW, CallState.DIALING);
+        notifier.onCallStateChanged(call, CallState.DIALING, CallState.DISCONNECTED);
+        verify(mNotificationManager, never()).notifyAsUser(anyString(), anyInt(),
+                any(Notification.class), any(UserHandle.class));
+
+        doReturn(Collections.EMPTY_LIST).when(mCallsManager).getCalls();
+        notifier.onCallRemoved(call);
+        verify(mNotificationManager).notifyAsUser(anyString(), anyInt(),
+                any(Notification.class), any(UserHandle.class));
+    }
+
+    @Test
+    @SmallTest
+    public void testNotificationNotShownAfterCall() {
+        Call call = createCall(new DisconnectCause(DisconnectCause.LOCAL));
+
+        DisconnectedCallNotifier notifier = new DisconnectedCallNotifier(mContext, mCallsManager);
+        notifier.onCallStateChanged(call, CallState.DIALING, CallState.DISCONNECTED);
+        verify(mNotificationManager, never()).notifyAsUser(anyString(), anyInt(),
+                any(Notification.class), any(UserHandle.class));
+
+        doReturn(Collections.EMPTY_LIST).when(mCallsManager).getCalls();
+        notifier.onCallRemoved(call);
+        verify(mNotificationManager, never()).notifyAsUser(anyString(), anyInt(),
+                any(Notification.class), any(UserHandle.class));
+    }
+
+    @Test
+    @SmallTest
+    public void testNotificationClearedForEmergencyCall() {
+        Call call = createCall(new DisconnectCause(DisconnectCause.LOCAL,
+                DisconnectCause.REASON_EMERGENCY_CALL_PLACED));
+
+        DisconnectedCallNotifier notifier = new DisconnectedCallNotifier(mContext, mCallsManager);
+        notifier.onCallStateChanged(call, CallState.DIALING, CallState.DISCONNECTED);
+        verify(mNotificationManager).cancelAsUser(anyString(), anyInt(), any());
+    }
+
+    private Call createCall(DisconnectCause cause) {
+        Call call = mock(Call.class);
+        when(call.getDisconnectCause()).thenReturn(cause);
+        when(call.getTargetPhoneAccount()).thenReturn(PHONE_ACCOUNT_HANDLE);
+        when(call.getHandle()).thenReturn(TEL_CALL_HANDLE);
+        return call;
+    }
+}
diff --git a/tests/src/com/android/server/telecom/tests/InCallControllerTests.java b/tests/src/com/android/server/telecom/tests/InCallControllerTests.java
index 6a97c27..ed36d29 100644
--- a/tests/src/com/android/server/telecom/tests/InCallControllerTests.java
+++ b/tests/src/com/android/server/telecom/tests/InCallControllerTests.java
@@ -33,11 +33,13 @@
 import static org.mockito.Mockito.when;
 
 import android.Manifest;
+import android.app.UiModeManager;
 import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.ServiceConnection;
+import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
@@ -61,6 +63,7 @@
 import com.android.server.telecom.BluetoothHeadsetProxy;
 import com.android.server.telecom.Call;
 import com.android.server.telecom.CallsManager;
+import com.android.server.telecom.CarModeTracker;
 import com.android.server.telecom.DefaultDialerCache;
 import com.android.server.telecom.EmergencyCallHelper;
 import com.android.server.telecom.InCallController;
@@ -116,12 +119,19 @@
     private static final int CURRENT_USER_ID = 900973;
     private static final String DEF_PKG = "defpkg";
     private static final String DEF_CLASS = "defcls";
+    private static final int DEF_UID = 1;
     private static final String SYS_PKG = "syspkg";
     private static final String SYS_CLASS = "syscls";
+    private static final int SYS_UID = 2;
     private static final String COMPANION_PKG = "cpnpkg";
     private static final String COMPANION_CLASS = "cpncls";
+    private static final int COMPANION_UID = 3;
     private static final String CAR_PKG = "carpkg";
+    private static final String CAR2_PKG = "carpkg2";
     private static final String CAR_CLASS = "carcls";
+    private static final String CAR2_CLASS = "carcls";
+    private static final int CAR_UID = 4;
+    private static final int CAR2_UID = 5;
     private static final PhoneAccountHandle PA_HANDLE =
             new PhoneAccountHandle(new ComponentName("pa_pkg", "pa_cls"), "pa_id");
 
@@ -149,14 +159,33 @@
         when(mMockCallsManager.getRoleManagerAdapter()).thenReturn(mMockRoleManagerAdapter);
         mInCallController = new InCallController(mMockContext, mLock, mMockCallsManager,
                 mMockSystemStateHelper, mDefaultDialerCache, mTimeoutsAdapter,
-                mEmergencyCallHelper);
+                mEmergencyCallHelper, new CarModeTracker());
         // Companion Apps don't have CONTROL_INCALL_EXPERIENCE permission.
+        doAnswer(invocation -> {
+            int uid = invocation.getArgument(0);
+            switch (uid) {
+                case DEF_UID:
+                    return new String[] { DEF_PKG };
+                case SYS_UID:
+                    return new String[] { SYS_PKG };
+                case COMPANION_UID:
+                    return new String[] { COMPANION_PKG };
+                case CAR_UID:
+                    return new String[] { CAR_PKG };
+                case CAR2_UID:
+                    return new String[] { CAR2_PKG };
+            }
+            return null;
+        }).when(mMockPackageManager).getPackagesForUid(anyInt());
         when(mMockPackageManager.checkPermission(
                 matches(Manifest.permission.CONTROL_INCALL_EXPERIENCE),
                 matches(COMPANION_PKG))).thenReturn(PackageManager.PERMISSION_DENIED);
         when(mMockPackageManager.checkPermission(
                 matches(Manifest.permission.CONTROL_INCALL_EXPERIENCE),
-                matches(CAR_PKG))).thenReturn(PackageManager.PERMISSION_DENIED);
+                matches(CAR_PKG))).thenReturn(PackageManager.PERMISSION_GRANTED);
+        when(mMockPackageManager.checkPermission(
+                matches(Manifest.permission.CONTROL_INCALL_EXPERIENCE),
+                matches(CAR2_PKG))).thenReturn(PackageManager.PERMISSION_GRANTED);
     }
 
     @Override
@@ -539,63 +568,6 @@
 
     /**
      * Ensures that the {@link InCallController} will bind to an {@link InCallService} which
-     * supports third party companion calls.
-     */
-    @MediumTest
-    @Test
-    public void testBindToService_Companion() throws Exception {
-        setupMocks(true /* isExternalCall */);
-        setupMockPackageManager(true /* default */, true /* system */, true /* external calls */);
-
-        List<String> companionAppsList = new ArrayList<>();
-        companionAppsList.add(COMPANION_PKG);
-        companionAppsList.add(COMPANION_PKG);
-        when(mMockRoleManagerAdapter.getCallCompanionApps()).thenReturn(companionAppsList);
-        mInCallController.bindToServices(mMockCall);
-
-        // Query for the different InCallServices
-        ArgumentCaptor<Intent> queryIntentCaptor = ArgumentCaptor.forClass(Intent.class);
-        verify(mMockPackageManager, times(6)).queryIntentServicesAsUser(
-                queryIntentCaptor.capture(),
-                eq(PackageManager.GET_META_DATA), eq(CURRENT_USER_ID));
-        // Verify call for default dialer InCallService
-        assertEquals(DEF_PKG, queryIntentCaptor.getAllValues().get(0).getPackage());
-        // Verify call for system dialer InCallService
-        assertEquals(null, queryIntentCaptor.getAllValues().get(1).getPackage());
-        // Verify call for car mode ui InCallServices
-        assertEquals(null, queryIntentCaptor.getAllValues().get(2).getPackage());
-        // Verify call for non-UI InCallServices
-        assertEquals(null, queryIntentCaptor.getAllValues().get(3).getPackage());
-        // Verify call for companion InCallServices
-        assertEquals(COMPANION_PKG, queryIntentCaptor.getAllValues().get(4).getPackage());
-        assertEquals(COMPANION_PKG, queryIntentCaptor.getAllValues().get(5).getPackage());
-
-        // Bind InCallServices
-        ArgumentCaptor<Intent> bindIntentCaptor = ArgumentCaptor.forClass(Intent.class);
-        verify(mMockContext, times(3)).bindServiceAsUser(
-                bindIntentCaptor.capture(),
-                any(ServiceConnection.class),
-                eq(Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE
-                        | Context.BIND_ALLOW_BACKGROUND_ACTIVITY_STARTS),
-                eq(UserHandle.CURRENT));
-        // Verify bind dialer
-        Intent bindIntent = bindIntentCaptor.getAllValues().get(0);
-        assertEquals(InCallService.SERVICE_INTERFACE, bindIntent.getAction());
-        assertEquals(DEF_PKG, bindIntent.getComponent().getPackageName());
-        assertEquals(DEF_CLASS, bindIntent.getComponent().getClassName());
-        // Verify bind companion apps
-        bindIntent = bindIntentCaptor.getAllValues().get(1);
-        assertEquals(InCallService.SERVICE_INTERFACE, bindIntent.getAction());
-        assertEquals(COMPANION_PKG, bindIntent.getComponent().getPackageName());
-        assertEquals(COMPANION_CLASS, bindIntent.getComponent().getClassName());
-        bindIntent = bindIntentCaptor.getAllValues().get(2);
-        assertEquals(InCallService.SERVICE_INTERFACE, bindIntent.getAction());
-        assertEquals(COMPANION_PKG, bindIntent.getComponent().getPackageName());
-        assertEquals(COMPANION_CLASS, bindIntent.getComponent().getClassName());
-    }
-
-    /**
-     * Ensures that the {@link InCallController} will bind to an {@link InCallService} which
      * supports third party car mode ui calls
      */
     @MediumTest
@@ -604,24 +576,12 @@
         setupMocks(true /* isExternalCall */);
         setupMockPackageManager(true /* default */, true /* system */, true /* external calls */);
 
-        when(mMockRoleManagerAdapter.getCarModeDialerApp()).thenReturn(CAR_PKG);
         // Enable car mode
         when(mMockSystemStateHelper.isCarMode()).thenReturn(true);
-        mInCallController.bindToServices(mMockCall);
+        mInCallController.handleCarModeChange(UiModeManager.DEFAULT_PRIORITY, CAR_PKG, true);
 
-        // Query for the different InCallServices
-        ArgumentCaptor<Intent> queryIntentCaptor = ArgumentCaptor.forClass(Intent.class);
-        verify(mMockPackageManager, times(4)).queryIntentServicesAsUser(
-                queryIntentCaptor.capture(),
-                eq(PackageManager.GET_META_DATA), eq(CURRENT_USER_ID));
-        // Verify call for default dialer InCallService
-        assertEquals(DEF_PKG, queryIntentCaptor.getAllValues().get(0).getPackage());
-        // Verify call for system dialer InCallService
-        assertEquals(null, queryIntentCaptor.getAllValues().get(1).getPackage());
-        // Verify call for car mode ui InCallServices
-        assertEquals(CAR_PKG, queryIntentCaptor.getAllValues().get(2).getPackage());
-        // Verify call for non-UI InCallServices
-        assertEquals(null, queryIntentCaptor.getAllValues().get(3).getPackage());
+        // Now bind; we should only bind to one app.
+        mInCallController.bindToServices(mMockCall);
 
         // Bind InCallServices
         ArgumentCaptor<Intent> bindIntentCaptor = ArgumentCaptor.forClass(Intent.class);
@@ -633,10 +593,7 @@
                 eq(UserHandle.CURRENT));
         // Verify bind car mode ui
         assertEquals(1, bindIntentCaptor.getAllValues().size());
-        Intent bindIntent = bindIntentCaptor.getAllValues().get(0);
-        assertEquals(InCallService.SERVICE_INTERFACE, bindIntent.getAction());
-        assertEquals(CAR_PKG, bindIntent.getComponent().getPackageName());
-        assertEquals(CAR_CLASS, bindIntent.getComponent().getClassName());
+        verifyBinding(bindIntentCaptor, 0, CAR_PKG, CAR_CLASS);
     }
 
     @MediumTest
@@ -644,28 +601,16 @@
     public void testNoBindToInvalidService_CarModeUI() throws Exception {
         setupMocks(true /* isExternalCall */);
         setupMockPackageManager(true /* default */, true /* system */, true /* external calls */);
+        mInCallController.bindToServices(mMockCall);
 
-        when(mMockRoleManagerAdapter.getCarModeDialerApp()).thenReturn(CAR_PKG);
         when(mMockPackageManager.checkPermission(
-                matches(Manifest.permission.CALL_COMPANION_APP),
+                matches(Manifest.permission.CONTROL_INCALL_EXPERIENCE),
                 matches(CAR_PKG))).thenReturn(PackageManager.PERMISSION_DENIED);
         // Enable car mode
         when(mMockSystemStateHelper.isCarMode()).thenReturn(true);
-        mInCallController.bindToServices(mMockCall);
 
-        // Query for the different InCallServices
-        ArgumentCaptor<Intent> queryIntentCaptor = ArgumentCaptor.forClass(Intent.class);
-        verify(mMockPackageManager, times(4)).queryIntentServicesAsUser(
-                queryIntentCaptor.capture(),
-                eq(PackageManager.GET_META_DATA), eq(CURRENT_USER_ID));
-        // Verify call for default dialer InCallService
-        assertEquals(DEF_PKG, queryIntentCaptor.getAllValues().get(0).getPackage());
-        // Verify call for system dialer InCallService
-        assertEquals(null, queryIntentCaptor.getAllValues().get(1).getPackage());
-        // Verify call for invalid car mode ui InCallServices
-        assertEquals(CAR_PKG, queryIntentCaptor.getAllValues().get(2).getPackage());
-        // Verify call for non-UI InCallServices
-        assertEquals(null, queryIntentCaptor.getAllValues().get(3).getPackage());
+        // Register the fact that the invalid app entered car mode.
+        mInCallController.handleCarModeChange(UiModeManager.DEFAULT_PRIORITY, CAR_PKG, true);
 
         // Bind InCallServices
         ArgumentCaptor<Intent> bindIntentCaptor = ArgumentCaptor.forClass(Intent.class);
@@ -677,10 +622,61 @@
                 eq(UserHandle.CURRENT));
         // Verify bind to default package, instead of the invalid car mode ui.
         assertEquals(1, bindIntentCaptor.getAllValues().size());
-        Intent bindIntent = bindIntentCaptor.getAllValues().get(0);
+        verifyBinding(bindIntentCaptor, 0, DEF_PKG, DEF_CLASS);
+    }
+
+    /**
+     * Ensures that the {@link InCallController} will bind to a higher priority car mode service
+     * when one becomes available.
+     */
+    @MediumTest
+    @Test
+    public void testCarmodeRebindHigherPriority() throws Exception {
+        setupMocks(true /* isExternalCall */);
+        setupMockPackageManager(true /* default */, true /* system */, true /* external calls */);
+        // Bind to default dialer.
+        mInCallController.bindToServices(mMockCall);
+
+        // Enable car mode and enter car mode at default priority.
+        when(mMockSystemStateHelper.isCarMode()).thenReturn(true);
+        mInCallController.handleCarModeChange(UiModeManager.DEFAULT_PRIORITY, CAR_PKG, true);
+
+        // And change to the second car mode app.
+        mInCallController.handleCarModeChange(100, CAR2_PKG, true);
+
+        // Exit car mode at higher priority.
+        mInCallController.handleCarModeChange(100, CAR2_PKG, false);
+
+        // Bind InCallServices
+        ArgumentCaptor<Intent> bindIntentCaptor = ArgumentCaptor.forClass(Intent.class);
+        verify(mMockContext, times(4)).bindServiceAsUser(
+                bindIntentCaptor.capture(),
+                any(ServiceConnection.class),
+                eq(Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE
+                        | Context.BIND_ALLOW_BACKGROUND_ACTIVITY_STARTS),
+                eq(UserHandle.CURRENT));
+        // Verify bind car mode ui
+        assertEquals(4, bindIntentCaptor.getAllValues().size());
+
+        // Should have first bound to the default dialer.
+        verifyBinding(bindIntentCaptor, 0, DEF_PKG, DEF_CLASS);
+
+        // Should have next bound to the car mode app.
+        verifyBinding(bindIntentCaptor, 1, CAR_PKG, CAR_CLASS);
+
+        // Finally, should have bound to the higher priority car mode app
+        verifyBinding(bindIntentCaptor, 2, CAR2_PKG, CAR2_CLASS);
+
+        // Should have rebound to the car mode app.
+        verifyBinding(bindIntentCaptor, 3, CAR_PKG, CAR_CLASS);
+    }
+
+    public void verifyBinding(ArgumentCaptor<Intent> bindIntentCaptor, int i, String carPkg,
+            String carClass) {
+        Intent bindIntent = bindIntentCaptor.getAllValues().get(i);
         assertEquals(InCallService.SERVICE_INTERFACE, bindIntent.getAction());
-        assertEquals(DEF_PKG, bindIntent.getComponent().getPackageName());
-        assertEquals(DEF_CLASS, bindIntent.getComponent().getClassName());
+        assertEquals(carPkg, bindIntent.getComponent().getPackageName());
+        assertEquals(carClass, bindIntent.getComponent().getClassName());
     }
 
     /**
@@ -752,6 +748,8 @@
             serviceInfo = new ServiceInfo();
             serviceInfo.packageName = DEF_PKG;
             serviceInfo.name = DEF_CLASS;
+            serviceInfo.applicationInfo = new ApplicationInfo();
+            serviceInfo.applicationInfo.uid = DEF_UID;
             serviceInfo.permission = Manifest.permission.BIND_INCALL_SERVICE;
             serviceInfo.metaData = new Bundle();
             serviceInfo.metaData.putBoolean(
@@ -763,11 +761,18 @@
         }};
     }
 
-    private ResolveInfo getCarModeResolveinfo(final boolean includeExternalCalls) {
+    private ResolveInfo getCarModeResolveinfo(final String packageName, final String className,
+            final boolean includeExternalCalls) {
         return new ResolveInfo() {{
             serviceInfo = new ServiceInfo();
-            serviceInfo.packageName = CAR_PKG;
-            serviceInfo.name = CAR_CLASS;
+            serviceInfo.packageName = packageName;
+            serviceInfo.name = className;
+            serviceInfo.applicationInfo = new ApplicationInfo();
+            if (CAR_PKG.equals(packageName)) {
+                serviceInfo.applicationInfo.uid = CAR_UID;
+            } else {
+                serviceInfo.applicationInfo.uid = CAR2_UID;
+            }
             serviceInfo.permission = Manifest.permission.BIND_INCALL_SERVICE;
             serviceInfo.metaData = new Bundle();
             serviceInfo.metaData.putBoolean(
@@ -784,6 +789,8 @@
             serviceInfo = new ServiceInfo();
             serviceInfo.packageName = SYS_PKG;
             serviceInfo.name = SYS_CLASS;
+            serviceInfo.applicationInfo = new ApplicationInfo();
+            serviceInfo.applicationInfo.uid = SYS_UID;
             serviceInfo.permission = Manifest.permission.BIND_INCALL_SERVICE;
         }};
     }
@@ -793,6 +800,8 @@
             serviceInfo = new ServiceInfo();
             serviceInfo.packageName = COMPANION_PKG;
             serviceInfo.name = COMPANION_CLASS;
+            serviceInfo.applicationInfo = new ApplicationInfo();
+            serviceInfo.applicationInfo.uid = COMPANION_UID;
             serviceInfo.permission = Manifest.permission.BIND_INCALL_SERVICE;
         }};
     }
@@ -825,7 +834,13 @@
                     }
 
                     if (packageName.equals(CAR_PKG)) {
-                        resolveInfo.add(getCarModeResolveinfo(includeExternalCalls));
+                        resolveInfo.add(getCarModeResolveinfo(CAR_PKG, CAR_CLASS,
+                                includeExternalCalls));
+                    }
+
+                    if (packageName.equals(CAR2_PKG)) {
+                        resolveInfo.add(getCarModeResolveinfo(CAR2_PKG, CAR2_CLASS,
+                                includeExternalCalls));
                     }
                 }
                 return resolveInfo;
diff --git a/tests/src/com/android/server/telecom/tests/NewOutgoingCallIntentBroadcasterTest.java b/tests/src/com/android/server/telecom/tests/NewOutgoingCallIntentBroadcasterTest.java
index 3438802..a966ffc 100644
--- a/tests/src/com/android/server/telecom/tests/NewOutgoingCallIntentBroadcasterTest.java
+++ b/tests/src/com/android/server/telecom/tests/NewOutgoingCallIntentBroadcasterTest.java
@@ -28,6 +28,7 @@
 import static org.mockito.Matchers.isNotNull;
 import static org.mockito.Matchers.isNull;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
@@ -49,6 +50,7 @@
 import android.telecom.TelecomManager;
 import android.telecom.VideoProfile;
 import android.telephony.DisconnectCause;
+import android.telephony.TelephonyManager;
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.server.telecom.Call;
@@ -429,6 +431,18 @@
         verify(mCall).disconnect(eq(0L));
     }
 
+    /**
+     * Ensure if {@link TelephonyManager#isPotentialEmergencyNumber(String)} throws an exception of
+     * any sort that we don't crash Telecom.
+     */
+    @SmallTest
+    @Test
+    public void testThrowOnIsPotentialEmergencyNumber() {
+        doThrow(new IllegalStateException()).when(mComponentContextFixture.getTelephonyManager())
+                .isPotentialEmergencyNumber(anyString());
+        testUnmodifiedRegularCall();
+    }
+
     private ReceiverIntentPair regularCallTestHelper(Intent intent,
             Bundle expectedAdditionalExtras) {
         Uri handle = intent.getData();
diff --git a/tests/src/com/android/server/telecom/tests/ParcelableCallUtilsTest.java b/tests/src/com/android/server/telecom/tests/ParcelableCallUtilsTest.java
index 30b870e..6c941fe 100644
--- a/tests/src/com/android/server/telecom/tests/ParcelableCallUtilsTest.java
+++ b/tests/src/com/android/server/telecom/tests/ParcelableCallUtilsTest.java
@@ -2,22 +2,19 @@
 
 import static com.android.server.telecom.TelecomSystem.*;
 
+import static junit.framework.Assert.assertEquals;
 import static junit.framework.Assert.assertFalse;
 import static junit.framework.Assert.assertTrue;
 
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.when;
 
 import android.content.ComponentName;
-import android.content.Context;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.SystemClock;
 import android.telecom.Connection;
-import android.telecom.GatewayInfo;
 import android.telecom.ParcelableCall;
 import android.telecom.PhoneAccountHandle;
 import android.test.suitebuilder.annotation.SmallTest;
@@ -26,7 +23,6 @@
 import com.android.server.telecom.CallerInfoLookupHelper;
 import com.android.server.telecom.CallsManager;
 import com.android.server.telecom.ClockProxy;
-import com.android.server.telecom.ConnectionServiceRepository;
 import com.android.server.telecom.ParcelableCallUtils;
 import com.android.server.telecom.PhoneAccountRegistrar;
 import com.android.server.telecom.PhoneNumberUtilsAdapter;
@@ -149,6 +145,48 @@
         assertFalse(parceledExtras.containsKey(Connection.EXTRA_CALL_SUBJECT));
     }
 
+    @SmallTest
+    @Test
+    public void testVerificationStatusParcelingForScreening() {
+        checkVerStatParcelingForCallScreening(Connection.VERIFICATION_STATUS_NOT_VERIFIED, false);
+        checkVerStatParcelingForCallScreening(Connection.VERIFICATION_STATUS_NOT_VERIFIED, true);
+        checkVerStatParcelingForCallScreening(Connection.VERIFICATION_STATUS_PASSED, false);
+        checkVerStatParcelingForCallScreening(Connection.VERIFICATION_STATUS_PASSED, true);
+        checkVerStatParcelingForCallScreening(Connection.VERIFICATION_STATUS_FAILED, false);
+        checkVerStatParcelingForCallScreening(Connection.VERIFICATION_STATUS_FAILED, true);
+    }
+
+    @SmallTest
+    @Test
+    public void testVerificationStatusParcelingForDialer() {
+        checkVerStatParcelingForDialer(Connection.VERIFICATION_STATUS_NOT_VERIFIED, false);
+        checkVerStatParcelingForDialer(Connection.VERIFICATION_STATUS_NOT_VERIFIED, true);
+        checkVerStatParcelingForDialer(Connection.VERIFICATION_STATUS_PASSED, false);
+        checkVerStatParcelingForDialer(Connection.VERIFICATION_STATUS_PASSED, true);
+        checkVerStatParcelingForDialer(Connection.VERIFICATION_STATUS_FAILED, false);
+        checkVerStatParcelingForDialer(Connection.VERIFICATION_STATUS_FAILED, true);
+    }
+
+    private void checkVerStatParcelingForCallScreening(int connectionVerificationStatus,
+            boolean isForSystemDialer) {
+        mCall.setCallerNumberVerificationStatus(connectionVerificationStatus);
+        ParcelableCall call = ParcelableCallUtils.toParcelableCallForScreening(mCall,
+                isForSystemDialer /* isPartOfSystemDialer */);
+        assertEquals(connectionVerificationStatus, call.getCallerNumberVerificationStatus());
+    }
+
+    private void checkVerStatParcelingForDialer(int connectionVerificationStatus,
+            boolean isForSystemDialer) {
+        mCall.setCallerNumberVerificationStatus(connectionVerificationStatus);
+        ParcelableCall call = ParcelableCallUtils.toParcelableCall(mCall,
+                false /* includevideoProvider */,
+                null /* phoneAccountRegistrar */,
+                false /* supportsExternalCalls */,
+                false /* includeRttCall */,
+                isForSystemDialer /* isForSystemDialer */);
+        assertEquals(connectionVerificationStatus, call.getCallerNumberVerificationStatus());
+    }
+
     private Bundle getSomeExtras() {
         Bundle extras = new Bundle();
         extras.putString(Connection.EXTRA_SIP_INVITE, "scary data");
diff --git a/tests/src/com/android/server/telecom/tests/SystemStateHelperTest.java b/tests/src/com/android/server/telecom/tests/SystemStateHelperTest.java
index efe8796..2de3c83 100644
--- a/tests/src/com/android/server/telecom/tests/SystemStateHelperTest.java
+++ b/tests/src/com/android/server/telecom/tests/SystemStateHelperTest.java
@@ -20,6 +20,8 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
@@ -132,8 +134,10 @@
         verify(mContext).registerReceiver(any(BroadcastReceiver.class), intentFilter.capture());
 
         assertEquals(2, intentFilter.getValue().countActions());
-        assertEquals(UiModeManager.ACTION_ENTER_CAR_MODE, intentFilter.getValue().getAction(0));
-        assertEquals(UiModeManager.ACTION_EXIT_CAR_MODE, intentFilter.getValue().getAction(1));
+        assertEquals(UiModeManager.ACTION_ENTER_CAR_MODE_PRIORITIZED,
+                intentFilter.getValue().getAction(0));
+        assertEquals(UiModeManager.ACTION_EXIT_CAR_MODE_PRIORITIZED,
+                intentFilter.getValue().getAction(1));
     }
 
     @SmallTest
@@ -145,13 +149,13 @@
 
         verify(mContext).registerReceiver(receiver.capture(), any(IntentFilter.class));
 
-        when(mIntentEnter.getAction()).thenReturn(UiModeManager.ACTION_ENTER_CAR_MODE);
+        when(mIntentEnter.getAction()).thenReturn(UiModeManager.ACTION_ENTER_CAR_MODE_PRIORITIZED);
         receiver.getValue().onReceive(mContext, mIntentEnter);
-        verify(mSystemStateListener).onCarModeChanged(true);
+        verify(mSystemStateListener).onCarModeChanged(anyInt(), isNull(), eq(true));
 
-        when(mIntentExit.getAction()).thenReturn(UiModeManager.ACTION_EXIT_CAR_MODE);
+        when(mIntentExit.getAction()).thenReturn(UiModeManager.ACTION_EXIT_CAR_MODE_PRIORITIZED);
         receiver.getValue().onReceive(mContext, mIntentExit);
-        verify(mSystemStateListener).onCarModeChanged(false);
+        verify(mSystemStateListener).onCarModeChanged(anyInt(), isNull(), eq(false));
 
         receiver.getValue().onReceive(mContext, new Intent("invalid action"));
     }
diff --git a/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java b/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
index 890fa6f..324bca2 100644
--- a/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
+++ b/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
@@ -190,8 +190,10 @@
     public void setUp() throws Exception {
         super.setUp();
         mContext = mComponentContextFixture.getTestDouble().getApplicationContext();
-        mComponentContextFixture.putBooleanResource(
-                com.android.internal.R.bool.config_voice_capable, true);
+
+        TelephonyManager mockTelephonyManager =
+                (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
+        when(mockTelephonyManager.isVoiceCapable()).thenReturn(true);
 
         doReturn(mContext).when(mContext).getApplicationContext();
         doNothing().when(mContext).sendBroadcastAsUser(any(Intent.class), any(UserHandle.class),
diff --git a/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java b/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
index a3b102f..442c310 100644
--- a/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
+++ b/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
@@ -212,11 +212,12 @@
             new ComponentName(
                     "incall-service-package-X",
                     "incall-service-class-X");
+    private static final int SERVICE_X_UID = 1;
     final ComponentName mInCallServiceComponentNameY =
             new ComponentName(
                     "incall-service-package-Y",
                     "incall-service-class-Y");
-
+    private static final int SERVICE_Y_UID = 1;
     InCallServiceFixture mInCallServiceFixtureX;
     InCallServiceFixture mInCallServiceFixtureY;
 
@@ -472,7 +473,6 @@
         when(mClockProxy.elapsedRealtime()).thenReturn(TEST_CREATE_ELAPSED_TIME);
         when(mRoleManagerAdapter.getCallCompanionApps()).thenReturn(Collections.emptyList());
         when(mRoleManagerAdapter.getDefaultCallScreeningApp()).thenReturn(null);
-        when(mRoleManagerAdapter.getCarModeDialerApp()).thenReturn(null);
         mTelecomSystem = new TelecomSystem(
                 mComponentContextFixture.getTestDouble(),
                 (context, phoneAccountRegistrar, defaultDialerCache) -> mMissedCallNotifier,
@@ -581,16 +581,17 @@
         mComponentContextFixture.putResource(
                 com.android.server.telecom.R.string.incall_default_class,
                 mInCallServiceComponentNameX.getClassName());
-        mComponentContextFixture.putBooleanResource(
-                com.android.internal.R.bool.config_voice_capable, true);
+
+        doReturn(true).when(mComponentContextFixture.getTelephonyManager())
+                .isVoiceCapable();
 
         mInCallServiceFixtureX = new InCallServiceFixture();
         mInCallServiceFixtureY = new InCallServiceFixture();
 
         mComponentContextFixture.addInCallService(mInCallServiceComponentNameX,
-                mInCallServiceFixtureX.getTestDouble());
+                mInCallServiceFixtureX.getTestDouble(), SERVICE_X_UID);
         mComponentContextFixture.addInCallService(mInCallServiceComponentNameY,
-                mInCallServiceFixtureY.getTestDouble());
+                mInCallServiceFixtureY.getTestDouble(), SERVICE_Y_UID);
     }
 
     /**
