Remove an old AudioManager hack
am: 5fbe88c436

Change-Id: I91542154698de12571f96440f8f1f90c94fc012d
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 6579106..4323274 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -212,6 +212,8 @@
                 <action android:name="com.android.server.telecom.ACTION_SEND_SMS_FROM_NOTIFICATION" />
                 <action android:name="com.android.server.telecom.ACTION_ANSWER_FROM_NOTIFICATION" />
                 <action android:name="com.android.server.telecom.ACTION_REJECT_FROM_NOTIFICATION" />
+                <action android:name="com.android.server.telecom.PROCEED_WITH_CALL" />
+                <action android:name="com.android.server.telecom.CANCEL_CALL" />
             </intent-filter>
         </receiver>
 
@@ -254,6 +256,14 @@
                 android:process=":ui">
         </activity>
 
+        <activity android:name=".ui.ConfirmCallDialogActivity"
+                android:configChanges="orientation|screenSize|keyboardHidden"
+                android:excludeFromRecents="true"
+                android:launchMode="singleInstance"
+                android:theme="@style/Theme.Telecomm.Transparent"
+                android:process=":ui">
+        </activity>
+
         <activity android:name=".components.ChangeDefaultDialerDialog"
                   android:label="@string/change_default_dialer_dialog_title"
                   android:excludeFromRecents="true"
@@ -265,7 +275,6 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-        <activity android:name=".testapps.IncomingSelfManagedCallActivity" />
 
         <receiver android:name=".components.PrimaryCallReceiver"
                 android:exported="true"
diff --git a/proto/telecom.proto b/proto/telecom.proto
index 06dd394..9fd64db 100644
--- a/proto/telecom.proto
+++ b/proto/telecom.proto
@@ -17,6 +17,7 @@
 
 message LogSessionTiming {
   enum SessionEntryPoint {
+    ENTRY_POINT_UNSPECIFIED = 0;
     ICA_ANSWER_CALL = 1;
     ICA_REJECT_CALL = 2;
     ICA_DISCONNECT_CALL = 3;
@@ -46,6 +47,7 @@
 message Event {
   // From android.telecom.ParcelableAnalytics
   enum EventName {
+    EVENT_NAME_UNSPECIFIED = 9999;
     SET_SELECT_PHONE_ACCOUNT = 0;
     SET_ACTIVE = 1;
     SET_DISCONNECTED = 2;
@@ -100,6 +102,7 @@
 message VideoEvent {
   // From android.telecom.ParcelableCallAnalytics
   enum VideoEventName {
+    VIDEO_EVENT_NAME_UNSPECIFIED = 9999;
     SEND_LOCAL_SESSION_MODIFY_REQUEST = 0;
     SEND_LOCAL_SESSION_MODIFY_RESPONSE = 1;
     RECEIVE_REMOTE_SESSION_MODIFY_REQUEST = 2;
@@ -108,11 +111,12 @@
 
   // From android.telecom.VideoProfile
   enum VideoState {
-     STATE_AUDIO_ONLY = 0;
-     STATE_TX_ENABLED = 1;
-     STATE_RX_ENABLED = 2;
-     STATE_BIDIRECTIONAL = 3;
-     STATE_PAUSED = 4;
+    // No unspecified field to define. This enum to be used only as values for a bitmask.
+    STATE_AUDIO_ONLY = 0;
+    STATE_TX_ENABLED = 1;
+    STATE_RX_ENABLED = 2;
+    STATE_BIDIRECTIONAL = 3;
+    STATE_PAUSED = 4;
   }
 
   // The ID of the event.
@@ -128,6 +132,7 @@
 
 message EventTimingEntry {
   enum EventTimingName {
+    EVENT_TIMING_NAME_UNSPECIFIED = 9999;
     ACCEPT_TIMING = 0;
     REJECT_TIMING = 1;
     DISCONNECT_TIMING = 2;
@@ -152,6 +157,7 @@
 message InCallServiceInfo {
   // Keep this up-to-date with com.android.server.telecom.InCallController.
   enum InCallServiceType {
+    IN_CALL_SERVICE_TYPE_UNSPECIFIED = 9999;
     IN_CALL_SERVICE_TYPE_INVALID = 0;
     IN_CALL_SERVICE_TYPE_DIALER_UI = 1;
     IN_CALL_SERVICE_TYPE_SYSTEM_UI = 2;
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 817f180..ccc7e28 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Oproep kan nie gemaak word nie weens jou <xliff:g id="OTHER_CALL">%1$s</xliff:g>-oproep."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Oproep kan nie gemaak word nie weens jou <xliff:g id="OTHER_CALL">%1$s</xliff:g>-oproepe."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Oproep kan nie gemaak word nie weens \'n oproep in \'n ander program."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Inkomende oproepe"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Gemiste oproepe"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"As jy hierdie oproep maak, sal dit jou <xliff:g id="OTHER_APP">%1$s</xliff:g>-oproep beëindig."</string>
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index eac4c0f..478fce5 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"በ<xliff:g id="OTHER_CALL">%1$s</xliff:g> ጥሪዎ ምክንያት ጥሪ መደረግ አይችልም።"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"በ<xliff:g id="OTHER_CALL">%1$s</xliff:g> ጥሪዎችዎ ምክንያት ጥሪዎች መደረግ አይችሉም።"</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"በሌላ መተግበሪያ ውስጥ ባለ ጥሪ ምክንያት ጥሪ መደረግ አይችልም።"</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"ገቢ ጥሪዎች"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"ያመለጡ ጥሪዎች"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"ይህን ጥሪ ማድረግ የ<xliff:g id="OTHER_APP">%1$s</xliff:g> ጥሪዎን ያቋርጣል።"</string>
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 9f58d87..286b73e 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"يتعذر إجراء المكالمة نتيجة لمكالمة <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"يتعذر إجراء المكالمة نتيجة لمكالمات <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"يتعذر إجراء المكالمة نتيجة لوجود مكالمة في تطبيق آخر."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"المكالمات الواردة"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"المكالمات الفائتة"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"يؤدي إجراء هذه المكالمة إلى إنهاء مكالمة <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az/strings.xml
similarity index 95%
rename from res/values-az-rAZ/strings.xml
rename to res/values-az/strings.xml
index 9d97681..ac3bf76 100644
--- a/res/values-az-rAZ/strings.xml
+++ b/res/values-az/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"<xliff:g id="OTHER_CALL">%1$s</xliff:g> zəngi səbəbilə çağrı edilə bilməz."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"<xliff:g id="OTHER_CALL">%1$s</xliff:g> zəngləri səbəbilə çağrı edilə bilməz."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Başqa bir tətbiqdəki zəng səbəbilə çağrı edilə bilməz."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Gələn zənglər"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Buraxılmış zənglər"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Bu zəngin yerləşdirilməsi <xliff:g id="OTHER_APP">%1$s</xliff:g> zəngini sonlandıracaq."</string>
 </resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 057b025..b59c29c 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="9166784827254469057">"Upravljanje telefonskim pozivima"</string>
+    <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šten poziv"</string>
@@ -45,7 +45,26 @@
     <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="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>
+    <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>
 </resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
new file mode 100644
index 0000000..5d44ed9
--- /dev/null
+++ b/res/values-be/strings.xml
@@ -0,0 +1,70 @@
+<?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 9204790..babb59c 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Не можете да се обадите заради обаждането си през <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Не можете да се обадите заради обажданията си през <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Не можете да се обадите заради обаждане в друго приложение."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Входящи обаждания"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Пропуснати обаждания"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Ако извършите това обаждане, обаждането ви през <xliff:g id="OTHER_APP">%1$s</xliff:g> ще прекъсне."</string>
 </resources>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn/strings.xml
similarity index 95%
rename from res/values-bn-rBD/strings.xml
rename to res/values-bn/strings.xml
index 92c7c55..00c5312 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"আপনার <xliff:g id="OTHER_CALL">%1$s</xliff:g> কলটির কারণে কলটি করা যাবে না।"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"আপনার <xliff:g id="OTHER_CALL">%1$s</xliff:g> কলগুলির কারণে কলটি করা যাবে না।"</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"অন্য একটি অ্যাপের কলের কারণে কলটি করা যাবে না।"</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"ইনকামিং কল"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"মিস করা কল"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"এই কলটির উত্তর দেওয়া হলে তা আপনার <xliff:g id="OTHER_APP">%1$s</xliff:g> কলটি কেটে যাবে৷"</string>
 </resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
new file mode 100644
index 0000000..e1571b3
--- /dev/null
+++ b/res/values-bs/strings.xml
@@ -0,0 +1,70 @@
+<?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">"Deblokirati <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g>?"</string>
+    <string name="unblock_button" msgid="3078048901972674170">"Deblokiraj"</string>
+    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Blokiraj pozive i tekstualne poruke od"</string>
+    <string name="add_blocked_number_hint" msgid="6847675097085433553">"Broj telefona"</string>
+    <string name="block_button" msgid="8822290682524373357">"Blokiraj"</string>
+    <string name="non_primary_user" msgid="5180129233352533459">"Samo vlasnik uređaja može pregledati i upravljati blokiranim brojevima."</string>
+    <string name="delete_icon_description" msgid="8903995728252556724">"Deblokiraj"</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 deblokiran"</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 014dfc3..3776db9 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -67,17 +67,20 @@
     <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="notification_incoming_call" msgid="7713197997773986670">"<xliff:g id="CALL_FROM">%2$s</xliff:g> està fent una trucada mitjançant <xliff:g id="CALL_VIA">%1$s</xliff:g>"</string>
-    <string name="notification_incoming_video_call" msgid="6638486071698373893">"<xliff:g id="CALL_FROM">%2$s</xliff:g> està fent una videotrucada mitjançant <xliff:g id="CALL_VIA">%1$s</xliff:g>"</string>
-    <string name="answering_ends_other_call" msgid="8282145910153766401">"En respondre, finalitzarà la trucada mitjançant <xliff:g id="CALL_VIA">%1$s</xliff:g>"</string>
-    <string name="answering_ends_other_calls" msgid="1198589551399049197">"En respondre, finalitzaran les trucades mitjançant <xliff:g id="CALL_VIA">%1$s</xliff:g>"</string>
-    <string name="answering_ends_other_video_call" msgid="8510410917384186360">"En respondre, finalitzarà la videotrucada mitjançant <xliff:g id="CALL_VIA">%1$s</xliff:g>"</string>
+    <string name="notification_incoming_call" msgid="7713197997773986670">"<xliff:g id="CALL_FROM">%2$s</xliff:g> et truca a <xliff:g id="CALL_VIA">%1$s</xliff:g>"</string>
+    <string name="notification_incoming_video_call" msgid="6638486071698373893">"<xliff:g id="CALL_FROM">%2$s</xliff:g> et sol·licita una videotrucada a <xliff:g id="CALL_VIA">%1$s</xliff:g>"</string>
+    <string name="answering_ends_other_call" msgid="8282145910153766401">"En respondre, finalitzarà la trucada a <xliff:g id="CALL_VIA">%1$s</xliff:g>"</string>
+    <string name="answering_ends_other_calls" msgid="1198589551399049197">"En respondre, finalitzaran les trucades a <xliff:g id="CALL_VIA">%1$s</xliff:g>"</string>
+    <string name="answering_ends_other_video_call" msgid="8510410917384186360">"En respondre, finalitzarà la videotrucada a <xliff:g id="CALL_VIA">%1$s</xliff:g>"</string>
     <string name="answering_ends_other_managed_call" msgid="5186137550267947785">"En respondre, finalitzarà la trucada en curs"</string>
     <string name="answering_ends_other_managed_calls" msgid="6429838309560397988">"En respondre, finalitzaran les trucades en curs"</string>
     <string name="answering_ends_other_managed_video_call" msgid="1585423762458248435">"En respondre, finalitzarà la videotrucada en curs"</string>
     <string name="answer_incoming_call" msgid="4140530013111794587">"Respon"</string>
     <string name="decline_incoming_call" msgid="806026168661598368">"Rebutja"</string>
-    <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"No es pot trucar perquè ja hi ha una trucada en curs mitjançant <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
-    <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"No es pot trucar perquè ja hi ha trucades en curs mitjançant <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
+    <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"No es pot trucar perquè ja hi ha una trucada en curs a <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
+    <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"No es pot trucar perquè ja hi ha trucades en curs a <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"No es pot trucar perquè ja hi ha una trucada en curs en una altra aplicació."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Trucades entrants"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Trucades perdudes"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"En fer aquesta trucada, finalitzarà la de l\'aplicació <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 3af902b..2a9ac60 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Hovor není možné provést kvůli hovoru <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Hovor není možné provést kvůli hovorům <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Hovor není možné provést kvůli hovoru v jiné aplikaci."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Příchozí hovory"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Zmeškané hovory"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Uskutečněním tohoto hovoru ukončíte hovor <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 99efe3d..ca762e0 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -50,7 +50,7 @@
     <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="blocked_numbers_msg" msgid="1045015186124965643">"Du modtager ikke opkald og 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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Opkaldet kan ikke foretages på grund af dit opkald i <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Opkaldet kan ikke foretages på grund af dine opkald i <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Opkaldet kan ikke foretages på grund et opkald i en anden app."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Indgående opkald"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Ubesvarede opkald"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Hvis du foretager dette opkald, afsluttes dit opkald i <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 39ed174..f0a4b75 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Dieser Anruf kann aufgrund des Anrufs in <xliff:g id="OTHER_CALL">%1$s</xliff:g> nicht getätigt werden."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Dieser Anruf kann aufgrund deiner Anrufe in <xliff:g id="OTHER_CALL">%1$s</xliff:g> nicht getätigt werden."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Dieser Anruf kann aufgrund eines Anrufs in einer anderen App nicht getätigt werden."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Eingehende Anrufe"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Entgangene Anrufe"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Durch diesen Anruf wird der Anruf in <xliff:g id="OTHER_APP">%1$s</xliff:g> beendet."</string>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 02f43d2..5dd11d5 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Δεν είναι δυνατή η πραγματοποίηση της κλήσης, λόγω της κλήσης σας μέσω <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Δεν είναι δυνατή η πραγματοποίηση της κλήσης, λόγω των κλήσεών σας μέσω <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Δεν είναι δυνατή η πραγματοποίηση της κλήσης, λόγω κάποιας κλήσης μέσω άλλης εφαρμογής."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Εισερχόμενες κλήσεις"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Αναπάντητες κλήσεις"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Εάν πραγματοποιήσετε αυτήν την κλήση, η κλήση σας μέσω <xliff:g id="OTHER_APP">%1$s</xliff:g> θα τερματιστεί."</string>
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 86570e1..7d344f1 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Call cannot be placed due to your <xliff:g id="OTHER_CALL">%1$s</xliff:g> call."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Call cannot be placed due to your <xliff:g id="OTHER_CALL">%1$s</xliff:g> calls."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Call cannot be placed due to a call in another app."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Incoming calls"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Missed calls"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Placing this call will end your <xliff:g id="OTHER_APP">%1$s</xliff:g> call."</string>
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 86570e1..7d344f1 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Call cannot be placed due to your <xliff:g id="OTHER_CALL">%1$s</xliff:g> call."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Call cannot be placed due to your <xliff:g id="OTHER_CALL">%1$s</xliff:g> calls."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Call cannot be placed due to a call in another app."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Incoming calls"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Missed calls"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Placing this call will end your <xliff:g id="OTHER_APP">%1$s</xliff:g> call."</string>
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 86570e1..7d344f1 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Call cannot be placed due to your <xliff:g id="OTHER_CALL">%1$s</xliff:g> call."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Call cannot be placed due to your <xliff:g id="OTHER_CALL">%1$s</xliff:g> calls."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Call cannot be placed due to a call in another app."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Incoming calls"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Missed calls"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Placing this call will end your <xliff:g id="OTHER_APP">%1$s</xliff:g> call."</string>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 8f4ac36..fc35dcf 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -29,7 +29,7 @@
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Llamada silenciada"</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Altavoz habilitado"</string>
     <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"No puedo hablar ahora. ¿Todo bien?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Te llamo enseguida."</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Te llamo en seguida."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Te llamo más tarde."</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"No puedo hablar ahora. ¿Me llamas más tarde?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Respuestas rápidas"</string>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"No se puede realizar la llamada porque hay una llamada en curso en <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"No se puede realizar la llamada porque hay otras llamadas en curso en <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"No se puede realizar la llamada porque hay una llamada en curso en otra app."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Llamadas entrantes"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Llamadas perdidas"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Si realizas esta llamada, finalizará la de <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index dfc956f..3c08971 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"No puedes llamar porque tienes una llamada de <xliff:g id="OTHER_CALL">%1$s</xliff:g> en curso."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"No puedes llamar porque tienes varias llamadas de <xliff:g id="OTHER_CALL">%1$s</xliff:g> en curso."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"No puedes llamar porque tienes una llamada en curso en otra aplicación."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Llamadas entrantes"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Llamadas perdidas"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Si haces esta llamada, se finalizará la de <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et/strings.xml
similarity index 95%
rename from res/values-et-rEE/strings.xml
rename to res/values-et/strings.xml
index ccc7b9f..70a4cf4 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Kõnet ei saa teenuse <xliff:g id="OTHER_CALL">%1$s</xliff:g> kõne tõttu teha."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Kõnet ei saa teenuse <xliff:g id="OTHER_CALL">%1$s</xliff:g> kõnede tõttu teha."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Kõnet ei saa teise rakenduse kõne tõttu teha."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Sissetulevad kõned"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Vastamata kõned"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Selle kõne tegemisel lõpetatakse pooleliolev kõne rakenduses <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu/strings.xml
similarity index 94%
rename from res/values-eu-rES/strings.xml
rename to res/values-eu/strings.xml
index 44913c3..eb97fe5 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu/strings.xml
@@ -45,10 +45,10 @@
     <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_title" msgid="9101655962941740507">"Telefonoa aplikazio lehenetsia <xliff:g id="NEW_APP">%s</xliff:g> 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="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 Telefonoa 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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Ezin da egin deia, beste dei bat abian delako <xliff:g id="OTHER_CALL">%1$s</xliff:g> zerbitzuan."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Ezin da egin deia, beste dei batzuk abian direlako <xliff:g id="OTHER_CALL">%1$s</xliff:g> zerbitzuan."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Ezin da egin deia, beste dei bat abian delako beste aplikazio batean."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Jasotako deiak"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Dei galduak"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Dei hau egiten baduzu, amaitu egingo da <xliff:g id="OTHER_APP">%1$s</xliff:g> aplikazioko deia."</string>
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index e5f6b5c..80754b8 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"به دلیل تماس <xliff:g id="OTHER_CALL">%1$s</xliff:g>، نمی‌توان تماسی برقرار کرد."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"به دلیل تماس‌های <xliff:g id="OTHER_CALL">%1$s</xliff:g>، نمی‌توان تماسی برقرار کرد."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"به دلیل تماسی در برنامه دیگر، نمی‌توان تماسی برقرار کرد."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"تماس‌های ورودی"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"تماس‌های بی‌پاسخ"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"اگر این تماس را برقرار کنید، تماس <xliff:g id="OTHER_APP">%1$s</xliff:g> شما قطع می‌شود."</string>
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 3afe236..d65e584 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Puhelua ei voi soittaa, koska toisessa sovelluksessa (<xliff:g id="OTHER_CALL">%1$s</xliff:g>) on puhelu käynnissä."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Puhelua ei voi soittaa, koska toisessa sovelluksessa (<xliff:g id="OTHER_CALL">%1$s</xliff:g>) on puheluja käynnissä."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Puhelua ei voi soittaa, koska toisessa sovelluksessa on puhelu käynnissä."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Saapuvat puhelut"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Vastaamattomat puhelut"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Tämän puhelun soittaminen päättää puhelun sovelluksessa <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index c87e048..7cba712 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Impossible de faire l\'appel en raison de votre appel <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Impossible de faire l\'appel en raison de vos appels <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Impossible de faire l\'appel en raison d\'un appel dans une autre application."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Appels entrants"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Appels manqués"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Si vous passez cet appel, vous mettrez fin à l\'appel <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index a385d4c..12701d8 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -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">"Modifier les réponses 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>
@@ -54,7 +54,7 @@
     <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_dialog_body" msgid="9030243212265516828">"Bloquer les appels et les SMS provenant du numéro :"</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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Vous ne pouvez pas passer cet appel, car vous avez une communication en cours dans <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Vous ne pouvez pas passer cet appel, car vous avez des communications en cours dans <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Vous ne pouvez pas passer cet appel, car vous avez une communication en cours dans une autre application."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Appels entrants"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Appels manqués"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Si vous passez cet appel, vous mettrez fin à celui qui est en cours dans l\'application <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl/strings.xml
similarity index 95%
rename from res/values-gl-rES/strings.xml
rename to res/values-gl/strings.xml
index 7dd4aa8..190b5aa 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Non se pode realizar a chamada porque hai unha chamada en curso en <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Non se pode realizar a chamada porque hai chamadas en curso en <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Non se pode realizar a chamada porque hai chamadas en curso noutra aplicación."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Chamadas entrantes"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Chamadas perdidas"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Ao facer esta chamada, finalizarase o túa chamada de <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu/strings.xml
similarity index 96%
rename from res/values-gu-rIN/strings.xml
rename to res/values-gu/strings.xml
index 1f0c4a1..daa3945 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"તમારા <xliff:g id="OTHER_CALL">%1$s</xliff:g> કૉલને કારણે કૉલ કરી શકતાં નથી."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"તમારા <xliff:g id="OTHER_CALL">%1$s</xliff:g> કૉલને કારણે કૉલ કરી શકતાં નથી."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"અન્ય ઍપ્લિકેશનમાં કૉલને કારણે કૉલ કરી શકતાં નથી."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"ઇનકમિંગ કૉલ"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"છૂટેલા કૉલ"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"આ કૉલ કરવાથી તમારો <xliff:g id="OTHER_APP">%1$s</xliff:g> કૉલ સમાપ્ત થઈ જશે."</string>
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 1e660c2..2c4dd3c 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -50,8 +50,8 @@
     <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="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>
@@ -78,6 +78,9 @@
     <string name="answer_incoming_call" msgid="4140530013111794587">"उत्तर दें"</string>
     <string name="decline_incoming_call" msgid="806026168661598368">"अस्वीकार करें"</string>
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"आपके <xliff:g id="OTHER_CALL">%1$s</xliff:g> कॉल के कारण कॉल नहीं लगाया जा सकता."</string>
-    <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"आपके <xliff:g id="OTHER_CALL">%1$s</xliff:g> कॉल के कारण कॉल नहीं लगाए जा सकते."</string>
+    <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"आपके <xliff:g id="OTHER_CALL">%1$s</xliff:g> कॉल के कारण कॉल नहीं लगाया जा सकता."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"किसी दूसरे ऐप्लिकेशन में कॉल के कारण कॉल नहीं लगाया जा सकता."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"इनकमिंग कॉल"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"छूटे कॉल"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"इस कॉल को करने से आपका <xliff:g id="OTHER_APP">%1$s</xliff:g> कॉल समाप्त हो जाएगा."</string>
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 45024fe..6889507 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -29,9 +29,9 @@
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Zvuk poziva 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">"Sada ne mogu razgovarati. Što ima?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Nazvat ću vas odmah."</string>
-    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Zvat ću vas kasnije."</string>
-    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Sada ne mogu razgovarati. Nazovite me kasnije."</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Zovem čim stignem."</string>
+    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Nazvat ću kasnije."</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Sad ne mogu razgovarati. Čujemo se kasnije."</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Brzi odgovori"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Uređivanje brzih odgovora"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Poziv se ne može uspostaviti zbog poziva u aplikaciji <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Poziv se ne može uspostaviti zbog poziva u aplikaciji <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Poziv se ne može uspostaviti zbog poziva u drugoj aplikaciji."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Dolazni pozivi"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Propušteni pozivi"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Upućivanjem ovog poziva prekinut ćete poziv u aplikaciji <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 14e543b..26d0c42 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -38,7 +38,7 @@
     <string name="respond_via_sms_edittext_dialog_title" msgid="20379890418289778">"Gyors válasz"</string>
     <string name="respond_via_sms_confirmation_format" msgid="7229149977515784269">"Üzenet elküldve ide: <xliff:g id="PHONE_NUMBER">%s</xliff:g>."</string>
     <string name="enable_account_preference_title" msgid="2021848090086481720">"Telefonos fiókok"</string>
-    <string name="outgoing_call_not_allowed_user_restriction" msgid="6872406278300131364">"Csak vészhívás engedélyezett."</string>
+    <string name="outgoing_call_not_allowed_user_restriction" msgid="6872406278300131364">"Csak segélyhívás engedélyezett."</string>
     <string name="outgoing_call_not_allowed_no_permission" msgid="1996571596464271228">"Az alkalmazásból nem lehet kimenő hívást kezdeményezni a Telefon (Phone) engedély nélkül."</string>
     <string name="outgoing_call_error_no_phone_number_supplied" msgid="1940125199802007505">"Hívásindításhoz adjon meg egy érvényes számot."</string>
     <string name="duplicate_video_call_not_allowed" msgid="3749211605014548386">"Jelenleg nem lehet videohívást hozzáadni."</string>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"A(z) <xliff:g id="OTHER_CALL">%1$s</xliff:g>-hívás miatt nem indítható hívás."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"A(z) <xliff:g id="OTHER_CALL">%1$s</xliff:g>-hívások miatt nem indítható hívás."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Egy másik alkalmazásban folytatott hívás miatt nem indítható hívás."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Beérkező hívások"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Nem fogadott hívások"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Ha hívást indít, azzal megszakítja a(z) <xliff:g id="OTHER_APP">%1$s</xliff:g>-hívást."</string>
 </resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy/strings.xml
similarity index 93%
rename from res/values-hy-rAM/strings.xml
rename to res/values-hy/strings.xml
index 7d30f73..c768e8d 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy/strings.xml
@@ -28,12 +28,12 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Ուղարկել հաղորդագրություն"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"Զանգը խլացված է:"</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"Բարձրախոսը միացված է:"</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Չեմ կարող խոսել հիմա: Ի՞նչ կա չկա:"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"Հիմա չեմ կարող խոսել: Ի՞նչ կա:"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"Ես ձեզ հիմա հետ կզանգեմ:"</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"Ես ձեզ մի փոքր ուշ կզանգեմ:"</string>
     <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"Չեմ կարող խոսել հիմա: Կզանգե՞ք ավելի ուշ:"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Արագ պատասխաններ"</string>
-    <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"Խմբագրել արագ պատասխանները"</string>
+    <string name="respond_via_sms_setting_title_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>
@@ -54,7 +54,7 @@
     <string name="block_number" msgid="1101252256321306179">"Ավելացնել համար"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"Արգելաբացե՞լ <xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> համարը:"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Արգելաբացել"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Արգելափակել այս համարից ուղարկված զանգերն ու հաղորդագրությունները՝"</string>
+    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Արգելափակել զանգերն ու հաղորդագրությունները այս համարից"</string>
     <string name="add_blocked_number_hint" msgid="6847675097085433553">"Հեռախոսահամարը"</string>
     <string name="block_button" msgid="8822290682524373357">"Արգելափակել"</string>
     <string name="non_primary_user" msgid="5180129233352533459">"Միայն սարքի սեփականատերը կարող է դիտել և կառավարել արգելափակված համարները:"</string>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Զանգը հնարավոր չէ կատարել՝ <xliff:g id="OTHER_CALL">%1$s</xliff:g>-ի ընթացիկ զանգի պատճառով:"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Զանգը հնարավոր չէ կատարել՝ <xliff:g id="OTHER_CALL">%1$s</xliff:g>-ի ընթացիկ զանգերի պատճառով:"</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Զանգը հնարավոր չէ կատարել՝ մեկ այլ հավելվածի ընթացիկ զանգի պատճառով:"</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Մուտքային զանգեր"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Բաց թողնված զանգեր"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Այս զանգը կատարելու դեպքում <xliff:g id="OTHER_APP">%1$s</xliff:g>-ի ընթացիկ զանգը կընդհատվի"</string>
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 94f8332..5fdf63b 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -51,7 +51,7 @@
     <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="block_number" msgid="1101252256321306179">"Tambahkan 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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Panggilan tidak dapat dilakukan karena panggilan <xliff:g id="OTHER_CALL">%1$s</xliff:g> Anda."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Panggilan tidak dapat dilakukan karena panggilan <xliff:g id="OTHER_CALL">%1$s</xliff:g> Anda."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Panggilan tidak dapat dilakukan karena adanya panggilan di aplikasi lain."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Panggilan masuk"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Panggilan tak terjawab"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Melakukan panggilan ini akan mengakhiri panggilan <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is/strings.xml
similarity index 95%
rename from res/values-is-rIS/strings.xml
rename to res/values-is/strings.xml
index 9343c23..743aa5a 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Ekki er hægt að hringja sökum símtalsins með <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Ekki er hægt að hringja sökum símtala með <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Ekki er hægt að hringja sökum símtals í öðru forriti."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Móttekin símtöl"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Ósvöruð símtöl"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Ef þú hringir mun þessu símtali í <xliff:g id="OTHER_APP">%1$s</xliff:g> ljúka."</string>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 771d094..af92640 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Impossibile effettuare la chiamata a causa della chiamata <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Impossibile effettuare la chiamata a causa delle chiamate <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Impossibile effettuare la chiamata a causa di una chiamata in un\'altra app."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Chiamate in arrivo"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Chiamate perse"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Se effettui questa chiamata, la chiamata di <xliff:g id="OTHER_APP">%1$s</xliff:g> verrà terminata."</string>
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index b255a4b..a68ceee 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -28,12 +28,12 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"שלח הודעה"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"שיחה מושתקת."</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"רמקול מופעל."</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"אני לא יכול לדבר עכשיו. מה קורה?"</string>
-    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"אני מיד חוזר אליך."</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"לא נוח לי עכשיו. מה קורה?"</string>
+    <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"תיכף אחזור אליך."</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"אני אתקשר אליך יותר מאוחר."</string>
-    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"אני לא יכול לדבר עכשיו. תתקשר אלי מאוחר יותר?"</string>
+    <string name="respond_via_sms_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>
@@ -50,8 +50,8 @@
     <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="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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"אי אפשר להתקשר בגלל שיש שיחה ב-<xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"אי אפשר להתקשר בגלל שיש שיחות ב-<xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"אי אפשר להתקשר בגלל שיש שיחה באפליקציה אחרת."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"שיחות נכנסות"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"שיחות שלא נענו"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"ביצוע השיחה הזו יסיים את השיחה ב-<xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index bf32515..7b50130 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"<xliff:g id="OTHER_CALL">%1$s</xliff:g> で通話中のため、この通話を発信することはできません。"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"<xliff:g id="OTHER_CALL">%1$s</xliff:g> で通話中のため、この通話を発信することはできません。"</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"別のアプリで通話中のため、この通話を発信することはできません。"</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"着信"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"不在着信"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"この通話を発信すると、<xliff:g id="OTHER_APP">%1$s</xliff:g> の通話が終了します。"</string>
 </resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka/strings.xml
similarity index 95%
rename from res/values-ka-rGE/strings.xml
rename to res/values-ka/strings.xml
index 2710896..34dc303 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"ზარი ვერ ხორციელდება <xliff:g id="OTHER_CALL">%1$s</xliff:g> ზარის გამო."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"ზარი ვერ ხორციელდება <xliff:g id="OTHER_CALL">%1$s</xliff:g> ზარების გამო."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"ზარი ვერ ხორციელდება ზარის გამო სხვა აპში."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"შემომავალი ზარები"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"გამოტოვებული ზარები"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"ამ ზარის განხორციელება თქვენს <xliff:g id="OTHER_APP">%1$s</xliff:g> ზარს დაასრულებს."</string>
 </resources>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk/strings.xml
similarity index 95%
rename from res/values-kk-rKZ/strings.xml
rename to res/values-kk/strings.xml
index 39aabd9..aa98d40 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Қоңырау шалу мүмкін емес, себебі <xliff:g id="OTHER_CALL">%1$s</xliff:g> қоңырауы белсенді."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Қоңырау шалу мүмкін емес, себебі <xliff:g id="OTHER_CALL">%1$s</xliff:g> қоңыраулары белсенді."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Қоңырау шалу мүмкін емес, себебі басқа қолданбадан қоңырау шалынуда."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Кіріс қоңыраулары"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Қабылданбаған қоңыраулар"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Жаңа қоңырау шалу <xliff:g id="OTHER_APP">%1$s</xliff:g> қоңырауын тоқтатады."</string>
 </resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km/strings.xml
similarity index 95%
rename from res/values-km-rKH/strings.xml
rename to res/values-km/strings.xml
index 1dd79d5..e9f3cff 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km/strings.xml
@@ -37,7 +37,7 @@
     <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="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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"ការ​ហៅ​មិន​អាចធ្វើ​បាន​ទេ ដោយ​សារ​ការហៅ​ <xliff:g id="OTHER_CALL">%1$s</xliff:g> របស់​អ្នក។"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"ការ​ហៅ​មិន​អាច​ធ្វើ​បាន​ទេ ដោយ​សារ​ការ​ហៅ <xliff:g id="OTHER_CALL">%1$s</xliff:g> របស់​អ្នក។"</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"ការ​ហៅ​មិន​អាច​ធ្វើ​បាន​ទេ ដោយ​សារ​មាន​ការហៅ​មួយ​នៅ​ក្នុង​កម្មវិធី​ផ្សេង។"</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"ការ​ហៅ​ចូល"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"ការ​ហៅ​ដែល​មិន​បាន​ទទួល"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"ការ​ហៅ​ទូរសព្ទ​នេះ នឹង​បញ្ចប់​ការហៅ <xliff:g id="OTHER_APP">%1$s</xliff:g> របស់​អ្នក។"</string>
 </resources>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn/strings.xml
similarity index 94%
rename from res/values-kn-rIN/strings.xml
rename to res/values-kn/strings.xml
index d3d4acd..9dd0f09 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn/strings.xml
@@ -21,8 +21,8 @@
     <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_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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"ನಿಮ್ಮ <xliff:g id="OTHER_CALL">%1$s</xliff:g> ಕರೆ ಇರುವ ಕಾರಣ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"ನಿಮ್ಮ <xliff:g id="OTHER_CALL">%1$s</xliff:g> ಕರೆಗಳ ಕಾರಣ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"ಬೇರೊಂದು ಅಪ್ಲಿಕೇಶನ್‍ನಲ್ಲಿ ಕರೆಯಲ್ಲಿರುವುದರಿಂದ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"ಒಳಬರುವ ಕರೆಗಳು"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"ಮಿಸ್ಡ್‌ ಕರೆಗಳು"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"ಈ ಕರೆಯನ್ನು ಮಾಡುವುದರಿಂದ ನಿಮ್ಮ <xliff:g id="OTHER_APP">%1$s</xliff:g> ಕರೆಯು ಅಂತ್ಯಗೊಳ್ಳುತ್ತದೆ."</string>
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 50bd0ff..33e1c40 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"<xliff:g id="OTHER_CALL">%1$s</xliff:g> 통화 중이므로 전화를 걸 수 없습니다."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"<xliff:g id="OTHER_CALL">%1$s</xliff:g> 통화 중이므로 전화를 걸 수 없습니다."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"다른 앱에서 통화 중이므로 전화를 걸 수 없습니다."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"수신 전화"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"부재중 전화"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"이 전화를 걸면 현재 <xliff:g id="OTHER_APP">%1$s</xliff:g>에서 진행 중인 통화가 종료됩니다."</string>
 </resources>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky/strings.xml
similarity index 95%
rename from res/values-ky-rKG/strings.xml
rename to res/values-ky/strings.xml
index e682a89..b973486 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Учурда <xliff:g id="OTHER_CALL">%1$s</xliff:g> чалууңуздан улам, башка жерге чала албайсыз."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Учурда <xliff:g id="OTHER_CALL">%1$s</xliff:g> чалууларыңуздан улам, башка жерге чала албайсыз."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Башка колдонмодо чалып жатасыз, ошондуктан чала албайсыз."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Кирүүчү чалуулар"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Кабыл алынбаган чалуулар"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Эгер чалып баштасаңыз, <xliff:g id="OTHER_APP">%1$s</xliff:g> чалууңуз аяктайт."</string>
 </resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo/strings.xml
similarity index 95%
rename from res/values-lo-rLA/strings.xml
rename to res/values-lo/strings.xml
index aca15bb..0b7a3b6 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"ບໍ່ສາມາດໂທອອກໄດ້ເນື່ອງຈາກການໂທ <xliff:g id="OTHER_CALL">%1$s</xliff:g> ຂອງທ່ານ"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"ບໍ່ສາມາດໂທອອກໄດ້ເນື່ອງຈາກການໂທ <xliff:g id="OTHER_CALL">%1$s</xliff:g> ຂອງທ່ານ"</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"ບໍ່ສາມາດໂທອອກໄດ້ເນື່ອງຈາກສາຍໃນແອັບອື່ນ."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"ສາຍໂທເຂົ້າ"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"ສາຍບໍ່ໄດ້ຮັບ"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"ການໂທສາຍນີ້ຈະເປັນການສິ້ນສຸດສາຍ <xliff:g id="OTHER_APP">%1$s</xliff:g> ຂອງທ່ານ."</string>
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index c0f7d5e..45f125c 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Negalima skambinti dėl „<xliff:g id="OTHER_CALL">%1$s</xliff:g>“ skambučio."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Negalima skambinti dėl „<xliff:g id="OTHER_CALL">%1$s</xliff:g>“ skambučių."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Negalima skambinti dėl skambučio kitoje programoje."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Gaunamieji skambučiai"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Praleisti skambučiai"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Atliekant šį skambutį bus užbaigtas „<xliff:g id="OTHER_APP">%1$s</xliff:g>“ skambutis."</string>
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 3e79f8d..db710d5 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Nevar veikt zvanu notiekoša <xliff:g id="OTHER_CALL">%1$s</xliff:g> zvana dēļ."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Nevar veikt zvanu notiekošu <xliff:g id="OTHER_CALL">%1$s</xliff:g> zvanu dēļ."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Nevar veikt zvanu citā lietotnē notiekoša zvana dēļ."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Ienākošie zvani"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Neatbildētie zvani"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Veicot šo zvanu, tiks beigts zvans lietotnē <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk/strings.xml
similarity index 94%
rename from res/values-mk-rMK/strings.xml
rename to res/values-mk/strings.xml
index 16e8c71..a8debe9 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk/strings.xml
@@ -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>
@@ -43,7 +43,7 @@
     <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">"Нема мемориран број на говорна пошта на СИМ картичката."</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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Не може да се воспостави повик поради вашиот повик на <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Не може да се воспостави повик поради вашите повици на <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Не може да се воспостави повик поради вашиот повик на друга апликација."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Дојдовни повици"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Пропуштени повици"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Ако се воспостави повиков, вашиот повик на <xliff:g id="OTHER_APP">%1$s</xliff:g> ќе заврши."</string>
 </resources>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml/strings.xml
similarity index 95%
rename from res/values-ml-rIN/strings.xml
rename to res/values-ml/strings.xml
index c0b53b6..d604690 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"നിങ്ങളുടെ <xliff:g id="OTHER_CALL">%1$s</xliff:g> കോൾ കാരണം കോൾ ചെയ്യാനായില്ല."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"നിങ്ങളുടെ <xliff:g id="OTHER_CALL">%1$s</xliff:g> കോളുകൾ കാരണം കോൾ ചെയ്യാനായില്ല."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"മറ്റൊരു ആപ്പിലുള്ള കോൾ കാരണം കോൾ ചെയ്യാനായില്ല."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"ഇൻകമിംഗ് കോളുകൾ"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"മിസ്‌ഡ് കോളുകൾ"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"ഈ കോൾ ചെയ്യുന്നത് നിങ്ങളുടെ <xliff:g id="OTHER_APP">%1$s</xliff:g> കോൾ അവസാനിക്കാനിടയാക്കും."</string>
 </resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn/strings.xml
similarity index 95%
rename from res/values-mn-rMN/strings.xml
rename to res/values-mn/strings.xml
index eb495ca..82b4ebd 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Таны <xliff:g id="OTHER_CALL">%1$s</xliff:g> дуудлагаас шалтгаалан дуудлага хийх боломжгүй байна."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Таны <xliff:g id="OTHER_CALL">%1$s</xliff:g> дуудлагаас шалтгаалан дуудлага хийх боломжгүй байна."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Өөр апп доторх дуудлагаас шалтгаалан дуудлага хийх боломжгүй байна."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Ирж буй дуудлага"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Аваагүй дуудлага"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Энэ дуудлагыг хийснээр таны <xliff:g id="OTHER_APP">%1$s</xliff:g> дуудлагыг дуусгана."</string>
 </resources>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr/strings.xml
similarity index 96%
rename from res/values-mr-rIN/strings.xml
rename to res/values-mr/strings.xml
index 12a2c7c..8bf0a6d 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"आपल्या <xliff:g id="OTHER_CALL">%1$s</xliff:g> कॉलमुळे कॉल केला जाऊ शकत नाही."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"आपल्या <xliff:g id="OTHER_CALL">%1$s</xliff:g> कॉलमुळे कॉल केला जाऊ शकत नाही."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"दुसर्‍या अॅपमधील कॉलमुळे कॉल केला जाऊ शकत नाही."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"येणारे कॉल"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"सुटलेले कॉल"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"हा कॉल केल्याने आपला <xliff:g id="OTHER_APP">%1$s</xliff:g> कॉल समाप्त होईल."</string>
 </resources>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms/strings.xml
similarity index 95%
rename from res/values-ms-rMY/strings.xml
rename to res/values-ms/strings.xml
index 51ec863..8c59a02 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Panggilan tidak dapat dibuat disebabkan panggilan <xliff:g id="OTHER_CALL">%1$s</xliff:g> anda."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Panggilan tidak dapat dibuat disebabkan panggilan <xliff:g id="OTHER_CALL">%1$s</xliff:g> anda."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Panggilan tidak dapat dibuat disebabkan panggilan dalam apl lain."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Panggilan masuk"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Panggilan tidak dijawab"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Membuat panggilan ini akan menamatkan panggilan <xliff:g id="OTHER_APP">%1$s</xliff:g> anda."</string>
 </resources>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my/strings.xml
similarity index 76%
rename from res/values-my-rMM/strings.xml
rename to res/values-my/strings.xml
index 28c902d..165dd0e 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my/strings.xml
@@ -49,8 +49,8 @@
     <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="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>
@@ -67,17 +67,20 @@
     <string name="blocked_numbers_block_emergency_number_message" msgid="917851876780698387">"အရေးပေါ်နံပါတ်ကို  ပိတ်ဆို့၍ မရပါ။"</string>
     <string name="blocked_numbers_number_already_blocked_message" msgid="4392247814500811798">"<xliff:g id="BLOCKED_NUMBER">%1$s</xliff:g> ကို ပိတ်ဆို့ထားပြီး ဖြစ်သည်။"</string>
     <string name="toast_personal_call_msg" msgid="5115361633476779723">"ဖုန်းခေါ်ဆိုမှုပြုလုပ်ရန် ကိုယ်ရေးကိုယ်တာ ဖုန်းခေါ်ဆိုမှုစနစ်ကို အသုံးပြုခြင်း"</string>
-    <string name="notification_incoming_call" msgid="7713197997773986670">"<xliff:g id="CALL_FROM">%2$s</xliff:g> ထံမှ <xliff:g id="CALL_VIA">%1$s</xliff:g> ခေါ်ဆိုမှု"</string>
-    <string name="notification_incoming_video_call" msgid="6638486071698373893">"<xliff:g id="CALL_FROM">%2$s</xliff:g> ထံမှ <xliff:g id="CALL_VIA">%1$s</xliff:g> ဗီဒီယိုခေါ်ဆိုမှု"</string>
-    <string name="answering_ends_other_call" msgid="8282145910153766401">"ဖြေကြားခြင်းက သင်၏ <xliff:g id="CALL_VIA">%1$s</xliff:g> ခေါ်ဆိုမှုကို ဖြတ်တောက်ပါမည်"</string>
-    <string name="answering_ends_other_calls" msgid="1198589551399049197">"ဖြေကြားခြင်းက သင်၏ <xliff:g id="CALL_VIA">%1$s</xliff:g> ခေါ်ဆိုမှုများကို ဖြတ်တောက်ပါမည်"</string>
-    <string name="answering_ends_other_video_call" msgid="8510410917384186360">"ဖြေကြားခြင်းက သင်၏ <xliff:g id="CALL_VIA">%1$s</xliff:g> ဗီဒီယိုခေါ်ဆိုမှုကို ဖြတ်တောက်ပါမည်"</string>
-    <string name="answering_ends_other_managed_call" msgid="5186137550267947785">"ဖြေကြားခြင်းက သင်၏လက်ရှိခေါ်ဆိုမှုကို ဖြတ်တောက်ပါမည်"</string>
-    <string name="answering_ends_other_managed_calls" msgid="6429838309560397988">"ဖြေကြားခြင်းက သင်၏လက်ရှိခေါ်ဆိုမှုများကို ဖြတ်တောက်ပါမည်"</string>
-    <string name="answering_ends_other_managed_video_call" msgid="1585423762458248435">"ဖြေကြားခြင်းက သင်၏လက်ရှိဗီဒီယိုခေါ်ဆိုမှုကို ဖြတ်တောက်ပါမည်"</string>
-    <string name="answer_incoming_call" msgid="4140530013111794587">"ဖြေကြားရန်"</string>
-    <string name="decline_incoming_call" msgid="806026168661598368">"ငြင်းပယ်ရန်"</string>
-    <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"သင်၏ <xliff:g id="OTHER_CALL">%1$s</xliff:g> ခေါ်ဆိုမှုကြောင့် အထွက်ခေါ်ဆိုမှုကို မပြုလုပ်နိုင်ပါ။"</string>
-    <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"သင်၏ <xliff:g id="OTHER_CALL">%1$s</xliff:g> ခေါ်ဆိုမှုများကြောင့် အထွက်ခေါ်ဆိုမှုကို မပြုလုပ်နိုင်ပါ။"</string>
-    <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"အခြားအက်ပ်ရှိ ခေါ်ဆိုမှုကြောင့် အထွက်ခေါ်ဆိုမှုကို မပြုလုပ်နိုင်ပါ။"</string>
+    <string name="notification_incoming_call" msgid="7713197997773986670">"<xliff:g id="CALL_FROM">%2$s</xliff:g> မှ <xliff:g id="CALL_VIA">%1$s</xliff:g> သုံးပြီး ခေါ်နေပါသည်"</string>
+    <string name="notification_incoming_video_call" msgid="6638486071698373893">"<xliff:g id="CALL_FROM">%2$s</xliff:g> မှ <xliff:g id="CALL_VIA">%1$s</xliff:g> သုံးပြီး ဗီဒီယိုဖြင့် ခေါ်နေပါသည်"</string>
+    <string name="answering_ends_other_call" msgid="8282145910153766401">"ဖုန်းကိုင်လိုက်လျှင် <xliff:g id="CALL_VIA">%1$s</xliff:g> သုံးပြီးပြောနေခြင်းကို ဖြတ်ပစ်ပါမည်"</string>
+    <string name="answering_ends_other_calls" msgid="1198589551399049197">"ဖုန်းကိုင်လိုက်လျှင် <xliff:g id="CALL_VIA">%1$s</xliff:g> သုံးပြီးပြောနေခြင်းများကိုဖြတ်ပစ်ပါမည်"</string>
+    <string name="answering_ends_other_video_call" msgid="8510410917384186360">"ဖုန်းကိုင်လိုက်လျှင် <xliff:g id="CALL_VIA">%1$s</xliff:g> ဗီဒီယိုပြောနေခြင်းကိုဖြတ်ပစ်ပါလိမ့်မည်"</string>
+    <string name="answering_ends_other_managed_call" msgid="5186137550267947785">"ဖုန်းကိုင်လိုက်လျှင် သင်ယခုပြောနေခြင်းကို ဖြတ်ပစ်ပါမည်"</string>
+    <string name="answering_ends_other_managed_calls" msgid="6429838309560397988">"ဖုန်းကိုင်လိုက်လျှင် သင်ယခုပြောနေခြင်းများကို ဖြတ်ပစ်ပါမည်"</string>
+    <string name="answering_ends_other_managed_video_call" msgid="1585423762458248435">"ဖုန်းကိုင်လိုက်လျှင် လက်ရှိဗီဒီယိုပြောနေခြင်းကိုဖြတ်ပစ်ပါမည်"</string>
+    <string name="answer_incoming_call" msgid="4140530013111794587">"ဖုန်းကိုင်ရန်"</string>
+    <string name="decline_incoming_call" msgid="806026168661598368">"ဖုန်းမကိုင်ရန်"</string>
+    <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"<xliff:g id="OTHER_CALL">%1$s</xliff:g> သုံးပြီးပြောနေသည့်အတွက် အထွက်ခေါ်ဆိုမှုကို မပြုလုပ်နိုင်ပါ။"</string>
+    <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"<xliff:g id="OTHER_CALL">%1$s</xliff:g> သုံးပြီးပြောနေသည့်အတွက် အထွက်ခေါ်ဆိုမှုများကို မပြုလုပ်နိုင်ပါ။"</string>
+    <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"အခြားအက်ပ်သုံးပြီးပြောနေသည့်အတွက် အထွက်ခေါ်ဆိုမှုကို မပြုလုပ်နိုင်ပါ။"</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"အဝင်ဖုန်းခေါ်ဆိုမှုများ"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"လွတ်သွားသော ဖုန်းခေါ်ဆိုမှုများ"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"ဤခေါ်ဆိုမှု ပြုလုပ်ပါက <xliff:g id="OTHER_APP">%1$s</xliff:g> သုံးပြီးပြောနေခြင်းကို ဖြတ်ပစ်ပါမည်။"</string>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 004ecac..cd5b1cd 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Kan ikke ringe ut på grunn av <xliff:g id="OTHER_CALL">%1$s</xliff:g>-samtalen din."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Kan ikke ringe ut på grunn av <xliff:g id="OTHER_CALL">%1$s</xliff:g>-samtalene dine."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Kan ikke ringe ut på grunn av en samtale i en annen app."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Innkommende anrop"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Tapte anrop"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Samtalen din i <xliff:g id="OTHER_APP">%1$s</xliff:g> avsluttes hvis du foretar dette anropet."</string>
 </resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne/strings.xml
similarity index 96%
rename from res/values-ne-rNP/strings.xml
rename to res/values-ne/strings.xml
index 7f5c6c0..7f15ebe 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"तपाईंको <xliff:g id="OTHER_CALL">%1$s</xliff:g> कलका कारण कल गर्न सकिँदैन।"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"तपाईंका <xliff:g id="OTHER_CALL">%1$s</xliff:g> कलहरूका कारण कल गर्न सकिँदैन।"</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"अर्को अनुप्रयोगमा जारी कलका कारण कल गर्न सकिँदैन।"</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"आगमन कलहरू"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"छुटेका कलहरू"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"यो कल गर्नुले तपाईंको <xliff:g id="OTHER_APP">%1$s</xliff:g> कल अन्त्य गर्दछ।"</string>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index ee56d8d..324b5fb 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -43,7 +43,7 @@
     <string name="outgoing_call_error_no_phone_number_supplied" msgid="1940125199802007505">"Als je wilt bellen, moet je een geldig nummer invoeren."</string>
     <string name="duplicate_video_call_not_allowed" msgid="3749211605014548386">"Oproep kan momenteel niet worden toegevoegd."</string>
     <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="no_vm_number_msg" msgid="1300729501030053828">"Er is geen voicemailnummer op de simkaart 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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Oproep kan niet worden gestart vanwege je <xliff:g id="OTHER_CALL">%1$s</xliff:g>-oproep."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Oproep kan niet worden gestart vanwege je <xliff:g id="OTHER_CALL">%1$s</xliff:g>-oproepen."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Oproep kan niet worden gestart vanwege een oproep in een andere app."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Inkomende oproepen"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Gemiste oproepen"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Als je deze oproep start, wordt je <xliff:g id="OTHER_APP">%1$s</xliff:g>-oproep beëindigd."</string>
 </resources>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa/strings.xml
similarity index 95%
rename from res/values-pa-rIN/strings.xml
rename to res/values-pa/strings.xml
index 5c574e7..18f69b2 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"ਤੁਹਾਡੀ <xliff:g id="OTHER_CALL">%1$s</xliff:g> ਕਾਲ ਦੇ ਕਾਰਨ ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"ਤੁਹਾਡੀਆਂ <xliff:g id="OTHER_CALL">%1$s</xliff:g> ਕਾਲਾਂ ਦੇ ਕਾਰਨ ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"ਕਿਸੇ ਹੋਰ ਐਪ ਵਿੱਚ ਇੱਕ ਕਾਲ ਹੋਣ ਦੇ ਕਾਰਨ ਕਾਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।"</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"ਇਨਕਮਿੰਗ ਕਾਲਾਂ"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"ਖੁੰਝੀਆਂ ਕਾਲਾਂ"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"ਇਹ ਕਾਲ ਕਰਨ ਨਾਲ ਤੁਹਾਡੀ <xliff:g id="OTHER_APP">%1$s</xliff:g> ਕਾਲ ਸਮਾਪਤ ਹੋ ਜਾਵੇਗੀ।"</string>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index a0113a4..4a5820f 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -50,7 +50,7 @@
     <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="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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Nie możesz zadzwonić z powodu trwającej rozmowy w <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Nie możesz zadzwonić z powodu trwających rozmów w <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Nie możesz zadzwonić z powodu trwającej rozmowy w innej aplikacji."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Połączenia przychodzące"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Połączenia nieodebrane"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Jeśli zadzwonisz, połączenie w aplikacji <xliff:g id="OTHER_APP">%1$s</xliff:g> zostanie zakończone."</string>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 5c347bb..9b7d239 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -77,7 +77,10 @@
     <string name="answering_ends_other_managed_video_call" msgid="1585423762458248435">"Ao atender, a sua videochamada em curso será terminada"</string>
     <string name="answer_incoming_call" msgid="4140530013111794587">"Atender"</string>
     <string name="decline_incoming_call" msgid="806026168661598368">"Recusar"</string>
-    <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"A chamada não pode ser efetuada devido à sua chamada do <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
-    <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"A chamada não pode ser efetuada devido às suas chamadas do <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
-    <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"A chamada não pode ser efetuada devido a uma chamada noutra aplicação."</string>
+    <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Não é possível efetuar a chamada devido à sua chamada do <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
+    <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Não é possível efetuar a chamada devido às suas chamadas do <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
+    <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Não é possível efetuar a chamada devido a uma chamada noutra aplicação."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Chamadas recebidas"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Chamadas não atendidas"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Ao efetuar esta chamada, irá terminar a chamada na aplicação <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 9c5968e..597e75e 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Não é possível ligar com uma chamada em andamento no <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Não é possível ligar com chamadas em andamento no <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Não é possível ligar com uma chamada em andamento em outro aplicativo."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Chamadas recebidas"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Chamadas perdidas"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Se você ligar agora, sua chamada será encerrada no <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 76a57d4..770fb24 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -22,7 +22,7 @@
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Apel nepreluat"</string>
     <string name="notification_missedWorkCallTitle" msgid="6242489980390803090">"Apel de serviciu nepreluat"</string>
     <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Apeluri nepreluate"</string>
-    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> (de) apeluri nepreluate"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> apeluri nepreluate"</string>
     <string name="notification_missedCallTicker" msgid="504686252427747209">"Apel nepreluat de la <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
     <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Sunați"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Mesaj"</string>
@@ -76,8 +76,11 @@
     <string name="answering_ends_other_managed_calls" msgid="6429838309560397988">"Dacă răspundeți, apelurile în curs vor fi încheiate."</string>
     <string name="answering_ends_other_managed_video_call" msgid="1585423762458248435">"Dacă răspundeți, apelul video în curs va fi încheiat."</string>
     <string name="answer_incoming_call" msgid="4140530013111794587">"Răspundeți"</string>
-    <string name="decline_incoming_call" msgid="806026168661598368">"Refuzați"</string>
+    <string name="decline_incoming_call" msgid="806026168661598368">"Respingeți"</string>
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Apelul nu poate fi inițiat din cauza apelului <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Apelul nu poate fi inițiat din cauza apelurilor <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Apelul nu poate fi inițiat din cauza unui apel din altă aplicație."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Apeluri primite"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Apeluri nepreluate"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Dacă inițiați acest apel, cel din <xliff:g id="OTHER_APP">%1$s</xliff:g> va fi încheiat."</string>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index f4830b4..d1a7a56 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Вы не можете отправить вызов, пока не завершите другой в приложении <xliff:g id="OTHER_CALL">%1$s</xliff:g>"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Вы не можете отправить вызов, пока не завершите другие в приложении <xliff:g id="OTHER_CALL">%1$s</xliff:g>"</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Вы не можете отправить новый вызов, пока не завершите текущий в другом приложении"</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Входящие вызовы"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Пропущенные вызовы"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Если вы начнете этот звонок, вызов в <xliff:g id="OTHER_APP">%1$s</xliff:g> будет завершен."</string>
 </resources>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si/strings.xml
similarity index 95%
rename from res/values-si-rLK/strings.xml
rename to res/values-si/strings.xml
index 411775e..b5e2110 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"ඔබේ <xliff:g id="OTHER_CALL">%1$s</xliff:g> ඇමතුම හේතුවෙන් ඇමතුම ගැනීමට නොහැකිය."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"ඔබේ <xliff:g id="OTHER_CALL">%1$s</xliff:g> ඇමතුම් හේතුවෙන් ඇමතුම ගැනීමට නොහැකිය."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"වෙනත් යෙදුමක ඇමතුමක් හේතුවෙන් ඇමතුම ගැනීමට නොහැකිය."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"එන ඇමතුම්"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"මඟ හැරුණු ඇමතුම්"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"මෙම ඇමතුම ගැනීම ඔබේ <xliff:g id="OTHER_APP">%1$s</xliff:g> ඇමතුම අවසන් කරනු ඇත."</string>
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 7512053..5268ba4 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -54,7 +54,7 @@
     <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_dialog_body" msgid="9030243212265516828">"Blokovať hovory a textové správy"</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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Hovor sa nedá uskutočniť, pretože prebieha hovor <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Hovor sa nedá uskutočniť, pretože prebiehajú hovory <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Hovor sa nedá uskutočniť, pretože prebieha hovor v inej aplikácii."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Prichádzajúce hovory"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Zmeškané hovory"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Ak uskutočníte tento hovor, hovor cez <xliff:g id="OTHER_APP">%1$s</xliff:g> bude ukončený."</string>
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 32ef2e4..de9716a 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Klica ni mogoče vzpostaviti zaradi klica prek aplikacije <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Klica ni mogoče vzpostaviti zaradi klicev prek aplikacije <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Klica ni mogoče vzpostaviti zaradi klica prek druge aplikacije."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Dohodni klici"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Neodgovorjeni klici"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Če opravite ta klic, bo končan klic prek aplikacije <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq/strings.xml
similarity index 95%
rename from res/values-sq-rAL/strings.xml
rename to res/values-sq/strings.xml
index 0fb6476..06d5f09 100644
--- a/res/values-sq-rAL/strings.xml
+++ b/res/values-sq/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Telefonata nuk mund të kryhet për shkak të telefonatës tënde të <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Telefonata nuk mund të kryhet për shkak të telefonatave të tua të <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Telefonata nuk mund të kryhet për shkak të një telefonate në një aplikacion tjetër."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Telefonatat hyrëse"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Telefonatat e humbura"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Kryerja e kësaj telefonate do të mbyllë telefonatën tënde në <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index bdd6d01..b3f1554 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Не можете да упутите позив због <xliff:g id="OTHER_CALL">%1$s</xliff:g> позива."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Не можете да упутите позив због <xliff:g id="OTHER_CALL">%1$s</xliff:g> позива."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Не можете да упутите позив због позива у другој апликацији."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Долазни позиви"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Пропуштени позиви"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Ако упутите овај позив, завршићете <xliff:g id="OTHER_APP">%1$s</xliff:g> позив."</string>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index ea651f9..6e4d661 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Det går inte att ringa på grund av samtalet via <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Det går inte att ringa på grund av samtalen via <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Det går inte att ringa på grund av ett samtal via en annan app."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Inkommande samtal"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Missade samtal"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Ringer du det här samtalet avslutas samtalet i <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 876b6fd..6ba2995 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Haiwezekani kupiga kwa sababu ya simu yako ya <xliff:g id="OTHER_CALL">%1$s</xliff:g> inayoendelea."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Haiwezekani kupiga kwa sababu ya simu zako za <xliff:g id="OTHER_CALL">%1$s</xliff:g> zinazoendelea."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Haiwezekani kwa sababu kuna simu inayoendelea kwenye programu nyingine."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Simu zinazoingia"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Simu ambazo hukujibu"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Ukipiga simu hii, simu yako kwenye <xliff:g id="OTHER_APP">%1$s</xliff:g> itakatwa."</string>
 </resources>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta/strings.xml
similarity index 95%
rename from res/values-ta-rIN/strings.xml
rename to res/values-ta/strings.xml
index 78684aa..6fbf74a 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"<xliff:g id="OTHER_CALL">%1$s</xliff:g> அழைப்பு செயலில் உள்ளதால், புதிய அழைப்பைச் செய்ய முடியாது."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"<xliff:g id="OTHER_CALL">%1$s</xliff:g> அழைப்புகள் செயலில் உள்ளதால், புதிய அழைப்பைச் செய்ய முடியாது."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"மற்றொரு பயன்பாட்டில் அழைப்பு செயலில் உள்ளதால், புதிய அழைப்பைச் செய்ய முடியாது."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"உள்வரும் அழைப்புகள்"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"தவறிய அழைப்புகள்"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"புதிய அழைப்பைச் செய்தால், செயலில் உள்ள <xliff:g id="OTHER_APP">%1$s</xliff:g> அழைப்பு துண்டிக்கப்படும்."</string>
 </resources>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te/strings.xml
similarity index 95%
rename from res/values-te-rIN/strings.xml
rename to res/values-te/strings.xml
index e26fb3f..74bc7f0 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te/strings.xml
@@ -51,7 +51,7 @@
     <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="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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"మీ <xliff:g id="OTHER_CALL">%1$s</xliff:g> కాల్ కొనసాగుతున్నందున కాల్ చేయడం సాధ్యపడదు."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"మీ <xliff:g id="OTHER_CALL">%1$s</xliff:g> కాల్‌లు కొనసాగుతున్నందున కాల్ చేయడం సాధ్యపడదు."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"వేరొక అనువర్తనంలో కాల్ కొనసాగుతున్నందున కాల్ చేయడం సాధ్యపడదు."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"ఇన్‌కమింగ్ కాల్‌లు"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"సమాధానం ఇవ్వని కాల్‌లు"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"ఈ కాల్ చేయడం వలన మీ <xliff:g id="OTHER_APP">%1$s</xliff:g> కాల్ ముగుస్తుంది."</string>
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 0ac50de..3ae5c3c 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"ไม่สามารถโทรออกได้เนื่องจากกำลังใช้สายอยู่ใน <xliff:g id="OTHER_CALL">%1$s</xliff:g>"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"ไม่สามารถโทรออกได้เนื่องจากกำลังใช้สายอยู่ใน <xliff:g id="OTHER_CALL">%1$s</xliff:g>"</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"ไม่สามารถโทรออกได้เนื่องจากกำลังใช้สายอยู่ในแอปอื่น"</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"สายโทรเข้า"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"สายที่ไม่ได้รับ"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"การโทรออกนี้จะวางสายใน <xliff:g id="OTHER_APP">%1$s</xliff:g>"</string>
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 9788d47..7a8b28b 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Hindi makakatawag dahil sa iyong tawag sa <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Hindi makakatawag dahil sa iyong mga tawag sa <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Hindi makakatawag dahil sa isang tawag sa isa pang app."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Mga papasok na tawag"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Mga hindi nasagot na tawag"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Tatapusin ng pagtawag na ito ang iyong tawag sa <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 96048a1..ccef824 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Devam eden <xliff:g id="OTHER_CALL">%1$s</xliff:g> çağrınız nedeniyle telefon araması yapılamıyor."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Devam eden <xliff:g id="OTHER_CALL">%1$s</xliff:g> çağrılarınız nedeniyle telefon araması yapılamıyor."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Başka bir uygulamada devam eden çağrınız nedeniyle telefon araması yapılamıyor."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Gelen çağrılar"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Cevapsız çağrılar"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Bu çağrıyı yaptığınızda <xliff:g id="OTHER_APP">%1$s</xliff:g> çağrınız sona erecek."</string>
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index ffff8c8..5a22892 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Неможливо зателефонувати через поточний виклик у <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Неможливо зателефонувати через поточні виклики в <xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Неможливо зателефонувати через поточний виклик в іншому додатку."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Вхідні виклики"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Пропущені виклики"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Якщо здійснити цей виклик, буде завершено виклик у додатку <xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur/strings.xml
similarity index 95%
rename from res/values-ur-rPK/strings.xml
rename to res/values-ur/strings.xml
index f0b2737..f94d85b 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"آپ کی <xliff:g id="OTHER_CALL">%1$s</xliff:g> کال کی وجہ سے کال نہیں کی جاسکتی۔"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"آپ کی <xliff:g id="OTHER_CALL">%1$s</xliff:g> کالز کی وجہ سے کالز نہیں کی جاسکتیں۔"</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"کسی دوسری ایپ میں موجود کال کی کی وجہ سے کال نہیں کی جا سکتی۔"</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"آنے والی کالیں"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"چھوٹی ہوئی کالیں"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"یہ کال کرنے سے <xliff:g id="OTHER_APP">%1$s</xliff:g> کال ختم ہو جائے گی۔"</string>
 </resources>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz/strings.xml
similarity index 92%
rename from res/values-uz-rUZ/strings.xml
rename to res/values-uz/strings.xml
index bc578e3..714ddc9 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz/strings.xml
@@ -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">"Chaqiruv uchun hisoblar"</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>
@@ -50,11 +50,11 @@
     <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="blocked_numbers_msg" msgid="1045015186124965643">"Bloklangan telefon raqamlaridan chaqiruv yoki matnli xabarlar qabul qilib bo‘lmaydi."</string>
+    <string name="block_number" msgid="1101252256321306179">"Biror raqamni bloklash"</string>
     <string name="unblock_dialog_body" msgid="1614238499771862793">"<xliff:g id="NUMBER_TO_BLOCK">%1$s</xliff:g> raqami blokdan chiqarilsinmi?"</string>
     <string name="unblock_button" msgid="3078048901972674170">"Blokdan chiqarish"</string>
-    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Quyidagi raqamdan keladigan qo‘ng‘iroq va SMS xabarlar bloklansin"</string>
+    <string name="add_blocked_dialog_body" msgid="9030243212265516828">"Quyidagi raqamdan keladigan chaqiruv 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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Joriy <xliff:g id="OTHER_CALL">%1$s</xliff:g> qo‘ng‘ir. tufayli boshqa raqamni chaqirib bo‘lmaydi."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Joriy <xliff:g id="OTHER_CALL">%1$s</xliff:g> qo‘ng‘ir-r tufayli boshqa raqamni chaqirib bo‘lmaydi."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Boshqa ilovadagi joriy qo‘ng‘iroq tufayli boshqa raqamni chaqirib bo‘lmaydi."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Kiruvchi chaqiruvlar"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Javobsiz chaqiruvlar"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Bu qo‘ng‘iroqni amalga oshirsangiz, <xliff:g id="OTHER_APP">%1$s</xliff:g> qo‘ng‘irog‘i tugatiladi."</string>
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 2474ed5..3a7e4b9 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Không thể thực hiện cuộc gọi do cuộc gọi <xliff:g id="OTHER_CALL">%1$s</xliff:g> của bạn."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Không thể thực hiện cuộc gọi do cuộc gọi <xliff:g id="OTHER_CALL">%1$s</xliff:g> của bạn."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Không thể thực hiện cuộc gọi do có cuộc gọi trong một ứng dụng khác."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Cuộc gọi đến"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Cuộc gọi nhỡ"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Thực hiện cuộc gọi này sẽ kết thúc cuộc gọi <xliff:g id="OTHER_APP">%1$s</xliff:g> của bạn."</string>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 0a6de5b..2edc91a 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"由于当前正在进行 <xliff:g id="OTHER_CALL">%1$s</xliff:g> 通话,因此无法拨打电话。"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"由于当前正在进行 <xliff:g id="OTHER_CALL">%1$s</xliff:g> 通话,因此无法拨打电话。"</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"由于当前正在通过其他应用通话,因此无法拨打电话。"</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"来电"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"未接电话"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"拨打此电话将导致<xliff:g id="OTHER_APP">%1$s</xliff:g>通话结束。"</string>
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index a3c611b..5d783ad 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -28,10 +28,10 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"短訊"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"通話已靜音。"</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"擴音器已啟用"</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"我現在不方便通話,有什麼事嗎?"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"我現在不方便通話,有什麼事呢?"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"我很快會打電話給你。"</string>
-    <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"我晚點打電話給你。"</string>
-    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"我現在不方便通話,晚點再打來好嗎?"</string>
+    <string name="respond_via_sms_canned_response_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>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"由於您已在進行 <xliff:g id="OTHER_CALL">%1$s</xliff:g> 通話,因此無法撥打電話。"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"由於您已在進行 <xliff:g id="OTHER_CALL">%1$s</xliff:g> 通話,因此無法撥打電話。"</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"由於已在另一個應用程式中進行通話,因此無法撥打電話。"</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"來電"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"未接來電"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"如果撥打此電話,您的 <xliff:g id="OTHER_APP">%1$s</xliff:g> 通話將會結束。"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index a467e05..5c043ea 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -28,10 +28,10 @@
     <string name="notification_missedCall_message" msgid="3049928912736917988">"簡訊"</string>
     <string name="accessibility_call_muted" msgid="2776111226185342220">"通話已靜音。"</string>
     <string name="accessibility_speakerphone_enabled" msgid="1988512040421036359">"喇叭已啟用"</string>
-    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"我現在不方便通話,有什麼事?"</string>
+    <string name="respond_via_sms_canned_response_1" msgid="2461606462788380215">"我現在不方便講話,有什麼事?"</string>
     <string name="respond_via_sms_canned_response_2" msgid="4074450431532859214">"我待會就回電。"</string>
     <string name="respond_via_sms_canned_response_3" msgid="3496079065723960450">"我晚點回電。"</string>
-    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"我現在不方便通話,晚點再打來好嗎?"</string>
+    <string name="respond_via_sms_canned_response_4" msgid="1698989243040062190">"我現在不方便講話,晚點再打來好嗎?"</string>
     <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"快速回應"</string>
     <string name="respond_via_sms_setting_title_2" msgid="6104662227299493906">"編輯快速回應"</string>
     <string name="respond_via_sms_setting_summary" msgid="9150281183930613065"></string>
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"你正在進行 <xliff:g id="OTHER_CALL">%1$s</xliff:g> 通話,因此無法撥打電話。"</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"你正在進行 <xliff:g id="OTHER_CALL">%1$s</xliff:g> 通話,所以無法撥打電話。"</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"你正在使用其他應用程式進行通話,因此無法撥打電話。"</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"來電"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"未接來電"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"撥打這通電話將結束你的「<xliff:g id="OTHER_APP">%1$s</xliff:g>」通話。"</string>
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index d868b32..ac7e9b5 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -80,4 +80,7 @@
     <string name="cant_call_due_to_ongoing_call" msgid="4952615196237854748">"Ikholi ayikwazi ukwenziwa ngenxa yekholi yakho ye-<xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_calls" msgid="1380804892363503856">"Ikholi ayikwazi ukwenziwa ngenxa yamakholi akho e-<xliff:g id="OTHER_CALL">%1$s</xliff:g>."</string>
     <string name="cant_call_due_to_ongoing_unknown_call" msgid="149091978697302211">"Ikholi ayikwazi ukwenziwa ngenxa yekholi kolunye uhlelo lokusebenza."</string>
+    <string name="notification_channel_incoming_call" msgid="3513761697082968084">"Amakholi angenayo"</string>
+    <string name="notification_channel_missed_call" msgid="8727062678632713146">"Amakholi akuphuthile"</string>
+    <string name="alert_outgoing_call" msgid="982908156825958001">"Ukwenza le kholi kuzoqeda enye ikholi yakho ye-<xliff:g id="OTHER_APP">%1$s</xliff:g>."</string>
 </resources>
diff --git a/res/values/config.xml b/res/values/config.xml
index 7dd43f4..111d86b 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -46,4 +46,8 @@
          different source (connection service) from the existing ringing call when reaching
          maximum ringing calls. -->
     <bool name="silence_incoming_when_different_service_and_maximum_ringing">false</bool>
+
+    <!-- Determines if the granting temporary location permission to the default dialer
+         during an emergency call should be allowed.  The default is false. -->
+    <bool name="grant_location_permission_enabled">false</bool>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 1cca867..58e5284 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -247,4 +247,13 @@
          phone call in a third-party app.  Unlike cant_call_due_to_ongoing_call, this is used when
          the name of the other app is not known. [CHAR LIMIT=none] -->
     <string name="cant_call_due_to_ongoing_unknown_call">Call cannot be placed due to a call in another app.</string>
+
+    <!-- Notification channel name for a channel containing incoming call notifications. -->
+    <string name="notification_channel_incoming_call">Incoming calls</string>
+    <!-- Notification channel name for a channel containing missed call notifications. -->
+    <string name="notification_channel_missed_call">Missed calls</string>
+
+    <!-- Alert dialog content used to inform the user that placing a new outgoing call will end the
+         ongoing call in the app "other_app". -->
+    <string name="alert_outgoing_call">Placing this call will end your <xliff:g id="other_app">%1$s</xliff:g> call.</string>
 </resources>
diff --git a/src/com/android/server/telecom/Analytics.java b/src/com/android/server/telecom/Analytics.java
index 4daa525..dbe1a29 100644
--- a/src/com/android/server/telecom/Analytics.java
+++ b/src/com/android/server/telecom/Analytics.java
@@ -26,6 +26,7 @@
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.IndentingPrintWriter;
+import com.android.server.telecom.nano.TelecomLogClass;
 
 import java.io.PrintWriter;
 import java.util.ArrayList;
@@ -51,7 +52,8 @@
 
     public static final Map<String, Integer> sLogEventToAnalyticsEvent =
             new HashMap<String, Integer>() {{
-                put(LogUtils.Events.SET_SELECT_PHONE_ACCOUNT, AnalyticsEvent.SET_SELECT_PHONE_ACCOUNT);
+                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);
@@ -108,7 +110,8 @@
                 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);
+                put(LogUtils.Sessions.CSW_ADD_CONFERENCE_CALL,
+                        SessionTiming.CSW_ADD_CONFERENCE_CALL);
 
             }};
 
diff --git a/src/com/android/server/telecom/AsyncResultCallback.java b/src/com/android/server/telecom/AsyncResultCallback.java
deleted file mode 100644
index edbda3b..0000000
--- a/src/com/android/server/telecom/AsyncResultCallback.java
+++ /dev/null
@@ -1,24 +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;
-
-/**
- * Generic result interface for use with async method callback.
- */
-interface AsyncResultCallback<T> {
-    void onResult(T result, int errorCode, String errorMsg);
-}
diff --git a/src/com/android/server/telecom/Call.java b/src/com/android/server/telecom/Call.java
index ec330ec..c69a3e0 100644
--- a/src/com/android/server/telecom/Call.java
+++ b/src/com/android/server/telecom/Call.java
@@ -17,6 +17,7 @@
 package com.android.server.telecom;
 
 import android.content.Context;
+import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
@@ -310,6 +311,12 @@
 
     private Bundle mIntentExtras = new Bundle();
 
+    /**
+     * The {@link Intent} which originally created this call.  Only populated when we are putting a
+     * call into a pending state and need to pick up initiation of the call later.
+     */
+    private Intent mOriginalCallIntent = null;
+
     /** Set of listeners on this call.
      *
      * ConcurrentHashMap constructor params: 8 is initial table size, 0.9f is
@@ -491,6 +498,7 @@
                 || callDirection == CALL_DIRECTION_INCOMING;
         maybeLoadCannedSmsResponses();
         mAnalytics = new Analytics.CallInfo();
+
     }
 
     /**
@@ -986,8 +994,8 @@
                 l.onTargetPhoneAccountChanged(this);
             }
             configureIsWorkCall();
-            checkIfVideoCapable();
         }
+        checkIfVideoCapable();
     }
 
     public CharSequence getTargetPhoneAccountLabel() {
@@ -1054,14 +1062,29 @@
 
     /**
      * Caches the state of the {@link PhoneAccount#CAPABILITY_VIDEO_CALLING} {@link PhoneAccount}
-     * capability.
+     * capability and ensures that the video state is updated if the phone account does not support
+     * video calling.
      */
     private void checkIfVideoCapable() {
         PhoneAccountRegistrar phoneAccountRegistrar = mCallsManager.getPhoneAccountRegistrar();
+        if (mTargetPhoneAccountHandle == null) {
+            // If no target phone account handle is specified, assume we can potentially perform a
+            // video call; once the phone account is set, we can confirm that it is video capable.
+            mIsVideoCallingSupported = true;
+            Log.d(this, "checkIfVideoCapable: no phone account selected; assume video capable.");
+            return;
+        }
         PhoneAccount phoneAccount =
                 phoneAccountRegistrar.getPhoneAccountUnchecked(mTargetPhoneAccountHandle);
         mIsVideoCallingSupported = phoneAccount != null && phoneAccount.hasCapabilities(
                     PhoneAccount.CAPABILITY_VIDEO_CALLING);
+
+        if (!mIsVideoCallingSupported && VideoProfile.isVideo(getVideoState())) {
+            // The PhoneAccount for the Call was set to one which does not support video calling,
+            // and the current call is configured to be a video call; downgrade to audio-only.
+            setVideoState(VideoProfile.STATE_AUDIO_ONLY);
+            Log.d(this, "checkIfVideoCapable: selected phone account doesn't support video.");
+        }
     }
 
     boolean shouldAttachToExistingConnection() {
@@ -1561,6 +1584,7 @@
                         "reject call failed due to null CS callId=%s", getId());
             }
             Log.addEvent(this, LogUtils.Events.REQUEST_REJECT);
+
         }
     }
 
@@ -1696,6 +1720,14 @@
         mIntentExtras = extras;
     }
 
+    public Intent getOriginalCallIntent() {
+        return mOriginalCallIntent;
+    }
+
+    public void setOriginalCallIntent(Intent intent) {
+        mOriginalCallIntent = intent;
+    }
+
     /**
      * @return the uri of the contact associated with this call.
      */
@@ -1817,7 +1849,6 @@
             Log.w(this, "pullExternalCall - call %s is external but cannot be pulled.", mId);
             return;
         }
-
         Log.addEvent(this, LogUtils.Events.REQUEST_PULL);
         mConnectionService.pullExternalCall(this);
     }
@@ -1839,6 +1870,39 @@
         }
     }
 
+    /**
+     * Sets this {@link Call} to has the specified {@code parentCall}.  Also sets the parent to
+     * have this call as a child.
+     * @param parentCall
+     */
+    void setParentAndChildCall(Call parentCall) {
+        boolean isParentChanging = (mParentCall != parentCall);
+        setParentCall(parentCall);
+        setChildOf(parentCall);
+        if (isParentChanging) {
+            notifyParentChanged(parentCall);
+        }
+    }
+
+    /**
+     * Notifies listeners when the parent call changes.
+     * Used by {@link #setParentAndChildCall(Call)}, and in {@link CallsManager}.
+     * @param parentCall The new parent call for this call.
+     */
+    void notifyParentChanged(Call parentCall) {
+        Log.addEvent(this, LogUtils.Events.SET_PARENT, parentCall);
+        for (Listener l : mListeners) {
+            l.onParentChanged(this);
+        }
+    }
+
+    /**
+     * Unlike {@link #setParentAndChildCall(Call)}, only sets the parent call but does NOT set
+     * the child.
+     * TODO: This is only required when adding existing connections as a workaround so that we
+     * can avoid sending the "onParentChanged" callback until later.
+     * @param parentCall The new parent call.
+     */
     void setParentCall(Call parentCall) {
         if (parentCall == this) {
             Log.e(this, new Exception(), "setting the parent to self");
@@ -1848,20 +1912,23 @@
             // nothing to do
             return;
         }
-        Preconditions.checkState(parentCall == null || mParentCall == null);
-
-        Call oldParent = mParentCall;
         if (mParentCall != null) {
             mParentCall.removeChildCall(this);
         }
         mParentCall = parentCall;
-        if (mParentCall != null) {
-            mParentCall.addChildCall(this);
-        }
+    }
 
-        Log.addEvent(this, LogUtils.Events.SET_PARENT, mParentCall);
-        for (Listener l : mListeners) {
-            l.onParentChanged(this);
+    /**
+     * To be called after {@link #setParentCall(Call)} to complete setting the parent by adding
+     * this call as a child of another call.
+     * <p>
+     * Note: if using this method alone, the caller must call {@link #notifyParentChanged(Call)} to
+     * ensure the InCall UI is updated with the change in parent.
+     * @param parentCall The new parent for this call.
+     */
+    void setChildOf(Call parentCall) {
+        if (parentCall != null && !parentCall.getChildCalls().contains(this)) {
+            parentCall.addChildCall(this);
         }
     }
 
@@ -1980,7 +2047,7 @@
      * that the insurance policy lives in the framework side of things.
      */
     private void fixParentAfterDisconnect() {
-        setParentCall(null);
+        setParentAndChildCall(null);
     }
 
     /**
@@ -2267,6 +2334,8 @@
         // If the phone account associated with this call does not support video calling, then we
         // will automatically set the video state to audio-only.
         if (!isVideoCallingSupported()) {
+            Log.d(this, "setVideoState: videoState=%s defaulted to audio (video not supported)",
+                    VideoProfile.videoStateToString(videoState));
             videoState = VideoProfile.STATE_AUDIO_ONLY;
         }
 
diff --git a/src/com/android/server/telecom/CallAudioRouteStateMachine.java b/src/com/android/server/telecom/CallAudioRouteStateMachine.java
index 365ef4d..8663066 100644
--- a/src/com/android/server/telecom/CallAudioRouteStateMachine.java
+++ b/src/com/android/server/telecom/CallAudioRouteStateMachine.java
@@ -17,7 +17,7 @@
 package com.android.server.telecom;
 
 
-import android.app.ActivityManagerNative;
+import android.app.ActivityManager;
 import android.app.NotificationManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -1526,7 +1526,7 @@
     private int getCurrentUserId() {
         final long ident = Binder.clearCallingIdentity();
         try {
-            UserInfo currentUser = ActivityManagerNative.getDefault().getCurrentUser();
+            UserInfo currentUser = ActivityManager.getService().getCurrentUser();
             return currentUser.id;
         } catch (RemoteException e) {
             // Activity manager not running, nothing we can do assume user 0.
diff --git a/src/com/android/server/telecom/CallIntentProcessor.java b/src/com/android/server/telecom/CallIntentProcessor.java
index 2126c48..fdd4ebc 100644
--- a/src/com/android/server/telecom/CallIntentProcessor.java
+++ b/src/com/android/server/telecom/CallIntentProcessor.java
@@ -9,7 +9,6 @@
 import android.os.Trace;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.telecom.Connection;
 import android.telecom.DefaultDialerManager;
 import android.telecom.Log;
 import android.telecom.PhoneAccount;
@@ -128,8 +127,6 @@
                 VideoProfile.STATE_AUDIO_ONLY);
         clientExtras.putInt(TelecomManager.EXTRA_START_CALL_WITH_VIDEO_STATE, videoState);
 
-        final boolean isPrivilegedDialer = intent.getBooleanExtra(KEY_IS_PRIVILEGED_DIALER, false);
-
         boolean fixedInitiatingUser = fixInitiatingUserIfNecessary(context, intent);
         // Show the toast to warn user that it is a personal call though initiated in work profile.
         if (fixedInitiatingUser) {
@@ -140,23 +137,31 @@
 
         // Send to CallsManager to ensure the InCallUI gets kicked off before the broadcast returns
         Call call = callsManager
-                .startOutgoingCall(handle, phoneAccountHandle, clientExtras, initiatingUser);
+                .startOutgoingCall(handle, phoneAccountHandle, clientExtras, initiatingUser,
+                        intent);
 
         if (call != null) {
-            // Asynchronous calls should not usually be made inside a BroadcastReceiver because once
-            // onReceive is complete, the BroadcastReceiver's process runs the risk of getting
-            // killed if memory is scarce. However, this is OK here because the entire Telecom
-            // process will be running throughout the duration of the phone call and should never
-            // be killed.
-            NewOutgoingCallIntentBroadcaster broadcaster = new NewOutgoingCallIntentBroadcaster(
-                    context, callsManager, call, intent, callsManager.getPhoneNumberUtilsAdapter(),
-                    isPrivilegedDialer);
-            final int result = broadcaster.processIntent();
-            final boolean success = result == DisconnectCause.NOT_DISCONNECTED;
+            sendNewOutgoingCallIntent(context, call, callsManager, intent);
+        }
+    }
 
-            if (!success && call != null) {
-                disconnectCallAndShowErrorDialog(context, call, result);
-            }
+    static void sendNewOutgoingCallIntent(Context context, Call call, CallsManager callsManager,
+            Intent intent) {
+        // Asynchronous calls should not usually be made inside a BroadcastReceiver because once
+        // onReceive is complete, the BroadcastReceiver's process runs the risk of getting
+        // killed if memory is scarce. However, this is OK here because the entire Telecom
+        // process will be running throughout the duration of the phone call and should never
+        // be killed.
+        final boolean isPrivilegedDialer = intent.getBooleanExtra(KEY_IS_PRIVILEGED_DIALER, false);
+
+        NewOutgoingCallIntentBroadcaster broadcaster = new NewOutgoingCallIntentBroadcaster(
+                context, callsManager, call, intent, callsManager.getPhoneNumberUtilsAdapter(),
+                isPrivilegedDialer);
+        final int result = broadcaster.processIntent();
+        final boolean success = result == DisconnectCause.NOT_DISCONNECTED;
+
+        if (!success && call != null) {
+            disconnectCallAndShowErrorDialog(context, call, result);
         }
     }
 
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index e89075d..06ccd4e 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -66,6 +66,7 @@
 import com.android.server.telecom.callfiltering.DirectToVoicemailCallFilter;
 import com.android.server.telecom.callfiltering.IncomingCallFilter;
 import com.android.server.telecom.components.ErrorDialogActivity;
+import com.android.server.telecom.ui.ConfirmCallDialogActivity;
 import com.android.server.telecom.ui.IncomingCallNotifier;
 
 import java.util.ArrayList;
@@ -209,6 +210,12 @@
             new ConcurrentHashMap<Call, Boolean>(8, 0.9f, 1));
 
     /**
+     * A pending call is one which requires user-intervention in order to be placed.
+     * Used by {@link #startCallConfirmation(Call)}.
+     */
+    private Call mPendingCall;
+
+    /**
      * The current telecom call ID.  Used when creating new instances of {@link Call}.  Should
      * only be accessed using the {@link #getNextCallId()} method which synchronizes on the
      * {@link #mLock} sync root.
@@ -256,6 +263,7 @@
     private final Set<Call> mPendingCallsToDisconnect = new HashSet<>();
     /* Handler tied to thread in which CallManager was initialized. */
     private final Handler mHandler = new Handler(Looper.getMainLooper());
+    private final EmergencyCallHelper mEmergencyCallHelper;
 
     private boolean mCanAddCall = true;
 
@@ -299,7 +307,8 @@
             Timeouts.Adapter timeoutsAdapter,
             AsyncRingtonePlayer asyncRingtonePlayer,
             PhoneNumberUtilsAdapter phoneNumberUtilsAdapter,
-            InterruptionFilterProxy interruptionFilterProxy) {
+            InterruptionFilterProxy interruptionFilterProxy,
+            EmergencyCallHelper emergencyCallHelper) {
         mContext = context;
         mLock = lock;
         mPhoneNumberUtilsAdapter = phoneNumberUtilsAdapter;
@@ -314,6 +323,7 @@
         mBluetoothRouteManager = bluetoothManager;
         mDockManager = new DockManager(context);
         mTimeoutsAdapter = timeoutsAdapter;
+        mEmergencyCallHelper = emergencyCallHelper;
         mCallerInfoLookupHelper = new CallerInfoLookupHelper(context, mCallerInfoAsyncQueryFactory,
                 mContactsAsyncHelper, mLock);
 
@@ -347,7 +357,8 @@
         RingtoneFactory ringtoneFactory = new RingtoneFactory(this, context);
         SystemVibrator systemVibrator = new SystemVibrator(context);
         mInCallController = new InCallController(
-                context, mLock, this, systemStateProvider, defaultDialerCache, mTimeoutsAdapter);
+                context, mLock, this, systemStateProvider, defaultDialerCache, mTimeoutsAdapter,
+                emergencyCallHelper);
         mRinger = new Ringer(playerFactory, context, systemSettingsUtil, asyncRingtonePlayer,
                 ringtoneFactory, systemVibrator, mInCallController);
 
@@ -729,6 +740,10 @@
         return mInCallController;
     }
 
+    EmergencyCallHelper getEmergencyCallHelper() {
+        return mEmergencyCallHelper;
+    }
+
     @VisibleForTesting
     public boolean hasEmergencyCall() {
         for (Call call : mCalls) {
@@ -941,15 +956,15 @@
      * For managed connections, this is the first step to launching the Incall UI.
      * For self-managed connections, we don't expect the Incall UI to launch, but this is still a
      * first step in getting the self-managed ConnectionService to create the connection.
-     *
      * @param handle Handle to connect the call with.
      * @param phoneAccountHandle The phone account which contains the component name of the
      *        connection service to use for this call.
      * @param extras The optional extras Bundle passed with the intent used for the incoming call.
      * @param initiatingUser {@link UserHandle} of user that place the outgoing call.
+     * @param originalIntent
      */
     Call startOutgoingCall(Uri handle, PhoneAccountHandle phoneAccountHandle, Bundle extras,
-            UserHandle initiatingUser) {
+            UserHandle initiatingUser, Intent originalIntent) {
         boolean isReusedCall = true;
         Call call = reuseOutgoingCall(handle);
 
@@ -989,7 +1004,6 @@
             }
 
             call.setInitiatingUser(initiatingUser);
-
             isReusedCall = false;
         }
 
@@ -1107,9 +1121,15 @@
         }
         setIntentExtrasAndStartTime(call, extras);
 
-        // Do not add the call if it is a potential MMI code.
-        if ((isPotentialMMICode(handle) || isPotentialInCallMMICode) && !needsAccountSelection) {
+        if ((isPotentialMMICode(handle) || isPotentialInCallMMICode)
+                && !needsAccountSelection) {
+            // Do not add the call if it is a potential MMI code.
             call.addListener(this);
+        } else if (!isSelfManaged && hasSelfManagedCalls() && !call.isEmergencyCall()) {
+            // Adding a managed call and there are ongoing self-managed call(s).
+            call.setOriginalCallIntent(originalIntent);
+            startCallConfirmation(call);
+            return null;
         } else if (!mCalls.contains(call)) {
             // We check if mCalls already contains the call because we could potentially be reusing
             // a call which was previously added (See {@link #reuseOutgoingCall}).
@@ -1182,23 +1202,11 @@
             if (call.isSelfManaged() && !isOutgoingCallPermitted) {
                 notifyCreateConnectionFailed(call.getTargetPhoneAccount(), call);
             } else if (!call.isSelfManaged() && hasSelfManagedCalls() && !call.isEmergencyCall()) {
-                Call activeCall = getActiveCall();
-                CharSequence errorMessage;
-                if (activeCall == null) {
-                    // Realistically this shouldn't happen, but best to handle gracefully
-                    errorMessage = mContext.getText(R.string.cant_call_due_to_ongoing_unknown_call);
-                } else {
-                    errorMessage = mContext.getString(R.string.cant_call_due_to_ongoing_call,
-                            activeCall.getTargetPhoneAccountLabel());
-                }
-                // Call is managed and there are ongoing self-managed calls.
-                markCallAsDisconnected(call, new DisconnectCause(DisconnectCause.ERROR,
-                        errorMessage, errorMessage, "Ongoing call in another app."));
-                markCallAsRemoved(call);
+                markCallDisconnectedDueToSelfManagedCall(call);
             } else {
                 if (call.isEmergencyCall()) {
                     // Disconnect all self-managed calls to make priority for emergency call.
-                    mCalls.stream().filter(c -> c.isSelfManaged()).forEach(c -> c.disconnect());
+                    disconnectSelfManagedCalls();
                 }
 
                 call.startCreateConnection(mPhoneAccountRegistrar);
@@ -1695,6 +1703,33 @@
     }
 
     /**
+     * Given a call, marks the call as disconnected and removes it.  Set the error message to
+     * indicate to the user that the call cannot me placed due to an ongoing call in another app.
+     *
+     * Used when there are ongoing self-managed calls and the user tries to make an outgoing managed
+     * call.  Called by {@link #startCallConfirmation(Call)} when the user is already confirming an
+     * outgoing call.  Realistically this should almost never be called since in practice the user
+     * won't make multiple outgoing calls at the same time.
+     *
+     * @param call The call to mark as disconnected.
+     */
+    void markCallDisconnectedDueToSelfManagedCall(Call call) {
+        Call activeCall = getActiveCall();
+        CharSequence errorMessage;
+        if (activeCall == null) {
+            // Realistically this shouldn't happen, but best to handle gracefully
+            errorMessage = mContext.getText(R.string.cant_call_due_to_ongoing_unknown_call);
+        } else {
+            errorMessage = mContext.getString(R.string.cant_call_due_to_ongoing_call,
+                    activeCall.getTargetPhoneAccountLabel());
+        }
+        // Call is managed and there are ongoing self-managed calls.
+        markCallAsDisconnected(call, new DisconnectCause(DisconnectCause.ERROR,
+                errorMessage, errorMessage, "Ongoing call in another app."));
+        markCallAsRemoved(call);
+    }
+
+    /**
      * Cleans up any calls currently associated with the specified connection service when the
      * service binder disconnects unexpectedly.
      *
@@ -1758,8 +1793,8 @@
                 }
             } else if (HeadsetMediaButton.LONG_PRESS == type) {
                 if (ringingCall != null) {
-                    Log.addEvent( getForegroundCall(), LogUtils.Events.INFO,
-                            "media btn long press - reject");
+                    Log.addEvent(getForegroundCall(),
+                            LogUtils.Events.INFO, "media btn long press - reject");
                     ringingCall.reject(false, null);
                 } else {
                     Log.addEvent(getForegroundCall(), LogUtils.Events.INFO,
@@ -2040,7 +2075,7 @@
         Trace.beginSection("removeCall");
         Log.v(this, "removeCall(%s)", call);
 
-        call.setParentCall(null);  // need to clean up parent relationship before destroying.
+        call.setParentAndChildCall(null);  // clean up parent relationship before destroying.
         call.removeListener(this);
         call.clearConnectionService();
         // TODO: clean up RTT pipes
@@ -2491,7 +2526,30 @@
         if (extras != null && extras.containsKey(Connection.EXTRA_ORIGINAL_CONNECTION_ID)) {
             call.setOriginalConnectionId(extras.getString(Connection.EXTRA_ORIGINAL_CONNECTION_ID));
         }
+        Log.i(this, "createCallForExistingConnection: %s", connection);
+        Call parentCall = null;
+        if (!TextUtils.isEmpty(connection.getParentCallId())) {
+            String parentId = connection.getParentCallId();
+            parentCall = mCalls
+                    .stream()
+                    .filter(c -> c.getId().equals(parentId))
+                    .findFirst()
+                    .orElse(null);
+            if (parentCall != null) {
+                Log.i(this, "createCallForExistingConnection: %s added as child of %s.",
+                        call.getId(),
+                        parentCall.getId());
+                // Set JUST the parent property, which won't send an update to the Incall UI.
+                call.setParentCall(parentCall);
+            }
+        }
         addCall(call);
+        if (parentCall != null) {
+            // Now, set the call as a child of the parent since it has been added to Telecom.  This
+            // is where we will inform InCall.
+            call.setChildOf(parentCall);
+            call.notifyParentChanged(parentCall);
+        }
 
         return call;
     }
@@ -2652,6 +2710,97 @@
     }
 
     /**
+     * Used to confirm creation of an outgoing call which was marked as pending confirmation in
+     * {@link #startOutgoingCall(Uri, PhoneAccountHandle, Bundle, UserHandle, Intent)}.
+     * Called via {@link TelecomBroadcastIntentProcessor} for a call which was confirmed via
+     * {@link ConfirmCallDialogActivity}.
+     * @param callId The call ID of the call to confirm.
+     */
+    public void confirmPendingCall(String callId) {
+        Log.i(this, "confirmPendingCall: callId=%s", callId);
+        if (mPendingCall != null && mPendingCall.getId().equals(callId)) {
+            Log.addEvent(mPendingCall, LogUtils.Events.USER_CONFIRMED);
+            addCall(mPendingCall);
+
+            // We are going to place the new outgoing call, so disconnect any ongoing self-managed
+            // calls which are ongoing at this time.
+            disconnectSelfManagedCalls();
+
+            // Kick of the new outgoing call intent from where it left off prior to confirming the
+            // call.
+            CallIntentProcessor.sendNewOutgoingCallIntent(mContext, mPendingCall, this,
+                    mPendingCall.getOriginalCallIntent());
+            mPendingCall = null;
+        }
+    }
+
+    /**
+     * Used to cancel an outgoing call which was marked as pending confirmation in
+     * {@link #startOutgoingCall(Uri, PhoneAccountHandle, Bundle, UserHandle, Intent)}.
+     * Called via {@link TelecomBroadcastIntentProcessor} for a call which was confirmed via
+     * {@link ConfirmCallDialogActivity}.
+     * @param callId The call ID of the call to cancel.
+     */
+    public void cancelPendingCall(String callId) {
+        Log.i(this, "cancelPendingCall: callId=%s", callId);
+        if (mPendingCall != null && mPendingCall.getId().equals(callId)) {
+            Log.addEvent(mPendingCall, LogUtils.Events.USER_CANCELLED);
+            markCallAsDisconnected(mPendingCall, new DisconnectCause(DisconnectCause.CANCELED));
+            markCallAsRemoved(mPendingCall);
+            mPendingCall = null;
+        }
+    }
+
+    /**
+     * Called from {@link #startOutgoingCall(Uri, PhoneAccountHandle, Bundle, UserHandle, Intent)} when
+     * a managed call is added while there are ongoing self-managed calls.  Starts
+     * {@link ConfirmCallDialogActivity} to prompt the user to see if they wish to place the
+     * outgoing call or not.
+     * @param call The call to confirm.
+     */
+    private void startCallConfirmation(Call call) {
+        if (mPendingCall != null) {
+            Log.i(this, "startCallConfirmation: call %s is already pending; disconnecting %s",
+                    mPendingCall.getId(), call.getId());
+            markCallDisconnectedDueToSelfManagedCall(call);
+            return;
+        }
+        Log.addEvent(call, LogUtils.Events.USER_CONFIRMATION);
+        mPendingCall = call;
+
+        // Figure out the name of the app in charge of the self-managed call(s).
+        Call selfManagedCall = mCalls.stream()
+                .filter(c -> c.isSelfManaged())
+                .findFirst()
+                .orElse(null);
+        CharSequence ongoingAppName = "";
+        if (selfManagedCall != null) {
+            ongoingAppName = selfManagedCall.getTargetPhoneAccountLabel();
+        }
+        Log.i(this, "startCallConfirmation: callId=%s, ongoingApp=%s", call.getId(),
+                ongoingAppName);
+
+        Intent confirmIntent = new Intent(mContext, ConfirmCallDialogActivity.class);
+        confirmIntent.putExtra(ConfirmCallDialogActivity.EXTRA_OUTGOING_CALL_ID, call.getId());
+        confirmIntent.putExtra(ConfirmCallDialogActivity.EXTRA_ONGOING_APP_NAME, ongoingAppName);
+        confirmIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        mContext.startActivityAsUser(confirmIntent, UserHandle.CURRENT);
+    }
+
+    /**
+     * Disconnects all self-managed calls.
+     */
+    private void disconnectSelfManagedCalls() {
+        // Disconnect all self-managed calls to make priority for emergency call.
+        // Use Call.disconnect() to command the ConnectionService to disconnect the calls.
+        // CallsManager.markCallAsDisconnected doesn't actually tell the ConnectionService to
+        // disconnect.
+        mCalls.stream()
+                .filter(c -> c.isSelfManaged())
+                .forEach(c -> c.disconnect());
+    }
+
+    /**
      * Dumps the state of the {@link CallsManager}.
      *
      * @param pw The {@code IndentingPrintWriter} to write the state to.
@@ -2667,6 +2816,11 @@
             pw.decreaseIndent();
         }
 
+        if (mPendingCall != null) {
+            pw.print("mPendingCall:");
+            pw.println(mPendingCall.getId());
+        }
+
         if (mCallAudioManager != null) {
             pw.println("mCallAudioManager:");
             pw.increaseIndent();
@@ -2760,6 +2914,7 @@
     private void broadcastUnregisterIntent(PhoneAccountHandle accountHandle) {
         Intent intent =
                 new Intent(TelecomManager.ACTION_PHONE_ACCOUNT_UNREGISTERED);
+        intent.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
         intent.putExtra(
                 TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, accountHandle);
         Log.i(this, "Sending phone-account %s unregistered intent as user", accountHandle);
@@ -2782,6 +2937,7 @@
     private void broadcastRegisterIntent(PhoneAccountHandle accountHandle) {
         Intent intent = new Intent(
                 TelecomManager.ACTION_PHONE_ACCOUNT_REGISTERED);
+        intent.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
         intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE,
                 accountHandle);
         Log.i(this, "Sending phone-account %s registered intent as user", accountHandle);
diff --git a/src/com/android/server/telecom/ConnectionServiceWrapper.java b/src/com/android/server/telecom/ConnectionServiceWrapper.java
index f269cdf..b395adc 100644
--- a/src/com/android/server/telecom/ConnectionServiceWrapper.java
+++ b/src/com/android/server/telecom/ConnectionServiceWrapper.java
@@ -77,6 +77,15 @@
                     logIncoming("handleCreateConnectionComplete %s", callId);
                     ConnectionServiceWrapper.this
                             .handleCreateConnectionComplete(callId, request, connection);
+
+                    if (mServiceInterface != null) {
+                        logOutgoing("createConnectionComplete %s", callId);
+                        try {
+                            mServiceInterface.createConnectionComplete(callId,
+                                    Log.getExternalSession());
+                        } catch (RemoteException e) {
+                        }
+                    }
                 }
             } finally {
                 Binder.restoreCallingIdentity(token);
@@ -320,10 +329,10 @@
                     if (childCall != null) {
                         if (conferenceCallId == null) {
                             Log.d(this, "unsetting parent: %s", conferenceCallId);
-                            childCall.setParentCall(null);
+                            childCall.setParentAndChildCall(null);
                         } else {
                             Call conferenceCall = mCallIdMapper.getCall(conferenceCallId);
-                            childCall.setParentCall(conferenceCall);
+                            childCall.setParentAndChildCall(conferenceCall);
                         }
                     } else {
                         // Log.w(this, "setIsConferenced, unknown call id: %s", args.arg1);
@@ -436,7 +445,7 @@
                         Call childCall = mCallIdMapper.getCall(connId);
                         Log.d(this, "found child: %s", connId);
                         if (childCall != null) {
-                            childCall.setParentCall(conferenceCall);
+                            childCall.setParentAndChildCall(conferenceCall);
                         }
                     }
                 }
@@ -909,6 +918,16 @@
                             gatewayInfo.getOriginalAddress());
                 }
 
+                if (call.isIncoming() && mCallsManager.getEmergencyCallHelper()
+                        .getLastEmergencyCallTimeMillis() > 0) {
+                  // Add the last emergency call time to the connection request for incoming calls
+                  if (extras == call.getIntentExtras()) {
+                    extras = (Bundle) extras.clone();
+                  }
+                  extras.putLong(android.telecom.Call.EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS,
+                      mCallsManager.getEmergencyCallHelper().getLastEmergencyCallTimeMillis());
+                }
+
                 Log.addEvent(call, LogUtils.Events.START_CONNECTION,
                         Log.piiHandle(call.getHandle()));
 
diff --git a/src/com/android/server/telecom/EmergencyCallHelper.java b/src/com/android/server/telecom/EmergencyCallHelper.java
new file mode 100644
index 0000000..5b4c2fd
--- /dev/null
+++ b/src/com/android/server/telecom/EmergencyCallHelper.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright 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.Manifest;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.UserHandle;
+import android.telecom.Log;
+import com.android.internal.annotations.VisibleForTesting;
+
+/**
+ * Helps with emergency calls by:
+ * 1. granting temporary location permission to the default dialer service during emergency calls
+ * 2. keeping track of the time of the last emergency call
+ */
+@VisibleForTesting
+public class EmergencyCallHelper {
+    private final Context mContext;
+    private final String mDefaultDialerPackage;
+    private final Timeouts.Adapter mTimeoutsAdapter;
+    private UserHandle mLocationPermissionGrantedToUser;
+    private long mLastEmergencyCallTimestampMillis;
+
+    @VisibleForTesting
+    public EmergencyCallHelper(
+            Context context,
+            String defaultDialerPackage,
+            Timeouts.Adapter timeoutsAdapter) {
+        mContext = context;
+        mDefaultDialerPackage = defaultDialerPackage;
+        mTimeoutsAdapter = timeoutsAdapter;
+    }
+
+    void maybeGrantTemporaryLocationPermission(Call call, UserHandle userHandle) {
+        if (shouldGrantTemporaryLocationPermission(call)) {
+            grantLocationPermission(userHandle, call);
+        }
+        if (call != null && call.isEmergencyCall()) {
+            recordEmergencyCallTime();
+        }
+    }
+
+    void maybeRevokeTemporaryLocationPermission() {
+        if (wasGrantedTemporaryLocationPermission()) {
+            revokeLocationPermission();
+        }
+    }
+
+    long getLastEmergencyCallTimeMillis() {
+        return mLastEmergencyCallTimestampMillis;
+    }
+
+    private void recordEmergencyCallTime() {
+        mLastEmergencyCallTimestampMillis = System.currentTimeMillis();
+    }
+
+    private boolean isInEmergencyCallbackWindow() {
+        return System.currentTimeMillis() - getLastEmergencyCallTimeMillis()
+                < mTimeoutsAdapter.getEmergencyCallbackWindowMillis(mContext.getContentResolver());
+    }
+
+    private boolean shouldGrantTemporaryLocationPermission(Call call) {
+        if (!mContext.getResources().getBoolean(R.bool.grant_location_permission_enabled)) {
+            Log.i(this, "ShouldGrantTemporaryLocationPermission, disabled by config");
+            return false;
+        }
+        if (call == null) {
+            Log.i(this, "ShouldGrantTemporaryLocationPermission, no call");
+            return false;
+        }
+        if (!call.isEmergencyCall() && !isInEmergencyCallbackWindow()) {
+            Log.i(this, "ShouldGrantTemporaryLocationPermission, not emergency");
+            return false;
+        }
+        if (hasLocationPermission()) {
+            Log.i(this, "ShouldGrantTemporaryLocationPermission, already has location permission");
+            return false;
+        }
+        Log.i(this, "ShouldGrantTemporaryLocationPermission, returning true");
+        return true;
+    }
+
+    private void grantLocationPermission(UserHandle userHandle, Call call) {
+        Log.i(this, "Granting temporary location permission to " + mDefaultDialerPackage
+              + ", user: " + userHandle);
+        try {
+            mContext.getPackageManager().grantRuntimePermission(mDefaultDialerPackage,
+                Manifest.permission.ACCESS_FINE_LOCATION, userHandle);
+            recordPermissionGrant(userHandle);
+        } catch (Exception e) {
+            Log.e(this, e, "Failed to grant location permission to " + mDefaultDialerPackage
+                  + ", user: " + userHandle);
+        }
+    }
+
+    private void revokeLocationPermission() {
+        Log.i(this, "Revoking temporary location permission from " + mDefaultDialerPackage
+              + ", user: " + mLocationPermissionGrantedToUser);
+        UserHandle userHandle = mLocationPermissionGrantedToUser;
+        clearPermissionGrant();
+        try {
+            mContext.getPackageManager().revokeRuntimePermission(mDefaultDialerPackage,
+                  Manifest.permission.ACCESS_FINE_LOCATION, userHandle);
+        } catch (Exception e) {
+            Log.e(this, e, "Failed to revoke location permission from " + mDefaultDialerPackage
+                  + ", user: " + userHandle);
+        }
+    }
+
+    private boolean hasLocationPermission() {
+        return mContext.getPackageManager().checkPermission(
+                Manifest.permission.ACCESS_FINE_LOCATION, mDefaultDialerPackage)
+                == PackageManager.PERMISSION_GRANTED;
+    }
+
+    private void recordPermissionGrant(UserHandle userHandle) {
+        mLocationPermissionGrantedToUser = userHandle;
+    }
+
+    private boolean wasGrantedTemporaryLocationPermission() {
+        return mLocationPermissionGrantedToUser != null;
+    }
+
+    private void clearPermissionGrant() {
+        mLocationPermissionGrantedToUser = null;
+    }
+}
diff --git a/src/com/android/server/telecom/HeadsetMediaButton.java b/src/com/android/server/telecom/HeadsetMediaButton.java
index 7d6a798..64de874 100644
--- a/src/com/android/server/telecom/HeadsetMediaButton.java
+++ b/src/com/android/server/telecom/HeadsetMediaButton.java
@@ -47,11 +47,12 @@
         public boolean onMediaButtonEvent(Intent intent) {
             KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
             Log.v(this, "SessionCallback.onMediaButton()...  event = %s.", event);
-            if ((event != null) && (event.getKeyCode() == KeyEvent.KEYCODE_HEADSETHOOK)) {
+            if ((event != null) && ((event.getKeyCode() == KeyEvent.KEYCODE_HEADSETHOOK) ||
+                                    (event.getKeyCode() == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE))) {
                 synchronized (mLock) {
-                    Log.v(this, "SessionCallback: HEADSETHOOK");
-                    boolean consumed = handleHeadsetHook(event);
-                    Log.v(this, "==> handleHeadsetHook(): consumed = %b.", consumed);
+                    Log.v(this, "SessionCallback: HEADSETHOOK/MEDIA_PLAY_PAUSE");
+                    boolean consumed = handleCallMediaButton(event);
+                    Log.v(this, "==> handleCallMediaButton(): consumed = %b.", consumed);
                     return consumed;
                 }
             }
@@ -113,8 +114,8 @@
      *
      * @return true if we consumed the event.
      */
-    private boolean handleHeadsetHook(KeyEvent event) {
-        Log.d(this, "handleHeadsetHook()...%s %s", event.getAction(), event.getRepeatCount());
+    private boolean handleCallMediaButton(KeyEvent event) {
+        Log.d(this, "handleCallMediaButton()...%s %s", event.getAction(), event.getRepeatCount());
 
         // Save ACTION_DOWN Event temporarily.
         if (event.getAction() == KeyEvent.ACTION_DOWN) {
diff --git a/src/com/android/server/telecom/InCallController.java b/src/com/android/server/telecom/InCallController.java
index 6fc53b3..cdda387 100644
--- a/src/com/android/server/telecom/InCallController.java
+++ b/src/com/android/server/telecom/InCallController.java
@@ -345,6 +345,18 @@
                 mIsProxying = false;
             }
 
+            mEmergencyCallHelper.maybeGrantTemporaryLocationPermission(call,
+                mCallsManager.getCurrentUserHandle());
+
+            if (call != null && call.isIncoming()
+                && mEmergencyCallHelper.getLastEmergencyCallTimeMillis() > 0) {
+              // Add the last emergency call time to the call
+              Bundle extras = new Bundle();
+              extras.putLong(android.telecom.Call.EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS,
+                      mEmergencyCallHelper.getLastEmergencyCallTimeMillis());
+              call.putExtras(Call.SOURCE_CONNECTION_SERVICE, extras);
+            }
+
             // If we are here, we didn't or could not connect to child. So lets connect ourselves.
             return super.connect(call);
         }
@@ -356,6 +368,7 @@
                 mSubConnection.disconnect();
             } else {
                 super.disconnect();
+                mEmergencyCallHelper.maybeRevokeTemporaryLocationPermission();
             }
             mIsConnected = false;
         }
@@ -709,18 +722,21 @@
     private final SystemStateProvider mSystemStateProvider;
     private final Timeouts.Adapter mTimeoutsAdapter;
     private final DefaultDialerCache mDefaultDialerCache;
+    private final EmergencyCallHelper mEmergencyCallHelper;
     private CarSwappingInCallServiceConnection mInCallServiceConnection;
     private NonUIInCallServiceConnectionCollection mNonUIInCallServiceConnections;
 
     public InCallController(Context context, TelecomSystem.SyncRoot lock, CallsManager callsManager,
             SystemStateProvider systemStateProvider,
-            DefaultDialerCache defaultDialerCache, Timeouts.Adapter timeoutsAdapter) {
+            DefaultDialerCache defaultDialerCache, Timeouts.Adapter timeoutsAdapter,
+            EmergencyCallHelper emergencyCallHelper) {
         mContext = context;
         mLock = lock;
         mCallsManager = callsManager;
         mSystemStateProvider = systemStateProvider;
         mTimeoutsAdapter = timeoutsAdapter;
         mDefaultDialerCache = defaultDialerCache;
+        mEmergencyCallHelper = emergencyCallHelper;
 
         Resources resources = mContext.getResources();
         mSystemInCallComponentName = new ComponentName(
diff --git a/src/com/android/server/telecom/LogUtils.java b/src/com/android/server/telecom/LogUtils.java
index 121abcf..06811bd 100644
--- a/src/com/android/server/telecom/LogUtils.java
+++ b/src/com/android/server/telecom/LogUtils.java
@@ -54,6 +54,9 @@
 
     public final static class Events {
         public static final String CREATED = "CREATED";
+        public static final String USER_CONFIRMATION = "USER_CONFIRMATION";
+        public static final String USER_CONFIRMED = "USER_CONFIRMED";
+        public static final String USER_CANCELLED = "USER_CANCELLED";
         public static final String DESTROYED = "DESTROYED";
         public static final String SET_CONNECTING = "SET_CONNECTING";
         public static final String SET_DIALING = "SET_DIALING";
diff --git a/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java b/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java
index 9a9fb45..74ee668 100644
--- a/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java
+++ b/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java
@@ -315,7 +315,8 @@
 
         // Force receivers of this broadcast intent to run at foreground priority because we
         // want to finish processing the broadcast intent as soon as possible.
-        broadcastIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
+        broadcastIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND
+                | Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
         Log.v(this, "Broadcasting intent: %s.", broadcastIntent);
 
         checkAndCopyProviderExtras(originalCallIntent, broadcastIntent);
diff --git a/src/com/android/server/telecom/RingtoneFactory.java b/src/com/android/server/telecom/RingtoneFactory.java
index b14e1ab..b452338 100644
--- a/src/com/android/server/telecom/RingtoneFactory.java
+++ b/src/com/android/server/telecom/RingtoneFactory.java
@@ -125,8 +125,8 @@
         if(userContext == null) {
             return false;
         }
-        return !TextUtils.isEmpty(Settings.System.getString(userContext.getContentResolver(),
-                Settings.System.RINGTONE));
+        return !TextUtils.isEmpty(Settings.System.getStringForUser(userContext.getContentResolver(),
+                Settings.System.RINGTONE, userContext.getUserId()));
     }
 
     private boolean isWorkContact(Call incomingCall) {
diff --git a/src/com/android/server/telecom/TelecomBroadcastIntentProcessor.java b/src/com/android/server/telecom/TelecomBroadcastIntentProcessor.java
index 5df4451..a51ef73 100644
--- a/src/com/android/server/telecom/TelecomBroadcastIntentProcessor.java
+++ b/src/com/android/server/telecom/TelecomBroadcastIntentProcessor.java
@@ -21,6 +21,8 @@
 import android.os.UserHandle;
 import android.telecom.Log;
 
+import com.android.server.telecom.ui.ConfirmCallDialogActivity;
+
 public final class TelecomBroadcastIntentProcessor {
     /** The action used to send SMS response for the missed call notification. */
     public static final String ACTION_SEND_SMS_FROM_NOTIFICATION =
@@ -48,6 +50,20 @@
     public static final String ACTION_REJECT_FROM_NOTIFICATION =
             "com.android.server.telecom.ACTION_REJECT_FROM_NOTIFICATION";
 
+    /**
+     * The action used to proceed with a call being confirmed via
+     * {@link com.android.server.telecom.ui.ConfirmCallDialogActivity}.
+     */
+    public static final String ACTION_PROCEED_WITH_CALL =
+            "com.android.server.telecom.PROCEED_WITH_CALL";
+
+    /**
+     * The action used to cancel a call being confirmed via
+     * {@link com.android.server.telecom.ui.ConfirmCallDialogActivity}.
+     */
+    public static final String ACTION_CANCEL_CALL =
+            "com.android.server.telecom.CANCEL_CALL";
+
     public static final String EXTRA_USERHANDLE = "userhandle";
 
     private final Context mContext;
@@ -112,6 +128,7 @@
         } else if (ACTION_REJECT_FROM_NOTIFICATION.equals(action)) {
             Log.startSession("TBIP.aRFM");
             try {
+
                 // Reject the current ringing call.
                 Call incomingCall = mCallsManager.getIncomingCallNotifier().getIncomingCall();
                 if (incomingCall != null) {
@@ -120,6 +137,24 @@
             } finally {
                 Log.endSession();
             }
+        } else if (ACTION_PROCEED_WITH_CALL.equals(action)) {
+            Log.startSession("TBIP.aPWC");
+            try {
+                String callId = intent.getStringExtra(
+                        ConfirmCallDialogActivity.EXTRA_OUTGOING_CALL_ID);
+                mCallsManager.confirmPendingCall(callId);
+            } finally {
+                Log.endSession();
+            }
+        } else if (ACTION_CANCEL_CALL.equals(action)) {
+            Log.startSession("TBIP.aCC");
+            try {
+                String callId = intent.getStringExtra(
+                        ConfirmCallDialogActivity.EXTRA_OUTGOING_CALL_ID);
+                mCallsManager.cancelPendingCall(callId);
+            } finally {
+                Log.endSession();
+            }
         }
     }
 
diff --git a/src/com/android/server/telecom/TelecomServiceImpl.java b/src/com/android/server/telecom/TelecomServiceImpl.java
index 72cf998..cbcd41d 100644
--- a/src/com/android/server/telecom/TelecomServiceImpl.java
+++ b/src/com/android/server/telecom/TelecomServiceImpl.java
@@ -38,9 +38,7 @@
 import android.os.Bundle;
 import android.os.Process;
 import android.os.UserHandle;
-import android.telecom.DefaultDialerManager;
 import android.telecom.Log;
-import android.telecom.ParcelableCallAnalytics;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomAnalytics;
@@ -51,7 +49,6 @@
 import android.text.TextUtils;
 import android.util.EventLog;
 
-// TODO: Needed for move to system service: import com.android.internal.R;
 import com.android.internal.telecom.ITelecomService;
 import com.android.internal.util.IndentingPrintWriter;
 import com.android.server.telecom.components.UserCallIntentProcessorFactory;
@@ -59,10 +56,11 @@
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
+// TODO: Needed for move to system service: import com.android.internal.R;
+
 /**
  * Implementation of the ITelecom interface.
  */
@@ -742,11 +740,11 @@
          * @see android.telecom.TelecomManager#acceptRingingCall
          */
         @Override
-        public void acceptRingingCall() {
+        public void acceptRingingCall(String packageName) {
             try {
                 Log.startSession("TSI.aRC");
                 synchronized (mLock) {
-                    enforceModifyPermission();
+                    if (!enforceAnswerCallPermission(packageName, Binder.getCallingUid())) return;
 
                     long token = Binder.clearCallingIdentity();
                     try {
@@ -765,11 +763,11 @@
          *
          */
         @Override
-        public void acceptRingingCallWithVideoState(int videoState) {
+        public void acceptRingingCallWithVideoState(String packageName, int videoState) {
             try {
                 Log.startSession("TSI.aRCWVS");
                 synchronized (mLock) {
-                    enforceModifyPermission();
+                    if (!enforceAnswerCallPermission(packageName, Binder.getCallingUid())) return;
 
                     long token = Binder.clearCallingIdentity();
                     try {
@@ -1326,6 +1324,27 @@
         }
     };
 
+    /**
+     * @return whether to return early without doing the action/throwing
+     * @throws SecurityException same as {@link Context#enforceCallingOrSelfPermission}
+     */
+    private boolean enforceAnswerCallPermission(String packageName, int uid) {
+        try {
+            enforceModifyPermission();
+        } catch (SecurityException e) {
+            final String permission = Manifest.permission.ANSWER_PHONE_CALLS;
+            enforcePermission(permission);
+
+            final int opCode = AppOpsManager.permissionToOpCode(permission);
+            if (opCode != AppOpsManager.OP_NONE
+                    && mAppOpsManager.checkOp(opCode, uid, packageName)
+                        != AppOpsManager.MODE_ALLOWED) {
+                return false;
+            }
+        }
+        return true;
+    }
+
     private Context mContext;
     private AppOpsManager mAppOpsManager;
     private PackageManager mPackageManager;
diff --git a/src/com/android/server/telecom/TelecomSystem.java b/src/com/android/server/telecom/TelecomSystem.java
index 52d39c9..9c34ef5 100644
--- a/src/com/android/server/telecom/TelecomSystem.java
+++ b/src/com/android/server/telecom/TelecomSystem.java
@@ -233,6 +233,9 @@
         mMissedCallNotifier = missedCallNotifierImplFactory
                 .makeMissedCallNotifierImpl(mContext, mPhoneAccountRegistrar, defaultDialerCache);
 
+        EmergencyCallHelper emergencyCallHelper = new EmergencyCallHelper(mContext,
+                mContext.getResources().getString(R.string.ui_default_package), timeoutsAdapter);
+
         mCallsManager = new CallsManager(
                 mContext,
                 mLock,
@@ -251,7 +254,8 @@
                 timeoutsAdapter,
                 asyncRingtonePlayer,
                 phoneNumberUtilsAdapter,
-                interruptionFilterProxy);
+                interruptionFilterProxy,
+                emergencyCallHelper);
 
         mIncomingCallNotifier = incomingCallNotifier;
         incomingCallNotifier.setCallsManagerProxy(new IncomingCallNotifier.CallsManagerProxy() {
diff --git a/src/com/android/server/telecom/Timeouts.java b/src/com/android/server/telecom/Timeouts.java
index 3691347..5187641 100644
--- a/src/com/android/server/telecom/Timeouts.java
+++ b/src/com/android/server/telecom/Timeouts.java
@@ -18,6 +18,7 @@
 
 import android.content.ContentResolver;
 import android.provider.Settings;
+import java.util.concurrent.TimeUnit;
 
 /**
  * A helper class which serves only to make it easier to lookup timeout values. This class should
@@ -44,6 +45,10 @@
         public long getBluetoothPendingTimeoutMillis(ContentResolver cr) {
             return Timeouts.getBluetoothPendingTimeoutMillis(cr);
         }
+
+        public long getEmergencyCallbackWindowMillis(ContentResolver cr) {
+            return Timeouts.getEmergencyCallbackWindowMillis(cr);
+        }
     }
 
     /** A prefix to use for all keys so to not clobber the global namespace. */
@@ -144,4 +149,13 @@
     public static long getCallScreeningTimeoutMillis(ContentResolver contentResolver) {
         return get(contentResolver, "call_screening_timeout", 5000L /* 5 seconds */);
     }
+
+    /**
+     * Returns the amount of time after an emergency call that incoming calls should be treated
+     * as potential emergency callbacks.
+     */
+    public static long getEmergencyCallbackWindowMillis(ContentResolver contentResolver) {
+      return get(contentResolver, "emergency_callback_window_millis",
+          TimeUnit.MILLISECONDS.convert(5, TimeUnit.MINUTES));
+    }
 }
diff --git a/src/com/android/server/telecom/VideoProviderProxy.java b/src/com/android/server/telecom/VideoProviderProxy.java
index 62613b0..3354622 100644
--- a/src/com/android/server/telecom/VideoProviderProxy.java
+++ b/src/com/android/server/telecom/VideoProviderProxy.java
@@ -158,6 +158,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.addEvent(mCall, LogUtils.Events.SEND_VIDEO_RESPONSE, "video not supported");
                         VideoProfile responseProfile = new VideoProfile(
                                 VideoProfile.STATE_AUDIO_ONLY);
diff --git a/src/com/android/server/telecom/components/TelecomService.java b/src/com/android/server/telecom/components/TelecomService.java
index 3d28eae..a2ca9cb 100644
--- a/src/com/android/server/telecom/components/TelecomService.java
+++ b/src/com/android/server/telecom/components/TelecomService.java
@@ -51,6 +51,7 @@
 import com.android.server.telecom.Timeouts;
 import com.android.server.telecom.ui.IncomingCallNotifier;
 import com.android.server.telecom.ui.MissedCallNotifierImpl;
+import com.android.server.telecom.ui.NotificationChannelManager;
 
 /**
  * Implementation of the ITelecom interface.
@@ -81,6 +82,9 @@
             final NotificationManager notificationManager =
                     (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
 
+            NotificationChannelManager notificationChannelManager =
+                    new NotificationChannelManager();
+            notificationChannelManager.createChannels(context);
             TelecomSystem.setInstance(
                     new TelecomSystem(
                             context,
diff --git a/src/com/android/server/telecom/ui/ConfirmCallDialogActivity.java b/src/com/android/server/telecom/ui/ConfirmCallDialogActivity.java
new file mode 100644
index 0000000..4735e3c
--- /dev/null
+++ b/src/com/android/server/telecom/ui/ConfirmCallDialogActivity.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.server.telecom.ui;
+
+import com.android.server.telecom.R;
+import com.android.server.telecom.TelecomBroadcastIntentProcessor;
+import com.android.server.telecom.components.TelecomBroadcastReceiver;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.os.Bundle;
+import android.telecom.Log;
+
+/**
+ * Dialog activity used when there is an ongoing self-managed call and the user initiates a new
+ * outgoing managed call.  The dialog prompts the user to see if they want to disconnect the ongoing
+ * self-managed call in order to place the new managed call.
+ */
+public class ConfirmCallDialogActivity extends Activity {
+    public static final String EXTRA_OUTGOING_CALL_ID = "android.telecom.extra.OUTGOING_CALL_ID";
+    public static final String EXTRA_ONGOING_APP_NAME = "android.telecom.extra.ONGOING_APP_NAME";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        final String callId = getIntent().getStringExtra(EXTRA_OUTGOING_CALL_ID);
+        final CharSequence ongoingAppName = getIntent().getCharSequenceExtra(
+                EXTRA_ONGOING_APP_NAME);
+        showDialog(callId, ongoingAppName);
+    }
+
+    private void showDialog(final String callId, CharSequence ongoingAppName) {
+        Log.i(this, "showDialog: confirming callId=%s, ongoing=%s", callId, ongoingAppName);
+        CharSequence message = getString(R.string.alert_outgoing_call, ongoingAppName);
+        final AlertDialog errorDialog = new AlertDialog.Builder(this)
+                .setMessage(message)
+                .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        Intent proceedWithCall = new Intent(
+                                TelecomBroadcastIntentProcessor.ACTION_PROCEED_WITH_CALL, null,
+                                ConfirmCallDialogActivity.this,
+                                TelecomBroadcastReceiver.class);
+                        proceedWithCall.putExtra(EXTRA_OUTGOING_CALL_ID, callId);
+                        sendBroadcast(proceedWithCall);
+                        dialog.dismiss();
+                        finish();
+                    }
+                })
+                .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
+                    @Override
+                    public void onClick(DialogInterface dialog, int which) {
+                        Intent cancelCall = new Intent(
+                                TelecomBroadcastIntentProcessor.ACTION_CANCEL_CALL, null,
+                                ConfirmCallDialogActivity.this,
+                                TelecomBroadcastReceiver.class);
+                        cancelCall.putExtra(EXTRA_OUTGOING_CALL_ID, callId);
+                        sendBroadcast(cancelCall);
+                        dialog.dismiss();
+                        finish();
+                    }
+                })
+                .setOnCancelListener(new DialogInterface.OnCancelListener() {
+                    @Override
+                    public void onCancel(DialogInterface dialog) {
+                        Intent cancelCall = new Intent(
+                                TelecomBroadcastIntentProcessor.ACTION_CANCEL_CALL, null,
+                                ConfirmCallDialogActivity.this,
+                                TelecomBroadcastReceiver.class);
+                        cancelCall.putExtra(EXTRA_OUTGOING_CALL_ID, callId);
+                        sendBroadcast(cancelCall);
+                        dialog.dismiss();
+                        finish();
+                    }
+                })
+                .create();
+
+        errorDialog.show();
+    }
+}
diff --git a/src/com/android/server/telecom/ui/IncomingCallNotifier.java b/src/com/android/server/telecom/ui/IncomingCallNotifier.java
index cd34e71..6ed98a4 100644
--- a/src/com/android/server/telecom/ui/IncomingCallNotifier.java
+++ b/src/com/android/server/telecom/ui/IncomingCallNotifier.java
@@ -67,7 +67,8 @@
     // Notification for incoming calls. This is interruptive and will show up as a HUN.
     @VisibleForTesting
     public static final int NOTIFICATION_INCOMING_CALL = 1;
-    private static final String NOTIFICATION_TAG = IncomingCallNotifier.class.getSimpleName();
+    @VisibleForTesting
+    public static final String NOTIFICATION_TAG = IncomingCallNotifier.class.getSimpleName();
 
 
     public final Call.ListenerBase mCallListener = new Call.ListenerBase() {
@@ -262,6 +263,7 @@
         builder.setContentTitle(incomingCallText);
         builder.setContentText(disconnectText);
         builder.setSmallIcon(R.drawable.ic_phone);
+        builder.setChannelId(NotificationChannelManager.CHANNEL_ID_INCOMING_CALLS);
         // Ensures this is a heads up notification.  A heads-up notification is typically only shown
         // if there is a fullscreen intent.  However since this notification doesn't have that we
         // will use this trick to get it to show as one anyways.
diff --git a/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java b/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java
index c4b0cea..9851674 100644
--- a/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java
+++ b/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java
@@ -31,7 +31,6 @@
 import com.android.server.telecom.DefaultDialerCache;
 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.TelecomBroadcastIntentProcessor;
 import com.android.server.telecom.TelecomSystem;
@@ -334,7 +333,8 @@
                 // Include a public version of the notification to be shown when the missed call
                 // notification is shown on the user's lock screen and they have chosen to hide
                 // sensitive notification information.
-                .setPublicVersion(publicBuilder.build());
+                .setPublicVersion(publicBuilder.build())
+                .setChannelId(NotificationChannelManager.CHANNEL_ID_MISSED_CALLS);
 
         Uri handleUri = callInfo.getHandle();
         String handle = callInfo.getHandleSchemeSpecificPart();
diff --git a/src/com/android/server/telecom/ui/NotificationChannelManager.java b/src/com/android/server/telecom/ui/NotificationChannelManager.java
new file mode 100644
index 0000000..46b6c28
--- /dev/null
+++ b/src/com/android/server/telecom/ui/NotificationChannelManager.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.server.telecom.ui;
+
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.media.AudioAttributes;
+import android.net.Uri;
+import android.telecom.Log;
+
+import com.android.server.telecom.R;
+
+/**
+ * Manages the {@link android.app.NotificationChannel}s for Telecom.
+ */
+public class NotificationChannelManager {
+    public static final String CHANNEL_ID_NAME = "Telecom-";
+
+    public static final String CHANNEL_ID_MISSED_CALLS = "TelecomMissedCalls";
+    public static final String CHANNEL_ID_INCOMING_CALLS = "TelecomIncomingCalls";
+
+    private BroadcastReceiver mLocaleChangeReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            Log.i(this, "Locale change; recreating channels.");
+            createOrUpdateAll(context);
+        }
+    };
+
+    public void createChannels(Context context) {
+        context.registerReceiver(mLocaleChangeReceiver,
+                new IntentFilter(Intent.ACTION_LOCALE_CHANGED));
+
+        createOrUpdateAll(context);
+    }
+
+    private void createOrUpdateAll(Context context) {
+        createOrUpdateChannel(context, CHANNEL_ID_MISSED_CALLS);
+        createOrUpdateChannel(context, CHANNEL_ID_INCOMING_CALLS);
+    }
+
+    private void createOrUpdateChannel(Context context, String channelId) {
+        NotificationChannel channel = createChannel(context, channelId);
+        getNotificationManager(context).createNotificationChannel(channel);
+    }
+
+    private NotificationChannel createChannel(Context context, String channelId) {
+        Uri silentRingtone = Uri.parse("");
+
+        CharSequence name = "";
+        int importance = NotificationManager.IMPORTANCE_DEFAULT;
+        boolean canShowBadge = false;
+        boolean lights = false;
+        boolean vibration = false;
+        Uri sound = silentRingtone;
+        switch (channelId) {
+            case CHANNEL_ID_INCOMING_CALLS:
+                name = context.getText(R.string.notification_channel_incoming_call);
+                importance = NotificationManager.IMPORTANCE_MAX;
+                canShowBadge = false;
+                lights = true;
+                vibration = false;
+                sound = silentRingtone;
+                break;
+            case CHANNEL_ID_MISSED_CALLS:
+                name = context.getText(R.string.notification_channel_missed_call);
+                importance = NotificationManager.IMPORTANCE_DEFAULT;
+                canShowBadge = true;
+                lights = true;
+                vibration = true;
+                sound = silentRingtone;
+                break;
+        }
+
+        NotificationChannel channel = new NotificationChannel(channelId, name, importance);
+        channel.setShowBadge(canShowBadge);
+        if (sound != null) {
+            channel.setSound(
+                    sound,
+                    new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_NOTIFICATION)
+                            .build());
+        }
+        channel.enableLights(lights);
+        channel.enableVibration(vibration);
+        return channel;
+    }
+
+    private NotificationManager getNotificationManager(Context context) {
+        return context.getSystemService(NotificationManager.class);
+    }
+}
diff --git a/testapps/AndroidManifest.xml b/testapps/AndroidManifest.xml
index e7d3f76..75d467a 100644
--- a/testapps/AndroidManifest.xml
+++ b/testapps/AndroidManifest.xml
@@ -177,7 +177,7 @@
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
-        </activity>
+          </activity>
 
         <activity android:name="com.android.server.telecom.testapps.TestCertActivity"
                 android:label="@string/KeyUiAppLabel"
diff --git a/testapps/res/layout/testussd_main.xml b/testapps/res/layout/testussd_main.xml
index b4d67b0..ed5edc9 100644
--- a/testapps/res/layout/testussd_main.xml
+++ b/testapps/res/layout/testussd_main.xml
@@ -21,7 +21,7 @@
     android:orientation="vertical" >
     <EditText
         android:id="@+id/number"
-        android:inputType="number"
+        android:inputType="phone"
         android:layout_width="200dp"
         android:layout_height="wrap_content" />
     <Button
@@ -29,4 +29,9 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/placeUssdButton" />
+    <Button
+        android:id="@+id/place_many_ussd_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="Send Many" />
 </LinearLayout>
diff --git a/testapps/src/com/android/server/telecom/testapps/TestUssdActivity.java b/testapps/src/com/android/server/telecom/testapps/TestUssdActivity.java
index 3b1f4e9..658f072 100644
--- a/testapps/src/com/android/server/telecom/testapps/TestUssdActivity.java
+++ b/testapps/src/com/android/server/telecom/testapps/TestUssdActivity.java
@@ -15,13 +15,30 @@
 public class TestUssdActivity extends Activity {
 
     private EditText mUssdNumberView;
-    private static Context context;
+    private Context mContext;
     public static final String LOG_TAG = "TestUssdActivity";
 
+    private TelephonyManager.UssdResponseCallback mReceiveUssdResponseCallback =
+            new TelephonyManager.UssdResponseCallback () {
+                @Override
+                public void onReceiveUssdResponse(final TelephonyManager telephonyManager,
+                                                  String request, CharSequence response) {
+                    Log.i(LOG_TAG, "USSD Success: " + request + "," + response);
+                    showToast("USSD Response Successly received for code:" + request + "," +
+                            response);
+                }
+
+                public void onReceiveUssdResponseFailed(final TelephonyManager telephonyManager,
+                                                        String request, int failureCode) {
+                    Log.i(LOG_TAG, "USSD Fail: " + request + "," + failureCode);
+                    showToast("USSD Response failed for code:" + request + "," + failureCode);
+                }
+            };
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        TestUssdActivity.context = getApplicationContext();
+        mContext = getApplicationContext();
 
         setContentView(R.layout.testussd_main);
         findViewById(R.id.place_ussd_button).setOnClickListener(new OnClickListener() {
@@ -31,50 +48,38 @@
                 placeUssdRequest();
             }
         });
+        findViewById(R.id.place_many_ussd_button).setOnClickListener((v) -> {
+                    placeUssdRequestMultiple();
+                }
+        );
 
         mUssdNumberView = (EditText) findViewById(R.id.number);
     }
 
-    public static final class OnReceiveUssdResponseCallback extends
-        TelephonyManager.OnReceiveUssdResponseCallback {
-
-            OnReceiveUssdResponseCallback() {
-            }
-
-            public void onReceiveUssdResponse(String req, CharSequence message) {
-                Log.i(LOG_TAG, "USSD Success:::" + req + "," + message);
-                showToast("USSD Response Successly received for code:" + req + "," + message);
-            }
-
-            public void onReceiveUssdResponseFailed(String req, int resultCode) {
-                Log.i(LOG_TAG, "USSD Fail:::" + req + "," + resultCode);
-                showToast("USSD Response failed for code:" + req + "," + resultCode);
-            }
-    }
-
     private void placeUssdRequest() {
-
         String mUssdNumber = mUssdNumberView.getText().toString();
         if (mUssdNumber.equals("") || mUssdNumber == null) {
-            mUssdNumber = "932";
+            mUssdNumber = "#932#";
         }
-        mUssdNumber = "#" + mUssdNumber + "#";
         final TelephonyManager telephonyManager =
                 (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
         try {
             Handler h = new Handler(Looper.getMainLooper());
-            OnReceiveUssdResponseCallback receiveUssdResponseCallback =
-                    new OnReceiveUssdResponseCallback();
-
-            telephonyManager.sendUssdRequest(mUssdNumber, receiveUssdResponseCallback, h);
-
+            Log.i(LOG_TAG, "placeUssdRequest: " + mUssdNumber);
+            telephonyManager.sendUssdRequest(mUssdNumber, mReceiveUssdResponseCallback, h);
         } catch (SecurityException e) {
             showToast("Permission check failed");
             return;
         }
     }
 
-    private static void showToast(String message) {
-        Toast.makeText(TestUssdActivity.context, message, Toast.LENGTH_SHORT).show();
+    private void placeUssdRequestMultiple() {
+        for (int ix = 0; ix < 4 ; ix++) {
+            placeUssdRequest();
+        }
+    }
+
+    private void showToast(String message) {
+        Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
     }
 }
\ No newline at end of file
diff --git a/tests/Android.mk b/tests/Android.mk
index 1e3d266..77abcad 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -36,7 +36,8 @@
 
 LOCAL_RESOURCE_DIR := \
     $(LOCAL_PATH)/res \
-    $(LOCAL_PATH)/../res
+    $(LOCAL_PATH)/../res \
+    $(SUPPORT_LIBRARY_ROOT)/compat/res
 
 LOCAL_JAVA_LIBRARIES := \
         android.test.mock \
@@ -45,7 +46,9 @@
 
 LOCAL_AAPT_FLAGS := \
     --auto-add-overlay \
-    --extra-packages com.android.server.telecom
+    --extra-packages com.android.server.telecom:android.support.compat
+
+LOCAL_JACK_FLAGS := --multi-dex native
 
 LOCAL_PROGUARD_ENABLED := disabled
 
diff --git a/tests/src/com/android/server/telecom/tests/AnalyticsTests.java b/tests/src/com/android/server/telecom/tests/AnalyticsTests.java
index 86e5559..1c786e5 100644
--- a/tests/src/com/android/server/telecom/tests/AnalyticsTests.java
+++ b/tests/src/com/android/server/telecom/tests/AnalyticsTests.java
@@ -27,6 +27,7 @@
 import android.telecom.TelecomManager;
 import android.telecom.VideoCallImpl;
 import android.telecom.VideoProfile;
+import android.support.test.filters.FlakyTest;
 import android.test.suitebuilder.annotation.MediumTest;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.util.Base64;
@@ -34,7 +35,7 @@
 import com.android.internal.util.IndentingPrintWriter;
 import com.android.server.telecom.Analytics;
 import com.android.server.telecom.LogUtils;
-import com.android.server.telecom.TelecomLogClass;
+import com.android.server.telecom.nano.TelecomLogClass;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
@@ -92,6 +93,7 @@
         }
     }
 
+    @FlakyTest
     @MediumTest
     public void testAnalyticsDumping() throws Exception {
         Analytics.reset();
diff --git a/tests/src/com/android/server/telecom/tests/BasicCallTests.java b/tests/src/com/android/server/telecom/tests/BasicCallTests.java
index c44185c..ce774a7 100644
--- a/tests/src/com/android/server/telecom/tests/BasicCallTests.java
+++ b/tests/src/com/android/server/telecom/tests/BasicCallTests.java
@@ -47,6 +47,7 @@
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
 import android.telecom.VideoProfile;
+import android.support.test.filters.FlakyTest;
 import android.test.suitebuilder.annotation.LargeTest;
 import android.test.suitebuilder.annotation.MediumTest;
 
@@ -238,6 +239,38 @@
     }
 
     @LargeTest
+    public void testIncomingEmergencyCallback() throws Exception {
+        // Make an outgoing emergency call
+        String phoneNumber = "650-555-1212";
+        IdPair ids = startAndMakeDialingEmergencyCall(phoneNumber,
+                mPhoneAccountE0.getAccountHandle(), mConnectionServiceFixtureA);
+        mInCallServiceFixtureX.mInCallAdapter.disconnectCall(ids.mCallId);
+        mConnectionServiceFixtureA.sendSetDisconnected(ids.mConnectionId, DisconnectCause.LOCAL);
+
+        // Incoming call should be marked as a potential emergency callback
+        Bundle extras = new Bundle();
+        extras.putParcelable(
+                TelecomManager.EXTRA_INCOMING_CALL_ADDRESS,
+                Uri.fromParts(PhoneAccount.SCHEME_TEL, phoneNumber, null));
+        mTelecomSystem.getTelecomServiceImpl().getBinder()
+                .addNewIncomingCall(mPhoneAccountA0.getAccountHandle(), extras);
+
+        waitForHandlerAction(new Handler(Looper.getMainLooper()), TEST_TIMEOUT);
+        ArgumentCaptor<ConnectionRequest> connectionRequestCaptor
+            = ArgumentCaptor.forClass(ConnectionRequest.class);
+        verify(mConnectionServiceFixtureA.getTestDouble())
+                .createConnection(any(PhoneAccountHandle.class), anyString(),
+                        connectionRequestCaptor.capture(), eq(true), eq(false), any());
+
+        assert(connectionRequestCaptor.getValue().getExtras().containsKey(
+            android.telecom.Call.EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS));
+        assertTrue(connectionRequestCaptor.getValue().getExtras().getLong(
+            android.telecom.Call.EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS, 0) > 0);
+        assert(connectionRequestCaptor.getValue().getExtras().containsKey(
+            TelecomManager.EXTRA_INCOMING_CALL_ADDRESS));
+    }
+
+    @LargeTest
     public void testOutgoingCallAndSelectPhoneAccount() throws Exception {
         // Remove default PhoneAccount so that the Call moves into the correct
         // SELECT_PHONE_ACCOUNT state.
@@ -815,4 +848,47 @@
         assertEquals(mInCallServiceFixtureX.getCall(ids.mCallId).getAccountHandle(),
                 mPhoneAccountE1.getAccountHandle());
     }
+
+    /**
+     * Test scenario where the user starts an outgoing video call with no selected PhoneAccount, and
+     * then subsequently selects a PhoneAccount which supports video calling.
+     * @throws Exception
+     */
+    @LargeTest
+    public void testOutgoingCallSelectPhoneAccountVideo() throws Exception {
+        startOutgoingPhoneCallPendingCreateConnection("650-555-1212",
+                null, mConnectionServiceFixtureA,
+                Process.myUserHandle(), VideoProfile.STATE_BIDIRECTIONAL);
+        com.android.server.telecom.Call call = mTelecomSystem.getCallsManager().getCalls()
+                .iterator().next();
+        assert(call.isVideoCallingSupported());
+        assertEquals(VideoProfile.STATE_BIDIRECTIONAL, call.getVideoState());
+
+        // Change the phone account to one which supports video calling.
+        call.setTargetPhoneAccount(mPhoneAccountA1.getAccountHandle());
+        assert(call.isVideoCallingSupported());
+        assertEquals(VideoProfile.STATE_BIDIRECTIONAL, call.getVideoState());
+    }
+
+    /**
+     * Test scenario where the user starts an outgoing video call with no selected PhoneAccount, and
+     * then subsequently selects a PhoneAccount which does not support video calling.
+     * @throws Exception
+     */
+    @FlakyTest
+    @LargeTest
+    public void testOutgoingCallSelectPhoneAccountNoVideo() throws Exception {
+        startOutgoingPhoneCallPendingCreateConnection("650-555-1212",
+                null, mConnectionServiceFixtureA,
+                Process.myUserHandle(), VideoProfile.STATE_BIDIRECTIONAL);
+        com.android.server.telecom.Call call = mTelecomSystem.getCallsManager().getCalls()
+                .iterator().next();
+        assert(call.isVideoCallingSupported());
+        assertEquals(VideoProfile.STATE_BIDIRECTIONAL, call.getVideoState());
+
+        // Change the phone account to one which does not support video calling.
+        call.setTargetPhoneAccount(mPhoneAccountA2.getAccountHandle());
+        assert(!call.isVideoCallingSupported());
+        assertEquals(VideoProfile.STATE_AUDIO_ONLY, call.getVideoState());
+    }
 }
diff --git a/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java b/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java
index f053a99..e815b5c 100644
--- a/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java
+++ b/tests/src/com/android/server/telecom/tests/ConnectionServiceFixture.java
@@ -117,6 +117,10 @@
         }
 
         @Override
+        public void onCreateConnectionComplete(Connection connection) {
+        }
+
+        @Override
         public void onConference(Connection cxn1, Connection cxn2) {
             if (((FakeConnection) cxn1).getIsConferenceCreated()) {
                 // Usually, this is implemented by something in Telephony, which does a bunch of
@@ -240,6 +244,11 @@
         }
 
         @Override
+        public void createConnectionComplete(String id, Session.Info info) throws RemoteException {
+            mConnectionServiceDelegateAdapter.createConnectionComplete(id, null /*Session.Info*/);
+        }
+
+        @Override
         public void createConnectionFailed(PhoneAccountHandle connectionManagerPhoneAccount,
                 String callId, ConnectionRequest request, boolean isIncoming,
                 Session.Info sessionInfo) throws RemoteException {
diff --git a/tests/src/com/android/server/telecom/tests/InCallControllerTests.java b/tests/src/com/android/server/telecom/tests/InCallControllerTests.java
index eb0c419..0c6d3c7 100644
--- a/tests/src/com/android/server/telecom/tests/InCallControllerTests.java
+++ b/tests/src/com/android/server/telecom/tests/InCallControllerTests.java
@@ -28,6 +28,8 @@
 import android.content.res.Resources;
 import android.os.Bundle;
 import android.os.IBinder;
+import android.os.Handler;
+import android.os.Looper;
 import android.os.UserHandle;
 import android.telecom.InCallService;
 import android.telecom.ParcelableCall;
@@ -44,6 +46,7 @@
 import com.android.server.telecom.Call;
 import com.android.server.telecom.CallsManager;
 import com.android.server.telecom.DefaultDialerCache;
+import com.android.server.telecom.EmergencyCallHelper;
 import com.android.server.telecom.InCallController;
 import com.android.server.telecom.PhoneAccountRegistrar;
 import com.android.server.telecom.R;
@@ -96,6 +99,7 @@
     private UserHandle mUserHandle = UserHandle.of(CURRENT_USER_ID);
     private InCallController mInCallController;
     private TelecomSystem.SyncRoot mLock = new TelecomSystem.SyncRoot() {};
+    private EmergencyCallHelper mEmergencyCallHelper;
 
     @Override
     public void setUp() throws Exception {
@@ -105,8 +109,12 @@
         doReturn(mMockResources).when(mMockContext).getResources();
         doReturn(SYS_PKG).when(mMockResources).getString(R.string.ui_default_package);
         doReturn(SYS_CLASS).when(mMockResources).getString(R.string.incall_default_class);
+        doReturn(true).when(mMockResources).getBoolean(R.bool.grant_location_permission_enabled);
+        mEmergencyCallHelper = new EmergencyCallHelper(mMockContext, SYS_PKG,
+                mTimeoutsAdapter);
         mInCallController = new InCallController(mMockContext, mLock, mMockCallsManager,
-                mMockSystemStateProvider, mDefaultDialerCache, mTimeoutsAdapter);
+                mMockSystemStateProvider, mDefaultDialerCache, mTimeoutsAdapter,
+                mEmergencyCallHelper);
     }
 
     @Override
@@ -121,6 +129,8 @@
         when(mMockCallsManager.hasEmergencyCall()).thenReturn(false);
         when(mMockCall.isIncoming()).thenReturn(true);
         when(mMockCall.isExternalCall()).thenReturn(false);
+        when(mTimeoutsAdapter.getEmergencyCallbackWindowMillis(any(ContentResolver.class)))
+                .thenReturn(300_000L);
 
         setupMockPackageManager(false /* default */, true /* system */, false /* external calls */);
         mInCallController.bindToServices(mMockCall);
@@ -151,6 +161,8 @@
         when(mMockCall.getTargetPhoneAccount()).thenReturn(PA_HANDLE);
         when(mMockCall.getIntentExtras()).thenReturn(callExtras);
         when(mMockCall.isExternalCall()).thenReturn(false);
+        when(mTimeoutsAdapter.getEmergencyCallbackWindowMillis(any(ContentResolver.class)))
+                .thenReturn(300_000L);
 
         Intent queryIntent = new Intent(InCallService.SERVICE_INTERFACE);
         setupMockPackageManager(false /* default */, true /* system */, false /* external calls */);
@@ -231,6 +243,7 @@
         when(mMockCallsManager.getCurrentUserHandle()).thenReturn(mUserHandle);
         when(mMockContext.getPackageManager()).thenReturn(mMockPackageManager);
         when(mMockCallsManager.hasEmergencyCall()).thenReturn(true);
+        when(mMockCall.isEmergencyCall()).thenReturn(true);
         when(mMockCall.isIncoming()).thenReturn(false);
         when(mMockCall.getTargetPhoneAccount()).thenReturn(PA_HANDLE);
         when(mMockCall.getIntentExtras()).thenReturn(callExtras);
@@ -240,8 +253,11 @@
         when(mMockContext.bindServiceAsUser(any(Intent.class), any(ServiceConnection.class),
                 eq(Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE),
                 eq(UserHandle.CURRENT))).thenReturn(true);
+        when(mTimeoutsAdapter.getEmergencyCallbackWindowMillis(any(ContentResolver.class)))
+                .thenReturn(300_000L);
 
         setupMockPackageManager(true /* default */, true /* system */, false /* external calls */);
+        setupMockPackageManagerLocationPermission(SYS_PKG, false /* granted */);
 
         mInCallController.bindToServices(mMockCall);
 
@@ -273,6 +289,17 @@
                 TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE));
         assertEquals(callExtras, bindIntent.getExtras().getParcelable(
                 TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS));
+
+        verify(mMockPackageManager).grantRuntimePermission(eq(SYS_PKG),
+                eq(Manifest.permission.ACCESS_FINE_LOCATION), eq(mUserHandle));
+
+        // Pretend that the call has gone away.
+        when(mMockCallsManager.getCalls()).thenReturn(Collections.emptyList());
+        mInCallController.onCallRemoved(mMockCall);
+        waitForHandlerAction(new Handler(Looper.getMainLooper()), TelecomSystemTest.TEST_TIMEOUT);
+
+        verify(mMockPackageManager).revokeRuntimePermission(eq(SYS_PKG),
+                eq(Manifest.permission.ACCESS_FINE_LOCATION), eq(mUserHandle));
     }
 
     @MediumTest
@@ -516,4 +543,12 @@
         }).when(mMockPackageManager).queryIntentServicesAsUser(
                 any(Intent.class), eq(PackageManager.GET_META_DATA), eq(CURRENT_USER_ID));
     }
+
+    private void setupMockPackageManagerLocationPermission(final String pkg,
+            final boolean granted) {
+        when(mMockPackageManager.checkPermission(Manifest.permission.ACCESS_FINE_LOCATION, pkg))
+                .thenReturn(granted
+                        ? PackageManager.PERMISSION_GRANTED
+                        : PackageManager.PERMISSION_DENIED);
+  }
 }
diff --git a/tests/src/com/android/server/telecom/tests/IncomingCallNotifierTest.java b/tests/src/com/android/server/telecom/tests/IncomingCallNotifierTest.java
index c842379..6f2d008 100644
--- a/tests/src/com/android/server/telecom/tests/IncomingCallNotifierTest.java
+++ b/tests/src/com/android/server/telecom/tests/IncomingCallNotifierTest.java
@@ -81,7 +81,7 @@
     @SmallTest
     public void testSingleCall() {
         mIncomingCallNotifier.onCallAdded(mAudioCall);
-        verify(mNotificationManager, never()).notify(
+        verify(mNotificationManager, never()).notify(eq(IncomingCallNotifier.NOTIFICATION_TAG),
                 eq(IncomingCallNotifier.NOTIFICATION_INCOMING_CALL), any());
     }
 
@@ -92,7 +92,7 @@
     public void testIncomingDuringOngoingCall() {
         when(mCallsManagerProxy.hasCallsForOtherPhoneAccount(any())).thenReturn(false);
         mIncomingCallNotifier.onCallAdded(mRingingCall);
-        verify(mNotificationManager, never()).notify(
+        verify(mNotificationManager, never()).notify(eq(IncomingCallNotifier.NOTIFICATION_TAG),
                 eq(IncomingCallNotifier.NOTIFICATION_INCOMING_CALL), any());
     }
 
@@ -107,7 +107,7 @@
 
         mIncomingCallNotifier.onCallAdded(mAudioCall);
         mIncomingCallNotifier.onCallAdded(mRingingCall);
-        verify(mNotificationManager, never()).notify(
+        verify(mNotificationManager, never()).notify(eq(IncomingCallNotifier.NOTIFICATION_TAG),
                 eq(IncomingCallNotifier.NOTIFICATION_INCOMING_CALL), any());;
     }
 
@@ -122,9 +122,10 @@
 
         mIncomingCallNotifier.onCallAdded(mAudioCall);
         mIncomingCallNotifier.onCallAdded(mRingingCall);
-        verify(mNotificationManager).notify(
+        verify(mNotificationManager).notify(eq(IncomingCallNotifier.NOTIFICATION_TAG),
                 eq(IncomingCallNotifier.NOTIFICATION_INCOMING_CALL), any());
         mIncomingCallNotifier.onCallRemoved(mRingingCall);
-        verify(mNotificationManager).cancel(eq(IncomingCallNotifier.NOTIFICATION_INCOMING_CALL));
+        verify(mNotificationManager).cancel(eq(IncomingCallNotifier.NOTIFICATION_TAG),
+                eq(IncomingCallNotifier.NOTIFICATION_INCOMING_CALL));
     }
 }
diff --git a/tests/src/com/android/server/telecom/tests/MissedCallNotifierImplTest.java b/tests/src/com/android/server/telecom/tests/MissedCallNotifierImplTest.java
index 0baad91..950cb2c 100644
--- a/tests/src/com/android/server/telecom/tests/MissedCallNotifierImplTest.java
+++ b/tests/src/com/android/server/telecom/tests/MissedCallNotifierImplTest.java
@@ -27,6 +27,7 @@
 import android.content.pm.ApplicationInfo;
 import android.database.Cursor;
 import android.net.Uri;
+import android.os.Bundle;
 import android.os.Handler;
 import android.os.ICancellationSignal;
 import android.os.Looper;
@@ -44,7 +45,6 @@
 import com.android.server.telecom.DefaultDialerCache;
 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;
@@ -207,7 +207,7 @@
 
         ArgumentCaptor<Integer> requestIdCaptor = ArgumentCaptor.forClass(
                 Integer.class);
-        verify(mNotificationManager, times(2)).notifyAsUser(isNull(String.class),
+        verify(mNotificationManager, times(2)).notifyAsUser(nullable(String.class),
                 requestIdCaptor.capture(), nullable(Notification.class), eq(userHandle));
         verify(mNotificationManager).cancelAsUser(nullable(String.class),
                 eq(requestIdCaptor.getValue()), eq(userHandle));
@@ -245,7 +245,7 @@
         // to notifyAsUser are the versions which contain sensitive information.
         ArgumentCaptor<Notification> notificationArgumentCaptor = ArgumentCaptor.forClass(
                 Notification.class);
-        verify(mNotificationManager, times(2)).notifyAsUser(isNull(String.class), eq(1),
+        verify(mNotificationManager, times(2)).notifyAsUser(nullable(String.class), eq(1),
                 notificationArgumentCaptor.capture(), eq(PRIMARY_USER));
         HashSet<String> privateNotifications = new HashSet<>();
         for (Notification n : notificationArgumentCaptor.getAllValues()) {
@@ -332,7 +332,7 @@
         } else {
             expectedUserHandle = phoneAccount.getAccountHandle().getUserHandle();
         }
-        verify(mNotificationManager).notifyAsUser(isNull(String.class), eq(1),
+        verify(mNotificationManager).notifyAsUser(nullable(String.class), eq(1),
                 notificationArgumentCaptor.capture(), eq((expectedUserHandle)));
 
         Notification.Builder builder;
@@ -424,8 +424,8 @@
                         CallLog.Calls.PRESENTATION_ALLOWED, CALL_TIMESTAMP)
                 .build();
 
-        when(cp.query(anyString(), eq(queryUri), nullable(String[].class), nullable(String.class),
-                nullable(String[].class), nullable(String.class), any(ICancellationSignal.class)))
+        when(cp.query(anyString(), eq(queryUri), nullable(String[].class),
+                nullable(Bundle.class), nullable(ICancellationSignal.class)))
                 .thenReturn(mockMissedCallsCursor);
 
         PhoneAccount phoneAccount = makePhoneAccount(PRIMARY_USER, NO_CAPABILITY);
@@ -492,8 +492,8 @@
                 PRIMARY_USER.getIdentifier());
         IContentProvider cp = getContentProviderForUser(PRIMARY_USER.getIdentifier());
 
-        when(cp.query(anyString(), eq(queryUri), nullable(String[].class), nullable(String.class),
-                nullable(String[].class), nullable(String.class), any(ICancellationSignal.class)))
+        when(cp.query(anyString(), eq(queryUri), nullable(String[].class),
+                nullable(Bundle.class), nullable(ICancellationSignal.class)))
                 .thenReturn(mockMissedCallsCursor);
 
         PhoneAccount phoneAccount = makePhoneAccount(PRIMARY_USER, NO_CAPABILITY);
@@ -534,7 +534,7 @@
         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),
+        verify(mNotificationManager, times(2)).notifyAsUser(nullable(String.class), eq(1),
                 nullable(Notification.class), eq(PRIMARY_USER));
     }
 
diff --git a/tests/src/com/android/server/telecom/tests/NewOutgoingCallIntentBroadcasterTest.java b/tests/src/com/android/server/telecom/tests/NewOutgoingCallIntentBroadcasterTest.java
index b23664d..ad262f1 100644
--- a/tests/src/com/android/server/telecom/tests/NewOutgoingCallIntentBroadcasterTest.java
+++ b/tests/src/com/android/server/telecom/tests/NewOutgoingCallIntentBroadcasterTest.java
@@ -405,7 +405,8 @@
 
         Intent capturedIntent = intentCaptor.getValue();
         assertEquals(Intent.ACTION_NEW_OUTGOING_CALL, capturedIntent.getAction());
-        assertEquals(Intent.FLAG_RECEIVER_FOREGROUND, capturedIntent.getFlags());
+        assertEquals(Intent.FLAG_RECEIVER_FOREGROUND | Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND,
+                capturedIntent.getFlags());
         assertTrue(areBundlesEqual(expectedExtras, capturedIntent.getExtras()));
 
         BroadcastReceiver receiver = receiverCaptor.getValue();
diff --git a/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java b/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
index bbfc11e..305475d 100644
--- a/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
+++ b/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
@@ -841,7 +841,7 @@
         // with whatever video state it's currently in.
         int fakeVideoState = 29578215;
         when(call.getVideoState()).thenReturn(fakeVideoState);
-        mTSIBinder.acceptRingingCall();
+        mTSIBinder.acceptRingingCall("");
         verify(call).answer(eq(fakeVideoState));
     }
 
@@ -854,7 +854,7 @@
         int fakeVideoState = 29578215;
         int realVideoState = VideoProfile.STATE_RX_ENABLED | VideoProfile.STATE_TX_ENABLED;
         when(call.getVideoState()).thenReturn(fakeVideoState);
-        mTSIBinder.acceptRingingCallWithVideoState(realVideoState);
+        mTSIBinder.acceptRingingCallWithVideoState("", realVideoState);
         verify(call).answer(realVideoState);
     }
 
diff --git a/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java b/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
index 1c81fec..ca38eb9 100644
--- a/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
+++ b/tests/src/com/android/server/telecom/tests/TelecomSystemTest.java
@@ -243,6 +243,17 @@
                                     PhoneAccount.CAPABILITY_SIM_SUBSCRIPTION |
                                     PhoneAccount.CAPABILITY_VIDEO_CALLING)
                     .build();
+    final PhoneAccount mPhoneAccountA2 =
+            PhoneAccount.builder(
+                    new PhoneAccountHandle(
+                            mConnectionServiceComponentNameA,
+                            "id A 2"),
+                    "Phone account service A ID 2")
+                    .addSupportedUriScheme("tel")
+                    .setCapabilities(
+                            PhoneAccount.CAPABILITY_CALL_PROVIDER |
+                                    PhoneAccount.CAPABILITY_SIM_SUBSCRIPTION)
+                    .build();
     final PhoneAccount mPhoneAccountB0 =
             PhoneAccount.builder(
                     new PhoneAccountHandle(
@@ -445,6 +456,7 @@
 
         mTelecomSystem.getPhoneAccountRegistrar().registerPhoneAccount(mPhoneAccountA0);
         mTelecomSystem.getPhoneAccountRegistrar().registerPhoneAccount(mPhoneAccountA1);
+        mTelecomSystem.getPhoneAccountRegistrar().registerPhoneAccount(mPhoneAccountA2);
         mTelecomSystem.getPhoneAccountRegistrar().registerPhoneAccount(mPhoneAccountB0);
         mTelecomSystem.getPhoneAccountRegistrar().registerPhoneAccount(mPhoneAccountE0);
         mTelecomSystem.getPhoneAccountRegistrar().registerPhoneAccount(mPhoneAccountE1);
@@ -720,6 +732,10 @@
         // Wait for the callback in ConnectionService#onAdapterAttached to execute.
         waitForHandlerAction(new Handler(Looper.getMainLooper()), TEST_TIMEOUT);
 
+        // Ensure callback to CS on successful creation happened.
+        verify(connectionServiceFixture.getTestDouble(), timeout(TEST_TIMEOUT))
+                .createConnectionComplete(anyString(), any());
+
         assertEquals(startingNumCalls + 1, mInCallServiceFixtureX.mCallById.size());
         assertEquals(startingNumCalls + 1, mInCallServiceFixtureY.mCallById.size());
 
@@ -767,6 +783,12 @@
 
         // Wait for the handler to start the CallerInfo lookup
         waitForHandlerAction(new Handler(Looper.getMainLooper()), TEST_TIMEOUT);
+
+        // Ensure callback to CS on successful creation happened.
+        verify(connectionServiceFixture.getTestDouble(), timeout(TEST_TIMEOUT))
+                .createConnectionComplete(anyString(), any());
+
+
         // Process the CallerInfo lookup reply
         mCallerInfoAsyncQueryFactoryFixture.mRequests.forEach(
                 CallerInfoAsyncQueryFactoryFixture.Request::reply);