diff --git a/proguard.flags b/proguard.flags
index 357336b..4e0c310 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -3,6 +3,6 @@
 -keep class com.android.server.telecom.TelecomSystem {
   *;
 }
--keep class com.android.server.telecom.Log {
+-keep class android.telecom.Log {
   *;
 }
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 2109cef..3984a5d 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Oproepbestuur"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Foonoproepbestuur"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Bel"</string>
     <string name="unknown" msgid="6878797917991465859">"Onbekend"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Gemiste oproep"</string>
@@ -28,7 +28,7 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Boodskap"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Oproep stilgemaak."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Luidsprekerfoon geaktiveer."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Kan nie nou praat nie. Hoe\'s dit?"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Kan nie nou praat nie. Wat\'s nuus?"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Ek bel jou nou-nou terug."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Ek bel jou later."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Kan nie nou praat nie. Bel my later?"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Vermiste stemboodskapnommer"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Geen stemboodskapnommer is op die SIM-kaart gestoor nie."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Voeg nommer by"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Maak <xliff:g id="NEW_APP">%s</xliff:g> jou verstek-Foon-program?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Stel verstek"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Kanselleer"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> sal oproepe kan maak en alle aspekte daarvan beheer. Net programme wat jy vertrou, moet as die verstek-Foon-program gestel word."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Geblokkeerde nommers"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Jy sal nie oproepe of boodskappe vanaf geblokkeerde nommers ontvang nie."</string>
-    <string name="block_number" msgid="1101252256321306179">"Voeg \'n nommer by"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Deblokkeer <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Deblokkeer"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokkeer oproepe en SMS\'e vanaf"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Foonnommer"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blokkeer"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Net die toesteleienaar kan geblokkeerde nommers bekyk en bestuur."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Deblokkeer"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokkering is tydelik af"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Nadat jy \'n noodnommer gebel het of \'n boodskap daarheen gestuur het, sal blokkering afgeskakel word sodat nooddienste jou kan kontak."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Heraktiveer nou"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> geblokkeer"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> is gedeblokkeer"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Kan nie noodgevalnommer blokkeer nie."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> is reeds geblokkeer."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Gebruik tans die persoonlike beller om die oproep te maak"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Verander verstekbellerprogram?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Gebruik <xliff:g id="NEW_APP">%1$s</xliff:g> eerder as <xliff:g id="CURRENT_APP">%2$s</xliff:g> as jou verstekbellerprogram?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Gebruik <xliff:g id="NEW_APP">%s</xliff:g> as jou verstekbellerprogram?"</string>
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 41f8b2d..dbd4c30 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"የጥሪ አስተዳደር"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"የስልክ ጥሪ አስተዳደር"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"ስልክ"</string>
     <string name="unknown" msgid="6878797917991465859">"ያልታወቀ"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"ያመለጠጥሪ"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"የድምፅመልዕክት ቁጥርአመለጠ"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"በSIM ካርዱ ላይምንም የድምፅመልዕክት ቁጥር አልከተቀመጠም።"</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"ቁጥር አክል"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"ነባሪ መደወያ መተግበሪያ ይለወጥ?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="NEW_APP">%1$s</xliff:g>ን በ<xliff:g id="CURRENT_APP">%2$s</xliff:g> ምትክ እንደ የእርስዎ ነባሪ መደወያ መተግበሪያ ይጠቀም?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g>ን እንደ የእርስዎ ነባሪ መደወያ መተግበሪያ ይጠቀም?"</string>
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 8e3abbe..0ea39f5 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"إدارة المكالمات"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"إدارة المكالمات الهاتفية"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"الهاتف"</string>
     <string name="unknown" msgid="6878797917991465859">"غير معروف"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"مكالمة فائتة"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"رقم البريد الصوتي مفقود"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"‏لم يتم تخزين رقم بريد صوتي على شريحة SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"إضافة رقم"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"هل تريد تغيير التطبيق الافتراضي لبرنامج الاتصال؟"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"هل تريد استخدام <xliff:g id="NEW_APP">%1$s</xliff:g> بدلاً من <xliff:g id="CURRENT_APP">%2$s</xliff:g> تطبيقًا افتراضيًا لبرنامج الاتصال؟"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"هل تريد استخدام <xliff:g id="NEW_APP">%s</xliff:g> تطبيقًا افتراضيًا لبرنامج الاتصال؟"</string>
 </resources>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
index 850e121..353de80 100644
--- a/res/values-az-rAZ/strings.xml
+++ b/res/values-az-rAZ/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Zənglərin İdarə Olunması"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Telefon Zənglərin İdarə Olunması"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Naməlum"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Buraxılmış zəng"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Səsli poçt nömrəsi çatışmır"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM kartda heç bir səsli poçt nömrəsi yoxdur."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Nömrə əlavə edin"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"<xliff:g id="NEW_APP">%s</xliff:g> tətbiüi defolt Phone tətbiqi təyin edilsin?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Defolt ayarlayın"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Ləğv edin"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> bütün zəngləri edə və nəzarətdə saxlaya biləcək. Yalnız güvəndiyiniz tətbiqləri Telefon tətbiqi kimi ayarlaya bilərsiniz."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Bloklanmış nömrələr"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Blok edilmiş nömrədən zənglər və ya mesajlar almayacaqsınız."</string>
-    <string name="block_number" msgid="1101252256321306179">"Nömrə əlavə edin"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> nömrəsi blokdan çıxarılsın?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Blokdan çıxar"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Zəngləri və mətnləri buradan blok edin"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefon nömrəsi"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blok edin"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Yalnız cihaz sahibi blok edilmiş nömrələrə baxa və idarə edə bilər."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Blokdan çıxarın"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Bloklama müvəqqəti olaraq deaktiv edildi"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Fövqəladə nömrəyə zəng etdikdən və ya mesaj yazdıqdan sonra, fövqəladə xidmətlərin Sizinlə əlaqə yarada biləcəyinə əmin olmaq üçün bloklama deaktiv edildi."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"İndi yenidən aktiv edin"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> blok edildi"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> blokdan çıxarıldı"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Fövqəladə nömrəni blok etmək mümkün deyil."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> artıq blok edilib."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Zəng etmək üçün şəxsi nömrə yığımı istifadə olunur"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Defolt nömrə yığan tətbiqi dəyişdirilsin?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Defolt nömrə yığan tətbiqi kimi <xliff:g id="CURRENT_APP">%2$s</xliff:g> əvəzinə <xliff:g id="NEW_APP">%1$s</xliff:g> işlədilsin?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Defolt nömrə yığan tətbiqi kimi <xliff:g id="NEW_APP">%s</xliff:g> işlədilsin?"</string>
 </resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index b59c29c..057b025 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Upravljanje pozivima"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Upravljanje telefonskim pozivima"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Nepoznato"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Propušten poziv"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Nedostaje broj za govornu poštu"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Nije uskladišten nijedan broj govorne pošte na SIM kartici."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Dodaj broj"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Želite li da <xliff:g id="NEW_APP">%s</xliff:g> postane podrazumevana aplikacija Telefon?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Postavi kao podrazumevano"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Otkaži"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> će moći da upućuje pozive i kontroliše sve njihove aspekte. Aplikaciju podesite kao podrazumevanu za telefoniranje samo ako je smatrate pouzdanom."</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">"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>
-    <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 da pregleda blokirane brojeve i upravlja njima."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Deblokirajte"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokiranje je privremeno isključeno"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Kad pozovete broj hitne službe ili na taj broj pošaljete SMS, blokiranje se isključuje da bi hitne službe mogle da vas kontaktiraju."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Ponovo omogući"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> je blokiran"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> je deblokiran"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Nije moguće blokirati broj hitne službe."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> je već blokiran."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Korišćenje brojčanika iz ličnog profila za upućivanje poziva"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Promeniti podrazumevanu aplikaciju Telefon?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Želite li da koristite aplikaciju <xliff:g id="NEW_APP">%1$s</xliff:g> umesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> kao podrazumevanu aplikaciju za pozivanje telefonskih brojeva?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Želite li da koristite aplikaciju <xliff:g id="NEW_APP">%s</xliff:g> kao podrazumevanu aplikaciju za pozivanje telefonskih brojeva?"</string>
 </resources>
diff --git a/res/values-be-rBY/strings.xml b/res/values-be-rBY/strings.xml
deleted file mode 100644
index 5d44ed9..0000000
--- a/res/values-be-rBY/strings.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Кіраванне выклікамі"</string>
-    <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_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>
-    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Адказаць"</string>
-    <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_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>
-    <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_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>
-    <string name="no_vm_number_msg" msgid="1300729501030053828">"На SIM-карце няма нумару галасавой пошты."</string>
-    <string name="add_vm_number_str" msgid="4676479471644687453">"Дадаць нумар"</string>
-    <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="blocked_numbers" msgid="2751843139572970579">"Заблакіраваныя нумары"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Вы не будзеце атрымліваць выклікі ці SMS з заблакаваных нумароў."</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">"Разблакiраваць"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Блакіраваць выклікі і SMS ад"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Нумар тэлефона"</string>
-    <string name="block_button" msgid="8822290682524373357">"Заблакiраваць"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Толькі ўладальнік прылады можа праглядаць блакіраваныя нумары і кіраваць імі."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Разблакiраваць"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Блакіроўка часова адключана"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Пасля тэлефанавання або адпраўкі SMS на экстранны нумар блакіроўка адключаецца, каб аварыйныя службы маглі звязацца з вамі."</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_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>
-</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index bbe04b8..fa451b7 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Управление на обажданията"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Управление на телефонните обаждания"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Телефон"</string>
     <string name="unknown" msgid="6878797917991465859">"Неизвестен номер"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Пропуснато обаждане"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Липсващ номер на гласова поща"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"На SIM картата няма съхранен номер за гласова поща."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Добавяне на номер"</string>
-    <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="blocked_numbers" msgid="2751843139572970579">"Блокирани номера"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Няма да получавате обаждания или SMS от блокираните номера."</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_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="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Блокирането временно е изключено"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"След като наберете или изпратите SMS до номер за спешни повиквания, блокирането се изключва, за да могат спешните служби да се свържат с вас."</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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"Да се промени ли основното приложение за дайлер?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="NEW_APP">%1$s</xliff:g> да се използва ли вместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> като основното ви приложение за дайлер?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Да се използва ли <xliff:g id="NEW_APP">%s</xliff:g> като основното ви приложение за дайлер?"</string>
 </resources>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index 088ca2a..787c331 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"কল ব্যবস্থাপনা"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"ফোন কল ব্যবস্থাপনা"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"ফোন"</string>
     <string name="unknown" msgid="6878797917991465859">"অজানা"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"মিসড কল"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"ভয়েসমেল নম্বর অনুপস্থিত"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"সিম কার্ডটিতে কোনো ভয়েসমেল নম্বর সংরক্ষিত নেই৷"</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"একটি নম্বর যোগ করুন"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"ডিফল্ট ডায়ালার অ্যাপ পরিবর্তন করবেন?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"আপনার ডিফল্ট ডায়লার অ্যাপ হিসেবে <xliff:g id="CURRENT_APP">%2$s</xliff:g> পরিবর্তে <xliff:g id="NEW_APP">%1$s</xliff:g> ব্যবহার করবেন?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"আপনার ডিফল্ট ডায়লার অ্যাপ হিসেবে <xliff:g id="NEW_APP">%s</xliff:g> ব্যবহার করবেন?"</string>
 </resources>
diff --git a/res/values-bs-rBA/strings.xml b/res/values-bs-rBA/strings.xml
deleted file mode 100644
index fd5beff..0000000
--- a/res/values-bs-rBA/strings.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--  Copyright (C) 2013 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
- -->
-
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Upravljanje pozivima"</string>
-    <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
-    <string name="unknown" msgid="6878797917991465859">"Nepoznato"</string>
-    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Propušteni poziv"</string>
-    <string name="notification_missedWorkCallTitle" msgid="6242489980390803090">"Propušteni poslovni poziv"</string>
-    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Propušteni pozivi"</string>
-    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"Propušteni pozivi: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
-    <string name="notification_missedCallTicker" msgid="504686252427747209">"Propušteni poziv od kontakta <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
-    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Povr. poziv"</string>
-    <string name="notification_missedCall_message" msgid="3049928912736917988">"Poruka"</string>
-    <string name="accessibility_call_muted" msgid="2776111226185342220">"Zvuk poziva je isključen."</string>
-    <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Zvučnik je omogućen."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Ne mogu sada pričati. Šta ima?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Nazvat ću te uskoro."</string>
-    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Nazvat ću te kasnije."</string>
-    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Ne mogu pričati. Nazovi kasnije?"</string>
-    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Brzi odgovori"</string>
-    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Uredi brze odgovore"</string>
-    <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
-    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Brzi odgovor"</string>
-    <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Poruka poslana na <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
-    <string name="enable_account_preference_title" msgid="2021848090086481720">"Računi za pozivanje"</string>
-    <string name="outgoing_call_not_allowed_user_restriction" msgid="6872406278300131364">"Dozvoljeni su samo hitni pozivi."</string>
-    <string name="outgoing_call_not_allowed_no_permission" msgid="1996571596464271228">"Ova aplikacija ne može upućivati odlazne pozive bez dozvole za Telefon."</string>
-    <string name="outgoing_call_error_no_phone_number_supplied" msgid="1940125199802007505">"Da uputite poziv, upišite važeći broj."</string>
-    <string name="duplicate_video_call_not_allowed" msgid="3749211605014548386">"Trenutno nije moguće dodati poziv."</string>
-    <string name="no_vm_number" msgid="4164780423805688336">"Nedostaje broj govorne pošte"</string>
-    <string name="no_vm_number_msg" msgid="1300729501030053828">"Broj govorne pošte nije pohranjen na SIM kartici."</string>
-    <string name="add_vm_number_str" msgid="4676479471644687453">"Dodaj broj"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Postaviti aplikaciju <xliff:g id="NEW_APP">%s</xliff:g> kao zadanu aplikaciju za telefon?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Postavi zadano"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Otkaži"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> će moći upućivati pozive i kontrolirati sve vezano za njih. Zadana aplikacija treba biti samo aplikacija koju smatrate pouzdanom."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Blokirani brojevi"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Nećete primati pozive i poruke od blokiranih brojeva."</string>
-    <string name="block_number" msgid="1101252256321306179">"Dodaj broj"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Odblokirati <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Odblokiraj"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokiraj pozive i tekstualne poruke od"</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 pregledati i upravljati blokiranim brojevima."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Odblokiraj"</string>
-    <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 pozovete ili pošaljete poruku na broj za hitne slučajeve, blokiranje se isključuje da bi vas hitna služba mogla kontaktirati."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Ponovo omogući sada"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> je blokiran"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> je odblokiran"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Nije moguće blokirati broj za hitne slučajeve."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> je već blokiran."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Za upućivanje poziva koristi se lična brojčana tastatura"</string>
-</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 9504895..dc5b73c 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Gestió de trucades"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Gestió de trucades telefòniques"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telèfon"</string>
     <string name="unknown" msgid="6878797917991465859">"Desconegut"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Trucada perduda"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Falta el número de la bústia de veu"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"No hi ha cap número de bústia de veu emmagatzemat a la targeta SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Afegeix número"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Vols que <xliff:g id="NEW_APP">%s</xliff:g> sigui l\'aplicació per a mòbils predetermin.?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Defineix com a predeterminat"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Cancel·la"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> podrà fer les teves trucades i controlar-ne tots els aspectes. Només les aplicacions de confiança s\'han de definir com a l\'aplicació per a mòbils predeterminada."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Números bloquejats"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"No rebràs trucades ni missatges de text dels números bloquejats."</string>
-    <string name="block_number" msgid="1101252256321306179">"Afegeix un número"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Vols desbloquejar el número <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Desbloqueja"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Bloqueja trucades i missatges de text de"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Número de telèfon"</string>
-    <string name="block_button" msgid="8822290682524373357">"Bloqueja"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Només el propietari del dispositiu pot consultar i gestionar els números bloquejats."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Desbloqueja"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"El bloqueig està desactivat temporalment"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Quan marques un número d\'emergència o hi envies un missatge de text, el bloqueig es desactiva per garantir que els serveis d\'emergència puguin contactar amb tu."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Torna a activar ara"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> bloquejat"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> desbloquejat"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"No es pot bloquejar el número d\'emergència."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> ja està bloquejat."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"S\'està utilitzant el telèfon personal per fer la trucada"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Vols canviar l\'aplicació de marcador predeterminada?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Vols fer servir <xliff:g id="NEW_APP">%1$s</xliff:g> en lloc de <xliff:g id="CURRENT_APP">%2$s</xliff:g> com a aplicació de marcador predeterminada?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Vols fer servir <xliff:g id="NEW_APP">%s</xliff:g> com a aplicació de marcador predeterminada?"</string>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index ac77aac..dbc7165 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Správa hovorů"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Správa telefonních hovorů"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Neznámý volající"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Zmeškaný hovor"</string>
@@ -31,7 +31,7 @@
     <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áte později?"</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Nemůžu telefonovat, volejte jindy."</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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Chybí číslo hlasové schránky"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Na SIM kartě není uloženo žádné číslo hlasové schránky."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Přidat číslo"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Nastavit <xliff:g id="NEW_APP">%s</xliff:g> jako výchozí aplikaci na telefonování?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Nastavit jako výchozí"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Zrušit"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"Aplikace <xliff:g id="NEW_APP">%s</xliff:g> bude moci uskutečňovat hovory a spravovat všechny jejich aspekty. Jako výchozí aplikaci na telefonování byste měli nastavit jen aplikaci, které věříte."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Blokovaná čísla"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Ze zablokovaných čísel už nebudete přijímat hovory ani zprávy SMS."</string>
-    <string name="block_number" msgid="1101252256321306179">"Přidat číslo"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Odblokovat číslo <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Odblokovat"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokovat hovory a SMS od odesílatele"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonní číslo"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blokovat"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Prohlížet a spravovat blokovaná čísla může pouze vlastník zařízení."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Odblokovat"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokování je dočasně vypnuto"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Když vytočíte nebo pošlete zprávu na číslo tísňové linky, blokování je vypnuto, aby vás pohotovostní služby mohly kontaktovat."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Znovu zapnout"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"Číslo <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> bylo zablokováno"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Číslo <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> bylo odblokováno"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Číslo tísňové linky se nepodařilo zablokovat."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"Číslo <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> už je zablokováno."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Volání se provádí pomocí osobního vytáčení"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Změnit výchozí aplikaci vytáčení?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Chcete aplikaci <xliff:g id="NEW_APP">%1$s</xliff:g> použít jako výchozí aplikaci vytáčení místo aplikace <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Chcete aplikaci <xliff:g id="NEW_APP">%s</xliff:g> použít jako výchozí aplikaci vytáčení?"</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 48fba35..8b1f7df 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Opkaldsstyring"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Opkaldsstyring"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Opkald"</string>
     <string name="unknown" msgid="6878797917991465859">"Ukendt"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Ubesvarede opkald"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Telefonsvarernummer mangler"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Der er ikke gemt noget telefonsvarernummer på SIM-kortet."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Tilføj nummer"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Vil du gøre <xliff:g id="NEW_APP">%s</xliff:g> til din standardapp til opkald?"</string>
-    <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="blocked_numbers" msgid="2751843139572970579">"Blokerede telefonnumre"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Du modtager ikke opkald eller sms-beskeder fra blokerede numre."</string>
-    <string name="block_number" msgid="1101252256321306179">"Tilføj et nummer"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Vil du ophæve blokeringen af <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Ophæv blokeringen"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Bloker opkald og sms-beskeder fra"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonnummer"</string>
-    <string name="block_button" msgid="8822290682524373357">"Bloker"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Det er kun ejeren af en enhed, der kan se og administrere blokerede numre."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Ophæv blokering"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokering er midlertidigt slået fra"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Når du har ringet eller sendt en sms-besked til alarmcentralen, bliver blokering slået fra for at sikre, at alarmcentralen kan komme i kontakt med dig."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Genaktiver nu"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> blev blokeret"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Blokeringen af <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> blev ophævet"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Nødnummeret kan ikke blokeres."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> er allerede blokeret."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Opkaldet foretages med det personlige opkaldsprogram"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Vil du skifte standardappen til opkald?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Brug <xliff:g id="NEW_APP">%1$s</xliff:g> i stedet for <xliff:g id="CURRENT_APP">%2$s</xliff:g> som din standardapp til opkald?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Brug <xliff:g id="NEW_APP">%s</xliff:g> som din standardapp til opkald?"</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 7993f35..44277c8 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Anrufverwaltung"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Anrufverwaltung"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Unbekannt"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Entgangener Anruf"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Fehlende Mailbox-Nummer"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Auf der SIM-Karte ist keine Mailbox-Nummer gespeichert."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Nummer hinzufügen"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"<xliff:g id="NEW_APP">%s</xliff:g> als Standard-Telefon-App festlegen?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Als Standard festlegen"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Abbrechen"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> wird alle Anruffunktionen steuern. Nur vertrauenswürdige Apps sollten als Standard-Telefon-App festgelegt werden."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Blockierte Nummern"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Du erhältst keine Anrufe oder SMS von blockierten Nummern."</string>
-    <string name="block_number" msgid="1101252256321306179">"Nummer hinzufügen"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Blockierung von <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> aufheben?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Blockierung aufheben"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Anrufe und SMS blockieren von"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonnummer"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blockieren"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Nur der Geräteeigentümer kann blockierte Nummern sehen und verwalten."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Blockierung aufheben"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blockierung vorübergehend aus"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Nachdem du eine Notrufnummer gewählt oder per SMS gesendet hast, wird die Blockierung aufgehoben, damit dich die Notfalldienste erreichen können."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Jetzt neu aktivieren"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> blockiert"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Blockierung von <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> aufgehoben"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Die Notrufnummer kann nicht blockiert werden."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> ist bereits blockiert."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Zum Anrufen wird das eigene Telefon genutzt"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Standard-App für Telefonie ändern?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="NEW_APP">%1$s</xliff:g> statt <xliff:g id="CURRENT_APP">%2$s</xliff:g> als Standard-App für Telefonie verwenden?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g> als Standard-App für Telefonie verwenden?"</string>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 06ee5ab..af41ee4 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Διαχείριση κλήσεων"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Διαχείριση τηλεφωνικών κλήσεων"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Τηλέφωνο"</string>
     <string name="unknown" msgid="6878797917991465859">"Άγνωστος"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Αναπάντητη κλήση"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Λείπει ο αριθμός αυτόματου τηλεφωνητή"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Δεν έχει αποθηκευτεί αριθμός για τον αυτόματο τηλεφωνητή στην κάρτα SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Προσθήκη αριθμού"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"Αλλαγή της προεπιλεγμένης εφαρμογής Dialer;"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Χρήση της εφαρμογής <xliff:g id="NEW_APP">%1$s</xliff:g> αντί για την εφαρμογή <xliff:g id="CURRENT_APP">%2$s</xliff:g> ως προεπιλεγμένης εφαρμογής Dialer;"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Χρήση της εφαρμογής <xliff:g id="NEW_APP">%s</xliff:g> ως προεπιλεγμένης εφαρμογής Dialer;"</string>
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 0d01605..a7d9e24 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -16,8 +16,8 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Call Management"</string>
-    <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Phone"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Phone Call Management"</string>
+    <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telephone"</string>
     <string name="unknown" msgid="6878797917991465859">"Unknown"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Missed call"</string>
     <string name="notification_missedWorkCallTitle" msgid="6242489980390803090">"Missed work call"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Missing voicemail number"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"No voicemail number is stored on the SIM card."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Add number"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Make <xliff:g id="NEW_APP">%s</xliff:g> your default Phone app?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Set Default"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Cancel"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> will be able to place and control all aspects of calls. Only apps that you trust should be set as the default Phone app."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Blocked numbers"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"You won\'t receive calls or texts from blocked numbers."</string>
-    <string name="block_number" msgid="1101252256321306179">"Add a number"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Unblock <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Unblock"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Block calls and texts from"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Phone number"</string>
-    <string name="block_button" msgid="8822290682524373357">"Block"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Only the device owner can view and manage blocked numbers."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Unblock"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blocking temporarily off"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"When you dial or text an emergency number, blocking is turned off to ensure that emergency services can contact you."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Re-enable now"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> blocked"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> unblocked"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Unable to block emergency number."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> is already blocked."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Using the personal dialler to make the call"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Change default Dialer app?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> as your default dialler app?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Use <xliff:g id="NEW_APP">%s</xliff:g> as your default dialler app?"</string>
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 0d01605..a7d9e24 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -16,8 +16,8 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Call Management"</string>
-    <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Phone"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Phone Call Management"</string>
+    <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telephone"</string>
     <string name="unknown" msgid="6878797917991465859">"Unknown"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Missed call"</string>
     <string name="notification_missedWorkCallTitle" msgid="6242489980390803090">"Missed work call"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Missing voicemail number"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"No voicemail number is stored on the SIM card."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Add number"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Make <xliff:g id="NEW_APP">%s</xliff:g> your default Phone app?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Set Default"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Cancel"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> will be able to place and control all aspects of calls. Only apps that you trust should be set as the default Phone app."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Blocked numbers"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"You won\'t receive calls or texts from blocked numbers."</string>
-    <string name="block_number" msgid="1101252256321306179">"Add a number"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Unblock <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Unblock"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Block calls and texts from"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Phone number"</string>
-    <string name="block_button" msgid="8822290682524373357">"Block"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Only the device owner can view and manage blocked numbers."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Unblock"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blocking temporarily off"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"When you dial or text an emergency number, blocking is turned off to ensure that emergency services can contact you."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Re-enable now"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> blocked"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> unblocked"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Unable to block emergency number."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> is already blocked."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Using the personal dialler to make the call"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Change default Dialer app?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> as your default dialler app?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Use <xliff:g id="NEW_APP">%s</xliff:g> as your default dialler app?"</string>
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 0d01605..a7d9e24 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -16,8 +16,8 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Call Management"</string>
-    <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Phone"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Phone Call Management"</string>
+    <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telephone"</string>
     <string name="unknown" msgid="6878797917991465859">"Unknown"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Missed call"</string>
     <string name="notification_missedWorkCallTitle" msgid="6242489980390803090">"Missed work call"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Missing voicemail number"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"No voicemail number is stored on the SIM card."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Add number"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Make <xliff:g id="NEW_APP">%s</xliff:g> your default Phone app?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Set Default"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Cancel"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> will be able to place and control all aspects of calls. Only apps that you trust should be set as the default Phone app."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Blocked numbers"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"You won\'t receive calls or texts from blocked numbers."</string>
-    <string name="block_number" msgid="1101252256321306179">"Add a number"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Unblock <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Unblock"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Block calls and texts from"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Phone number"</string>
-    <string name="block_button" msgid="8822290682524373357">"Block"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Only the device owner can view and manage blocked numbers."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Unblock"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blocking temporarily off"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"When you dial or text an emergency number, blocking is turned off to ensure that emergency services can contact you."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Re-enable now"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> blocked"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> unblocked"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Unable to block emergency number."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> is already blocked."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Using the personal dialler to make the call"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Change default Dialer app?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> as your default dialler app?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Use <xliff:g id="NEW_APP">%s</xliff:g> as your default dialler app?"</string>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 6768c48..5d6e049 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Administración de llamadas"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Administración de llamadas telefónicas"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Teléfono"</string>
     <string name="unknown" msgid="6878797917991465859">"Desconocida"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Llamada perdida"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Falta el número de correo de voz"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"No hay un número de correo de voz almacenado en la tarjeta SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Agregar número"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"¿Establecer <xliff:g id="NEW_APP">%s</xliff:g> como la app de teléfono predeterminada?"</string>
-    <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> podrá realizar llamadas y controlar todos los aspectos relacionados con ellas. Establece solamente una app de confianza como la app de teléfono predeterminada."</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 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 <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>
-    <string name="block_button" msgid="8822290682524373357">"Bloquear"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Solo el propietario del dispositivo puede ver y administrar los números bloqueados."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Desbloquear"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"El bloqueo se desactivó de forma temporal"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Luego de que llamas o envías un mensaje a un número de emergencia, el bloqueo se desactiva para garantizar que los servicios de emergencia puedan ponerse en contacto contigo."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Volver a habilitar ahora"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> bloqueado"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> desbloqueado"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"No se puede bloquear el número de emergencia."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> ya está bloqueado."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Usando el teléfono personal para realizar la llamada"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"¿Quieres cambiar la aplicación Marcador predeterminada?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"¿Quieres usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como la aplicación de marcado predeterminada?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"¿Quieres usar <xliff:g id="NEW_APP">%s</xliff:g> como la aplicación de marcado predeterminada?"</string>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index f9be28b..ab4a174 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Gestión de llamadas"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Gestión de llamadas del teléfono"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Teléfono"</string>
     <string name="unknown" msgid="6878797917991465859">"Desconocido"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Llamada perdida"</string>
@@ -35,7 +35,7 @@
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Respuestas rápidas"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Editar respuestas rápidas"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
-    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Respuesta rápida"</string>
+    <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Respuestas rápidas"</string>
     <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Mensaje enviado a <xliff:g id="PHONE_NUMBER">%s</xliff:g>"</string>
     <string name="enable_account_preference_title" msgid="2021848090086481720">"Cuentas de llamadas"</string>
     <string name="outgoing_call_not_allowed_user_restriction" msgid="6872406278300131364">"Solo se permiten llamadas de emergencia."</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Falta el número del buzón de voz."</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"No se ha almacenado ningún número de buzón de voz en la tarjeta SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Añadir número"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"¿Quieres que <xliff:g id="NEW_APP">%s</xliff:g> sea tu aplicación de teléfono predeterminada?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Configurar 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> podrá llamar y controlar todo lo relacionado con las llamadas. Te aconsejamos que solo configures una aplicación como predeterminada si es de confianza."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"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>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Bloquear llamadas y mensajes de texto del número"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Número de teléfono"</string>
-    <string name="block_button" msgid="8822290682524373357">"Bloquear"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Solo el propietario del dispositivo puede ver y administrar los números bloqueados."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Desbloquear"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Bloqueo desactivado temporalmente"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Después de llamar o enviar un SMS a un número de emergencias, el bloqueo se desactiva para que los servicios de emergencias puedan contactarte."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Volver a habilitarlo ahora"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> bloqueado"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> desbloqueado"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"No se puede bloquear el número de emergencias."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"El <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> ya está bloqueado."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Utilizando teléfono personal para llamar"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"¿Cambiar el marcador predeterminado?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"¿Quieres utilizar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como marcador predeterminado?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"¿Quieres utilizar <xliff:g id="NEW_APP">%s</xliff:g> como marcador predeterminado?"</string>
 </resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index 506ba31..a567faf 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Kõnehaldus"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Telefonikõnede haldus"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Tundmatu"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Vastamata kõne"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Puudub kõnepostinumber"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM-kaardile pole salvestatud ühtegi kõnepostinumbrit."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Lisa number"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Kas muuta rakendus <xliff:g id="NEW_APP">%s</xliff:g> telefoni vaikerakenduseks?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Määra vaikeseadeks"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Tühista"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"Rakendus <xliff:g id="NEW_APP">%s</xliff:g> saab helistada ja juhtida kõiki kõnede aspekte. Määrake telefoni vaikerakenduseks vaid usaldusväärsed rakendused."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Blokeeritud numbrid"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Te ei saa blokeeritud numbritelt kõnesid ega tekstsõnumeid."</string>
-    <string name="block_number" msgid="1101252256321306179">"Lisa number"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Kas deblokeerida number <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Deblokeeri"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokeeri kõned ja tekstsõnumid numbrilt"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefoninumber"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blokeeri"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Ainult seadme omanik saab blokeeritud numbreid vaadata ja hallata."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Deblokeerimine"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokeerimine on ajutiselt välja lülitatud"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Kui helistate või saadate sõnumi hädaabinumbrile, lülitatakse blokeerimine välja, et hädaabiteenused saaksid teiega ühendust võtta."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Luba kohe uuesti"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"Number <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> on blokeeritud"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Number <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> on deblokeeritud"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Hädaabinumbrit ei saa blokeerida."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"Number <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> on juba blokeeritud."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Helistamiseks kasutatakse isiklikku helistamisprogrammi"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Kas muuta helistamise vaikerakendust?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Kas kasutada rakendust <xliff:g id="NEW_APP">%1$s</xliff:g> rakenduse <xliff:g id="CURRENT_APP">%2$s</xliff:g> asemel helistamise vaikerakendusena?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Kas kasutada rakendust <xliff:g id="NEW_APP">%s</xliff:g> helistamise vaikerakendusena?"</string>
 </resources>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index 7f2ef59..3cf0454 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Deien kudeaketa"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Telefono-deien kudeaketa"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefonoa"</string>
     <string name="unknown" msgid="6878797917991465859">"Ezezaguna"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Dei galdua"</string>
@@ -31,7 +31,7 @@
     <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 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_canned_response_4" msgid="1698989243040062190">"Ezin dut hitz egin. Deitu geroago."</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Erantzun bizkorrak"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Editatu erantzun bizkorrak"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
@@ -39,32 +39,13 @@
     <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Mezua bidali da <xliff:g id="PHONE_NUMBER">%s</xliff:g> zenbakira."</string>
     <string name="enable_account_preference_title" msgid="2021848090086481720">"Deiak egiteko kontuak"</string>
     <string name="outgoing_call_not_allowed_user_restriction" msgid="6872406278300131364">"Larrialdi-deiak bakarrik egin daitezke."</string>
-    <string name="outgoing_call_not_allowed_no_permission" msgid="1996571596464271228">"Aplikazioak deitu ahal izan dezan, telefonoaren eginbidea erabiltzeko baimena behar du."</string>
+    <string name="outgoing_call_not_allowed_no_permission" msgid="1996571596464271228">"Aplikazioak irteerako deiak egin ahal izan ditzan, telefonoaren eginbidea erabiltzeko baimena behar du."</string>
     <string name="outgoing_call_error_no_phone_number_supplied" msgid="1940125199802007505">"Deitzeko, idatzi balio duen zenbaki bat."</string>
     <string name="duplicate_video_call_not_allowed" msgid="3749211605014548386">"Une honetan ezin da deirik gehitu."</string>
     <string name="no_vm_number" msgid="4164780423805688336">"Erantzungailuaren zenbakia falta da"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Ez da erantzungailuaren zenbakirik gorde SIM txartelean."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Gehitu zenbakia"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"<xliff:g id="NEW_APP">%s</xliff:g> telefonoaren aplikazio lehenetsia izatea nahi duzu?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Ezarri lehenetsi gisa"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Utzi"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"Deien aspektu guztiak erabili eta kontrolatu ahal izango ditu <xliff:g id="NEW_APP">%s</xliff:g> aplikazioak. Fidagarriak diren aplikazioak bakarrik erabili beharko lirateke telefonoaren aplikazio lehenetsi gisa."</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 zenbakia"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> desblokeatu?"</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>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefono-zenbakia"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blokeatu"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Gailuaren jabeak soilik ikus eta kudea ditzake blokeatutako zenbakiak."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Desblokeatu"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Aldi baterako desgaitu da blokeatzeko aukera"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Larrialdietarako zenbakia markatu ondoren, edo zenbait horretara testu-mezua bidali ondoren, desaktibatu egingo da blokeatzeko aukera, larrialdi-zerbitzuak zurekin harremanetan jarriko direla ziurtatzeko."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Gaitu berriro"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"Blokeatu da <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g>"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Desblokeatu da <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g>"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Ezin da blokeatu larrialdi-zenbakia."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> blokeatuta dago dagoeneko."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Telefono pertsonala erabiltzen ari zara deia egiteko"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Telefono-aplikazio lehenetsia aldatu nahi duzu?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> aplikazioaren ordez <xliff:g id="NEW_APP">%1$s</xliff:g> erabili nahi duzu telefono-aplikazio lehenetsi gisa?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g> telefono-aplikazio lehenetsi gisa erabili nahi duzu?"</string>
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 78acda1..c2f6ea9 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"مدیریت تماس"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"مدیریت تماس تلفنی"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"تلفن"</string>
     <string name="unknown" msgid="6878797917991465859">"ناشناس"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"تماس بی پاسخ"</string>
@@ -29,7 +29,7 @@
     <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_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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"عدم وجود شماره پست صوتی"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"شماره پست صوتی در سیم کارت ذخیره نشده است."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"افزودن شماره"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"برنامه شماره‌گیر پیش‌فرض تغییر کند؟"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"از <xliff:g id="NEW_APP">%1$s</xliff:g> به جای <xliff:g id="CURRENT_APP">%2$s</xliff:g> به عنوان برنامه شماره‌گیر پیش‌فرض استفاده شود؟"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"از <xliff:g id="NEW_APP">%s</xliff:g> به عنوان برنامه شماره‌گیر پیش‌فرض استفاده شود؟"</string>
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index b810ac5..d318f6b 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Puhelujen hallinta"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Puhelujen hallinta"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Puhelin"</string>
     <string name="unknown" msgid="6878797917991465859">"Tuntematon"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Vastaamatta jäänyt puhelu"</string>
@@ -28,7 +28,7 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Viesti"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Puhelu mykistetty."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Kaiutin käytössä."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"En voi vastata. Mitä asiaa?"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"En voi vastata - mitä asiaa?"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Soitan sinulle pian."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Soitan sinulle myöhemmin."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"En voi vastata. Soitatko myöhemmin?"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Puhelinvastaajan numero puuttuu"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM-kortille ei ole tallennettu puhelinvastaajan numeroa."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Lisää numero"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Valitaanko <xliff:g id="NEW_APP">%s</xliff:g> oletuspuhelinsovellukseksi?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Aseta oletukseksi"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Peruuta"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> voi hallita kaikkia puhelutoimintoja. Aseta oletuspuhelinsovellukseksi vain luotettava sovellus."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Estetyt numerot"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Et voi vastaanottaa puheluita tai tekstiviestejä estetyistä numeroista."</string>
-    <string name="block_number" msgid="1101252256321306179">"Lisää numero"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Kumotaanko numeron <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> esto?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Kumoa esto"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Estä puhelut ja tekstiviestit numerosta"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Puhelinnumero"</string>
-    <string name="block_button" msgid="8822290682524373357">"Estä"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Vain laitteen omistaja voi katsella ja hallinnoida estettyjä numeroita."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Kumoa esto"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Esto on väliaikaisesti pois käytöstä"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Hätänumeroon soittamisen tai tekstiviestin lähettämisen jälkeen esto poistetaan käytöstä, jotta hätäviranomaiset voivat olla yhteydessä sinuun."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Ota nyt uudelleen käyttöön"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> estettiin."</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Numeron <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> esto kumottiin."</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Hätänumeroa ei voi estää."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> on jo estetty."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Puhelun soittaminen henkilökohtaisella numerovalitsimella"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Vaihdetaanko oletuspuhelusovellus?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Asetetaanko oletuspuhelusovellukseksi <xliff:g id="NEW_APP">%1$s</xliff:g> sovelluksen <xliff:g id="CURRENT_APP">%2$s</xliff:g> sijaan?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Asetetaanko <xliff:g id="NEW_APP">%s</xliff:g> oletuspuhelusovellukseksi?"</string>
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index d41cb2d..d88a8ed 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Gestion des appels"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Gestion des appels téléphoniques"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Téléphone"</string>
     <string name="unknown" msgid="6878797917991465859">"Inconnu"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Appel manqué"</string>
@@ -33,7 +33,7 @@
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Je t\'appellerai plus tard."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Peux pas parler. On se rappelle?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Réponses rapides"</string>
-    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Modifier réponses rapides"</string>
+    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Modif. rép. rapides"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
     <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Réponse rapide"</string>
     <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Message envoyé à <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Numéro de messagerie vocale manquant"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Aucun numéro de messagerie vocale n\'est enregistré sur la carte SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Ajouter un numéro"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Définir <xliff:g id="NEW_APP">%s</xliff:g> comme votre application de téléphonie par défaut?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Définir comme application de téléphonie par défaut"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Annuler"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> sera en mesure de passer des appels et de contrôler tous les aspects des appels. Seules les applications auxquelles vous avez confiance doivent être définies comme l\'application de téléphonie par défaut."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Numéros bloqués"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Vous ne recevrez pas d\'appels ni de messages texte provenant des numéros bloqués."</string>
-    <string name="block_number" msgid="1101252256321306179">"Ajouter un numéro"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Débloquer <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Débloquer"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Bloquer les appels et les textos de"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Numéro de téléphone"</string>
-    <string name="block_button" msgid="8822290682524373357">"Bloquer"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Seul le propriétaire de l\'appareil peut afficher et gérer les numéros bloqués."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Débloquer"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Le blocage est temporairement désactivé"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Lorsque vous communiquez avec les services d\'urgence par téléphone ou par message texte, la fonctionnalité de blocage est désactivée pour que ceux-ci puissent vous joindre."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Réactiver le blocage maintenant"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"Le numéro <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> a été bloqué."</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Le numéro <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> a été débloqué."</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Impossible de bloquer le numéro d\'urgence."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"Le numéro <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> a déjà été bloqué."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Utilisation du clavier personnel pour faire l\'appel…"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Changer l\'application de composition par défaut?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Utiliser <xliff:g id="NEW_APP">%1$s</xliff:g> au lieu de <xliff:g id="CURRENT_APP">%2$s</xliff:g> comme application de composition par défaut?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Utiliser <xliff:g id="NEW_APP">%s</xliff:g> comme application de composition par défaut?"</string>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 57df3d0..9962c6e 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Gestion des appels"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Gestion des appels téléphoniques"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Téléphone"</string>
     <string name="unknown" msgid="6878797917991465859">"Inconnu"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Appel manqué"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Numéro de messagerie vocale manquant"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Aucun numéro de messagerie vocale n\'est enregistré sur la carte SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Ajouter un numéro"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Définir <xliff:g id="NEW_APP">%s</xliff:g> comme application de téléphone par défaut ?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Définir l\'application par défaut"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Annuler"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> sera en mesure de passer des appels et d\'en contrôler tous les détails. Ne définissez qu\'une application de confiance comme application de téléphone par défaut."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Numéros bloqués"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Vous ne recevrez plus les appels ni les SMS émis depuis les numéros bloqués."</string>
-    <string name="block_number" msgid="1101252256321306179">"Ajouter un numéro"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Débloquer <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> ?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Débloquer"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Bloquer les appels et les SMS de"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Numéro de téléphone"</string>
-    <string name="block_button" msgid="8822290682524373357">"Bloquer"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Seul le propriétaire de l\'appareil peut afficher et gérer les numéros bloqués."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Débloquer"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Le blocage est temporairement désactivé."</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Si vous composez un numéro d\'urgence ou que vous envoyez un SMS à ce type de numéro, le blocage est désactivé pour que les services d\'urgence puissent vous contacter."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Réactiver"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> bloqué"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> débloqué"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Vous ne pouvez pas bloquer un numéro d\'urgence."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"Le numéro \"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g>\" est déjà bloqué."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Utilisation du clavier personnel pour passer l\'appel…"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Modifier l\'application de clavier par défaut ?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Utiliser <xliff:g id="NEW_APP">%1$s</xliff:g> et non plus <xliff:g id="CURRENT_APP">%2$s</xliff:g> comme application de clavier par défaut ?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Utiliser <xliff:g id="NEW_APP">%s</xliff:g> comme application de clavier par défaut ?"</string>
 </resources>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index c6786c2..ef36d3a 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Xestión de chamadas"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Xestión de chamadas do teléfono"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Teléfono"</string>
     <string name="unknown" msgid="6878797917991465859">"Descoñecido"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Chamada perdida"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Falta o número de correo de voz"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Non hai ningún número de correo de voz almacenado na tarxeta SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Engadir número"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Establecer <xliff:g id="NEW_APP">%s</xliff:g> como aplicación de teléfono predeterminada?"</string>
-    <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="blocked_numbers" msgid="2751843139572970579">"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>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Bloquear chamadas e mensaxes do"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Número de teléfono"</string>
-    <string name="block_button" msgid="8822290682524373357">"Bloquear"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Só o propietario do dispositivo pode ver e xestionar os números bloqueados."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Desbloquear"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"O bloqueo desactivouse temporalmente"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Despois de facer unha chamada ou enviar unha mensaxe a un número de emerxencia, desactívase o bloqueo para garantir que os servizos de emerxencia poidan poñerse en contacto contigo."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Volver activar agora"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"Bloqueouse o <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g>"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Desbloqueouse o <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g>"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Non se pode bloquear o número de emerxencia."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"O <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> xa está bloqueado."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Usando o marcador persoal para facer a chamada"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Queres cambiar a aplicación predeterminada do marcador?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Queres usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como a túa aplicación de marcador predeterminada?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Queres usar <xliff:g id="NEW_APP">%s</xliff:g> como a túa aplicación de marcador predeterminada?"</string>
 </resources>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index afaebe4..f5db5ce 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"કૉલ સંચાલન"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"ફોન કૉલ સંચાલન"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"ફોન"</string>
     <string name="unknown" msgid="6878797917991465859">"અજાણ્યું"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"છૂટેલો કૉલ"</string>
@@ -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>
@@ -39,32 +39,13 @@
     <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"<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>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM કાર્ડ પર કોઈ વૉઇસમેઇલ નંબર સંગ્રહિત નથી."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"નંબર ઉમેરો"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"ડિફોલ્ટ ડાયલર એપ્લિકેશન બદલીએ?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"તમારી ડિફોલ્ટ ડાયલર એપ્લિકેશન તરીકે <xliff:g id="CURRENT_APP">%2$s</xliff:g> ને બદલે <xliff:g id="NEW_APP">%1$s</xliff:g> નો ઉપયોગ કરીએ?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"તમારી ડિફોલ્ટ ડાયલર એપ્લિકેશન તરીકે <xliff:g id="NEW_APP">%s</xliff:g> નો ઉપયોગ કરીએ?"</string>
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 874712d..463cdc4 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"कॉल प्रबंधन"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"फ़ोन कॉल प्रबंधन"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"फ़ोन"</string>
     <string name="unknown" msgid="6878797917991465859">"अज्ञात"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"छूटी कॉल"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"गुम वॉयस मेल नंबर"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"सिम कार्ड पर कोई वॉयस मेल नंबर संग्रहीत नहीं है."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"नंबर जोड़ें"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"डिफ़ॉल्‍ट डायलर ऐप को बदलें?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"अपने डिफ़ॉल्‍ट डायलर ऐप के रूप में <xliff:g id="CURRENT_APP">%2$s</xliff:g> के बजाय <xliff:g id="NEW_APP">%1$s</xliff:g> का उपयोग करें?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"अपने डिफ़ॉल्‍ट डायलर ऐप के रूप में <xliff:g id="NEW_APP">%s</xliff:g> का उपयोग करें?"</string>
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 86e06ed..5022e7e 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Upravljanje pozivom"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Upravljanje telefonskim pozivima"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Nepoznato"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Propušteni poziv"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Nedostaje broj govorne pošte"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Na SIM kartici nije spremljen broj govorne pošte."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Dodaj broj"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Želite li postaviti <xliff:g id="NEW_APP">%s</xliff:g> kao zadanu aplikaciju telefona?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Postavi zadano"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Odustani"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> će moći uspostaviti poziv i upravljati svim njegovim aspektima. Kao zadanu aplikaciju telefona postavite samo aplikaciju koju smatrate pouzdanom."</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">"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">"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>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Deblokiranje"</string>
-    <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> 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>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Za upućivanje poziva upotrebljava se osobni program za biranje"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Želite li promijeniti zadanu aplikaciju brojčanika?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Želite li upotrebljavati <xliff:g id="NEW_APP">%1$s</xliff:g> umjesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> kao zadanu aplikaciju brojčanika?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Želite li upotrebljavati <xliff:g id="NEW_APP">%s</xliff:g> kao zadanu aplikaciju brojčanika?"</string>
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 6266e54..ab39a81 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Híváskezelés"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Híváskezelés"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Ismeretlen"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Nem fogadott hívás"</string>
@@ -29,9 +29,9 @@
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Hívás némítva."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Kihangosítás engedélyezve."</string>
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Most nem alkalmas. Mi újság?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Hamarosan visszahívlak."</string>
-    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Később visszahívlak."</string>
-    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Most nem alkalmas. Hívnál később?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Hamarosan visszahívom."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Később visszahívom."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Most nem alkalmas. Hívna később?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Gyors válaszok"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Gyors válaszok szerkesztése"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Hiányzik a hangposta száma"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Nincs hangpostaszám a SIM kártyán."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Szám hozzáadása"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Beállítja a(z) <xliff:g id="NEW_APP">%s</xliff:g> alkalmazást alapértelmezettként?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Beállítás alapértelmezettként"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Mégse"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> jogosult lesz hívások indítására és a hívásokkal kapcsolatos minden beállítás vezérlésére. Csak megbízható alkalmazást állítson be alapértelmezett telefonalkalmazásként."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Letiltott számok"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"A jövőben nem kap hívásokat vagy SMS-eket a letiltott számokról."</string>
-    <string name="block_number" msgid="1101252256321306179">"Szám hozzáadása"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Feloldja a következő szám letiltását: <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Letiltás feloldása"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"A következő számról érkező hívások és SMS-ek letiltása:"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonszám"</string>
-    <string name="block_button" msgid="8822290682524373357">"Letiltás"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Csak az eszköz tulajdonosa nézheti meg és kezelheti a letiltott számokat."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Letiltás feloldása"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"A tiltás átmenetileg felfüggesztve"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Ha segélyhívószámot tárcsáz, vagy segélyhívószámra küld SMS-t, a rendszer feloldja a tiltást, hogy a sürgősségi szolgáltatások felvehessék Önnel a kapcsolatot."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Újbóli engedélyezés most"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> letiltva"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> letiltása feloldva"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Nem sikerült letiltani a segélyhívószámot."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"A következő szám már le van tiltva: <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g>."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Hívás indítása a személyes tárcsázóval"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Módosítja az alapértelmezett tárcsázó alkalmazást?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Legyen a(z) <xliff:g id="NEW_APP">%1$s</xliff:g> az alapértelmezett tárcsázó alkalmazás a(z) <xliff:g id="CURRENT_APP">%2$s</xliff:g> helyett?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Legyen a(z) <xliff:g id="NEW_APP">%s</xliff:g> az alapértelmezett tárcsázó alkalmazás?"</string>
 </resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index 7c6d12b..56773ea 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Զանգերի կառավարում"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Հեռախոսային զանգերի կառավարում"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Հեռախոս"</string>
     <string name="unknown" msgid="6878797917991465859">"Անհայտ"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Բաց թողնված զանգ"</string>
@@ -30,8 +30,8 @@
     <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_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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Բացակայում է ձայնային փոստի համարը"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM քարտում ձայնային փոստի ոչ մի համար գրանցված չէ:"</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Ավելացնել համար"</string>
-    <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="blocked_numbers" msgid="2751843139572970579">"Արգելափակված համարներ"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Արգելափակված համարներից զանգեր կամ SMS–ներ չեք ստանա:"</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_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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"Փոխե՞լ կանխադրված Համարհավաքի հավելվածը:"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Օգտագործե՞լ <xliff:g id="NEW_APP">%1$s</xliff:g> հավելվածը <xliff:g id="CURRENT_APP">%2$s</xliff:g>-ի փոխարեն որպես համարհավաքի կանխադրված հավելված:"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Դարձնե՞լ <xliff:g id="NEW_APP">%s</xliff:g> հավելվածը համարհավաքի կանխադրված հավելված:"</string>
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 780c94b..d8f823f 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Pengelolaan Panggilan Telepon"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Pengelolaan Panggilan Telepon"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telepon"</string>
     <string name="unknown" msgid="6878797917991465859">"Tidak diketahui"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Panggilan tak terjawab"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Nomor kotak pesan hilang"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Tidak ada nomor kotak pesan tersimpan pada kartu SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Tambahkan nomor"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Jadikan <xliff:g id="NEW_APP">%s</xliff:g> sebagai aplikasi Telepon default?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Setel Default"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Batal"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> dapat melakukan panggilan dan mengontrol semua aspek panggilan. Hanya aplikasi yang Anda percaya boleh disetel sebagai aplikasi Telepon default."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Nomor yang diblokir"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Anda tidak akan menerima telepon atau SMS dari nomor yang diblokir."</string>
-    <string name="block_number" msgid="1101252256321306179">"Tambah nomor"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Batalkan pemblokiran <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Batalkan pemblokiran"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokir panggilan telepon dan SMS dari"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Nomor telepon"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blokir"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Hanya pemilik perangkat yang dapat melihat dan mengelola nomor yang diblokir."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Bebaskan"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokir dinonaktifkan sementara"</string>
-    <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> 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>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Ubah aplikasi Pemanggil default?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g>, bukan <xliff:g id="CURRENT_APP">%2$s</xliff:g> sebagai aplikasi pemanggil default?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Gunakan <xliff:g id="NEW_APP">%s</xliff:g> sebagai aplikasi pemanggil default?"</string>
 </resources>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index bc43950..56610c5 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Símtalastjórnun"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Símtalastjórnun"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Sími"</string>
     <string name="unknown" msgid="6878797917991465859">"Óþekkt"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Ósvarað símtal"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Talhólfsnúmer vantar"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Ekkert talhólfsnúmer er vistað á SIM-kortinu."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Bæta númeri við"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Gera <xliff:g id="NEW_APP">%s</xliff:g> að sjálfgefnu símaforriti?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Velja sem sjálfgefið"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Hætta við"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> getur framkvæmt og stjórnað öllu sem tengist símtölum. Einungis forrit sem þú treystir ættu að vera stillt sem sjálfgefið símaforrit."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Númer á bannlista"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Þú færð ekki símtöl eða skilaboð frá númerum á bannlista."</string>
-    <string name="block_number" msgid="1101252256321306179">"Bæta við númeri"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Taka <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> af bannlista?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Taka af bannlista"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Loka fyrir símtöl og skilaboð frá"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Símanúmer"</string>
-    <string name="block_button" msgid="8822290682524373357">"Setja á bannlista"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Aðeins eigandi tækisins getur skoðað og stjórnað númerum á bannlista."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Taka af bannlista"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Slökkt tímabundið á lokun símtala"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Eftir að þú hefur hringt eða sent skilaboð í neyðarnúmer verður slökkt á lokun símtala til að tryggja að neyðarþjónusta geti haft samband við þig."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Kveikja aftur núna"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> á bannlista"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> ekki á bannlista"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Getur ekki sett neyðarnúmer á bannlista."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> er nú þegar á bannlista."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Notar eigin símaforrit til að hringja"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Viltu skipta um sjálfgefið hringiforrit?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Nota <xliff:g id="NEW_APP">%1$s</xliff:g> í stað <xliff:g id="CURRENT_APP">%2$s</xliff:g> sem sjálfgefið hringiforrit?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Nota <xliff:g id="NEW_APP">%s</xliff:g> sem sjálfgefið hringiforrit?"</string>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 716f765..47c5a1b 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Gestione chiamate"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Phone Call Management"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefono"</string>
     <string name="unknown" msgid="6878797917991465859">"Sconosciuto"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Chiamata senza risposta"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Numero segreteria mancante"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Nessun numero di segreteria presente nella SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Aggiungi numero"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Rendere <xliff:g id="NEW_APP">%s</xliff:g> l\'app predefinita del tuo telefono?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Imposta come predefinita"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Annulla"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> potrà effettuare e controllare tutti gli aspetti delle chiamate. L\'app predefinita del telefono dovrebbe essere un\'app di cui ti fidi."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Numeri bloccati"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Non riceverai chiamate o SMS da numeri bloccati."</string>
-    <string name="block_number" msgid="1101252256321306179">"Aggiungi un numero"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Sbloccare <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Sblocca"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blocca chiamate e SMS da"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Numero di telefono"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blocca"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Soltanto il proprietario del dispositivo può visualizzare e gestire i numeri bloccati."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Sblocca"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blocco temporaneamente disattivato"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Dopo aver chiamato o inviato un SMS a un numero di emergenza, il blocco viene disattivato per garantire che i servizi di emergenza possano contattarti."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Riattiva ora"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> bloccato"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> sbloccato"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Impossibile bloccare un numero di emergenza."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> è già bloccato."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Utilizzo dell\'app Telefono personale per chiamare"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Modificare l\'app tastiera predefinita?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Utilizzare <xliff:g id="NEW_APP">%1$s</xliff:g> invece di <xliff:g id="CURRENT_APP">%2$s</xliff:g> come app tastiera predefinita?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Utilizzare <xliff:g id="NEW_APP">%s</xliff:g> come app tastiera predefinita?"</string>
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index a730121..af490ca 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"ניהול השיחות"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"ניהול שיחות טלפון"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"טלפון"</string>
     <string name="unknown" msgid="6878797917991465859">"לא ידוע"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"שיחה שלא נענתה"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"חסר מספר של דואר קולי"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"‏בכרטיס ה-SIM לא מאוחסן מספר של דואר קולי."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"הוסף מספר"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"האם לשנות את אפליקציית החייגן שבברירת מחדל?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"האם להשתמש ב-<xliff:g id="NEW_APP">%1$s</xliff:g> במקום ב-<xliff:g id="CURRENT_APP">%2$s</xliff:g> כאפליקציית החייגן שבברירת מחדל?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"האם להשתמש ב-<xliff:g id="NEW_APP">%s</xliff:g> כאפליקציית החייגן שבברירת מחדל?"</string>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 256d926..07e9c9f 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"通話管理"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"通話管理"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"電話"</string>
     <string name="unknown" msgid="6878797917991465859">"通知不可能"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"不在着信"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"ボイスメール番号がありません"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIMカードにボイスメールの番号がありません。"</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"番号を追加"</string>
-    <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="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="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="blocked_numbers_butter_bar_title" msgid="438170866438793182">"ブロックが一時的に OFF になっています"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"緊急通報番号に電話をかけたり、テキスト メッセージを送信したりすると、ブロックが OFF になり、緊急通報受理機関からの通話を着信できるようになります。"</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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"既定の電話アプリを変更しますか？"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="NEW_APP">%1$s</xliff:g>を<xliff:g id="CURRENT_APP">%2$s</xliff:g>の代わりに既定の電話アプリとして使用しますか？"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g>を既定の電話アプリとして使用しますか？"</string>
 </resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index 1e48ae1..b8986a2 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"ზარების მართვა"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"ტელეფონის ზარების მართვა"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"ტელეფონი"</string>
     <string name="unknown" msgid="6878797917991465859">"უცნობი"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"გამოტოვებული ზარი"</string>
@@ -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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"ხმოვანი ფოსტის ნომერი არ არის"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM ბარათზე ხმოვანი ფოსტის ნომერი შენახული არ არის."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"ნომრის დამატება"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"გსურთ ამკრეფის ნაგულისხმევი აპის შეცვლა?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"გსურთ ამკრეფის ნაგულისხმევ აპად <xliff:g id="CURRENT_APP">%2$s</xliff:g>-ის ნაცვლად <xliff:g id="NEW_APP">%1$s</xliff:g>-ის გამოყენება?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"გსურთ, გამოიყენოთ <xliff:g id="NEW_APP">%s</xliff:g>, როგორც ამკრეფის ნაგულისხმევი აპი?"</string>
 </resources>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index 5a49e4d..baf6ef7 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Қоңырауды басқару"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Телефон қоңырауларын басқару"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Телефон"</string>
     <string name="unknown" msgid="6878797917991465859">"Белгісіз"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Қабылданбаған қоңырау"</string>
@@ -29,7 +29,7 @@
     <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_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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Дауыс хабарының нөмірі жоқ"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM картасында ешқандай дауыс хабарының нөмірі сақталмаған."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Нөмір қосу"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"Әдепкі нөмір тергіш қолданбаны өзгерткіңіз келе ме?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> орнына <xliff:g id="NEW_APP">%1$s</xliff:g> қолданбасын әдепкі тергіш қолданба ретінде пайдалану қажет пе?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g> қолданбасын әдепкі нөмір тергіш қолданба ретінде пайдалану қажет пе?"</string>
 </resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index f3fa21b..39cbf3d 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"គ្រប់គ្រងការហៅ"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"ការគ្រប់គ្រងការហៅទូរស័ព្ទ"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"ទូរស័ព្ទ"</string>
     <string name="unknown" msgid="6878797917991465859">"មិន​ស្គាល់"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"ខកខាន​ទទួល"</string>
@@ -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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"បាត់​​ចំនួន​​សារ​ជា​សំឡេង"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"គ្មាន​ចំនួន​សារ​ជា​សំឡេង​​ត្រូវ​បាន​រក្សា​ទុក​នៅ​លើ​ស៊ី​ម​កាត​ទេ​។"</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"បន្ថែម​លេខ"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"ប្តូរកម្មវិធីហៅទូរស័ព្ទលំនាំដើម?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"ប្រើ <xliff:g id="NEW_APP">%1$s</xliff:g> ជំនួសឲ្យ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ជាកម្មវិធីហៅទូរស័ព្ទលំនាំដើមរបស់អ្នក?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"ប្រើ <xliff:g id="NEW_APP">%s</xliff:g> ជាកម្មវិធីហៅទូរស័ព្ទលំនាំដើមរបស់អ្នក?"</string>
 </resources>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 86834d9..60f8caa 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -16,9 +16,9 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"ಕರೆ ನಿರ್ವಹಣೆ"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"ಫೋನ್ ಕರೆ ನಿರ್ವಹಣೆ"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"ಫೋನ್"</string>
-    <string name="unknown" msgid="6878797917991465859">"ಅಪರಿಚಿತ"</string>
+    <string name="unknown" msgid="6878797917991465859">"ಅಜ್ಞಾತ"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"ಮಿಸ್ಡ್‌ ಕಾಲ್‌"</string>
     <string name="notification_missedWorkCallTitle" msgid="6242489980390803090">"ಮಿಸ್ಡ್‌ ಕೆಲಸದ ಕರೆ"</string>
     <string name="notification_missedCallsTitle" msgid="1361677948941502522">"ತಪ್ಪಿದ ಕರೆಗಳು"</string>
@@ -33,7 +33,7 @@
     <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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"ಧ್ವನಿಮೇಲ್‌ ಸಂಖ್ಯೆಯು ಕಾಣೆಯಾಗಿದೆ"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"ಸಿಮ್‌ ಕಾರ್ಡ್‌ನಲ್ಲಿ ಯಾವುದೇ ಧ್ವನಿಮೇಲ್‌ ಸಂಖ್ಯೆಯನ್ನು ಸಂಗ್ರಹಿಸಿಲ್ಲ."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"ಸಂಖ್ಯೆಯನ್ನು ಸೇರಿಸಿ"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"ಡೀಫಾಲ್ಟ್ ಡಯಲರ್ ಅಪ್ಲಿಕೇಶನ್ ಬದಲಾಯಿಸುವುದೇ?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> ಬದಲಿಗೆ <xliff:g id="NEW_APP">%1$s</xliff:g> ಅನ್ನು ನಿಮ್ಮ ಡೀಫಾಲ್ಟ್ ಡಯಲರ್ ಅಪ್ಲಿಕೇಶನ್ ಆಗಿ ಬಳಸುವುದೇ?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g> ಅನ್ನು ನಿಮ್ಮ ಡೀಫಾಲ್ಟ್ ಡಯಲರ್ ಅಪ್ಲಿಕೇಶನ್ ಆಗಿ ಬಳಸುವುದೇ?"</string>
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 9cf688a..4c51e98 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"통화 관리"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"통화 관리"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"전화"</string>
     <string name="unknown" msgid="6878797917991465859">"알 수 없음"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"부재중 전화"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"음성사서함 번호 없음"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM 카드에 저장된 음성사서함 번호가 없습니다."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"번호 추가"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"기본 다이얼러 앱을 변경하시겠습니까?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> 대신 <xliff:g id="NEW_APP">%1$s</xliff:g>을(를) 기본 다이얼러 앱으로 사용하시겠습니까?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g>을(를) 기본 다이얼러 앱으로 사용하시겠습니까?"</string>
 </resources>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index 31d81df..c805165 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Чалууларды башкаруу"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Телефон чалууларын башкаруу"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Телефон"</string>
     <string name="unknown" msgid="6878797917991465859">"Белгисиз"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Кабыл алынбаган чалуу"</string>
@@ -31,7 +31,7 @@
     <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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Үн почтасынын номери жок болуп жатат"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM-картада сакталган үн почтасынын номери жок."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Номер кошуу"</string>
-    <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="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">"Төмөнкү номерден келген чалуулар менен SMS билдирүүлөрүн бөгөттөө"</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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"Демейки номер тергич колдонмо өзгөрүлсүнбү?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Демейки номер тергич колдонмо катары мурунку <xliff:g id="CURRENT_APP">%2$s</xliff:g> колдонмонун ордуна <xliff:g id="NEW_APP">%1$s</xliff:g> бул колдонмо колдонулсунбу?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Демейки номер тергич колдонмо катары <xliff:g id="NEW_APP">%s</xliff:g> колдонулсунбу?"</string>
 </resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index adc0d1a..02eda11 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"ການຈັດການການໂທ"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"ການ​ຈັດ​ການການ​ໂທລະ​ສັບ"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"ໂທລະສັບ"</string>
     <string name="unknown" msgid="6878797917991465859">"ບໍ່ຮູ້ຈັກ"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"ສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"ບໍ່ມີເບີຂໍ້ຄວາມສຽງ"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"ບໍ່ມີເບີຂໍ້ຄວາມສຽງຖືກບັນທຶກໃນ SIM card."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"ເພີ່ມໝາຍເລກ"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"ປ່ຽນ​ແປງ​ແອັບ​ແຜ່ນ​ກົດ​ມາດ​ຕະ​ຖານ?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"ໃຊ້ <xliff:g id="NEW_APP">%1$s</xliff:g> ແທນ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ເປັນ​ແອັບ​ແຜ່ນ​ກົດ​ມາດ​ຕະ​ຖານ​ຂອງ​ທ່ານ?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"ໃຊ້ <xliff:g id="NEW_APP">%s</xliff:g> ເປັນ​ແອັບ​ແຜ່ນ​ກົດ​ມາດ​ຕະ​ຖານ​ຂອງ​ທ່ານ?"</string>
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 00bc892..c801acd 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Skambučių tvarkymas"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Telefono skambučių tvarkymas"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefonas"</string>
     <string name="unknown" msgid="6878797917991465859">"Nežinomas"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Praleistas skambutis"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Trūksta balso pašto numerio"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM kortelėje nėra išsaugoto balso pašto numerio."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Pridėti numerį"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Nustatyti „<xliff:g id="NEW_APP">%s</xliff:g>“ kaip numatytąją telefono programą?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Nustatyti numatytuosius nustatymus"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Atšaukti"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"„<xliff:g id="NEW_APP">%s</xliff:g>“ galės atlikti ir valdyti įvairius skambučius. Tik patikimą programą turėtumėte nustatyti kaip numatytąją telefono programą."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Užblokuoti numeriai"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Negausite skambučių ar teksto pranešimų iš užblokuotų numerių."</string>
-    <string name="block_number" msgid="1101252256321306179">"Pridėti numerį"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Panaikinti <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> blokavimą?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Atblokuoti"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokuoti skambučius ir teksto pranešimus nuo"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefono numeris"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blokuoti"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Tik įrenginio savininkas gali peržiūrėti ir tvarkyti užblokuotus numerius."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Panaikinti blokavimą"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokavimo funkcija laikinai išjungta"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Surinkus pagalbos numerį ar išsiuntus juo pranešimą blokavimo funkcija išjungiama, siekiant užtikrinti, kad pagalbos tarnybos galėtų su jumis susisiekti."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Dabar įgalinti iš naujo"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> užblokuotas"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> blokavimas panaikintas"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Negalima užblokuoti pagalbos numerio."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> jau užblokuotas."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Asmeninio numerio rinkiklio naudojimas skambinant"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Pakeisti numatytąją numerio rinkiklio programą?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Naudoti „<xliff:g id="NEW_APP">%1$s</xliff:g>“ vietoje „<xliff:g id="CURRENT_APP">%2$s</xliff:g>“ kaip numatytąją numerio rinkiklio programą?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Naudoti „<xliff:g id="NEW_APP">%s</xliff:g>“ kaip numatytąją numerio rinkiklio programą?"</string>
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 2238f9d..8f86db9 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Zvanu pārvaldība"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Tālruņa zvanu pārvaldība"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Tālrunis"</string>
     <string name="unknown" msgid="6878797917991465859">"Nezināms"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Neatbildēts zvans"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Trūkst balss pasta numura"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM kartē neviens balss pasta numurs nav saglabāts."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Pievienot numuru"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Vai iestatīt <xliff:g id="NEW_APP">%s</xliff:g> kā tālruņa noklusējuma lietotni?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Iestatīt kā noklusējumu"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Atcelt"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"Lietotne <xliff:g id="NEW_APP">%s</xliff:g> varēs veikt zvanus un kontrolēt visas zvanu funkcijas. Tālruņa noklusējuma lietotnes iestatīšanai izmantojiet tikai uzticamas lietotnes."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Bloķētie numuri"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Jūs nesaņemsiet zvanus vai īsziņas no bloķētajiem numuriem."</string>
-    <string name="block_number" msgid="1101252256321306179">"Pievienot numuru"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Vai atbloķēt numuru <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Atbloķēt"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Bloķēt ienākošos zvanus un īsziņas no numura"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Tālruņa numurs"</string>
-    <string name="block_button" msgid="8822290682524373357">"Bloķēt"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Tikai ierīces īpašnieks var skatīt un pārvaldīt bloķētos numurus."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Atbloķēt"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Bloķēšana īslaicīgi izslēgta"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Pēc avārijas dienesta numura sastādīšanas vai īsziņas sūtīšanas uz to tiek izslēgta bloķēšana, lai avārijas dienesti varētu ar jums sazināties."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Atkārtoti iespējot tūlīt"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> bloķēts"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> atbloķēts"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Ārkārtas numuru nevar bloķēt."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> jau ir bloķēts."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Zvans tiek veikts, izmantojot personisko numura sastādītāju"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Vai mainīt numura sastādītāja noklusējuma lietotni?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Vai lietotnes <xliff:g id="CURRENT_APP">%2$s</xliff:g> vietā izmantot <xliff:g id="NEW_APP">%1$s</xliff:g> kā numura sastādītāja noklusējuma lietotni?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Vai izmantot <xliff:g id="NEW_APP">%s</xliff:g> kā numura sastādītāja noklusējuma lietotni?"</string>
 </resources>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index bc47335..6ce21c0 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Управување со повик"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Управување со телефонски повици"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Телефон"</string>
     <string name="unknown" msgid="6878797917991465859">"Непознато"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Пропуштен повик"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Недостасува број на говорна пошта"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Нема мемориран број на говорна пошта на СИМ картичката."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Додај број"</string>
-    <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="blocked_numbers" msgid="2751843139572970579">"Блокирани броеви"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Нема да добивате повици или SMS од блокирани броеви."</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_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="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Блокирањето е привремено исклучено"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Откако ќе повикате или ќе испратите SMS на број за итни случаи, блокирањето се исклучува за да може да ве контактираат службите за итни случаи."</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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"Смени ја стандардната апликација Бирач?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Користи <xliff:g id="NEW_APP">%1$s</xliff:g> наместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> како стандардна апликација за бирање?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Користи <xliff:g id="NEW_APP">%s</xliff:g> како стандардна апликација за бирање?"</string>
 </resources>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index d16e447..e51f662 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"കോൾ മാനേജുമെന്റ്"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"ഫോൺ കോൾ മാനേജ്‌മെന്റ്"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"ഫോണ്‍"</string>
     <string name="unknown" msgid="6878797917991465859">"അജ്ഞാതം"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"മിസ്‌ഡ് കോൾ"</string>
@@ -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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"വോയ്‌സ്മെയിൽ നമ്പർ കാണുന്നില്ല"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"സിം കാർഡിൽ വോയ്‌സ്‌മെയിൽ നമ്പറൊന്നും സംഭരിച്ചിട്ടില്ല."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"നമ്പർ ചേർക്കുക"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"സ്ഥിര ഡയലർ ആപ്പ് മാറ്റണോ?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> എന്നതിനുപകരം <xliff:g id="NEW_APP">%1$s</xliff:g> എന്നതിനെ നിങ്ങളുടെ സ്ഥിര ഡയലർ ആപ്പ് ആയി ഉപയോഗിക്കണോ?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g> എന്നതിനെ നിങ്ങളുടെ സ്ഥിര ഡയലർ ആപ്പ് ആയി ഉപയോഗിക്കണോ?"</string>
 </resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index 8e0b39b..12a17aa 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Дуудлагын удирдлага"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Гар утасны Дуудлагын Удирдлага"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Утас"</string>
     <string name="unknown" msgid="6878797917991465859">"Тодорхойгүй"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Аваагүй дуудлага"</string>
@@ -25,15 +25,15 @@
     <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>
     <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Буцааж залгах"</string>
-    <string name="notification_missedCall_message" msgid="3049928912736917988">"Мессэж"</string>
+    <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_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_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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Дуут шуудангийн дугаар байхгүй"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM карт дээр дуут шуудангийн дугаар хадгалагдаагүй байна."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Дугаар нэмэх"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"Үндсэн залгагч апп-ыг өөрчлөх үү?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="NEW_APP">%1$s</xliff:g>-ыг <xliff:g id="CURRENT_APP">%2$s</xliff:g>-ын оронд таны үндсэн залгагч апп болгон тохируулах уу?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g>-ыг таны үндсэн залгагч апп болгон тохируулах уу?"</string>
 </resources>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index a4f55fb..6c9a25d 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"कॉल व्यवस्थापन"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"फोन कॉल व्यवस्थापन"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"फोन"</string>
     <string name="unknown" msgid="6878797917991465859">"अज्ञात"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"सुटलेला कॉल"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"व्हॉइसमेल नंबर गहाळ"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"सिम कार्डवर कोणताही व्हॉइसमेल नंबर संचयित केला नाही."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"नंबर जोडा"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"डीफॉल्ट डायलर अॅप बदलायचा?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"आपला डीफॉल्ट डायलर अॅप म्हणून <xliff:g id="CURRENT_APP">%2$s</xliff:g> ऐवजी <xliff:g id="NEW_APP">%1$s</xliff:g> वापरायचा?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"आपला डीफॉल्ट डायलर अॅप म्हणून <xliff:g id="NEW_APP">%s</xliff:g> वापरायचा?"</string>
 </resources>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index 208dcb1..0504627 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Pengurusan Panggilan"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Pengurusan Panggilan Telefon"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Tidak diketahui"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Panggilan tidak dijawab"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Nombor mel suara tiada"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Tidak ada nombor mel suara disimpan pada kad SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Tambah nombor"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Jadikan <xliff:g id="NEW_APP">%s</xliff:g> apl Telefon lalai anda?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Tetapkan Lalai"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Batal"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> akan dapat membuat dan mengawal semua aspek panggilan. Hanya apl yang anda percayai sahaja yang seharusnya ditetapkan sebagai apl Telefon lalai."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Nombor yang disekat"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Anda tidak akan menerima panggilan atau teks daripada nombor yang disekat."</string>
-    <string name="block_number" msgid="1101252256321306179">"Tambahkan nombor"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Nyahsekat <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Nyahsekat"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Sekat panggilan dan teks daripada"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Nombor telefon"</string>
-    <string name="block_button" msgid="8822290682524373357">"Sekat"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Hanya pemilik peranti boleh melihat dan menguruskan nombor yang disekat."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Nyahsekat"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Sekatan dimatikan untuk sementara waktu"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Sekatan dimatikan selepas anda mendail atau menghantar teks kepada nombor kecemasan untuk memastikan perkhidmatan kecemasan dapat menghubungi anda."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Dayakan semula sekarang"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> disekat"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> dinyahsekat"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Tidak dapat menyekat nombor kecemasan."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> sudah disekat."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Menggunakan pendail peribadi untuk membuat panggilan"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Tukar apl Pendail lalai?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> dan bukannya <xliff:g id="CURRENT_APP">%2$s</xliff:g> sebagai apl pendail lalai anda?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Gunakan <xliff:g id="NEW_APP">%s</xliff:g> sebagai apl pendail lalai anda?"</string>
 </resources>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index da191da..5db1d5b 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"ခေါ်ဆိုမှုစီမံခန့်ခွဲရေး"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"ဖုန်းခေါ်ဆိုခြင်း စီမံမှု"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"ဖုန်း"</string>
     <string name="unknown" msgid="6878797917991465859">"အကြောင်းအရာ မသိရှိ"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"လွဲသွားသော ဖုန်းခေါ်မှု"</string>
@@ -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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"အသံစာပို့စနစ် နံပါတ် ပျောက်နေပါသည်"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"ဆင်းမ်ကဒ်ပေါ်တွင် အသံစာပို့စနစ် နံပါတ် သိမ်းဆည်ထားခြင်း မရှိပါ"</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"နံပါတ်ထပ်ထည့်ရန်"</string>
-    <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> သည် ခေါ်ဆိုမှုများကို ဘက်စုံပြုလုပ်ထိန်းချုပ်သွားနိုင်မည်ဖြစ်သည်။ သင်ယုံကြည်သော အက်ပ်များကိုသာ မူရင်း Phone အက်ပ်အဖြစ် သတ်မှတ်သင့်ပါသည်။"</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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"စက်ရုံထုတ်ဖုန်းခေါ်အပ်ဖ်ကိုပြောင်းလိုပါသလား"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> အစား <xliff:g id="NEW_APP">%1$s</xliff:g> ကိုသင့်ရဲ့ စက်ရုံထုတ်ဖုန်းခေါ်အပ်ဖ်အဖြစ် သုံးလိုပါသလား"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g> ကိုသင့်ရဲ့စက်ရုံထုတ်ဖုန်းခေါ်အပ်ဖ်အဖြစ် သုံးလိုပါသလား"</string>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 230e9c3..04588eb 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Administrering av samtaler"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Administrering av telefonsamtaler"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Ukjent"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Tapt anrop"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Mangler nummer til talepostkasse"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Det er ikke lagret noe nummer for talepostkasse på SIM-kortet."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Legg til nummer"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Vil du bruke <xliff:g id="NEW_APP">%s</xliff:g> som standard telefonapp?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Angi som standard"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Avbryt"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> kan håndtere alt som har med telefonanrop å gjøre. Bruk bare apper du stoler på som standard telefonapp."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Blokkerte numre"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Du mottar ingen anrop eller tekstmeldinger fra blokkerte numre."</string>
-    <string name="block_number" msgid="1101252256321306179">"Legg til et nummer"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Vil du oppheve blokkeringen av <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Opphev blokkering"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokkér anrop og meldinger fra"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonnummer"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blokkér"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Bare enhetseieren kan se og administrere blokkerte numre."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Opphev blokkeringen"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokkeringen er midlertidig slått av"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Når du har ringt eller sendt tekstmelding til et nødnummer, blir blokkeringen slått av, sånn at nødtjenesten har mulighet til å kontakte deg."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Slå på igjen nå"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> er blokkert"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Blokkeringen av <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> er opphevet"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Kan ikke blokkere nødnumre."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> er allerede blokkert."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Ring via den personlige ringeappen"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Vil du endre standard telefonapp?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Vil du bruke <xliff:g id="NEW_APP">%1$s</xliff:g> i stedet for <xliff:g id="CURRENT_APP">%2$s</xliff:g> som standard telefonapp?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Vil du bruke <xliff:g id="NEW_APP">%s</xliff:g> som standard telefonapp?"</string>
 </resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index 7ed47f4..a804221 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"कल व्यवस्थापन"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"फोन कल व्यवस्थापन"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"फोन"</string>
     <string name="unknown" msgid="6878797917991465859">"अज्ञात"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"छुटेका कल"</string>
@@ -31,7 +31,7 @@
     <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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"भ्वाइसमेल नम्बर हराइरहेको छ"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM कार्डमा कुनै पनि भ्वाइसमेल नम्बर भण्डारण भएको छैन।"</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"नम्बर थप्नुहोस्"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"पूर्वनिर्धारित डायलर अनुप्रयोग फेर्ने हो?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="CURRENT_APP">%2$s</xliff:g>को सट्टामा <xliff:g id="NEW_APP">%1$s</xliff:g>लाई पूर्वनिर्धारित डायलर अनुप्रयोगको रूपमा प्रयोग गर्ने हो?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g>लाई तपाईँको पूर्वनिर्धारित डायलर अनुप्रयोगको रूपमा प्रयोग गर्ने हो?"</string>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 7f8821a..829bf0b 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Oproepbeheer"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Telefoonoproepbeheer"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefoon"</string>
     <string name="unknown" msgid="6878797917991465859">"Onbekend"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Gemiste oproep"</string>
@@ -31,7 +31,7 @@
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Kan nu niet opnemen. Alles goed?"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Ik bel je zo terug."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Ik bel je later."</string>
-    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Kan nu niet opnemen. Bel je me later?"</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Kan nu niet opnemen. Bel me later."</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Snelle reacties"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Snelle reacties bewerken"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Voicemailnummer ontbreekt"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Er is geen voicemailnummer op de SIM-kaart opgeslagen."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Nummer toevoegen"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Wil je <xliff:g id="NEW_APP">%s</xliff:g> instellen als je standaard telefoon-app?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Standaard instellen"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Annuleren"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> kan oproepen plaatsen en alle aspecten hiervan beheren. Stel alleen apps in als je standaard telefoon-app als je ze vertrouwt."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Geblokkeerde nummers"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Je ontvangt geen oproepen of sms\'jes van geblokkeerde nummers."</string>
-    <string name="block_number" msgid="1101252256321306179">"Een nummer toevoegen"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Blokkering van <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> opheffen?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Blokkering opheffen"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Oproepen en sms\'jes blokkeren van"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefoonnummer"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blokkeren"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Alleen de eigenaar van het apparaat kan geblokkeerd nummers bekijken en beheren."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Blokkering opheffen"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokkering tijdelijk uitgeschakeld"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Als je een noodnummer belt of er een sms naartoe stuurt, wordt de blokkering uitgeschakeld om te zorgen dat hulpdiensten contact met je kunnen opnemen."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Nu opnieuw inschakelen"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> geblokkeerd"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Blokkering van <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> opgeheven"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Kan alarmnummer niet blokkeren."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> is al geblokkeerd."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"De persoonlijke kiezer gebruiken om te bellen"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Standaard kiezerapp wijzigen?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="NEW_APP">%1$s</xliff:g> in plaats van <xliff:g id="CURRENT_APP">%2$s</xliff:g> gebruiken als standaard kiezerapp?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g> gebruiken als standaard kiezerapp?"</string>
 </resources>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
index 73800d9..41e1a4a 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa-rIN/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"ਕਾਲ ਪ੍ਰਬੰਧਨ"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"ਫ਼ੋਨ - ਕਾਲ ਪ੍ਰਬੰਧਨ"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"ਫ਼ੋਨ"</string>
     <string name="unknown" msgid="6878797917991465859">"ਅਗਿਆਤ"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"ਮਿਸਡ ਕਾਲ"</string>
@@ -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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"ਲੁਪਤ ਵੌਇਸਮੇਲ ਨੰਬਰ"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM ਕਾਰਡ ਤੇ ਕੋਈ ਵੌਇਸਮੇਲ ਨੰਬਰ ਸਟੋਰ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ।"</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"ਨੰਬਰ ਜੋੜੋ"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"ਕੀ ਡਿਫ਼ੌਲਟ ਡਾਇਲਰ ਐਪ ਨੂੰ ਬਦਲਣਾ ਹੈ?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"ਕੀ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ਦੀ ਬਜਾਏ <xliff:g id="NEW_APP">%1$s</xliff:g> ਨੂੰ ਆਪਣੀ ਡਿਫ਼ੌਲਟ ਡਾਇਲਰ ਐਪ ਦਾ ਉਪਯੋਗ ਕਰਨਾ ਹੈ?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"ਕੀ <xliff:g id="NEW_APP">%s</xliff:g> ਨੂੰ ਆਪਣੀ ਡਿਫ਼ੌਲਟ ਡਾਇਲਰ ਐਪ ਦਾ ਉਪਯੋਗ ਕਰਨਾ ਹੈ?"</string>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index e460463..813bf29 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Zarządzanie połączeniami"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Telefon – zarządzanie połączeniami"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Nieznany"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Nieodebrane połączenie"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Brakuje numeru poczty głosowej"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Na karcie SIM nie ma zapisanego numeru poczty głosowej."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Dodaj numer"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Ustawić <xliff:g id="NEW_APP">%s</xliff:g> jako domyślną aplikację telefoniczną?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Ustaw jako aplikację domyślną"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Anuluj"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> uzyska możliwość nawiązywania połączeń i kontrolowania wszystkich ich aspektów. Tylko zaufane aplikacje powinny być ustawiane jako domyślna aplikacja telefoniczna."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Zablokowane numery"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Nie będziesz otrzymywać połączeń ani SMS-ów z zablokowanych numerów."</string>
-    <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:"</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>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Odblokuj"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokada tymczasowo wyłączona"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Gdy wybierzesz numer awaryjny lub wyślesz pod ten numer SMS-a, blokada zostanie wyłączona, aby odpowiednie służby mogły się z Tobą skontaktować."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Włącz ponownie"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"Numer <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> został zablokowany"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Numer <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> został odblokowany"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Nie można zablokować numeru alarmowego."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"Numer <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> jest już zablokowany."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Wykonuję połączenie z osobistego telefonu"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Zmienić domyślną aplikację telefonu?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Zmienić <xliff:g id="CURRENT_APP">%2$s</xliff:g> na <xliff:g id="NEW_APP">%1$s</xliff:g> jako domyślną aplikację telefonu?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Ustawić <xliff:g id="NEW_APP">%s</xliff:g> jako domyślną aplikację telefonu?"</string>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index b2e576e..cc3db6e 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Gestão de chamadas"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Gestão de chamadas do telemóvel"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefone"</string>
     <string name="unknown" msgid="6878797917991465859">"Desconhecido"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Chamada não atendida"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Número do correio de voz em falta"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Não existe um número de correio de voz armazenado no cartão SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Adicionar número"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Predefinir <xliff:g id="NEW_APP">%s</xliff:g> como a sua aplicação Telefone?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Predefinir"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Cancelar"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"A aplicação <xliff:g id="NEW_APP">%s</xliff:g> poderá efetuar chamadas e controlar todos os aspetos das mesmas. Apenas as aplicações em que confia devem ser escolhidas como a aplicação de telefone predefinida."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Números bloqueados"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Não irá receber chamadas ou mensagens de texto de números bloqueados."</string>
-    <string name="block_number" msgid="1101252256321306179">"Adicionar um número"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Pretende 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 texto de"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Número 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 gerir 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 marcar ou enviar uma mensagem de texto para um número de emergência, o bloqueio é desativado para garantir que os serviços de emergência conseguem contactá-lo."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Reativar agora"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> bloqueado"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> desbloqueado"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Não é possível bloquear números de emergência."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> já está bloqueado."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"A utilizar o telefone pessoal para efetuar a chamada"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Alterar aplicação de Telefone predefinida?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Utilizar <xliff:g id="NEW_APP">%1$s</xliff:g> em vez de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como a aplicação de telefone predefinida?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Utilizar <xliff:g id="NEW_APP">%s</xliff:g> como a aplicação de telefone predefinida?"</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 6d4271c..9dea13f 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Gerenciamento de chamadas"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Gerenciamento de chamadas telefônicas"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefone"</string>
     <string name="unknown" msgid="6878797917991465859">"Desconhecido"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Chamada perdida"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Número correio de voz ausente"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Não há um número correio de voz armazenado no cartão SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Adicionar número"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Usar o <xliff:g id="NEW_APP">%s</xliff:g> como seu aplicativo de smartphone padrão?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Definir padrão"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Cancelar"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"O <xliff:g id="NEW_APP">%s</xliff:g> poderá ligar e controlar todos os aspectos das chamadas. Defina como aplicativo de smartphone padrão somente aqueles em que você confia."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Números bloqueados"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Você não receberá chamadas nem mensagens de texto dos números bloqueados."</string>
-    <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 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 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 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="change_default_dialer_dialog_title" msgid="4430590714918044425">"Alterar o app discador padrão?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Usar <xliff:g id="NEW_APP">%1$s</xliff:g> em vez de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como seu app discador padrão?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Usar <xliff:g id="NEW_APP">%s</xliff:g> como seu app discador padrão?"</string>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 4c204fb..fd7050d 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Gestionarea apelurilor"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Telefon – Gestionarea apelurilor"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Necunoscut"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Apel nepreluat"</string>
@@ -29,8 +29,8 @@
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Apel cu sunet dezactivat."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Difuzor activat."</string>
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Nu pot acum. Despre ce e vorba?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Sun eu imediat."</string>
-    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Sun eu mai târziu."</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Te sun imediat înapoi."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Te sun mai târziu."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Nu pot acum. Vorbim mai târziu?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Răspunsuri rapide"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Editați răspunsurile rapide"</string>
@@ -42,29 +42,10 @@
     <string name="outgoing_call_not_allowed_no_permission" msgid="1996571596464271228">"Această aplicație nu poate efectua apeluri fără permisiunea Telefon."</string>
     <string name="outgoing_call_error_no_phone_number_supplied" msgid="1940125199802007505">"Pentru a apela, introduceți un număr valid."</string>
     <string name="duplicate_video_call_not_allowed" msgid="3749211605014548386">"Apelul nu poate fi adăugat în acest moment."</string>
-    <string name="no_vm_number" msgid="4164780423805688336">"Lipsește numărul mesageriei vocale"</string>
+    <string name="no_vm_number" msgid="4164780423805688336">"Lipseşte numărul mesageriei vocale"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Niciun număr de mesagerie vocală nu este stocat pe cardul SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Adăugați numărul"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Setați <xliff:g id="NEW_APP">%s</xliff:g> ca aplicație prestabilită a telefonului?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Setați ca prestabilită"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Anulați"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> va putea iniția apeluri și va putea controla toate aspectele acestora. E recomandat să setați ca aplicație prestabilită a telefonului numai aplicații în care aveți încredere."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Numere blocate"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Nu veți primi apeluri sau mesaje text de la numerele blocate."</string>
-    <string name="block_number" msgid="1101252256321306179">"Adăugați un număr"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Deblocați <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Deblocați"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blocați apelurile și mesajele text de la"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Număr de telefon"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blocați"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Numai proprietarul dispozitivului poate vedea și gestiona numerele blocate."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Deblocați"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blocarea este dezactivată temporar"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"După ce formați un număr de urgență sau trimiteți un mesaj la acesta, blocarea este dezactivată pentru ca serviciile de urgență să vă poată contacta."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Reactivați acum"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> este blocat"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> este deblocat"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Numărul de urgență nu poate fi blocat."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> este deja blocat."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Utilizarea telefonului personal pentru a apela"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Schimbați aplicația Telefon prestabilită?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Folosiți <xliff:g id="NEW_APP">%1$s</xliff:g> și nu <xliff:g id="CURRENT_APP">%2$s</xliff:g> ca aplicație de telefonie prestabilită?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Folosiți <xliff:g id="NEW_APP">%s</xliff:g> ca aplicație de telefonie prestabilită?"</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index b7b9edf..54d5711 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Управление звонками"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Телефон – управление звонками"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Телефон"</string>
     <string name="unknown" msgid="6878797917991465859">"Неизвестный абонент"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Пропущенный вызов"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Не указан номер голосовой почты"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"На SIM-карте нет ни одного номера голосовой почты."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Добавить номер"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"Новое приложение для звонков"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"\"<xliff:g id="NEW_APP">%1$s</xliff:g>\" станет приложением для звонков по умолчанию вместо \"<xliff:g id="CURRENT_APP">%2$s</xliff:g>\". Продолжить?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"\"<xliff:g id="NEW_APP">%s</xliff:g>\" станет приложением для звонков по умолчанию. Продолжить?"</string>
 </resources>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index 6a445bb..f1b014c 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"ඇමතුම් කළමනාකරණය"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"දුරකථන ඇමතුම් කළමනාකරණය"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"දුරකථනය"</string>
     <string name="unknown" msgid="6878797917991465859">"නොදනී"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"මඟ හැරුණු ඇමතුම"</string>
@@ -33,7 +33,7 @@
     <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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"හඬ තැපැල් අංකය නැත"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM කාඩ් පතෙහි හඬ තැපැල් අංකයක් ආචිත වී නැත."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"අංකයක් එක් කරන්න"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"සුපුරුදු දුරකථන යෙදුම වෙනස් කරන්න ද?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> වෙනුවට <xliff:g id="NEW_APP">%1$s</xliff:g> ඔබගේ සුපුරුදු දුරකථන යෙදුම ලෙස භාවිතා කරන්නද?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g> ඔබගේ සුපුරුදු දුරකථන යෙදුම ලෙස භාවිතා කරන්නද?"</string>
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 9dbb232..9139650 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Správa hovorov"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Správa telefónnych hovorov"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefón"</string>
     <string name="unknown" msgid="6878797917991465859">"Neznáme"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Zmeškaný hovor"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Chýba číslo hlasovej schránky"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Na SIM karte nie je uložené žiadne číslo hlasovej schránky."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Pridať číslo"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Nastaviť <xliff:g id="NEW_APP">%s</xliff:g> ako predvolanú aplikáciu na telefonovanie?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Nastaviť ako predvolené"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Zrušiť"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> bude môcť uskutočňovať hovory a ovládať všetky aspekty hovorov. Ako predvolenú aplikáciu na telefonovanie by ste si mali nastaviť len aplikáciu, ktorej dôverujete."</string>
-    <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">"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 z čísla"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefónne číslo"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blokovať"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Iba vlastník zariadenia môže zobrazovať a spravovať blokované čísla."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Odblokovať"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokovanie je dočasne vypnuté"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Keď vytočíte číslo tiesňového volania alebo naň odošlete textovú správu, blokovanie bude vypnuté, aby vás mohli pohotovostné služby kontaktovať."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Znova zapnúť"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"Číslo <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> je zablokované"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Číslo je <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> odblokované"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Číslo tiesňového volania sa nedá zablokovať."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"Číslo <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> je už zablokované."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Na volanie sa používa osobné vytáčanie"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Chcete zmeniť predvolenú aplikáciu vytáčania?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Chcete použiť aplikáciu <xliff:g id="NEW_APP">%1$s</xliff:g> namiesto aplikácie <xliff:g id="CURRENT_APP">%2$s</xliff:g> ako predvolenú aplikáciu vytáčania?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Chcete použiť aplikáciu <xliff:g id="NEW_APP">%s</xliff:g> ako predvolenú aplikáciu vytáčania?"</string>
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index b328c69..374266e 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Upravljanje klicev"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Upravljanje telefonskih klicev"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Neznano"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Neodgovorjeni klic"</string>
@@ -29,8 +29,8 @@
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Klic izključen."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Zvočnik omogočen."</string>
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Zdaj ne morem govoriti. Za kaj gre?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Pokličem takoj."</string>
-    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Pokličem pozneje."</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Takoj bom poklical."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Poklical bom pozneje."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Zdaj ne morem govoriti. Pozneje?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Hitri odgovori"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Urejanje hitrih odgovorov"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Manjkajoča številka glasovne pošte"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Na kartici SIM ni shranjena številka glasovne pošte."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Dodaj številko"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Želite, da je <xliff:g id="NEW_APP">%s</xliff:g> privzeta aplikacija za klicanje?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Nastavi za privzeto"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Prekliči"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"V aplikaciji <xliff:g id="NEW_APP">%s</xliff:g> bo mogoče opravljati klice in nadzirati vse vidike klicev. Kot privzeto aplikacijo za klicanje nastavite samo aplikacije, ki jim zaupate."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Blokirane številke"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Z blokiranih številk ne boste prejemali klicev ali sporočil SMS."</string>
-    <string name="block_number" msgid="1101252256321306179">"Dodaj številko"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Želite odblokirati številko <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Odblokiraj"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokiranje klicev in SMS-jev s številke"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefonska številka"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blokiraj"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Samo lastnik naprave si lahko ogleda blokirane številke in jih upravlja."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Odblokiraj"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Blokiranje je začasno izklopljeno"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Ko izberete številko za klic v sili ali nanjo pošljete sporočilo SMS, se blokiranje izklopi, s čimer se zagotovi, da vas lahko pokličejo iz služb za pomoč v sili."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Znova omogoči"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"Številka <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> je blokirana"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Številka <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> je odblokirana"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Številke za klic v sili ni mogoče blokirati."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"Številka <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> je že blokirana."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Uporaba osebnega klicalnika za klic"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Želite spremeniti privzeto aplikacijo za klicanje?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Želite <xliff:g id="NEW_APP">%1$s</xliff:g> uporabljati kot privzeto aplikacijo za klicanje namesto <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Želite <xliff:g id="NEW_APP">%s</xliff:g> uporabljati kot privzeto aplikacijo za klicanje?"</string>
 </resources>
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
index 00660d0..b328b7f 100644
--- a/res/values-sq-rAL/strings.xml
+++ b/res/values-sq-rAL/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Menaxhimi i thirrjes"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Menaxhimi i telefonatave"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefoni"</string>
     <string name="unknown" msgid="6878797917991465859">"I panjohur"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Telefonatë e humbur"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Mungon numri i postës zanore"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Nuk ka numër të ruajtur në kartën SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Shto numër"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Të bëhet <xliff:g id="NEW_APP">%s</xliff:g> aplikacioni yt i parazgjedhur në telefon?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Vendos të parazgjedhurën"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Anulo"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> do të mund të bëjë dhe kontrollojë të gjitha aspektet e telefonatave. Vetëm aplikacionet të cilave u beson duhet të caktohen si aplikacioni Telefon i parazgjedhur."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Numrat e bllokuar"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Nuk do të marrësh telefonata ose mesazhe me tekst nga numrat e bllokuar."</string>
-    <string name="block_number" msgid="1101252256321306179">"Shto një numër"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Zhblloko <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Zhblloko"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blloko telefonatat dhe mesazhet me tekst nga"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Numri i telefonit"</string>
-    <string name="block_button" msgid="8822290682524373357">"Blloko"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Vetëm zotëruesi i pajisjes mund të shikojë dhe të menaxhojë numrat e bllokuar."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Zhblloko"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Bllokimi përkohësisht joaktiv"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Pasi shtypet ose dërgohet mesazh me tekst te një numër i urgjencës, bllokimi është çaktivizuar për të siguruar që shërbimet e emergjencës të mund të të kontaktojnë."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Riaktivizo tani"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> u bllokua"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> u zhbllokua"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Numri i urgjencës nuk mund të bllokohet."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> është i bllokuar tashmë."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Po përdor formuesin personal të numrave për të kryer telefonatën"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Të ndryshohet apl. parazgjedhur i formuesit të numrave?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Të përdoret <xliff:g id="NEW_APP">%1$s</xliff:g> në vend të <xliff:g id="CURRENT_APP">%2$s</xliff:g> si aplikacioni i parazgjedhur i formuesit të numrave?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Të përdoret <xliff:g id="NEW_APP">%s</xliff:g> si aplikacioni i parazgjedhur i formuesit të numrave?"</string>
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 23c2441..2eaadc5 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Управљање позивима"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Управљање телефонским позивима"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Телефон"</string>
     <string name="unknown" msgid="6878797917991465859">"Непознато"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Пропуштен позив"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Недостаје број за говорну пошту"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Није ускладиштен ниједан број говорне поште на SIM картици."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Додај број"</string>
-    <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="blocked_numbers" msgid="2751843139572970579">"Блокирани бројеви"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Нећете примати позиве ни SMS-ове са блокираних бројева."</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>
-    <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="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Блокирање је привремено искључено"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Кад позовете број хитне службе или на тај број пошаљете SMS, блокирање се искључује да би хитне службе могле да вас контактирају."</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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"Променити подразумевану апликацију Телефон?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Желите ли да користите апликацију <xliff:g id="NEW_APP">%1$s</xliff:g> уместо апликације <xliff:g id="CURRENT_APP">%2$s</xliff:g> као подразумевану апликацију за позивање телефонских бројева?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Желите ли да користите апликацију <xliff:g id="NEW_APP">%s</xliff:g> као подразумевану апликацију за позивање телефонских бројева?"</string>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 1ecd70d..ddd421c 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Samtalshantering"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Samtalshantering"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Okänd"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Missat samtal"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Nummer till röstbrevlåda saknas"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Det finns inget nummer till röstbrevlådan sparat på SIM-kortet."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Lägg till nummer"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Gör <xliff:g id="NEW_APP">%s</xliff:g> till standardtelefonapp?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Ange standard"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Avbryt"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> kan ringa och styra allt omkring samtal. Endast appar du litar på bör ställas in som standardtelefonapp."</string>
-    <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 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>
-    <string name="non_primary_user" msgid="5180129233352533459">"Bara enhetens ägare kan se och hantera blockerade nummer."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Avblockera"</string>
-    <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> 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>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Ringer med den egna uppringningsfunktionen"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Vill du byta standardapp för uppringning?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Vill du använda <xliff:g id="NEW_APP">%1$s</xliff:g> i stället för <xliff:g id="CURRENT_APP">%2$s</xliff:g> som standardapp för uppringning?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Vill du använda <xliff:g id="NEW_APP">%s</xliff:g> som standardapp för uppringning?"</string>
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index ce01517..4686e15 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -16,20 +16,20 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Kudhibiti Simu"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Usimamizi wa Mazunguzo ya Simu"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Simu"</string>
     <string name="unknown" msgid="6878797917991465859">"Haijulikani"</string>
-    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Simu uliyokosa"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Simu isiyojibiwa"</string>
     <string name="notification_missedWorkCallTitle" msgid="6242489980390803090">"Simu ya kazini ambayo hukujibu"</string>
     <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Simu zisizojibiwa"</string>
     <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> simu ambazo hazijajibiwa"</string>
-    <string name="notification_missedCallTicker" msgid="504686252427747209">"Ulikosa simu kutoka kwa <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Simu isiyojibiwa kutoka <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
     <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Mpigie"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Ujumbe"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Simu imezimwa."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Spika za simu zimewezeshwa"</string>
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Siwezi kuongea sasa. Kuna nini?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Nitakupigia baada ya dakika chache."</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Nitakupigia sasa hivi."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Nitakupigia baadaye."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Siwezi kuongea sasa. Nipigie baadaye"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Majibu ya haraka"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Nambari ya sauti inayokosekana"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Hakuna nambari ya ujumbe wa sauti iliyohifadhiwa katika SIM kadi."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Ongeza nambari"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Unataka kufanya <xliff:g id="NEW_APP">%s</xliff:g> iwe programu chaguo-msingi ya simu?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Fanya iwe Chaguo-Msingi"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Ghairi"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> itaweza kupiga simu na kudhibiti kila kipengele cha simu. Unastahili kuweka programu unazoziamini tu kama programu chaguo-msingi ya kupiga simu."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Nambari zilizozuiwa"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Hutapokea simu au SMS kutoka kwa nambari zilizozuiwa."</string>
-    <string name="block_number" msgid="1101252256321306179">"Ongeza nambari"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Ungependa kuacha kuzuia <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Acha kuzuia"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Zuia simu na SMS kutoka kwa"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Nambari ya simu"</string>
-    <string name="block_button" msgid="8822290682524373357">"Zuia"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Ni mmiliki wa kifaa pekee anayeweza kuangalia na kuthibiti nambari zilizozuiwa."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Acha kuzuia"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Kipengele cha kuzuia kimezimwa kwa muda"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Ukishapiga au kutuma ujumbe kwa nambari ya dharura, kipengele cha kuzuia anwani huzimwa ili watoa huduma za dharura waweze kuwasiliana nawe."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Kiwashe tena sasa"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> imezuiwa"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> imeacha kuzuiwa"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Huwezi kuzuia nambari ya dharura."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> tayari imezuiwa."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Kupiga simu kwa kutumia kipiga simu cha binafsi"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Ungependa kubadilisha programu chaguo-msingi ya simu?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Ungependa kutumia <xliff:g id="NEW_APP">%1$s</xliff:g> badala ya <xliff:g id="CURRENT_APP">%2$s</xliff:g> kama programu ya chaguo-msingi ya kupigia simu?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Ungependa kutumia <xliff:g id="NEW_APP">%s</xliff:g> kama programu ya chaguo-msingi ya kupigia simu?"</string>
 </resources>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index e39a199..d22d047 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"அழைப்பு நிர்வாகம்"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"ஃபோன் அழைப்பு நிர்வாகம்"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"ஃபோன்"</string>
     <string name="unknown" msgid="6878797917991465859">"தெரியாதவர்"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"தவறிய அழைப்பு"</string>
@@ -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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"குரலஞ்சல் எண் இல்லை"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"சிம் கார்டில் குரலஞ்சலுக்கான எண் எதுவும் சேமிக்கப்படவில்லை."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"எண்ணைச் சேர்"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"இயல்புநிலை டயலர் பயன்பாட்டை மாற்றவா?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="NEW_APP">%1$s</xliff:g>ஐ <xliff:g id="CURRENT_APP">%2$s</xliff:g>க்குப் பதிலாக, இயல்புநிலை டயலர் பயன்பாடாகப் பயன்படுத்தவா?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g>ஐ இயல்புநிலை டயலர் பயன்பாடாகப் பயன்படுத்தவா?"</string>
 </resources>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index 09bc4cf..83d2074 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"కాల్ నిర్వహణ"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"ఫోన్ కాల్ నిర్వహణ"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"ఫోన్"</string>
     <string name="unknown" msgid="6878797917991465859">"తెలియదు"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"సమాధానం ఇవ్వని కాల్"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"వాయిస్ మెయిల్ నంబర్ లేదు"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"సిమ్ కార్డులో వాయిస్ మెయిల్ నంబర్ ఏదీ నిల్వ చేయబడలేదు."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"నంబర్‌ను జోడించు"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"డిఫాల్ట్ డయలర్ అనువర్తనాన్ని మార్చాలా?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"మీ డిఫాల్ట్ డయలర్ అనువర్తనంగా <xliff:g id="CURRENT_APP">%2$s</xliff:g> బదులు <xliff:g id="NEW_APP">%1$s</xliff:g>ని ఉపయోగించాలా?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"మీ డిఫాల్ట్ డయలర్ అనువర్తనంగా <xliff:g id="NEW_APP">%s</xliff:g>ని ఉపయోగించాలా?"</string>
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 2acead3..ee9b6fd 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"การจัดการการโทร"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"การจัดการการโทรศัพท์"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"โทรศัพท์"</string>
     <string name="unknown" msgid="6878797917991465859">"ไม่ทราบ"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"สายที่ไม่ได้รับ"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"ไม่มีหมายเลขข้อความเสียง"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"ไม่มีหมายเลขข้อความเสียงจัดเก็บอยู่ในซิมการ์ด"</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"เพิ่มหมายเลข"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"เปลี่ยนแอปแป้นโทรศัพท์เริ่มต้นไหม"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"ใช้ <xliff:g id="NEW_APP">%1$s</xliff:g> เป็นแอปแป้นโทรศัพท์เริ่มต้นแทน <xliff:g id="CURRENT_APP">%2$s</xliff:g> ไหม"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"ใช้ <xliff:g id="NEW_APP">%s</xliff:g> เป็นแอปแป้นโทรศัพท์เริ่มต้นไหม"</string>
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index b711f07..2de1ac5 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Pamamahala sa Tawag"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Pamamahala sa Tawag sa Telepono"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telepono"</string>
     <string name="unknown" msgid="6878797917991465859">"Di-kilala"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Hindi nasagot na tawag"</string>
@@ -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">"Tawagan kita muli."</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Tawagan kita ulit."</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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Nawawala ang numero ng voicemail"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Walang nakaimbak na numero ng voicemail sa SIM card."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Magdagdag ng numero"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Gawing iyong default na app na Telepono ang <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Magtakda ng Default"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Kanselahin"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"Ang <xliff:g id="NEW_APP">%s</xliff:g> ay magagawang tumawag at kontrolin ang lahat ng aspeto ng tawag. Mga app na pinagkakatiwalaan mo lang ang dapat itakda bilang default na app na Telepono."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Mga naka-block na numero"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Hindi ka makakatanggap ng mga tawag o mga text mula sa mga naka-block na numero."</string>
-    <string name="block_number" msgid="1101252256321306179">"Magdagdag ng numero"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Aalisin ba sa pagkaka-block ang <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Alisin sa pagkaka-block"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"I-block ang mga tawag at text mula sa"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Numero ng telepono"</string>
-    <string name="block_button" msgid="8822290682524373357">"I-block"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Ang may-ari ng device lang ang makakakita at makakapamahala sa mga naka-block na numero."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Inaalis sa pagkaka-block"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Pansamantalang naka-off ang pag-block"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Pagkatapos mong i-dial o i-text ang isang pang-emergency na numero, ino-off ang pag-block upang matiyak na maaaring makipag-ugnayan sa iyo ang mga serbisyong pang-emergency."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"I-enable muli ngayon"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"Naka-block ang <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g>"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Naka-unblock ang <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g>"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Hindi ma-block ang numerong pang-emergency."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"Naka-block na ang <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g>."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Ginagamit ang personal na dialer upang tumawag"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Baguhin ang iyong default na Dialer app?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Gamitin ang <xliff:g id="NEW_APP">%1$s</xliff:g> sa halip na <xliff:g id="CURRENT_APP">%2$s</xliff:g> bilang default na dialer app mo?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Gamitin ang <xliff:g id="NEW_APP">%s</xliff:g> bilang default na dialer app mo?"</string>
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 5c20656..b3c6698 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Çağrı Yönetimi"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Telefon Çağrısı Yönetimi"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Bilinmiyor"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Cevapsız çağrı"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Eksik sesli mesaj numarası"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM kartta depolanan sesli mesaj numarası yok."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Numara ekle"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"<xliff:g id="NEW_APP">%s</xliff:g> varsayılan Telefon uygulamanız yapılsın mı?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Varsayılan Uygulamayı Ayarla"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"İptal"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> uygulaması üzerinden çağrı yapabilecek ve çağrıları her yönüyle kontrol edebileceksiniz. Yalnızca güvendiğiniz uygulamalar varsayılan Telefon uygulaması olarak ayarlanmalıdır."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Engellenen numaralar"</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 ç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>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Engellemeyi kaldır"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Engelleme geçici olarak kapalı"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Bir acil durum numarasını çevirmenizin veya acil durum numarasına kısa mesaj göndermenizin ardından acil durum hizmetlerinin size ulaşabilmesi için engelleme kapatılır."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Şimdi yeniden etkinleştir"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> engellendi"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> numaralı telefonun engellemesi kaldırıldı"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Acil durum numarası engellenemedi."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> zaten engellenmiş durumda."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Telefon etmek için kişisel numara çeviriciyi kullanma"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Varsayılan Numara Çeviri uygulaması değiştirilsin mi?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Varsayılan numara çevirici uygulamanız olarak <xliff:g id="CURRENT_APP">%2$s</xliff:g> yerine <xliff:g id="NEW_APP">%1$s</xliff:g> kullanılsın mı?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Varsayılan numara çevirici uygulamanız olarak <xliff:g id="NEW_APP">%s</xliff:g> kullanılsın mı?"</string>
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 036ea40..7bdfe8c 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Керування дзвінками"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Керування дзвінками"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Телефон"</string>
     <string name="unknown" msgid="6878797917991465859">"Невідомий"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Пропущений виклик"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Відстуній номер голосової пошти"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"На SIM-карті немає збереж. номерів голос. пошти."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Додати номер"</string>
-    <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="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">"Заблокувати виклики та SMS із"</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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"Змінити додаток для дзвінків за умовчанням?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Зробити <xliff:g id="NEW_APP">%1$s</xliff:g> додатком для дзвінків за умовчанням замість додатка <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Зробити <xliff:g id="NEW_APP">%s</xliff:g> додатком для дзвінків за умовчанням?"</string>
 </resources>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index b917066..ccb3eb0 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"کال مینجمنٹ"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"فون کال کا نظم"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"فون"</string>
     <string name="unknown" msgid="6878797917991465859">"نامعلوم"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"چھوٹی ہوئی کال"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"صوتی میل نمبر درج نہیں ہے"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"‏SIM کارڈ پر کوئی بھی صوتی میل نمبر اسٹور نہیں ہے۔"</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"نمبر شامل کریں"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"ڈیفالٹ ڈائلر ایپ تبدیل کریں"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> کی بجائے <xliff:g id="NEW_APP">%1$s</xliff:g> کو بطور اپنی ڈیفالٹ ڈائلر ایپ استعمال کریں؟"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g> کو بطور اپنی ڈیفالٹ ڈائلر ایپ استعمال کریں؟"</string>
 </resources>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index 8e8ab26..c42152f 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Qo‘ng‘iroqlar boshqaruvi"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Telefon – qo‘ng‘iroqlarni boshqarish"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Telefon"</string>
     <string name="unknown" msgid="6878797917991465859">"Noma’lum"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Javobsiz qo‘ng‘iroq"</string>
@@ -37,7 +37,7 @@
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
     <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Tezkor javob"</string>
     <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Xabar <xliff:g id="PHONE_NUMBER">%s</xliff:g>ga jo‘natildi."</string>
-    <string name="enable_account_preference_title" msgid="2021848090086481720">"Qo‘ng‘iroq uchun hisoblar"</string>
+    <string name="enable_account_preference_title" msgid="2021848090086481720">"Qo‘ng‘iroq hisoblari"</string>
     <string name="outgoing_call_not_allowed_user_restriction" msgid="6872406278300131364">"Faqat favqulodda qo‘ng‘iroqlarga ruxsat berilgan."</string>
     <string name="outgoing_call_not_allowed_no_permission" msgid="1996571596464271228">"Bu ilova Telefon ruxsatnomasisiz chiquvchi qo‘ng‘iroqlarni amalga oshira olmaydi."</string>
     <string name="outgoing_call_error_no_phone_number_supplied" msgid="1940125199802007505">"Qo‘ng‘iroq qilish uchun raqamni to‘g‘ri kiriting."</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Ovozli pochta raqami ko‘rsatilmagan"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM kartada birorta ham ovozli pochta raqami yo‘q."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Raqam qo‘shish"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Qo‘ng‘iroq. uchun <xliff:g id="NEW_APP">%s</xliff:g> asosiy ilova sifatida o‘rnatilsinmi?"</string>
-    <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="blocked_numbers" msgid="2751843139572970579">"Bloklangan raqamlar"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Bloklangan raqamlardan keladigan qo‘ng‘iroq yoki SMS xabarlar qabul qilinmaydi."</string>
-    <string name="block_number" msgid="1101252256321306179">"Raqam qo‘shish"</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>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Quyidagi raqamdan keladigan qo‘ng‘iroq va SMS xabarlar bloklansin"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Telefon raqami"</string>
-    <string name="block_button" msgid="8822290682524373357">"Bloklash"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Faqat qurilma egasi bloklangan raqamlarni ko‘rishi va boshqarishi mumkin."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Blokdan chiqarish"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Telefon raqamini bloklash xususiyati vaqtinchalik o‘chirib qo‘yilgan"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Favqulodda chaqiruv raqamiga qo‘ng‘iroq qilganda yoki unga matnli xabar yuborganingizda, favqulodda holatlar xizmati xodimlari siz bilan bog‘lana olishlari uchun telefoningizda telefon raqamlarini bloklash xususiyati o‘chirib qo‘yiladi."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Qayta faollashtirish"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> raqami bloklandi"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> raqami blokdan chiqarildi"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Favqulodda qo‘ng‘iroq raqamini bloklab bo‘lmadi."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> raqami allaqachon bloklangan."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Qo‘ng‘iroq qilish uchun shaxsiy raqam tergichdan foydalanilmoqda"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Birlamchi raqam terish ilovasi o‘zgartirilsinmi?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Raqam terish uchun birlamchi ilova sifatida <xliff:g id="CURRENT_APP">%2$s</xliff:g> o‘rniga <xliff:g id="NEW_APP">%1$s</xliff:g> ilovasi tanlansinmi?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"<xliff:g id="NEW_APP">%s</xliff:g> raqam terish uchun birlamchi ilova sifatida tanlansinmi?"</string>
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 2308246..df5f1c4 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Quản lý cuộc gọi"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Quản lý cuộc gọi điện thoại"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Điện thoại"</string>
     <string name="unknown" msgid="6878797917991465859">"Không xác định"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Cuộc gọi nhỡ"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Thiếu số thư thoại"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Không có số thư thoại nào được lưu trữ trên thẻ SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Thêm số điện thoại"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Đặt <xliff:g id="NEW_APP">%s</xliff:g> làm ứng dụng Điện thoại mặc định của bạn?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Đặt làm mặc định"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Hủy"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> sẽ có thể đặt và kiểm soát mọi khía cạnh của cuộc gọi. Chỉ nên đặt những ứng dụng mà bạn tin cậy làm ứng dụng Điện thoại mặc định."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Số bị chặn"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Bạn sẽ không nhận được cuộc gọi hoặc tin nhắn từ các số bị chặn."</string>
-    <string name="block_number" msgid="1101252256321306179">"Thêm số điện thoại"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Bỏ chặn <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Bỏ chặn"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Chặn cuộc gọi và tin nhắn từ"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Số điện thoại"</string>
-    <string name="block_button" msgid="8822290682524373357">"Chặn"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Chỉ chủ sở hữu thiết bị mới có thể xem và quản lý các số bị chặn."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Bỏ chặn"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Chế độ chặn tạm thời tắt"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Sau khi bạn quay số hoặc gửi tin nhắn tới số khẩn cấp, chế độ chặn sẽ bị tắt để đảm bảo dịch vụ khẩn cấp có thể liên hệ với bạn."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Bật lại ngay bây giờ"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"Đã chặn <xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g>"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"Đã bỏ chặn <xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g>"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Không thể chặn số khẩn cấp."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> đã bị chặn."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Sử dụng trình quay số cá nhân để gọi điện"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Thay đổi ứng dụng Trình quay số mặc định?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Sử dụng <xliff:g id="NEW_APP">%1$s</xliff:g> làm ứng dụng trình quay số mặc định của bạn thay vì <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Sử dụng <xliff:g id="NEW_APP">%s</xliff:g> làm ứng dụng trình quay số mặc định của bạn?"</string>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 8374edb..eda2169 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"通话管理"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"通话管理"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"电话"</string>
     <string name="unknown" msgid="6878797917991465859">"未知"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"未接电话"</string>
@@ -25,7 +25,7 @@
     <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>
     <string name="notification_missedCall_call_back" msgid="2684890353590890187">"回拨"</string>
-    <string name="notification_missedCall_message" msgid="3049928912736917988">"发短信"</string>
+    <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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"缺少语音信箱号码"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM卡上未存储语音信箱号码。"</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"添加号码"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"要更改默认拨号器应用吗？"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"要使用<xliff:g id="NEW_APP">%1$s</xliff:g>（而非<xliff:g id="CURRENT_APP">%2$s</xliff:g>）作为您的默认拨号器应用吗？"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"要使用<xliff:g id="NEW_APP">%s</xliff:g>作为您的默认拨号器应用吗？"</string>
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 0dff76b..7310bc0 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"通話管理"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"手機通話管理"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"電話"</string>
     <string name="unknown" msgid="6878797917991465859">"未知"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"未接來電"</string>
@@ -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>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"未填留言信箱號碼"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM 卡中沒有儲存任何留言信箱號碼。"</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"新增電話號碼"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"變更預設撥號器應用程式？"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"使用 <xliff:g id="NEW_APP">%1$s</xliff:g> 取代 <xliff:g id="CURRENT_APP">%2$s</xliff:g> 作為預設撥號器應用程式？"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"使用 <xliff:g id="NEW_APP">%s</xliff:g> 為預設撥號器應用程式？"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 7bb98a9..137f641 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"通話管理"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"通話管理"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"電話"</string>
     <string name="unknown" msgid="6878797917991465859">"不明"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"未接來電"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"遺失語音信箱號碼"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"SIM 卡中未儲存語音信箱號碼。"</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"新增號碼"</string>
-    <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="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="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="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_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="change_default_dialer_dialog_title" msgid="4430590714918044425">"要變更預設撥號應用程式嗎？"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"要將 <xliff:g id="NEW_APP">%1$s</xliff:g> (而非 <xliff:g id="CURRENT_APP">%2$s</xliff:g>) 設為預設撥號應用程式嗎？"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"要將 <xliff:g id="NEW_APP">%s</xliff:g> 設為預設撥號應用程式嗎？"</string>
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index b65700c..5e1cad7 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="telecommAppLabel" product="default" msgid="382363169988504520">"Ukuphathwa kwekholi"</string>
+    <string name="telecommAppLabel" product="default" msgid="9166784827254469057">"Ukuphathwa kwekholi yefoni"</string>
     <string name="userCallActivityLabel" product="default" msgid="5415173590855187131">"Ifoni"</string>
     <string name="unknown" msgid="6878797917991465859">"Akwaziwa"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Ikholi ekulahlekele"</string>
@@ -45,26 +45,7 @@
     <string name="no_vm_number" msgid="4164780423805688336">"Inombolo engekho yomyalezo wezwi"</string>
     <string name="no_vm_number_msg" msgid="1300729501030053828">"Ayikho inombolo yomlayezo wezwi egcinwe ekhadini le-SIM."</string>
     <string name="add_vm_number_str" msgid="4676479471644687453">"Engeza inombolo"</string>
-    <string name="change_default_dialer_dialog_title" msgid="9101655962941740507">"Yenza i-<xliff:g id="NEW_APP">%s</xliff:g> uhlelo lwakho lwefoni oluzenzakalelayo?"</string>
-    <string name="change_default_dialer_dialog_affirmative" msgid="8606546663509166276">"Setha okuzenzakalelayo"</string>
-    <string name="change_default_dialer_dialog_negative" msgid="9078144617060173845">"Khansela"</string>
-    <string name="change_default_dialer_warning_message" msgid="1417671460801684999">"<xliff:g id="NEW_APP">%s</xliff:g> Uzokwazi ukubeka nokulawula zonke izinto zamakholi. Izinhlelo zokusebenza kuphela ozithembayo ezingasethwa njengohlelo lokusebenza oluzenzakalelayo lefoni."</string>
-    <string name="blocked_numbers" msgid="2751843139572970579">"Izinombolo ezivinjiwe"</string>
-    <string name="blocked_numbers_msg" msgid="1045015186124965643">"Ngeke uthole amakholi noma imibhalo kusuka kuzinombolo ezivinjelwe."</string>
-    <string name="block_number" msgid="1101252256321306179">"Engeza inombolo"</string>
-    <string name="unblock_dialog_body" msgid="1614238499771862793">"Vulela i-<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
-    <string name="unblock_button" msgid="3078048901972674170">"Vulela"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Vimba amakholi nemibhalo kusukela ku-"</string>
-    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Inombolo yefoni"</string>
-    <string name="block_button" msgid="8822290682524373357">"Vimba"</string>
-    <string name="non_primary_user" msgid="5180129233352533459">"Umnikazi wedivayisi kuphela ongabuka aphinde aphathe izinombolo ezivinjelwe."</string>
-    <string name="delete_icon_description" msgid="8903995728252556724">"Vulela"</string>
-    <string name="blocked_numbers_butter_bar_title" msgid="438170866438793182">"Ukuvimble kuvaliwe okwesikhashana"</string>
-    <string name="blocked_numbers_butter_bar_body" msgid="2223244484319442431">"Ngemuva kokudayela noma ubhalele inombolo yesimo esiphuthumayo, ukuvimbela kuvaliwe ukuqinisekisa amasevisi esimo esiphuthumayo angakwazi ukuxhumana nawe."</string>
-    <string name="blocked_numbers_butter_bar_button" msgid="2197943354922010696">"Nika amandla manje"</string>
-    <string name="blocked_numbers_number_blocked_message" msgid="7678509606805029540">"I-<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> ivinjiwe"</string>
-    <string name="blocked_numbers_number_unblocked_message" msgid="977894647366750418">"I-<xliff:g id="UNBLOCKED_NUMBER">%1$s</xliff:g> ayivinjiwe"</string>
-    <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"Ayikwazi ukuvimba inombolo yesimo esiphuthumayo."</string>
-    <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"I-<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> isivele ivinjiwe."</string>
-    <string name="toast_personal_call_msg" msgid="5115361633476779723">"Ukusebenzisa okokudayila komuntu siqu ukwenza ikholi"</string>
+    <string name="change_default_dialer_dialog_title" msgid="4430590714918044425">"Guqula uhlelo lwakho lokusebenza oluzenzakalelayo lokudayela?"</string>
+    <string name="change_default_dialer_with_previous_app_set_text" msgid="3213396537499337949">"Sebenzisa i-<xliff:g id="NEW_APP">%1$s</xliff:g> esikhundleni se-<xliff:g id="CURRENT_APP">%2$s</xliff:g> njengohlelo lwakho lokusebenza oluzenzakalelayo lokokudayela?"</string>
+    <string name="change_default_dialer_no_previous_app_set_text" msgid="7608426684114545221">"Sebenzisa i-<xliff:g id="NEW_APP">%s</xliff:g> njengohlelo lwakho lokusebenza oluzenzakalelayo lokokudayela?"</string>
 </resources>
diff --git a/scripts/telecom_testing.sh b/scripts/telecom_testing.sh
index 105ec8b..6884f5f 100644
--- a/scripts/telecom_testing.sh
+++ b/scripts/telecom_testing.sh
@@ -13,12 +13,12 @@
   -h                    This help message.
   "
 
-  OPTIND=1
-  class=
-  install=false
-  installwdep=false
-  debug=false
-  coverage=false
+  local OPTIND=1
+  local class=
+  local install=false
+  local installwdep=false
+  local debug=false
+  local coverage=false
 
   while getopts "c:hadie" opt; do
     case "$opt" in
@@ -42,17 +42,20 @@
     esac
   done
 
-  T=$(gettop)
+  local T=$(gettop)
 
   if [ $install = true ] ; then
-    olddir=$(pwd)
+    local olddir=$(pwd)
+    local emma_opt=
     cd $T
+    # Build and exit script early if build fails
+
     if [ $coverage = true ] ; then
       emma_opt="EMMA_INSTRUMENT_STATIC=true"
     else
       emma_opt="EMMA_INSTRUMENT_STATIC=false"
     fi
-    # Build and exit script early if build fails
+
     if [ $installwdep = true ] ; then
       mmma -j40 "packages/services/Telecomm/tests" ${emma_opt}
     else
@@ -63,7 +66,10 @@
       return
     fi
 
-    adb install -r -t "out/target/product/$TARGET_PRODUCT/data/app/TelecomUnitTests/TelecomUnitTests.apk"
+    # Strip off any possible aosp_ prefix from the target product
+    local canonical_product=$(sed 's/^aosp_//' <<< "$TARGET_PRODUCT")
+
+    adb install -r -t "out/target/product/$canonical_product/data/app/TelecomUnitTests/TelecomUnitTests.apk"
     if [ $? -ne 0 ] ; then
       cd "$olddir"
       return $?
@@ -71,7 +77,7 @@
     cd "$olddir"
   fi
 
-  e_options=""
+  local e_options=""
   if [ -n "$class" ] ; then
     e_options="${e_options} -e class com.android.server.telecom.tests.${class}"
   fi
diff --git a/src/com/android/server/telecom/Analytics.java b/src/com/android/server/telecom/Analytics.java
index 4456734..0a15b26 100644
--- a/src/com/android/server/telecom/Analytics.java
+++ b/src/com/android/server/telecom/Analytics.java
@@ -18,9 +18,11 @@
 
 import android.telecom.Connection;
 import android.telecom.DisconnectCause;
+import android.telecom.Logging.EventManager;
 import android.telecom.ParcelableCallAnalytics;
 import android.telecom.TelecomAnalytics;
 import android.util.Base64;
+import android.telecom.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.IndentingPrintWriter;
@@ -48,92 +50,92 @@
 
     public static final Map<String, Integer> sLogEventToAnalyticsEvent =
             new HashMap<String, Integer>() {{
-                put(Log.Events.SET_SELECT_PHONE_ACCOUNT, AnalyticsEvent.SET_SELECT_PHONE_ACCOUNT);
-                put(Log.Events.REQUEST_HOLD, AnalyticsEvent.REQUEST_HOLD);
-                put(Log.Events.REQUEST_UNHOLD, AnalyticsEvent.REQUEST_UNHOLD);
-                put(Log.Events.SWAP, AnalyticsEvent.SWAP);
-                put(Log.Events.SKIP_RINGING, AnalyticsEvent.SKIP_RINGING);
-                put(Log.Events.CONFERENCE_WITH, AnalyticsEvent.CONFERENCE_WITH);
-                put(Log.Events.SPLIT_FROM_CONFERENCE, AnalyticsEvent.SPLIT_CONFERENCE);
-                put(Log.Events.SET_PARENT, AnalyticsEvent.SET_PARENT);
-                put(Log.Events.MUTE, AnalyticsEvent.MUTE);
-                put(Log.Events.UNMUTE, AnalyticsEvent.UNMUTE);
-                put(Log.Events.AUDIO_ROUTE_BT, AnalyticsEvent.AUDIO_ROUTE_BT);
-                put(Log.Events.AUDIO_ROUTE_EARPIECE, AnalyticsEvent.AUDIO_ROUTE_EARPIECE);
-                put(Log.Events.AUDIO_ROUTE_HEADSET, AnalyticsEvent.AUDIO_ROUTE_HEADSET);
-                put(Log.Events.AUDIO_ROUTE_SPEAKER, AnalyticsEvent.AUDIO_ROUTE_SPEAKER);
-                put(Log.Events.SILENCE, AnalyticsEvent.SILENCE);
-                put(Log.Events.SCREENING_COMPLETED, AnalyticsEvent.SCREENING_COMPLETED);
-                put(Log.Events.BLOCK_CHECK_FINISHED, AnalyticsEvent.BLOCK_CHECK_FINISHED);
-                put(Log.Events.DIRECT_TO_VM_FINISHED, AnalyticsEvent.DIRECT_TO_VM_FINISHED);
-                put(Log.Events.REMOTELY_HELD, AnalyticsEvent.REMOTELY_HELD);
-                put(Log.Events.REMOTELY_UNHELD, AnalyticsEvent.REMOTELY_UNHELD);
-                put(Log.Events.REQUEST_PULL, AnalyticsEvent.REQUEST_PULL);
-                put(Log.Events.REQUEST_ACCEPT, AnalyticsEvent.REQUEST_ACCEPT);
-                put(Log.Events.REQUEST_REJECT, AnalyticsEvent.REQUEST_REJECT);
-                put(Log.Events.SET_ACTIVE, AnalyticsEvent.SET_ACTIVE);
-                put(Log.Events.SET_DISCONNECTED, AnalyticsEvent.SET_DISCONNECTED);
-                put(Log.Events.SET_HOLD, AnalyticsEvent.SET_HOLD);
-                put(Log.Events.SET_DIALING, AnalyticsEvent.SET_DIALING);
-                put(Log.Events.START_CONNECTION, AnalyticsEvent.START_CONNECTION);
-                put(Log.Events.BIND_CS, AnalyticsEvent.BIND_CS);
-                put(Log.Events.CS_BOUND, AnalyticsEvent.CS_BOUND);
-                put(Log.Events.SCREENING_SENT, AnalyticsEvent.SCREENING_SENT);
-                put(Log.Events.DIRECT_TO_VM_INITIATED, AnalyticsEvent.DIRECT_TO_VM_INITIATED);
-                put(Log.Events.BLOCK_CHECK_INITIATED, AnalyticsEvent.BLOCK_CHECK_INITIATED);
-                put(Log.Events.FILTERING_INITIATED, AnalyticsEvent.FILTERING_INITIATED);
-                put(Log.Events.FILTERING_COMPLETED, AnalyticsEvent.FILTERING_COMPLETED);
-                put(Log.Events.FILTERING_TIMED_OUT, AnalyticsEvent.FILTERING_TIMED_OUT);
+                put(LogUtils.Events.SET_SELECT_PHONE_ACCOUNT, AnalyticsEvent.SET_SELECT_PHONE_ACCOUNT);
+                put(LogUtils.Events.REQUEST_HOLD, AnalyticsEvent.REQUEST_HOLD);
+                put(LogUtils.Events.REQUEST_UNHOLD, AnalyticsEvent.REQUEST_UNHOLD);
+                put(LogUtils.Events.SWAP, AnalyticsEvent.SWAP);
+                put(LogUtils.Events.SKIP_RINGING, AnalyticsEvent.SKIP_RINGING);
+                put(LogUtils.Events.CONFERENCE_WITH, AnalyticsEvent.CONFERENCE_WITH);
+                put(LogUtils.Events.SPLIT_FROM_CONFERENCE, AnalyticsEvent.SPLIT_CONFERENCE);
+                put(LogUtils.Events.SET_PARENT, AnalyticsEvent.SET_PARENT);
+                put(LogUtils.Events.MUTE, AnalyticsEvent.MUTE);
+                put(LogUtils.Events.UNMUTE, AnalyticsEvent.UNMUTE);
+                put(LogUtils.Events.AUDIO_ROUTE_BT, AnalyticsEvent.AUDIO_ROUTE_BT);
+                put(LogUtils.Events.AUDIO_ROUTE_EARPIECE, AnalyticsEvent.AUDIO_ROUTE_EARPIECE);
+                put(LogUtils.Events.AUDIO_ROUTE_HEADSET, AnalyticsEvent.AUDIO_ROUTE_HEADSET);
+                put(LogUtils.Events.AUDIO_ROUTE_SPEAKER, AnalyticsEvent.AUDIO_ROUTE_SPEAKER);
+                put(LogUtils.Events.SILENCE, AnalyticsEvent.SILENCE);
+                put(LogUtils.Events.SCREENING_COMPLETED, AnalyticsEvent.SCREENING_COMPLETED);
+                put(LogUtils.Events.BLOCK_CHECK_FINISHED, AnalyticsEvent.BLOCK_CHECK_FINISHED);
+                put(LogUtils.Events.DIRECT_TO_VM_FINISHED, AnalyticsEvent.DIRECT_TO_VM_FINISHED);
+                put(LogUtils.Events.REMOTELY_HELD, AnalyticsEvent.REMOTELY_HELD);
+                put(LogUtils.Events.REMOTELY_UNHELD, AnalyticsEvent.REMOTELY_UNHELD);
+                put(LogUtils.Events.REQUEST_PULL, AnalyticsEvent.REQUEST_PULL);
+                put(LogUtils.Events.REQUEST_ACCEPT, AnalyticsEvent.REQUEST_ACCEPT);
+                put(LogUtils.Events.REQUEST_REJECT, AnalyticsEvent.REQUEST_REJECT);
+                put(LogUtils.Events.SET_ACTIVE, AnalyticsEvent.SET_ACTIVE);
+                put(LogUtils.Events.SET_DISCONNECTED, AnalyticsEvent.SET_DISCONNECTED);
+                put(LogUtils.Events.SET_HOLD, AnalyticsEvent.SET_HOLD);
+                put(LogUtils.Events.SET_DIALING, AnalyticsEvent.SET_DIALING);
+                put(LogUtils.Events.START_CONNECTION, AnalyticsEvent.START_CONNECTION);
+                put(LogUtils.Events.BIND_CS, AnalyticsEvent.BIND_CS);
+                put(LogUtils.Events.CS_BOUND, AnalyticsEvent.CS_BOUND);
+                put(LogUtils.Events.SCREENING_SENT, AnalyticsEvent.SCREENING_SENT);
+                put(LogUtils.Events.DIRECT_TO_VM_INITIATED, AnalyticsEvent.DIRECT_TO_VM_INITIATED);
+                put(LogUtils.Events.BLOCK_CHECK_INITIATED, AnalyticsEvent.BLOCK_CHECK_INITIATED);
+                put(LogUtils.Events.FILTERING_INITIATED, AnalyticsEvent.FILTERING_INITIATED);
+                put(LogUtils.Events.FILTERING_COMPLETED, AnalyticsEvent.FILTERING_COMPLETED);
+                put(LogUtils.Events.FILTERING_TIMED_OUT, AnalyticsEvent.FILTERING_TIMED_OUT);
             }};
 
     public static final Map<String, Integer> sLogSessionToSessionId =
             new HashMap<String, Integer> () {{
-                put(Log.Sessions.ICA_ANSWER_CALL, SessionTiming.ICA_ANSWER_CALL);
-                put(Log.Sessions.ICA_REJECT_CALL, SessionTiming.ICA_REJECT_CALL);
-                put(Log.Sessions.ICA_DISCONNECT_CALL, SessionTiming.ICA_DISCONNECT_CALL);
-                put(Log.Sessions.ICA_HOLD_CALL, SessionTiming.ICA_HOLD_CALL);
-                put(Log.Sessions.ICA_UNHOLD_CALL, SessionTiming.ICA_UNHOLD_CALL);
-                put(Log.Sessions.ICA_MUTE, SessionTiming.ICA_MUTE);
-                put(Log.Sessions.ICA_SET_AUDIO_ROUTE, SessionTiming.ICA_SET_AUDIO_ROUTE);
-                put(Log.Sessions.ICA_CONFERENCE, SessionTiming.ICA_CONFERENCE);
-                put(Log.Sessions.CSW_HANDLE_CREATE_CONNECTION_COMPLETE,
+                put(LogUtils.Sessions.ICA_ANSWER_CALL, SessionTiming.ICA_ANSWER_CALL);
+                put(LogUtils.Sessions.ICA_REJECT_CALL, SessionTiming.ICA_REJECT_CALL);
+                put(LogUtils.Sessions.ICA_DISCONNECT_CALL, SessionTiming.ICA_DISCONNECT_CALL);
+                put(LogUtils.Sessions.ICA_HOLD_CALL, SessionTiming.ICA_HOLD_CALL);
+                put(LogUtils.Sessions.ICA_UNHOLD_CALL, SessionTiming.ICA_UNHOLD_CALL);
+                put(LogUtils.Sessions.ICA_MUTE, SessionTiming.ICA_MUTE);
+                put(LogUtils.Sessions.ICA_SET_AUDIO_ROUTE, SessionTiming.ICA_SET_AUDIO_ROUTE);
+                put(LogUtils.Sessions.ICA_CONFERENCE, SessionTiming.ICA_CONFERENCE);
+                put(LogUtils.Sessions.CSW_HANDLE_CREATE_CONNECTION_COMPLETE,
                         SessionTiming.CSW_HANDLE_CREATE_CONNECTION_COMPLETE);
-                put(Log.Sessions.CSW_SET_ACTIVE, SessionTiming.CSW_SET_ACTIVE);
-                put(Log.Sessions.CSW_SET_RINGING, SessionTiming.CSW_SET_RINGING);
-                put(Log.Sessions.CSW_SET_DIALING, SessionTiming.CSW_SET_DIALING);
-                put(Log.Sessions.CSW_SET_DISCONNECTED, SessionTiming.CSW_SET_DISCONNECTED);
-                put(Log.Sessions.CSW_SET_ON_HOLD, SessionTiming.CSW_SET_ON_HOLD);
-                put(Log.Sessions.CSW_REMOVE_CALL, SessionTiming.CSW_REMOVE_CALL);
-                put(Log.Sessions.CSW_SET_IS_CONFERENCED, SessionTiming.CSW_SET_IS_CONFERENCED);
-                put(Log.Sessions.CSW_ADD_CONFERENCE_CALL, SessionTiming.CSW_ADD_CONFERENCE_CALL);
+                put(LogUtils.Sessions.CSW_SET_ACTIVE, SessionTiming.CSW_SET_ACTIVE);
+                put(LogUtils.Sessions.CSW_SET_RINGING, SessionTiming.CSW_SET_RINGING);
+                put(LogUtils.Sessions.CSW_SET_DIALING, SessionTiming.CSW_SET_DIALING);
+                put(LogUtils.Sessions.CSW_SET_DISCONNECTED, SessionTiming.CSW_SET_DISCONNECTED);
+                put(LogUtils.Sessions.CSW_SET_ON_HOLD, SessionTiming.CSW_SET_ON_HOLD);
+                put(LogUtils.Sessions.CSW_REMOVE_CALL, SessionTiming.CSW_REMOVE_CALL);
+                put(LogUtils.Sessions.CSW_SET_IS_CONFERENCED, SessionTiming.CSW_SET_IS_CONFERENCED);
+                put(LogUtils.Sessions.CSW_ADD_CONFERENCE_CALL, SessionTiming.CSW_ADD_CONFERENCE_CALL);
 
             }};
 
     public static final Map<String, Integer> sLogEventTimingToAnalyticsEventTiming =
             new HashMap<String, Integer>() {{
-                put(Log.Events.Timings.ACCEPT_TIMING,
+                put(LogUtils.Events.Timings.ACCEPT_TIMING,
                         ParcelableCallAnalytics.EventTiming.ACCEPT_TIMING);
-                put(Log.Events.Timings.REJECT_TIMING,
+                put(LogUtils.Events.Timings.REJECT_TIMING,
                         ParcelableCallAnalytics.EventTiming.REJECT_TIMING);
-                put(Log.Events.Timings.DISCONNECT_TIMING,
+                put(LogUtils.Events.Timings.DISCONNECT_TIMING,
                         ParcelableCallAnalytics.EventTiming.DISCONNECT_TIMING);
-                put(Log.Events.Timings.HOLD_TIMING,
+                put(LogUtils.Events.Timings.HOLD_TIMING,
                         ParcelableCallAnalytics.EventTiming.HOLD_TIMING);
-                put(Log.Events.Timings.UNHOLD_TIMING,
+                put(LogUtils.Events.Timings.UNHOLD_TIMING,
                         ParcelableCallAnalytics.EventTiming.UNHOLD_TIMING);
-                put(Log.Events.Timings.OUTGOING_TIME_TO_DIALING_TIMING,
+                put(LogUtils.Events.Timings.OUTGOING_TIME_TO_DIALING_TIMING,
                         ParcelableCallAnalytics.EventTiming.OUTGOING_TIME_TO_DIALING_TIMING);
-                put(Log.Events.Timings.BIND_CS_TIMING,
+                put(LogUtils.Events.Timings.BIND_CS_TIMING,
                         ParcelableCallAnalytics.EventTiming.BIND_CS_TIMING);
-                put(Log.Events.Timings.SCREENING_COMPLETED_TIMING,
+                put(LogUtils.Events.Timings.SCREENING_COMPLETED_TIMING,
                         ParcelableCallAnalytics.EventTiming.SCREENING_COMPLETED_TIMING);
-                put(Log.Events.Timings.DIRECT_TO_VM_FINISHED_TIMING,
+                put(LogUtils.Events.Timings.DIRECT_TO_VM_FINISHED_TIMING,
                         ParcelableCallAnalytics.EventTiming.DIRECT_TO_VM_FINISHED_TIMING);
-                put(Log.Events.Timings.BLOCK_CHECK_FINISHED_TIMING,
+                put(LogUtils.Events.Timings.BLOCK_CHECK_FINISHED_TIMING,
                         ParcelableCallAnalytics.EventTiming.BLOCK_CHECK_FINISHED_TIMING);
-                put(Log.Events.Timings.FILTERING_COMPLETED_TIMING,
+                put(LogUtils.Events.Timings.FILTERING_COMPLETED_TIMING,
                         ParcelableCallAnalytics.EventTiming.FILTERING_COMPLETED_TIMING);
-                put(Log.Events.Timings.FILTERING_TIMED_OUT_TIMING,
+                put(LogUtils.Events.Timings.FILTERING_TIMED_OUT_TIMING,
                         ParcelableCallAnalytics.EventTiming.FILTERING_TIMED_OUT_TIMING);
             }};
 
@@ -169,7 +171,7 @@
         public void setCallConnectionService(String connectionServiceName) {
         }
 
-        public void setCallEvents(Log.CallEventRecord records) {
+        public void setCallEvents(EventManager.EventRecord records) {
         }
 
         public void setCallIsVideo(boolean isVideo) {
@@ -210,7 +212,7 @@
         public String connectionService;
         public boolean isEmergency = false;
 
-        public Log.CallEventRecord callEvents;
+        public EventManager.EventRecord callEvents;
 
         public boolean isVideo = false;
         public List<TelecomLogClass.VideoEvent> videoEvents;
@@ -309,7 +311,7 @@
         }
 
         @Override
-        public void setCallEvents(Log.CallEventRecord records) {
+        public void setCallEvents(EventManager.EventRecord records) {
             this.callEvents = records;
         }
 
@@ -638,10 +640,10 @@
     }
 
     private static TelecomLogClass.Event[] convertLogEventsToProtoEvents(
-            List<Log.CallEvent> logEvents) {
+            List<EventManager.Event> logEvents) {
         long timeOfLastEvent = -1;
         ArrayList<TelecomLogClass.Event> events = new ArrayList<>(logEvents.size());
-        for (Log.CallEvent logEvent : logEvents) {
+        for (EventManager.Event logEvent : logEvents) {
             if (sLogEventToAnalyticsEvent.containsKey(logEvent.eventId)) {
                 TelecomLogClass.Event event = new TelecomLogClass.Event();
                 event.setEventName(sLogEventToAnalyticsEvent.get(logEvent.eventId));
@@ -655,7 +657,7 @@
     }
 
     private static TelecomLogClass.EventTimingEntry logEventTimingToProtoEventTiming(
-            Log.CallEventRecord.EventTiming logEventTiming) {
+            EventManager.EventRecord.EventTiming logEventTiming) {
         int analyticsEventTimingName =
                 sLogEventTimingToAnalyticsEventTiming.containsKey(logEventTiming.name) ?
                         sLogEventTimingToAnalyticsEventTiming.get(logEventTiming.name) :
diff --git a/src/com/android/server/telecom/AsyncRingtonePlayer.java b/src/com/android/server/telecom/AsyncRingtonePlayer.java
index d2a7614..7ed1c85 100644
--- a/src/com/android/server/telecom/AsyncRingtonePlayer.java
+++ b/src/com/android/server/telecom/AsyncRingtonePlayer.java
@@ -21,6 +21,7 @@
 import android.os.Handler;
 import android.os.HandlerThread;
 import android.os.Message;
+import android.telecom.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.os.SomeArgs;
@@ -137,8 +138,8 @@
                 Uri ringtoneUri = incomingCall.getRingtone();
                 String ringtoneUriString = (ringtoneUri == null) ? "null" :
                         ringtoneUri.toSafeString();
-                Log.event(null, Log.Events.ERROR_LOG, "Failed to get ringtone from factory. " +
-                        "Skipping ringing. Uri was: " + ringtoneUriString);
+                Log.addEvent(null, LogUtils.Events.ERROR_LOG, "Failed to get ringtone from " +
+                        "factory. Skipping ringing. Uri was: " + ringtoneUriString);
                 return;
             }
         }
diff --git a/src/com/android/server/telecom/BluetoothManager.java b/src/com/android/server/telecom/BluetoothManager.java
index d31c69d..d043cc5 100644
--- a/src/com/android/server/telecom/BluetoothManager.java
+++ b/src/com/android/server/telecom/BluetoothManager.java
@@ -26,6 +26,8 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.SystemClock;
+import android.telecom.Log;
+import android.telecom.Logging.Runnable;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.IndentingPrintWriter;
diff --git a/src/com/android/server/telecom/BluetoothPhoneServiceImpl.java b/src/com/android/server/telecom/BluetoothPhoneServiceImpl.java
index f29a5e3..2173fa5 100644
--- a/src/com/android/server/telecom/BluetoothPhoneServiceImpl.java
+++ b/src/com/android/server/telecom/BluetoothPhoneServiceImpl.java
@@ -29,6 +29,7 @@
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.telecom.Connection;
+import android.telecom.Log;
 import android.telecom.PhoneAccount;
 import android.telecom.VideoProfile;
 import android.telephony.PhoneNumberUtils;
@@ -497,6 +498,8 @@
                 return true;
             }
         } else if (chld == CHLD_TYPE_RELEASEACTIVE_ACCEPTHELD) {
+            if (activeCall == null && ringingCall == null && heldCall == null)
+                return false;
             if (activeCall != null) {
                 mCallsManager.disconnectCall(activeCall);
                 if (ringingCall != null) {
@@ -506,6 +509,12 @@
                 }
                 return true;
             }
+            if (ringingCall != null) {
+                mCallsManager.answerCall(ringingCall, ringingCall.getVideoState());
+            } else if (heldCall != null) {
+                mCallsManager.unholdCall(heldCall);
+            }
+            return true;
         } else if (chld == CHLD_TYPE_HOLDACTIVE_ACCEPTHELD) {
             if (activeCall != null && activeCall.can(Connection.CAPABILITY_SWAP_CONFERENCE)) {
                 activeCall.swapConference();
diff --git a/src/com/android/server/telecom/Call.java b/src/com/android/server/telecom/Call.java
index 1227fce..a03257d 100644
--- a/src/com/android/server/telecom/Call.java
+++ b/src/com/android/server/telecom/Call.java
@@ -30,6 +30,8 @@
 import android.telecom.DisconnectCause;
 import android.telecom.Connection;
 import android.telecom.GatewayInfo;
+import android.telecom.Log;
+import android.telecom.Logging.EventManager;
 import android.telecom.ParcelableConnection;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
@@ -48,8 +50,10 @@
 import com.android.internal.util.Preconditions;
 
 import java.lang.String;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Date;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
@@ -63,7 +67,7 @@
  *  connected etc).
  */
 @VisibleForTesting
-public class Call implements CreateConnectionResponse {
+public class Call implements CreateConnectionResponse, EventManager.Loggable {
     public final static String CALL_ID_UNKNOWN = "-1";
     public final static long DATA_USAGE_NOT_SET = -1;
 
@@ -447,7 +451,6 @@
                 || callDirection == CALL_DIRECTION_INCOMING;
         maybeLoadCannedSmsResponses();
         mAnalytics = new Analytics.CallInfo();
-
     }
 
     /**
@@ -519,7 +522,7 @@
                 analyticsDirection = Analytics.UNKNOWN_DIRECTION;
         }
         mAnalytics = Analytics.initiateCallAnalytics(mId, analyticsDirection);
-        Log.event(this, Log.Events.CREATED);
+        Log.addEvent(this, LogUtils.Events.CREATED);
     }
 
     public Analytics.CallInfo getAnalytics() {
@@ -527,7 +530,7 @@
     }
 
     public void destroy() {
-        Log.event(this, Log.Events.DESTROYED);
+        Log.addEvent(this, LogUtils.Events.DESTROYED);
     }
 
     /** {@inheritDoc} */
@@ -550,6 +553,20 @@
                 Connection.propertiesToString(getConnectionProperties()));
     }
 
+    @Override
+    public String getDescription() {
+        StringBuilder s = new StringBuilder("Call ");
+        s.append(getId());
+        s.append(" [");
+        s.append(SimpleDateFormat.getDateTimeInstance().format(new Date(getCreationTimeMillis())));
+        s.append("]");
+        s.append(isIncoming() ? "(MT - incoming)" : "(MO - outgoing)");
+        s.append("\n\tTo address: ");
+        s.append(Log.piiHandle(getHandle()));
+        s.append("\n");
+        return s.toString();
+    }
+
     /**
      * Builds a debug-friendly description string for a video state.
      * <p>
@@ -686,32 +703,32 @@
             Object data = null;
             switch (newState) {
                 case CallState.ACTIVE:
-                    event = Log.Events.SET_ACTIVE;
+                    event = LogUtils.Events.SET_ACTIVE;
                     break;
                 case CallState.CONNECTING:
-                    event = Log.Events.SET_CONNECTING;
+                    event = LogUtils.Events.SET_CONNECTING;
                     break;
                 case CallState.DIALING:
-                    event = Log.Events.SET_DIALING;
+                    event = LogUtils.Events.SET_DIALING;
                     break;
                 case CallState.PULLING:
-                    event = Log.Events.SET_PULLING;
+                    event = LogUtils.Events.SET_PULLING;
                     break;
                 case CallState.DISCONNECTED:
-                    event = Log.Events.SET_DISCONNECTED;
+                    event = LogUtils.Events.SET_DISCONNECTED;
                     data = getDisconnectCause();
                     break;
                 case CallState.DISCONNECTING:
-                    event = Log.Events.SET_DISCONNECTING;
+                    event = LogUtils.Events.SET_DISCONNECTING;
                     break;
                 case CallState.ON_HOLD:
-                    event = Log.Events.SET_HOLD;
+                    event = LogUtils.Events.SET_HOLD;
                     break;
                 case CallState.SELECT_PHONE_ACCOUNT:
-                    event = Log.Events.SET_SELECT_PHONE_ACCOUNT;
+                    event = LogUtils.Events.SET_SELECT_PHONE_ACCOUNT;
                     break;
                 case CallState.RINGING:
-                    event = Log.Events.SET_RINGING;
+                    event = LogUtils.Events.SET_RINGING;
                     break;
             }
             if (event != null) {
@@ -721,7 +738,7 @@
                     // If data exists, add it to tag.  If no tag, just use data.toString().
                     stringData = stringData == null ? data.toString() : stringData + "> " + data;
                 }
-                Log.event(this, event, stringData);
+                Log.addEvent(this, event, stringData);
             }
         }
     }
@@ -1032,7 +1049,7 @@
             }
 
             int xorCaps = previousCapabilities ^ mConnectionCapabilities;
-            Log.event(this, Log.Events.CAPABILITY_CHANGE,
+            Log.addEvent(this, LogUtils.Events.CAPABILITY_CHANGE,
                     "Current: [%s], Removed [%s], Added [%s]",
                     Connection.capabilitiesToStringShort(mConnectionCapabilities),
                     Connection.capabilitiesToStringShort(previousCapabilities & xorCaps),
@@ -1057,7 +1074,7 @@
             if (wasExternal != isExternal) {
                 Log.v(this, "setConnectionProperties: external call changed isExternal = %b",
                         isExternal);
-                Log.event(this, Log.Events.IS_EXTERNAL, isExternal);
+                Log.addEvent(this, LogUtils.Events.IS_EXTERNAL, isExternal);
                 for (Listener l : mListeners) {
                     l.onExternalCallChanged(this, isExternal);
                 }
@@ -1067,7 +1084,7 @@
             mAnalytics.addCallProperties(mConnectionProperties);
 
             int xorProps = previousProperties ^ mConnectionProperties;
-            Log.event(this, Log.Events.PROPERTY_CHANGE,
+            Log.addEvent(this, LogUtils.Events.PROPERTY_CHANGE,
                     "Current: [%s], Removed [%s], Added [%s]",
                     Connection.propertiesToStringShort(mConnectionProperties),
                     Connection.propertiesToStringShort(previousProperties & xorProps),
@@ -1268,7 +1285,7 @@
         } else {
             Log.i(this, "Send playDtmfTone to connection service for call %s", this);
             mConnectionService.playDtmfTone(this, digit);
-            Log.event(this, Log.Events.START_DTMF, Log.pii(digit));
+            Log.addEvent(this, LogUtils.Events.START_DTMF, Log.pii(digit));
         }
     }
 
@@ -1280,7 +1297,7 @@
             Log.w(this, "stopDtmfTone() request on a call without a connection service.");
         } else {
             Log.i(this, "Send stopDtmfTone to connection service for call %s", this);
-            Log.event(this, Log.Events.STOP_DTMF);
+            Log.addEvent(this, LogUtils.Events.STOP_DTMF);
             mConnectionService.stopDtmfTone(this);
         }
     }
@@ -1293,7 +1310,7 @@
             Log.w(this, "silence() request on a call without a connection service.");
         } else {
             Log.i(this, "Send silence to connection service for call %s", this);
-            Log.event(this, Log.Events.SILENCE);
+            Log.addEvent(this, LogUtils.Events.SILENCE);
             mConnectionService.silence(this);
         }
     }
@@ -1308,7 +1325,7 @@
      */
     @VisibleForTesting
     public void disconnect(boolean wasViaNewOutgoingCallBroadcaster) {
-        Log.event(this, Log.Events.REQUEST_DISCONNECT);
+        Log.addEvent(this, LogUtils.Events.REQUEST_DISCONNECT);
 
         // Track that the call is now locally disconnecting.
         setLocallyDisconnecting(true);
@@ -1388,7 +1405,7 @@
                 Log.e(this, new NullPointerException(),
                         "answer call failed due to null CS callId=%s", getId());
             }
-            Log.event(this, Log.Events.REQUEST_ACCEPT);
+            Log.addEvent(this, LogUtils.Events.REQUEST_ACCEPT);
         }
     }
 
@@ -1412,8 +1429,7 @@
                 Log.e(this, new NullPointerException(),
                         "reject call failed due to null CS callId=%s", getId());
             }
-            Log.event(this, Log.Events.REQUEST_REJECT);
-
+            Log.addEvent(this, LogUtils.Events.REQUEST_REJECT);
         }
     }
 
@@ -1428,7 +1444,7 @@
                 Log.e(this, new NullPointerException(),
                         "hold call failed due to null CS callId=%s", getId());
             }
-            Log.event(this, Log.Events.REQUEST_HOLD);
+            Log.addEvent(this, LogUtils.Events.REQUEST_HOLD);
         }
     }
 
@@ -1443,7 +1459,7 @@
                 Log.e(this, new NullPointerException(),
                         "unhold call failed due to null CS callId=%s", getId());
             }
-            Log.event(this, Log.Events.REQUEST_UNHOLD);
+            Log.addEvent(this, LogUtils.Events.REQUEST_UNHOLD);
         }
     }
 
@@ -1589,7 +1605,7 @@
         if (mConnectionService == null) {
             Log.w(this, "conference requested on a call without a connection service.");
         } else {
-            Log.event(this, Log.Events.CONFERENCE_WITH, otherCall);
+            Log.addEvent(this, LogUtils.Events.CONFERENCE_WITH, otherCall);
             mConnectionService.conference(this, otherCall);
         }
     }
@@ -1598,7 +1614,7 @@
         if (mConnectionService == null) {
             Log.w(this, "splitting from conference call without a connection service");
         } else {
-            Log.event(this, Log.Events.SPLIT_FROM_CONFERENCE);
+            Log.addEvent(this, LogUtils.Events.SPLIT_FROM_CONFERENCE);
             mConnectionService.splitFromConference(this);
         }
     }
@@ -1608,7 +1624,7 @@
         if (mConnectionService == null) {
             Log.w(this, "merging conference calls without a connection service.");
         } else if (can(Connection.CAPABILITY_MERGE_CONFERENCE)) {
-            Log.event(this, Log.Events.CONFERENCE_WITH);
+            Log.addEvent(this, LogUtils.Events.CONFERENCE_WITH);
             mConnectionService.mergeConference(this);
             mWasConferencePreviouslyMerged = true;
         }
@@ -1619,7 +1635,7 @@
         if (mConnectionService == null) {
             Log.w(this, "swapping conference calls without a connection service.");
         } else if (can(Connection.CAPABILITY_SWAP_CONFERENCE)) {
-            Log.event(this, Log.Events.SWAP);
+            Log.addEvent(this, LogUtils.Events.SWAP);
             mConnectionService.swapConference(this);
             switch (mChildCalls.size()) {
                 case 1:
@@ -1671,7 +1687,7 @@
             return;
         }
 
-        Log.event(this, Log.Events.REQUEST_PULL);
+        Log.addEvent(this, LogUtils.Events.REQUEST_PULL);
         mConnectionService.pullExternalCall(this);
     }
 
@@ -1712,7 +1728,7 @@
             mParentCall.addChildCall(this);
         }
 
-        Log.event(this, Log.Events.SET_PARENT, mParentCall);
+        Log.addEvent(this, LogUtils.Events.SET_PARENT, mParentCall);
         for (Listener l : mListeners) {
             l.onParentChanged(this);
         }
@@ -1749,7 +1765,7 @@
             mConferenceLevelActiveCall = call;
             mChildCalls.add(call);
 
-            Log.event(this, Log.Events.ADD_CHILD, call);
+            Log.addEvent(this, LogUtils.Events.ADD_CHILD, call);
 
             for (Listener l : mListeners) {
                 l.onChildrenChanged(this);
@@ -1759,7 +1775,7 @@
 
     private void removeChildCall(Call call) {
         if (mChildCalls.remove(call)) {
-            Log.event(this, Log.Events.REMOVE_CHILD, call);
+            Log.addEvent(this, LogUtils.Events.REMOVE_CHILD, call);
             for (Listener l : mListeners) {
                 l.onChildrenChanged(this);
             }
@@ -2033,7 +2049,7 @@
         int previousVideoState = mVideoState;
         mVideoState = videoState;
         if (mVideoState != previousVideoState) {
-            Log.event(this, Log.Events.VIDEO_STATE_CHANGED,
+            Log.addEvent(this, LogUtils.Events.VIDEO_STATE_CHANGED,
                     VideoProfile.videoStateToString(videoState));
             for (Listener l : mListeners) {
                 l.onVideoStateChanged(this, previousVideoState, mVideoState);
@@ -2191,10 +2207,10 @@
      * @param extras The extras.
      */
     public void onConnectionEvent(String event, Bundle extras) {
-        Log.event(this, Log.Events.CONNECTION_EVENT, event);
+        Log.addEvent(this, LogUtils.Events.CONNECTION_EVENT, event);
         if (Connection.EVENT_ON_HOLD_TONE_START.equals(event)) {
             mIsRemotelyHeld = true;
-            Log.event(this, Log.Events.REMOTELY_HELD);
+            Log.addEvent(this, LogUtils.Events.REMOTELY_HELD);
             // Inform listeners of the fact that a call hold tone was received.  This will trigger
             // the CallAudioManager to play a tone via the InCallTonePlayer.
             for (Listener l : mListeners) {
@@ -2202,7 +2218,7 @@
             }
         } else if (Connection.EVENT_ON_HOLD_TONE_END.equals(event)) {
             mIsRemotelyHeld = false;
-            Log.event(this, Log.Events.REMOTELY_UNHELD);
+            Log.addEvent(this, LogUtils.Events.REMOTELY_UNHELD);
             for (Listener l : mListeners) {
                 l.onHoldToneRequested(this);
             }
diff --git a/src/com/android/server/telecom/CallAudioManager.java b/src/com/android/server/telecom/CallAudioManager.java
index 236df5f..4a35acc 100644
--- a/src/com/android/server/telecom/CallAudioManager.java
+++ b/src/com/android/server/telecom/CallAudioManager.java
@@ -20,6 +20,7 @@
 import android.media.IAudioService;
 import android.media.ToneGenerator;
 import android.telecom.CallAudioState;
+import android.telecom.Log;
 import android.telecom.VideoProfile;
 import android.util.SparseArray;
 
diff --git a/src/com/android/server/telecom/CallAudioModeStateMachine.java b/src/com/android/server/telecom/CallAudioModeStateMachine.java
index 57043bc..7121a53 100644
--- a/src/com/android/server/telecom/CallAudioModeStateMachine.java
+++ b/src/com/android/server/telecom/CallAudioModeStateMachine.java
@@ -18,6 +18,9 @@
 
 import android.media.AudioManager;
 import android.os.Message;
+import android.telecom.Log;
+import android.telecom.Logging.Runnable;
+import android.telecom.Logging.Session;
 import android.util.SparseArray;
 
 import com.android.internal.util.IState;
@@ -528,4 +531,4 @@
             return mUnfocusedState;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/server/telecom/CallAudioRouteStateMachine.java b/src/com/android/server/telecom/CallAudioRouteStateMachine.java
index ce03e61..28b3ec5 100644
--- a/src/com/android/server/telecom/CallAudioRouteStateMachine.java
+++ b/src/com/android/server/telecom/CallAudioRouteStateMachine.java
@@ -32,6 +32,8 @@
 import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.telecom.CallAudioState;
+import android.telecom.Log;
+import android.telecom.Logging.Session;
 import android.util.SparseArray;
 
 import com.android.internal.util.IState;
@@ -113,10 +115,10 @@
     public static final int RINGING_FOCUS = 3;
 
     private static final SparseArray<String> AUDIO_ROUTE_TO_LOG_EVENT = new SparseArray<String>() {{
-        put(CallAudioState.ROUTE_BLUETOOTH, Log.Events.AUDIO_ROUTE_BT);
-        put(CallAudioState.ROUTE_EARPIECE, Log.Events.AUDIO_ROUTE_EARPIECE);
-        put(CallAudioState.ROUTE_SPEAKER, Log.Events.AUDIO_ROUTE_SPEAKER);
-        put(CallAudioState.ROUTE_WIRED_HEADSET, Log.Events.AUDIO_ROUTE_HEADSET);
+        put(CallAudioState.ROUTE_BLUETOOTH, LogUtils.Events.AUDIO_ROUTE_BT);
+        put(CallAudioState.ROUTE_EARPIECE, LogUtils.Events.AUDIO_ROUTE_EARPIECE);
+        put(CallAudioState.ROUTE_SPEAKER, LogUtils.Events.AUDIO_ROUTE_SPEAKER);
+        put(CallAudioState.ROUTE_WIRED_HEADSET, LogUtils.Events.AUDIO_ROUTE_HEADSET);
     }};
 
     private static final SparseArray<String> MESSAGE_CODE_TO_NAME = new SparseArray<String>() {{
@@ -209,13 +211,13 @@
         @Override
         public void enter() {
             super.enter();
-            Log.event(mCallsManager.getForegroundCall(), Log.Events.AUDIO_ROUTE,
+            Log.addEvent(mCallsManager.getForegroundCall(), LogUtils.Events.AUDIO_ROUTE,
                     "Entering state " + getName());
         }
 
         @Override
         public void exit() {
-            Log.event(mCallsManager.getForegroundCall(), Log.Events.AUDIO_ROUTE,
+            Log.addEvent(mCallsManager.getForegroundCall(), LogUtils.Events.AUDIO_ROUTE,
                     "Leaving state " + getName());
             super.exit();
         }
@@ -224,18 +226,18 @@
         public boolean processMessage(Message msg) {
             switch (msg.what) {
                 case CONNECT_WIRED_HEADSET:
-                    Log.event(mCallsManager.getForegroundCall(), Log.Events.AUDIO_ROUTE,
+                    Log.addEvent(mCallsManager.getForegroundCall(), LogUtils.Events.AUDIO_ROUTE,
                             "Wired headset connected");
                     mAvailableRoutes &= ~ROUTE_EARPIECE;
                     mAvailableRoutes |= ROUTE_WIRED_HEADSET;
                     return NOT_HANDLED;
                 case CONNECT_BLUETOOTH:
-                    Log.event(mCallsManager.getForegroundCall(), Log.Events.AUDIO_ROUTE,
+                    Log.addEvent(mCallsManager.getForegroundCall(), LogUtils.Events.AUDIO_ROUTE,
                             "Bluetooth connected");
                     mAvailableRoutes |= ROUTE_BLUETOOTH;
                     return NOT_HANDLED;
                 case DISCONNECT_WIRED_HEADSET:
-                    Log.event(mCallsManager.getForegroundCall(), Log.Events.AUDIO_ROUTE,
+                    Log.addEvent(mCallsManager.getForegroundCall(), LogUtils.Events.AUDIO_ROUTE,
                             "Wired headset disconnected");
                     mAvailableRoutes &= ~ROUTE_WIRED_HEADSET;
                     if (mDoesDeviceSupportEarpieceRoute) {
@@ -243,7 +245,7 @@
                     }
                     return NOT_HANDLED;
                 case DISCONNECT_BLUETOOTH:
-                    Log.event(mCallsManager.getForegroundCall(), Log.Events.AUDIO_ROUTE,
+                    Log.addEvent(mCallsManager.getForegroundCall(), LogUtils.Events.AUDIO_ROUTE,
                             "Bluetooth disconnected");
                     mAvailableRoutes &= ~ROUTE_BLUETOOTH;
                     return NOT_HANDLED;
@@ -1344,7 +1346,7 @@
 
     private void setMuteOn(boolean mute) {
         mIsMuted = mute;
-        Log.event(mCallsManager.getForegroundCall(), mute ? Log.Events.MUTE : Log.Events.UNMUTE);
+        Log.addEvent(mCallsManager.getForegroundCall(), mute ? LogUtils.Events.MUTE : LogUtils.Events.UNMUTE);
 
         if (mute != mAudioManager.isMicrophoneMute() && isInActiveState()) {
             IAudioService audio = mAudioServiceFactory.getAudioService();
@@ -1401,9 +1403,9 @@
                     newCallAudioState);
             if (force || !newCallAudioState.equals(mLastKnownCallAudioState)) {
                 if (newCallAudioState.getRoute() != mLastKnownCallAudioState.getRoute()) {
-                    Log.event(mCallsManager.getForegroundCall(),
+                    Log.addEvent(mCallsManager.getForegroundCall(),
                             AUDIO_ROUTE_TO_LOG_EVENT.get(newCallAudioState.getRoute(),
-                                    Log.Events.AUDIO_ROUTE));
+                                    LogUtils.Events.AUDIO_ROUTE));
                 }
 
                 mCallsManager.onCallAudioStateChanged(mLastKnownCallAudioState, newCallAudioState);
diff --git a/src/com/android/server/telecom/CallIntentProcessor.java b/src/com/android/server/telecom/CallIntentProcessor.java
index 1219216..2126c48 100644
--- a/src/com/android/server/telecom/CallIntentProcessor.java
+++ b/src/com/android/server/telecom/CallIntentProcessor.java
@@ -11,6 +11,7 @@
 import android.os.UserManager;
 import android.telecom.Connection;
 import android.telecom.DefaultDialerManager;
+import android.telecom.Log;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
diff --git a/src/com/android/server/telecom/CallLogManager.java b/src/com/android/server/telecom/CallLogManager.java
index 80f1da2..d89f54a 100755
--- a/src/com/android/server/telecom/CallLogManager.java
+++ b/src/com/android/server/telecom/CallLogManager.java
@@ -29,6 +29,7 @@
 import android.os.PersistableBundle;
 import android.provider.CallLog.Calls;
 import android.telecom.DisconnectCause;
+import android.telecom.Log;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.VideoProfile;
@@ -172,7 +173,8 @@
                     new LogCallCompletedListener() {
                         @Override
                         public void onLogCompleted(@Nullable Uri uri) {
-                            mMissedCallNotifier.showMissedCallNotification(call);
+                            mMissedCallNotifier.showMissedCallNotification(
+                                    new MissedCallNotifier.CallInfo(call));
                         }
                     });
         } else {
diff --git a/src/com/android/server/telecom/CallerInfoLookupHelper.java b/src/com/android/server/telecom/CallerInfoLookupHelper.java
index 244a802..f67a7f7 100644
--- a/src/com/android/server/telecom/CallerInfoLookupHelper.java
+++ b/src/com/android/server/telecom/CallerInfoLookupHelper.java
@@ -23,6 +23,9 @@
 import android.net.Uri;
 import android.os.Handler;
 import android.os.Looper;
+import android.telecom.Log;
+import android.telecom.Logging.Runnable;
+import android.telecom.Logging.Session;
 import android.text.TextUtils;
 
 import com.android.internal.annotations.VisibleForTesting;
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index d6462d7..b4952a5 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -40,10 +40,12 @@
 import android.telecom.Connection;
 import android.telecom.DisconnectCause;
 import android.telecom.GatewayInfo;
+import android.telecom.Log;
 import android.telecom.ParcelableConference;
 import android.telecom.ParcelableConnection;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
+import android.telecom.Logging.Runnable;
 import android.telecom.TelecomManager;
 import android.telecom.VideoProfile;
 import android.telephony.PhoneNumberUtils;
@@ -415,7 +417,8 @@
                         result.shouldShowNotification);
             } else if (result.shouldShowNotification) {
                 Log.i(this, "onCallScreeningCompleted: blocked call, showing notification.");
-                mMissedCallNotifier.showMissedCallNotification(incomingCall);
+                mMissedCallNotifier.showMissedCallNotification(
+                        new MissedCallNotifier.CallInfo(incomingCall));
             }
         }
     }
@@ -1248,12 +1251,12 @@
                 // Only attempt to hold parent calls and not the individual children.
                 if (c != null && c.isAlive() && c != call && c.getParentCall() == null) {
                     otherCallHeld = true;
-                    Log.event(c, Log.Events.SWAP);
+                    Log.addEvent(c, LogUtils.Events.SWAP);
                     c.hold();
                 }
             }
             if (otherCallHeld) {
-                Log.event(call, Log.Events.SWAP);
+                Log.addEvent(call, LogUtils.Events.SWAP);
             }
             call.unhold();
         }
@@ -1779,11 +1782,11 @@
         updateCanAddCall();
         // onCallAdded for calls which immediately take the foreground (like the first call).
         for (CallsManagerListener listener : mListeners) {
-            if (Log.SYSTRACE_DEBUG) {
+            if (LogUtils.SYSTRACE_DEBUG) {
                 Trace.beginSection(listener.getClass().toString() + " addCall");
             }
             listener.onCallAdded(call);
-            if (Log.SYSTRACE_DEBUG) {
+            if (LogUtils.SYSTRACE_DEBUG) {
                 Trace.endSection();
             }
         }
@@ -1810,11 +1813,11 @@
         if (shouldNotify) {
             updateCanAddCall();
             for (CallsManagerListener listener : mListeners) {
-                if (Log.SYSTRACE_DEBUG) {
+                if (LogUtils.SYSTRACE_DEBUG) {
                     Trace.beginSection(listener.getClass().toString() + " onCallRemoved");
                 }
                 listener.onCallRemoved(call);
-                if (Log.SYSTRACE_DEBUG) {
+                if (LogUtils.SYSTRACE_DEBUG) {
                     Trace.endSection();
                 }
             }
@@ -1851,11 +1854,11 @@
             if (mCalls.contains(call)) {
                 updateCanAddCall();
                 for (CallsManagerListener listener : mListeners) {
-                    if (Log.SYSTRACE_DEBUG) {
+                    if (LogUtils.SYSTRACE_DEBUG) {
                         Trace.beginSection(listener.getClass().toString() + " onCallStateChanged");
                     }
                     listener.onCallStateChanged(call, oldState, newState);
-                    if (Log.SYSTRACE_DEBUG) {
+                    if (LogUtils.SYSTRACE_DEBUG) {
                         Trace.endSection();
                     }
                 }
@@ -1869,11 +1872,11 @@
         if (newCanAddCall != mCanAddCall) {
             mCanAddCall = newCanAddCall;
             for (CallsManagerListener listener : mListeners) {
-                if (Log.SYSTRACE_DEBUG) {
+                if (LogUtils.SYSTRACE_DEBUG) {
                     Trace.beginSection(listener.getClass().toString() + " updateCanAddCall");
                 }
                 listener.onCanAddCallChanged(mCanAddCall);
-                if (Log.SYSTRACE_DEBUG) {
+                if (LogUtils.SYSTRACE_DEBUG) {
                     Trace.endSection();
                 }
             }
@@ -2184,8 +2187,13 @@
     }
 
     private void reloadMissedCallsOfUser(UserHandle userHandle) {
-        mMissedCallNotifier.reloadFromDatabase(
-                mLock, this, mContactsAsyncHelper, mCallerInfoAsyncQueryFactory, userHandle);
+        mMissedCallNotifier.reloadFromDatabase(mCallerInfoLookupHelper,
+                new MissedCallNotifier.CallInfoFactory(), userHandle);
+    }
+
+    public void onBootCompleted() {
+        mMissedCallNotifier.reloadAfterBootComplete(mCallerInfoLookupHelper,
+                new MissedCallNotifier.CallInfoFactory());
     }
 
     /**
diff --git a/src/com/android/server/telecom/ConnectionServiceWrapper.java b/src/com/android/server/telecom/ConnectionServiceWrapper.java
index 6ec8945..a740df4 100644
--- a/src/com/android/server/telecom/ConnectionServiceWrapper.java
+++ b/src/com/android/server/telecom/ConnectionServiceWrapper.java
@@ -31,6 +31,8 @@
 import android.telecom.ConnectionService;
 import android.telecom.DisconnectCause;
 import android.telecom.GatewayInfo;
+import android.telecom.Log;
+import android.telecom.Logging.Session;
 import android.telecom.ParcelableConference;
 import android.telecom.ParcelableConnection;
 import android.telecom.PhoneAccountHandle;
@@ -66,8 +68,8 @@
 
         @Override
         public void handleCreateConnectionComplete(String callId, ConnectionRequest request,
-                ParcelableConnection connection) {
-            Log.startSession(Log.Sessions.CSW_HANDLE_CREATE_CONNECTION_COMPLETE);
+                ParcelableConnection connection, Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, LogUtils.Sessions.CSW_HANDLE_CREATE_CONNECTION_COMPLETE);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -82,8 +84,8 @@
         }
 
         @Override
-        public void setActive(String callId) {
-            Log.startSession(Log.Sessions.CSW_SET_ACTIVE);
+        public void setActive(String callId, Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, LogUtils.Sessions.CSW_SET_ACTIVE);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -102,8 +104,8 @@
         }
 
         @Override
-        public void setRinging(String callId) {
-            Log.startSession(Log.Sessions.CSW_SET_RINGING);
+        public void setRinging(String callId, Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, LogUtils.Sessions.CSW_SET_RINGING);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -122,8 +124,9 @@
         }
 
         @Override
-        public void setVideoProvider(String callId, IVideoProvider videoProvider) {
-            Log.startSession("CSW.sVP");
+        public void setVideoProvider(String callId, IVideoProvider videoProvider,
+                Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, "CSW.sVP");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -140,8 +143,8 @@
         }
 
         @Override
-        public void setDialing(String callId) {
-            Log.startSession(Log.Sessions.CSW_SET_DIALING);
+        public void setDialing(String callId, Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, LogUtils.Sessions.CSW_SET_DIALING);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -160,8 +163,8 @@
         }
 
         @Override
-        public void setPulling(String callId) {
-            Log.startSession(Log.Sessions.CSW_SET_PULLING);
+	    public void setPulling(String callId, Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, LogUtils.Sessions.CSW_SET_PULLING);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -178,8 +181,9 @@
         }
 
         @Override
-        public void setDisconnected(String callId, DisconnectCause disconnectCause) {
-            Log.startSession(Log.Sessions.CSW_SET_DISCONNECTED);
+        public void setDisconnected(String callId, DisconnectCause disconnectCause,
+                Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, LogUtils.Sessions.CSW_SET_DISCONNECTED);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -199,8 +203,8 @@
         }
 
         @Override
-        public void setOnHold(String callId) {
-            Log.startSession(Log.Sessions.CSW_SET_ON_HOLD);
+        public void setOnHold(String callId, Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, LogUtils.Sessions.CSW_SET_ON_HOLD);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -219,8 +223,9 @@
         }
 
         @Override
-        public void setRingbackRequested(String callId, boolean ringback) {
-            Log.startSession("CSW.SRR");
+        public void setRingbackRequested(String callId, boolean ringback,
+                Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, "CSW.SRR");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -239,8 +244,8 @@
         }
 
         @Override
-        public void removeCall(String callId) {
-            Log.startSession(Log.Sessions.CSW_REMOVE_CALL);
+        public void removeCall(String callId, Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, LogUtils.Sessions.CSW_REMOVE_CALL);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -262,8 +267,9 @@
         }
 
         @Override
-        public void setConnectionCapabilities(String callId, int connectionCapabilities) {
-            Log.startSession("CSW.sCC");
+        public void setConnectionCapabilities(String callId, int connectionCapabilities,
+                Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, "CSW.sCC");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -283,7 +289,8 @@
         }
 
         @Override
-        public void setConnectionProperties(String callId, int connectionProperties) {
+        public void setConnectionProperties(String callId, int connectionProperties,
+                Session.Info sessionInfo) {
             Log.startSession("CSW.sCP");
             long token = Binder.clearCallingIdentity();
             try {
@@ -301,8 +308,9 @@
         }
 
         @Override
-        public void setIsConferenced(String callId, String conferenceCallId) {
-            Log.startSession(Log.Sessions.CSW_SET_IS_CONFERENCED);
+        public void setIsConferenced(String callId, String conferenceCallId,
+                Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, LogUtils.Sessions.CSW_SET_IS_CONFERENCED);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -327,8 +335,8 @@
         }
 
         @Override
-        public void setConferenceMergeFailed(String callId) {
-            Log.startSession("CSW.sCMF");
+        public void setConferenceMergeFailed(String callId, Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, "CSW.sCMF");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -350,8 +358,9 @@
         }
 
         @Override
-        public void addConferenceCall(String callId, ParcelableConference parcelableConference) {
-            Log.startSession(Log.Sessions.CSW_ADD_CONFERENCE_CALL);
+        public void addConferenceCall(String callId, ParcelableConference parcelableConference,
+                Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, LogUtils.Sessions.CSW_ADD_CONFERENCE_CALL);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -437,8 +446,9 @@
         }
 
         @Override
-        public void onPostDialWait(String callId, String remaining) throws RemoteException {
-            Log.startSession("CSW.oPDW");
+        public void onPostDialWait(String callId, String remaining,
+                Session.Info sessionInfo) throws RemoteException {
+            Log.startSession(sessionInfo, "CSW.oPDW");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -457,8 +467,9 @@
         }
 
         @Override
-        public void onPostDialChar(String callId, char nextChar) throws RemoteException {
-            Log.startSession("CSW.oPDC");
+        public void onPostDialChar(String callId, char nextChar,
+                Session.Info sessionInfo) throws RemoteException {
+            Log.startSession(sessionInfo, "CSW.oPDC");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -477,9 +488,10 @@
         }
 
         @Override
-        public void queryRemoteConnectionServices(RemoteServiceCallback callback) {
+        public void queryRemoteConnectionServices(RemoteServiceCallback callback,
+                Session.Info sessionInfo) {
             final UserHandle callingUserHandle = Binder.getCallingUserHandle();
-            Log.startSession("CSW.qRCS");
+            Log.startSession(sessionInfo, "CSW.qRCS");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -494,8 +506,8 @@
         }
 
         @Override
-        public void setVideoState(String callId, int videoState) {
-            Log.startSession("CSW.sVS");
+        public void setVideoState(String callId, int videoState, Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, "CSW.sVS");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -512,8 +524,8 @@
         }
 
         @Override
-        public void setIsVoipAudioMode(String callId, boolean isVoip) {
-            Log.startSession("CSW.sIVAM");
+        public void setIsVoipAudioMode(String callId, boolean isVoip, Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, "CSW.sIVAM");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -530,8 +542,9 @@
         }
 
         @Override
-        public void setStatusHints(String callId, StatusHints statusHints) {
-            Log.startSession("CSW.sSH");
+        public void setStatusHints(String callId, StatusHints statusHints,
+                Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, "CSW.sSH");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -548,8 +561,8 @@
         }
 
         @Override
-        public void putExtras(String callId, Bundle extras) {
-            Log.startSession("CSW.pE");
+        public void putExtras(String callId, Bundle extras, Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, "CSW.pE");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -566,8 +579,8 @@
         }
 
         @Override
-        public void removeExtras(String callId, List<String> keys) {
-            Log.startSession("CSW.rE");
+        public void removeExtras(String callId, List<String> keys, Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, "CSW.rE");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -584,8 +597,9 @@
         }
 
         @Override
-        public void setAddress(String callId, Uri address, int presentation) {
-            Log.startSession("CSW.sA");
+        public void setAddress(String callId, Uri address, int presentation,
+                Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, "CSW.sA");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -602,9 +616,9 @@
         }
 
         @Override
-        public void setCallerDisplayName(
-                String callId, String callerDisplayName, int presentation) {
-            Log.startSession("CSW.sCDN");
+        public void setCallerDisplayName(String callId, String callerDisplayName, int presentation,
+                Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, "CSW.sCDN");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -622,9 +636,9 @@
         }
 
         @Override
-        public void setConferenceableConnections(
-                String callId, List<String> conferenceableCallIds) {
-            Log.startSession("CSW.sCC");
+        public void setConferenceableConnections(String callId, List<String> conferenceableCallIds,
+                Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, "CSW.sCC");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -651,8 +665,9 @@
         }
 
         @Override
-        public void addExistingConnection(String callId, ParcelableConnection connection) {
-            Log.startSession("CSW.aEC");
+	public void addExistingConnection(String callId, ParcelableConnection connection,
+	        Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, "CSW.aEC");
             UserHandle userHandle = Binder.getCallingUserHandle();
             // Check that the Calling Package matches PhoneAccountHandle's Component Package
             PhoneAccountHandle callingPhoneAccountHandle = connection.getPhoneAccount();
@@ -723,8 +738,9 @@
         }
 
         @Override
-        public void onConnectionEvent(String callId, String event, Bundle extras) {
-            Log.startSession("CSW.oCE");
+        public void onConnectionEvent(String callId, String event, Bundle extras,
+                Session.Info sessionInfo) {
+            Log.startSession(sessionInfo, "CSW.oCE");
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -786,7 +802,7 @@
         if (isServiceValid("addConnectionServiceAdapter")) {
             try {
                 logOutgoing("addConnectionServiceAdapter %s", adapter);
-                mServiceInterface.addConnectionServiceAdapter(adapter);
+                mServiceInterface.addConnectionServiceAdapter(adapter, Log.getExternalSession());
             } catch (RemoteException e) {
             }
         }
@@ -797,7 +813,7 @@
         if (isServiceValid("removeConnectionServiceAdapter")) {
             try {
                 logOutgoing("removeConnectionServiceAdapter %s", adapter);
-                mServiceInterface.removeConnectionServiceAdapter(adapter);
+                mServiceInterface.removeConnectionServiceAdapter(adapter, Log.getExternalSession());
             } catch (RemoteException e) {
             }
         }
@@ -828,7 +844,7 @@
                             gatewayInfo.getOriginalAddress());
                 }
 
-                Log.event(call, Log.Events.START_CONNECTION, Log.piiHandle(call.getHandle()));
+                Log.addEvent(call, LogUtils.Events.START_CONNECTION, Log.piiHandle(call.getHandle()));
                 try {
                     mServiceInterface.createConnection(
                             call.getConnectionManagerPhoneAccount(),
@@ -840,7 +856,8 @@
                                     call.getVideoState(),
                                     callId),
                             call.shouldAttachToExistingConnection(),
-                            call.isUnknown());
+                            call.isUnknown(),
+                            Log.getExternalSession());
                 } catch (RemoteException e) {
                     Log.e(this, e, "Failure to createConnection -- %s", getComponentName());
                     mPendingResponses.remove(callId).handleCreateConnectionFailure(
@@ -858,7 +875,7 @@
         mBinder.bind(callback, call);
     }
 
-    /** @see IConnectionService#abort(String) */
+    /** @see IConnectionService#abort(String, Session.Info)  */
     void abort(Call call) {
         // Clear out any pending outgoing call data
         final String callId = mCallIdMapper.getCallId(call);
@@ -867,7 +884,7 @@
         if (callId != null && isServiceValid("abort")) {
             try {
                 logOutgoing("abort %s", callId);
-                mServiceInterface.abort(callId);
+                mServiceInterface.abort(callId, Log.getExternalSession());
             } catch (RemoteException e) {
             }
         }
@@ -875,84 +892,85 @@
         removeCall(call, new DisconnectCause(DisconnectCause.LOCAL));
     }
 
-    /** @see IConnectionService#silence(String) */
+    /** @see IConnectionService#silence(String, Session.Info) */
     void silence(Call call) {
         final String callId = mCallIdMapper.getCallId(call);
         if (callId != null && isServiceValid("silence")) {
             try {
                 logOutgoing("silence %s", callId);
-                mServiceInterface.silence(callId);
+                mServiceInterface.silence(callId, Log.getExternalSession());
             } catch (RemoteException e) {
             }
         }
     }
 
-    /** @see IConnectionService#hold(String) */
+    /** @see IConnectionService#hold(String, Session.Info) */
     void hold(Call call) {
         final String callId = mCallIdMapper.getCallId(call);
         if (callId != null && isServiceValid("hold")) {
             try {
                 logOutgoing("hold %s", callId);
-                mServiceInterface.hold(callId);
+                mServiceInterface.hold(callId, Log.getExternalSession());
             } catch (RemoteException e) {
             }
         }
     }
 
-    /** @see IConnectionService#unhold(String) */
+    /** @see IConnectionService#unhold(String, Session.Info) */
     void unhold(Call call) {
         final String callId = mCallIdMapper.getCallId(call);
         if (callId != null && isServiceValid("unhold")) {
             try {
                 logOutgoing("unhold %s", callId);
-                mServiceInterface.unhold(callId);
+                mServiceInterface.unhold(callId, Log.getExternalSession());
             } catch (RemoteException e) {
             }
         }
     }
 
-    /** @see IConnectionService#onCallAudioStateChanged(String, CallAudioState) */
+    /** @see IConnectionService#onCallAudioStateChanged(String, CallAudioState, Session.Info) */
     @VisibleForTesting
     public void onCallAudioStateChanged(Call activeCall, CallAudioState audioState) {
         final String callId = mCallIdMapper.getCallId(activeCall);
         if (callId != null && isServiceValid("onCallAudioStateChanged")) {
             try {
                 logOutgoing("onCallAudioStateChanged %s %s", callId, audioState);
-                mServiceInterface.onCallAudioStateChanged(callId, audioState);
+                mServiceInterface.onCallAudioStateChanged(callId, audioState,
+                        Log.getExternalSession());
             } catch (RemoteException e) {
             }
         }
     }
 
-    /** @see IConnectionService#disconnect(String) */
+    /** @see IConnectionService#disconnect(String, Session.Info) */
     void disconnect(Call call) {
         final String callId = mCallIdMapper.getCallId(call);
         if (callId != null && isServiceValid("disconnect")) {
             try {
                 logOutgoing("disconnect %s", callId);
-                mServiceInterface.disconnect(callId);
+                mServiceInterface.disconnect(callId, Log.getExternalSession());
             } catch (RemoteException e) {
             }
         }
     }
 
-    /** @see IConnectionService#answer(String) */
+    /** @see IConnectionService#answer(String, Session.Info) */
     void answer(Call call, int videoState) {
         final String callId = mCallIdMapper.getCallId(call);
         if (callId != null && isServiceValid("answer")) {
             try {
                 logOutgoing("answer %s %d", callId, videoState);
                 if (VideoProfile.isAudioOnly(videoState)) {
-                    mServiceInterface.answer(callId);
+                    mServiceInterface.answer(callId, Log.getExternalSession());
                 } else {
-                    mServiceInterface.answerVideo(callId, videoState);
+                    mServiceInterface.answerVideo(callId, videoState, Log.getExternalSession());
                 }
             } catch (RemoteException e) {
             }
         }
     }
 
-    /** @see IConnectionService#reject(String) */
+    /** @see IConnectionService#reject(String, Session.Info) */
     void reject(Call call, boolean rejectWithMessage, String message) {
         final String callId = mCallIdMapper.getCallId(call);
         if (callId != null && isServiceValid("reject")) {
@@ -961,34 +979,34 @@
 
                 if (rejectWithMessage && call.can(
                         Connection.CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION)) {
-                    mServiceInterface.rejectWithMessage(callId, message);
+                    mServiceInterface.rejectWithMessage(callId, message, Log.getExternalSession());
                 } else {
-                    mServiceInterface.reject(callId);
+                    mServiceInterface.reject(callId, Log.getExternalSession());
                 }
             } catch (RemoteException e) {
             }
         }
     }
 
-    /** @see IConnectionService#playDtmfTone(String, char) */
+    /** @see IConnectionService#playDtmfTone(String, char, Session.Info) */
     void playDtmfTone(Call call, char digit) {
         final String callId = mCallIdMapper.getCallId(call);
         if (callId != null && isServiceValid("playDtmfTone")) {
             try {
                 logOutgoing("playDtmfTone %s %c", callId, digit);
-                mServiceInterface.playDtmfTone(callId, digit);
+                mServiceInterface.playDtmfTone(callId, digit, Log.getExternalSession());
             } catch (RemoteException e) {
             }
         }
     }
 
-    /** @see IConnectionService#stopDtmfTone(String) */
+    /** @see IConnectionService#stopDtmfTone(String, Session.Info) */
     void stopDtmfTone(Call call) {
         final String callId = mCallIdMapper.getCallId(call);
         if (callId != null && isServiceValid("stopDtmfTone")) {
             try {
                 logOutgoing("stopDtmfTone %s", callId);
-                mServiceInterface.stopDtmfTone(callId);
+                mServiceInterface.stopDtmfTone(callId, Log.getExternalSession());
             } catch (RemoteException e) {
             }
         }
@@ -1035,7 +1053,7 @@
         if (callId != null && isServiceValid("onPostDialContinue")) {
             try {
                 logOutgoing("onPostDialContinue %s %b", callId, proceed);
-                mServiceInterface.onPostDialContinue(callId, proceed);
+                mServiceInterface.onPostDialContinue(callId, proceed, Log.getExternalSession());
             } catch (RemoteException ignored) {
             }
         }
@@ -1047,7 +1065,7 @@
         if (callId != null && otherCallId != null && isServiceValid("conference")) {
             try {
                 logOutgoing("conference %s %s", callId, otherCallId);
-                mServiceInterface.conference(callId, otherCallId);
+                mServiceInterface.conference(callId, otherCallId, Log.getExternalSession());
             } catch (RemoteException ignored) {
             }
         }
@@ -1058,7 +1076,7 @@
         if (callId != null && isServiceValid("splitFromConference")) {
             try {
                 logOutgoing("splitFromConference %s", callId);
-                mServiceInterface.splitFromConference(callId);
+                mServiceInterface.splitFromConference(callId, Log.getExternalSession());
             } catch (RemoteException ignored) {
             }
         }
@@ -1069,7 +1087,7 @@
         if (callId != null && isServiceValid("mergeConference")) {
             try {
                 logOutgoing("mergeConference %s", callId);
-                mServiceInterface.mergeConference(callId);
+                mServiceInterface.mergeConference(callId, Log.getExternalSession());
             } catch (RemoteException ignored) {
             }
         }
@@ -1080,7 +1098,7 @@
         if (callId != null && isServiceValid("swapConference")) {
             try {
                 logOutgoing("swapConference %s", callId);
-                mServiceInterface.swapConference(callId);
+                mServiceInterface.swapConference(callId, Log.getExternalSession());
             } catch (RemoteException ignored) {
             }
         }
@@ -1091,7 +1109,7 @@
         if (callId != null && isServiceValid("pullExternalCall")) {
             try {
                 logOutgoing("pullExternalCall %s", callId);
-                mServiceInterface.pullExternalCall(callId);
+                mServiceInterface.pullExternalCall(callId, Log.getExternalSession());
             } catch (RemoteException ignored) {
             }
         }
@@ -1102,7 +1120,7 @@
         if (callId != null && isServiceValid("sendCallEvent")) {
             try {
                 logOutgoing("sendCallEvent %s %s", callId, event);
-                mServiceInterface.sendCallEvent(callId, event, extras);
+                mServiceInterface.sendCallEvent(callId, event, extras, Log.getExternalSession());
             } catch (RemoteException ignored) {
             }
         }
@@ -1113,7 +1131,7 @@
         if (callId != null && isServiceValid("onExtrasChanged")) {
             try {
                 logOutgoing("onExtrasChanged %s %s", callId, extras);
-                mServiceInterface.onExtrasChanged(callId, extras);
+                mServiceInterface.onExtrasChanged(callId, extras, Log.getExternalSession());
             } catch (RemoteException ignored) {
             }
         }
diff --git a/src/com/android/server/telecom/ContactsAsyncHelper.java b/src/com/android/server/telecom/ContactsAsyncHelper.java
index 6f8c86c..7fb6419 100644
--- a/src/com/android/server/telecom/ContactsAsyncHelper.java
+++ b/src/com/android/server/telecom/ContactsAsyncHelper.java
@@ -21,6 +21,7 @@
 import android.graphics.Bitmap;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
+import android.telecom.Log;
 import android.net.Uri;
 import android.os.Handler;
 import android.os.HandlerThread;
diff --git a/src/com/android/server/telecom/CreateConnectionProcessor.java b/src/com/android/server/telecom/CreateConnectionProcessor.java
index 22ec3c6..2b88848 100644
--- a/src/com/android/server/telecom/CreateConnectionProcessor.java
+++ b/src/com/android/server/telecom/CreateConnectionProcessor.java
@@ -17,8 +17,8 @@
 package com.android.server.telecom;
 
 import android.content.Context;
-import android.os.UserHandle;
 import android.telecom.DisconnectCause;
+import android.telecom.Log;
 import android.telecom.ParcelableConnection;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
diff --git a/src/com/android/server/telecom/CreateConnectionTimeout.java b/src/com/android/server/telecom/CreateConnectionTimeout.java
index 8bc3373..399c28a 100644
--- a/src/com/android/server/telecom/CreateConnectionTimeout.java
+++ b/src/com/android/server/telecom/CreateConnectionTimeout.java
@@ -19,7 +19,8 @@
 import android.content.Context;
 import android.os.Handler;
 import android.os.Looper;
-import android.os.UserHandle;
+import android.telecom.Log;
+import android.telecom.Logging.Runnable;
 import android.telecom.PhoneAccountHandle;
 import android.telephony.TelephonyManager;
 
diff --git a/src/com/android/server/telecom/DialerCodeReceiver.java b/src/com/android/server/telecom/DialerCodeReceiver.java
index 8732222..57f84a0 100644
--- a/src/com/android/server/telecom/DialerCodeReceiver.java
+++ b/src/com/android/server/telecom/DialerCodeReceiver.java
@@ -19,6 +19,7 @@
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
+import android.telecom.Log;
 import android.telecom.TelecomManager;
 
 /**
@@ -59,7 +60,7 @@
                 // If there is an active call, add the "log mark" for that call; otherwise we will
                 // add a non-call event.
                 Call currentCall = mCallsManager.getActiveCall();
-                Log.event(currentCall, Log.Events.USER_LOG_MARK);
+                Log.addEvent(currentCall, LogUtils.Events.USER_LOG_MARK);
             }
         }
     }
diff --git a/src/com/android/server/telecom/DockManager.java b/src/com/android/server/telecom/DockManager.java
index 27ffd28..46b2efc 100644
--- a/src/com/android/server/telecom/DockManager.java
+++ b/src/com/android/server/telecom/DockManager.java
@@ -20,6 +20,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.telecom.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.IndentingPrintWriter;
diff --git a/src/com/android/server/telecom/DtmfLocalTonePlayer.java b/src/com/android/server/telecom/DtmfLocalTonePlayer.java
index 64c0c55..5abbf49 100644
--- a/src/com/android/server/telecom/DtmfLocalTonePlayer.java
+++ b/src/com/android/server/telecom/DtmfLocalTonePlayer.java
@@ -23,6 +23,7 @@
 import android.os.HandlerThread;
 import android.os.Message;
 import android.provider.Settings;
+import android.telecom.Log;
 
 import com.android.internal.util.Preconditions;
 
diff --git a/src/com/android/server/telecom/HeadsetMediaButton.java b/src/com/android/server/telecom/HeadsetMediaButton.java
index af0ce13..f9ba60e 100644
--- a/src/com/android/server/telecom/HeadsetMediaButton.java
+++ b/src/com/android/server/telecom/HeadsetMediaButton.java
@@ -23,6 +23,7 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
+import android.telecom.Log;
 import android.view.KeyEvent;
 
 /**
diff --git a/src/com/android/server/telecom/InCallAdapter.java b/src/com/android/server/telecom/InCallAdapter.java
index e47f3a2..e775818 100644
--- a/src/com/android/server/telecom/InCallAdapter.java
+++ b/src/com/android/server/telecom/InCallAdapter.java
@@ -18,6 +18,7 @@
 
 import android.os.Binder;
 import android.os.Bundle;
+import android.telecom.Log;
 import android.telecom.PhoneAccountHandle;
 
 import com.android.internal.telecom.IInCallAdapter;
@@ -47,7 +48,7 @@
     @Override
     public void answerCall(String callId, int videoState) {
         try {
-            Log.startSession(Log.Sessions.ICA_ANSWER_CALL, mOwnerComponentName);
+            Log.startSession(LogUtils.Sessions.ICA_ANSWER_CALL, mOwnerComponentName);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -70,7 +71,7 @@
     @Override
     public void rejectCall(String callId, boolean rejectWithMessage, String textMessage) {
         try {
-            Log.startSession(Log.Sessions.ICA_REJECT_CALL, mOwnerComponentName);
+            Log.startSession(LogUtils.Sessions.ICA_REJECT_CALL, mOwnerComponentName);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -162,7 +163,7 @@
     @Override
     public void disconnectCall(String callId) {
         try {
-            Log.startSession(Log.Sessions.ICA_DISCONNECT_CALL, mOwnerComponentName);
+            Log.startSession(LogUtils.Sessions.ICA_DISCONNECT_CALL, mOwnerComponentName);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -185,7 +186,7 @@
     @Override
     public void holdCall(String callId) {
         try {
-            Log.startSession(Log.Sessions.ICA_HOLD_CALL, mOwnerComponentName);
+            Log.startSession(LogUtils.Sessions.ICA_HOLD_CALL, mOwnerComponentName);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -207,7 +208,7 @@
     @Override
     public void unholdCall(String callId) {
         try {
-            Log.startSession(Log.Sessions.ICA_UNHOLD_CALL, mOwnerComponentName);
+            Log.startSession(LogUtils.Sessions.ICA_UNHOLD_CALL, mOwnerComponentName);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -252,7 +253,7 @@
     @Override
     public void mute(boolean shouldMute) {
         try {
-            Log.startSession(Log.Sessions.ICA_MUTE, mOwnerComponentName);
+            Log.startSession(LogUtils.Sessions.ICA_MUTE, mOwnerComponentName);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -269,7 +270,7 @@
     @Override
     public void setAudioRoute(int route) {
         try {
-            Log.startSession(Log.Sessions.ICA_SET_AUDIO_ROUTE, mOwnerComponentName);
+            Log.startSession(LogUtils.Sessions.ICA_SET_AUDIO_ROUTE, mOwnerComponentName);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
@@ -286,7 +287,7 @@
     @Override
     public void conference(String callId, String otherCallId) {
         try {
-            Log.startSession(Log.Sessions.ICA_CONFERENCE, mOwnerComponentName);
+            Log.startSession(LogUtils.Sessions.ICA_CONFERENCE, mOwnerComponentName);
             long token = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
diff --git a/src/com/android/server/telecom/InCallController.java b/src/com/android/server/telecom/InCallController.java
index 2157bf3..43c0e48 100644
--- a/src/com/android/server/telecom/InCallController.java
+++ b/src/com/android/server/telecom/InCallController.java
@@ -36,6 +36,8 @@
 import android.telecom.ConnectionService;
 import android.telecom.DefaultDialerManager;
 import android.telecom.InCallService;
+import android.telecom.Log;
+import android.telecom.Logging.Runnable;
 import android.telecom.ParcelableCall;
 import android.telecom.TelecomManager;
 import android.text.TextUtils;
@@ -178,7 +180,7 @@
         @Override
         public boolean connect(Call call) {
             if (mIsConnected) {
-                Log.event(call, Log.Events.INFO, "Already connected, ignoring request.");
+                Log.addEvent(call, LogUtils.Events.INFO, "Already connected, ignoring request.");
                 return true;
             }
 
@@ -215,7 +217,7 @@
                 mContext.unbindService(mServiceConnection);
                 mIsConnected = false;
             } else {
-                Log.event(null, Log.Events.INFO, "Already disconnected, ignoring request.");
+                Log.addEvent(null, LogUtils.Events.INFO, "Already disconnected, ignoring request.");
             }
         }
 
diff --git a/src/com/android/server/telecom/InCallTonePlayer.java b/src/com/android/server/telecom/InCallTonePlayer.java
index e0b0dc0..62c692b 100644
--- a/src/com/android/server/telecom/InCallTonePlayer.java
+++ b/src/com/android/server/telecom/InCallTonePlayer.java
@@ -20,6 +20,9 @@
 import android.media.ToneGenerator;
 import android.os.Handler;
 import android.os.Looper;
+import android.telecom.Log;
+import android.telecom.Logging.Runnable;
+import android.telecom.Logging.Session;
 
 import com.android.internal.annotations.VisibleForTesting;
 
diff --git a/src/com/android/server/telecom/InCallWakeLockController.java b/src/com/android/server/telecom/InCallWakeLockController.java
index 0de8123..ac93bb5 100644
--- a/src/com/android/server/telecom/InCallWakeLockController.java
+++ b/src/com/android/server/telecom/InCallWakeLockController.java
@@ -17,6 +17,7 @@
 package com.android.server.telecom;
 
 import com.android.internal.annotations.VisibleForTesting;
+import android.telecom.Log;
 
 /**
  * Handles acquisition and release of wake locks relating to call state.
diff --git a/src/com/android/server/telecom/Log.java b/src/com/android/server/telecom/Log.java
deleted file mode 100644
index 2282ff0..0000000
--- a/src/com/android/server/telecom/Log.java
+++ /dev/null
@@ -1,1030 +0,0 @@
-/*
- * Copyright 2014, 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.content.Context;
-import android.net.Uri;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.AsyncTask;
-import android.telecom.PhoneAccount;
-import android.telecom.TimedEvent;
-import android.telephony.PhoneNumberUtils;
-import android.text.TextUtils;
-import android.util.Base64;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.util.IndentingPrintWriter;
-
-import java.nio.ByteBuffer;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.IllegalFormatException;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.LinkedBlockingQueue;
-
-/**
- * Manages logging for the entire module.
- */
-@VisibleForTesting
-public class Log {
-
-    public static final class Sessions {
-        public static final String ICA_ANSWER_CALL = "ICA.aC";
-        public static final String ICA_REJECT_CALL = "ICA.rC";
-        public static final String ICA_DISCONNECT_CALL = "ICA.dC";
-        public static final String ICA_HOLD_CALL = "ICA.hC";
-        public static final String ICA_UNHOLD_CALL = "ICA.uC";
-        public static final String ICA_MUTE = "ICA.m";
-        public static final String ICA_SET_AUDIO_ROUTE = "ICA.sAR";
-        public static final String ICA_CONFERENCE = "ICA.c";
-        public static final String CSW_HANDLE_CREATE_CONNECTION_COMPLETE = "CSW.hCCC";
-        public static final String CSW_SET_ACTIVE = "CSW.sA";
-        public static final String CSW_SET_RINGING = "CSW.sR";
-        public static final String CSW_SET_DIALING = "CSW.sD";
-        public static final String CSW_SET_PULLING = "CSW.sP";
-        public static final String CSW_SET_DISCONNECTED = "CSW.sDc";
-        public static final String CSW_SET_ON_HOLD = "CSW.sOH";
-        public static final String CSW_REMOVE_CALL = "CSW.rC";
-        public static final String CSW_SET_IS_CONFERENCED = "CSW.sIC";
-        public static final String CSW_ADD_CONFERENCE_CALL = "CSW.aCC";
-    }
-
-    /**
-     * Stores the various events associated with {@link Call}s. Also stores all request-response
-     * pairs amongst the events.
-     */
-    public final static class Events {
-        public static class TimedEventPair {
-            private static final long DEFAULT_TIMEOUT = 3000L;
-
-            String mRequest;
-            String mResponse;
-            String mName;
-            long mTimeoutMillis = DEFAULT_TIMEOUT;
-
-            public TimedEventPair(String request, String response,
-                    String name) {
-                this.mRequest = request;
-                this.mResponse = response;
-                this.mName = name;
-            }
-
-            public TimedEventPair(String request, String response,
-                    String name, long timeoutMillis) {
-                this.mRequest = request;
-                this.mResponse = response;
-                this.mName = name;
-                this.mTimeoutMillis = timeoutMillis;
-            }
-        }
-
-        public static final String CREATED = "CREATED";
-        public static final String DESTROYED = "DESTROYED";
-        public static final String SET_CONNECTING = "SET_CONNECTING";
-        public static final String SET_DIALING = "SET_DIALING";
-        public static final String SET_PULLING = "SET_PULLING";
-        public static final String SET_ACTIVE = "SET_ACTIVE";
-        public static final String SET_HOLD = "SET_HOLD";
-        public static final String SET_RINGING = "SET_RINGING";
-        public static final String SET_DISCONNECTED = "SET_DISCONNECTED";
-        public static final String SET_DISCONNECTING = "SET_DISCONNECTING";
-        public static final String SET_SELECT_PHONE_ACCOUNT = "SET_SELECT_PHONE_ACCOUNT";
-        public static final String REQUEST_HOLD = "REQUEST_HOLD";
-        public static final String REQUEST_UNHOLD = "REQUEST_UNHOLD";
-        public static final String REQUEST_DISCONNECT = "REQUEST_DISCONNECT";
-        public static final String REQUEST_ACCEPT = "REQUEST_ACCEPT";
-        public static final String REQUEST_REJECT = "REQUEST_REJECT";
-        public static final String START_DTMF = "START_DTMF";
-        public static final String STOP_DTMF = "STOP_DTMF";
-        public static final String START_RINGER = "START_RINGER";
-        public static final String STOP_RINGER = "STOP_RINGER";
-        public static final String SKIP_RINGING = "SKIP_RINGING";
-        public static final String START_CALL_WAITING_TONE = "START_CALL_WAITING_TONE";
-        public static final String STOP_CALL_WAITING_TONE = "STOP_CALL_WAITING_TONE";
-        public static final String START_CONNECTION = "START_CONNECTION";
-        public static final String BIND_CS = "BIND_CS";
-        public static final String CS_BOUND = "CS_BOUND";
-        public static final String CONFERENCE_WITH = "CONF_WITH";
-        public static final String SPLIT_FROM_CONFERENCE = "CONF_SPLIT";
-        public static final String SWAP = "SWAP";
-        public static final String ADD_CHILD = "ADD_CHILD";
-        public static final String REMOVE_CHILD = "REMOVE_CHILD";
-        public static final String SET_PARENT = "SET_PARENT";
-        public static final String MUTE = "MUTE";
-        public static final String UNMUTE = "UNMUTE";
-        public static final String AUDIO_ROUTE = "AUDIO_ROUTE";
-        public static final String AUDIO_ROUTE_EARPIECE = "AUDIO_ROUTE_EARPIECE";
-        public static final String AUDIO_ROUTE_HEADSET = "AUDIO_ROUTE_HEADSET";
-        public static final String AUDIO_ROUTE_BT = "AUDIO_ROUTE_BT";
-        public static final String AUDIO_ROUTE_SPEAKER = "AUDIO_ROUTE_SPEAKER";
-        public static final String ERROR_LOG = "ERROR";
-        public static final String USER_LOG_MARK = "USER_LOG_MARK";
-        public static final String SILENCE = "SILENCE";
-        public static final String BIND_SCREENING = "BIND_SCREENING";
-        public static final String SCREENING_BOUND = "SCREENING_BOUND";
-        public static final String SCREENING_SENT = "SCREENING_SENT";
-        public static final String SCREENING_COMPLETED = "SCREENING_COMPLETED";
-        public static final String BLOCK_CHECK_INITIATED = "BLOCK_CHECK_INITIATED";
-        public static final String BLOCK_CHECK_FINISHED = "BLOCK_CHECK_FINISHED";
-        public static final String DIRECT_TO_VM_INITIATED = "DIRECT_TO_VM_INITIATED";
-        public static final String DIRECT_TO_VM_FINISHED = "DIRECT_TO_VM_FINISHED";
-        public static final String FILTERING_INITIATED = "FILTERING_INITIATED";
-        public static final String FILTERING_COMPLETED = "FILTERING_COMPLETED";
-        public static final String FILTERING_TIMED_OUT = "FILTERING_TIMED_OUT";
-        public static final String REMOTELY_HELD = "REMOTELY_HELD";
-        public static final String REMOTELY_UNHELD = "REMOTELY_UNHELD";
-        public static final String REQUEST_PULL = "PULL";
-        public static final String INFO = "INFO";
-        public static final String VIDEO_STATE_CHANGED = "VIDEO_STATE_CHANGED";
-        public static final String RECEIVE_VIDEO_REQUEST = "RECEIVE_VIDEO_REQUEST";
-        public static final String RECEIVE_VIDEO_RESPONSE = "RECEIVE_VIDEO_RESPONSE";
-        public static final String SEND_VIDEO_REQUEST = "SEND_VIDEO_REQUEST";
-        public static final String SEND_VIDEO_RESPONSE = "SEND_VIDEO_RESPONSE";
-        public static final String IS_EXTERNAL = "IS_EXTERNAL";
-        public static final String PROPERTY_CHANGE = "PROPERTY_CHANGE";
-        public static final String CAPABILITY_CHANGE = "CAPABILITY_CHANGE";
-        public static final String CONNECTION_EVENT = "CONNECTION_EVENT";
-
-        public static class Timings {
-            public static final String ACCEPT_TIMING = "accept";
-            public static final String REJECT_TIMING = "reject";
-            public static final String DISCONNECT_TIMING = "disconnect";
-            public static final String HOLD_TIMING = "hold";
-            public static final String UNHOLD_TIMING = "unhold";
-            public static final String OUTGOING_TIME_TO_DIALING_TIMING = "outgoing_time_to_dialing";
-            public static final String BIND_CS_TIMING = "bind_cs";
-            public static final String SCREENING_COMPLETED_TIMING = "screening_completed";
-            public static final String DIRECT_TO_VM_FINISHED_TIMING = "direct_to_vm_finished";
-            public static final String BLOCK_CHECK_FINISHED_TIMING = "block_check_finished";
-            public static final String FILTERING_COMPLETED_TIMING = "filtering_completed";
-            public static final String FILTERING_TIMED_OUT_TIMING = "filtering_timed_out";
-
-            private static final TimedEventPair[] sTimedEvents = {
-                    new TimedEventPair(REQUEST_ACCEPT, SET_ACTIVE, ACCEPT_TIMING),
-                    new TimedEventPair(REQUEST_REJECT, SET_DISCONNECTED, REJECT_TIMING),
-                    new TimedEventPair(REQUEST_DISCONNECT, SET_DISCONNECTED, DISCONNECT_TIMING),
-                    new TimedEventPair(REQUEST_HOLD, SET_HOLD, HOLD_TIMING),
-                    new TimedEventPair(REQUEST_UNHOLD, SET_ACTIVE, UNHOLD_TIMING),
-                    new TimedEventPair(START_CONNECTION, SET_DIALING,
-                            OUTGOING_TIME_TO_DIALING_TIMING),
-                    new TimedEventPair(BIND_CS, CS_BOUND, BIND_CS_TIMING),
-                    new TimedEventPair(SCREENING_SENT, SCREENING_COMPLETED,
-                            SCREENING_COMPLETED_TIMING),
-                    new TimedEventPair(DIRECT_TO_VM_INITIATED, DIRECT_TO_VM_FINISHED,
-                            DIRECT_TO_VM_FINISHED_TIMING),
-                    new TimedEventPair(BLOCK_CHECK_INITIATED, BLOCK_CHECK_FINISHED,
-                            BLOCK_CHECK_FINISHED_TIMING),
-                    new TimedEventPair(FILTERING_INITIATED, FILTERING_COMPLETED,
-                            FILTERING_COMPLETED_TIMING),
-                    new TimedEventPair(FILTERING_INITIATED, FILTERING_TIMED_OUT,
-                            FILTERING_TIMED_OUT_TIMING, 6000L),
-            };
-        }
-
-        /**
-         * Maps from request events to a list of possible response events. Used to track
-         * end-to-end timing for critical user-facing operations in Telecom.
-         */
-        public static final Map<String, List<TimedEventPair>> requestResponsePairs;
-        static {
-            requestResponsePairs = new HashMap<>();
-            for (TimedEventPair p : Timings.sTimedEvents) {
-                if (requestResponsePairs.containsKey(p.mRequest)) {
-                    requestResponsePairs.get(p.mRequest).add(p);
-                } else {
-                    ArrayList<TimedEventPair> responses = new ArrayList<>();
-                    responses.add(p);
-                    requestResponsePairs.put(p.mRequest, responses);
-                }
-            }
-        }
-    }
-
-    public static class CallEvent {
-        public String eventId;
-        public String sessionId;
-        public long time;
-        public Object data;
-
-        public CallEvent(String eventId, String sessionId, long time, Object data) {
-            this.eventId = eventId;
-            this.sessionId = sessionId;
-            this.time = time;
-            this.data = data;
-        }
-    }
-
-    public static class CallEventRecord {
-        public static class EventTiming extends TimedEvent<String> {
-            public String name;
-            public long time;
-
-            public EventTiming(String name, long time) {
-                this.name = name;
-                this.time = time;
-            }
-
-            public String getKey() {
-                return name;
-            }
-
-            public long getTime() {
-                return time;
-            }
-        }
-
-        private static class PendingResponse {
-            String requestEventId;
-            long requestEventTimeMillis;
-            long timeoutMillis;
-            String name;
-
-            public PendingResponse(String requestEventId, long requestEventTimeMillis,
-                    long timeoutMillis, String name) {
-                this.requestEventId = requestEventId;
-                this.requestEventTimeMillis = requestEventTimeMillis;
-                this.timeoutMillis = timeoutMillis;
-                this.name = name;
-            }
-        }
-
-        private static final DateFormat sLongDateFormat = new SimpleDateFormat(
-                "yyyy-MM-dd HH:mm:ss.SSS");
-        private static final DateFormat sDateFormat = new SimpleDateFormat("HH:mm:ss.SSS");
-        private final List<CallEvent> mEvents = new LinkedList<>();
-        private final Call mCall;
-
-        public CallEventRecord(Call call) {
-            mCall = call;
-        }
-
-        public Call getCall() {
-            return mCall;
-        }
-
-        public void addEvent(String event, String sessionId, Object data) {
-            mEvents.add(new CallEvent(event, sessionId, System.currentTimeMillis(), data));
-            Log.i("Event", "Call %s: %s, %s", mCall.getId(), event, data);
-        }
-
-        public List<CallEvent> getEvents() {
-            return mEvents;
-        }
-
-        public List<EventTiming> extractEventTimings() {
-            if (mEvents == null) {
-                return Collections.emptyList();
-            }
-
-            LinkedList<EventTiming> result = new LinkedList<>();
-            Map<String, PendingResponse> pendingResponses = new HashMap<>();
-            for (CallEvent event : mEvents) {
-                if (Events.requestResponsePairs.containsKey(event.eventId)) {
-                    // This event expects a response, so add that expected response to the maps
-                    // of pending events.
-                    for (Events.TimedEventPair p : Events.requestResponsePairs.get(event.eventId)) {
-                        pendingResponses.put(p.mResponse, new PendingResponse(event.eventId,
-                                event.time, p.mTimeoutMillis, p.mName));
-                    }
-                }
-
-                PendingResponse pendingResponse = pendingResponses.remove(event.eventId);
-                if (pendingResponse != null) {
-                    long elapsedTime = event.time - pendingResponse.requestEventTimeMillis;
-                    if (elapsedTime < pendingResponse.timeoutMillis) {
-                        result.add(new EventTiming(pendingResponse.name, elapsedTime));
-                    }
-                }
-            }
-
-            return result;
-        }
-
-        public void dump(IndentingPrintWriter pw) {
-            pw.print("Call ");
-            pw.print(mCall.getId());
-            pw.print(" [");
-            pw.print(sLongDateFormat.format(new Date(mCall.getCreationTimeMillis())));
-            pw.print("]");
-            pw.println(mCall.isIncoming() ? "(MT - incoming)" : "(MO - outgoing)");
-
-            pw.increaseIndent();
-            pw.println("To address: " + piiHandle(mCall.getHandle()));
-
-            for (CallEvent event : mEvents) {
-                pw.print(sDateFormat.format(new Date(event.time)));
-                pw.print(" - ");
-                pw.print(event.eventId);
-                if (event.data != null) {
-                    pw.print(" (");
-                    Object data = event.data;
-
-                    if (data instanceof Call) {
-                        // If the data is another call, then change the data to the call's CallEvent
-                        // ID instead.
-                        CallEventRecord record = mCallEventRecordMap.get(data);
-                        if (record != null) {
-                            data = "Call " + record.mCall.getId();
-                        }
-                    }
-
-                    pw.print(data);
-                    pw.print(")");
-                }
-                pw.print(":");
-                pw.print(event.sessionId);
-                pw.println();
-            }
-
-            pw.println("Timings (average for this call, milliseconds):");
-            pw.increaseIndent();
-            Map<String, Double> avgEventTimings = EventTiming.averageTimings(extractEventTimings());
-            List<String> eventNames = new ArrayList<>(avgEventTimings.keySet());
-            Collections.sort(eventNames);
-            for (String eventName : eventNames) {
-                pw.printf("%s: %.2f\n", eventName, avgEventTimings.get(eventName));
-            }
-            pw.decreaseIndent();
-            pw.decreaseIndent();
-        }
-    }
-
-    public static final int MAX_CALLS_TO_CACHE = 10;  // Arbitrarily chosen.
-    public static final int MAX_CALLS_TO_CACHE_DEBUG = 20;  // Arbitrarily chosen.
-    private static final long EXTENDED_LOGGING_DURATION_MILLIS = 60000 * 30; // 30 minutes
-
-    // Don't check in with this true!
-    private static final boolean LOG_DBG = false;
-
-    // Currently using 3 letters, So don't exceed 64^3
-    private static final long SESSION_ID_ROLLOVER_THRESHOLD = 262144;
-
-    // Generic tag for all In Call logging
-    @VisibleForTesting
-    public static String TAG = "Telecom";
-    public static String LOGGING_TAG = "Logging";
-
-    public static final boolean FORCE_LOGGING = false; /* STOP SHIP if true */
-    public static final boolean SYSTRACE_DEBUG = false; /* STOP SHIP if true */
-    public static final boolean DEBUG = isLoggable(android.util.Log.DEBUG);
-    public static final boolean INFO = isLoggable(android.util.Log.INFO);
-    public static final boolean VERBOSE = isLoggable(android.util.Log.VERBOSE);
-    public static final boolean WARN = isLoggable(android.util.Log.WARN);
-    public static final boolean ERROR = isLoggable(android.util.Log.ERROR);
-
-    private static final Map<Call, CallEventRecord> mCallEventRecordMap = new HashMap<>();
-    private static LinkedBlockingQueue<CallEventRecord> mCallEventRecords =
-            new LinkedBlockingQueue<CallEventRecord>(MAX_CALLS_TO_CACHE);
-
-    private static Context mContext = null;
-    // Synchronized in all method calls
-    private static int sCodeEntryCounter = 0;
-    @VisibleForTesting
-    public static ConcurrentHashMap<Integer, Session> sSessionMapper = new ConcurrentHashMap<>(100);
-    @VisibleForTesting
-    public static Handler sSessionCleanupHandler = new Handler(Looper.getMainLooper());
-    @VisibleForTesting
-    public static java.lang.Runnable sCleanStaleSessions = new java.lang.Runnable() {
-        @Override
-        public void run() {
-            cleanupStaleSessions(getSessionCleanupTimeoutMs());
-        }
-    };
-
-    // Set the logging container to be the system's. This will only change when being mocked
-    // during testing.
-    private static SystemLoggingContainer systemLogger = new SystemLoggingContainer();
-
-    /**
-     * Tracks whether user-activated extended logging is enabled.
-     */
-    private static boolean mIsUserExtendedLoggingEnabled = false;
-
-    /**
-     * The time when user-activated extended logging should be ended.  Used to determine when
-     * extended logging should automatically be disabled.
-     */
-    private static long mUserExtendedLoggingStopTime = 0;
-
-    private Log() {
-    }
-
-    public static void setContext(Context context) {
-        mContext = context;
-    }
-
-    /**
-     * Enable or disable extended telecom logging.
-     *
-     * @param isExtendedLoggingEnabled {@code true} if extended logging should be enabled,
-     *          {@code false} if it should be disabled.
-     */
-    public static void setIsExtendedLoggingEnabled(boolean isExtendedLoggingEnabled) {
-        // If the state hasn't changed, bail early.
-        if (mIsUserExtendedLoggingEnabled == isExtendedLoggingEnabled) {
-            return;
-        }
-
-        // Resize the event queue.
-        int newSize = isExtendedLoggingEnabled ? MAX_CALLS_TO_CACHE_DEBUG : MAX_CALLS_TO_CACHE;
-        LinkedBlockingQueue<CallEventRecord> oldEventLog = mCallEventRecords;
-        mCallEventRecords = new LinkedBlockingQueue<CallEventRecord>(newSize);
-        mCallEventRecordMap.clear();
-
-        // Copy the existing queue into the new one.
-        for (CallEventRecord event : oldEventLog) {
-            addCallEventRecord(event);
-        }
-
-        mIsUserExtendedLoggingEnabled = isExtendedLoggingEnabled;
-        if (mIsUserExtendedLoggingEnabled) {
-            mUserExtendedLoggingStopTime = System.currentTimeMillis()
-                    + EXTENDED_LOGGING_DURATION_MILLIS;
-        } else {
-            mUserExtendedLoggingStopTime = 0;
-        }
-    }
-
-    public static final long DEFAULT_SESSION_TIMEOUT_MS = 30000L; // 30 seconds
-    private static MessageDigest sMessageDigest;
-
-    public static void initMd5Sum() {
-        new AsyncTask<Void, Void, Void>() {
-            @Override
-            public Void doInBackground(Void... args) {
-                MessageDigest md;
-                try {
-                    md = MessageDigest.getInstance("SHA-1");
-                } catch (NoSuchAlgorithmException e) {
-                    md = null;
-                }
-                sMessageDigest = md;
-                return null;
-            }
-        }.execute();
-    }
-
-    @VisibleForTesting
-    public static void setTag(String tag) {
-        TAG = tag;
-    }
-
-    @VisibleForTesting
-    public static void setLoggingContainer(SystemLoggingContainer logger) {
-        systemLogger = logger;
-    }
-
-    // Overridden in LogTest to skip query to ContentProvider
-    public interface ISessionCleanupTimeoutMs {
-        long get();
-    }
-    @VisibleForTesting
-    public static ISessionCleanupTimeoutMs sSessionCleanupTimeoutMs =
-            new ISessionCleanupTimeoutMs() {
-                @Override
-                public long get() {
-                    // mContext will be null if Log is called from another process
-                    // (UserCallActivity, for example). For these cases, use the default value.
-                    if(mContext == null) {
-                        return DEFAULT_SESSION_TIMEOUT_MS;
-                    }
-                    return Timeouts.getStaleSessionCleanupTimeoutMillis(
-                            mContext.getContentResolver());
-                }
-            };
-
-    private static long getSessionCleanupTimeoutMs() {
-        return sSessionCleanupTimeoutMs.get();
-    }
-
-    private static synchronized void resetStaleSessionTimer() {
-        sSessionCleanupHandler.removeCallbacksAndMessages(null);
-        // Will be null in Log Testing
-        if (sCleanStaleSessions != null) {
-            sSessionCleanupHandler.postDelayed(sCleanStaleSessions, getSessionCleanupTimeoutMs());
-        }
-    }
-
-    /**
-     * Call at an entry point to the Telecom code to track the session. This code must be
-     * accompanied by a Log.endSession().
-     */
-    public static synchronized void startSession(String shortMethodName) {
-        startSession(shortMethodName, null);
-    }
-    public static synchronized void startSession(String shortMethodName,
-            String callerIdentification) {
-        resetStaleSessionTimer();
-        int threadId = getCallingThreadId();
-        Session activeSession = sSessionMapper.get(threadId);
-        // We have called startSession within an active session that has not ended... Register this
-        // session as a subsession.
-        if (activeSession != null) {
-            Session childSession = createSubsession(true);
-            continueSession(childSession, shortMethodName);
-            return;
-        }
-        Session newSession = new Session(getNextSessionID(), shortMethodName,
-                System.currentTimeMillis(), threadId, false, callerIdentification);
-        sSessionMapper.put(threadId, newSession);
-
-        Log.v(LOGGING_TAG, Session.START_SESSION);
-    }
-
-
-    /**
-     * Notifies the logging system that a subsession will be run at a later point and
-     * allocates the resources. Returns a session object that must be used in
-     * Log.continueSession(...) to start the subsession.
-     */
-    public static Session createSubsession() {
-        return createSubsession(false);
-    }
-
-    private static synchronized Session createSubsession(boolean isStartedFromActiveSession) {
-        int threadId = getCallingThreadId();
-        Session threadSession = sSessionMapper.get(threadId);
-        if (threadSession == null) {
-            Log.d(LOGGING_TAG, "Log.createSubsession was called with no session active.");
-            return null;
-        }
-        // Start execution time of the session will be overwritten in continueSession(...).
-        Session newSubsession = new Session(threadSession.getNextChildId(),
-                threadSession.getShortMethodName(), System.currentTimeMillis(), threadId,
-                isStartedFromActiveSession, null);
-        threadSession.addChild(newSubsession);
-        newSubsession.setParentSession(threadSession);
-
-        if(!isStartedFromActiveSession) {
-            Log.v(LOGGING_TAG, Session.CREATE_SUBSESSION + " " + newSubsession.toString());
-        } else {
-            Log.v(LOGGING_TAG, Session.CREATE_SUBSESSION + " (Invisible subsession)");
-        }
-        return newSubsession;
-    }
-
-    /**
-     * Cancels a subsession that had Log.createSubsession() called on it, but will never have
-     * Log.continueSession(...) called on it due to an error. Allows the subsession to be cleaned
-     * gracefully instead of being removed by the sSessionCleanupHandler forcefully later.
-     */
-    public static synchronized void cancelSubsession(Session subsession) {
-        if (subsession == null) {
-            return;
-        }
-
-        subsession.markSessionCompleted(0);
-        endParentSessions(subsession);
-    }
-
-    /**
-     * Starts the subsession that was created in Log.CreateSubsession. The Log.endSession() method
-     * must be called at the end of this method. The full session will complete when all
-     * subsessions are completed.
-     */
-    public static synchronized void continueSession(Session subsession, String shortMethodName) {
-        if (subsession == null) {
-            return;
-        }
-        resetStaleSessionTimer();
-        String callingMethodName = subsession.getShortMethodName();
-        subsession.setShortMethodName(callingMethodName + "->" + shortMethodName);
-        subsession.setExecutionStartTimeMs(System.currentTimeMillis());
-        Session parentSession = subsession.getParentSession();
-        if (parentSession == null) {
-            Log.d(LOGGING_TAG, "Log.continueSession was called with no session active for " +
-                    "method %s.", shortMethodName);
-            return;
-        }
-
-        sSessionMapper.put(getCallingThreadId(), subsession);
-        if(!subsession.isStartedFromActiveSession()) {
-            Log.v(LOGGING_TAG, Session.CONTINUE_SUBSESSION);
-        } else {
-            Log.v(LOGGING_TAG, Session.CONTINUE_SUBSESSION + " (Invisible Subsession) with " +
-                    "Method " + shortMethodName);
-        }
-    }
-
-    public static void checkIsThreadLogged() {
-        int threadId = getCallingThreadId();
-        Session threadSession = sSessionMapper.get(threadId);
-        if (threadSession == null) {
-            android.util.Log.e(LOGGING_TAG, "Logging Thread Check Failed!", new Exception());
-        }
-    }
-
-    /**
-     * Ends the current session/subsession. Must be called after a Log.startSession(...) and
-     * Log.continueSession(...) call.
-     */
-    public static synchronized void endSession() {
-        int threadId = getCallingThreadId();
-        Session completedSession = sSessionMapper.get(threadId);
-        if (completedSession == null) {
-            Log.w(LOGGING_TAG, "Log.endSession was called with no session active.");
-            return;
-        }
-
-        completedSession.markSessionCompleted(System.currentTimeMillis());
-        if(!completedSession.isStartedFromActiveSession()) {
-            Log.v(LOGGING_TAG, Session.END_SUBSESSION + " (dur: " +
-                    completedSession.getLocalExecutionTime() + " mS)");
-        } else {
-            Log.v(LOGGING_TAG, Session.END_SUBSESSION + " (Invisible Subsession) (dur: " +
-                    completedSession.getLocalExecutionTime() + " mS)");
-        }
-        // Remove after completed so that reference still exists for logging the end events
-        Session parentSession = completedSession.getParentSession();
-        sSessionMapper.remove(threadId);
-        endParentSessions(completedSession);
-        // If this subsession was started from a parent session using Log.startSession, return the
-        // ThreadID back to the parent after completion.
-        if (parentSession != null && !parentSession.isSessionCompleted() &&
-                completedSession.isStartedFromActiveSession()) {
-            sSessionMapper.put(threadId, parentSession);
-        }
-    }
-
-    // Recursively deletes all complete parent sessions of the current subsession if it is a leaf.
-    private static void endParentSessions(Session subsession) {
-        // Session is not completed or not currently a leaf, so we can not remove because a child is
-        // still running
-        if (!subsession.isSessionCompleted() || subsession.getChildSessions().size() != 0) {
-            return;
-        }
-
-        Session parentSession = subsession.getParentSession();
-        if (parentSession != null) {
-            subsession.setParentSession(null);
-            parentSession.removeChild(subsession);
-            endParentSessions(parentSession);
-        } else {
-            // All of the subsessions have been completed and it is time to report on the full
-            // running time of the session.
-            long fullSessionTimeMs =
-                    System.currentTimeMillis() - subsession.getExecutionStartTimeMilliseconds();
-            Analytics.addSessionTiming(subsession.getShortMethodName(), fullSessionTimeMs);
-            Log.v(LOGGING_TAG, Session.END_SESSION + " (dur: " + fullSessionTimeMs + " ms): " +
-                    subsession.toString());
-        }
-    }
-
-    private synchronized static String getNextSessionID() {
-        Integer nextId = sCodeEntryCounter++;
-        if (nextId >= SESSION_ID_ROLLOVER_THRESHOLD) {
-            restartSessionCounter();
-            nextId = sCodeEntryCounter++;
-        }
-        return getBase64Encoding(nextId);
-    }
-
-    @VisibleForTesting
-    public synchronized static void restartSessionCounter() {
-        sCodeEntryCounter = 0;
-    }
-
-    @VisibleForTesting
-    public static String getBase64Encoding(int number) {
-        byte[] idByteArray = ByteBuffer.allocate(4).putInt(number).array();
-        idByteArray = Arrays.copyOfRange(idByteArray, 2, 4);
-        return Base64.encodeToString(idByteArray, Base64.NO_WRAP | Base64.NO_PADDING);
-    }
-
-    public static int getCallingThreadId() {
-        return android.os.Process.myTid();
-    }
-
-    public static void event(Call call, String event) {
-        event(call, event, null);
-    }
-
-    public static void event(Call call, String event, Object data) {
-        Session currentSession = sSessionMapper.get(getCallingThreadId());
-        String currentSessionID = currentSession != null ? currentSession.toString() : "";
-
-        if (call == null) {
-            Log.i(TAG, "Non-call EVENT: %s, %s", event, data);
-            return;
-        }
-        synchronized (mCallEventRecords) {
-            if (!mCallEventRecordMap.containsKey(call)) {
-                CallEventRecord newRecord = new CallEventRecord(call);
-                addCallEventRecord(newRecord);
-            }
-
-            CallEventRecord record = mCallEventRecordMap.get(call);
-            record.addEvent(event, currentSessionID, data);
-        }
-    }
-
-    public static void event(Call call, String event, String format, Object... args) {
-        String msg;
-        try {
-            msg = (args == null || args.length == 0) ? format
-                    : String.format(Locale.US, format, args);
-        } catch (IllegalFormatException ife) {
-            e("Log", ife, "IllegalFormatException: formatString='%s' numArgs=%d", format,
-                    args.length);
-            msg = format + " (An error occurred while formatting the message.)";
-        }
-
-        event(call, event, msg);
-    }
-
-    @VisibleForTesting
-    public static synchronized void cleanupStaleSessions(long timeoutMs) {
-        String logMessage = "Stale Sessions Cleaned:\n";
-        boolean isSessionsStale = false;
-        long currentTimeMs = System.currentTimeMillis();
-        // Remove references that are in the Session Mapper (causing GC to occur) on
-        // sessions that are lasting longer than LOGGING_SESSION_TIMEOUT_MS.
-        // If this occurs, then there is most likely a Session active that never had
-        // Log.endSession called on it.
-        for (Iterator<ConcurrentHashMap.Entry<Integer, Session>> it =
-             sSessionMapper.entrySet().iterator(); it.hasNext(); ) {
-            ConcurrentHashMap.Entry<Integer, Session> entry = it.next();
-            Session session = entry.getValue();
-            if (currentTimeMs - session.getExecutionStartTimeMilliseconds() > timeoutMs) {
-                it.remove();
-                logMessage += session.printFullSessionTree() + "\n";
-                isSessionsStale = true;
-            }
-        }
-        if (isSessionsStale) {
-            Log.w(LOGGING_TAG, logMessage);
-        } else {
-            Log.v(LOGGING_TAG, "No stale logging sessions needed to be cleaned...");
-        }
-    }
-
-    private static void addCallEventRecord(CallEventRecord newRecord) {
-        Call call = newRecord.getCall();
-
-        // First remove the oldest entry if no new ones exist.
-        if (mCallEventRecords.remainingCapacity() == 0) {
-            CallEventRecord record = mCallEventRecords.poll();
-            if (record != null) {
-                mCallEventRecordMap.remove(record.getCall());
-            }
-        }
-
-        // Now add a new entry
-        mCallEventRecords.add(newRecord);
-        mCallEventRecordMap.put(call, newRecord);
-
-        // Register the events with Analytics
-        if (call.getAnalytics() != null) {
-            call.getAnalytics().setCallEvents(newRecord);
-        } else {
-            Log.w(LOGGING_TAG, "Call analytics is null");
-        }
-    }
-
-    /**
-     * If user enabled extended logging is enabled and the time limit has passed, disables the
-     * extended logging.
-     */
-    private static void maybeDisableLogging() {
-        if (!mIsUserExtendedLoggingEnabled) {
-            return;
-        }
-
-        if (mUserExtendedLoggingStopTime < System.currentTimeMillis()) {
-            mUserExtendedLoggingStopTime = 0;
-            mIsUserExtendedLoggingEnabled = false;
-        }
-    }
-
-    public static boolean isLoggable(int level) {
-        return FORCE_LOGGING || android.util.Log.isLoggable(TAG, level);
-    }
-
-    public static void d(String prefix, String format, Object... args) {
-        if (mIsUserExtendedLoggingEnabled) {
-            maybeDisableLogging();
-            systemLogger.i(TAG, buildMessage(prefix, format, args));
-        } else if (DEBUG) {
-            systemLogger.d(TAG, buildMessage(prefix, format, args));
-        }
-    }
-
-    public static void d(Object objectPrefix, String format, Object... args) {
-        if (mIsUserExtendedLoggingEnabled) {
-            maybeDisableLogging();
-            systemLogger.i(TAG, buildMessage(getPrefixFromObject(objectPrefix), format, args));
-        } else if (DEBUG) {
-            systemLogger.d(TAG, buildMessage(getPrefixFromObject(objectPrefix), format, args));
-        }
-    }
-
-    public static void i(String prefix, String format, Object... args) {
-        if (INFO) {
-            systemLogger.i(TAG, buildMessage(prefix, format, args));
-        }
-    }
-
-    public static void i(Object objectPrefix, String format, Object... args) {
-        if (INFO) {
-            systemLogger.i(TAG, buildMessage(getPrefixFromObject(objectPrefix), format, args));
-        }
-    }
-
-    public static void v(String prefix, String format, Object... args) {
-        if (mIsUserExtendedLoggingEnabled) {
-            maybeDisableLogging();
-            systemLogger.i(TAG, buildMessage(prefix, format, args));
-        } else if (VERBOSE) {
-            systemLogger.v(TAG, buildMessage(prefix, format, args));
-        }
-    }
-
-    public static void v(Object objectPrefix, String format, Object... args) {
-        if (mIsUserExtendedLoggingEnabled) {
-            maybeDisableLogging();
-            systemLogger.i(TAG, buildMessage(getPrefixFromObject(objectPrefix), format, args));
-        } else if (VERBOSE) {
-            systemLogger.v(TAG, buildMessage(getPrefixFromObject(objectPrefix), format, args));
-        }
-    }
-
-    public static void w(String prefix, String format, Object... args) {
-        if (WARN) {
-            systemLogger.w(TAG, buildMessage(prefix, format, args));
-        }
-    }
-
-    public static void w(Object objectPrefix, String format, Object... args) {
-        if (WARN) {
-            systemLogger.w(TAG, buildMessage(getPrefixFromObject(objectPrefix), format, args));
-        }
-    }
-
-    public static void e(String prefix, Throwable tr, String format, Object... args) {
-        if (ERROR) {
-            systemLogger.e(TAG, buildMessage(prefix, format, args), tr);
-        }
-    }
-
-    public static void e(Object objectPrefix, Throwable tr, String format, Object... args) {
-        if (ERROR) {
-            systemLogger.e(TAG, buildMessage(getPrefixFromObject(objectPrefix), format, args),
-                    tr);
-        }
-    }
-
-    public static void wtf(String prefix, Throwable tr, String format, Object... args) {
-        systemLogger.wtf(TAG, buildMessage(prefix, format, args), tr);
-    }
-
-    public static void wtf(Object objectPrefix, Throwable tr, String format, Object... args) {
-        systemLogger.wtf(TAG, buildMessage(getPrefixFromObject(objectPrefix), format, args),
-                tr);
-    }
-
-    public static void wtf(String prefix, String format, Object... args) {
-        String msg = buildMessage(prefix, format, args);
-        systemLogger.wtf(TAG, msg, new IllegalStateException(msg));
-    }
-
-    public static void wtf(Object objectPrefix, String format, Object... args) {
-        String msg = buildMessage(getPrefixFromObject(objectPrefix), format, args);
-        systemLogger.wtf(TAG, msg, new IllegalStateException(msg));
-    }
-
-    public static String piiHandle(Object pii) {
-        if (pii == null || VERBOSE) {
-            return String.valueOf(pii);
-        }
-
-        StringBuilder sb = new StringBuilder();
-        if (pii instanceof Uri) {
-            Uri uri = (Uri) pii;
-            String scheme = uri.getScheme();
-
-            if (!TextUtils.isEmpty(scheme)) {
-                sb.append(scheme).append(":");
-            }
-
-            String textToObfuscate = uri.getSchemeSpecificPart();
-            if (PhoneAccount.SCHEME_TEL.equals(scheme)) {
-                for (int i = 0; i < textToObfuscate.length(); i++) {
-                    char c = textToObfuscate.charAt(i);
-                    sb.append(PhoneNumberUtils.isDialable(c) ? "*" : c);
-                }
-            } else if (PhoneAccount.SCHEME_SIP.equals(scheme)) {
-                for (int i = 0; i < textToObfuscate.length(); i++) {
-                    char c = textToObfuscate.charAt(i);
-                    if (c != '@' && c != '.') {
-                        c = '*';
-                    }
-                    sb.append(c);
-                }
-            } else {
-                sb.append(pii(pii));
-            }
-        }
-
-        return sb.toString();
-    }
-
-    /**
-     * Redact personally identifiable information for production users.
-     * If we are running in verbose mode, return the original string, otherwise
-     * return a SHA-1 hash of the input string.
-     */
-    public static String pii(Object pii) {
-        if (pii == null || VERBOSE) {
-            return String.valueOf(pii);
-        }
-        return "[" + secureHash(String.valueOf(pii).getBytes()) + "]";
-    }
-
-    public static void dumpCallEvents(IndentingPrintWriter pw) {
-        pw.println("Historical Calls:");
-        pw.increaseIndent();
-        for (CallEventRecord callEventRecord : mCallEventRecords) {
-            callEventRecord.dump(pw);
-        }
-        pw.decreaseIndent();
-    }
-
-    private static String secureHash(byte[] input) {
-        if (sMessageDigest != null) {
-            sMessageDigest.reset();
-            sMessageDigest.update(input);
-            byte[] result = sMessageDigest.digest();
-            return encodeHex(result);
-        } else {
-            return "Uninitialized SHA1";
-        }
-    }
-
-    private static String encodeHex(byte[] bytes) {
-        StringBuffer hex = new StringBuffer(bytes.length * 2);
-
-        for (int i = 0; i < bytes.length; i++) {
-            int byteIntValue = bytes[i] & 0xff;
-            if (byteIntValue < 0x10) {
-                hex.append("0");
-            }
-            hex.append(Integer.toString(byteIntValue, 16));
-        }
-
-        return hex.toString();
-    }
-
-    private static String getPrefixFromObject(Object obj) {
-        return obj == null ? "<null>" : obj.getClass().getSimpleName();
-    }
-
-    private static String buildMessage(String prefix, String format, Object... args) {
-        if (LOG_DBG) {
-            checkIsThreadLogged();
-        }
-        // Incorporate thread ID and calling method into prefix
-        String sessionPostfix = "";
-        Session currentSession = sSessionMapper.get(getCallingThreadId());
-        if (currentSession != null) {
-            sessionPostfix = ": " + currentSession.toString();
-        }
-
-        String msg;
-        try {
-            msg = (args == null || args.length == 0) ? format
-                    : String.format(Locale.US, format, args);
-        } catch (IllegalFormatException ife) {
-            e("Log", ife, "IllegalFormatException: formatString='%s' numArgs=%d", format,
-                    args.length);
-            msg = format + " (An error occurred while formatting the message.)";
-        }
-        return String.format(Locale.US, "%s: %s%s", prefix, msg, sessionPostfix);
-    }
-}
diff --git a/src/com/android/server/telecom/LogUtils.java b/src/com/android/server/telecom/LogUtils.java
new file mode 100644
index 0000000..457db50
--- /dev/null
+++ b/src/com/android/server/telecom/LogUtils.java
@@ -0,0 +1,167 @@
+/*
+ * Copyright (C) 2016 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.content.Context;
+import android.telecom.Logging.EventManager;
+import android.telecom.Logging.EventManager.TimedEventPair;
+
+/**
+ * Temporary location of new Logging class
+ */
+
+public class LogUtils {
+
+    private static final String TAG = "Telecom";
+
+    public static final boolean SYSTRACE_DEBUG = false; /* STOP SHIP if true */
+
+    public static final class Sessions {
+        public static final String ICA_ANSWER_CALL = "ICA.aC";
+        public static final String ICA_REJECT_CALL = "ICA.rC";
+        public static final String ICA_DISCONNECT_CALL = "ICA.dC";
+        public static final String ICA_HOLD_CALL = "ICA.hC";
+        public static final String ICA_UNHOLD_CALL = "ICA.uC";
+        public static final String ICA_MUTE = "ICA.m";
+        public static final String ICA_SET_AUDIO_ROUTE = "ICA.sAR";
+        public static final String ICA_CONFERENCE = "ICA.c";
+        public static final String CSW_HANDLE_CREATE_CONNECTION_COMPLETE = "CSW.hCCC";
+        public static final String CSW_SET_ACTIVE = "CSW.sA";
+        public static final String CSW_SET_RINGING = "CSW.sR";
+        public static final String CSW_SET_DIALING = "CSW.sD";
+        public static final String CSW_SET_PULLING = "CSW.sP";
+        public static final String CSW_SET_DISCONNECTED = "CSW.sDc";
+        public static final String CSW_SET_ON_HOLD = "CSW.sOH";
+        public static final String CSW_REMOVE_CALL = "CSW.rC";
+        public static final String CSW_SET_IS_CONFERENCED = "CSW.sIC";
+        public static final String CSW_ADD_CONFERENCE_CALL = "CSW.aCC";
+    }
+
+    public final static class Events {
+        public static final String CREATED = "CREATED";
+        public static final String DESTROYED = "DESTROYED";
+        public static final String SET_CONNECTING = "SET_CONNECTING";
+        public static final String SET_DIALING = "SET_DIALING";
+        public static final String SET_PULLING = "SET_PULLING";
+        public static final String SET_ACTIVE = "SET_ACTIVE";
+        public static final String SET_HOLD = "SET_HOLD";
+        public static final String SET_RINGING = "SET_RINGING";
+        public static final String SET_DISCONNECTED = "SET_DISCONNECTED";
+        public static final String SET_DISCONNECTING = "SET_DISCONNECTING";
+        public static final String SET_SELECT_PHONE_ACCOUNT = "SET_SELECT_PHONE_ACCOUNT";
+        public static final String REQUEST_HOLD = "REQUEST_HOLD";
+        public static final String REQUEST_UNHOLD = "REQUEST_UNHOLD";
+        public static final String REQUEST_DISCONNECT = "REQUEST_DISCONNECT";
+        public static final String REQUEST_ACCEPT = "REQUEST_ACCEPT";
+        public static final String REQUEST_REJECT = "REQUEST_REJECT";
+        public static final String START_DTMF = "START_DTMF";
+        public static final String STOP_DTMF = "STOP_DTMF";
+        public static final String START_RINGER = "START_RINGER";
+        public static final String STOP_RINGER = "STOP_RINGER";
+        public static final String SKIP_RINGING = "SKIP_RINGING";
+        public static final String START_CALL_WAITING_TONE = "START_CALL_WAITING_TONE";
+        public static final String STOP_CALL_WAITING_TONE = "STOP_CALL_WAITING_TONE";
+        public static final String START_CONNECTION = "START_CONNECTION";
+        public static final String BIND_CS = "BIND_CS";
+        public static final String CS_BOUND = "CS_BOUND";
+        public static final String CONFERENCE_WITH = "CONF_WITH";
+        public static final String SPLIT_FROM_CONFERENCE = "CONF_SPLIT";
+        public static final String SWAP = "SWAP";
+        public static final String ADD_CHILD = "ADD_CHILD";
+        public static final String REMOVE_CHILD = "REMOVE_CHILD";
+        public static final String SET_PARENT = "SET_PARENT";
+        public static final String MUTE = "MUTE";
+        public static final String UNMUTE = "UNMUTE";
+        public static final String AUDIO_ROUTE = "AUDIO_ROUTE";
+        public static final String AUDIO_ROUTE_EARPIECE = "AUDIO_ROUTE_EARPIECE";
+        public static final String AUDIO_ROUTE_HEADSET = "AUDIO_ROUTE_HEADSET";
+        public static final String AUDIO_ROUTE_BT = "AUDIO_ROUTE_BT";
+        public static final String AUDIO_ROUTE_SPEAKER = "AUDIO_ROUTE_SPEAKER";
+        public static final String ERROR_LOG = "ERROR";
+        public static final String USER_LOG_MARK = "USER_LOG_MARK";
+        public static final String SILENCE = "SILENCE";
+        public static final String BIND_SCREENING = "BIND_SCREENING";
+        public static final String SCREENING_BOUND = "SCREENING_BOUND";
+        public static final String SCREENING_SENT = "SCREENING_SENT";
+        public static final String SCREENING_COMPLETED = "SCREENING_COMPLETED";
+        public static final String BLOCK_CHECK_INITIATED = "BLOCK_CHECK_INITIATED";
+        public static final String BLOCK_CHECK_FINISHED = "BLOCK_CHECK_FINISHED";
+        public static final String DIRECT_TO_VM_INITIATED = "DIRECT_TO_VM_INITIATED";
+        public static final String DIRECT_TO_VM_FINISHED = "DIRECT_TO_VM_FINISHED";
+        public static final String FILTERING_INITIATED = "FILTERING_INITIATED";
+        public static final String FILTERING_COMPLETED = "FILTERING_COMPLETED";
+        public static final String FILTERING_TIMED_OUT = "FILTERING_TIMED_OUT";
+        public static final String REMOTELY_HELD = "REMOTELY_HELD";
+        public static final String REMOTELY_UNHELD = "REMOTELY_UNHELD";
+        public static final String REQUEST_PULL = "PULL";
+        public static final String INFO = "INFO";
+        public static final String VIDEO_STATE_CHANGED = "VIDEO_STATE_CHANGED";
+        public static final String RECEIVE_VIDEO_REQUEST = "RECEIVE_VIDEO_REQUEST";
+        public static final String RECEIVE_VIDEO_RESPONSE = "RECEIVE_VIDEO_RESPONSE";
+        public static final String SEND_VIDEO_REQUEST = "SEND_VIDEO_REQUEST";
+        public static final String SEND_VIDEO_RESPONSE = "SEND_VIDEO_RESPONSE";
+        public static final String IS_EXTERNAL = "IS_EXTERNAL";
+        public static final String PROPERTY_CHANGE = "PROPERTY_CHANGE";
+        public static final String CAPABILITY_CHANGE = "CAPABILITY_CHANGE";
+        public static final String CONNECTION_EVENT = "CONNECTION_EVENT";
+
+        public static class Timings {
+            public static final String ACCEPT_TIMING = "accept";
+            public static final String REJECT_TIMING = "reject";
+            public static final String DISCONNECT_TIMING = "disconnect";
+            public static final String HOLD_TIMING = "hold";
+            public static final String UNHOLD_TIMING = "unhold";
+            public static final String OUTGOING_TIME_TO_DIALING_TIMING = "outgoing_time_to_dialing";
+            public static final String BIND_CS_TIMING = "bind_cs";
+            public static final String SCREENING_COMPLETED_TIMING = "screening_completed";
+            public static final String DIRECT_TO_VM_FINISHED_TIMING = "direct_to_vm_finished";
+            public static final String BLOCK_CHECK_FINISHED_TIMING = "block_check_finished";
+            public static final String FILTERING_COMPLETED_TIMING = "filtering_completed";
+            public static final String FILTERING_TIMED_OUT_TIMING = "filtering_timed_out";
+
+            private static final TimedEventPair[] sTimedEvents = {
+                    new TimedEventPair(REQUEST_ACCEPT, SET_ACTIVE, ACCEPT_TIMING),
+                    new TimedEventPair(REQUEST_REJECT, SET_DISCONNECTED, REJECT_TIMING),
+                    new TimedEventPair(REQUEST_DISCONNECT, SET_DISCONNECTED, DISCONNECT_TIMING),
+                    new TimedEventPair(REQUEST_HOLD, SET_HOLD, HOLD_TIMING),
+                    new TimedEventPair(REQUEST_UNHOLD, SET_ACTIVE, UNHOLD_TIMING),
+                    new TimedEventPair(START_CONNECTION, SET_DIALING,
+                            OUTGOING_TIME_TO_DIALING_TIMING),
+                    new TimedEventPair(BIND_CS, CS_BOUND, BIND_CS_TIMING),
+                    new TimedEventPair(SCREENING_SENT, SCREENING_COMPLETED,
+                            SCREENING_COMPLETED_TIMING),
+                    new TimedEventPair(DIRECT_TO_VM_INITIATED, DIRECT_TO_VM_FINISHED,
+                            DIRECT_TO_VM_FINISHED_TIMING),
+                    new TimedEventPair(BLOCK_CHECK_INITIATED, BLOCK_CHECK_FINISHED,
+                            BLOCK_CHECK_FINISHED_TIMING),
+                    new TimedEventPair(FILTERING_INITIATED, FILTERING_COMPLETED,
+                            FILTERING_COMPLETED_TIMING),
+                    new TimedEventPair(FILTERING_INITIATED, FILTERING_TIMED_OUT,
+                            FILTERING_TIMED_OUT_TIMING, 6000L),
+            };
+        }
+    }
+
+    public static void initLogging(Context context) {
+        android.telecom.Log.setTag(TAG);
+        android.telecom.Log.setSessionContext(context);
+        android.telecom.Log.initMd5Sum();
+        for (EventManager.TimedEventPair p : Events.Timings.sTimedEvents) {
+            android.telecom.Log.addRequestResponsePair(p);
+        }
+    }
+}
diff --git a/src/com/android/server/telecom/MissedCallNotifier.java b/src/com/android/server/telecom/MissedCallNotifier.java
index 1125a8e..500122b 100644
--- a/src/com/android/server/telecom/MissedCallNotifier.java
+++ b/src/com/android/server/telecom/MissedCallNotifier.java
@@ -16,23 +16,82 @@
 
 package com.android.server.telecom;
 
+import android.net.Uri;
 import android.os.UserHandle;
+import android.telecom.PhoneAccountHandle;
+
+import com.android.internal.telephony.CallerInfo;
 
 /**
  * Creates a notification for calls that the user missed (neither answered nor rejected).
  */
 public interface MissedCallNotifier extends CallsManager.CallsManagerListener {
+    class CallInfoFactory {
+        public CallInfo makeCallInfo(CallerInfo callerInfo, PhoneAccountHandle phoneAccountHandle,
+                Uri handle, long creationTimeMillis) {
+            return new CallInfo(callerInfo, phoneAccountHandle, handle, creationTimeMillis);
+        }
+    }
+
+    class CallInfo {
+        private CallerInfo mCallerInfo;
+        private PhoneAccountHandle mPhoneAccountHandle;
+        private Uri mHandle;
+        private long mCreationTimeMillis;
+
+        public CallInfo(CallerInfo callerInfo, PhoneAccountHandle phoneAccountHandle, Uri handle,
+                long creationTimeMillis) {
+            mCallerInfo = callerInfo;
+            mPhoneAccountHandle = phoneAccountHandle;
+            mHandle = handle;
+            mCreationTimeMillis = creationTimeMillis;
+        }
+
+        public CallInfo(Call call) {
+            mCallerInfo = call.getCallerInfo();
+            mPhoneAccountHandle = call.getTargetPhoneAccount();
+            mHandle = call.getHandle();
+            mCreationTimeMillis = call.getCreationTimeMillis();
+        }
+
+        public CallerInfo getCallerInfo() {
+            return mCallerInfo;
+        }
+
+        public PhoneAccountHandle getPhoneAccountHandle() {
+            return mPhoneAccountHandle;
+        }
+
+        public Uri getHandle() {
+            return mHandle;
+        }
+
+        public String getHandleSchemeSpecificPart() {
+            return mHandle == null ? null : mHandle.getSchemeSpecificPart();
+        }
+
+        public long getCreationTimeMillis() {
+            return mCreationTimeMillis;
+        }
+
+        public String getPhoneNumber() {
+            return mCallerInfo == null ? null : mCallerInfo.phoneNumber;
+        }
+
+        public String getName() {
+            return mCallerInfo == null ? null : mCallerInfo.name;
+        }
+    }
 
     void clearMissedCalls(UserHandle userHandle);
 
-    void showMissedCallNotification(Call call);
+    void showMissedCallNotification(CallInfo call);
 
-    void reloadFromDatabase(
-            TelecomSystem.SyncRoot lock,
-            CallsManager callsManager,
-            ContactsAsyncHelper contactsAsyncHelper,
-            CallerInfoAsyncQueryFactory callerInfoAsyncQueryFactory,
-            UserHandle userHandle);
+    void reloadAfterBootComplete(CallerInfoLookupHelper callerInfoLookupHelper,
+            CallInfoFactory callInfoFactory);
+
+    void reloadFromDatabase(CallerInfoLookupHelper callerInfoLookupHelper,
+            CallInfoFactory callInfoFactory, UserHandle userHandle);
 
     void setCurrentUserHandle(UserHandle userHandle);
 }
diff --git a/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java b/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java
index 8b5604b..95ab7db 100644
--- a/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java
+++ b/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java
@@ -27,6 +27,7 @@
 import android.os.Trace;
 import android.os.UserHandle;
 import android.telecom.GatewayInfo;
+import android.telecom.Log;
 import android.telecom.PhoneAccount;
 import android.telecom.TelecomManager;
 import android.telecom.VideoProfile;
diff --git a/src/com/android/server/telecom/PhoneAccountRegistrar.java b/src/com/android/server/telecom/PhoneAccountRegistrar.java
index 41eb9e4..143ea53 100644
--- a/src/com/android/server/telecom/PhoneAccountRegistrar.java
+++ b/src/com/android/server/telecom/PhoneAccountRegistrar.java
@@ -37,6 +37,7 @@
 import android.provider.Settings;
 import android.telecom.ConnectionService;
 import android.telecom.DefaultDialerManager;
+import android.telecom.Log;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telephony.CarrierConfigManager;
diff --git a/src/com/android/server/telecom/PhoneStateBroadcaster.java b/src/com/android/server/telecom/PhoneStateBroadcaster.java
index 0781ca2..a44fc03 100644
--- a/src/com/android/server/telecom/PhoneStateBroadcaster.java
+++ b/src/com/android/server/telecom/PhoneStateBroadcaster.java
@@ -18,6 +18,7 @@
 
 import android.os.RemoteException;
 import android.os.ServiceManager;
+import android.telecom.Log;
 import android.telephony.TelephonyManager;
 
 import com.android.internal.telephony.ITelephonyRegistry;
diff --git a/src/com/android/server/telecom/ProximitySensorManager.java b/src/com/android/server/telecom/ProximitySensorManager.java
index e53b1d5..a79c0ed 100644
--- a/src/com/android/server/telecom/ProximitySensorManager.java
+++ b/src/com/android/server/telecom/ProximitySensorManager.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.os.PowerManager;
+import android.telecom.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
 
diff --git a/src/com/android/server/telecom/QuickResponseUtils.java b/src/com/android/server/telecom/QuickResponseUtils.java
index fd0dbd2..5f8269d 100644
--- a/src/com/android/server/telecom/QuickResponseUtils.java
+++ b/src/com/android/server/telecom/QuickResponseUtils.java
@@ -20,6 +20,7 @@
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.content.res.Resources;
+import android.telecom.Log;
 
 // TODO: Needed for move to system service: import com.android.internal.R;
 
diff --git a/src/com/android/server/telecom/RespondViaSmsManager.java b/src/com/android/server/telecom/RespondViaSmsManager.java
index 7609b08..6b2a39e 100644
--- a/src/com/android/server/telecom/RespondViaSmsManager.java
+++ b/src/com/android/server/telecom/RespondViaSmsManager.java
@@ -31,6 +31,7 @@
 import android.os.Looper;
 import android.os.Message;
 import android.telecom.Connection;
+import android.telecom.Log;
 import android.telecom.Response;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.SubscriptionManager;
diff --git a/src/com/android/server/telecom/RespondViaSmsSettings.java b/src/com/android/server/telecom/RespondViaSmsSettings.java
index f8aa568..2ea204a 100644
--- a/src/com/android/server/telecom/RespondViaSmsSettings.java
+++ b/src/com/android/server/telecom/RespondViaSmsSettings.java
@@ -20,6 +20,7 @@
 import android.app.Activity;
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.telecom.Log;
 import android.os.Bundle;
 import android.preference.EditTextPreference;
 import android.preference.Preference;
diff --git a/src/com/android/server/telecom/RingbackPlayer.java b/src/com/android/server/telecom/RingbackPlayer.java
index bfaf8a2..47b6dfe 100644
--- a/src/com/android/server/telecom/RingbackPlayer.java
+++ b/src/com/android/server/telecom/RingbackPlayer.java
@@ -17,6 +17,7 @@
 package com.android.server.telecom;
 
 import com.android.internal.util.Preconditions;
+import android.telecom.Log;
 
 /**
  * Plays ringback tones. Ringback is different from other tones because it operates as the current
diff --git a/src/com/android/server/telecom/Ringer.java b/src/com/android/server/telecom/Ringer.java
index 262f437..a5bcca0 100644
--- a/src/com/android/server/telecom/Ringer.java
+++ b/src/com/android/server/telecom/Ringer.java
@@ -19,6 +19,7 @@
 import android.app.Notification;
 import android.app.NotificationManager;
 import android.content.Context;
+import android.telecom.Log;
 import android.media.AudioAttributes;
 import android.media.AudioManager;
 import android.net.Uri;
@@ -109,7 +110,7 @@
         }
 
         if (mInCallController.doesConnectedDialerSupportRinging()) {
-            Log.event(foregroundCall, Log.Events.SKIP_RINGING);
+            Log.addEvent(foregroundCall, LogUtils.Events.SKIP_RINGING);
             return isRingerAudible;
         }
 
@@ -121,7 +122,7 @@
 
         if (isRingerAudible) {
             mRingingCall = foregroundCall;
-            Log.event(foregroundCall, Log.Events.START_RINGER);
+            Log.addEvent(foregroundCall, LogUtils.Events.START_RINGER);
             // Because we wait until a contact info query to complete before processing a
             // call (for the purposes of direct-to-voicemail), the information about custom
             // ringtones should be available by the time this code executes. We can safely
@@ -146,7 +147,7 @@
         }
 
         if (mInCallController.doesConnectedDialerSupportRinging()) {
-            Log.event(call, Log.Events.SKIP_RINGING);
+            Log.addEvent(call, LogUtils.Events.SKIP_RINGING);
             return;
         }
 
@@ -155,7 +156,7 @@
         stopRinging();
 
         if (mCallWaitingPlayer == null) {
-            Log.event(call, Log.Events.START_CALL_WAITING_TONE);
+            Log.addEvent(call, LogUtils.Events.START_CALL_WAITING_TONE);
             mCallWaitingCall = call;
             mCallWaitingPlayer =
                     mPlayerFactory.createPlayer(InCallTonePlayer.TONE_CALL_WAITING);
@@ -165,7 +166,7 @@
 
     public void stopRinging() {
         if (mRingingCall != null) {
-            Log.event(mRingingCall, Log.Events.STOP_RINGER);
+            Log.addEvent(mRingingCall, LogUtils.Events.STOP_RINGER);
             mRingingCall = null;
         }
 
@@ -181,7 +182,7 @@
         Log.v(this, "stop call waiting.");
         if (mCallWaitingPlayer != null) {
             if (mCallWaitingCall != null) {
-                Log.event(mCallWaitingCall, Log.Events.STOP_CALL_WAITING_TONE);
+                Log.addEvent(mCallWaitingCall, LogUtils.Events.STOP_CALL_WAITING_TONE);
                 mCallWaitingCall = null;
             }
 
diff --git a/src/com/android/server/telecom/RingtoneFactory.java b/src/com/android/server/telecom/RingtoneFactory.java
index 5e4fe9d..4bf731c 100644
--- a/src/com/android/server/telecom/RingtoneFactory.java
+++ b/src/com/android/server/telecom/RingtoneFactory.java
@@ -26,6 +26,8 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
+
+import android.telecom.Log;
 import android.telecom.PhoneAccount;
 import android.text.TextUtils;
 
diff --git a/src/com/android/server/telecom/Runnable.java b/src/com/android/server/telecom/Runnable.java
deleted file mode 100644
index c7ace72..0000000
--- a/src/com/android/server/telecom/Runnable.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2016 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;
-
-/**
- * Encapsulates session logging in a Runnable to reduce code duplication when continuing subsessions
- * in a handler/thread.
- */
-public abstract class Runnable {
-
-    private Session mSubsession;
-    private final String mSubsessionName;
-    private final Object mLock;
-    private final java.lang.Runnable mRunnable = new java.lang.Runnable() {
-            @Override
-            public void run() {
-                synchronized (mLock) {
-                    try {
-                        Log.continueSession(mSubsession, mSubsessionName);
-                        loggedRun();
-                    } finally {
-                        if (mSubsession != null) {
-                            Log.endSession();
-                            mSubsession = null;
-                        }
-                    }
-                }
-            }
-        };
-
-    /**
-     * Creates a new Telecom Runnable that incorporates Session Logging into it. Useful for carrying
-     * Logging Sessions through different threads as well as through handlers.
-     * @param subsessionName The name that will be used in the Logs to mark this Session
-     * @param lock The synchronization lock that will be used to lock loggedRun().
-     */
-    public Runnable(String subsessionName, Object lock) {
-        if (lock == null) {
-            mLock = new Object();
-        } else {
-            mLock = lock;
-        }
-        mSubsessionName = subsessionName;
-    }
-
-    /**
-     * Return the runnable that will be canceled in the handler queue.
-     * @return Runnable object to cancel.
-     */
-    public final java.lang.Runnable getRunnableToCancel() {
-        return mRunnable;
-    }
-
-    /**
-     * Creates a Runnable and a logging subsession that can be used in a handler/thread. Be sure to
-     * call cancel() if this session is never going to be run (removed from a handler queue, for
-     * for example).
-     * @return A Java Runnable that can be used in a handler queue or thread.
-     */
-    public java.lang.Runnable prepare() {
-        cancel();
-        mSubsession = Log.createSubsession();
-        return mRunnable;
-    }
-
-    /**
-     * This method is used to clean up the active session if the Runnable gets removed from a
-     * handler and is never run.
-     */
-    public void cancel() {
-        synchronized (mLock) {
-            Log.cancelSubsession(mSubsession);
-            mSubsession = null;
-        }
-    }
-
-    /**
-     * The method that will be run in the handler/thread. This method will be called with mLock
-     * held.
-     */
-    abstract public void loggedRun();
-
-}
diff --git a/src/com/android/server/telecom/ServiceBinder.java b/src/com/android/server/telecom/ServiceBinder.java
index 05f0bcb..5a1ae02 100644
--- a/src/com/android/server/telecom/ServiceBinder.java
+++ b/src/com/android/server/telecom/ServiceBinder.java
@@ -22,6 +22,7 @@
 import android.content.ServiceConnection;
 import android.os.IBinder;
 import android.os.UserHandle;
+import android.telecom.Log;
 import android.text.TextUtils;
 import android.util.ArraySet;
 
@@ -82,7 +83,7 @@
                 Intent serviceIntent = new Intent(mServiceAction).setComponent(mComponentName);
                 ServiceConnection connection = new ServiceBinderConnection(call);
 
-                Log.event(call, Log.Events.BIND_CS, mComponentName);
+                Log.addEvent(call, LogUtils.Events.BIND_CS, mComponentName);
                 final int bindingFlags = Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE;
                 final boolean isBound;
                 if (mUserHandle != null) {
@@ -120,7 +121,7 @@
                 synchronized (mLock) {
                     Log.i(this, "Service bound %s", componentName);
 
-                    Log.event(mCall, Log.Events.CS_BOUND, componentName);
+                    Log.addEvent(mCall, LogUtils.Events.CS_BOUND, componentName);
                     mCall = null;
 
                     // Unbind request was queued so unbind immediately.
diff --git a/src/com/android/server/telecom/Session.java b/src/com/android/server/telecom/Session.java
deleted file mode 100644
index 51ef0fa..0000000
--- a/src/com/android/server/telecom/Session.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Copyright (C) 2015 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.NonNull;
-
-import java.util.ArrayList;
-
-/**
- * The session that stores information about a thread's point of entry into the Telecom code that
- * persists until the thread exits Telecom.
- */
-public class Session {
-
-    public static final String START_SESSION = "START_SESSION";
-    public static final String CREATE_SUBSESSION = "CREATE_SUBSESSION";
-    public static final String CONTINUE_SUBSESSION = "CONTINUE_SUBSESSION";
-    public static final String END_SUBSESSION = "END_SUBSESSION";
-    public static final String END_SESSION = "END_SESSION";
-
-    public static final int UNDEFINED = -1;
-
-    private String mSessionId;
-    private String mShortMethodName;
-    private long mExecutionStartTimeMs;
-    private long mExecutionEndTimeMs = UNDEFINED;
-    private Session mParentSession;
-    private ArrayList<Session> mChildSessions;
-    private boolean mIsCompleted = false;
-    private int mChildCounter = 0;
-    // True if this is a subsession that has been started from the same thread as the parent
-    // session. This can happen if Log.startSession(...) is called multiple times on the same
-    // thread in the case of one Telecom entry point method calling another entry point method.
-    // In this case, we can just make this subsession "invisible," but still keep track of it so
-    // that the Log.endSession() calls match up.
-    private boolean mIsStartedFromActiveSession = false;
-    // Optionally provided info about the method/class/component that started the session in order
-    // to make Logging easier. This info will be provided in parentheses along with the session.
-    private String mOwnerInfo;
-
-    public Session(String sessionId, String shortMethodName, long startTimeMs, long threadID,
-            boolean isStartedFromActiveSession, String ownerInfo) {
-        setSessionId(sessionId);
-        setShortMethodName(shortMethodName);
-        mExecutionStartTimeMs = startTimeMs;
-        mParentSession = null;
-        mChildSessions = new ArrayList<>(5);
-        mIsStartedFromActiveSession = isStartedFromActiveSession;
-        mOwnerInfo = ownerInfo;
-    }
-
-    public void setSessionId(@NonNull String sessionId) {
-       if(sessionId == null) {
-           mSessionId = "?";
-       }
-       mSessionId = sessionId;
-    }
-
-    public String getShortMethodName() {
-        return mShortMethodName;
-    }
-
-    public void setShortMethodName(String shortMethodName) {
-        if(shortMethodName == null) {
-            shortMethodName = "";
-        }
-        mShortMethodName = shortMethodName;
-    }
-
-    public void setParentSession(Session parentSession) {
-        mParentSession = parentSession;
-    }
-
-    public void addChild(Session childSession) {
-        if(childSession != null) {
-            mChildSessions.add(childSession);
-        }
-    }
-
-    public void removeChild(Session child) {
-        if(child != null) {
-            mChildSessions.remove(child);
-        }
-    }
-
-    public long getExecutionStartTimeMilliseconds() {
-        return mExecutionStartTimeMs;
-    }
-
-    public void setExecutionStartTimeMs(long startTimeMs) {
-        mExecutionStartTimeMs = startTimeMs;
-    }
-
-    public Session getParentSession() {
-        return mParentSession;
-    }
-
-    public ArrayList<Session> getChildSessions() {
-        return mChildSessions;
-    }
-
-    public boolean isSessionCompleted() {
-        return mIsCompleted;
-    }
-
-    public boolean isStartedFromActiveSession() {
-        return mIsStartedFromActiveSession;
-    }
-
-    // Mark this session complete. This will be deleted by Log when all subsessions are complete
-    // as well.
-    public void markSessionCompleted(long executionEndTimeMs) {
-        mExecutionEndTimeMs = executionEndTimeMs;
-        mIsCompleted = true;
-    }
-
-    public long getLocalExecutionTime() {
-        if(mExecutionEndTimeMs == UNDEFINED) {
-            return UNDEFINED;
-        }
-        return mExecutionEndTimeMs - mExecutionStartTimeMs;
-    }
-
-    public synchronized String getNextChildId() {
-        return String.valueOf(mChildCounter++);
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (!(obj instanceof Session)) {
-            return false;
-        }
-        if (obj == this) {
-            return true;
-        }
-        Session otherSession = (Session) obj;
-        return (mSessionId.equals(otherSession.mSessionId)) &&
-                (mShortMethodName.equals(otherSession.mShortMethodName)) &&
-                mExecutionStartTimeMs == otherSession.mExecutionStartTimeMs &&
-                mParentSession == otherSession.mParentSession &&
-                mChildSessions.equals(otherSession.mChildSessions) &&
-                mIsCompleted == otherSession.mIsCompleted &&
-                mExecutionEndTimeMs == otherSession.mExecutionEndTimeMs &&
-                mChildCounter == otherSession.mChildCounter &&
-                mIsStartedFromActiveSession == otherSession.mIsStartedFromActiveSession &&
-                mOwnerInfo == otherSession.mOwnerInfo;
-    }
-
-    // Builds full session id recursively
-    private String getFullSessionId() {
-        // Cache mParentSession locally to prevent a concurrency problem where
-        // Log.endParentSessions() is called while a logging statement is running (Log.i, for
-        // example) and setting mParentSession to null in a different thread after the null check
-        // occurred.
-        Session parentSession = mParentSession;
-        if(parentSession == null) {
-            return mSessionId;
-        } else {
-            return parentSession.getFullSessionId() + "_" + mSessionId;
-        }
-    }
-
-    // Print out the full Session tree from any subsession node
-    public String printFullSessionTree() {
-        // Get to the top of the tree
-        Session topNode = this;
-        while(topNode.getParentSession() != null) {
-            topNode = topNode.getParentSession();
-        }
-        return topNode.printSessionTree();
-    }
-
-    // Recursively move down session tree using DFS, but print out each node when it is reached.
-    public String printSessionTree() {
-        StringBuilder sb = new StringBuilder();
-        printSessionTree(0, sb);
-        return sb.toString();
-    }
-
-    private void printSessionTree(int tabI, StringBuilder sb) {
-        sb.append(toString());
-        for (Session child : mChildSessions) {
-            sb.append("\n");
-            for(int i = 0; i <= tabI; i++) {
-                sb.append("\t");
-            }
-            child.printSessionTree(tabI + 1, sb);
-        }
-    }
-
-    @Override
-    public String toString() {
-        if(mParentSession != null && mIsStartedFromActiveSession) {
-            // Log.startSession was called from within another active session. Use the parent's
-            // Id instead of the child to reduce confusion.
-            return mParentSession.toString();
-        } else {
-            StringBuilder methodName = new StringBuilder();
-            methodName.append(mShortMethodName);
-            if(mOwnerInfo != null && !mOwnerInfo.isEmpty()) {
-                methodName.append("(InCall package: ");
-                methodName.append(mOwnerInfo);
-                methodName.append(")");
-            }
-            return methodName.toString() + "@" + getFullSessionId();
-        }
-    }
-}
diff --git a/src/com/android/server/telecom/StatusBarNotifier.java b/src/com/android/server/telecom/StatusBarNotifier.java
index d8ede59..af3493e 100644
--- a/src/com/android/server/telecom/StatusBarNotifier.java
+++ b/src/com/android/server/telecom/StatusBarNotifier.java
@@ -18,6 +18,7 @@
 
 import android.app.StatusBarManager;
 import android.content.Context;
+import android.telecom.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
 
diff --git a/src/com/android/server/telecom/SystemStateProvider.java b/src/com/android/server/telecom/SystemStateProvider.java
index 0b636cf..e1938b1 100644
--- a/src/com/android/server/telecom/SystemStateProvider.java
+++ b/src/com/android/server/telecom/SystemStateProvider.java
@@ -22,6 +22,7 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.res.Configuration;
+import android.telecom.Log;
 
 import java.util.Set;
 import java.util.concurrent.CopyOnWriteArraySet;
diff --git a/src/com/android/server/telecom/TelecomBroadcastIntentProcessor.java b/src/com/android/server/telecom/TelecomBroadcastIntentProcessor.java
index c5db6de..60bfe16 100644
--- a/src/com/android/server/telecom/TelecomBroadcastIntentProcessor.java
+++ b/src/com/android/server/telecom/TelecomBroadcastIntentProcessor.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.UserHandle;
+import android.telecom.Log;
 
 public final class TelecomBroadcastIntentProcessor {
     /** The action used to send SMS response for the missed call notification. */
diff --git a/src/com/android/server/telecom/TelecomServiceImpl.java b/src/com/android/server/telecom/TelecomServiceImpl.java
index c93a752..c6ce910 100644
--- a/src/com/android/server/telecom/TelecomServiceImpl.java
+++ b/src/com/android/server/telecom/TelecomServiceImpl.java
@@ -39,6 +39,8 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.telecom.DefaultDialerManager;
+import android.telecom.Log;
+import android.telecom.ParcelableCallAnalytics;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomAnalytics;
@@ -1194,7 +1196,7 @@
                 pw.decreaseIndent();
             }
 
-            Log.dumpCallEvents(pw);
+            Log.dumpEvents(pw);
         }
 
         /**
diff --git a/src/com/android/server/telecom/TelecomSystem.java b/src/com/android/server/telecom/TelecomSystem.java
index 24d925d..5bbce5c 100644
--- a/src/com/android/server/telecom/TelecomSystem.java
+++ b/src/com/android/server/telecom/TelecomSystem.java
@@ -31,6 +31,7 @@
 import android.content.IntentFilter;
 import android.net.Uri;
 import android.os.UserHandle;
+import android.telecom.Log;
 
 import java.io.FileNotFoundException;
 import java.io.InputStream;
@@ -38,7 +39,7 @@
 /**
  * Top-level Application class for Telecom.
  */
-public final class TelecomSystem {
+public class TelecomSystem {
 
     /**
      * This interface is implemented by system-instantiated components (e.g., Services and
@@ -68,6 +69,9 @@
     private static final IntentFilter USER_STARTING_FILTER =
             new IntentFilter(Intent.ACTION_USER_STARTING);
 
+    private static final IntentFilter BOOT_COMPLETE_FILTER =
+            new IntentFilter(Intent.ACTION_BOOT_COMPLETED);
+
     /** Intent filter for dialer secret codes. */
     private static final IntentFilter DIALER_SECRET_CODE_FILTER;
 
@@ -102,15 +106,19 @@
     private final ContactsAsyncHelper mContactsAsyncHelper;
     private final DialerCodeReceiver mDialerCodeReceiver;
 
+    private boolean mIsBootComplete = false;
+
     private final BroadcastReceiver mUserSwitchedReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
             Log.startSession("TSSwR.oR");
             try {
-                int userHandleId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0);
-                UserHandle currentUserHandle = new UserHandle(userHandleId);
-                mPhoneAccountRegistrar.setCurrentUserHandle(currentUserHandle);
-                mCallsManager.onUserSwitch(currentUserHandle);
+                synchronized (mLock) {
+                    int userHandleId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0);
+                    UserHandle currentUserHandle = new UserHandle(userHandleId);
+                    mPhoneAccountRegistrar.setCurrentUserHandle(currentUserHandle);
+                    mCallsManager.onUserSwitch(currentUserHandle);
+                }
             } finally {
                 Log.endSession();
             }
@@ -122,9 +130,26 @@
         public void onReceive(Context context, Intent intent) {
             Log.startSession("TSStR.oR");
             try {
-                int userHandleId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0);
-                UserHandle addingUserHandle = new UserHandle(userHandleId);
-                mCallsManager.onUserStarting(addingUserHandle);
+                synchronized (mLock) {
+                    int userHandleId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0);
+                    UserHandle addingUserHandle = new UserHandle(userHandleId);
+                    mCallsManager.onUserStarting(addingUserHandle);
+                }
+            } finally {
+                Log.endSession();
+            }
+        }
+    };
+
+    private final BroadcastReceiver mBootCompletedReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            Log.startSession("TSBCR.oR");
+            try {
+                synchronized (mLock) {
+                    mIsBootComplete = true;
+                    mCallsManager.onBootCompleted();
+                }
             } finally {
                 Log.endSession();
             }
@@ -137,7 +162,7 @@
 
     public static void setInstance(TelecomSystem instance) {
         if (INSTANCE != null) {
-            throw new RuntimeException("Attempt to set TelecomSystem.INSTANCE twice");
+            Log.w("TelecomSystem", "Attempt to set TelecomSystem.INSTANCE twice");
         }
         Log.i(TelecomSystem.class, "TelecomSystem.INSTANCE being set");
         INSTANCE = instance;
@@ -158,8 +183,7 @@
             PhoneNumberUtilsAdapter phoneNumberUtilsAdapter,
             InterruptionFilterProxy interruptionFilterProxy) {
         mContext = context.getApplicationContext();
-        Log.setContext(mContext);
-        Log.initMd5Sum();
+        LogUtils.initLogging(mContext);
 
         Log.startSession("TS.init");
         mPhoneAccountRegistrar = new PhoneAccountRegistrar(mContext);
@@ -177,8 +201,7 @@
         SystemStateProvider systemStateProvider = new SystemStateProvider(mContext);
 
         mMissedCallNotifier = missedCallNotifierImplFactory
-                .makeMissedCallNotifierImpl(mContext, mPhoneAccountRegistrar,
-                        phoneNumberUtilsAdapter);
+                .makeMissedCallNotifierImpl(mContext, mPhoneAccountRegistrar);
 
         DefaultDialerManagerAdapter defaultDialerAdapter =
                 new TelecomServiceImpl.DefaultDialerManagerAdapterImpl();
@@ -208,6 +231,7 @@
 
         mContext.registerReceiver(mUserSwitchedReceiver, USER_SWITCHED_FILTER);
         mContext.registerReceiver(mUserStartingReceiver, USER_STARTING_FILTER);
+        mContext.registerReceiver(mBootCompletedReceiver, BOOT_COMPLETE_FILTER);
 
         mBluetoothPhoneServiceImpl = bluetoothPhoneServiceImplFactory.makeBluetoothPhoneServiceImpl(
                 mContext, mLock, mCallsManager, mPhoneAccountRegistrar);
@@ -264,4 +288,8 @@
     public Object getLock() {
         return mLock;
     }
+
+    public boolean isBootComplete() {
+        return mIsBootComplete;
+    }
 }
diff --git a/src/com/android/server/telecom/TelecomWakeLock.java b/src/com/android/server/telecom/TelecomWakeLock.java
index 9fca19e..185e111 100644
--- a/src/com/android/server/telecom/TelecomWakeLock.java
+++ b/src/com/android/server/telecom/TelecomWakeLock.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.os.PowerManager;
+import android.telecom.Log;
 
 /**
  * Container for PowerManager / PowerManager.WakeLock access in telecom to facilitate unit testing.
diff --git a/src/com/android/server/telecom/ThreadUtil.java b/src/com/android/server/telecom/ThreadUtil.java
index 650e73f..571d529 100644
--- a/src/com/android/server/telecom/ThreadUtil.java
+++ b/src/com/android/server/telecom/ThreadUtil.java
@@ -17,6 +17,7 @@
 package com.android.server.telecom;
 
 import android.os.Looper;
+import android.telecom.Log;
 
 /**
  * Helper methods to deal with threading related tasks.
diff --git a/src/com/android/server/telecom/Timeouts.java b/src/com/android/server/telecom/Timeouts.java
index 7be59c3..f837947 100644
--- a/src/com/android/server/telecom/Timeouts.java
+++ b/src/com/android/server/telecom/Timeouts.java
@@ -121,15 +121,6 @@
     }
 
     /**
-     * Returns the amount of time after a Logging session has been started that Telecom is set to
-     * perform a sweep to check and make sure that the session is still not incomplete (stale).
-     */
-    public static long getStaleSessionCleanupTimeoutMillis(ContentResolver contentResolver) {
-        return get(contentResolver, "stale_session_cleanup_timeout_millis",
-                Log.DEFAULT_SESSION_TIMEOUT_MS);
-    }
-
-    /**
      * Returns the amount of time to wait for the call screening service to allow or disallow a
      * call.
      */
diff --git a/src/com/android/server/telecom/TtyManager.java b/src/com/android/server/telecom/TtyManager.java
index 25284e4..2d04234 100644
--- a/src/com/android/server/telecom/TtyManager.java
+++ b/src/com/android/server/telecom/TtyManager.java
@@ -23,6 +23,7 @@
 import android.media.AudioManager;
 import android.os.UserHandle;
 import android.provider.Settings;
+import android.telecom.Log;
 import android.telecom.TelecomManager;
 
 import com.android.internal.util.IndentingPrintWriter;
diff --git a/src/com/android/server/telecom/VideoProviderProxy.java b/src/com/android/server/telecom/VideoProviderProxy.java
index 3722b59..e14aba7 100644
--- a/src/com/android/server/telecom/VideoProviderProxy.java
+++ b/src/com/android/server/telecom/VideoProviderProxy.java
@@ -22,6 +22,7 @@
 import android.os.RemoteException;
 import android.telecom.Connection;
 import android.telecom.InCallService;
+import android.telecom.Log;
 import android.telecom.VideoProfile;
 import android.view.Surface;
 
@@ -129,7 +130,7 @@
                 Log.startSession("VPP.rSMR");
                 synchronized (mLock) {
                     logFromVideoProvider("receiveSessionModifyRequest: " + videoProfile);
-                    Log.event(mCall, Log.Events.RECEIVE_VIDEO_REQUEST,
+                    Log.addEvent(mCall, LogUtils.Events.RECEIVE_VIDEO_REQUEST,
                             VideoProfile.videoStateToString(videoProfile.getVideoState()));
 
                     mCall.getAnalytics().addVideoEvent(
@@ -141,8 +142,7 @@
                         // If video calling is not supported by the phone account, and we receive
                         // a request to upgrade to video, automatically reject it without informing
                         // the InCallService.
-
-                        Log.event(mCall, Log.Events.SEND_VIDEO_RESPONSE, "video not supported");
+                        Log.addEvent(mCall, LogUtils.Events.SEND_VIDEO_RESPONSE, "video not supported");
                         VideoProfile responseProfile = new VideoProfile(
                                 VideoProfile.STATE_AUDIO_ONLY);
                         try {
@@ -182,7 +182,7 @@
                     " requestProfile=" + requestProfile + " responseProfile=" + responseProfile);
             String eventMessage = "Status Code : " + status + " Video State: " +
                     (responseProfile != null ? responseProfile.getVideoState() : "null");
-            Log.event(mCall, Log.Events.RECEIVE_VIDEO_RESPONSE, eventMessage);
+            Log.addEvent(mCall, LogUtils.Events.RECEIVE_VIDEO_RESPONSE, eventMessage);
             synchronized (mLock) {
                 if (status == Connection.VideoProvider.SESSION_MODIFY_REQUEST_SUCCESS) {
                     mCall.getAnalytics().addVideoEvent(
@@ -371,7 +371,7 @@
     public void onSendSessionModifyRequest(VideoProfile fromProfile, VideoProfile toProfile) {
         synchronized (mLock) {
             logFromInCall("sendSessionModifyRequest: from=" + fromProfile + " to=" + toProfile);
-            Log.event(mCall, Log.Events.SEND_VIDEO_REQUEST,
+            Log.addEvent(mCall, LogUtils.Events.SEND_VIDEO_REQUEST,
                     VideoProfile.videoStateToString(toProfile.getVideoState()));
             mCall.getAnalytics().addVideoEvent(
                     Analytics.SEND_LOCAL_SESSION_MODIFY_REQUEST,
@@ -393,7 +393,7 @@
     public void onSendSessionModifyResponse(VideoProfile responseProfile) {
         synchronized (mLock) {
             logFromInCall("sendSessionModifyResponse: " + responseProfile);
-            Log.event(mCall, Log.Events.SEND_VIDEO_RESPONSE,
+            Log.addEvent(mCall, LogUtils.Events.SEND_VIDEO_RESPONSE,
                     VideoProfile.videoStateToString(responseProfile.getVideoState()));
             mCall.getAnalytics().addVideoEvent(
                     Analytics.SEND_LOCAL_SESSION_MODIFY_RESPONSE,
diff --git a/src/com/android/server/telecom/WiredHeadsetManager.java b/src/com/android/server/telecom/WiredHeadsetManager.java
index 5bd49f5..a5e4404 100644
--- a/src/com/android/server/telecom/WiredHeadsetManager.java
+++ b/src/com/android/server/telecom/WiredHeadsetManager.java
@@ -20,6 +20,7 @@
 import android.media.AudioDeviceCallback;
 import android.media.AudioDeviceInfo;
 import android.media.AudioManager;
+import android.telecom.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.IndentingPrintWriter;
diff --git a/src/com/android/server/telecom/callfiltering/AsyncBlockCheckFilter.java b/src/com/android/server/telecom/callfiltering/AsyncBlockCheckFilter.java
index 51fc390..2f78d23 100644
--- a/src/com/android/server/telecom/callfiltering/AsyncBlockCheckFilter.java
+++ b/src/com/android/server/telecom/callfiltering/AsyncBlockCheckFilter.java
@@ -18,10 +18,11 @@
 
 import android.content.Context;
 import android.os.AsyncTask;
+import android.telecom.Log;
+import android.telecom.Logging.Session;
 
 import com.android.server.telecom.Call;
-import com.android.server.telecom.Log;
-import com.android.server.telecom.Session;
+import com.android.server.telecom.LogUtils;
 
 /**
  * An {@link AsyncTask} that checks if a call needs to be blocked.
@@ -61,7 +62,7 @@
     protected Boolean doInBackground(String... params) {
         try {
             Log.continueSession(mBackgroundTaskSubsession, "ABCF.dIB");
-            Log.event(mIncomingCall, Log.Events.BLOCK_CHECK_INITIATED);
+            Log.addEvent(mIncomingCall, LogUtils.Events.BLOCK_CHECK_INITIATED);
             return mBlockCheckerAdapter.isBlocked(mContext, params[0]);
         } finally {
             Log.endSession();
@@ -88,7 +89,7 @@
                         true // shouldShowNotification
                 );
             }
-            Log.event(mIncomingCall, Log.Events.BLOCK_CHECK_FINISHED, result);
+            Log.addEvent(mIncomingCall, LogUtils.Events.BLOCK_CHECK_FINISHED, result);
             mCallback.onCallFilteringComplete(mIncomingCall, result);
         } finally {
             Log.endSession();
diff --git a/src/com/android/server/telecom/callfiltering/CallScreeningServiceFilter.java b/src/com/android/server/telecom/callfiltering/CallScreeningServiceFilter.java
index db99e2f..44f5aad 100644
--- a/src/com/android/server/telecom/callfiltering/CallScreeningServiceFilter.java
+++ b/src/com/android/server/telecom/callfiltering/CallScreeningServiceFilter.java
@@ -27,13 +27,14 @@
 import android.os.RemoteException;
 import android.os.UserHandle;
 import android.telecom.CallScreeningService;
+import android.telecom.Log;
 import android.text.TextUtils;
 
 import com.android.internal.telecom.ICallScreeningAdapter;
 import com.android.internal.telecom.ICallScreeningService;
 import com.android.server.telecom.Call;
 import com.android.server.telecom.CallsManager;
-import com.android.server.telecom.Log;
+import com.android.server.telecom.LogUtils;
 import com.android.server.telecom.ParcelableCallUtils;
 import com.android.server.telecom.PhoneAccountRegistrar;
 import com.android.server.telecom.TelecomServiceImpl;
@@ -52,7 +53,7 @@
             Log.startSession("CSCR.oSC");
             try {
                 synchronized (mTelecomLock) {
-                    Log.event(mCall, Log.Events.SCREENING_BOUND, componentName);
+                    Log.addEvent(mCall, LogUtils.Events.SCREENING_BOUND, componentName);
                     if (!mHasFinished) {
                         onServiceBound(ICallScreeningService.Stub.asInterface(service));
                     }
@@ -174,7 +175,7 @@
             Log.w(this, "Attempting to reuse CallScreeningServiceFilter. Ignoring.");
             return;
         }
-        Log.event(call, Log.Events.SCREENING_SENT);
+        Log.addEvent(call, LogUtils.Events.SCREENING_SENT);
         mCall = call;
         mCallback = callback;
         if (!bindService()) {
@@ -185,7 +186,7 @@
 
     private void finishCallScreening() {
         if (!mHasFinished) {
-            Log.event(mCall, Log.Events.SCREENING_COMPLETED, mResult);
+            Log.addEvent(mCall, LogUtils.Events.SCREENING_COMPLETED, mResult);
             mCallback.onCallFilteringComplete(mCall, mResult);
 
             if (mConnection != null) {
@@ -230,7 +231,7 @@
 
         ComponentName componentName =
                 new ComponentName(entry.serviceInfo.packageName, entry.serviceInfo.name);
-        Log.event(mCall, Log.Events.BIND_SCREENING, componentName);
+        Log.addEvent(mCall, LogUtils.Events.BIND_SCREENING, componentName);
         intent.setComponent(componentName);
         ServiceConnection connection = new CallScreeningServiceConnection();
         if (mContext.bindServiceAsUser(
diff --git a/src/com/android/server/telecom/callfiltering/DirectToVoicemailCallFilter.java b/src/com/android/server/telecom/callfiltering/DirectToVoicemailCallFilter.java
index 1aaae46..41e4351 100644
--- a/src/com/android/server/telecom/callfiltering/DirectToVoicemailCallFilter.java
+++ b/src/com/android/server/telecom/callfiltering/DirectToVoicemailCallFilter.java
@@ -17,11 +17,12 @@
 package com.android.server.telecom.callfiltering;
 
 import android.net.Uri;
+import android.telecom.Log;
 
 import com.android.internal.telephony.CallerInfo;
 import com.android.server.telecom.Call;
 import com.android.server.telecom.CallerInfoLookupHelper;
-import com.android.server.telecom.Log;
+import com.android.server.telecom.LogUtils;
 
 import java.util.Objects;
 
@@ -34,7 +35,7 @@
 
     @Override
     public void startFilterLookup(final Call call, CallFilterResultCallback callback) {
-        Log.event(call, Log.Events.DIRECT_TO_VM_INITIATED);
+        Log.addEvent(call, LogUtils.Events.DIRECT_TO_VM_INITIATED);
         final Uri callHandle = call.getHandle();
 
         mCallerInfoLookupHelper.startLookup(callHandle,
@@ -58,7 +59,7 @@
                                         true // shouldShowNotification
                                 );
                             }
-                            Log.event(call, Log.Events.DIRECT_TO_VM_FINISHED, result);
+                            Log.addEvent(call, LogUtils.Events.DIRECT_TO_VM_FINISHED, result);
                             callback.onCallFilteringComplete(call, result);
                         } else {
                             Log.w(this, "CallerInfo lookup returned with a different handle than " +
diff --git a/src/com/android/server/telecom/callfiltering/IncomingCallFilter.java b/src/com/android/server/telecom/callfiltering/IncomingCallFilter.java
index 6e0c684..1c947d1 100644
--- a/src/com/android/server/telecom/callfiltering/IncomingCallFilter.java
+++ b/src/com/android/server/telecom/callfiltering/IncomingCallFilter.java
@@ -19,11 +19,12 @@
 import android.content.Context;
 import android.os.Handler;
 import android.os.Looper;
+import android.telecom.Log;
+import android.telecom.Logging.Runnable;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.server.telecom.Call;
-import com.android.server.telecom.Log;
-import com.android.server.telecom.Runnable;
+import com.android.server.telecom.LogUtils;
 import com.android.server.telecom.TelecomSystem;
 import com.android.server.telecom.Timeouts;
 
@@ -66,7 +67,7 @@
     }
 
     public void performFiltering() {
-        Log.event(mCall, Log.Events.FILTERING_INITIATED);
+        Log.addEvent(mCall, LogUtils.Events.FILTERING_INITIATED);
         for (CallFilter filter : mFilters) {
             filter.startFilterLookup(mCall, this);
         }
@@ -76,7 +77,7 @@
             public void loggedRun() {
                 if (mIsPending) {
                     Log.i(IncomingCallFilter.this, "Call filtering has timed out.");
-                    Log.event(mCall, Log.Events.FILTERING_TIMED_OUT);
+                    Log.addEvent(mCall, LogUtils.Events.FILTERING_TIMED_OUT);
                     mListener.onCallFilteringComplete(mCall, mResult);
                     mIsPending = false;
                 }
@@ -94,7 +95,7 @@
                     @Override
                     public void loggedRun() {
                         if (mIsPending) {
-                            Log.event(mCall, Log.Events.FILTERING_COMPLETED, mResult);
+                            Log.addEvent(mCall, LogUtils.Events.FILTERING_COMPLETED, mResult);
                             mListener.onCallFilteringComplete(mCall, mResult);
                             mIsPending = false;
                         }
diff --git a/src/com/android/server/telecom/components/ErrorDialogActivity.java b/src/com/android/server/telecom/components/ErrorDialogActivity.java
index 473767a..1bdcdf2 100644
--- a/src/com/android/server/telecom/components/ErrorDialogActivity.java
+++ b/src/com/android/server/telecom/components/ErrorDialogActivity.java
@@ -16,7 +16,6 @@
 
 package com.android.server.telecom.components;
 
-import com.android.server.telecom.Log;
 import com.android.server.telecom.R;
 
 import android.app.Activity;
@@ -24,6 +23,7 @@
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
+import android.telecom.Log;
 
 // TODO: Needed for move to system service: import com.android.internal.R;
 
diff --git a/src/com/android/server/telecom/components/PrimaryCallReceiver.java b/src/com/android/server/telecom/components/PrimaryCallReceiver.java
index a05f04e..f19a243 100644
--- a/src/com/android/server/telecom/components/PrimaryCallReceiver.java
+++ b/src/com/android/server/telecom/components/PrimaryCallReceiver.java
@@ -1,11 +1,11 @@
 package com.android.server.telecom.components;
 
-import com.android.server.telecom.Log;
 import com.android.server.telecom.TelecomSystem;
 
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
+import android.telecom.Log;
 
 /**
  * Single point of entry for all outgoing and incoming calls. {@link UserCallIntentProcessor} serves
diff --git a/src/com/android/server/telecom/components/TelecomService.java b/src/com/android/server/telecom/components/TelecomService.java
index f36a892..d3cd073 100644
--- a/src/com/android/server/telecom/components/TelecomService.java
+++ b/src/com/android/server/telecom/components/TelecomService.java
@@ -26,6 +26,7 @@
 import android.os.IBinder;
 import android.os.PowerManager;
 import android.os.ServiceManager;
+import android.telecom.Log;
 
 import com.android.internal.telephony.CallerInfoAsyncQuery;
 import com.android.server.telecom.AsyncRingtonePlayer;
@@ -43,7 +44,6 @@
 import com.android.server.telecom.PhoneNumberUtilsAdapterImpl;
 import com.android.server.telecom.ProximitySensorManagerFactory;
 import com.android.server.telecom.InCallWakeLockController;
-import com.android.server.telecom.Log;
 import com.android.server.telecom.ProximitySensorManager;
 import com.android.server.telecom.TelecomSystem;
 import com.android.server.telecom.TelecomWakeLock;
@@ -86,10 +86,9 @@
                                 @Override
                                 public MissedCallNotifierImpl makeMissedCallNotifierImpl(
                                         Context context,
-                                        PhoneAccountRegistrar phoneAccountRegistrar,
-                                        PhoneNumberUtilsAdapter phoneNumberUtilsAdapter) {
+                                        PhoneAccountRegistrar phoneAccountRegistrar) {
                                     return new MissedCallNotifierImpl(context,
-                                            phoneAccountRegistrar, phoneNumberUtilsAdapter);
+                                            phoneAccountRegistrar);
                                 }
                             },
                             new CallerInfoAsyncQueryFactory() {
diff --git a/src/com/android/server/telecom/components/UserCallActivity.java b/src/com/android/server/telecom/components/UserCallActivity.java
index 39cb4f9..1a3c77a 100644
--- a/src/com/android/server/telecom/components/UserCallActivity.java
+++ b/src/com/android/server/telecom/components/UserCallActivity.java
@@ -17,7 +17,6 @@
 package com.android.server.telecom.components;
 
 import com.android.server.telecom.CallIntentProcessor;
-import com.android.server.telecom.Log;
 import com.android.server.telecom.TelecomSystem;
 
 import android.app.Activity;
@@ -26,6 +25,7 @@
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.telecom.Log;
 import android.telecom.TelecomManager;
 
 // TODO: Needed for move to system service: import com.android.internal.R;
@@ -64,7 +64,10 @@
             // accurately determine whether the calling package has the CALL_PHONE runtime permission.
             // At this point in time we trust that the ActivityManager has already performed this
             // validation before starting this activity.
-            new UserCallIntentProcessor(this, userHandle).processIntent(getIntent(),
+            // Create a new instance of intent to avoid modifying the
+            // ActivityThread.ActivityClientRecord#intent directly.
+            // Modifying directly may be a potential risk when relaunching this activity.
+            new UserCallIntentProcessor(this, userHandle).processIntent(new Intent(intent),
                     getCallingPackage(), true /* hasCallAppOp*/);
         } finally {
             Log.endSession();
diff --git a/src/com/android/server/telecom/components/UserCallIntentProcessor.java b/src/com/android/server/telecom/components/UserCallIntentProcessor.java
index a513bcf..a95768e 100644
--- a/src/com/android/server/telecom/components/UserCallIntentProcessor.java
+++ b/src/com/android/server/telecom/components/UserCallIntentProcessor.java
@@ -17,7 +17,6 @@
 package com.android.server.telecom.components;
 
 import com.android.server.telecom.CallIntentProcessor;
-import com.android.server.telecom.Log;
 import com.android.server.telecom.R;
 import com.android.server.telecom.TelephonyUtil;
 import com.android.server.telecom.UserUtil;
@@ -32,6 +31,7 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.telecom.DefaultDialerManager;
+import android.telecom.Log;
 import android.telecom.PhoneAccount;
 import android.telecom.TelecomManager;
 import android.telecom.VideoProfile;
diff --git a/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java b/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java
index 16d4249..52da039 100644
--- a/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java
+++ b/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java
@@ -18,25 +18,21 @@
 
 import static android.Manifest.permission.READ_PHONE_STATE;
 
+import android.annotation.NonNull;
 import android.content.ComponentName;
 import android.content.ContentProvider;
 import android.content.pm.PackageManager.NameNotFoundException;
+import android.telecom.Logging.Runnable;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
 
-import com.android.server.telecom.Call;
-import com.android.server.telecom.CallState;
-import com.android.server.telecom.CallerInfoAsyncQueryFactory;
-import com.android.server.telecom.CallsManager;
+import com.android.server.telecom.CallerInfoLookupHelper;
 import com.android.server.telecom.CallsManagerListenerBase;
 import com.android.server.telecom.Constants;
-import com.android.server.telecom.ContactsAsyncHelper;
-import com.android.server.telecom.Log;
 import com.android.server.telecom.MissedCallNotifier;
 import com.android.server.telecom.PhoneAccountRegistrar;
 import com.android.server.telecom.PhoneNumberUtilsAdapter;
 import com.android.server.telecom.R;
-import com.android.server.telecom.Runnable;
 import com.android.server.telecom.TelecomBroadcastIntentProcessor;
 import com.android.server.telecom.TelecomSystem;
 import com.android.server.telecom.components.TelecomBroadcastReceiver;
@@ -60,7 +56,7 @@
 import android.os.UserHandle;
 import android.provider.CallLog.Calls;
 import android.telecom.DefaultDialerManager;
-import android.telecom.DisconnectCause;
+import android.telecom.Log;
 import android.telecom.PhoneAccount;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.TelephonyManager;
@@ -74,6 +70,7 @@
 import java.lang.String;
 import java.util.List;
 import java.util.Locale;
+import java.util.Objects;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -84,18 +81,12 @@
  * Creates a notification for calls that the user missed (neither answered nor rejected).
  *
  * TODO: Make TelephonyManager.clearMissedCalls call into this class.
- *
- * TODO: Reduce dependencies in this implementation; remove the need to create a new Call
- *     simply to look up caller metadata, and if possible, make it unnecessary to get a
- *     direct reference to the CallsManager. Try to make this class simply handle the UI
- *     and Android-framework entanglements of missed call notification.
  */
 public class MissedCallNotifierImpl extends CallsManagerListenerBase implements MissedCallNotifier {
 
     public interface MissedCallNotifierImplFactory {
         MissedCallNotifier makeMissedCallNotifierImpl(Context context,
-                PhoneAccountRegistrar phoneAccountRegistrar,
-                PhoneNumberUtilsAdapter phoneNumberUtilsAdapter);
+                PhoneAccountRegistrar phoneAccountRegistrar);
     }
 
     public interface NotificationBuilderFactory {
@@ -120,12 +111,16 @@
         Calls.TYPE,
     };
 
-    private static final int CALL_LOG_COLUMN_ID = 0;
-    private static final int CALL_LOG_COLUMN_NUMBER = 1;
-    private static final int CALL_LOG_COLUMN_NUMBER_PRESENTATION = 2;
-    private static final int CALL_LOG_COLUMN_DATE = 3;
-    private static final int CALL_LOG_COLUMN_DURATION = 4;
-    private static final int CALL_LOG_COLUMN_TYPE = 5;
+    private static final String CALL_LOG_WHERE_CLAUSE = "type=" + Calls.MISSED_TYPE +
+            " AND new=1" +
+            " AND is_read=0";
+
+    public static final int CALL_LOG_COLUMN_ID = 0;
+    public static final int CALL_LOG_COLUMN_NUMBER = 1;
+    public static final int CALL_LOG_COLUMN_NUMBER_PRESENTATION = 2;
+    public static final int CALL_LOG_COLUMN_DATE = 3;
+    public static final int CALL_LOG_COLUMN_DURATION = 4;
+    public static final int CALL_LOG_COLUMN_TYPE = 5;
 
     private static final int MISSED_CALL_NOTIFICATION_ID = 1;
 
@@ -133,25 +128,22 @@
     private final PhoneAccountRegistrar mPhoneAccountRegistrar;
     private final NotificationManager mNotificationManager;
     private final NotificationBuilderFactory mNotificationBuilderFactory;
-    private final PhoneNumberUtilsAdapter mPhoneNumberUtilsAdapter;
     private UserHandle mCurrentUserHandle;
 
     // Used to track the number of missed calls.
     private ConcurrentMap<UserHandle, AtomicInteger> mMissedCallCounts;
 
-    public MissedCallNotifierImpl(Context context, PhoneAccountRegistrar phoneAccountRegistrar,
-            PhoneNumberUtilsAdapter phoneNumberUtilsAdapter) {
-        this(context, phoneAccountRegistrar, phoneNumberUtilsAdapter,
-                new DefaultNotificationBuilderFactory());
+    private UserHandle userToLoadAfterBootComplete;
+
+    public MissedCallNotifierImpl(Context context, PhoneAccountRegistrar phoneAccountRegistrar) {
+        this(context, phoneAccountRegistrar, new DefaultNotificationBuilderFactory());
     }
 
     public MissedCallNotifierImpl(Context context,
             PhoneAccountRegistrar phoneAccountRegistrar,
-            PhoneNumberUtilsAdapter phoneNumberUtilsAdapter,
             NotificationBuilderFactory notificationBuilderFactory) {
         mContext = context;
         mPhoneAccountRegistrar = phoneAccountRegistrar;
-        mPhoneNumberUtilsAdapter = phoneNumberUtilsAdapter;
         mNotificationManager =
                 (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
 
@@ -197,7 +189,8 @@
     }
 
     /**
-     * Returns the missed-call notificatino intent to send to the default dialer for the given user.     * Note, the passed in userHandle is always the non-managed user for SIM calls (multi-user
+     * Returns the missed-call notification intent to send to the default dialer for the given user.
+     * Note, the passed in userHandle is always the non-managed user for SIM calls (multi-user
      * calls). In this case we return the default dialer for the logged in user. This is never the
      * managed (work profile) dialer.
      *
@@ -226,7 +219,7 @@
         return receivers.size() > 0;
     }
 
-    private void sendNotificationThroughDefaultDialer(Call call, UserHandle userHandle) {
+    private void sendNotificationThroughDefaultDialer(CallInfo callInfo, UserHandle userHandle) {
         int count = mMissedCallCounts.get(userHandle).get();
         Intent intent = getShowMissedCallIntentForDefaultDialer(userHandle)
             .setFlags(Intent.FLAG_RECEIVER_FOREGROUND)
@@ -234,10 +227,10 @@
                     createClearMissedCallsPendingIntent(userHandle))
             .putExtra(TelecomManager.EXTRA_NOTIFICATION_COUNT, count)
             .putExtra(TelecomManager.EXTRA_NOTIFICATION_PHONE_NUMBER,
-                    call != null ? call.getPhoneNumber() : null);
+                    callInfo == null ? null : callInfo.getPhoneNumber());
 
-        if (count == 1 && call != null) {
-            final Uri handleUri = call.getHandle();
+        if (count == 1 && callInfo != null) {
+            final Uri handleUri = callInfo.getHandle();
             String handle = handleUri == null ? null : handleUri.getSchemeSpecificPart();
 
             if (!TextUtils.isEmpty(handle) && !TextUtils.equals(handle,
@@ -258,8 +251,8 @@
      * @param call The missed call.
      */
     @Override
-    public void showMissedCallNotification(Call call) {
-        final PhoneAccountHandle phoneAccountHandle = call.getTargetPhoneAccount();
+    public void showMissedCallNotification(@NonNull CallInfo callInfo) {
+        final PhoneAccountHandle phoneAccountHandle = callInfo.getPhoneAccountHandle();
         final PhoneAccount phoneAccount =
                 mPhoneAccountRegistrar.getPhoneAccountUnchecked(phoneAccountHandle);
         UserHandle userHandle;
@@ -269,15 +262,16 @@
         } else {
             userHandle = phoneAccountHandle.getUserHandle();
         }
-        showMissedCallNotification(call, userHandle);
+        showMissedCallNotification(callInfo, userHandle);
     }
 
-    private void showMissedCallNotification(Call call, UserHandle userHandle) {
+    private void showMissedCallNotification(@NonNull CallInfo callInfo, UserHandle userHandle) {
+        Log.i(this, "showMissedCallNotification()");
         mMissedCallCounts.putIfAbsent(userHandle, new AtomicInteger(0));
         int missCallCounts = mMissedCallCounts.get(userHandle).incrementAndGet();
 
         if (shouldManageNotificationThroughDefaultDialer(userHandle)) {
-            sendNotificationThroughDefaultDialer(call, userHandle);
+            sendNotificationThroughDefaultDialer(callInfo, userHandle);
             return;
         }
 
@@ -288,9 +282,9 @@
         // 1 missed call: <caller name || handle>
         // More than 1 missed call: <number of calls> + "missed calls"
         if (missCallCounts == 1) {
-            expandedText = getNameForCall(call);
+            expandedText = getNameForMissedCallNotification(callInfo);
 
-            CallerInfo ci = call.getCallerInfo();
+            CallerInfo ci = callInfo.getCallerInfo();
             if (ci != null && ci.userType == CallerInfo.USER_TYPE_WORK) {
                 titleResId = R.string.notification_missedWorkCallTitle;
             } else {
@@ -309,7 +303,7 @@
         Notification.Builder publicBuilder = mNotificationBuilderFactory.getBuilder(contextForUser);
         publicBuilder.setSmallIcon(android.R.drawable.stat_notify_missed_call)
                 .setColor(mContext.getResources().getColor(R.color.theme_color))
-                .setWhen(call.getCreationTimeMillis())
+                .setWhen(callInfo.getCreationTimeMillis())
                 // Show "Phone" for notification title.
                 .setContentTitle(mContext.getText(R.string.userCallActivityLabel))
                 // Notification details shows that there are missed call(s), but does not reveal
@@ -323,7 +317,7 @@
         Notification.Builder builder = mNotificationBuilderFactory.getBuilder(contextForUser);
         builder.setSmallIcon(android.R.drawable.stat_notify_missed_call)
                 .setColor(mContext.getResources().getColor(R.color.theme_color))
-                .setWhen(call.getCreationTimeMillis())
+                .setWhen(callInfo.getCreationTimeMillis())
                 .setContentTitle(mContext.getText(titleResId))
                 .setContentText(expandedText)
                 .setContentIntent(createCallLogPendingIntent(userHandle))
@@ -334,8 +328,8 @@
                 // sensitive notification information.
                 .setPublicVersion(publicBuilder.build());
 
-        Uri handleUri = call.getHandle();
-        String handle = handleUri == null ? null : handleUri.getSchemeSpecificPart();
+        Uri handleUri = callInfo.getHandle();
+        String handle = callInfo.getHandleSchemeSpecificPart();
 
         // Add additional actions when there is only 1 missed call, like call-back and SMS.
         if (missCallCounts == 1) {
@@ -347,18 +341,20 @@
                         mContext.getString(R.string.notification_missedCall_call_back),
                         createCallBackPendingIntent(handleUri, userHandle));
 
-                if (canRespondViaSms(call)) {
+                if (canRespondViaSms(callInfo)) {
                     builder.addAction(R.drawable.ic_message_24dp,
                             mContext.getString(R.string.notification_missedCall_message),
                             createSendSmsFromNotificationPendingIntent(handleUri, userHandle));
                 }
             }
 
-            Bitmap photoIcon = call.getPhotoIcon();
+            Bitmap photoIcon = callInfo.getCallerInfo() == null ?
+                    null : callInfo.getCallerInfo().cachedPhotoIcon;
             if (photoIcon != null) {
                 builder.setLargeIcon(photoIcon);
             } else {
-                Drawable photo = call.getPhoto();
+                Drawable photo = callInfo.getCallerInfo() == null ?
+                        null : callInfo.getCallerInfo().cachedPhoto;
                 if (photo != null && photo instanceof BitmapDrawable) {
                     builder.setLargeIcon(((BitmapDrawable) photo).getBitmap());
                 }
@@ -371,7 +367,7 @@
         Notification notification = builder.build();
         configureLedOnNotification(notification);
 
-        Log.i(this, "Adding missed call notification for %s.", call);
+        Log.i(this, "Adding missed call notification for %s.", Log.pii(callInfo.getHandle()));
         long token = Binder.clearCallingIdentity();
         try {
             mNotificationManager.notifyAsUser(
@@ -404,9 +400,9 @@
     /**
      * Returns the name to use in the missed call notification.
      */
-    private String getNameForCall(Call call) {
-        String handle = call.getHandle() == null ? null : call.getHandle().getSchemeSpecificPart();
-        String name = call.getName();
+    private String getNameForMissedCallNotification(@NonNull CallInfo callInfo) {
+        String handle = callInfo.getHandleSchemeSpecificPart();
+        String name = callInfo.getName();
 
         if (!TextUtils.isEmpty(handle)) {
             String formattedNumber = PhoneNumberUtils.formatNumber(handle,
@@ -523,23 +519,34 @@
         notification.defaults |= Notification.DEFAULT_LIGHTS;
     }
 
-    private boolean canRespondViaSms(Call call) {
+    private boolean canRespondViaSms(@NonNull CallInfo callInfo) {
         // Only allow respond-via-sms for "tel:" calls.
-        return call.getHandle() != null &&
-                PhoneAccount.SCHEME_TEL.equals(call.getHandle().getScheme());
+        return callInfo.getHandle() != null &&
+                PhoneAccount.SCHEME_TEL.equals(callInfo.getHandle().getScheme());
     }
 
+    @Override
+    public void reloadAfterBootComplete(final CallerInfoLookupHelper callerInfoLookupHelper,
+            CallInfoFactory callInfoFactory) {
+        if (userToLoadAfterBootComplete != null) {
+            reloadFromDatabase(callerInfoLookupHelper,
+                    callInfoFactory, userToLoadAfterBootComplete);
+            userToLoadAfterBootComplete = null;
+        }
+    }
     /**
      * Adds the missed call notification on startup if there are unread missed calls.
      */
     @Override
-    public void reloadFromDatabase(
-            final TelecomSystem.SyncRoot lock,
-            final CallsManager callsManager,
-            final ContactsAsyncHelper contactsAsyncHelper,
-            final CallerInfoAsyncQueryFactory callerInfoAsyncQueryFactory,
-            final UserHandle userHandle) {
+    public void reloadFromDatabase(final CallerInfoLookupHelper callerInfoLookupHelper,
+            CallInfoFactory callInfoFactory, final UserHandle userHandle) {
         Log.d(this, "reloadFromDatabase()...");
+        if (TelecomSystem.getInstance() == null || !TelecomSystem.getInstance().isBootComplete()) {
+            Log.i(this, "Boot not yet complete -- call log db may not be available. Deferring " +
+                    "loading until boot complete.");
+            userToLoadAfterBootComplete = userHandle;
+            return;
+        }
 
         // instantiate query handler
         AsyncQueryHandler queryHandler = new AsyncQueryHandler(mContext.getContentResolver()) {
@@ -566,35 +573,40 @@
                                                 handleString, null);
                             }
 
-                            synchronized (lock) {
+                            callerInfoLookupHelper.startLookup(handle,
+                                    new CallerInfoLookupHelper.OnQueryCompleteListener() {
+                                        @Override
+                                        public void onCallerInfoQueryComplete(Uri queryHandle,
+                                                CallerInfo info) {
+                                            if (!Objects.equals(queryHandle, handle)) {
+                                                Log.w(MissedCallNotifierImpl.this,
+                                                        "CallerInfo query returned with " +
+                                                                "different handle.");
+                                                return;
+                                            }
+                                            if (info.contactDisplayPhotoUri == null) {
+                                                // If there is no photo, just show the notification.
+                                                CallInfo callInfo = callInfoFactory.makeCallInfo(
+                                                        info, null, handle, date);
+                                                showMissedCallNotification(callInfo, userHandle);
+                                            }
+                                        }
 
-                                // Convert the data to a call object
-                                Call call = new Call(Call.CALL_ID_UNKNOWN, mContext, callsManager,
-                                        lock, null, contactsAsyncHelper,
-                                        callerInfoAsyncQueryFactory, mPhoneNumberUtilsAdapter, null,
-                                        null, null, null, Call.CALL_DIRECTION_INCOMING, false,
-                                        false);
-                                call.setDisconnectCause(
-                                        new DisconnectCause(DisconnectCause.MISSED));
-                                call.setState(CallState.DISCONNECTED, "throw away call");
-                                call.setCreationTimeMillis(date);
-
-                                // Listen for the update to the caller information before posting
-                                // the notification so that we have the contact info and photo.
-                                call.addListener(new Call.ListenerBase() {
-                                    @Override
-                                    public void onCallerInfoChanged(Call call) {
-                                        call.removeListener(
-                                                this);  // No longer need to listen to call
-                                        // changes after the contact info
-                                        // is retrieved.
-                                        showMissedCallNotification(call, userHandle);
+                                        @Override
+                                        public void onContactPhotoQueryComplete(Uri queryHandle,
+                                                CallerInfo info) {
+                                            if (!Objects.equals(queryHandle, handle)) {
+                                                Log.w(MissedCallNotifierImpl.this,
+                                                        "CallerInfo query for photo returned " +
+                                                                "with different handle.");
+                                                return;
+                                            }
+                                            CallInfo callInfo = callInfoFactory.makeCallInfo(
+                                                    info, null, handle, date);
+                                            showMissedCallNotification(callInfo, userHandle);
+                                        }
                                     }
-                                });
-                                // Set the handle here because that is what triggers the contact
-                                // info query.
-                                call.setHandle(handle, presentation);
-                            }
+                            );
                         }
                     } finally {
                         cursor.close();
@@ -604,16 +616,11 @@
         };
 
         // setup query spec, look for all Missed calls that are new.
-        StringBuilder where = new StringBuilder("type=");
-        where.append(Calls.MISSED_TYPE);
-        where.append(" AND new=1");
-        where.append(" AND is_read=0");
-
         Uri callsUri =
                 ContentProvider.maybeAddUserId(Calls.CONTENT_URI, userHandle.getIdentifier());
         // start the query
         queryHandler.startQuery(0, null, callsUri, CALL_LOG_PROJECTION,
-                where.toString(), null, Calls.DEFAULT_SORT_ORDER);
+                CALL_LOG_WHERE_CLAUSE, null, Calls.DEFAULT_SORT_ORDER);
     }
 
     @Override
diff --git a/tests/src/com/android/server/telecom/tests/AnalyticsTests.java b/tests/src/com/android/server/telecom/tests/AnalyticsTests.java
index 81d4aa5..b22ae82 100644
--- a/tests/src/com/android/server/telecom/tests/AnalyticsTests.java
+++ b/tests/src/com/android/server/telecom/tests/AnalyticsTests.java
@@ -20,6 +20,7 @@
 import android.telecom.Connection;
 import android.telecom.DisconnectCause;
 import android.telecom.InCallService;
+import android.telecom.Log;
 import android.telecom.ParcelableCallAnalytics;
 import android.telecom.TelecomAnalytics;
 import android.telecom.TelecomManager;
@@ -31,7 +32,7 @@
 
 import com.android.internal.util.IndentingPrintWriter;
 import com.android.server.telecom.Analytics;
-import com.android.server.telecom.Log;
+import com.android.server.telecom.LogUtils;
 import com.android.server.telecom.TelecomLogClass;
 
 import java.io.PrintWriter;
@@ -244,13 +245,13 @@
     @SmallTest
     public void testAnalyticsLogSessionTiming() throws Exception {
         long minTime = 50;
-        Log.startSession(Log.Sessions.CSW_ADD_CONFERENCE_CALL);
+        Log.startSession(LogUtils.Sessions.CSW_ADD_CONFERENCE_CALL);
         Thread.sleep(minTime);
         Log.endSession();
         TelecomManager tm = (TelecomManager) mSpyContext.getSystemService(Context.TELECOM_SERVICE);
         List<TelecomAnalytics.SessionTiming> sessions = tm.dumpAnalytics().getSessionTimings();
         sessions.stream()
-                .filter(s -> Log.Sessions.CSW_ADD_CONFERENCE_CALL.equals(
+                .filter(s -> LogUtils.Sessions.CSW_ADD_CONFERENCE_CALL.equals(
                         Analytics.sSessionIdToLogSession.get(s.getKey())))
                 .forEach(s -> assertTrue(s.getTime() >= minTime));
     }
diff --git a/tests/src/com/android/server/telecom/tests/BasicCallTests.java b/tests/src/com/android/server/telecom/tests/BasicCallTests.java
index 6688ca0..c44185c 100644
--- a/tests/src/com/android/server/telecom/tests/BasicCallTests.java
+++ b/tests/src/com/android/server/telecom/tests/BasicCallTests.java
@@ -41,6 +41,7 @@
 import android.telecom.Connection;
 import android.telecom.ConnectionRequest;
 import android.telecom.DisconnectCause;
+import android.telecom.Log;
 import android.telecom.ParcelableCall;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
@@ -51,7 +52,6 @@
 
 import com.android.internal.telecom.IInCallAdapter;
 import com.android.internal.telephony.CallerInfo;
-import com.android.server.telecom.Log;
 
 import com.google.common.base.Predicate;
 
@@ -122,7 +122,7 @@
         telecomManager.acceptRingingCall();
 
         verify(mConnectionServiceFixtureA.getTestDouble(), timeout(TEST_TIMEOUT))
-                .answer(ids.mConnectionId);
+                .answer(eq(ids.mConnectionId), any());
         mConnectionServiceFixtureA.sendSetActive(ids.mConnectionId);
 
         mInCallServiceFixtureX.mInCallAdapter.disconnectCall(ids.mCallId);
@@ -150,7 +150,7 @@
 
         // Answer video API should be called
         verify(mConnectionServiceFixtureA.getTestDouble(), timeout(TEST_TIMEOUT))
-                .answerVideo(eq(ids.mConnectionId), eq(VideoProfile.STATE_BIDIRECTIONAL));
+                .answerVideo(eq(ids.mConnectionId), eq(VideoProfile.STATE_BIDIRECTIONAL), any());
         mConnectionServiceFixtureA.sendSetActive(ids.mConnectionId);
 
         mInCallServiceFixtureX.mInCallAdapter.disconnectCall(ids.mCallId);
@@ -177,7 +177,7 @@
 
         // The generic answer method on the ConnectionService is used to answer audio-only calls.
         verify(mConnectionServiceFixtureA.getTestDouble(), timeout(TEST_TIMEOUT))
-                .answer(eq(ids.mConnectionId));
+                .answer(eq(ids.mConnectionId), any());
         mConnectionServiceFixtureA.sendSetActive(ids.mConnectionId);
 
         mInCallServiceFixtureX.mInCallAdapter.disconnectCall(ids.mCallId);
@@ -205,7 +205,7 @@
 
         // Answer video API should be called
         verify(mConnectionServiceFixtureA.getTestDouble(), timeout(TEST_TIMEOUT))
-                .answerVideo(eq(ids.mConnectionId), eq(VideoProfile.STATE_BIDIRECTIONAL));
+                .answerVideo(eq(ids.mConnectionId), eq(VideoProfile.STATE_BIDIRECTIONAL), any());
         mConnectionServiceFixtureA.sendSetActive(ids.mConnectionId);
         mInCallServiceFixtureX.mInCallAdapter.disconnectCall(ids.mCallId);
     }
@@ -276,7 +276,7 @@
         waitForHandlerAction(new Handler(Looper.getMainLooper()), TEST_TIMEOUT);
         verify(mConnectionServiceFixtureA.getTestDouble())
                 .createConnection(any(PhoneAccountHandle.class), anyString(),
-                        any(ConnectionRequest.class), eq(true), eq(false));
+                        any(ConnectionRequest.class), eq(true), eq(false), any());
 
         waitForHandlerAction(new Handler(Looper.getMainLooper()), TEST_TIMEOUT);
         assertEquals(1, mCallerInfoAsyncQueryFactoryFixture.mRequests.size());
@@ -318,7 +318,7 @@
         waitForHandlerAction(new Handler(Looper.getMainLooper()), TEST_TIMEOUT);
         verify(mConnectionServiceFixtureA.getTestDouble())
                 .createConnection(any(PhoneAccountHandle.class), anyString(),
-                        any(ConnectionRequest.class), eq(true), eq(false));
+                        any(ConnectionRequest.class), eq(true), eq(false), any());
 
         waitForHandlerAction(new Handler(Looper.getMainLooper()), TEST_TIMEOUT);
         // Never reply to the caller info lookup.
@@ -363,7 +363,7 @@
         waitForHandlerAction(new Handler(Looper.getMainLooper()), TEST_TIMEOUT);
         verify(mConnectionServiceFixtureA.getTestDouble())
                 .createConnection(any(PhoneAccountHandle.class), anyString(),
-                        any(ConnectionRequest.class), eq(true), eq(false));
+                        any(ConnectionRequest.class), eq(true), eq(false), any());
 
         waitForHandlerAction(new Handler(Looper.getMainLooper()), TEST_TIMEOUT);
         assertEquals(1, mCallerInfoAsyncQueryFactoryFixture.mRequests.size());
@@ -467,7 +467,7 @@
         IdPair incoming = startAndMakeActiveIncomingCall("650-555-2323",
                 mPhoneAccountA0.getAccountHandle(), mConnectionServiceFixtureA);
         verify(mConnectionServiceFixtureA.getTestDouble())
-                .hold(outgoing.mConnectionId);
+                .hold(eq(outgoing.mConnectionId), any());
         mConnectionServiceFixtureA.mConnectionById.get(outgoing.mConnectionId).state =
                 Connection.STATE_HOLDING;
         mConnectionServiceFixtureA.sendSetOnHold(outgoing.mConnectionId);
@@ -595,12 +595,13 @@
 
         // Attempt to pull the call and verify the API call makes it through
         mInCallServiceFixtureX.mInCallAdapter.pullExternalCall(ids.mCallId);
-        verify(mConnectionServiceFixtureA.getTestDouble(), timeout(TEST_TIMEOUT).never())
-                .pullExternalCall(ids.mCallId);
+        Thread.sleep(TEST_TIMEOUT);
+        verify(mConnectionServiceFixtureA.getTestDouble(), never())
+                .pullExternalCall(eq(ids.mCallId), any());
     }
 
     /**
-     * Tests the {@link Connection#sendConnectionEvent(String)} API.
+     * Tests the {@link Connection#sendConnectionEvent(String, Bundle)} API.
      *
      * @throws Exception
      */
@@ -615,7 +616,7 @@
     }
 
     /**
-     * Tests the {@link Connection#sendConnectionEvent(String)} API.
+     * Tests the {@link Connection#sendConnectionEvent(String, Bundle)} API.
      *
      * @throws Exception
      */
@@ -648,7 +649,7 @@
 
         mInCallServiceFixtureX.mInCallAdapter.sendCallEvent(ids.mCallId, TEST_EVENT, null);
         verify(mConnectionServiceFixtureA.getTestDouble(), timeout(TEST_TIMEOUT))
-                .sendCallEvent(ids.mConnectionId, TEST_EVENT, null);
+                .sendCallEvent(eq(ids.mConnectionId), eq(TEST_EVENT), isNull(Bundle.class), any());
     }
 
     /**
@@ -670,7 +671,7 @@
                 testBundle);
         verify(mConnectionServiceFixtureA.getTestDouble(), timeout(TEST_TIMEOUT))
                 .sendCallEvent(eq(ids.mConnectionId), eq(TEST_EVENT),
-                        bundleArgumentCaptor.capture());
+                        bundleArgumentCaptor.capture(), any());
         assert (bundleArgumentCaptor.getValue().containsKey(TEST_BUNDLE_KEY));
     }
 
@@ -767,7 +768,7 @@
         // Attempt to pull the call and verify the API call makes it through
         mInCallServiceFixtureX.mInCallAdapter.pullExternalCall(ids.mCallId);
         verify(mConnectionServiceFixtureA.getTestDouble(), timeout(TEST_TIMEOUT))
-                .pullExternalCall(ids.mConnectionId);
+                .pullExternalCall(eq(ids.mConnectionId), any());
     }
 
     /**
@@ -790,38 +791,9 @@
 
         // Attempt to pull the call and verify the API call makes it through
         mInCallServiceFixtureX.mInCallAdapter.pullExternalCall(ids.mCallId);
-        verify(mConnectionServiceFixtureA.getTestDouble(), timeout(TEST_TIMEOUT).never())
-                .pullExternalCall(ids.mConnectionId);
-    }
-
-    public void testMergeFailedAndNotifyInCallUi() throws Exception {
-        IdPair testCall1 = startAndMakeActiveOutgoingCall(
-                "650-555-1212",
-                mPhoneAccountA0.getAccountHandle(),
-                mConnectionServiceFixtureA);
-        IdPair testCall2 = startAndMakeActiveOutgoingCall(
-                "650-555-1213",
-                mPhoneAccountA0.getAccountHandle(),
-                mConnectionServiceFixtureA);
-
-        assertEquals(Call.STATE_ACTIVE,
-                mInCallServiceFixtureX.getCall(testCall1.mCallId).getState());
-        assertEquals(Call.STATE_ACTIVE,
-                mInCallServiceFixtureX.getCall(testCall2.mCallId).getState());
-        assertEquals(Call.STATE_ACTIVE,
-                mInCallServiceFixtureY.getCall(testCall1.mCallId).getState());
-        assertEquals(Call.STATE_ACTIVE,
-                mInCallServiceFixtureY.getCall(testCall2.mCallId).getState());
-
-        // Conference will not occur and instead will send setConferenceMergeFailed
-        ((ConnectionServiceFixture.FakeConnection)
-                mConnectionServiceFixtureA.mLatestConnection).setIsConferenceCreated(false);
-        mInCallServiceFixtureX.getInCallAdapter().conference(testCall2.mCallId, testCall1.mCallId);
-
-        verify(mInCallServiceFixtureX.getTestDouble(), timeout(TEST_TIMEOUT)).onConnectionEvent(
-                eq(testCall2.mCallId), eq(Connection.EVENT_CALL_MERGE_FAILED), any(Bundle.class));
-        verify(mInCallServiceFixtureY.getTestDouble(), timeout(TEST_TIMEOUT)).onConnectionEvent(
-                eq(testCall2.mCallId), eq(Connection.EVENT_CALL_MERGE_FAILED), any(Bundle.class));
+        Thread.sleep(TEST_TIMEOUT);
+        verify(mConnectionServiceFixtureA.getTestDouble(), never())
+                .pullExternalCall(eq(ids.mConnectionId), any());
     }
 
     @LargeTest
diff --git a/tests/src/com/android/server/telecom/tests/CallLogManagerTest.java b/tests/src/com/android/server/telecom/tests/CallLogManagerTest.java
index e9db543..590304c 100644
--- a/tests/src/com/android/server/telecom/tests/CallLogManagerTest.java
+++ b/tests/src/com/android/server/telecom/tests/CallLogManagerTest.java
@@ -296,7 +296,7 @@
                 Integer.valueOf(CallLog.Calls.MISSED_TYPE));
         // Timeout needed because showMissedCallNotification is called from onPostExecute.
         verify(mMissedCallNotifier, timeout(TEST_TIMEOUT_MILLIS))
-                .showMissedCallNotification(fakeMissedCall);
+                .showMissedCallNotification(any(MissedCallNotifier.CallInfo.class));
     }
 
     @MediumTest
diff --git a/tests/src/com/android/server/telecom/tests/CallerInfoAsyncQueryFactoryFixture.java b/tests/src/com/android/server/telecom/tests/CallerInfoAsyncQueryFactoryFixture.java
index 290fa7a..5f9555c 100644
--- a/tests/src/com/android/server/telecom/tests/CallerInfoAsyncQueryFactoryFixture.java
+++ b/tests/src/com/android/server/telecom/tests/CallerInfoAsyncQueryFactoryFixture.java
@@ -19,9 +19,9 @@
 import com.android.internal.telephony.CallerInfo;
 import com.android.internal.telephony.CallerInfoAsyncQuery;
 import com.android.server.telecom.CallerInfoAsyncQueryFactory;
-import com.android.server.telecom.Log;
 
 import android.content.Context;
+import android.telecom.Log;
 
 import org.mockito.Mockito;
 
diff --git a/tests/src/com/android/server/telecom/tests/CallerInfoLookupHelperTest.java b/tests/src/com/android/server/telecom/tests/CallerInfoLookupHelperTest.java
index f261d3e..2ae717d 100644
--- a/tests/src/com/android/server/telecom/tests/CallerInfoLookupHelperTest.java
+++ b/tests/src/com/android/server/telecom/tests/CallerInfoLookupHelperTest.java
@@ -22,6 +22,7 @@
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.test.suitebuilder.annotation.SmallTest;
+import android.telecom.Logging.Session;
 
 import com.android.internal.telephony.CallerInfo;
 import com.android.internal.telephony.CallerInfoAsyncQuery;
@@ -29,7 +30,6 @@
 import com.android.server.telecom.CallerInfoAsyncQueryFactory;
 import com.android.server.telecom.CallerInfoLookupHelper;
 import com.android.server.telecom.ContactsAsyncHelper;
-import com.android.server.telecom.Session;
 import com.android.server.telecom.TelecomSystem;
 
 import org.mockito.ArgumentCaptor;
diff --git a/tests/src/com/android/server/telecom/tests/ComponentContextFixture.java b/tests/src/com/android/server/telecom/tests/ComponentContextFixture.java
index 5ed941e..65352f9 100644
--- a/tests/src/com/android/server/telecom/tests/ComponentContextFixture.java
+++ b/tests/src/com/android/server/telecom/tests/ComponentContextFixture.java
@@ -21,7 +21,6 @@
 
 import com.android.internal.telecom.IConnectionService;
 import com.android.internal.telecom.IInCallService;
-import com.android.server.telecom.Log;
 
 import org.mockito.MockitoAnnotations;
 import org.mockito.invocation.InvocationOnMock;
@@ -53,6 +52,7 @@
 import android.os.UserManager;
 import android.telecom.CallAudioState;
 import android.telecom.ConnectionService;
+import android.telecom.Log;
 import android.telecom.InCallService;
 import android.telecom.PhoneAccount;
 import android.telecom.TelecomManager;
diff --git a/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java b/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java
index 255f3ea..8d40966 100644
--- a/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java
+++ b/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java
@@ -20,7 +20,6 @@
 import com.android.internal.telecom.IConnectionServiceAdapter;
 import com.android.internal.telecom.IVideoProvider;
 import com.android.internal.telecom.RemoteServiceCallback;
-import com.android.server.telecom.Log;
 
 import junit.framework.TestCase;
 
@@ -38,6 +37,8 @@
 import android.telecom.ConnectionRequest;
 import android.telecom.ConnectionService;
 import android.telecom.DisconnectCause;
+import android.telecom.Log;
+import android.telecom.Logging.Session;
 import android.telecom.ParcelableConference;
 import android.telecom.ParcelableConnection;
 import android.telecom.PhoneAccountHandle;
@@ -192,28 +193,29 @@
         List<String> rejectedCallIds = Lists.newArrayList();
 
         @Override
-        public void addConnectionServiceAdapter(IConnectionServiceAdapter adapter)
-                throws RemoteException {
+        public void addConnectionServiceAdapter(IConnectionServiceAdapter adapter,
+                Session.Info info) throws RemoteException {
             if (!mConnectionServiceAdapters.add(adapter)) {
                 throw new RuntimeException("Adapter already added: " + adapter);
             }
-            mConnectionServiceDelegateAdapter.addConnectionServiceAdapter(adapter);
+            mConnectionServiceDelegateAdapter.addConnectionServiceAdapter(adapter,
+                    null /*Session.Info*/);
         }
 
         @Override
-        public void removeConnectionServiceAdapter(IConnectionServiceAdapter adapter)
-                throws RemoteException {
+        public void removeConnectionServiceAdapter(IConnectionServiceAdapter adapter,
+                Session.Info info) throws RemoteException {
             if (!mConnectionServiceAdapters.remove(adapter)) {
                 throw new RuntimeException("Adapter never added: " + adapter);
             }
-            mConnectionServiceDelegateAdapter.removeConnectionServiceAdapter(adapter);
+            mConnectionServiceDelegateAdapter.removeConnectionServiceAdapter(adapter,
+                    null /*Session.Info*/);
         }
 
         @Override
         public void createConnection(PhoneAccountHandle connectionManagerPhoneAccount,
-                String id,
-                ConnectionRequest request, boolean isIncoming, boolean isUnknown)
-                throws RemoteException {
+                String id, ConnectionRequest request, boolean isIncoming, boolean isUnknown,
+                Session.Info info) throws RemoteException {
             Log.i(ConnectionServiceFixture.this, "xoxox createConnection --> " + id);
 
             if (mConnectionById.containsKey(id)) {
@@ -233,74 +235,84 @@
             c.isConferenceCreated = true;
             mConnectionById.put(id, c);
             mConnectionServiceDelegateAdapter.createConnection(connectionManagerPhoneAccount,
-                    id, request, isIncoming, isUnknown);
+                    id, request, isIncoming, isUnknown, null /*Session.Info*/);
         }
 
         @Override
-        public void abort(String callId) throws RemoteException { }
+        public void abort(String callId, Session.Info info) throws RemoteException { }
 
         @Override
-        public void answerVideo(String callId, int videoState) throws RemoteException { }
+        public void answerVideo(String callId, int videoState,
+                Session.Info info) throws RemoteException { }
 
         @Override
-        public void answer(String callId) throws RemoteException { }
+        public void answer(String callId, Session.Info info) throws RemoteException { }
 
         @Override
-        public void reject(String callId) throws RemoteException {
+        public void reject(String callId, Session.Info info) throws RemoteException {
             rejectedCallIds.add(callId);
         }
 
         @Override
-        public void rejectWithMessage(String callId, String message) throws RemoteException { }
+        public void rejectWithMessage(String callId, String message,
+                Session.Info info) throws RemoteException { }
 
         @Override
-        public void disconnect(String callId) throws RemoteException { }
+        public void disconnect(String callId, Session.Info info) throws RemoteException { }
 
         @Override
-        public void silence(String callId) throws RemoteException { }
+        public void silence(String callId, Session.Info info) throws RemoteException { }
 
         @Override
-        public void hold(String callId) throws RemoteException { }
+        public void hold(String callId, Session.Info info) throws RemoteException { }
 
         @Override
-        public void unhold(String callId) throws RemoteException { }
+        public void unhold(String callId, Session.Info info) throws RemoteException { }
 
         @Override
-        public void onCallAudioStateChanged(String activeCallId, CallAudioState audioState)
+        public void onCallAudioStateChanged(String activeCallId, CallAudioState audioState,
+                Session.Info info)
                 throws RemoteException { }
 
         @Override
-        public void playDtmfTone(String callId, char digit) throws RemoteException { }
+        public void playDtmfTone(String callId, char digit,
+                Session.Info info) throws RemoteException { }
 
         @Override
-        public void stopDtmfTone(String callId) throws RemoteException { }
+        public void stopDtmfTone(String callId, Session.Info info) throws RemoteException { }
 
         @Override
-        public void conference(String conferenceCallId, String callId) throws RemoteException {
-            mConnectionServiceDelegateAdapter.conference(conferenceCallId, callId);
+        public void conference(String conferenceCallId, String callId,
+                Session.Info info) throws RemoteException {
+            mConnectionServiceDelegateAdapter.conference(conferenceCallId, callId, info);
         }
 
         @Override
-        public void splitFromConference(String callId) throws RemoteException { }
+        public void splitFromConference(String callId, Session.Info info) throws RemoteException { }
 
         @Override
-        public void mergeConference(String conferenceCallId) throws RemoteException { }
+        public void mergeConference(String conferenceCallId,
+                Session.Info info) throws RemoteException { }
 
         @Override
-        public void swapConference(String conferenceCallId) throws RemoteException { }
+        public void swapConference(String conferenceCallId,
+                Session.Info info) throws RemoteException { }
 
         @Override
-        public void onPostDialContinue(String callId, boolean proceed) throws RemoteException { }
+        public void onPostDialContinue(String callId, boolean proceed,
+                Session.Info info) throws RemoteException { }
 
         @Override
-        public void pullExternalCall(String callId) throws RemoteException { }
+        public void pullExternalCall(String callId, Session.Info info) throws RemoteException { }
 
         @Override
-        public void sendCallEvent(String callId, String event, Bundle extras) throws RemoteException
+        public void sendCallEvent(String callId, String event, Bundle extras,
+                Session.Info info) throws RemoteException
         {}
 
-        public void onExtrasChanged(String callId, Bundle extras) throws RemoteException {
-            mConnectionServiceDelegateAdapter.onExtrasChanged(callId, extras);
+        public void onExtrasChanged(String callId, Bundle extras,
+                Session.Info info) throws RemoteException {
+            mConnectionServiceDelegateAdapter.onExtrasChanged(callId, extras, info);
         }
 
         @Override
@@ -382,28 +394,28 @@
             a.handleCreateConnectionComplete(
                     id,
                     mConnectionById.get(id).request,
-                    parcelable(mConnectionById.get(id)));
+                    parcelable(mConnectionById.get(id)), null /*Session.Info*/);
         }
     }
 
     public void sendSetActive(String id) throws Exception {
         mConnectionById.get(id).state = Connection.STATE_ACTIVE;
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setActive(id);
+            a.setActive(id, null /*Session.Info*/);
         }
     }
 
     public void sendSetRinging(String id) throws Exception {
         mConnectionById.get(id).state = Connection.STATE_RINGING;
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setRinging(id);
+            a.setRinging(id, null /*Session.Info*/);
         }
     }
 
     public void sendSetDialing(String id) throws Exception {
         mConnectionById.get(id).state = Connection.STATE_DIALING;
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setDialing(id);
+            a.setDialing(id, null /*Session.Info*/);
         }
     }
 
@@ -411,61 +423,62 @@
         mConnectionById.get(id).state = Connection.STATE_DISCONNECTED;
         mConnectionById.get(id).disconnectCause = new DisconnectCause(disconnectCause);
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setDisconnected(id, mConnectionById.get(id).disconnectCause);
+            a.setDisconnected(id, mConnectionById.get(id).disconnectCause, null /*Session.Info*/);
         }
     }
 
     public void sendSetOnHold(String id) throws Exception {
         mConnectionById.get(id).state = Connection.STATE_HOLDING;
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setOnHold(id);
+            a.setOnHold(id, null /*Session.Info*/);
         }
     }
 
     public void sendSetRingbackRequested(String id) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setRingbackRequested(id, mConnectionById.get(id).ringing);
+            a.setRingbackRequested(id, mConnectionById.get(id).ringing, null /*Session.Info*/);
         }
     }
 
     public void sendSetConnectionCapabilities(String id) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setConnectionCapabilities(id, mConnectionById.get(id).capabilities);
+            a.setConnectionCapabilities(id, mConnectionById.get(id).capabilities,
+                    null /*Session.Info*/);
         }
     }
 
     public void sendSetConnectionProperties(String id) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setConnectionProperties(id, mConnectionById.get(id).properties);
+            a.setConnectionProperties(id, mConnectionById.get(id).properties, null /*Session.Info*/);
         }
     }
     public void sendSetIsConferenced(String id) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setIsConferenced(id, mConnectionById.get(id).conferenceId);
+            a.setIsConferenced(id, mConnectionById.get(id).conferenceId, null /*Session.Info*/);
         }
     }
 
     public void sendAddConferenceCall(String id) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.addConferenceCall(id, parcelable(mConferenceById.get(id)));
+            a.addConferenceCall(id, parcelable(mConferenceById.get(id)), null /*Session.Info*/);
         }
     }
 
     public void sendRemoveCall(String id) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.removeCall(id);
+            a.removeCall(id, null /*Session.Info*/);
         }
     }
 
     public void sendOnPostDialWait(String id, String remaining) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.onPostDialWait(id, remaining);
+            a.onPostDialWait(id, remaining, null /*Session.Info*/);
         }
     }
 
     public void sendOnPostDialChar(String id, char nextChar) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.onPostDialChar(id, nextChar);
+            a.onPostDialChar(id, nextChar, null /*Session.Info*/);
         }
     }
 
@@ -492,31 +505,32 @@
                 public IBinder asBinder() {
                     return this;
                 }
-            });
+            }, null /*Session.Info*/);
         }
     }
 
     public void sendSetVideoProvider(String id) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setVideoProvider(id, mConnectionById.get(id).videoProvider);
+            a.setVideoProvider(id, mConnectionById.get(id).videoProvider, null /*Session.Info*/);
         }
     }
 
     public void sendSetVideoState(String id) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setVideoState(id, mConnectionById.get(id).videoState);
+            a.setVideoState(id, mConnectionById.get(id).videoState, null /*Session.Info*/);
         }
     }
 
     public void sendSetIsVoipAudioMode(String id) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setIsVoipAudioMode(id, mConnectionById.get(id).isVoipAudioMode);
+            a.setIsVoipAudioMode(id, mConnectionById.get(id).isVoipAudioMode,
+                    null /*Session.Info*/);
         }
     }
 
     public void sendSetStatusHints(String id) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setStatusHints(id, mConnectionById.get(id).statusHints);
+            a.setStatusHints(id, mConnectionById.get(id).statusHints, null /*Session.Info*/);
         }
     }
 
@@ -525,7 +539,7 @@
             a.setAddress(
                     id,
                     mConnectionById.get(id).request.getAddress(),
-                    mConnectionById.get(id).addressPresentation);
+                    mConnectionById.get(id).addressPresentation, null /*Session.Info*/);
         }
     }
 
@@ -534,31 +548,32 @@
             a.setCallerDisplayName(
                     id,
                     mConnectionById.get(id).callerDisplayName,
-                    mConnectionById.get(id).callerDisplayNamePresentation);
+                    mConnectionById.get(id).callerDisplayNamePresentation, null /*Session.Info*/);
         }
     }
 
     public void sendSetConferenceableConnections(String id) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setConferenceableConnections(id, mConnectionById.get(id).conferenceableConnectionIds);
+            a.setConferenceableConnections(id, mConnectionById.get(id).conferenceableConnectionIds,
+                    null /*Session.Info*/);
         }
     }
 
     public void sendAddExistingConnection(String id) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.addExistingConnection(id, parcelable(mConnectionById.get(id)));
+            a.addExistingConnection(id, parcelable(mConnectionById.get(id)), null /*Session.Info*/);
         }
     }
 
     public void sendConnectionEvent(String id, String event, Bundle extras) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.onConnectionEvent(id, event, extras);
+            a.onConnectionEvent(id, event, extras, null /*Session.Info*/);
         }
     }
 
     public void sendSetConferenceMergeFailed(String id) throws Exception {
         for (IConnectionServiceAdapter a : mConnectionServiceAdapters) {
-            a.setConferenceMergeFailed(id);
+            a.setConferenceMergeFailed(id, null /*Session.Info*/);
         }
     }
 
diff --git a/tests/src/com/android/server/telecom/tests/ContactsAsyncHelperTest.java b/tests/src/com/android/server/telecom/tests/ContactsAsyncHelperTest.java
index 363d613..960a170 100644
--- a/tests/src/com/android/server/telecom/tests/ContactsAsyncHelperTest.java
+++ b/tests/src/com/android/server/telecom/tests/ContactsAsyncHelperTest.java
@@ -35,6 +35,7 @@
 import static org.mockito.Matchers.anyObject;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Matchers.isNull;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.timeout;
 import static org.mockito.Mockito.verify;
@@ -87,14 +88,15 @@
     }
 
     @SmallTest
-    public void testEmptyUri() {
+    public void testEmptyUri() throws Exception {
         ContactsAsyncHelper cah = new ContactsAsyncHelper(mNullContentResolverAdapter);
         try {
             cah.startObtainPhotoAsync(TOKEN, mContext, null, mListener, COOKIE);
         } catch (IllegalStateException e) {
             // expected to fail
         }
-        verify(mListener, timeout(TEST_TIMEOUT).never()).onImageLoadComplete(anyInt(),
+        Thread.sleep(TEST_TIMEOUT);
+        verify(mListener, never()).onImageLoadComplete(anyInt(),
                 any(Drawable.class), any(Bitmap.class), anyObject());
     }
 
diff --git a/tests/src/com/android/server/telecom/tests/EventManagerTest.java b/tests/src/com/android/server/telecom/tests/EventManagerTest.java
new file mode 100644
index 0000000..bb07306
--- /dev/null
+++ b/tests/src/com/android/server/telecom/tests/EventManagerTest.java
@@ -0,0 +1,202 @@
+/*
+ * Copyright (C) 2016 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 android.telecom.Logging.EventManager;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import java.util.List;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.stream.Collectors;
+
+/**
+ * Unit tests for android.telecom.Logging.EventManager.
+ */
+
+public class EventManagerTest extends TelecomTestCase {
+
+    private EventManager mTestEventManager;
+    // A reference to the recently added event record, populated from the eventRecordAdded callback
+    private EventManager.EventRecord mAddedEventRecord;
+
+    private static final String TEST_EVENT = "testEvent";
+    private static final String TEST_START_EVENT = "testStartEvent";
+    private static final String TEST_END_EVENT = "testEndEvent";
+    private static final String TEST_TIMED_EVENT = "TimedEvent";
+    private static final int TEST_DELAY_TIME = 100; // ms
+
+    private class TestRecord implements EventManager.Loggable {
+        private String mId;
+        private String mDescription;
+
+        TestRecord(String id, String description) {
+            mId = id;
+            mDescription = description;
+        }
+
+        @Override
+        public String getId() {
+            return mId;
+        }
+
+        @Override
+        public String getDescription() {
+            return mDescription;
+        }
+    }
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        mTestEventManager = new EventManager(() -> "");
+        mTestEventManager.registerEventListener((e) -> mAddedEventRecord = e);
+    }
+
+    @Override
+    public void tearDown() throws Exception {
+        mTestEventManager = null;
+        mAddedEventRecord = null;
+        super.tearDown();
+    }
+
+    /**
+     * Tests EventManager#addEventRecord to make sure that new events are added properly and that
+     * the eventRecordAdded callback is working.
+     */
+    @SmallTest
+    public void testAddEventRecord() throws Exception {
+        TestRecord testRecord = new TestRecord("testId", "testDescription");
+        mTestEventManager.event(testRecord, TEST_EVENT, null);
+
+        assertNotNull(mAddedEventRecord);
+        assertEquals(testRecord, mAddedEventRecord.getRecordEntry());
+        assertTrue(mTestEventManager.getEventRecords().contains(mAddedEventRecord));
+        assertTrue(mTestEventManager.getCallEventRecordMap().containsKey(
+                mAddedEventRecord.getRecordEntry()));
+    }
+
+    /**
+     * Tests EventManager#addEventRecord for the case when we overflow the cached record entries and
+     * the oldest entry is dropped.
+     */
+    @SmallTest
+    public void testAddEventRecordOverflowMaxEvents() throws Exception {
+        TestRecord oldestRecordEntry = new TestRecord("id0", "desc0");
+        // Add the oldest record separately so that we can verify it is dropped later
+        mTestEventManager.event(oldestRecordEntry, TEST_EVENT, null);
+        // Record the EventRecord created by the oldest event
+        assertNotNull(mAddedEventRecord);
+        EventManager.EventRecord oldestRecord = mAddedEventRecord;
+        for (int i = 1; i < EventManager.DEFAULT_EVENTS_TO_CACHE; i++) {
+            mTestEventManager.event(new TestRecord("id" + i, "desc" + i), TEST_EVENT, null);
+        }
+
+        // Add a new event that overflows the cache
+        TestRecord overflowRecord = new TestRecord("newestId", "newestDesc");
+        // Add the oldest record separately so that we can verify it is dropped later
+        mTestEventManager.event(overflowRecord, TEST_EVENT, null);
+
+        assertFalse(mTestEventManager.getEventRecords().contains(oldestRecord));
+        assertTrue(mTestEventManager.getEventRecords().contains(mAddedEventRecord));
+    }
+
+    /**
+     * Tests the restructuring of the record entry queue when it is changed (usually in debugging).
+     * If the queue is resized to be smaller, the oldest records are dropped.
+     */
+    @SmallTest
+    public void testChangeQueueSize() throws Exception {
+        TestRecord oldestRecordEntry = new TestRecord("id0", "desc0");
+        // Add the oldest record separately so that we can verify it is dropped later
+        mTestEventManager.event(oldestRecordEntry, TEST_EVENT, null);
+        // Record the EventRecord created by the oldest event
+        assertNotNull(mAddedEventRecord);
+        EventManager.EventRecord oldestRecord = mAddedEventRecord;
+        for (int i = 1; i < EventManager.DEFAULT_EVENTS_TO_CACHE; i++) {
+            mTestEventManager.event(new TestRecord("id" + i, "desc" + i), TEST_EVENT, null);
+        }
+
+        mTestEventManager.changeEventCacheSize(EventManager.DEFAULT_EVENTS_TO_CACHE - 1);
+
+        assertFalse(mTestEventManager.getEventRecords().contains(oldestRecord));
+        // Check to make sure the other event records are there (id1-9)
+        LinkedBlockingQueue<EventManager.EventRecord> eventRecords =
+                mTestEventManager.getEventRecords();
+        for (int i = 1; i < EventManager.DEFAULT_EVENTS_TO_CACHE; i++) {
+            final int index = i;
+            List<EventManager.EventRecord> filteredEvent = eventRecords.stream()
+                    .filter(e -> e.getRecordEntry().getId().equals("id" + index))
+                    .collect(Collectors.toList());
+            assertEquals(1, filteredEvent.size());
+            assertEquals("desc" + index, filteredEvent.get(0).getRecordEntry().getDescription());
+        }
+    }
+
+    /**
+     * Tests adding TimedEventPairs and generating the paired events as well as verifies that the
+     * timing response is correct.
+     */
+    @SmallTest
+    public void testExtractEventTimings() throws Exception {
+        TestRecord testRecord = new TestRecord("testId", "testDesc");
+        // Add unassociated event
+        mTestEventManager.event(testRecord, TEST_EVENT, null);
+        mTestEventManager.addRequestResponsePair(new EventManager.TimedEventPair(TEST_START_EVENT,
+                TEST_END_EVENT, TEST_TIMED_EVENT));
+
+        // Add Start/End Event
+        mTestEventManager.event(testRecord, TEST_START_EVENT, null);
+        try {
+            Thread.sleep(TEST_DELAY_TIME);
+        } catch (InterruptedException ignored) { }
+        mTestEventManager.event(testRecord, TEST_END_EVENT, null);
+
+        // Verify that the events were captured and that the timing is correct.
+        List<EventManager.EventRecord.EventTiming> timings =
+                mAddedEventRecord.extractEventTimings();
+        assertEquals(1, timings.size());
+        assertEquals(TEST_TIMED_EVENT, timings.get(0).name);
+        // Verify that the timing is correct with a +-10 ms buffer
+        assertTrue(timings.get(0).time >= TEST_DELAY_TIME - 10);
+        assertTrue(timings.get(0).time <= TEST_DELAY_TIME + 10);
+    }
+
+    /**
+     * Verify that adding events to different records does not create a valid TimedEventPair
+     */
+    @SmallTest
+    public void testExtractEventTimingsDifferentRecords() throws Exception {
+        TestRecord testRecord = new TestRecord("testId", "testDesc");
+        TestRecord testRecord2 = new TestRecord("testId2", "testDesc2");
+        mTestEventManager.addRequestResponsePair(new EventManager.TimedEventPair(TEST_START_EVENT,
+                TEST_END_EVENT, TEST_TIMED_EVENT));
+
+        // Add Start event for two separate records
+        mTestEventManager.event(testRecord, TEST_START_EVENT, null);
+        EventManager.EventRecord eventRecord1 = mAddedEventRecord;
+        mTestEventManager.event(testRecord2, TEST_END_EVENT, null);
+        EventManager.EventRecord eventRecord2 = mAddedEventRecord;
+
+        // Verify that the events were captured and that the timing is correct.
+        List<EventManager.EventRecord.EventTiming> timings1 =
+                eventRecord1.extractEventTimings();
+        List<EventManager.EventRecord.EventTiming> timings2 =
+                eventRecord2.extractEventTimings();
+        assertEquals(0, timings1.size());
+        assertEquals(0, timings2.size());
+    }
+}
\ No newline at end of file
diff --git a/tests/src/com/android/server/telecom/tests/InCallControllerTests.java b/tests/src/com/android/server/telecom/tests/InCallControllerTests.java
index f5c0439..de4d453 100644
--- a/tests/src/com/android/server/telecom/tests/InCallControllerTests.java
+++ b/tests/src/com/android/server/telecom/tests/InCallControllerTests.java
@@ -65,7 +65,6 @@
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Matchers.isNull;
-import static org.mockito.Matchers.isNull;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
diff --git a/tests/src/com/android/server/telecom/tests/LogTest.java b/tests/src/com/android/server/telecom/tests/LogTest.java
deleted file mode 100644
index 20c4d63..0000000
--- a/tests/src/com/android/server/telecom/tests/LogTest.java
+++ /dev/null
@@ -1,579 +0,0 @@
-/*
- * Copyright (C) 2015 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 android.os.Handler;
-import android.os.HandlerThread;
-import android.os.Message;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import com.android.internal.os.SomeArgs;
-import com.android.server.telecom.Analytics;
-import com.android.server.telecom.Call;
-import com.android.server.telecom.Session;
-import com.android.server.telecom.SystemLoggingContainer;
-import com.android.server.telecom.Log;
-
-import org.junit.Assert;
-import org.mockito.ArgumentCaptor;
-import org.mockito.MockitoAnnotations;
-
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-/**
- * Unit tests for Telecom's Logging system.
- */
-public class LogTest extends TelecomTestCase{
-
-    /**
-     * This helper class captures the logs that are sent to Log and stores them in an array to be
-     * verified by LogTest.
-     */
-    private class TestLoggingContainer extends SystemLoggingContainer {
-        public ArrayList<String> receivedStrings;
-
-        public TestLoggingContainer() {
-            receivedStrings = new ArrayList<>(100);
-        }
-
-        @Override
-        public synchronized void v(String msgTag, String msg) {
-            if (msgTag.equals(LogTest.TESTING_TAG)) {
-                synchronized (this) {
-                    receivedStrings.add(processMessage(msg));
-                }
-            }
-        }
-
-        @Override
-        public synchronized void i(String msgTag, String msg) {
-            if (msgTag.equals(LogTest.TESTING_TAG)) {
-                synchronized (this) {
-                    receivedStrings.add(processMessage(msg));
-                }
-            }
-        }
-
-        public boolean didReceiveMessage(int timeoutMs, String msg) {
-            String matchedString = null;
-            // Wait for timeout to expire before checking received messages
-            if (timeoutMs > 0) {
-                try {
-                    Thread.sleep(timeoutMs);
-                } catch (InterruptedException e) {
-                    Log.w(LogTest.TESTING_TAG, "TestLoggingContainer: Thread Interrupted!");
-                }
-            }
-            synchronized (this) {
-                for (String receivedString : receivedStrings) {
-                    if (receivedString.contains(msg)) {
-                        matchedString = receivedString;
-                        break;
-                    }
-                }
-                if (matchedString != null) {
-                    receivedStrings.remove(matchedString);
-                    return true;
-                }
-            }
-            android.util.Log.i(TESTING_TAG, "Did not receive message: " + msg);
-            return false;
-        }
-
-        public boolean isMessagesEmpty() {
-            boolean isEmpty = receivedStrings.isEmpty();
-            if (!isEmpty) {
-                printMessagesThatAreLeft();
-            }
-            return isEmpty;
-        }
-
-        public synchronized void printMessagesThatAreLeft() {
-            android.util.Log.i(TESTING_TAG, "Remaining Messages in Log Queue:");
-            for (String receivedString : receivedStrings) {
-                android.util.Log.i(TESTING_TAG, "\t- " + receivedString);
-            }
-        }
-
-        // Remove Unnecessary parts of message string before processing
-        private String processMessage(String msg) {
-            if(msg.contains(Session.CREATE_SUBSESSION)) {
-                return clipMsg(Session.CREATE_SUBSESSION, msg);
-            }
-            if(msg.contains(Session.CONTINUE_SUBSESSION)) {
-                return clipMsg(Session.CONTINUE_SUBSESSION, msg);
-            }
-            if (msg.contains(Session.END_SUBSESSION)) {
-                return clipMsg(Session.END_SUBSESSION, msg);
-            }
-            if (msg.contains(Session.END_SESSION)) {
-                return clipMsg(Session.END_SESSION, msg);
-            }
-            return msg;
-        }
-
-        private String clipMsg(String id, String msg) {
-                int clipStartIndex = msg.indexOf(id) + id.length();
-                int clipEndIndex = msg.lastIndexOf(":");
-                return msg.substring(0, clipStartIndex) + msg.substring(clipEndIndex, msg.length());
-        }
-    }
-
-    public static final int TEST_THREAD_COUNT = 150;
-    public static final int TEST_SLEEP_TIME_MS = 50;
-    // Should be larger than TEST_SLEEP_TIME_MS!
-    public static final int TEST_VERIFY_TIMEOUT_MS = 100;
-    public static final String TEST_ENTER_METHOD1 = "TEM1";
-    public static final String TEST_ENTER_METHOD2 = "TEM2";
-    public static final String TEST_ENTER_METHOD3 = "TEM3";
-    public static final String TEST_ENTER_METHOD4 = "TEM4";
-    public static final String TEST_CLASS_NAME = "LogTest";
-
-    private static final int EVENT_START_TEST_SLEEPY_METHOD = 0;
-    private static final int EVENT_START_TEST_SLEEPY_MULTIPLE_METHOD = 1;
-    private static final int EVENT_LAST_MESSAGE = 2;
-
-    private static final long RANDOM_NUMBER_SEED = 6191991;
-
-    Random rng = new Random(RANDOM_NUMBER_SEED);
-
-    private Handler mSleepyHandler = new Handler(
-            new HandlerThread("sleepyThread"){{start();}}.getLooper()) {
-        @Override
-        public void handleMessage(Message msg) {
-            SomeArgs args = (SomeArgs) msg.obj;
-            Session subsession = (Session) args.arg1;
-            Log.continueSession(subsession, "lTSH.hM");
-            switch (msg.what) {
-                case EVENT_START_TEST_SLEEPY_METHOD:
-                    sleepyMethod(TEST_SLEEP_TIME_MS);
-                    break;
-            }
-            Log.endSession();
-        }
-    };
-
-    private boolean isHandlerCompleteWithEvents;
-    private Handler mSleepyMultipleHandler = new Handler(
-            new HandlerThread("sleepyMultipleThread"){{start();}}.getLooper()){
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case EVENT_START_TEST_SLEEPY_MULTIPLE_METHOD:
-                    SomeArgs args = (SomeArgs) msg.obj;
-                    Session subsession = (Session) args.arg1;
-                    Log.continueSession(subsession, "lTSCH.hM");
-                    sleepyMultipleMethod();
-                    Log.endSession();
-                    break;
-                case EVENT_LAST_MESSAGE:
-                    isHandlerCompleteWithEvents = true;
-                    break;
-            }
-        }
-    };
-
-    private AtomicInteger mCompleteCount;
-    class LogTestRunnable implements java.lang.Runnable {
-        private String mshortMethodName;
-        public LogTestRunnable(String shortMethodName) {
-            mshortMethodName = shortMethodName;
-        }
-
-        public void run() {
-            Log.startSession(mshortMethodName);
-            sleepyCallerMethod(TEST_SLEEP_TIME_MS);
-            Log.endSession();
-            mCompleteCount.incrementAndGet();
-        }
-    }
-
-    TestLoggingContainer mTestSystemLogger;
-
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-        MockitoAnnotations.initMocks(this);
-        mTestSystemLogger = new TestLoggingContainer();
-        Log.setLoggingContainer(mTestSystemLogger);
-        Log.setIsExtendedLoggingEnabled(true);
-        Log.restartSessionCounter();
-        Log.sCleanStaleSessions = null;
-        Log.sSessionMapper.clear();
-        Log.setContext(mComponentContextFixture.getTestDouble().getApplicationContext());
-        Log.sSessionCleanupTimeoutMs = new Log.ISessionCleanupTimeoutMs() {
-            @Override
-            // Set to the default value of Timeouts.getStaleSessionCleanupTimeoutMillis without
-            // needing to query.
-            public long get() {
-                return Log.DEFAULT_SESSION_TIMEOUT_MS;
-            }
-        };
-    }
-
-    @Override
-    public void tearDown() throws Exception {
-        mTestSystemLogger = null;
-        Log.setLoggingContainer(new SystemLoggingContainer());
-        super.tearDown();
-    }
-
-    @MediumTest
-    public void testSingleThreadSession() throws Exception {
-        String sessionName = "LT.sTS";
-        Log.startSession(sessionName);
-        sleepyMethod(TEST_SLEEP_TIME_MS);
-        Log.endSession();
-
-        verifyEventResult(Session.START_SESSION, sessionName, "", 0, TEST_VERIFY_TIMEOUT_MS);
-        verifyMethodCall("", sessionName, 0, "", TEST_ENTER_METHOD1, TEST_VERIFY_TIMEOUT_MS);
-        verifyEventResult(Session.END_SUBSESSION, sessionName, "", 0, TEST_VERIFY_TIMEOUT_MS);
-        verifyEndEventResult(sessionName, "", 0, TEST_VERIFY_TIMEOUT_MS);
-
-        assertEquals(Log.sSessionMapper.size(), 0);
-        assertEquals(true, mTestSystemLogger.isMessagesEmpty());
-    }
-
-    @MediumTest
-    public void testSingleHandlerThreadSession() throws Exception {
-        String sessionName = "LT.tSHTS";
-        Log.startSession(sessionName);
-        Session subsession = Log.createSubsession();
-        SomeArgs args = SomeArgs.obtain();
-        args.arg1 = subsession;
-        mSleepyHandler.obtainMessage(EVENT_START_TEST_SLEEPY_METHOD, args).sendToTarget();
-        Log.endSession();
-
-        verifyEventResult(Session.START_SESSION, sessionName, "", 0, TEST_VERIFY_TIMEOUT_MS);
-        verifyEventResult(Session.CREATE_SUBSESSION, sessionName, "", 0, TEST_VERIFY_TIMEOUT_MS);
-        verifyContinueEventResult(sessionName, "lTSH.hM", "_0", 0, TEST_VERIFY_TIMEOUT_MS);
-        verifyEventResult(Session.END_SUBSESSION, sessionName, "", 0, TEST_VERIFY_TIMEOUT_MS);
-        verifyMethodCall(sessionName, "lTSH.hM", 0, "_0", TEST_ENTER_METHOD1,
-                TEST_VERIFY_TIMEOUT_MS);
-        verifyEventResult(Session.END_SUBSESSION, sessionName + "->lTSH.hM", "_0", 0,
-                TEST_VERIFY_TIMEOUT_MS);
-        verifyEndEventResult(sessionName, "", 0, TEST_VERIFY_TIMEOUT_MS);
-
-        assertEquals(Log.sSessionMapper.size(), 0);
-        assertEquals(true, mTestSystemLogger.isMessagesEmpty());
-    }
-
-    @MediumTest
-    public void testSpawnMultipleThreadSessions() throws Exception {
-        final String sessionName = "LT.lTR";
-        mCompleteCount = new AtomicInteger(0);
-        for (int i = 0; i < TEST_THREAD_COUNT; i++) {
-            Thread.sleep(10);
-            new Thread(new LogTestRunnable(sessionName)).start();
-        }
-
-        // Poll until all of the threads have completed
-        while (mCompleteCount.get() < TEST_THREAD_COUNT) {
-            Thread.sleep(1000);
-        }
-
-        // Loop through verification separately to spawn threads fast so there is possible overlap
-        // (verifyEventResult(...) delays)
-        for (int i = 0; i < TEST_THREAD_COUNT; i++) {
-            verifyEventResult(Session.START_SESSION, sessionName, "", i, 0);
-            verifyMethodCall("", sessionName, i, "", TEST_ENTER_METHOD2, 0);
-            verifyMethodCall("", sessionName, i, "", TEST_ENTER_METHOD1, 0);
-            verifyEventResult(Session.END_SUBSESSION, sessionName, "", i, 0);
-            verifyEndEventResult(sessionName, "", i, 0);
-        }
-
-        assertEquals(Log.sSessionMapper.size(), 0);
-        assertEquals(true, mTestSystemLogger.isMessagesEmpty());
-    }
-
-    @MediumTest
-    public void testSpawnMultipleThreadMultipleHandlerSession() throws Exception {
-        String sessionName = "LT.tSMTMHS";
-        Log.startSession(sessionName);
-        Session subsession = Log.createSubsession();
-        SomeArgs args = SomeArgs.obtain();
-        args.arg1 = subsession;
-        mSleepyMultipleHandler.obtainMessage(EVENT_START_TEST_SLEEPY_MULTIPLE_METHOD,
-                args).sendToTarget();
-        Log.endSession();
-
-        verifyEventResult(Session.START_SESSION, sessionName, "", 0, TEST_VERIFY_TIMEOUT_MS);
-        verifyEventResult(Session.END_SUBSESSION, sessionName, "", 0, TEST_VERIFY_TIMEOUT_MS);
-        verifyEventResult(Session.CREATE_SUBSESSION, sessionName, "", 0, TEST_VERIFY_TIMEOUT_MS);
-        verifyContinueEventResult(sessionName, "lTSCH.hM", "_0", 0, TEST_VERIFY_TIMEOUT_MS);
-        verifyMethodCall(sessionName, "lTSCH.hM", 0, "_0", TEST_ENTER_METHOD3,
-                TEST_VERIFY_TIMEOUT_MS);
-        verifyEventResult(Session.END_SUBSESSION, sessionName + "->lTSCH.hM", "_0", 0,
-                TEST_VERIFY_TIMEOUT_MS);
-        verifyEventResult(Session.CREATE_SUBSESSION, sessionName + "->lTSCH.hM", "_0", 0,
-                TEST_VERIFY_TIMEOUT_MS);
-        verifyContinueEventResult(sessionName + "->" + "lTSCH.hM", "lTSH.hM", "_0_0", 0,
-                TEST_VERIFY_TIMEOUT_MS);
-        verifyMethodCall(sessionName + "->lTSCH.hM", "lTSH.hM", 0, "_0_0", TEST_ENTER_METHOD1,
-                TEST_VERIFY_TIMEOUT_MS);
-        verifyEventResult(Session.END_SUBSESSION, sessionName + "->lTSCH.hM->lTSH.hM", "_0_0", 0,
-                TEST_VERIFY_TIMEOUT_MS);
-        verifyEndEventResult(sessionName, "", 0, TEST_VERIFY_TIMEOUT_MS);
-
-        assertEquals(Log.sSessionMapper.size(), 0);
-        assertEquals(true, mTestSystemLogger.isMessagesEmpty());
-    }
-
-    @MediumTest
-    public void testSpawnMultipleThreadMultipleHandlerSessions() throws Exception {
-        String sessionName = "LT.tSMTMHSs";
-        isHandlerCompleteWithEvents = false;
-        for (int i = 0; i < TEST_THREAD_COUNT; i++) {
-            Log.startSession(sessionName);
-            Session subsession = Log.createSubsession();
-            SomeArgs args = SomeArgs.obtain();
-            args.arg1 = subsession;
-            mSleepyMultipleHandler.obtainMessage(EVENT_START_TEST_SLEEPY_MULTIPLE_METHOD,
-                    args).sendToTarget();
-            Log.endSession();
-        }
-        // Send a message that denotes the last message that is sent. We poll until this message
-        // is processed in order to verify the results without waiting an arbitrary amount of time
-        // (that can change per device).
-        mSleepyMultipleHandler.obtainMessage(EVENT_LAST_MESSAGE).sendToTarget();
-
-        while (!isHandlerCompleteWithEvents) {
-            Thread.sleep(1000);
-        }
-
-        for (int i = 0; i < TEST_THREAD_COUNT; i++) {
-            verifyEventResult(Session.START_SESSION, sessionName, "", i, 0);
-            verifyEventResult(Session.END_SUBSESSION, sessionName, "", i, 0);
-            verifyEventResult(Session.CREATE_SUBSESSION, sessionName, "", i, 0);
-            verifyContinueEventResult(sessionName, "lTSCH.hM", "_0", i, 0);
-            verifyMethodCall(sessionName, "lTSCH.hM", i, "_0", TEST_ENTER_METHOD3, 0);
-            verifyEventResult(Session.END_SUBSESSION, sessionName + "->lTSCH.hM", "_0", i, 0);
-            verifyEventResult(Session.CREATE_SUBSESSION, sessionName + "->lTSCH.hM", "_0", i, 0);
-            verifyContinueEventResult(sessionName + "->" + "lTSCH.hM", "lTSH.hM", "_0_0", i, 0);
-            verifyMethodCall(sessionName + "->lTSCH.hM", "lTSH.hM", i, "_0_0", TEST_ENTER_METHOD1,
-                    0);
-            verifyEventResult(Session.END_SUBSESSION, sessionName + "->lTSCH.hM->lTSH.hM", "_0_0",
-                    i, 0);
-            verifyEndEventResult(sessionName, "", i, 0);
-        }
-
-        assertEquals(Log.sSessionMapper.size(), 0);
-        assertEquals(true, mTestSystemLogger.isMessagesEmpty());
-    }
-
-    @MediumTest
-    public void testCancelSubsession() throws Exception {
-        String sessionName = "LT.tCS";
-        Log.startSession(sessionName);
-        Session subsession = Log.createSubsession();
-        Log.cancelSubsession(subsession);
-        Log.endSession();
-
-        verifyEventResult(Session.START_SESSION, sessionName, "", 0, 0);
-        verifyEventResult(Session.CREATE_SUBSESSION, sessionName, "", 0, 0);
-        verifyEventResult(Session.END_SUBSESSION, sessionName, "", 0, 0);
-        verifyEndEventResult(sessionName, "", 0, 0);
-
-        assertEquals(Log.sSessionMapper.size(), 0);
-        assertEquals(true, mTestSystemLogger.isMessagesEmpty());
-    }
-
-    @MediumTest
-    public void testInternalExternalCallToMethod() throws Exception {
-        String sessionName = "LT.tIECTM";
-        Log.startSession(sessionName);
-        internalExternalMethod();
-        Log.endSession();
-
-        verifyEventResult(Session.START_SESSION, sessionName, "", 0, 0);
-        verifyEventResult(Session.CREATE_SUBSESSION, sessionName, "", 0, 0);
-        verifyContinueEventResult(sessionName, "", "", 0, 0);
-        verifyEventResult(Session.END_SUBSESSION, sessionName, "", 0, 0);
-        verifyMethodCall("", sessionName, 0, "", TEST_ENTER_METHOD4, 0);
-        verifyEventResult(Session.END_SUBSESSION, sessionName, "", 0, 0);
-        verifyEndEventResult(sessionName, "", 0, 0);
-
-        assertEquals(Log.sSessionMapper.size(), 0);
-        assertEquals(true, mTestSystemLogger.isMessagesEmpty());
-    }
-
-    @MediumTest
-    public void testGarbageCollectionWithTimeout() throws Exception {
-        String sessionName = "LT.tGCWT";
-
-        // Don't end session (Oops!)
-        Log.startSession(sessionName);
-        internalDanglingMethod();
-        Log.sSessionCleanupHandler.postDelayed(new java.lang.Runnable() {
-            @Override
-            public void run() {
-                android.util.Log.i(TESTING_TAG, "Running Test SessionCleanupHandler method.");
-                Log.cleanupStaleSessions(1000);
-            }
-        }, 1000);
-
-        verifyEventResult(Session.START_SESSION, sessionName, "", 0, 0);
-        verifyEventResult(Session.CREATE_SUBSESSION, sessionName, "", 0, 0);
-        verifyContinueEventResult(sessionName, "", "", 0, 0);
-        verifyMethodCall("", sessionName, 0, "", TEST_ENTER_METHOD4, 0);
-
-        // Verify the session is still active in sSessionMapper
-        assertEquals(Log.sSessionMapper.size(), 1);
-        assertEquals(true, mTestSystemLogger.isMessagesEmpty());
-
-        // Keep a weak reference to the object to check if it eventually gets garbage collected.
-        int threadId = Log.getCallingThreadId();
-        WeakReference<Session> sessionRef = new WeakReference<>(
-                Log.sSessionMapper.get(threadId));
-
-        Thread.sleep(1100);
-        assertEquals(0, Log.sSessionMapper.size());
-        // "Suggest" that the GC collects the now isolated Session and subsession and wait for it
-        // to occur. "System.gc()" was previously used, but it does not always perform GC, so the
-        // internal method is now called.
-        Runtime.getRuntime().gc();
-        Thread.sleep(1000);
-        assertEquals(null, sessionRef.get());
-    }
-
-    @SmallTest
-    public void testEventRecordTiming() throws Exception {
-        Call call = mock(Call.class);
-        Analytics.CallInfo mockCallInfo = mock(Analytics.CallInfo.class);
-        when(call.getAnalytics()).thenReturn(mockCallInfo);
-        int minWaitTime = 40;
-        Log.event(call, Log.Events.REQUEST_ACCEPT);
-        Thread.sleep(minWaitTime);
-        Log.event(call, Log.Events.SET_ACTIVE);
-
-        ArgumentCaptor<Log.CallEventRecord> captor =
-                ArgumentCaptor.forClass(Log.CallEventRecord.class);
-        verify(mockCallInfo).setCallEvents(captor.capture());
-        List<Log.CallEventRecord.EventTiming> eventTimings =
-                captor.getValue().extractEventTimings();
-        eventTimings.stream()
-                .filter(timing -> timing.name.equals("accept"))
-                .forEach(timing -> assertTrue(timing.time > minWaitTime));
-    }
-
-    private void verifyMethodCall(String parentSessionName, String methodName, int sessionId,
-            String subsession, String shortMethodName, int timeoutMs) {
-        if (!parentSessionName.isEmpty()){
-            parentSessionName += "->";
-        }
-        boolean isMessageReceived = mTestSystemLogger.didReceiveMessage(timeoutMs,
-                buildExpectedResult(parentSessionName + methodName, sessionId, subsession,
-                        shortMethodName));
-
-        assertEquals(true, isMessageReceived);
-    }
-
-    private String buildExpectedSession(String shortMethodName, int sessionId) {
-        return shortMethodName + "@" + Log.getBase64Encoding(sessionId);
-    }
-
-    private String buildExpectedResult(String shortMethodName, int sessionId,
-            String subsessionId, String logText) {
-        return TEST_CLASS_NAME + ": " +  logText + ": " +
-                buildExpectedSession(shortMethodName, sessionId) + subsessionId;
-    }
-
-    private void verifyContinueEventResult(String shortOldMethodName, String shortNewMethodName,
-                String subsession, int sessionId, int timeoutMs) {
-        String expectedSession = buildExpectedSession(shortNewMethodName, sessionId);
-        if(!shortNewMethodName.isEmpty()) {
-            shortOldMethodName += "->";
-        }
-        boolean isMessageReceived = mTestSystemLogger.didReceiveMessage(timeoutMs,
-                Session.CONTINUE_SUBSESSION + ": " + shortOldMethodName + expectedSession +
-                        subsession);
-        assertEquals(true, isMessageReceived);
-    }
-
-    private void verifyEventResult(String event, String shortMethodName,  String subsession,
-            int sessionId, int timeoutMs) {
-        String expectedSession = buildExpectedSession(shortMethodName, sessionId);
-        boolean isMessageReceived = mTestSystemLogger.didReceiveMessage(timeoutMs,event + ": "  +
-                expectedSession + subsession);
-        assertEquals(true, isMessageReceived);
-    }
-
-    private void verifyEndEventResult(String shortMethodName, String subsession, int sessionId,
-            int timeoutMs) {
-        String expectedSession = buildExpectedSession(shortMethodName, sessionId);
-        boolean isMessageReceived = mTestSystemLogger.didReceiveMessage(timeoutMs,
-                Session.END_SESSION + ": " + expectedSession + subsession);
-        assertEquals(true, isMessageReceived);
-    }
-
-    private void internalExternalMethod() {
-        Log.startSession("LT.iEM");
-        Log.i(TEST_CLASS_NAME, TEST_ENTER_METHOD4);
-        Log.endSession();
-    }
-
-    private void internalDanglingMethod() {
-        Log.startSession("LT.iEM");
-        Log.i(TEST_CLASS_NAME, TEST_ENTER_METHOD4);
-    }
-
-    private void sleepyCallerMethod(int timeToSleepMs) {
-        Log.i(TEST_CLASS_NAME, TEST_ENTER_METHOD2);
-        try {
-            Thread.sleep(timeToSleepMs);
-            sleepyMethod(rng.nextInt(TEST_SLEEP_TIME_MS));
-        } catch (InterruptedException e) {
-            // This should not happen
-            Assert.fail("Thread sleep interrupted: " + e.getMessage());
-        }
-
-    }
-
-    private void sleepyMultipleMethod() {
-        Log.i(TEST_CLASS_NAME, TEST_ENTER_METHOD3);
-        Session subsession = Log.createSubsession();
-        SomeArgs args = SomeArgs.obtain();
-        args.arg1 = subsession;
-        mSleepyHandler.obtainMessage(EVENT_START_TEST_SLEEPY_METHOD, args).sendToTarget();
-        try {
-            Thread.sleep(TEST_SLEEP_TIME_MS);
-        } catch (InterruptedException e) {
-            // This should not happen
-            Assert.fail("Thread sleep interrupted: " + e.getMessage());
-        }
-    }
-
-    private void sleepyMethod(int timeToSleepMs) {
-        Log.i(TEST_CLASS_NAME, TEST_ENTER_METHOD1);
-        try {
-            Thread.sleep(timeToSleepMs);
-        } catch (InterruptedException e) {
-            // This should not happen
-            Assert.fail("Thread sleep interrupted: " + e.getMessage());
-        }
-    }
-}
\ No newline at end of file
diff --git a/tests/src/com/android/server/telecom/tests/MissedCallNotifierImplTest.java b/tests/src/com/android/server/telecom/tests/MissedCallNotifierImplTest.java
index 24c59ff..2663356 100644
--- a/tests/src/com/android/server/telecom/tests/MissedCallNotifierImplTest.java
+++ b/tests/src/com/android/server/telecom/tests/MissedCallNotifierImplTest.java
@@ -20,24 +20,32 @@
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.content.ComponentName;
+import android.content.ContentProvider;
 import android.content.Context;
+import android.content.IContentProvider;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
+import android.database.Cursor;
 import android.net.Uri;
+import android.os.Handler;
+import android.os.ICancellationSignal;
+import android.os.Looper;
 import android.os.UserHandle;
+import android.provider.CallLog;
 import android.telecom.PhoneAccount;
-import android.telecom.PhoneAccount.Builder;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
 import android.telephony.TelephonyManager;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import com.android.server.telecom.Call;
+import com.android.internal.telephony.CallerInfo;
+import com.android.server.telecom.CallerInfoLookupHelper;
 import com.android.server.telecom.Constants;
 import com.android.server.telecom.MissedCallNotifier;
 import com.android.server.telecom.PhoneAccountRegistrar;
 import com.android.server.telecom.PhoneNumberUtilsAdapterImpl;
 import com.android.server.telecom.TelecomBroadcastIntentProcessor;
+import com.android.server.telecom.TelecomSystem;
 import com.android.server.telecom.components.TelecomBroadcastReceiver;
 import com.android.server.telecom.ui.MissedCallNotifierImpl;
 import com.android.server.telecom.ui.MissedCallNotifierImpl.NotificationBuilderFactory;
@@ -48,20 +56,65 @@
 
 import java.util.Arrays;
 import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
 
 import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Matchers.isNull;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.timeout;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 public class MissedCallNotifierImplTest extends TelecomTestCase {
 
+    private static class MockMissedCallCursorBuilder {
+        private class CallLogRow {
+            String number;
+            int presentation;
+            long date;
+
+            public CallLogRow(String number, int presentation, long date) {
+                this.number = number;
+                this.presentation = presentation;
+                this.date = date;
+            }
+        }
+
+        private List<CallLogRow> mRows;
+
+        MockMissedCallCursorBuilder() {
+            mRows = new LinkedList<>();
+            mRows.add(null);
+        }
+
+        public MockMissedCallCursorBuilder addEntry(String number, int presentation, long date) {
+            mRows.add(new CallLogRow(number, presentation, date));
+            return this;
+        }
+
+        public Cursor build() {
+            Cursor c = mock(Cursor.class);
+            when(c.moveToNext()).thenAnswer(unused -> {
+                mRows.remove(0);
+                return mRows.size() > 0;
+            });
+            when(c.getString(MissedCallNotifierImpl.CALL_LOG_COLUMN_NUMBER))
+                    .thenAnswer(unused -> mRows.get(0).number);
+            when(c.getInt(MissedCallNotifierImpl.CALL_LOG_COLUMN_NUMBER_PRESENTATION))
+                    .thenAnswer(unused -> mRows.get(0).presentation);
+            when(c.getLong(MissedCallNotifierImpl.CALL_LOG_COLUMN_DATE))
+                    .thenAnswer(unused -> mRows.get(0).date);
+            return c;
+        }
+    }
+
     private static final Uri TEL_CALL_HANDLE = Uri.parse("tel:+11915552620");
     private static final Uri SIP_CALL_HANDLE = Uri.parse("sip:testaddress@testdomain.com");
     private static final String CALLER_NAME = "Fake Name";
@@ -79,6 +132,7 @@
     private static final UserHandle PRIMARY_USER = UserHandle.of(0);
     private static final UserHandle SECONARY_USER = UserHandle.of(12);
     private static final int NO_CAPABILITY = 0;
+    private static final int TEST_TIMEOUT = 1000;
 
     @Mock
     private NotificationManager mNotificationManager;
@@ -89,6 +143,8 @@
     @Mock
     private TelecomManager mTelecomManager;
 
+    @Mock TelecomSystem mTelecomSystem;
+
     @Override
     public void setUp() throws Exception {
         super.setUp();
@@ -114,6 +170,12 @@
         mComponentContextFixture.setTelecomManager(mTelecomManager);
     }
 
+    @Override
+    public void tearDown() throws Exception {
+        TelecomSystem.setInstance(null);
+        when(mTelecomSystem.isBootComplete()).thenReturn(false);
+    }
+
     @SmallTest
     public void testCancelNotificationInPrimaryUser() {
         cancelNotificationTestInternal(PRIMARY_USER);
@@ -133,8 +195,8 @@
         MissedCallNotifier missedCallNotifier = makeMissedCallNotifier(fakeBuilderFactory,
                 PRIMARY_USER);
         PhoneAccount phoneAccount = makePhoneAccount(userHandle, NO_CAPABILITY);
-        Call fakeCall = makeFakeCall(TEL_CALL_HANDLE, CALLER_NAME, CALL_TIMESTAMP,
-                phoneAccount.getAccountHandle());
+        MissedCallNotifier.CallInfo fakeCall = makeFakeCallInfo(TEL_CALL_HANDLE, CALLER_NAME,
+                CALL_TIMESTAMP, phoneAccount.getAccountHandle());
 
         missedCallNotifier.showMissedCallNotification(fakeCall);
         missedCallNotifier.clearMissedCalls(userHandle);
@@ -160,14 +222,14 @@
         }
 
         PhoneAccount phoneAccount = makePhoneAccount(PRIMARY_USER, NO_CAPABILITY);
-        Call fakeCall = makeFakeCall(TEL_CALL_HANDLE, CALLER_NAME, CALL_TIMESTAMP,
-                phoneAccount.getAccountHandle());
+        MissedCallNotifier.CallInfo fakeCall = makeFakeCallInfo(TEL_CALL_HANDLE, CALLER_NAME,
+                CALL_TIMESTAMP, phoneAccount.getAccountHandle());
 
         MissedCallNotifierImpl.NotificationBuilderFactory fakeBuilderFactory =
                 makeNotificationBuilderFactory(builders);
 
         MissedCallNotifier missedCallNotifier = new MissedCallNotifierImpl(mContext,
-                mPhoneAccountRegistrar, new PhoneNumberUtilsAdapterImpl(), fakeBuilderFactory);
+                mPhoneAccountRegistrar, fakeBuilderFactory);
 
         missedCallNotifier.showMissedCallNotification(fakeCall);
         missedCallNotifier.showMissedCallNotification(fakeCall);
@@ -254,8 +316,8 @@
         MissedCallNotifier missedCallNotifier = makeMissedCallNotifier(fakeBuilderFactory,
                 currentUser);
 
-        Call fakeCall = makeFakeCall(TEL_CALL_HANDLE, CALLER_NAME, CALL_TIMESTAMP,
-                phoneAccount.getAccountHandle());
+        MissedCallNotifier.CallInfo fakeCall = makeFakeCallInfo(TEL_CALL_HANDLE, CALLER_NAME,
+                CALL_TIMESTAMP, phoneAccount.getAccountHandle());
         missedCallNotifier.showMissedCallNotification(fakeCall);
 
         ArgumentCaptor<Notification> notificationArgumentCaptor = ArgumentCaptor.forClass(
@@ -316,11 +378,11 @@
                 makeNotificationBuilderFactory(builder1);
 
         MissedCallNotifier missedCallNotifier = new MissedCallNotifierImpl(mContext,
-                mPhoneAccountRegistrar, new PhoneNumberUtilsAdapterImpl(), fakeBuilderFactory);
+                mPhoneAccountRegistrar, fakeBuilderFactory);
         PhoneAccount phoneAccount = makePhoneAccount(PRIMARY_USER, NO_CAPABILITY);
 
-        Call fakeCall =
-                makeFakeCall(SIP_CALL_HANDLE, CALLER_NAME, CALL_TIMESTAMP,
+        MissedCallNotifier.CallInfo fakeCall =
+                makeFakeCallInfo(SIP_CALL_HANDLE, CALLER_NAME, CALL_TIMESTAMP,
                 phoneAccount.getAccountHandle());
         missedCallNotifier.showMissedCallNotification(fakeCall);
 
@@ -344,6 +406,135 @@
                 smsIntent, PendingIntent.FLAG_NO_CREATE));
     }
 
+    @SmallTest
+    public void testLoadOneCallFromDb() throws Exception {
+        CallerInfoLookupHelper mockCallerInfoLookupHelper = mock(CallerInfoLookupHelper.class);
+        MissedCallNotifier.CallInfoFactory mockCallInfoFactory =
+                mock(MissedCallNotifier.CallInfoFactory.class);
+
+        Uri queryUri = ContentProvider.maybeAddUserId(CallLog.Calls.CONTENT_URI,
+                PRIMARY_USER.getIdentifier());
+        IContentProvider cp = getContentProviderForUser(PRIMARY_USER.getIdentifier());
+
+        Cursor mockMissedCallsCursor = new MockMissedCallCursorBuilder()
+                .addEntry(TEL_CALL_HANDLE.getSchemeSpecificPart(),
+                        CallLog.Calls.PRESENTATION_ALLOWED, CALL_TIMESTAMP)
+                .build();
+
+        when(cp.query(anyString(), eq(queryUri), any(String[].class), anyString(), any
+                (String[].class), anyString(), any(ICancellationSignal.class)))
+                .thenReturn(mockMissedCallsCursor);
+
+        PhoneAccount phoneAccount = makePhoneAccount(PRIMARY_USER, NO_CAPABILITY);
+        MissedCallNotifier.CallInfo fakeCallInfo = makeFakeCallInfo(TEL_CALL_HANDLE,
+                CALLER_NAME, CALL_TIMESTAMP, phoneAccount.getAccountHandle());
+        when(mockCallInfoFactory.makeCallInfo(any(CallerInfo.class),
+                any(PhoneAccountHandle.class), any(Uri.class), eq(CALL_TIMESTAMP)))
+                .thenReturn(fakeCallInfo);
+
+        Notification.Builder builder1 = makeNotificationBuilder("builder1");
+        MissedCallNotifierImpl.NotificationBuilderFactory fakeBuilderFactory =
+                makeNotificationBuilderFactory(builder1);
+
+        MissedCallNotifier missedCallNotifier = new MissedCallNotifierImpl(mContext,
+                mPhoneAccountRegistrar, fakeBuilderFactory);
+
+        // AsyncQueryHandler used in reloadFromDatabase interacts poorly with the below
+        // timeout-verify, so run this in a new handler to mitigate that.
+        Handler h = new Handler(Looper.getMainLooper());
+        h.post(() -> missedCallNotifier.reloadFromDatabase(
+                mockCallerInfoLookupHelper, mockCallInfoFactory, PRIMARY_USER));
+        waitForHandlerAction(h, TEST_TIMEOUT);
+
+        // TelecomSystem.getInstance returns null in this test, so we expect that nothing will
+        // happen.
+        verify(mockCallerInfoLookupHelper, never()).startLookup(any(Uri.class),
+                any(CallerInfoLookupHelper.OnQueryCompleteListener.class));
+        // Simulate a boot-complete
+        TelecomSystem.setInstance(mTelecomSystem);
+        when(mTelecomSystem.isBootComplete()).thenReturn(true);
+        h.post(() -> missedCallNotifier.reloadAfterBootComplete(mockCallerInfoLookupHelper,
+                mockCallInfoFactory));
+        waitForHandlerAction(h, TEST_TIMEOUT);
+
+        Uri escapedHandle = Uri.fromParts(PhoneAccount.SCHEME_TEL,
+                TEL_CALL_HANDLE.getSchemeSpecificPart(), null);
+        ArgumentCaptor<CallerInfoLookupHelper.OnQueryCompleteListener> listenerCaptor =
+                ArgumentCaptor.forClass(CallerInfoLookupHelper.OnQueryCompleteListener.class);
+        verify(mockCallerInfoLookupHelper, timeout(TEST_TIMEOUT)).startLookup(eq(escapedHandle),
+                listenerCaptor.capture());
+
+        CallerInfo ci = new CallerInfo();
+        listenerCaptor.getValue().onCallerInfoQueryComplete(escapedHandle, ci);
+        verify(mockCallInfoFactory).makeCallInfo(eq(ci), isNull(PhoneAccountHandle.class),
+                eq(escapedHandle), eq(CALL_TIMESTAMP));
+    }
+
+    @SmallTest
+    public void testLoadTwoCallsFromDb() throws Exception {
+        TelecomSystem.setInstance(mTelecomSystem);
+        when(mTelecomSystem.isBootComplete()).thenReturn(true);
+        CallerInfoLookupHelper mockCallerInfoLookupHelper = mock(CallerInfoLookupHelper.class);
+        MissedCallNotifier.CallInfoFactory mockCallInfoFactory =
+                mock(MissedCallNotifier.CallInfoFactory.class);
+
+        Cursor mockMissedCallsCursor = new MockMissedCallCursorBuilder()
+                .addEntry(TEL_CALL_HANDLE.getSchemeSpecificPart(),
+                        CallLog.Calls.PRESENTATION_ALLOWED, CALL_TIMESTAMP)
+                .addEntry(SIP_CALL_HANDLE.getSchemeSpecificPart(),
+                        CallLog.Calls.PRESENTATION_ALLOWED, CALL_TIMESTAMP)
+                .build();
+
+        Uri queryUri = ContentProvider.maybeAddUserId(CallLog.Calls.CONTENT_URI,
+                PRIMARY_USER.getIdentifier());
+        IContentProvider cp = getContentProviderForUser(PRIMARY_USER.getIdentifier());
+
+        when(cp.query(anyString(), eq(queryUri), any(String[].class), anyString(), any
+                (String[].class), anyString(), any(ICancellationSignal.class)))
+                .thenReturn(mockMissedCallsCursor);
+
+        PhoneAccount phoneAccount = makePhoneAccount(PRIMARY_USER, NO_CAPABILITY);
+        MissedCallNotifier.CallInfo fakeCallInfo = makeFakeCallInfo(TEL_CALL_HANDLE,
+                CALLER_NAME, CALL_TIMESTAMP, phoneAccount.getAccountHandle());
+        when(mockCallInfoFactory.makeCallInfo(any(CallerInfo.class),
+                any(PhoneAccountHandle.class), any(Uri.class), eq(CALL_TIMESTAMP)))
+                .thenReturn(fakeCallInfo);
+
+        Notification.Builder builder1 = makeNotificationBuilder("builder1");
+        MissedCallNotifierImpl.NotificationBuilderFactory fakeBuilderFactory =
+                makeNotificationBuilderFactory(builder1);
+
+        MissedCallNotifier missedCallNotifier = new MissedCallNotifierImpl(mContext,
+                mPhoneAccountRegistrar, fakeBuilderFactory);
+
+        // AsyncQueryHandler used in reloadFromDatabase interacts poorly with the below
+        // timeout-verify, so run this in a new handler to mitigate that.
+        Handler h = new Handler(Looper.getMainLooper());
+        h.post(() -> missedCallNotifier.reloadFromDatabase(
+                mockCallerInfoLookupHelper, mockCallInfoFactory, PRIMARY_USER));
+        waitForHandlerAction(h, TEST_TIMEOUT);
+
+        Uri escapedTelHandle = Uri.fromParts(PhoneAccount.SCHEME_TEL,
+                TEL_CALL_HANDLE.getSchemeSpecificPart(), null);
+        Uri escapedSipHandle = Uri.fromParts(PhoneAccount.SCHEME_SIP,
+                SIP_CALL_HANDLE.getSchemeSpecificPart(), null);
+
+        ArgumentCaptor<CallerInfoLookupHelper.OnQueryCompleteListener> listenerCaptor =
+                ArgumentCaptor.forClass(CallerInfoLookupHelper.OnQueryCompleteListener.class);
+        verify(mockCallerInfoLookupHelper, timeout(TEST_TIMEOUT)).startLookup(eq(escapedTelHandle),
+                listenerCaptor.capture());
+        verify(mockCallerInfoLookupHelper, timeout(TEST_TIMEOUT)).startLookup(eq(escapedSipHandle),
+                listenerCaptor.capture());
+
+        CallerInfo ci = new CallerInfo();
+        listenerCaptor.getAllValues().get(0).onCallerInfoQueryComplete(escapedTelHandle, ci);
+        listenerCaptor.getAllValues().get(1).onCallerInfoQueryComplete(escapedSipHandle, ci);
+
+        // Verify that two notifications were generated, both with the same id.
+        verify(mNotificationManager, times(2)).notifyAsUser(isNull(String.class), eq(1),
+                any(Notification.class), eq(PRIMARY_USER));
+    }
+
     private Notification.Builder makeNotificationBuilder(String label) {
         Notification.Builder builder = spy(new Notification.Builder(mContext));
         Notification notification = mock(Notification.class);
@@ -353,13 +544,14 @@
         return builder;
     }
 
-    private Call makeFakeCall(Uri handle, String name, long timestamp,
+    private MissedCallNotifier.CallInfo makeFakeCallInfo(Uri handle, String name, long timestamp,
             PhoneAccountHandle phoneAccountHandle) {
-        Call fakeCall = mock(Call.class);
+        MissedCallNotifier.CallInfo fakeCall = mock(MissedCallNotifier.CallInfo.class);
         when(fakeCall.getHandle()).thenReturn(handle);
+        when(fakeCall.getHandleSchemeSpecificPart()).thenReturn(handle.getSchemeSpecificPart());
         when(fakeCall.getName()).thenReturn(name);
         when(fakeCall.getCreationTimeMillis()).thenReturn(timestamp);
-        when(fakeCall.getTargetPhoneAccount()).thenReturn(phoneAccountHandle);
+        when(fakeCall.getPhoneAccountHandle()).thenReturn(phoneAccountHandle);
         return fakeCall;
     }
 
@@ -375,7 +567,7 @@
     private MissedCallNotifier makeMissedCallNotifier(
             NotificationBuilderFactory fakeBuilderFactory, UserHandle currentUser) {
         MissedCallNotifier missedCallNotifier = new MissedCallNotifierImpl(mContext,
-                mPhoneAccountRegistrar, new PhoneNumberUtilsAdapterImpl(), fakeBuilderFactory);
+                mPhoneAccountRegistrar, fakeBuilderFactory);
         missedCallNotifier.setCurrentUserHandle(currentUser);
         return missedCallNotifier;
     }
@@ -391,4 +583,9 @@
                 .thenReturn(phoneAccount);
         return phoneAccount;
     }
+
+    private IContentProvider getContentProviderForUser(int userId) {
+        return mContext.getContentResolver().acquireProvider(userId + "@call_log");
+    }
+
 }
diff --git a/tests/src/com/android/server/telecom/tests/MockitoHelper.java b/tests/src/com/android/server/telecom/tests/MockitoHelper.java
index 3425b0e..a28dfb0 100644
--- a/tests/src/com/android/server/telecom/tests/MockitoHelper.java
+++ b/tests/src/com/android/server/telecom/tests/MockitoHelper.java
@@ -16,9 +16,8 @@
 
 package com.android.server.telecom.tests;
 
-import com.android.server.telecom.Log;
-
 import android.content.Context;
+import android.telecom.Log;
 
 /**
  * Helper for Mockito-based test cases.
diff --git a/tests/src/com/android/server/telecom/tests/PhoneAccountRegistrarTest.java b/tests/src/com/android/server/telecom/tests/PhoneAccountRegistrarTest.java
index 12d24c4..7b5b836 100644
--- a/tests/src/com/android/server/telecom/tests/PhoneAccountRegistrarTest.java
+++ b/tests/src/com/android/server/telecom/tests/PhoneAccountRegistrarTest.java
@@ -26,6 +26,7 @@
 import android.os.Parcel;
 import android.os.Process;
 import android.os.UserHandle;
+import android.telecom.Log;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
@@ -34,7 +35,6 @@
 
 import com.android.internal.telecom.IConnectionService;
 import com.android.internal.util.FastXmlSerializer;
-import com.android.server.telecom.Log;
 import com.android.server.telecom.PhoneAccountRegistrar;
 import com.android.server.telecom.PhoneAccountRegistrar.DefaultPhoneAccountHandle;
 
diff --git a/tests/src/com/android/server/telecom/tests/SessionManagerTest.java b/tests/src/com/android/server/telecom/tests/SessionManagerTest.java
new file mode 100644
index 0000000..2d9b0c6
--- /dev/null
+++ b/tests/src/com/android/server/telecom/tests/SessionManagerTest.java
@@ -0,0 +1,384 @@
+/*
+ * Copyright (C) 2016 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 android.telecom.Logging.Session;
+import android.telecom.Logging.SessionManager;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import java.lang.ref.WeakReference;
+
+/**
+ * Unit tests for android.telecom.Logging.SessionManager
+ */
+
+public class SessionManagerTest extends TelecomTestCase {
+
+    private static final String TEST_PARENT_NAME = "testParent";
+    private static final int TEST_PARENT_THREAD_ID = 0;
+    private static final String TEST_CHILD_NAME = "testChild";
+    private static final int TEST_CHILD_THREAD_ID = 1;
+    private static final int TEST_DELAY_TIME = 100; // ms
+
+    private SessionManager mTestSessionManager;
+    // Used to verify sessionComplete callback
+    private long mfullSessionCompleteTime = Session.UNDEFINED;
+    private String mFullSessionMethodName = "";
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        mTestSessionManager = new SessionManager();
+        mTestSessionManager.registerSessionListener(((sessionName, timeMs) -> {
+            mfullSessionCompleteTime = timeMs;
+            mFullSessionMethodName = sessionName;
+        }));
+        // Remove automatic stale session cleanup for testing
+        mTestSessionManager.mCleanStaleSessions = null;
+    }
+
+    @Override
+    public void tearDown() throws Exception {
+        mFullSessionMethodName = "";
+        mfullSessionCompleteTime = Session.UNDEFINED;
+        mTestSessionManager = null;
+        super.tearDown();
+    }
+
+    /**
+     * Starts a Session on the current thread and verifies that it exists in the HashMap
+     */
+    @SmallTest
+    public void testStartSession() {
+        assertTrue(mTestSessionManager.mSessionMapper.isEmpty());
+
+        // Set the thread Id to 0
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.startSession(TEST_PARENT_NAME, null);
+
+        Session testSession = mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID);
+        assertEquals(TEST_PARENT_NAME, testSession.getShortMethodName());
+        assertFalse(testSession.isSessionCompleted());
+        assertFalse(testSession.isStartedFromActiveSession());
+    }
+
+    /**
+     * Starts two sessions in the same thread. The first session will be parented to the second
+     * session and the second session will be attached to that thread ID.
+     */
+    @SmallTest
+    public void testStartInvisibleChildSession() {
+        assertTrue(mTestSessionManager.mSessionMapper.isEmpty());
+
+        // Set the thread Id to 0 for the parent
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.startSession(TEST_PARENT_NAME, null);
+        // Create invisible child session - same Thread ID as parent
+        mTestSessionManager.startSession(TEST_CHILD_NAME, null);
+
+        // There should only be one session in the mapper (the child)
+        assertEquals(1, mTestSessionManager.mSessionMapper.size());
+        Session testChildSession = mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID);
+        assertEquals( TEST_CHILD_NAME, testChildSession.getShortMethodName());
+        assertTrue(testChildSession.isStartedFromActiveSession());
+        assertNotNull(testChildSession.getParentSession());
+        assertEquals(TEST_PARENT_NAME, testChildSession.getParentSession().getShortMethodName());
+        assertFalse(testChildSession.isSessionCompleted());
+        assertFalse(testChildSession.getParentSession().isSessionCompleted());
+    }
+
+    /**
+     * End the active Session and verify that it is completed and removed from mSessionMapper.
+     */
+    @SmallTest
+    public void testEndSession() {
+        assertTrue(mTestSessionManager.mSessionMapper.isEmpty());
+        // Set the thread Id to 0
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.startSession(TEST_PARENT_NAME, null);
+        Session testSession = mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID);
+
+        assertEquals(1, mTestSessionManager.mSessionMapper.size());
+        try {
+            // Make sure execution time is > 0
+            Thread.sleep(1);
+        } catch (InterruptedException ignored) {}
+        mTestSessionManager.endSession();
+
+        assertTrue(testSession.isSessionCompleted());
+        assertTrue(testSession.getLocalExecutionTime() > 0);
+        assertTrue(mTestSessionManager.mSessionMapper.isEmpty());
+    }
+
+    /**
+     * Ends an active invisible child session and verifies that the parent session is moved back
+     * into mSessionMapper.
+     */
+    @SmallTest
+    public void testEndInvisibleChildSession() {
+        assertTrue(mTestSessionManager.mSessionMapper.isEmpty());
+        // Set the thread Id to 0 for the parent
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.startSession(TEST_PARENT_NAME, null);
+        // Create invisible child session - same Thread ID as parent
+        mTestSessionManager.startSession(TEST_CHILD_NAME, null);
+        Session testChildSession = mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID);
+
+        mTestSessionManager.endSession();
+
+        // There should only be one session in the mapper (the parent)
+        assertEquals(1, mTestSessionManager.mSessionMapper.size());
+        Session testParentSession = mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID);
+        assertEquals(TEST_PARENT_NAME, testParentSession.getShortMethodName());
+        assertFalse(testParentSession.isStartedFromActiveSession());
+        assertTrue(testChildSession.isSessionCompleted());
+        assertFalse(testParentSession.isSessionCompleted());
+    }
+
+    /**
+     * Creates a subsession (child Session) of the current session and prepares it to be continued
+     * in a different thread.
+     */
+    @SmallTest
+    public void testCreateSubsession() {
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.startSession(TEST_PARENT_NAME, null);
+
+        Session testSession = mTestSessionManager.createSubsession();
+
+        assertEquals(1, mTestSessionManager.mSessionMapper.size());
+        Session parentSession = mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID);
+        assertNotNull(testSession.getParentSession());
+        assertEquals(TEST_PARENT_NAME, testSession.getParentSession().getShortMethodName());
+        assertEquals(TEST_PARENT_NAME, parentSession.getShortMethodName());
+        assertTrue(parentSession.getChildSessions().contains(testSession));
+        assertFalse(testSession.isSessionCompleted());
+        assertFalse(testSession.isStartedFromActiveSession());
+        assertTrue(testSession.getChildSessions().isEmpty());
+    }
+
+    /**
+     * Cancels a subsession that was started before it was continued and verifies that it is
+     * marked as completed and never added to mSessionMapper.
+     */
+    @SmallTest
+    public void testCancelSubsession() {
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.startSession(TEST_PARENT_NAME, null);
+        Session parentSession = mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID);
+        Session testSession = mTestSessionManager.createSubsession();
+
+        mTestSessionManager.cancelSubsession(testSession);
+
+        assertTrue(testSession.isSessionCompleted());
+        assertFalse(parentSession.isSessionCompleted());
+        assertEquals(Session.UNDEFINED, testSession.getLocalExecutionTime());
+        assertNull(testSession.getParentSession());
+    }
+
+
+    /**
+     * Continues a subsession in a different thread and verifies that both the new subsession and
+     * its parent are in mSessionMapper.
+     */
+    @SmallTest
+    public void testContinueSubsession() {
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.startSession(TEST_PARENT_NAME, null);
+        Session parentSession = mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID);
+        Session testSession = mTestSessionManager.createSubsession();
+
+        mTestSessionManager.mCurrentThreadId = () -> TEST_CHILD_THREAD_ID;
+        mTestSessionManager.continueSession(testSession, TEST_CHILD_NAME);
+
+        assertEquals(2, mTestSessionManager.mSessionMapper.size());
+        assertEquals(testSession, mTestSessionManager.mSessionMapper.get(TEST_CHILD_THREAD_ID));
+        assertEquals(parentSession, testSession.getParentSession());
+        assertFalse(parentSession.isStartedFromActiveSession());
+        assertFalse(parentSession.isSessionCompleted());
+        assertFalse(testSession.isSessionCompleted());
+        assertFalse(testSession.isStartedFromActiveSession());
+    }
+
+    /**
+     * Ends a subsession that exists in a different thread and verifies that it is completed and
+     * no longer exists in mSessionMapper.
+     */
+    @SmallTest
+    public void testEndSubsession() {
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.startSession(TEST_PARENT_NAME, null);
+        Session parentSession = mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID);
+        Session testSession = mTestSessionManager.createSubsession();
+        mTestSessionManager.mCurrentThreadId = () -> TEST_CHILD_THREAD_ID;
+        mTestSessionManager.continueSession(testSession, TEST_CHILD_NAME);
+
+        mTestSessionManager.endSession();
+
+        assertTrue(testSession.isSessionCompleted());
+        assertNull(mTestSessionManager.mSessionMapper.get(TEST_CHILD_THREAD_ID));
+        assertFalse(parentSession.isSessionCompleted());
+        assertEquals(parentSession, mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID));
+    }
+
+    /**
+     * When there are subsessions in multiple threads, the parent session may end before the
+     * subsessions themselves. When the subsession ends, we need to recursively clean up the parent
+     * sessions that are complete as well and note the completion time of the entire chain.
+     */
+    @SmallTest
+    public void testEndSubsessionWithParentComplete() {
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.startSession(TEST_PARENT_NAME, null);
+        Session parentSession = mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID);
+        Session childSession = mTestSessionManager.createSubsession();
+        mTestSessionManager.mCurrentThreadId = () -> TEST_CHILD_THREAD_ID;
+        mTestSessionManager.continueSession(childSession, TEST_CHILD_NAME);
+        // Switch to the parent session ID and end the session.
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.endSession();
+        assertTrue(parentSession.isSessionCompleted());
+        assertFalse(childSession.isSessionCompleted());
+
+        mTestSessionManager.mCurrentThreadId = () -> TEST_CHILD_THREAD_ID;
+        try {
+            Thread.sleep(TEST_DELAY_TIME);
+        } catch (InterruptedException ignored) {}
+        mTestSessionManager.endSession();
+
+        assertEquals(0, mTestSessionManager.mSessionMapper.size());
+        assertTrue(parentSession.getChildSessions().isEmpty());
+        assertNull(childSession.getParentSession());
+        assertTrue(childSession.isSessionCompleted());
+        assertEquals(TEST_PARENT_NAME, mFullSessionMethodName);
+        // Reduce flakiness by assuming that the true completion time is within a threshold of
+        // +-10 ms
+        assertTrue(mfullSessionCompleteTime >= TEST_DELAY_TIME - 10);
+        assertTrue(mfullSessionCompleteTime <= TEST_DELAY_TIME + 10);
+    }
+
+    /**
+     * Tests that starting an external session packages up the parent session information and
+     * correctly generates the child session.
+     */
+    @SmallTest
+    public void testStartExternalSession() {
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.startSession(TEST_PARENT_NAME, null);
+        Session.Info sessionInfo =
+                mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID).getInfo();
+        mTestSessionManager.mCurrentThreadId = () -> TEST_CHILD_THREAD_ID;
+
+        mTestSessionManager.startExternalSession(sessionInfo, TEST_CHILD_NAME);
+
+        Session externalSession = mTestSessionManager.mSessionMapper.get(TEST_CHILD_THREAD_ID);
+        assertNotNull(externalSession);
+        assertFalse(externalSession.isSessionCompleted());
+        assertEquals(TEST_CHILD_NAME, externalSession.getShortMethodName());
+        // First subsession of the parent external Session, so the session will be _0.
+        assertEquals("0", externalSession.getSessionId());
+    }
+
+    /**
+     * Verifies that ending an external session tears down the session correctly and removes the
+     * external session from mSessionMapper.
+     */
+    @SmallTest
+    public void testEndExternalSession() {
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.startSession(TEST_PARENT_NAME, null);
+        Session.Info sessionInfo =
+                mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID).getInfo();
+        mTestSessionManager.mCurrentThreadId = () -> TEST_CHILD_THREAD_ID;
+        mTestSessionManager.startExternalSession(sessionInfo, TEST_CHILD_NAME);
+        Session externalSession = mTestSessionManager.mSessionMapper.get(TEST_CHILD_THREAD_ID);
+
+        try {
+            // Make sure execution time is > 0
+            Thread.sleep(1);
+        } catch (InterruptedException ignored) {}
+        mTestSessionManager.endSession();
+
+        assertTrue(externalSession.isSessionCompleted());
+        assertTrue(externalSession.getLocalExecutionTime() > 0);
+        assertNull(mTestSessionManager.mSessionMapper.get(TEST_CHILD_THREAD_ID));
+    }
+
+    /**
+     * Verifies that the callback to inform that the top level parent Session has completed is not
+     * the external Session, but the one subsession underneath.
+     */
+    @SmallTest
+    public void testEndExternalSessionListenerCallback() {
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.startSession(TEST_PARENT_NAME, null);
+        Session.Info sessionInfo =
+                mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID).getInfo();
+        mTestSessionManager.mCurrentThreadId = () -> TEST_CHILD_THREAD_ID;
+        mTestSessionManager.startExternalSession(sessionInfo, TEST_CHILD_NAME);
+
+        try {
+            // Make sure execution time is recorded correctly
+            Thread.sleep(TEST_DELAY_TIME);
+        } catch (InterruptedException ignored) {}
+        mTestSessionManager.endSession();
+
+        assertEquals(TEST_CHILD_NAME, mFullSessionMethodName);
+        assertTrue(mfullSessionCompleteTime >= TEST_DELAY_TIME - 10);
+        assertTrue(mfullSessionCompleteTime <= TEST_DELAY_TIME + 10);
+    }
+
+    /**
+     * Verifies that the recursive method for getting the full ID works correctly.
+     */
+    @SmallTest
+    public void testFullMethodPath() {
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.startSession(TEST_PARENT_NAME, null);
+        Session testSession = mTestSessionManager.createSubsession();
+        mTestSessionManager.mCurrentThreadId = () -> TEST_CHILD_THREAD_ID;
+        mTestSessionManager.continueSession(testSession, TEST_CHILD_NAME);
+
+        String fullId = mTestSessionManager.getSessionId();
+
+        assertTrue(fullId.contains(TEST_PARENT_NAME + Session.SUBSESSION_SEPARATION_CHAR
+                + TEST_CHILD_NAME));
+    }
+
+    /**
+     * Make sure that the cleanup timer runs correctly and the GC collects the stale sessions
+     * correctly to ensure that there are no dangling sessions.
+     */
+    @SmallTest
+    public void testStaleSessionCleanupTimer() {
+        mTestSessionManager.mCurrentThreadId = () -> TEST_PARENT_THREAD_ID;
+        mTestSessionManager.startSession(TEST_PARENT_NAME, null);
+        WeakReference<Session> sessionRef = new WeakReference<>(
+                mTestSessionManager.mSessionMapper.get(TEST_PARENT_THREAD_ID));
+        try {
+            // Make sure that the sleep time is always > delay time.
+            Thread.sleep(2 * TEST_DELAY_TIME);
+            mTestSessionManager.cleanupStaleSessions(TEST_DELAY_TIME);
+            Runtime.getRuntime().gc();
+            // Give it a second for GC to run.
+            Thread.sleep(1000);
+        } catch (InterruptedException ignored) {}
+
+        assertTrue(mTestSessionManager.mSessionMapper.isEmpty());
+        assertNull(sessionRef.get());
+    }
+}
diff --git a/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java b/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
index 68eb0ed..af7f0b5 100644
--- a/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
+++ b/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
@@ -64,9 +64,9 @@
 import com.android.server.telecom.CallAudioManager;
 import com.android.server.telecom.CallAudioRouteStateMachine;
 import com.android.server.telecom.CallerInfoAsyncQueryFactory;
+import com.android.server.telecom.CallerInfoLookupHelper;
 import com.android.server.telecom.CallsManager;
 import com.android.server.telecom.CallsManagerListenerBase;
-import com.android.server.telecom.ContactsAsyncHelper;
 import com.android.server.telecom.HeadsetMediaButton;
 import com.android.server.telecom.HeadsetMediaButtonFactory;
 import com.android.server.telecom.InCallWakeLockController;
@@ -78,7 +78,6 @@
 import com.android.server.telecom.PhoneNumberUtilsAdapterImpl;
 import com.android.server.telecom.ProximitySensorManager;
 import com.android.server.telecom.ProximitySensorManagerFactory;
-import com.android.server.telecom.Runnable;
 import com.android.server.telecom.TelecomSystem;
 import com.android.server.telecom.Timeouts;
 import com.android.server.telecom.callfiltering.AsyncBlockCheckFilter;
@@ -129,7 +128,7 @@
 
     public static class MissedCallNotifierFakeImpl extends CallsManagerListenerBase
             implements MissedCallNotifier {
-        List<com.android.server.telecom.Call> missedCallsNotified = new ArrayList<>();
+        List<CallInfo> missedCallsNotified = new ArrayList<>();
 
         @Override
         public void clearMissedCalls(UserHandle userHandle) {
@@ -137,16 +136,17 @@
         }
 
         @Override
-        public void showMissedCallNotification(com.android.server.telecom.Call call) {
+        public void showMissedCallNotification(CallInfo call) {
             missedCallsNotified.add(call);
         }
 
         @Override
-        public void reloadFromDatabase(TelecomSystem.SyncRoot lock, CallsManager callsManager,
-                ContactsAsyncHelper contactsAsyncHelper,
-                CallerInfoAsyncQueryFactory callerInfoAsyncQueryFactory, UserHandle userHandle) {
+        public void reloadAfterBootComplete(CallerInfoLookupHelper callerInfoLookupHelper,
+                CallInfoFactory callInfoFactory) { }
 
-        }
+        @Override
+        public void reloadFromDatabase(CallerInfoLookupHelper callerInfoLookupHelper,
+                CallInfoFactory callInfoFactory, UserHandle userHandle) { }
 
         @Override
         public void setCurrentUserHandle(UserHandle userHandle) {
@@ -181,7 +181,6 @@
             return mInterruptionFilter;
         }
     }
-
     @Mock HeadsetMediaButton mHeadsetMediaButton;
     @Mock ProximitySensorManager mProximitySensorManager;
     @Mock InCallWakeLockController mInCallWakeLockController;
@@ -256,8 +255,7 @@
                     .setCapabilities(
                             PhoneAccount.CAPABILITY_CALL_PROVIDER |
                                     PhoneAccount.CAPABILITY_SIM_SUBSCRIPTION |
-                                    PhoneAccount.CAPABILITY_PLACE_EMERGENCY_CALLS |
-                                    PhoneAccount.CAPABILITY_VIDEO_CALLING)
+                                    PhoneAccount.CAPABILITY_PLACE_EMERGENCY_CALLS)
                     .build();
 
     final PhoneAccount mPhoneAccountE1 =
@@ -270,8 +268,7 @@
                     .setCapabilities(
                             PhoneAccount.CAPABILITY_CALL_PROVIDER |
                                     PhoneAccount.CAPABILITY_SIM_SUBSCRIPTION |
-                                    PhoneAccount.CAPABILITY_PLACE_EMERGENCY_CALLS |
-                                    PhoneAccount.CAPABILITY_VIDEO_CALLING)
+                                    PhoneAccount.CAPABILITY_PLACE_EMERGENCY_CALLS)
                     .build();
 
     ConnectionServiceFixture mConnectionServiceFixtureA;
@@ -376,8 +373,7 @@
                 new MissedCallNotifierImplFactory() {
                     @Override
                     public MissedCallNotifier makeMissedCallNotifierImpl(Context context,
-                            PhoneAccountRegistrar phoneAccountRegistrar,
-                            PhoneNumberUtilsAdapter phoneNumberUtilsAdapter) {
+                            PhoneAccountRegistrar phoneAccountRegistrar) {
                         return mMissedCallNotifier;
                     }
                 },
@@ -673,7 +669,7 @@
 
         verify(connectionServiceFixture.getTestDouble())
                 .createConnection(eq(phoneAccountHandle), anyString(), any(ConnectionRequest.class),
-                        eq(false)/*isIncoming*/, anyBoolean());
+                        eq(false)/*isIncoming*/, anyBoolean(), any());
         // Wait for handleCreateConnectionComplete
         waitForHandlerAction(new Handler(Looper.getMainLooper()), TEST_TIMEOUT);
 
@@ -695,7 +691,7 @@
 
         verify(connectionServiceFixture.getTestDouble())
                 .createConnection(eq(phoneAccountHandle), anyString(), any(ConnectionRequest.class),
-                        eq(false)/*isIncoming*/, anyBoolean());
+                        eq(false)/*isIncoming*/, anyBoolean(), any());
         // Wait for handleCreateConnectionComplete
         waitForHandlerAction(new Handler(Looper.getMainLooper()), TEST_TIMEOUT);
         // Wait for the callback in ConnectionService#onAdapterAttached to execute.
@@ -744,7 +740,7 @@
 
         verify(connectionServiceFixture.getTestDouble())
                 .createConnection(any(PhoneAccountHandle.class), anyString(),
-                        any(ConnectionRequest.class), eq(true), eq(false));
+                        any(ConnectionRequest.class), eq(true), eq(false), any());
 
         for (CallerInfoAsyncQueryFactoryFixture.Request request :
                 mCallerInfoAsyncQueryFactoryFixture.mRequests) {
@@ -874,10 +870,10 @@
 
         if (!VideoProfile.isVideo(videoState)) {
             verify(connectionServiceFixture.getTestDouble())
-                    .answer(ids.mConnectionId);
+                    .answer(eq(ids.mConnectionId), any());
         } else {
             verify(connectionServiceFixture.getTestDouble())
-                    .answerVideo(ids.mConnectionId, videoState);
+                    .answerVideo(eq(ids.mConnectionId), eq(videoState), any());
         }
 
         connectionServiceFixture.sendSetActive(ids.mConnectionId);
diff --git a/tests/src/com/android/server/telecom/tests/TelecomTestCase.java b/tests/src/com/android/server/telecom/tests/TelecomTestCase.java
index ed10e4b..b909a54 100644
--- a/tests/src/com/android/server/telecom/tests/TelecomTestCase.java
+++ b/tests/src/com/android/server/telecom/tests/TelecomTestCase.java
@@ -16,11 +16,10 @@
 
 package com.android.server.telecom.tests;
 
-import com.android.server.telecom.Log;
-
 import org.mockito.MockitoAnnotations;
 
 import android.os.Handler;
+import android.telecom.Log;
 import android.test.AndroidTestCase;
 
 import java.util.concurrent.CountDownLatch;
@@ -37,8 +36,7 @@
         Log.setTag(TESTING_TAG);
         mMockitoHelper.setUp(getContext(), getClass());
         mComponentContextFixture = new ComponentContextFixture();
-        Log.setContext(mComponentContextFixture.getTestDouble().getApplicationContext());
-        Log.sCleanStaleSessions = null;
+        Log.setSessionContext(mComponentContextFixture.getTestDouble().getApplicationContext());
         MockitoAnnotations.initMocks(this);
     }
 
@@ -46,7 +44,6 @@
     public void tearDown() throws Exception {
         mComponentContextFixture = null;
         mMockitoHelper.tearDown();
-        Log.setTag(com.android.server.telecom.Log.TAG);
     }
 
     protected final void waitForHandlerAction(Handler h, long timeoutMillis) {
diff --git a/tests/src/com/android/server/telecom/tests/VideoCallTests.java b/tests/src/com/android/server/telecom/tests/VideoCallTests.java
index 0319e81..4764e92 100644
--- a/tests/src/com/android/server/telecom/tests/VideoCallTests.java
+++ b/tests/src/com/android/server/telecom/tests/VideoCallTests.java
@@ -25,7 +25,6 @@
 
 import com.android.server.telecom.CallAudioModeStateMachine;
 import com.android.server.telecom.CallAudioRouteStateMachine;
-import com.android.server.telecom.Log;
 
 import java.util.List;
 
diff --git a/tests/src/com/android/server/telecom/tests/VideoProviderTest.java b/tests/src/com/android/server/telecom/tests/VideoProviderTest.java
index 993679e..cca6446 100644
--- a/tests/src/com/android/server/telecom/tests/VideoProviderTest.java
+++ b/tests/src/com/android/server/telecom/tests/VideoProviderTest.java
@@ -16,8 +16,6 @@
 
 package com.android.server.telecom.tests;
 
-import com.android.server.telecom.Log;
-
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.Mockito;
@@ -25,21 +23,13 @@
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.Camera;
 import android.graphics.SurfaceTexture;
 import android.net.Uri;
 import android.os.Handler;
 import android.os.Looper;
-import android.telecom.Call;
-import android.telecom.CallAudioState;
-import android.telecom.Connection;
 import android.telecom.Connection.VideoProvider;
 import android.telecom.InCallService;
 import android.telecom.InCallService.VideoCall;
-import android.telecom.ParcelableCall;
-import android.telecom.TelecomManager;
 import android.telecom.VideoCallImpl;
 import android.telecom.VideoProfile;
 import android.telecom.VideoProfile.CameraCapabilities;
@@ -50,7 +40,6 @@
 
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.RunnableFuture;
 import java.util.concurrent.TimeUnit;
 
 import static android.test.MoreAsserts.assertEquals;
