Merge "IMS-VT: Exit full screen mode of in-call UI"
diff --git a/Android.mk b/Android.mk
index c8e950d..2cb292a 100755
--- a/Android.mk
+++ b/Android.mk
@@ -21,6 +21,7 @@
 res_dirs := res \
     $(incallui_dir)/res \
     $(contacts_common_dir)/res \
+    $(contacts_common_dir)/icons/res \
     $(phone_common_dir)/res
 
 src_dirs += \
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index ccbb8b4..7bbd37f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -181,8 +181,8 @@
         <activity android:name="com.android.dialer.CallDetailActivity"
             android:label="@string/callDetailTitle"
             android:theme="@style/CallDetailActivityTheme"
-            android:icon="@mipmap/ic_launcher_phone"
-            android:parentActivityName="com.android.dialer.calllog.CallLogActivity">
+            android:parentActivityName="com.android.dialer.calllog.CallLogActivity"
+            android:icon="@mipmap/ic_launcher_phone">
             <intent-filter>
                 <action android:name="android.intent.action.VIEW"/>
                 <category android:name="android.intent.category.DEFAULT"/>
@@ -341,6 +341,8 @@
             <meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="true" />
             <meta-data android:name="android.telecom.IN_CALL_SERVICE_RINGING"
                 android:value="false"/>
+            <meta-data android:name="android.telecom.INCLUDE_EXTERNAL_CALLS"
+                       android:value="true"/>
             <intent-filter>
                 <action android:name="android.telecom.InCallService"/>
             </intent-filter>
diff --git a/InCallUI/res/layout-w500dp-land/call_card_fragment.xml b/InCallUI/res/layout-w500dp-land/call_card_fragment.xml
index 049f41f..89b7fb5 100644
--- a/InCallUI/res/layout-w500dp-land/call_card_fragment.xml
+++ b/InCallUI/res/layout-w500dp-land/call_card_fragment.xml
@@ -187,14 +187,20 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
 
+    <!-- Margin left and centerHorizontal don't work well together, so use a Space instead. -->
+    <Space
+        android:id="@+id/floating_end_call_action_button_margin_left"
+        android:layout_width="@dimen/end_call_button_margin_left"
+        android:layout_height="wrap_content"
+        android:layout_centerHorizontal="true" />
+
      <FrameLayout
         android:id="@+id/floating_end_call_action_button_container"
         android:layout_width="@dimen/end_call_floating_action_button_diameter"
         android:layout_height="@dimen/end_call_floating_action_button_diameter"
         android:background="@drawable/fab_red"
-        android:layout_alignParentRight="true"
+        android:layout_toRightOf="@id/floating_end_call_action_button_margin_left"
         android:layout_alignParentBottom="true"
-        android:layout_marginRight="@dimen/end_call_button_margin_right"
         android:layout_marginBottom="@dimen/end_call_button_margin_bottom">
         <ImageButton android:id="@+id/floating_end_call_action_button"
             android:layout_width="match_parent"
diff --git a/InCallUI/res/layout/call_button_fragment.xml b/InCallUI/res/layout/call_button_fragment.xml
index 9e3ec0a..9ed4e56 100644
--- a/InCallUI/res/layout/call_button_fragment.xml
+++ b/InCallUI/res/layout/call_button_fragment.xml
@@ -126,7 +126,7 @@
         <ToggleButton android:id="@+id/pauseVideoButton"
             style="@style/InCallCompoundButton"
             android:background="@drawable/btn_compound_video_off"
-            android:contentDescription="@string/onscreenPauseVideoText"
+            android:contentDescription="@string/onscreenTurnOffCameraText"
             android:visibility="gone" />
 
         <!-- "Change to audio call" for video calls. -->
diff --git a/InCallUI/res/values-af/strings.xml b/InCallUI/res/values-af/strings.xml
index 0dc1828..0d7130f 100644
--- a/InCallUI/res/values-af/strings.xml
+++ b/InCallUI/res/values-af/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Maak toe"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Bel terug"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Boodskap"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Voortgesette oproep op \'n ander toestel"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Sit oproep deur"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Skakel vliegtuigmodus eers af om \'n oproep te maak."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nie geregistreer op netwerk nie."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Sellulêre netwerk is nie beskikbaar nie."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video-oproep"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Verander na stemoproep"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Wissel kamera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Laat video wag"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Skakel kamera aan"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Skakel kamera af"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Nog opsies"</string>
     <string name="player_started" msgid="3478865572468310331">"Speler het begin"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Speler het gestop"</string>
diff --git a/InCallUI/res/values-am/strings.xml b/InCallUI/res/values-am/strings.xml
index 5306c9c..ecfb2a9 100644
--- a/InCallUI/res/values-am/strings.xml
+++ b/InCallUI/res/values-am/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"አስወግድ"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"መልሰህ ደውል"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"መልእክት"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"በሌላ መሳሪያ ጥሪ በመካሄድ ላይ ነው"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"ጥሪ አስተላልፍ"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"ለመደወል፣ መጀመሪያ የአውሮፕላኑን ሁኔታ ያጥፉ።"</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"በአውታረ መረቡ ላይ አልተመዘገበም።"</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"የተንቀሳቃሽ ስልክ አውታረ መረብ አይገኝም።"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"የቪዲዮ ጥሪ"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"ወደ ድምፅ ጥሪ ይለውጡ"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ካሜራ ቀይር"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ቪድዮ ለአፍታ አቁም"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"ካሜራ ያብሩ"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"ካሜራ ያጥፉ"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"ተጨማሪ አማራጮች"</string>
     <string name="player_started" msgid="3478865572468310331">"አጫዋች ጀምሯል"</string>
     <string name="player_stopped" msgid="1278611664986561535">"አጫዋች ቆሟል"</string>
diff --git a/InCallUI/res/values-ar/strings.xml b/InCallUI/res/values-ar/strings.xml
index a9b4b1d..0c315da 100644
--- a/InCallUI/res/values-ar/strings.xml
+++ b/InCallUI/res/values-ar/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"تجاهل"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"معاودة الاتصال"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"رسالة"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"مكالمة جارية على جهاز آخر"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"تحويل الاتصال"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"لإجراء مكالمة، أوقف تشغيل وضع الطائرة أولاً."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"غير مسجل على الشبكة."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"شبكة الجوّال غير متاحة."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"مكالمة فيديو"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"التغيير إلى مكالمة صوتية"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"تبديل الكاميرا"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"إيقاف الفيديو مؤقتًا"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"تشغيل الكاميرا"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"إيقاف الكاميرا"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"خيارات أخرى"</string>
     <string name="player_started" msgid="3478865572468310331">"تم بدء المشغّل"</string>
     <string name="player_stopped" msgid="1278611664986561535">"تم إيقاف المشغّل"</string>
diff --git a/InCallUI/res/values-az-rAZ/strings.xml b/InCallUI/res/values-az-rAZ/strings.xml
index 3ce629f..779843e 100644
--- a/InCallUI/res/values-az-rAZ/strings.xml
+++ b/InCallUI/res/values-az-rAZ/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Rədd edin"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Geriyə zəng"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Mesaj"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Digər cihazda davam etməkdə olan zəng"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Zəngi Transfer edin"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Zəng etmək üçün ilk olaraq Uçuş Rejimini söndürün."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Şəbəkədə qeydə alınmayıb."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobil şəbəkə əlçatan deyil"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video zəng"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Səsli çağrıya dəyişin"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Kameraya keçin"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Videonu durdurun"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Kameranı yandırın"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Kameranı söndürün"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Daha çox seçim"</string>
     <string name="player_started" msgid="3478865572468310331">"Pleyer Başladıldı"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Pleyer Dayandırıldı"</string>
diff --git a/InCallUI/res/values-b+sr+Latn/strings.xml b/InCallUI/res/values-b+sr+Latn/strings.xml
index 20445ab..a662156 100644
--- a/InCallUI/res/values-b+sr+Latn/strings.xml
+++ b/InCallUI/res/values-b+sr+Latn/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Odbaci"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Uzvrati poziv"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Pošalji SMS"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Poziv je u toku na drugom uređaju"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Prebaci poziv"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Da biste uputili poziv, prvo isključite režim rada u avionu."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nije registrovano na mreži."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilna mreža nije dostupna."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video poziv"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Promeni u glasovni poziv"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Promeni kameru"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pauziraj video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Uključi kameru"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Isključi kameru"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Još opcija"</string>
     <string name="player_started" msgid="3478865572468310331">"Plejer je pokrenut"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Plejer je zaustavljen"</string>
diff --git a/InCallUI/res/values-be-rBY/strings.xml b/InCallUI/res/values-be-rBY/strings.xml
index b4b5a02..a99ea64 100644
--- a/InCallUI/res/values-be-rBY/strings.xml
+++ b/InCallUI/res/values-be-rBY/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Адхіліць"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Звар. выклік"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Паведамленне"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Бягучы выклік на іншай прыладзе"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Перадаць выклік"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Каб зрабіць выклік, спачатку выключыце рэжым палёту."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Не зарэгістраваны ў сетцы."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Мабільная сетка недаступная."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Відэавыклік"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Змяніць на галасавы выклік"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Пераключыць камеру"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Прыпыніць прайграванне відэа"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Уключыць камеру"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Адключыць камеру"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Дадатковыя параметры"</string>
     <string name="player_started" msgid="3478865572468310331">"Прайгравальнік запушчаны"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Прайгравальнік спынены"</string>
diff --git a/InCallUI/res/values-bg/strings.xml b/InCallUI/res/values-bg/strings.xml
index 92baee5..87c5de5 100644
--- a/InCallUI/res/values-bg/strings.xml
+++ b/InCallUI/res/values-bg/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Отхвърляне"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Обр. обажд."</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Съобщение"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Текущо обаждане на друго устройство"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Прехвърляне на обаждането"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"За да осъществите обаждане, първо изключете самолетния режим."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Няма регистрация в мрежата."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Няма достъп до клетъчната мрежа."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Видеообажд."</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Преминаване към гласово обаждане"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Превключване на камерата"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Поставяне на видеовръзката на пауза"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Включване на камерата"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Изключване на камерата"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Още опции"</string>
     <string name="player_started" msgid="3478865572468310331">"Плейърът е стартиран"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Плейърът е спрян"</string>
diff --git a/InCallUI/res/values-bn-rBD/strings.xml b/InCallUI/res/values-bn-rBD/strings.xml
index 56400c3..0e05f6d 100644
--- a/InCallUI/res/values-bn-rBD/strings.xml
+++ b/InCallUI/res/values-bn-rBD/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"খারিজ করুন"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"ঘুরিয়ে কল করুন"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"বার্তা"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"অন্য ডিভাইসে চালু থাকা কল"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"কল স্থানান্তর করুন"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"একটি কল করতে, প্রথমে বিমানমোড বন্ধ করুন৷"</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"নেটওয়ার্কে নিবন্ধিত নয়৷"</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"সেলুলার নেটওয়ার্ক উপলব্ধ নয়।"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"ভিডিও কল"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"ভয়েস কলে পরিবর্তন করুন"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ক্যামেরা স্যুইচ করুন"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ভিডিও বিরাম দিন"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"ক্যামেরা চালু করুন"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"ক্যামেরা বন্ধ করুন"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"আরো বিকল্প"</string>
     <string name="player_started" msgid="3478865572468310331">"প্লেয়ার শুরু হয়েছে"</string>
     <string name="player_stopped" msgid="1278611664986561535">"প্লেয়ার বন্ধ হয়ে গেছে"</string>
diff --git a/InCallUI/res/values-bs-rBA/strings.xml b/InCallUI/res/values-bs-rBA/strings.xml
index df82594..e99b335 100644
--- a/InCallUI/res/values-bs-rBA/strings.xml
+++ b/InCallUI/res/values-bs-rBA/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Odbaci"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Povr. poziv"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Poruka"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Poziv u toku na drugom uređaju"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Prenesi poziv"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Da uputite poziv, isključite Način rada u avionu."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nije registrirano na mreži."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilna mreža nije dostupna."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videopoziv"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Promijeni na glasovni poziv"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Promijeni kameru"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pauziraj videopoziv"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Uključi kameru"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Isključi kameru"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Više opcija"</string>
     <string name="player_started" msgid="3478865572468310331">"Plejer je pokrenut"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Plejer je zaustavljen"</string>
diff --git a/InCallUI/res/values-ca/strings.xml b/InCallUI/res/values-ca/strings.xml
index e7129a5..ada65b4 100644
--- a/InCallUI/res/values-ca/strings.xml
+++ b/InCallUI/res/values-ca/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Ignora"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Torna trucada"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Missatge"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Trucada en curs en un altre dispositiu"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transfereix la trucada"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Per fer una trucada, primer desactiva el mode d\'avió."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"No s\'ha registrat a la xarxa."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"La xarxa mòbil no està disponible."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videotrucada"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Canvia a trucada de veu"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Canvia la càmera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Posa en pausa el vídeo"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Activa la càmera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Desactiva la càmera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Més opcions"</string>
     <string name="player_started" msgid="3478865572468310331">"S\'ha iniciat el reproductor"</string>
     <string name="player_stopped" msgid="1278611664986561535">"S\'ha aturat el reproductor"</string>
@@ -191,6 +194,6 @@
     <string name="opens_today_at" msgid="6281212768937222891">"Obre avui a les <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
     <string name="closes_today_at" msgid="4822369201263491509">"Tanca a les <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
     <string name="closed_today_at" msgid="4060072663433467233">"Avui ha tancat a les <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
-    <string name="open_now" msgid="4615706338669555999">"Ara és obert"</string>
+    <string name="open_now" msgid="4615706338669555999">"Obert ara"</string>
     <string name="closed_now" msgid="2635314668145282080">"Ara és tancat"</string>
 </resources>
diff --git a/InCallUI/res/values-cs/strings.xml b/InCallUI/res/values-cs/strings.xml
index 9f869f2..11efecc 100644
--- a/InCallUI/res/values-cs/strings.xml
+++ b/InCallUI/res/values-cs/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Odmítnout"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Zavolat zpět"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Posl. zprávu"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Probíhá hovor na jiném zařízení"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Převést hovor sem"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Chcete-li telefonovat, nejprve vypněte režim Letadlo."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Přihlášení k síti nebylo úspěšné."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilní síť je nedostupná."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videohovor"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Změnit na hlasové volání"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Přepnout kameru"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pozastavit video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Zapnout kameru"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Vypnout kameru"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Další možnosti"</string>
     <string name="player_started" msgid="3478865572468310331">"Přehrávač spuštěn"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Přehrávač zastaven"</string>
diff --git a/InCallUI/res/values-da/strings.xml b/InCallUI/res/values-da/strings.xml
index 01167cb..a43e452 100644
--- a/InCallUI/res/values-da/strings.xml
+++ b/InCallUI/res/values-da/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Afvis"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Ring tilbage"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Besked"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Igangværende opkald på en anden enhed"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Overfør opkald"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Slå Flytilstand fra først for at foretage et opkald."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ikke registreret på netværket."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilnetværket er ikke tilgængeligt."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videoopkald"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Skift til taleopkald"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Skift kamera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Sæt video på pause"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Slå kameraet til"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Slå kameraet fra"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Flere valgmuligheder"</string>
     <string name="player_started" msgid="3478865572468310331">"Afspilleren er startet"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Afspilleren er stoppet"</string>
diff --git a/InCallUI/res/values-de/strings.xml b/InCallUI/res/values-de/strings.xml
index dd9f9b8..7cb4de9 100644
--- a/InCallUI/res/values-de/strings.xml
+++ b/InCallUI/res/values-de/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Ablehnen"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Zurückrufen"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Nachricht"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Aktiver Anruf auf anderem Gerät"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Anruf übertragen"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Deaktiviere zunächst den Flugmodus, um einen Anruf zu tätigen."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nicht in Netzwerk registriert."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilfunknetz nicht verfügbar."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videoanruf"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Zu Sprachanruf wechseln"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Kamera wechseln"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Video pausieren"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Kamera einschalten"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Kamera ausschalten"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Weitere Optionen"</string>
     <string name="player_started" msgid="3478865572468310331">"Videoübertragung gestartet"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Videoübertragung gestoppt"</string>
diff --git a/InCallUI/res/values-el/strings.xml b/InCallUI/res/values-el/strings.xml
index bdec7d0..011c990 100644
--- a/InCallUI/res/values-el/strings.xml
+++ b/InCallUI/res/values-el/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Παράβλεψη"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Επανάκληση"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Μήνυμα"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Κλήση σε εξέλιξη σε άλλη συσκευή"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Μεταφορά κλήσης"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Για να πραγματοποιήσετε μια κλήση, απενεργοποιήστε πρώτα τη λειτουργία πτήσης."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Δεν έχετε εγγραφεί στο δίκτυο."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Το δίκτυο κινητής τηλεφωνίας δεν είναι διαθέσιμο."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Βιντεοκλ."</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Αλλαγή σε φωνητική κλήση"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Αλλαγή κάμερας"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Παύση βίντεο"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Ενεργοποίηση κάμερας"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Απενεργοποίηση κάμερας"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Περισσότερες επιλογές"</string>
     <string name="player_started" msgid="3478865572468310331">"Το πρόγραμμα αναπαραγωγής βίντεο ξεκίνησε"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Το πρόγραμμα αναπαραγωγής βίντεο διακόπηκε"</string>
diff --git a/InCallUI/res/values-en-rAU/strings.xml b/InCallUI/res/values-en-rAU/strings.xml
index 0cf51f4..f4f9716 100644
--- a/InCallUI/res/values-en-rAU/strings.xml
+++ b/InCallUI/res/values-en-rAU/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Dismiss"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Call back"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Message"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Ongoing call on another device"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transfer call"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"To place a call, first turn off Aeroplane mode."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Not registered on network."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobile network not available."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video call"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Change to voice call"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Switch camera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pause video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Turn on camera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Turn off camera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"More options"</string>
     <string name="player_started" msgid="3478865572468310331">"Player Started"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Player Stopped"</string>
diff --git a/InCallUI/res/values-en-rGB/strings.xml b/InCallUI/res/values-en-rGB/strings.xml
index 0cf51f4..f4f9716 100644
--- a/InCallUI/res/values-en-rGB/strings.xml
+++ b/InCallUI/res/values-en-rGB/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Dismiss"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Call back"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Message"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Ongoing call on another device"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transfer call"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"To place a call, first turn off Aeroplane mode."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Not registered on network."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobile network not available."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video call"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Change to voice call"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Switch camera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pause video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Turn on camera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Turn off camera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"More options"</string>
     <string name="player_started" msgid="3478865572468310331">"Player Started"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Player Stopped"</string>
diff --git a/InCallUI/res/values-en-rIN/strings.xml b/InCallUI/res/values-en-rIN/strings.xml
index 0cf51f4..f4f9716 100644
--- a/InCallUI/res/values-en-rIN/strings.xml
+++ b/InCallUI/res/values-en-rIN/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Dismiss"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Call back"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Message"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Ongoing call on another device"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transfer call"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"To place a call, first turn off Aeroplane mode."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Not registered on network."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobile network not available."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video call"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Change to voice call"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Switch camera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pause video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Turn on camera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Turn off camera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"More options"</string>
     <string name="player_started" msgid="3478865572468310331">"Player Started"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Player Stopped"</string>
diff --git a/InCallUI/res/values-es-rUS/strings.xml b/InCallUI/res/values-es-rUS/strings.xml
index ab95407..39818a4 100644
--- a/InCallUI/res/values-es-rUS/strings.xml
+++ b/InCallUI/res/values-es-rUS/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Descartar"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Llamar"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Mensaje"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Llamada en curso en otro dispositivo"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transferir llamada"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Para realizar una llamada, primero debes desactivar el modo de avión."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"No está registrado en la red."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"La red móvil no está disponible."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Cambiar a llamada de voz"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Cambiar cámara"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pausar video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Activar la cámara"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Desactivar la cámara"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Más opciones"</string>
     <string name="player_started" msgid="3478865572468310331">"Se inició el reproductor"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Se detuvo el reproductor"</string>
diff --git a/InCallUI/res/values-es/strings.xml b/InCallUI/res/values-es/strings.xml
index 518cf72..b0fcc5f 100644
--- a/InCallUI/res/values-es/strings.xml
+++ b/InCallUI/res/values-es/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Rechazar"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Llamar"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Mensaje"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Llamada activa en otro dispositivo"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transferir llamada"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Para realizar una llamada, primero debes desactivar el modo avión."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"No estás registrado en la red."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"La red móvil no está disponible."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videollamada"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Cambiar a llamada de voz"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Cambiar cámara"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pausar vídeo"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Activar cámara"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Desactivar cámara"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Más opciones"</string>
     <string name="player_started" msgid="3478865572468310331">"Reproductor iniciado"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Reproductor detenido"</string>
diff --git a/InCallUI/res/values-et-rEE/strings.xml b/InCallUI/res/values-et-rEE/strings.xml
index 9d67a7b..3e4d0d9 100644
--- a/InCallUI/res/values-et-rEE/strings.xml
+++ b/InCallUI/res/values-et-rEE/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Loobu"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Helista tagasi"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Saada sõnum"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Pooleliolev kõne teise seadmes"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Kõne ülekandmine"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Helistamiseks lülitage esmalt lennukirežiim välja."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ei ole võrgus registreeritud."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobiilsidevõrk pole saadaval."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videokõne"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Mine üle häälkõnele"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Vaheta kaamerat"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Peata video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Lülita kaamera sisse"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Lülita kaamera välja"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Rohkem valikuid"</string>
     <string name="player_started" msgid="3478865572468310331">"Pleier käivitati"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Pleier peatati"</string>
diff --git a/InCallUI/res/values-eu-rES/strings.xml b/InCallUI/res/values-eu-rES/strings.xml
index 6686007..5b59d97 100644
--- a/InCallUI/res/values-eu-rES/strings.xml
+++ b/InCallUI/res/values-eu-rES/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Baztertu"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Itzuli deia"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Bidali SMSa"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Dei bat abian da beste gailu batean"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transferitu deia"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Deitzeko, desaktibatu hegaldi modua."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ez dago sarean erregistratuta."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Sare mugikorra ez dago erabilgarri."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Bideo-deia"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Aldatu ahots-deira"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Aldatu kamera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pausatu bideoa"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Aktibatu kamera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Desaktibatu kamera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Aukera gehiago"</string>
     <string name="player_started" msgid="3478865572468310331">"Abian da erreproduzigailua"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Gelditu da erreproduzigailua"</string>
diff --git a/InCallUI/res/values-fa/strings.xml b/InCallUI/res/values-fa/strings.xml
index 5c96a2e..43390c7 100644
--- a/InCallUI/res/values-fa/strings.xml
+++ b/InCallUI/res/values-fa/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"نپذیرفتن"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"پاسخ تماس"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"پیام"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"تماس در حال انجام در دستگاهی دیگر"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"انتقال تماس"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"برای برقراری تماس، ابتدا حالت هواپیما را خاموش کنید."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"در شبکه ثبت نشده است."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"شبکه تلفن همراه در دسترس نیست."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"تماس ویدیویی"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"تغییر به تماس صوتی"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"تعویض دوربین"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"توقف موقت ویدیو"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"روشن کردن دوربین"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"خاموش کردن دوربین"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"گزینه‌های بیشتر"</string>
     <string name="player_started" msgid="3478865572468310331">"پخش‌کننده راه‌اندازی شد"</string>
     <string name="player_stopped" msgid="1278611664986561535">"پخش‌کننده متوقف شد"</string>
diff --git a/InCallUI/res/values-fi/strings.xml b/InCallUI/res/values-fi/strings.xml
index 084c696..392d55b 100644
--- a/InCallUI/res/values-fi/strings.xml
+++ b/InCallUI/res/values-fi/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Hylkää"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Soita"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Viesti"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Puhelu on kesken toisella laitteella."</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Siirrä puhelu"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Poista lentokonetila käytöstä ennen puhelun soittamista."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ei rekisteröity verkkoon"</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Matkapuhelinverkko ei ole käytettävissä."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Muuta äänipuheluksi"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Vaihda kameraa"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Keskeytä video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Käynnistä kamera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Sammuta kamera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Lisäasetukset"</string>
     <string name="player_started" msgid="3478865572468310331">"Soitin käynnistettiin."</string>
     <string name="player_stopped" msgid="1278611664986561535">"Soitin pysäytettiin."</string>
diff --git a/InCallUI/res/values-fr-rCA/strings.xml b/InCallUI/res/values-fr-rCA/strings.xml
index 2218e78..a8d39ca 100644
--- a/InCallUI/res/values-fr-rCA/strings.xml
+++ b/InCallUI/res/values-fr-rCA/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Fermer"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Rappeler"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Message"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Appel en cours sur un autre appareil"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transférer l\'appel"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Pour faire un appel, d\'abord désactiver le mode Avion."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Non enregistré sur le réseau."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Réseau cellulaire non disponible."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Appel vidéo"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Passer à un appel vocal"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Changer d\'appareil photo"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Interrompre la vidéo"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Activer la caméra"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Désactiver la caméra"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Plus d\'options"</string>
     <string name="player_started" msgid="3478865572468310331">"Le lecteur a démarré"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Le lecteur a arrêté"</string>
diff --git a/InCallUI/res/values-fr/strings.xml b/InCallUI/res/values-fr/strings.xml
index 3dbf8c1..35fd86c 100644
--- a/InCallUI/res/values-fr/strings.xml
+++ b/InCallUI/res/values-fr/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Fermer"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Rappeler"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Envoyer SMS"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Appel en cours sur un autre appareil"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transférer l\'appel"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Veuillez désactiver le mode Avion avant de passer un appel."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Non enregistré sur le réseau."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Réseau mobile indisponible."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Appel vidéo"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Passer à un appel vocal"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Changer de caméra"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Suspendre la vidéo"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Activer la caméra"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Désactiver la caméra"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Plus d\'options"</string>
     <string name="player_started" msgid="3478865572468310331">"Le lecteur a démarré."</string>
     <string name="player_stopped" msgid="1278611664986561535">"Le lecteur s\'est arrêté."</string>
diff --git a/InCallUI/res/values-gl-rES/strings.xml b/InCallUI/res/values-gl-rES/strings.xml
index 7a3725f..5297329 100644
--- a/InCallUI/res/values-gl-rES/strings.xml
+++ b/InCallUI/res/values-gl-rES/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Ignorar"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Dev. chamada"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Mensaxe"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Chamada en curso noutro dispositivo"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transferir chamada"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Para realizar unha chamada, primeiro desactiva o modo avión."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Sen rexistro na rede."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rede móbil non dispoñible."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videocham."</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Cambiar para chamada de voz"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Cambiar cámara"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pausar vídeo"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Acender cámara"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Apagar cámara"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Máis opcións"</string>
     <string name="player_started" msgid="3478865572468310331">"Iniciouse o reprodutor"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Detívose o reprodutor"</string>
diff --git a/InCallUI/res/values-gu-rIN/strings.xml b/InCallUI/res/values-gu-rIN/strings.xml
index 30dfb88..e04e290 100644
--- a/InCallUI/res/values-gu-rIN/strings.xml
+++ b/InCallUI/res/values-gu-rIN/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"છોડી દો"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"કૉલ બૅક કરો"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"સંદેશ"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"અન્ય ઉપકરણ પર ચાલી રહેલ કૉલ"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"કૉલ સ્થાનાંતરિત કરો"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"કૉલ કરવા માટે, પહેલા એરપ્લેન મોડને બંધ કરો."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"નેટવર્ક પર નોંધણી કરાયેલ નથી."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"સેલ્યુલર નેટવર્ક ઉપલબ્ધ નથી."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"વિડિઓ કૉલ"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"વૉઇસ કૉલ પર બદલો"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"કૅમેરા પર સ્વિચ કરો"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"વિડિઓ થોભાવો"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"કૅમેરો ચાલુ કરો"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"કૅમેરો બંધ કરો"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"વધુ વિકલ્પો"</string>
     <string name="player_started" msgid="3478865572468310331">"પ્લેયર પ્રારંભ કર્યું"</string>
     <string name="player_stopped" msgid="1278611664986561535">"પ્લેયર બંધ કર્યું"</string>
diff --git a/InCallUI/res/values-hi/strings.xml b/InCallUI/res/values-hi/strings.xml
index 6d4e8ae..f076ac2 100644
--- a/InCallUI/res/values-hi/strings.xml
+++ b/InCallUI/res/values-hi/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"ख़ारिज करें"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"कॉल बैक करें"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"संदेश"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"दूसरे डिवाइस पर चल रहा कॉल"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"कॉल स्थानान्तरित करें"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"कॉल करने के लिए, पहले हवाई जहाज़ मोड बंद करें."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"नेटवर्क पर पंजीकृत नहीं."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"सेल्युलर नेटवर्क उपलब्ध नहीं."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"वीडियो कॉल"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"वॉइस कॉल में बदलें"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"कैमरा स्विच करें"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"वीडियो रोकें"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"कैमरा चालू करें"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"कैमरा बंद करें"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"अधिक विकल्प"</string>
     <string name="player_started" msgid="3478865572468310331">"प्लेयर प्रारंभ हो गया"</string>
     <string name="player_stopped" msgid="1278611664986561535">"प्लेयर रुक गया"</string>
diff --git a/InCallUI/res/values-hr/strings.xml b/InCallUI/res/values-hr/strings.xml
index f870af1..1100b0c 100644
--- a/InCallUI/res/values-hr/strings.xml
+++ b/InCallUI/res/values-hr/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Odbaci"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Uzvrati"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Poruka"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Poziv u tijeku na drugom uređaju"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Prijenos poziva"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Da biste uspostavili poziv, isključite način rada u zrakoplovu."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nije registrirano na mreži."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilna mreža nije dostupna."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videopoziv"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Prijeđi na glasovni poziv"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Promijeni kameru"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pauziraj videopoziv"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Uključivanje kamere"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Isključivanje kamere"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Više opcija"</string>
     <string name="player_started" msgid="3478865572468310331">"Player je pokrenut"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Player je prekinut"</string>
diff --git a/InCallUI/res/values-hu/strings.xml b/InCallUI/res/values-hu/strings.xml
index 9cac188..543b352 100644
--- a/InCallUI/res/values-hu/strings.xml
+++ b/InCallUI/res/values-hu/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Elvetés"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Visszahívás"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Üzenet"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Folyamatban lévő hívás egy másik eszközön"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Hívásátirányítás"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Hívásindításhoz kapcsolja ki a Repülős üzemmódot."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nincs regisztrálva a hálózaton."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"A mobilhálózat nem áll rendelkezésre."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videóhívás"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Váltás hanghívásra"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Váltás a kamerák között"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Videó szüneteltetése"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Kamera bekapcsolása"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Kamera kikapcsolása"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"További lehetőségek"</string>
     <string name="player_started" msgid="3478865572468310331">"A lejátszó elindult"</string>
     <string name="player_stopped" msgid="1278611664986561535">"A lejátszó leállt"</string>
diff --git a/InCallUI/res/values-hy-rAM/strings.xml b/InCallUI/res/values-hy-rAM/strings.xml
index 9b755d0..ab63914 100644
--- a/InCallUI/res/values-hy-rAM/strings.xml
+++ b/InCallUI/res/values-hy-rAM/strings.xml
@@ -80,9 +80,11 @@
     <string name="notification_action_answer_video" msgid="2400233093494856655">"Տեսազանգ"</string>
     <string name="notification_action_answer_voice" msgid="3206168292649273866">"Ձայնային"</string>
     <string name="notification_action_accept" msgid="8595047032790476122">"Ընդունել"</string>
-    <string name="notification_action_dismiss" msgid="1998811618480434300">"Փակել"</string>
+    <string name="notification_action_dismiss" msgid="1998811618480434300">"Մերժել"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Հետ զանգել"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Հաղորդագրություն"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Ընթացիկ զանգ այլ սարքում"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Փոխանցել զանգը"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Զանգ կատարելու համար նախ անջատեք Ինքնաթիռի ռեժիմը:"</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ցանցում գրանցված չէ:"</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Բջջային ցանցն անհասանելի է:"</string>
@@ -97,7 +99,7 @@
     <string name="incall_error_supp_service_reject" msgid="4543915892409365831">"Հնարավոր չէ մերժել զանգը:"</string>
     <string name="incall_error_supp_service_hangup" msgid="101167589969625637">"Հնարավոր չէ անջատել զանգ(եր)ը:"</string>
     <string name="incall_call_type_label_sip" msgid="1327822795765282192">"SIP զանգ"</string>
-    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Արտակարգ իրավիճակի զանգ"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="7882321703828314787">"Շտապ կանչ"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="4382752053654184327">"Ռադիոն միացվում է…"</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="1672288458940152814">"Ծառայությունը մատչելի չէ: Փորձը կրկնվում է…"</string>
     <string name="dial_emergency_error" msgid="582305854626092376">"Հնարավոր չէ զանգել: <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> համարը արտակարգ իրավիճակի համար չէ:"</string>
@@ -120,8 +122,9 @@
     <string name="onscreenAudioText" msgid="8963459818052898299">"Ձայնային"</string>
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Տեսազանգ"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Փոխարկել ձայնային կանչի"</string>
-    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Փոխել տեսախցիկը"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Դադարեցնել տեսազանգը"</string>
+    <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Փոխարկել խցիկը"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Միացնել տեսախցիկը"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Անջատել տեսախցիկը"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Այլ ընտրանքներ"</string>
     <string name="player_started" msgid="3478865572468310331">"Նվագարկիչը մեկնարկել է"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Նվագարկիչը դադարեցվել է"</string>
diff --git a/InCallUI/res/values-in/strings.xml b/InCallUI/res/values-in/strings.xml
index ba1a2fe..0506c4e 100644
--- a/InCallUI/res/values-in/strings.xml
+++ b/InCallUI/res/values-in/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Tutup"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Telepon balik"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Pesan"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Panggilan yang berlangsung di perangkat lain"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transfer Panggilan"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Untuk melakukan panggilan, terlebih dahulu nonaktifkan mode Pesawat."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Tidak terdaftar pada jaringan."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Jaringan seluler tidak tersedia."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video call"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Ubah ke panggilan suara"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Beralih kamera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Jeda video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Nyalakan kamera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Matikan kamera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Opsi lainnya"</string>
     <string name="player_started" msgid="3478865572468310331">"Pemutar Dimulai"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Pemutar Dihentikan"</string>
diff --git a/InCallUI/res/values-is-rIS/strings.xml b/InCallUI/res/values-is-rIS/strings.xml
index e749b17..60eb5df 100644
--- a/InCallUI/res/values-is-rIS/strings.xml
+++ b/InCallUI/res/values-is-rIS/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Hunsa"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Hringja til baka"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Skilaboð"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Símtal í gangi í öðru tæki"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Flytja símtal"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Til að hringja símtal þarftu fyrst að slökkva á flugstillingu."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ekki skráð á símkerfi."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Farsímakerfi ekki til staðar."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Myndsímtal"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Breyta í símtal"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Skipta um myndavél"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Gera hlé á myndskeiði"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Kveikja á myndavél"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Slökkva á myndavél"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Fleiri valkostir"</string>
     <string name="player_started" msgid="3478865572468310331">"Spilari ræstur"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Spilari stöðvaður"</string>
diff --git a/InCallUI/res/values-it/strings.xml b/InCallUI/res/values-it/strings.xml
index 72a8db8..3d8114d 100644
--- a/InCallUI/res/values-it/strings.xml
+++ b/InCallUI/res/values-it/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Ignora"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Richiama"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Messaggio"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Chiamata in corso su un altro dispositivo"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Trasferisci chiamata"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Per fare una chiamata, disattiva la modalità aereo."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Non registrato sulla rete."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rete dati non disponibile."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videochiam"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Passa a chiamata vocale"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Cambia fotocamera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Metti in pausa video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Attiva fotocamera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Disattiva fotocamera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Altre opzioni"</string>
     <string name="player_started" msgid="3478865572468310331">"Player avviato"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Player interrotto"</string>
diff --git a/InCallUI/res/values-iw/strings.xml b/InCallUI/res/values-iw/strings.xml
index 7fdc1c2..d27ba0f 100644
--- a/InCallUI/res/values-iw/strings.xml
+++ b/InCallUI/res/values-iw/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"בטל"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"התקשר חזרה"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"שלח הודעה"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"באחד מהמכשירים האחרים מתבצעת שיחה"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"העבר את השיחה"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"כדי להתקשר, כבה תחילה את מצב טיסה."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"לא רשום ברשת."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"רשת סלולרית אינה זמינה."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"שיחת וידאו"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"שנה לשיחה קולית"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"החלף מצלמה"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"השהה וידאו"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"הפעל את המצלמה"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"כבה את המצלמה"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"אפשרויות נוספות"</string>
     <string name="player_started" msgid="3478865572468310331">"הנגן הופעל"</string>
     <string name="player_stopped" msgid="1278611664986561535">"הנגן הפסיק"</string>
diff --git a/InCallUI/res/values-ja/strings.xml b/InCallUI/res/values-ja/strings.xml
index 7aa375b..8c9e4de 100644
--- a/InCallUI/res/values-ja/strings.xml
+++ b/InCallUI/res/values-ja/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"拒否する"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"コールバック"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"メッセージ"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"別の端末で通話中"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"通話を転送"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"機内モードを OFF にしてから発信してください。"</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"ご加入の通信サービスがありません。"</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"モバイル ネットワークが利用できません。"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"ビデオ"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"音声通話に変更"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"カメラを切り替え"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ビデオハングアウトを一時停止"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"カメラを ON にする"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"カメラを OFF にする"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"その他のオプション"</string>
     <string name="player_started" msgid="3478865572468310331">"プレーヤーを開始しました"</string>
     <string name="player_stopped" msgid="1278611664986561535">"プレーヤーを停止しました"</string>
diff --git a/InCallUI/res/values-ka-rGE/strings.xml b/InCallUI/res/values-ka-rGE/strings.xml
index d732a8e..87ee736 100644
--- a/InCallUI/res/values-ka-rGE/strings.xml
+++ b/InCallUI/res/values-ka-rGE/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"დახურვა"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"გადარეკვა"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"შეტყობინება"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"სხვა მოწყობილობაზე მიმდინარე ზარი"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"ზარის ტრანსფერი"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"ზარის განსახორციელებლად, ჯერ გამორთეთ თვითმფრინავის რეჟიმი."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"არ არის რეგისტრირებული ქსელში."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"ფიჭური ქსელი მიუწვდომელია."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"ვიდეო ზარი"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"ხმოვან ზარზე გადართვა"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"კამერის გადართვა"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ვიდეოს დაპაუზება"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"კამერის ჩართვა"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"კამერის გამორთვა"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"სხვა ვარიანტები"</string>
     <string name="player_started" msgid="3478865572468310331">"დამკვრელი ჩაირთო"</string>
     <string name="player_stopped" msgid="1278611664986561535">"დამკვრელი გამოირთო"</string>
diff --git a/InCallUI/res/values-kk-rKZ/strings.xml b/InCallUI/res/values-kk-rKZ/strings.xml
index c6f2089..2f72135 100644
--- a/InCallUI/res/values-kk-rKZ/strings.xml
+++ b/InCallUI/res/values-kk-rKZ/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Қабылдамау"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Кері қоңырау шалу"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Хабар"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Қоңырау басқа құрылғыдан шалынуда"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Қоңырауды басқа құрылғыға бағыттау"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Қоңырау шалу үшін алдымен ұшақ режимін өшіріңіз."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Желіде тіркелмеген."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Ұялы желі қол жетімді емес."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Бейне қоңырау"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Дауыстық қоңырауға өзгерту"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Камераны ауыстыру"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Бейнені кідірту"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Камераны қосу"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Камераны өшіру"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Қосымша опциялар"</string>
     <string name="player_started" msgid="3478865572468310331">"Ойнатқыш іске қосылды"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Ойнатқыш тоқтатылды"</string>
diff --git a/InCallUI/res/values-km-rKH/strings.xml b/InCallUI/res/values-km-rKH/strings.xml
index d0a0dfc..8df9c3a 100644
--- a/InCallUI/res/values-km-rKH/strings.xml
+++ b/InCallUI/res/values-km-rKH/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"បដិសេធ"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"ហៅ​ទៅ​វិញ"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"សារ"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"ការ​ហៅ​កំពុង​ដំណើរការ​លើ​ឧបករណ៍​ផ្សេង"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"ផ្ទេរ​ការហៅ"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"ដើម្បីកំណត់ការហៅ សូមបិទរបៀបពេលជិះយន្តហោះជាមុនសិន"</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"មិនបានចុះឈ្មោះនៅលើបណ្ដាញទេ"</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"បណ្ដាញចល័តមិនអាចប្រើបានទេ"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"ហៅជាវីដេអូ"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"ប្ដូរ​ទៅ​ការ​ហៅ​ជា​សំឡេង"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ប្ដូរកាមេរ៉ា"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ផ្អាក​វីដេអូ"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"បើកកាមេរ៉ា"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"បិទកាមេរ៉ា"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"ជម្រើសច្រើនទៀត"</string>
     <string name="player_started" msgid="3478865572468310331">"អ្នកលេងបានចាប់ផ្តើម"</string>
     <string name="player_stopped" msgid="1278611664986561535">"អ្នកលេងបានឈប់"</string>
diff --git a/InCallUI/res/values-kn-rIN/strings.xml b/InCallUI/res/values-kn-rIN/strings.xml
index a763d1d..5e5b219 100644
--- a/InCallUI/res/values-kn-rIN/strings.xml
+++ b/InCallUI/res/values-kn-rIN/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"ವಜಾಗೊಳಿಸಿ"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"ಮರಳಿ ಕರೆ"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"ಸಂದೇಶ"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"ಮತ್ತೊಂದು ಸಾಧನದಲ್ಲಿ ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಕರೆ"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"ಕರೆ ವರ್ಗಾಯಿಸಿ"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"ಕರೆ ಮಾಡಲು, ಮೊದಲು ಏರ್‌ಪ್ಲೇನ್‌‌ ಮೋಡ್‌‌ ಆಫ್‌ ಮಾಡಿ."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಇನ್ನೂ ನೋಂದಣಿಯಾಗಿಲ್ಲ."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"ಸೆಲ್ಯುಲಾರ್ ನೆಟ್‌ವರ್ಕ್‌ ಲಭ್ಯವಿಲ್ಲ."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"ವೀಡಿಯೊ ಕರೆ"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"ಧ್ವನಿ ಕರೆಗೆ ಬದಲಾಯಿಸಿ"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ಕ್ಯಾಮರಾ ಬದಲಿಸಿ"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ವೀಡಿಯೊ ವಿರಾಮಗೊಳಿಸು"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"ಕ್ಯಾಮರಾ ಆನ್ ಮಾಡಿ"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"ಕ್ಯಾಮರಾ ಆಫ್ ಮಾಡಿ"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳು"</string>
     <string name="player_started" msgid="3478865572468310331">"ಪ್ಲೇಯರ್‌ ಪ್ರಾರಂಭವಾಗಿದೆ"</string>
     <string name="player_stopped" msgid="1278611664986561535">"ಪ್ಲೇಯರ್‌ ನಿಲ್ಲಿಸಲಾಗಿದೆ"</string>
diff --git a/InCallUI/res/values-ko/strings.xml b/InCallUI/res/values-ko/strings.xml
index 0100643..74e1347 100644
--- a/InCallUI/res/values-ko/strings.xml
+++ b/InCallUI/res/values-ko/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"해제"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"전화 걸기"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"메시지"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"다른 기기에서 진행 중인 통화"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"통화 전환"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"전화를 걸려면 먼저 비행기 모드를 해제하세요."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"네트워크에서 등록되지 않았습니다."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"사용 가능한 이동통신망이 없습니다."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"화상 통화"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"음성 통화로 변경"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"카메라 전환"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"동영상 일지중지"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"카메라 켜기"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"카메라 끄기"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"옵션 더보기"</string>
     <string name="player_started" msgid="3478865572468310331">"플레이어가 시작되었습니다."</string>
     <string name="player_stopped" msgid="1278611664986561535">"플레이어가 중지되었습니다."</string>
diff --git a/InCallUI/res/values-ky-rKG/strings.xml b/InCallUI/res/values-ky-rKG/strings.xml
index 250fdca..d982169 100644
--- a/InCallUI/res/values-ky-rKG/strings.xml
+++ b/InCallUI/res/values-ky-rKG/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Этибарга албоо"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Кайра чалуу"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Билдирүү"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Башка түзмөктө сүйлөшүп жатасыз"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Чалууну бул түзмөккө өткөрүү"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Учак режимин өчүрүп туруп чалыңыз."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Тармакта катталган эмес."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Мобилдик тармак жеткиликтүү эмес."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Видео чалуу"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Үн чалууга өзгөртүү"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Камераны которуштуруу"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Видеону тындыруу"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Камераны күйгүзүү"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Камераны өчүрүү"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Дагы параметрлер"</string>
     <string name="player_started" msgid="3478865572468310331">"Ойноткуч башталды"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Ойноткуч токтотулду"</string>
diff --git a/InCallUI/res/values-lo-rLA/strings.xml b/InCallUI/res/values-lo-rLA/strings.xml
index afdd104..4588124 100644
--- a/InCallUI/res/values-lo-rLA/strings.xml
+++ b/InCallUI/res/values-lo-rLA/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"ປິດໄວ້"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"ໂທກັບ"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"ຂໍ້ຄວາມ"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"ສາຍທີ່ກຳລັງໂທອອກໃນອຸປະກອນອື່ນ"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"ໂອນສາຍ"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"ເພື່ອເຮັດການໂທ, ໃຫ້ປິດໂໝດເຮືອບິນກ່ອນ"</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"ບໍ່ໄດ້ລົງທະບຽນໃນເຄືອຂ່າຍ."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"ບໍ່​ມີ​ເຄືອ​ຂ່າຍ​ມື​ຖື​ທີ່​​ໃຊ້​ໄດ້."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"​ການໂທ​​ວິ​ດີ​ໂອ"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"ປ່ຽນ​ເປັນ​ການ​ໂທ​ດ້ວຍ​ສຽງ"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ສັບປ່ຽນກ້ອງ"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ຢຸດວິດີໂອຊົ່ວຄາວ"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"ເປີດກ້ອງ"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"ປິດກ້ອງ"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"ຕົວເລືອກ​ເພີ່ມ​ເຕີມ"</string>
     <string name="player_started" msgid="3478865572468310331">"ເຄື່ອງ​ຫຼິ້ນ​ເລີ່ມ​ຕົ້ນ​ແລ້ວ"</string>
     <string name="player_stopped" msgid="1278611664986561535">"ເຄື່ອງ​ຫຼິ້ນ​ຢຸດ​ແລ້ວ"</string>
diff --git a/InCallUI/res/values-lt/strings.xml b/InCallUI/res/values-lt/strings.xml
index 9b888c1..a4bc48e 100644
--- a/InCallUI/res/values-lt/strings.xml
+++ b/InCallUI/res/values-lt/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Atsisakyti"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Perskambinti"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Siųsti pranešimą"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Kitame įrenginyje vykstantis skambutis"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Perkelti skambutį"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Jei norite skambinti, išjunkite lėktuvo režimą."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Neregistruota tinkle."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Korinis tinklas nepasiekiamas"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Vaizdo skambutis"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Pakeisti į balso skambutį"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Perjungti fotoaparatą"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pristabdyti vaizdo įrašą"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Įjungti fotoaparatą"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Išjungti fotoaparatą"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Daugiau parinkčių"</string>
     <string name="player_started" msgid="3478865572468310331">"Leistuvė paleista"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Leistuvė sustabdyta"</string>
diff --git a/InCallUI/res/values-lv/strings.xml b/InCallUI/res/values-lv/strings.xml
index 07fb1ba..dc3cd62 100644
--- a/InCallUI/res/values-lv/strings.xml
+++ b/InCallUI/res/values-lv/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Noraidīt"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Atzvanīt"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Sūtīt īsziņu"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Notiekošs zvans citā ierīcē"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Pāradresēt zvanu"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Lai veiktu zvanu, vispirms izslēdziet lidojuma režīmu."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nav reģistrēts tīklā."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilais tīkls nav pieejams."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videozvans"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Mainīt uz balss zvanu"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Pārslēgt kameru"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pārtraukt video plūsmu"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Ieslēgt kameru"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Izslēgt kameru"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Citas iespējas"</string>
     <string name="player_started" msgid="3478865572468310331">"Atskaņošana sākta"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Atskaņošana apturēta"</string>
diff --git a/InCallUI/res/values-mk-rMK/strings.xml b/InCallUI/res/values-mk-rMK/strings.xml
index a11be9e..c5e320c 100644
--- a/InCallUI/res/values-mk-rMK/strings.xml
+++ b/InCallUI/res/values-mk-rMK/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Отфрли"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Врати повик"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Порака"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Повик во тек на друг уред"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Префрлање повик"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"За да остварите повик, прво исклучете го авионскиот режим."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Не е регистриран на мрежа."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Не е достапна мобилна мрежа."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Видеоповик"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Промени во гласовен повик"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Промени ја камерата"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Паузирај видео"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Вклучете ја камерата"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Исклучете ја камерата"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Повеќе опции"</string>
     <string name="player_started" msgid="3478865572468310331">"Плеерот се вклучи"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Плеерот запре"</string>
diff --git a/InCallUI/res/values-ml-rIN/strings.xml b/InCallUI/res/values-ml-rIN/strings.xml
index 2635df4..d5ce2b9 100644
--- a/InCallUI/res/values-ml-rIN/strings.xml
+++ b/InCallUI/res/values-ml-rIN/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"ഡിസ്മിസ്"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"തിരിച്ചുവിളിക്കുക"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"സന്ദേശം"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"മറ്റൊരു ഉപകരണത്തിൽ നടന്നുകൊണ്ടിരിക്കുന്ന കോൾ"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"കോൾ കൈമാറുക"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"ഒരു കോൾ ചെയ്യാൻ, ആദ്യം ഫ്ലൈറ്റ് മോഡ് ഓഫുചെയ്യുക."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"നെറ്റ്‌വർക്കിൽ രജിസ്റ്റർ ചെയ്‌തിട്ടില്ല."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"സെല്ലുലാർ നെറ്റ്‌വർക്ക് ലഭ്യമല്ല."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"വീഡിയോ കോൾ"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"വോയ്‌സ്‌ കോളിലേക്ക് മാറ്റുക"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ക്യാമറ സ്വിച്ചുചെയ്യുക"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"വീഡിയോ താൽക്കാലികമായി നിർത്തുക"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"ക്യാമറ ഓണാക്കുക"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"ക്യാമറ ഓഫാക്കുക"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"കൂടുതൽ ഓ‌പ്‌ഷനുകൾ"</string>
     <string name="player_started" msgid="3478865572468310331">"പ്ലെയർ ആരംഭിച്ചു"</string>
     <string name="player_stopped" msgid="1278611664986561535">"പ്ലേയർ നിർത്തി"</string>
diff --git a/InCallUI/res/values-mn-rMN/strings.xml b/InCallUI/res/values-mn-rMN/strings.xml
index 8a17d0f..1b03750 100644
--- a/InCallUI/res/values-mn-rMN/strings.xml
+++ b/InCallUI/res/values-mn-rMN/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Алгасах"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Буцааж залгах"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Зурвас"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Өөр төхөөрөмж дээр хийгдэж буй дуудлага"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Дуудлага шилжүүлэх"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Залгахын тулд эхлээд Нислэгийн горимоос гарна уу."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Сүлжээнд бүртгэгдээгүй байна."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Үүрэн сүлжээ байхгүй."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Видео дуудлага"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Дуут дуудлага руу өөрчлөх"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Камер солих"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Видеог түр зогсоох"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Камераа асаана уу"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Камер унтраах"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Нэмэлт сонголт"</string>
     <string name="player_started" msgid="3478865572468310331">"Тоглуулагчийг эхлүүлсэн"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Тоглуулагчийг зогсоосон"</string>
diff --git a/InCallUI/res/values-mr-rIN/strings.xml b/InCallUI/res/values-mr-rIN/strings.xml
index c7b0675..f5d07c2 100644
--- a/InCallUI/res/values-mr-rIN/strings.xml
+++ b/InCallUI/res/values-mr-rIN/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"डिसमिस करा"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"पुन्हा कॉल करा"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"संदेश"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"दुसऱ्या डिव्हाइसवर सुरु असलेला कॉल"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"कॉल स्थानांतरित करा"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"कॉल करण्यासाठी, प्रथम विमान मोड बंद करा."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"नेटवर्कवर नोंदणीकृत नाही."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"मोबाईल नेटवर्क उपलब्ध नाही."</string>
@@ -121,12 +123,13 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"व्हिडिओ कॉल"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"व्हॉइस कॉल वर बदला"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"कॅमेरा स्विच करा"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"व्हिडिओला विराम द्या"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"कॅमेरा चालू करा"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"कॅमेरा बंद करा"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"अधिक पर्याय"</string>
     <string name="player_started" msgid="3478865572468310331">"प्लेअर सुरु झाले"</string>
     <string name="player_stopped" msgid="1278611664986561535">"प्लेअर थांबले"</string>
-    <string name="camera_not_ready" msgid="6614469280264241251">"कॅमेरा सज्ज नाही"</string>
-    <string name="camera_ready" msgid="2614541247814590887">"कॅमेरा सज्ज"</string>
+    <string name="camera_not_ready" msgid="6614469280264241251">"कॅमेरा तयार नाही"</string>
+    <string name="camera_ready" msgid="2614541247814590887">"कॅमेरा तयार"</string>
     <string name="unknown_call_session_event" msgid="2947023743819984299">"अज्ञात कॉल सत्र इव्हेंट"</string>
     <string name="voicemail_provider" msgid="2878119321474918370">"सेवा"</string>
     <string name="voicemail_settings" msgid="7548868784816068975">"सेटअप"</string>
diff --git a/InCallUI/res/values-ms-rMY/strings.xml b/InCallUI/res/values-ms-rMY/strings.xml
index b42ac14..7be8fe8 100644
--- a/InCallUI/res/values-ms-rMY/strings.xml
+++ b/InCallUI/res/values-ms-rMY/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Ketepikan"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Panggil balik"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Mesej"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Panggilan sedang berlangsung pada peranti lain"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Pindahkan Panggilan"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Untuk membuat panggilan, matikan mod Pesawat terlebih dahulu."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Tidak didaftarkan pada rangkaian."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rangkaian selular tidak tersedia."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Panggilan video"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Tukar ke panggilan suara"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Tukar kamera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Jeda video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Hidupkan kamera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Matikan kamera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Lagi pilihan"</string>
     <string name="player_started" msgid="3478865572468310331">"Pemain Dimulakan"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Pemain Dihentikan"</string>
diff --git a/InCallUI/res/values-my-rMM/strings.xml b/InCallUI/res/values-my-rMM/strings.xml
index 0cb5a8b..4b8659f 100644
--- a/InCallUI/res/values-my-rMM/strings.xml
+++ b/InCallUI/res/values-my-rMM/strings.xml
@@ -31,7 +31,7 @@
     <string name="wait_prompt_str" msgid="3784275777844586675">"အောက်ပါ တီးလုံးများကို ပို့မလား။\n"</string>
     <string name="pause_prompt_str" msgid="4507496811727697620">"အသံများ ပို့နေသည်\n"</string>
     <string name="send_button" msgid="4054398309483035794">"ပို့ပါ"</string>
-    <string name="pause_prompt_yes" msgid="6738588490007499118">"ဟုတ်ပါသည်"</string>
+    <string name="pause_prompt_yes" msgid="6738588490007499118">"Yes"</string>
     <string name="pause_prompt_no" msgid="417286529736964178">"No"</string>
     <string name="wild_prompt_str" msgid="8178750766679617355">"အစားထိုး အထူးအက္ခရာတွင် အစားထိုးရန်"</string>
     <string name="caller_manage_header" msgid="4036790479287738218">"အစည်းအဝေးခေါ်ဆိုမှု <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"ပယ်ပါ"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"ပြန်ခေါ်ပါ"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"မက်ဆေ့ဂျ်"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"အခြားကိရိယာတွင် လက်ရှိခေါ်ဆိုနေမှု"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"ခေါ်ဆိုမှုကို လွှဲပြောင်းပါ"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"ခေါ်ဆိုမှု ပြုလုပ်ရန်အတွက် လေယာဉ်ပျံမုဒ်ကို ဦးစွာပိတ်ပါ။"</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"ကွန်ယက်ပေါ်တွင် မှတ်ပုံတင်ထားခြင်း မရှိပါ။"</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"ဆဲလ်လူလာ ကွန်ရက် မရှိပါ။"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"ဗီဒီယို ခေါ်ဆိုမှု"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"အသံခေါ်ဆိုမှုသို့ ပြောင်းပါ"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ကင်မရာပြောင်းပါ"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ဗီဒီယို ခေတ္တရပ်ပါ"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"ကင်မရာဖွင့်ပါ"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"ကင်မရာပိတ်ပါ"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"နောက်ထပ် ရွေးစရာများ"</string>
     <string name="player_started" msgid="3478865572468310331">"ပလေယာ စပါပြီ"</string>
     <string name="player_stopped" msgid="1278611664986561535">"ပလေယာ ရပ်တန့်သွားပါပြီ"</string>
diff --git a/InCallUI/res/values-nb/strings.xml b/InCallUI/res/values-nb/strings.xml
index f919105..e89a2db 100644
--- a/InCallUI/res/values-nb/strings.xml
+++ b/InCallUI/res/values-nb/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Avvis"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Ring tilbake"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Melding"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Samtale pågår på en annen enhet"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Overfør samtalen"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"For å ringe, slå av flymodus først."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ikke registrert på nettverket."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilnettverket er ikke tilgjengelig."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videoanrop"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Bytt til taleanrop"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Bytt kamera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Sett videoen på pause"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Slå på kameraet"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Slå av kameraet"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Flere alternativer"</string>
     <string name="player_started" msgid="3478865572468310331">"Avspilleren har startet"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Avspilleren har stoppet"</string>
diff --git a/InCallUI/res/values-ne-rNP/strings.xml b/InCallUI/res/values-ne-rNP/strings.xml
index d5eb353..dc569de 100644
--- a/InCallUI/res/values-ne-rNP/strings.xml
+++ b/InCallUI/res/values-ne-rNP/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"खारेज गर्नुहोस्"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"कल फर्काउने"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"सन्देश"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"अर्को यन्त्रमा चलिरहेको कल"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"कल स्थानान्तरण गर्नुहोस्"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"कल गर्नका लागि, पहिले हवाइजहाज मोड बन्द गर्नुहोस्।"</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"नेटवर्कमा दर्ता भएको छैन।"</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"सेलुलर नेटवर्क उपलब्ध छैन।"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"भिडियो कल"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"आवाज कलमा परिवर्तन गर्नुहोस्"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"क्यामेरा स्विच गर्नुहोस्"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"भिडियो रोक्नुहोस्"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"क्यामेरालाई सक्रिय गर्नुहोस्"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"क्यामेरालाई निष्क्रिय पार्नुहोस्"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"थप विकल्पहरू"</string>
     <string name="player_started" msgid="3478865572468310331">"प्लेयर सुरु भयो"</string>
     <string name="player_stopped" msgid="1278611664986561535">"प्लेयर रोकियो"</string>
diff --git a/InCallUI/res/values-nl/strings.xml b/InCallUI/res/values-nl/strings.xml
index eeb17b6..048af49 100644
--- a/InCallUI/res/values-nl/strings.xml
+++ b/InCallUI/res/values-nl/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Sluiten"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Terugbellen"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Bericht"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Actief gesprek op een ander apparaat"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Gesprek doorschakelen"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Als je wilt bellen, moet je eerst de vliegtuigmodus uitschakelen."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Niet geregistreerd op netwerk."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobiel netwerk niet beschikbaar."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Vid.gespr."</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Wijzigen in spraakoproep"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Van camera wisselen"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Video onderbreken"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Camera inschakelen"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Camera uitschakelen"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Meer opties"</string>
     <string name="player_started" msgid="3478865572468310331">"Speler gestart"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Speler gestopt"</string>
diff --git a/InCallUI/res/values-pa-rIN/strings.xml b/InCallUI/res/values-pa-rIN/strings.xml
index 93464c9..956b755 100644
--- a/InCallUI/res/values-pa-rIN/strings.xml
+++ b/InCallUI/res/values-pa-rIN/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"ਰੱਦ ਕਰੋ"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"ਵਾਪਸ ਕਾਲ ਕਰੋ"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"ਸੁਨੇਹਾ"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"ਕਿਸੇ ਹੋਰ ਡੀਵਾਈਸ \'ਤੇ ਜਾਰੀ ਕਾਲ"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"ਕਾਲ ਟ੍ਰਾਂਸਫਰ ਕਰੋ"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"ਇੱਕ ਕਾਲ ਕਰਨ ਲਈ, ਪਹਿਲਾਂ ਜਹਾਜ਼ ਮੋਡ ਬੰਦ ਕਰੋ।"</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"ਨੈੱਟਵਰਕ \'ਤੇ ਰਜਿਸਟਰ ਨਹੀਂ।"</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"ਸੈਲਿਊਲਰ ਨੈੱਟਵਰਕ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"ਵੀਡੀਓ ਕਾਲ"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"ਵੌਇਸ ਕਾਲ ਵਿੱਚ ਬਦਲੋ"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"ਕੈਮਰੇ \'ਤੇ ਬਦਲੋ"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ਵੀਡੀਓ ਰੋਕੋ"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"ਕੈਮਰਾ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"ਕੈਮਰਾ ਬੰਦ ਕਰੋ"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"ਹੋਰ ਚੋਣਾਂ"</string>
     <string name="player_started" msgid="3478865572468310331">"ਪਲੇਅਰ ਸ਼ੁਰੂ ਹੋ ਗਿਆ"</string>
     <string name="player_stopped" msgid="1278611664986561535">"ਪਲੇਅਰ ਰੁਕ ਗਿਆ"</string>
diff --git a/InCallUI/res/values-pl/strings.xml b/InCallUI/res/values-pl/strings.xml
index bdb6aba..5327a34 100644
--- a/InCallUI/res/values-pl/strings.xml
+++ b/InCallUI/res/values-pl/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Odrzuć"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Oddzwoń"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Wyślij SMS-a"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Trwająca rozmowa na innym urządzeniu"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Przełącz rozmowę"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Aby rozpocząć połączenie, wyłącz najpierw tryb samolotowy."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Nie zarejestrowano w sieci."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Sieć komórkowa jest niedostępna."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Rozmowa wideo"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Zmień na połączenie głosowe"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Przełącz kamerę"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Wstrzymaj wideo"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Włącz kamerę"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Wyłącz kamerę"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Więcej opcji"</string>
     <string name="player_started" msgid="3478865572468310331">"Odtwarzacz włączony"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Odtwarzacz zatrzymany"</string>
diff --git a/InCallUI/res/values-pt-rBR/strings.xml b/InCallUI/res/values-pt-rBR/strings.xml
index c59b155..a7fa9b0 100644
--- a/InCallUI/res/values-pt-rBR/strings.xml
+++ b/InCallUI/res/values-pt-rBR/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Dispensar"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Retor. cham."</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Mensagem"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Chamada em andamento em outro dispositivo"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transferir chamada"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Para fazer uma chamada, primeiro desative o modo avião."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Não registrado na rede."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rede celular não disponível."</string>
@@ -111,7 +113,7 @@
     <string name="onscreenMuteText_unselected" msgid="4130269060091842798">"Desativar som"</string>
     <string name="onscreenMuteText_selected" msgid="7074763815284369548">"Ativar som"</string>
     <string name="onscreenAddCallText" msgid="5577548650466595598">"Adicionar chamada"</string>
-    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Mesclar chamadas"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Juntar chamadas"</string>
     <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Trocar"</string>
     <string name="onscreenManageCallsText" msgid="5491297234697209677">"Gerenciar chamadas"</string>
     <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Gerenciar teleconferência"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videocham."</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Alterar para chamada de voz"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Alternar câmera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pausar vídeo"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Ativar câmera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Desativar câmera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Mais opções"</string>
     <string name="player_started" msgid="3478865572468310331">"Player iniciado"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Player interrompido"</string>
diff --git a/InCallUI/res/values-pt-rPT/strings.xml b/InCallUI/res/values-pt-rPT/strings.xml
index 2b26efc..791da62 100644
--- a/InCallUI/res/values-pt-rPT/strings.xml
+++ b/InCallUI/res/values-pt-rPT/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Ignorar"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Ligar de volta"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Mensagem"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Chamada em curso noutro dispositivo"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transferir chamada"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Para efetuar uma chamada, desative primeiro o Modo de avião."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Sem registo na rede."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rede móvel não disponível."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videochamada"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Mudar para chamada de voz"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Trocar câmara"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Interromper vídeo"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Ativar câmara"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Desativar câmara"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Mais opções"</string>
     <string name="player_started" msgid="3478865572468310331">"Leitor iniciado"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Leitor interrompido"</string>
diff --git a/InCallUI/res/values-pt/strings.xml b/InCallUI/res/values-pt/strings.xml
index c59b155..a7fa9b0 100644
--- a/InCallUI/res/values-pt/strings.xml
+++ b/InCallUI/res/values-pt/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Dispensar"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Retor. cham."</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Mensagem"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Chamada em andamento em outro dispositivo"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transferir chamada"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Para fazer uma chamada, primeiro desative o modo avião."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Não registrado na rede."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rede celular não disponível."</string>
@@ -111,7 +113,7 @@
     <string name="onscreenMuteText_unselected" msgid="4130269060091842798">"Desativar som"</string>
     <string name="onscreenMuteText_selected" msgid="7074763815284369548">"Ativar som"</string>
     <string name="onscreenAddCallText" msgid="5577548650466595598">"Adicionar chamada"</string>
-    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Mesclar chamadas"</string>
+    <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Juntar chamadas"</string>
     <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Trocar"</string>
     <string name="onscreenManageCallsText" msgid="5491297234697209677">"Gerenciar chamadas"</string>
     <string name="onscreenManageConferenceText" msgid="7043499154946980355">"Gerenciar teleconferência"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videocham."</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Alterar para chamada de voz"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Alternar câmera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pausar vídeo"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Ativar câmera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Desativar câmera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Mais opções"</string>
     <string name="player_started" msgid="3478865572468310331">"Player iniciado"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Player interrompido"</string>
diff --git a/InCallUI/res/values-ro/strings.xml b/InCallUI/res/values-ro/strings.xml
index 031c48a..deb2fab 100644
--- a/InCallUI/res/values-ro/strings.xml
+++ b/InCallUI/res/values-ro/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Refuzați"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Apelați înapoi"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Trimiteți mesaj"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Apel în curs pe alt dispozitiv"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transferați apelul"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Pentru a apela, mai întâi dezactivați modul Avion."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Neînregistrat în rețea."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rețeaua mobilă nu este disponibilă."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Apel video"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Treceți la apel vocal"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Comutați camera foto"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Întrerupeți apelul video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Activați camera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Dezactivați camera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Mai multe opțiuni"</string>
     <string name="player_started" msgid="3478865572468310331">"Playerul a pornit"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Playerul s-a oprit"</string>
diff --git a/InCallUI/res/values-ru/strings.xml b/InCallUI/res/values-ru/strings.xml
index fdc8f6a..fa1bea9 100644
--- a/InCallUI/res/values-ru/strings.xml
+++ b/InCallUI/res/values-ru/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Закрыть"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Перезвонить"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Написать SMS"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Вы участвуете в разговоре на другом устройстве"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Перевести на это устройство"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Отключите режим полета."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Нет регистрации в сети."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Мобильная сеть недоступна."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Видеовызов"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Отключить видео"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Сменить камеру"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Приостановить видео"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Включить камеру"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Выключить камеру"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Другие настройки"</string>
     <string name="player_started" msgid="3478865572468310331">"Видеоплеер включен"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Видеоплеер отключен"</string>
diff --git a/InCallUI/res/values-si-rLK/strings.xml b/InCallUI/res/values-si-rLK/strings.xml
index 129e181..b976d67 100644
--- a/InCallUI/res/values-si-rLK/strings.xml
+++ b/InCallUI/res/values-si-rLK/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"අස් කරන්න"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"පසුඇමතුම"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"පණිවිඩය"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"වෙනත් උපාංගයක සිදු වන ඇමතුම"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"ඇමතුම මාරු කරන්න"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"ඇමතුමක් ගැනීමට, මුලින්ම ගුවන් යානා ප්‍රකාරය ක්‍රියාවිරහිත කරන්න."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"ජාලය මත ලියාපදිංචි වී නැත."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"සෙලියුලර් ජාලය නොතිබේ."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"වීඩියෝ ඇමතුම"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"හඬ ඇමතුමක් වෙත මාරු කරන්න"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"කැමරාව මාරු කරන්න"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"විඩියෝව විරාම කරන්න"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"කැමරාව ක්‍රියාත්මක කරන්න"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"කැමරාව ක්‍රියා විරහිත කරන්න"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"තවත් විකල්ප"</string>
     <string name="player_started" msgid="3478865572468310331">"ධාවකය ආරම්භ කරන ලදි"</string>
     <string name="player_stopped" msgid="1278611664986561535">"ධාවකය නැවතුණි"</string>
diff --git a/InCallUI/res/values-sk/strings.xml b/InCallUI/res/values-sk/strings.xml
index d553993..95f69a1 100644
--- a/InCallUI/res/values-sk/strings.xml
+++ b/InCallUI/res/values-sk/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Zatvoriť"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Zavolať späť"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Správa"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Prebiehajúci hovor v inom zariadení"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Prepojiť hovor"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Ak chcete volať, vypnite najprv režim v lietadle."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Prihlásenie do siete nebolo úspešné."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilná sieť nie je k dispozícii."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videohovor"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Zmeniť na hlasový hovor"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Zapnúť kameru"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pozastaviť video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Zapnúť fotoaparát"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Vypnúť fotoaparát"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Ďalšie možnosti"</string>
     <string name="player_started" msgid="3478865572468310331">"Prehrávač bol spustený"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Prehrávač bol zastavený"</string>
diff --git a/InCallUI/res/values-sl/strings.xml b/InCallUI/res/values-sl/strings.xml
index 6ed298f..0e436f5 100644
--- a/InCallUI/res/values-sl/strings.xml
+++ b/InCallUI/res/values-sl/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Opusti"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Povrat. klic"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"SMS"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Aktivni klic v drugi napravi"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Prenos klica"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Če želite poklicati, najprej izklopite način za letalo."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ni registrirano v omrežju."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mobilno omrežje ni na voljo."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videoklic"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Preklopi na glasovni klic"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Preklopi med fotoaparati"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Zaustavi video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Vklopi kamero"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Izklopi kamero"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Več možnosti"</string>
     <string name="player_started" msgid="3478865572468310331">"Predvajanje začeto"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Predvajanje ustavljeno"</string>
diff --git a/InCallUI/res/values-sq-rAL/strings.xml b/InCallUI/res/values-sq-rAL/strings.xml
index b3a9acd..84db531 100644
--- a/InCallUI/res/values-sq-rAL/strings.xml
+++ b/InCallUI/res/values-sq-rAL/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Largoje"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Ri-telefono"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Mesazh"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Telefonatë në vazhdim në një pajisje tjetër"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Transfero telefonatën"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Për të kryer telefonatë, së pari çaktivizo modalitetin e aeroplanit."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"I paregjistruar në rrjet."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Rrjeti celular nuk mundësohet."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Telefonatë me video"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Ndërro në telefonatë me video"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Ndërro kamerën"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Vendose në pauzë videon"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Aktivizo kamerën"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Çaktivizo kamerën"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Opsione të tjera"</string>
     <string name="player_started" msgid="3478865572468310331">"Luajtësi filloi"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Luajtësi ndaloi"</string>
diff --git a/InCallUI/res/values-sr/strings.xml b/InCallUI/res/values-sr/strings.xml
index a6f317b..12ffc12 100644
--- a/InCallUI/res/values-sr/strings.xml
+++ b/InCallUI/res/values-sr/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Одбаци"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Узврати позив"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Пошаљи SMS"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Позив је у току на другом уређају"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Пребаци позив"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Да бисте упутили позив, прво искључите режим рада у авиону."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Није регистровано на мрежи."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Мобилна мрежа није доступна."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Видео позив"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Промени у гласовни позив"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Промени камеру"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Паузирај видео"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Укључи камеру"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Искључи камеру"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Још опција"</string>
     <string name="player_started" msgid="3478865572468310331">"Плејер је покренут"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Плејер је заустављен"</string>
diff --git a/InCallUI/res/values-sv/strings.xml b/InCallUI/res/values-sv/strings.xml
index 2a91e1d..bda578c 100644
--- a/InCallUI/res/values-sv/strings.xml
+++ b/InCallUI/res/values-sv/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Ignorera"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Ring upp"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Meddelande"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Pågående samtal på en annan enhet"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Överför samtal"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Om du vill ringa måste du först inaktivera flygplansläge."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Inte registrerat på nätverk."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Det finns inget mobilnät tillgängligt."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Videosamt."</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Byt till röstsamtal"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Byt kamera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Pausa video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Slå på kameran"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Stäng av kameran"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Fler alternativ"</string>
     <string name="player_started" msgid="3478865572468310331">"Videospelaren har startats"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Videospelaren har stoppats"</string>
diff --git a/InCallUI/res/values-sw/strings.xml b/InCallUI/res/values-sw/strings.xml
index 3b29d18..3965fb7 100644
--- a/InCallUI/res/values-sw/strings.xml
+++ b/InCallUI/res/values-sw/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Ondoa"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Mpigie"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Ujumbe"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Una Hangout inayoendelea kwenye kifaa kingine"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Hamisha Hangout"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Ili upige simu kwanza, zima Hali ya ndegeni."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Haijasajiliwa kwenye mtandao."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Mitandao ya simu za mkononi haipatikani."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Hangout ya Video"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Badilisha iwe simu ya sauti"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Badilisha kamera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Sitisha video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Washa kamera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Zima kamera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Chaguo zaidi"</string>
     <string name="player_started" msgid="3478865572468310331">"Kichezaji Kimeanzishwa"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Kichezaji Kimekomeshwa"</string>
diff --git a/InCallUI/res/values-ta-rIN/strings.xml b/InCallUI/res/values-ta-rIN/strings.xml
index cdaf613..0c3fc50 100644
--- a/InCallUI/res/values-ta-rIN/strings.xml
+++ b/InCallUI/res/values-ta-rIN/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"நிராகரி"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"திரும்ப அழை"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"செய்தி அனுப்பு"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"மற்றொரு சாதனத்தில் செயலில் இருக்கும் அழைப்பு"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"அழைப்பை இடமாற்று"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"அழைப்பதற்கு, முதலில் விமானப் பயன்முறையை முடக்கவும்."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"நெட்வொர்க்கில் பதிவுசெய்யப்படவில்லை."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"செல்லுலார் நெட்வொர்க் கிடைக்கவில்லை."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"வீடியோ அழைப்பு"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"குரல் அழைப்பிற்கு மாறு"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"கேமராவை மாற்று"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"வீடியோவை இடைநிறுத்து"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"கேமராவை இயக்கு"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"கேமராவை முடக்கு"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"கூடுதல் விருப்பங்கள்"</string>
     <string name="player_started" msgid="3478865572468310331">"வீடியோ பிளேயர் துவங்கியது"</string>
     <string name="player_stopped" msgid="1278611664986561535">"வீடியோ பிளேயர் நிறுத்தப்பட்டது"</string>
diff --git a/InCallUI/res/values-te-rIN/strings.xml b/InCallUI/res/values-te-rIN/strings.xml
index 74134fc..b53c2f1 100644
--- a/InCallUI/res/values-te-rIN/strings.xml
+++ b/InCallUI/res/values-te-rIN/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"తీసివేయి"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"తిరిగి కాల్ చేయి"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"సందేశం పంపు"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"మరో పరికరంలో కాల్ జరుగుతోంది"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"కాల్‌ను బదిలీ చేయి"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"కాల్ చేయడానికి, ముందుగా ఎయిర్‌ప్లైన్ మోడ్‌ను ఆపివేయండి."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"నెట్‌వర్క్‌లో నమోదు కాలేదు."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"సెల్యులార్ నెట్‌వర్క్ అందుబాటులో లేదు."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"వీడియో కాల్"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"వాయిస్ కాల్‌కి మార్చు"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"కెమెరాను మార్చు"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"వీడియోను పాజ్ చేయి"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"కెమెరాను ఆన్ చేయి"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"కెమెరాను ఆఫ్ చేయి"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"మరిన్ని ఎంపికలు"</string>
     <string name="player_started" msgid="3478865572468310331">"ప్లేయర్ ప్రారంభమైంది"</string>
     <string name="player_stopped" msgid="1278611664986561535">"ప్లేయర్ ఆపివేయబడింది"</string>
diff --git a/InCallUI/res/values-th/strings.xml b/InCallUI/res/values-th/strings.xml
index db9b341..6802265 100644
--- a/InCallUI/res/values-th/strings.xml
+++ b/InCallUI/res/values-th/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"ปิด"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"โทรกลับ"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"ข้อความ"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"กำลังใช้สายบนอุปกรณ์อื่น"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"โอนสาย"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"หากต้องการโทรออก ให้ปิดโหมดบนเครื่องบินก่อน"</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"ยังไม่ได้ลงทะเบียนบนเครือข่าย"</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"เครือข่ายมือถือใช้งานไม่ได้"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"แฮงเอาท์วิดีโอ"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"เปลี่ยนเป็นการโทรด้วยเสียง"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"เปลี่ยนกล้อง"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"หยุดวิดีโอชั่วคราว"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"เปิดกล้อง"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"ปิดกล้อง"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"ตัวเลือกเพิ่มเติม"</string>
     <string name="player_started" msgid="3478865572468310331">"โปรแกรมเล่นเริ่มทำงานแล้ว"</string>
     <string name="player_stopped" msgid="1278611664986561535">"โปรแกรมเล่นหยุดแล้ว"</string>
diff --git a/InCallUI/res/values-tl/strings.xml b/InCallUI/res/values-tl/strings.xml
index 994e5b6..e2b3b8c 100644
--- a/InCallUI/res/values-tl/strings.xml
+++ b/InCallUI/res/values-tl/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"I-dismiss"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Tawagan"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Mensahe"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Kasalukuyang tawag sa isa pang device"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Ilipat ang Tawag"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Upang tumawag, paki-off muna ang Airplane mode."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Hindi nakarehistro sa network."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Hindi available ang cellular network."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Mag-video call"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Gawing voice call"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Lumipat ng camera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"I-pause ang video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"I-on ang camera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"I-off ang camera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Higit pang mga opsyon"</string>
     <string name="player_started" msgid="3478865572468310331">"Nagsimula na ang Player"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Huminto ang Player"</string>
diff --git a/InCallUI/res/values-tr/strings.xml b/InCallUI/res/values-tr/strings.xml
index feec3f1..31b3b1e 100644
--- a/InCallUI/res/values-tr/strings.xml
+++ b/InCallUI/res/values-tr/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Yok say"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Geri ara"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"İleti"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Başka bir cihazda devam eden çağrı"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Çağrıyı Aktar"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Çağrı yapmak için öncelikle Uçak modunu kapatın."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ağda kayıtlı değil."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Hücresel ağ kullanılamıyor."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Vid. görşm"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Sesli çağrıya geç"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Kamerayı değiştir"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Videoyu duraklat"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Kamerayı aç"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Kamerayı kapat"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Diğer seçenekler"</string>
     <string name="player_started" msgid="3478865572468310331">"Oynatıcı Başlatıldı"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Oynatıcı Durduruldu"</string>
diff --git a/InCallUI/res/values-uk/strings.xml b/InCallUI/res/values-uk/strings.xml
index 39c7c5c..6ff2763 100644
--- a/InCallUI/res/values-uk/strings.xml
+++ b/InCallUI/res/values-uk/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Відхилити"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Передзвонити"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Написати SMS"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Поточний виклик на іншому пристрої"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Передати виклик"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Щоб зателефонувати, вимкніть режим польоту."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Не зареєстровано в мережі."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Мобільна мережа недоступна."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Відеодзвінок"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Перейти в режим голосового виклику"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Вибрати камеру"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Призупинити відео"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Увімкнути камеру"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Вимкнути камеру"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Інші опції"</string>
     <string name="player_started" msgid="3478865572468310331">"Програвач запущено"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Програвач зупинено"</string>
diff --git a/InCallUI/res/values-ur-rPK/strings.xml b/InCallUI/res/values-ur-rPK/strings.xml
index 2d5a912..75252e6 100644
--- a/InCallUI/res/values-ur-rPK/strings.xml
+++ b/InCallUI/res/values-ur-rPK/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"برخاست کریں"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"واپس کال کریں"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"پیغام"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"ایک اور آلے پر جاری کال"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"کال منتقل کریں"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"کال کرنے کیلئے، پہلے ہوائی جہاز طرز کو آف کریں۔"</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"نیٹ ورک پر رجسٹرڈ نہیں ہے۔"</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"سیلولر نیٹ ورک دستیاب نہیں ہے۔"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"ویڈیو کال"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"صوتی کال میں تبدیل کریں"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"کیمرا سوئچ کریں"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"ویڈیو موقوف کریں"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"کیمرا آن کریں"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"کیمرا آف کریں"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"مزید اختیارات"</string>
     <string name="player_started" msgid="3478865572468310331">"پلیئر شروع ہوگیا"</string>
     <string name="player_stopped" msgid="1278611664986561535">"پلیئر بند ہوگیا"</string>
diff --git a/InCallUI/res/values-uz-rUZ/strings.xml b/InCallUI/res/values-uz-rUZ/strings.xml
index 06448fd..202e265 100644
--- a/InCallUI/res/values-uz-rUZ/strings.xml
+++ b/InCallUI/res/values-uz-rUZ/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Rad etish"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Telefon qilish"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"SMS yuborish"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Boshqa qurilmada hozir qo‘ng‘iroq amalga oshirilmoqda."</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Qo‘ng‘iroqni o‘tkazish"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Qo‘ng‘iroq qilish uchun, avval “Parvoz rejimi” o‘chirilishi kerak."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Tarmoqda ro‘yxatdan o‘tmagan."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Uyali tarmoq mavjud emas."</string>
@@ -110,7 +112,7 @@
     <string name="onscreenShowDialpadText_selected" msgid="7368390784890311449">"Raqam terish panelini yopish"</string>
     <string name="onscreenMuteText_unselected" msgid="4130269060091842798">"Ovozni o‘chirish"</string>
     <string name="onscreenMuteText_selected" msgid="7074763815284369548">"Ovozni yoqish"</string>
-    <string name="onscreenAddCallText" msgid="5577548650466595598">"Qo‘ng‘iroq qo‘shish"</string>
+    <string name="onscreenAddCallText" msgid="5577548650466595598">"Chaqiruv qo‘shish"</string>
     <string name="onscreenMergeCallsText" msgid="4946687067221459357">"Qo‘ng‘iroqlarni birlashtirish"</string>
     <string name="onscreenSwapCallsText" msgid="8272036175646846198">"Almashtirish"</string>
     <string name="onscreenManageCallsText" msgid="5491297234697209677">"Qo‘ng‘iroqlarni boshqarish"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Video qo‘ng‘iroq"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Ovozli qo‘ng‘iroqqa o‘zgartirish"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Kamerani almashtirish"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Videoni to‘xtatib turish"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Kamerani yoqish"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Kamerani o‘chirish"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Boshqa sozlamalar"</string>
     <string name="player_started" msgid="3478865572468310331">"Pleyer ishga tushirildi"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Pleyer to‘xtatildi"</string>
diff --git a/InCallUI/res/values-vi/strings.xml b/InCallUI/res/values-vi/strings.xml
index 473650d..2e09307 100644
--- a/InCallUI/res/values-vi/strings.xml
+++ b/InCallUI/res/values-vi/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Loại bỏ"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Gọi lại"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Tin nhắn"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Cuộc gọi đang diễn ra trên một thiết bị khác"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Chuyển cuộc gọi"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Để thực hiện cuộc gọi, trước tiên, hãy tắt chế độ trên Máy bay."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Chưa được đăng ký trên mạng."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Không có mạng di động."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Cuộc gọi điện video"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Thay đổi thành cuộc gọi thoại"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Chuyển máy ảnh"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Dừng video"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Bật máy ảnh"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Tắt máy ảnh"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Tùy chọn khác"</string>
     <string name="player_started" msgid="3478865572468310331">"Đã khởi động trình phát"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Đã dừng trình phát"</string>
diff --git a/InCallUI/res/values-w500dp-land/dimens.xml b/InCallUI/res/values-w500dp-land/dimens.xml
index 01cf165..42b0886 100644
--- a/InCallUI/res/values-w500dp-land/dimens.xml
+++ b/InCallUI/res/values-w500dp-land/dimens.xml
@@ -33,5 +33,5 @@
 
     <dimen name="video_preview_margin">20dp</dimen>
 
-    <dimen name="end_call_button_margin_right">80dp</dimen>
+    <dimen name="end_call_button_margin_left">50dp</dimen>
 </resources>
diff --git a/InCallUI/res/values-zh-rCN/qtistrings.xml b/InCallUI/res/values-zh-rCN/qtistrings.xml
index 63af255..120af0a 100644
--- a/InCallUI/res/values-zh-rCN/qtistrings.xml
+++ b/InCallUI/res/values-zh-rCN/qtistrings.xml
@@ -47,4 +47,104 @@
     <string name="modify_call_option_vt_tx">视频发送</string>
     <string name="modify_call_option_vt_rx">视频接收</string>
     <string name="modify_call_option_voice">仅限语音</string>
+    <!-- Call substate label -->
+    <string name="call_substate_label">" 通话质量不佳 - \u000a"</string>
+    <!-- Call substate label for call resumed -->
+    <string name="call_substate_call_resumed">"通话继续\u000a"</string>
+    <!-- Call substate label for call connected suspended (audio) -->
+    <string name="call_substate_connected_suspended_audio">"暂停连接\u000a"</string>
+    <!-- Call substate label for call connected suspended (video) -->
+    <string name="call_substate_connected_suspended_video">"视频电话暂停\u000a"</string>
+    <!-- Call substate label for avp retry -->
+    <string name="call_substate_avp_retry">"AVP 重试\u000a"</string>
+    <!-- Video quality changed message -->
+    <string name="video_quality_changed">" 视频画质变为\u0020"</string>
+    <!-- Video quality High -->
+    <string name="video_quality_high">"高画质"</string>
+    <!-- Video quality Medium -->
+    <string name="video_quality_medium">"中画质"</string>
+    <!-- Video quality Low -->
+    <string name="video_quality_low">"低画质"</string>
+    <!-- Video quality Unknown -->
+    <string name="video_quality_unknown">"未知"</string>
+    <!-- Message indicating that Video Started flowing for IMS-VT calls -->
+    <string name="player_started">"播放器已启动"</string>
+    <!-- Message indicating that Video Stopped flowing for IMS-VT calls -->
+    <string name="player_stopped">"播放暂停"</string>
+    <!-- Message indicating that camera failure has occurred for the selected camera and
+         as result camera is not ready -->
+    <string name="camera_not_ready">"摄像头故障"</string>
+    <!-- Message indicating that camera is ready/available -->
+    <string name="camera_ready">"摄像头就绪"</string>
+    <!-- Message indicating unknown call session event -->
+    <string name="unknown_call_session_event">"未知电话"</string>
+    <!-- Message indicating data usage -->
+    <string name="data_usage_label">"流量使用: "</string>
+    <!-- Modify call error cause -->
+    <string name="modify_call_failed_due_to_low_battery">"由于电池电量不足,无法修改通话。"</string>
+    <!-- Message indicating video calls not allowed if user enabled TTY Mode -->
+    <string name="video_call_not_allowed_if_tty_enabled">"请关闭 TTY 模式以便升级到视频电话。"</string>
+    <!-- Text for the onscreen "Add Participant" button -->
+    <string name="onscreenAddParticipant">"添加参与者"</string>
+    <!-- Description of the deflect target in the Slide unlock screen. [CHAR LIMIT=NONE] -->
+    <string name="qti_description_target_deflect">"转移"</string>
+    <string name="qti_description_deflect_error">"号码未设置。通过 IMS 设置提供号码,然后重试。"</string>
+    <string name="qti_description_deflect_service_error">"不支持呼叫转移服务。"</string>
+    <!-- Message indicating call failed due to handover not feasible -->
+    <string name="call_failed_ho_not_feasible">"无法从 LTE 切换到 3G/2G,通话已结束。"</string>
+    <!-- Title of the IMS to CS redial dialog -->
+    <string name="cs_redial_option">"重拨选项"</string>
+    <!-- Message text of the IMS to CS redial dialog -->
+    <string name="cs_redial_msg">"无法拨打 IMS 视频通话,是否要拨打非 IMS 的语音通话?"</string>
+    <!-- Yes option of the IMS to CS redial dialog -->
+    <string name="cs_redial_yes">"是"</string>
+    <!-- No option of the IMS to CS redial dialog -->
+    <string name="cs_redial_no">"否"</string>
+    <!-- Session modify cause unspecified -->
+    <string name="session_modify_cause_unspecified"></string>
+    <!-- Session modify cause code upgrade local request -->
+    <string name="session_modify_cause_upgrade_local_request">"应用户请求,通话已升级"</string>
+    <!-- Session modify cause code upgrade remote request -->
+    <string name="session_modify_cause_upgrade_remote_request">"应远程用户请求,通话已升级"</string>
+    <!-- Session modify cause code downgrade local request -->
+    <string name="session_modify_cause_downgrade_local_request">"应用户请求,通话已降级"</string>
+    <!-- Session modify cause code downgrade remote request -->
+    <string name="session_modify_cause_downgrade_remote_request">"应远程用户请求,通话已降级"</string>
+    <!-- Session modify cause code downgrade rtp timeout -->
+    <string name="session_modify_cause_downgrade_rtp_timeout">"由于 RTP 超时,通话已降级"</string>
+    <!-- Session modify cause code downgrade qos -->
+    <string name="session_modify_cause_downgrade_qos">"由于服务质量,通话已降级"</string>
+    <!-- Session modify cause code downgrade packet loss -->
+    <string name="session_modify_cause_downgrade_packet_loss">"由于数据包丢失,通话已降级"</string>
+    <!-- Session modify cause code downgrade low thrput -->
+    <string name="session_modify_cause_downgrade_low_thrput">"由于吞吐量低,通话已降级"</string>
+    <!-- Session modify cause code downgrade thermal mitigation -->
+    <string name="session_modify_cause_downgrade_thermal_mitigation">"由于设备过热,通话已降级"</string>
+    <!-- Session modify cause code downgrade lipsync -->
+    <string name="session_modify_cause_downgrade_lipsync">"由于嘴唇同步功能,通话已降级"</string>
+    <!-- Session modify cause code downgrade generic error -->
+    <string name="session_modify_cause_downgrade_generic_error">"由于一般错误,通话已降级"</string>
+    <!-- Title for low battery alert dialogue -->
+    <string name="low_battery">"电池电量不足"</string>
+    <!-- Yes option of the low battery alert dialog -->
+    <string name="low_battery_yes">"是"</string>
+    <!-- No option of the low battery alert dialog -->
+    <string name="low_battery_no">"否"</string>
+    <!-- Message text of the low battery alert dialog in cases when video call can be downgraded to voice call -->
+    <string name="low_battery_downgrade_to_voice_msg">"要将视频通话转换为音频通话吗?"</string>
+    <!-- Message text of the low battery alert dialog in cases video call doesn't have downgrade capabilities -->
+    <string name="low_battery_hangup_msg">"要挂断电话吗?"</string>
+    <!-- Description of the call transfer related strings [CHAR LIMIT=NONE] -->
+    <string name="qti_ims_transfer_num_error">"号码未设置。通过 IMS 设置提供号码,然后重试。"</string>
+    <string name="qti_ims_transfer_request_error">"呼叫转移请求失败。"</string>
+    <string name="qti_ims_transfer_request_success">"呼叫转移请求成功。"</string>
+    <!-- Text for the onscreen "blind transfer" button -->
+    <string name="qti_ims_onscreenBlindTransfer">"无条件转移"</string>
+    <!-- Text for the onscreen "assured transfer" button -->
+    <string name="qti_ims_onscreenAssuredTransfer">"固定转移"</string>
+    <!-- Text for the onscreen "consultative transfer" button -->
+    <string name="qti_ims_onscreenConsultativeTransfer">"询问转移"</string>
+    <!-- Text for operator specific emergency number -->
+    <add-resource type="string" name="emergency_call_dialog_number_for_display_operator"/>
+    <string name="emergency_call_dialog_number_for_display_operator">"紧急呼救"</string>
 </resources>
diff --git a/InCallUI/res/values-zh-rCN/strings.xml b/InCallUI/res/values-zh-rCN/strings.xml
index d34aa32..04d7af3 100644
--- a/InCallUI/res/values-zh-rCN/strings.xml
+++ b/InCallUI/res/values-zh-rCN/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"拒绝"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"回电"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"发短信"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"其他设备上有正在进行的通话"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"转接通话"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"要拨打电话,请先关闭飞行模式。"</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"尚未注册网络。"</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"无法连接到移动网络。"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"视频通话"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"改为语音通话"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"切换摄像头"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"暂停视频"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"开启摄像头"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"关闭摄像头"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"更多选项"</string>
     <string name="player_started" msgid="3478865572468310331">"播放器已启动"</string>
     <string name="player_stopped" msgid="1278611664986561535">"播放器已停止"</string>
diff --git a/InCallUI/res/values-zh-rHK/strings.xml b/InCallUI/res/values-zh-rHK/strings.xml
index 9213658..5994a23 100644
--- a/InCallUI/res/values-zh-rHK/strings.xml
+++ b/InCallUI/res/values-zh-rHK/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"拒絕"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"回電"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"短訊"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"其他裝置上有正在進行的通話"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"轉接來電"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"如要撥打電話,請先關閉飛行模式。"</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"未在網絡上註冊。"</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"無法連線至流動網絡。"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"視像通話"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"變更為語音通話"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"切換鏡頭"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"暫停視像通話"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"開啟攝影機"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"關閉攝影機"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"更多選項"</string>
     <string name="player_started" msgid="3478865572468310331">"已啟動播放器"</string>
     <string name="player_stopped" msgid="1278611664986561535">"已停止播放器"</string>
diff --git a/InCallUI/res/values-zh-rTW/strings.xml b/InCallUI/res/values-zh-rTW/strings.xml
index 0c52ee2..70c0870 100644
--- a/InCallUI/res/values-zh-rTW/strings.xml
+++ b/InCallUI/res/values-zh-rTW/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"拒絕"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"回撥"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"傳送簡訊"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"其他裝置上有進行中的通話"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"轉接來電"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"撥號前,請先關閉飛航模式。"</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"尚未註冊網路。"</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"無法連線到行動網路。"</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"視訊通話"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"變更為語音通話"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"切換鏡頭"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"暫停視訊畫面"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"開啟攝影機"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"關閉攝影機"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"更多選項"</string>
     <string name="player_started" msgid="3478865572468310331">"已啟動播放器"</string>
     <string name="player_stopped" msgid="1278611664986561535">"已停止播放器"</string>
diff --git a/InCallUI/res/values-zu/strings.xml b/InCallUI/res/values-zu/strings.xml
index f04867c..9a8c3aa 100644
--- a/InCallUI/res/values-zu/strings.xml
+++ b/InCallUI/res/values-zu/strings.xml
@@ -83,6 +83,8 @@
     <string name="notification_action_dismiss" msgid="1998811618480434300">"Cashisa"</string>
     <string name="notification_missedCall_call_back" msgid="7855043480614703539">"Phinda ushayele"</string>
     <string name="notification_missedCall_message" msgid="2407410183079324393">"Umlayezo"</string>
+    <string name="notification_external_call" msgid="5611236780302924816">"Ikholi eqhubekayo kwenye idivayisi"</string>
+    <string name="notification_transfer_call" msgid="687009078741947505">"Dlulisela ikholi"</string>
     <string name="incall_error_power_off" msgid="3626117639377110403">"Ukwenza ikholi, vala kuqala imodi Yendiza."</string>
     <string name="incall_error_emergency_only" msgid="8704761887752183855">"Ayibhalisiwe kwinethiwekhi."</string>
     <string name="incall_error_out_of_service" msgid="1830319376612608339">"Inethiwekhi yeselula ayitholakali."</string>
@@ -121,7 +123,8 @@
     <string name="onscreenVideoCallText" msgid="1578940167445068369">"Ikholi yevidiyo"</string>
     <string name="onscreenChangeToVoiceText" msgid="6249580619992009182">"Shintshela kukholi yezwi"</string>
     <string name="onscreenSwitchCameraText" msgid="7141261218152736690">"Shintsha Ikhamera"</string>
-    <string name="onscreenPauseVideoText" msgid="1268768027709892604">"Misa isikhashana ividiyo"</string>
+    <string name="onscreenTurnOnCameraText" msgid="915019986687927588">"Vula ikhamera"</string>
+    <string name="onscreenTurnOffCameraText" msgid="6225377831394679126">"Vala ikhamera"</string>
     <string name="onscreenOverflowText" msgid="7932741239724473887">"Izinketho eziningi"</string>
     <string name="player_started" msgid="3478865572468310331">"Umdlali uqalile"</string>
     <string name="player_stopped" msgid="1278611664986561535">"Umdlali umisiwe"</string>
diff --git a/InCallUI/res/values/strings.xml b/InCallUI/res/values/strings.xml
index cdc254c..02e4bcf 100644
--- a/InCallUI/res/values/strings.xml
+++ b/InCallUI/res/values/strings.xml
@@ -218,6 +218,17 @@
          The user will be able to send text messages using the phone number.
          [CHAR LIMIT=12] -->
     <string name="notification_missedCall_message">Message</string>
+    <!-- The "label" of the in-call Notification for an ongoing external call.
+         External calls are a representation of a call which is in progress on the user's other
+         device (e.g. another phone or a watch).
+         [CHAR LIMIT=60] -->
+    <string name="notification_external_call">Ongoing call on another device</string>
+    <!-- Notification action displayed for external call notifications.  External calls are a
+         representation of a call which is in progress on the user's other device (e.g. another
+         phone or a watch).  The "transfer call" action initiates the process of transferring an
+         external call to the current device.
+         [CHAR LIMIT=30] -->
+    <string name="notification_transfer_call">Transfer Call</string>
 
     <!-- In-call screen: call failure message displayed in an error dialog -->
     <string name="incall_error_power_off">To place a call, first turn off Airplane mode.</string>
@@ -313,8 +324,10 @@
     <!-- Text for the onscreen "Switch camera" button. When clicked, this switches the user's camera
          for video calling between the front-facing camera and the back-facing camera. -->
     <string name="onscreenSwitchCameraText">Switch camera</string>
-    <!-- Text for the onscreen "Pause video" button. -->
-    <string name="onscreenPauseVideoText">Pause video</string>
+    <!-- Text for the onscreen "turn on camera" button. -->
+    <string name="onscreenTurnOnCameraText">Turn on camera</string>
+    <!-- Text for the onscreen "turn off camera" button. -->
+    <string name="onscreenTurnOffCameraText">Turn off camera</string>
     <!-- Text for the onscreen overflow button, to see additional actions which can be done. -->
     <string name="onscreenOverflowText">More options</string>
 
diff --git a/InCallUI/src/com/android/incallui/Call.java b/InCallUI/src/com/android/incallui/Call.java
index 60bc42e..feaf5ee 100644
--- a/InCallUI/src/com/android/incallui/Call.java
+++ b/InCallUI/src/com/android/incallui/Call.java
@@ -37,6 +37,8 @@
 import android.text.TextUtils;
 
 import com.android.contacts.common.CallUtil;
+import com.android.contacts.common.compat.CallSdkCompat;
+import com.android.contacts.common.compat.CompatUtils;
 import com.android.contacts.common.compat.SdkVersionOverride;
 import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
 import com.android.contacts.common.testing.NeededForTesting;
@@ -366,6 +368,12 @@
                     List<android.telecom.Call> conferenceableCalls) {
                 update();
             }
+
+            @Override
+            public void onConnectionEvent(android.telecom.Call call, String event, Bundle extras) {
+                Log.d(this, "TelecomCallCallback onConnectionEvent call=" + call);
+                update();
+            }
     };
 
     boolean mIsActiveSub = false;
@@ -414,13 +422,30 @@
         setState(state);
     }
 
+    /**
+     * Creates a new instance of a {@link Call}.  Registers a callback for
+     * {@link android.telecom.Call} events.
+     */
     public Call(android.telecom.Call telecomCall) {
+        this(telecomCall, true /* registerCallback */);
+    }
+
+    /**
+     * Creates a new instance of a {@link Call}.  Optionally registers a callback for
+     * {@link android.telecom.Call} events.
+     *
+     * Intended for use when creating a {@link Call} instance for use with the
+     * {@link ContactInfoCache}, where we do not want to register callbacks for the new call.
+     */
+    public Call(android.telecom.Call telecomCall, boolean registerCallback) {
         mTelecomCall = telecomCall;
         mId = ID_PREFIX + Integer.toString(sIdCounter++);
 
-        updateFromTelecomCall();
+        updateFromTelecomCall(registerCallback);
 
-        mTelecomCall.registerCallback(mTelecomCallCallback);
+        if (registerCallback) {
+            mTelecomCall.registerCallback(mTelecomCallCallback);
+        }
 
         mTimeAddedMs = System.currentTimeMillis();
     }
@@ -440,7 +465,8 @@
     private void update() {
         Trace.beginSection("Update");
         int oldState = getState();
-        updateFromTelecomCall();
+        // We want to potentially register a video call callback here.
+        updateFromTelecomCall(true /* registerCallback */);
         if (oldState != getState() && getState() == Call.State.DISCONNECTED) {
             CallList.getInstance().onDisconnect(this);
         } else {
@@ -449,7 +475,7 @@
         Trace.endSection();
     }
 
-    private void updateFromTelecomCall() {
+    private void updateFromTelecomCall(boolean registerCallback) {
         Log.d(this, "updateFromTelecomCall: " + mTelecomCall.toString());
         final int translatedState = translateState(mTelecomCall.getState());
         if (mState != State.BLOCKED) {
@@ -458,7 +484,7 @@
             maybeCancelVideoUpgrade(mTelecomCall.getDetails().getVideoState());
         }
 
-        if (mTelecomCall.getVideoCall() != null) {
+        if (registerCallback && mTelecomCall.getVideoCall() != null) {
             if (mVideoCallCallback == null) {
                 mVideoCallCallback = new InCallVideoCallCallback(this);
             }
@@ -973,9 +999,46 @@
     }
 
     /**
+     * Determines if the call is an external call.
+     *
+     * An external call is one which does not exist locally for the
+     * {@link android.telecom.ConnectionService} it is associated with.
+     *
+     * External calls are only supported in N and higher.
+     *
+     * @return {@code true} if the call is an external call, {@code false} otherwise.
+     */
+    public boolean isExternalCall() {
+        return CompatUtils.isNCompatible() &&
+                hasProperty(CallSdkCompat.Details.PROPERTY_IS_EXTERNAL_CALL);
+    }
+
+    /**
+     * Determines if the external call is pullable.
+     *
+     * An external call is one which does not exist locally for the
+     * {@link android.telecom.ConnectionService} it is associated with.  An external call may be
+     * "pullable", which means that the user can request it be transferred to the current device.
+     *
+     * External calls are only supported in N and higher.
+     *
+     * @return {@code true} if the call is an external call, {@code false} otherwise.
+     */
+    public boolean isPullableExternalCall() {
+        return CompatUtils.isNCompatible() &&
+                (mTelecomCall.getDetails().getCallCapabilities()
+                        & CallSdkCompat.Details.CAPABILITY_CAN_PULL_CALL)
+                        == CallSdkCompat.Details.CAPABILITY_CAN_PULL_CALL;
+    }
+
+    /**
      * Logging utility methods
      */
     public void logCallInitiationType() {
+        if (isExternalCall()) {
+            return;
+        }
+
         if (getState() == State.INCOMING) {
             getLogState().callInitiationMethod = LogState.INITIATION_INCOMING;
         } else if (getIntentExtras() != null) {
@@ -993,11 +1056,13 @@
             return String.valueOf(mId);
         }
 
-        return String.format(Locale.US, "[%s, %s, %s, children:%s, parent:%s, conferenceable:%s, " +
-                "videoState:%s, mSessionModificationState:%d, VideoSettings:%s, mIsActivSub:%b]",
+        return String.format(Locale.US, "[%s, %s, %s, %s, children:%s, parent:%s, " +
+                "conferenceable:%s, videoState:%s, mSessionModificationState:%d, VideoSettings:%s" +
+                ", mIsActivSub:%b]" ,
                 mId,
                 State.toString(getState()),
                 Details.capabilitiesToString(mTelecomCall.getDetails().getCallCapabilities()),
+                Details.propertiesToString(mTelecomCall.getDetails().getCallProperties()),
                 mChildCallIds,
                 getParentId(),
                 this.mTelecomCall.getConferenceableCalls(),
diff --git a/InCallUI/src/com/android/incallui/CallButtonFragment.java b/InCallUI/src/com/android/incallui/CallButtonFragment.java
index 5c1319f..7694c5f 100644
--- a/InCallUI/src/com/android/incallui/CallButtonFragment.java
+++ b/InCallUI/src/com/android/incallui/CallButtonFragment.java
@@ -79,7 +79,6 @@
         implements CallButtonPresenter.CallButtonUi, OnMenuItemClickListener, OnDismissListener,
         View.OnClickListener {
 
-    private static final int INVALID_INDEX = -1;
     private int mButtonMaxVisible;
     // The button is currently visible in the UI
     private static final int BUTTON_VISIBLE = 1;
@@ -228,7 +227,7 @@
         super.onActivityCreated(savedInstanceState);
 
         // set the buttons
-        updateAudioButtons(getPresenter().getSupportedAudio());
+        updateAudioButtons();
     }
 
     @Override
@@ -538,8 +537,14 @@
     }
 
     @Override
-    public void setVideoPaused(boolean isPaused) {
-        mPauseVideoButton.setSelected(isPaused);
+    public void setVideoPaused(boolean isVideoPaused) {
+        mPauseVideoButton.setSelected(isVideoPaused);
+
+        if (isVideoPaused) {
+            mPauseVideoButton.setContentDescription(getText(R.string.onscreenTurnOnCameraText));
+        } else {
+            mPauseVideoButton.setContentDescription(getText(R.string.onscreenTurnOffCameraText));
+        }
     }
 
     @Override
@@ -618,7 +623,7 @@
 
     @Override
     public void setAudio(int mode) {
-        updateAudioButtons(getPresenter().getSupportedAudio());
+        updateAudioButtons();
         refreshAudioModePopup();
 
         if (mPrevAudioMode != mode) {
@@ -629,7 +634,7 @@
 
     @Override
     public void setSupportedAudio(int modeMask) {
-        updateAudioButtons(modeMask);
+        updateAudioButtons();
         refreshAudioModePopup();
     }
 
@@ -668,7 +673,7 @@
     public void onDismiss(PopupMenu menu) {
         Log.d(this, "- onDismiss: " + menu);
         mAudioModePopupVisible = false;
-        updateAudioButtons(getPresenter().getSupportedAudio());
+        updateAudioButtons();
     }
 
     /**
@@ -713,7 +718,7 @@
      * Updates the audio button so that the appriopriate visual layers
      * are visible based on the supported audio formats.
      */
-    private void updateAudioButtons(int supportedModes) {
+    private void updateAudioButtons() {
         final boolean bluetoothSupported = isSupported(CallAudioState.ROUTE_BLUETOOTH);
         final boolean speakerSupported = isSupported(CallAudioState.ROUTE_SPEAKER);
 
diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
index b5002db..8af8835 100644
--- a/InCallUI/src/com/android/incallui/CallButtonPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
@@ -300,11 +300,13 @@
     }
 
     public void addCallClicked() {
-        // Automatically mute the current call
-        mAutomaticallyMuted = true;
-        mPreviousMuteState = AudioModeProvider.getInstance().getMute();
-        // Simulate a click on the mute button
-        muteClicked(true);
+        if (!QtiImsExtUtils.isCarrierOneSupported()) {
+            // Automatically mute the current call
+            mAutomaticallyMuted = true;
+            mPreviousMuteState = AudioModeProvider.getInstance().getMute();
+            // Simulate a click on the mute button
+            muteClicked(true);
+        }
         TelecomAdapter.getInstance().addCall();
     }
 
@@ -472,7 +474,6 @@
     private void updateButtonsState(Call call) {
         Log.v(this, "updateButtonsState");
         final CallButtonUi ui = getUi();
-
         final boolean isVideo = VideoUtils.isVideoCall(call);
 
         // Common functionality (audio, hold, etc).
@@ -549,6 +550,9 @@
         ui.showButton(BUTTON_SWITCH_CAMERA, isVideo);
         ui.showButton(BUTTON_PAUSE_VIDEO, isVideo && !useExt && !useCustomVideoUi &&
                 !mEnhanceEnable);
+        if (isVideo) {
+            getUi().setVideoPaused(!VideoUtils.isTransmissionEnabled(call));
+        }
         ui.showButton(BUTTON_DIALPAD, true);
         ui.showButton(BUTTON_MERGE, showMerge);
         ui.showButton(BUTTON_ADD_PARTICIPANT, showAddParticipant && !mEnhanceEnable);
diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java
index 315b57f..4317a5e 100644
--- a/InCallUI/src/com/android/incallui/CallCardPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java
@@ -1160,6 +1160,15 @@
         // No-op - the Call Card is the origin of this event.
     }
 
+    @Override
+    public void onIncomingVideoAvailabilityChanged(boolean isAvailable) {
+        Log.d(this, "onIncomingVideoAvailabilityChanged: available = " + isAvailable);
+        if (mPrimary == null) {
+            return;
+        }
+        updatePrimaryDisplayInfo();
+    }
+
     private boolean isPrimaryCallActive() {
         return mPrimary != null && mPrimary.getState() == Call.State.ACTIVE;
     }
diff --git a/InCallUI/src/com/android/incallui/ExternalCallList.java b/InCallUI/src/com/android/incallui/ExternalCallList.java
new file mode 100644
index 0000000..06e0bb9
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/ExternalCallList.java
@@ -0,0 +1,105 @@
+package com.android.incallui;
+
+import com.google.common.base.Preconditions;
+
+import com.android.contacts.common.compat.CallSdkCompat;
+
+import android.os.Handler;
+import android.os.Looper;
+import android.telecom.Call;
+import android.util.ArraySet;
+
+import java.util.Collections;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Tracks the external calls known to the InCall UI.
+ *
+ * External calls are those with {@link android.telecom.Call.Details#PROPERTY_IS_EXTERNAL_CALL}.
+ */
+public class ExternalCallList {
+
+    public interface ExternalCallListener {
+        void onExternalCallAdded(Call call);
+        void onExternalCallRemoved(Call call);
+        void onExternalCallUpdated(Call call);
+    }
+
+    /**
+     * Handles {@link android.telecom.Call.Callback} callbacks.
+     */
+    private final Call.Callback mTelecomCallCallback = new Call.Callback() {
+        @Override
+        public void onDetailsChanged(Call call, Call.Details details) {
+            notifyExternalCallUpdated(call);
+        }
+    };
+
+    private final Set<Call> mExternalCalls = new ArraySet<>();
+    private final Set<ExternalCallListener> mExternalCallListeners = Collections.newSetFromMap(
+            new ConcurrentHashMap<ExternalCallListener, Boolean>(8, 0.9f, 1));
+
+    /**
+     * Begins tracking an external call and notifies listeners of the new call.
+     */
+    public void onCallAdded(Call telecomCall) {
+        Preconditions.checkArgument(telecomCall.getDetails()
+                .hasProperty(CallSdkCompat.Details.PROPERTY_IS_EXTERNAL_CALL));
+        mExternalCalls.add(telecomCall);
+        telecomCall.registerCallback(mTelecomCallCallback, new Handler(Looper.getMainLooper()));
+        notifyExternalCallAdded(telecomCall);
+    }
+
+    /**
+     * Stops tracking an external call and notifies listeners of the removal of the call.
+     */
+    public void onCallRemoved(Call telecomCall) {
+        Preconditions.checkArgument(mExternalCalls.contains(telecomCall));
+        mExternalCalls.remove(telecomCall);
+        telecomCall.unregisterCallback(mTelecomCallCallback);
+        notifyExternalCallRemoved(telecomCall);
+    }
+
+    /**
+     * Adds a new listener to external call events.
+     */
+    public void addExternalCallListener(ExternalCallListener listener) {
+        mExternalCallListeners.add(Preconditions.checkNotNull(listener));
+    }
+
+    /**
+     * Removes a listener to external call events.
+     */
+    public void removeExternalCallListener(ExternalCallListener listener) {
+        Preconditions.checkArgument(mExternalCallListeners.contains(listener));
+        mExternalCallListeners.remove(Preconditions.checkNotNull(listener));
+    }
+
+    /**
+     * Notifies listeners of the addition of a new external call.
+     */
+    private void notifyExternalCallAdded(Call call) {
+        for (ExternalCallListener listener : mExternalCallListeners) {
+            listener.onExternalCallAdded(call);
+        }
+    }
+
+    /**
+     * Notifies listeners of the removal of an external call.
+     */
+    private void notifyExternalCallRemoved(Call call) {
+        for (ExternalCallListener listener : mExternalCallListeners) {
+            listener.onExternalCallRemoved(call);
+        }
+    }
+
+    /**
+     * Notifies listeners of changes to an external call.
+     */
+    private void notifyExternalCallUpdated(Call call) {
+        for (ExternalCallListener listener : mExternalCallListeners) {
+            listener.onExternalCallUpdated(call);
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/ExternalCallNotifier.java b/InCallUI/src/com/android/incallui/ExternalCallNotifier.java
new file mode 100644
index 0000000..40a2e02
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/ExternalCallNotifier.java
@@ -0,0 +1,406 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui;
+
+import com.google.common.base.Preconditions;
+
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.compat.CallSdkCompat;
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.contacts.common.util.BitmapUtil;
+import com.android.contacts.common.util.ContactDisplayUtils;
+import com.android.dialer.R;
+import com.android.incallui.util.TelecomCallUtil;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.drawable.BitmapDrawable;
+import android.net.Uri;
+import android.support.annotation.Nullable;
+import android.telecom.Call;
+import android.telecom.PhoneAccount;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
+import android.text.TextUtils;
+import android.util.ArrayMap;
+
+import java.util.Map;
+
+/**
+ * Handles the display of notifications for "external calls".
+ *
+ * External calls are a representation of a call which is in progress on the user's other device
+ * (e.g. another phone, or a watch).
+ */
+public class ExternalCallNotifier implements ExternalCallList.ExternalCallListener {
+
+    /**
+     * Tag used with the notification manager to uniquely identify external call notifications.
+     */
+    private static final String NOTIFICATION_TAG = "EXTERNAL_CALL";
+
+    /**
+     * Represents a call and associated cached notification data.
+     */
+    private static class NotificationInfo {
+        private final Call mCall;
+        private final int mNotificationId;
+        @Nullable private String mContentTitle;
+        @Nullable private Bitmap mLargeIcon;
+        @Nullable private String mPersonReference;
+
+        public NotificationInfo(Call call, int notificationId) {
+            Preconditions.checkNotNull(call);
+            mCall = call;
+            mNotificationId = notificationId;
+        }
+
+        public Call getCall() {
+            return mCall;
+        }
+
+        public int getNotificationId() {
+            return mNotificationId;
+        }
+
+        public @Nullable String getContentTitle() {
+            return mContentTitle;
+        }
+
+        public @Nullable Bitmap getLargeIcon() {
+            return mLargeIcon;
+        }
+
+        public @Nullable String getPersonReference() {
+            return mPersonReference;
+        }
+
+        public void setContentTitle(@Nullable String contentTitle) {
+            mContentTitle = contentTitle;
+        }
+
+        public void setLargeIcon(@Nullable Bitmap largeIcon) {
+            mLargeIcon = largeIcon;
+        }
+
+        public void setPersonReference(@Nullable String personReference) {
+            mPersonReference = personReference;
+        }
+    }
+
+    private final Context mContext;
+    private final ContactInfoCache mContactInfoCache;
+    private Map<Call, NotificationInfo> mNotifications = new ArrayMap<>();
+    private int mNextUniqueNotificationId;
+    private ContactsPreferences mContactsPreferences;
+
+    /**
+     * Initializes a new instance of the external call notifier.
+     */
+    public ExternalCallNotifier(Context context, ContactInfoCache contactInfoCache) {
+        mContext = Preconditions.checkNotNull(context);
+        mContactsPreferences = ContactsPreferencesFactory.newContactsPreferences(mContext);
+        mContactInfoCache = Preconditions.checkNotNull(contactInfoCache);
+    }
+
+    /**
+     * Handles the addition of a new external call by showing a new notification.
+     * Triggered by {@link CallList#onCallAdded(android.telecom.Call)}.
+     */
+    @Override
+    public void onExternalCallAdded(android.telecom.Call call) {
+        Log.i(this, "onExternalCallAdded " + call);
+        Preconditions.checkArgument(!mNotifications.containsKey(call));
+        NotificationInfo info = new NotificationInfo(call, mNextUniqueNotificationId++);
+        mNotifications.put(call, info);
+
+        showNotifcation(info);
+    }
+
+    /**
+     * Handles the removal of an external call by hiding its associated notification.
+     * Triggered by {@link CallList#onCallRemoved(android.telecom.Call)}.
+     */
+    @Override
+    public void onExternalCallRemoved(android.telecom.Call call) {
+        Log.i(this, "onExternalCallRemoved " + call);
+
+        dismissNotification(call);
+    }
+
+    /**
+     * Handles updates to an external call.
+     */
+    @Override
+    public void onExternalCallUpdated(Call call) {
+        Preconditions.checkArgument(mNotifications.containsKey(call));
+        postNotification(mNotifications.get(call));
+    }
+
+    /**
+     * Initiates a call pull given a notification ID.
+     *
+     * @param notificationId The notification ID associated with the external call which is to be
+     *                       pulled.
+     */
+    public void pullExternalCall(int notificationId) {
+        for (NotificationInfo info : mNotifications.values()) {
+            if (info.getNotificationId() == notificationId) {
+                CallSdkCompat.pullExternalCall(info.getCall());
+                return;
+            }
+        }
+    }
+
+    /**
+     * Shows a notification for a new external call.  Performs a contact cache lookup to find any
+     * associated photo and information for the call.
+     */
+    private void showNotifcation(final NotificationInfo info) {
+        // We make a call to the contact info cache to query for supplemental data to what the
+        // call provides.  This includes the contact name and photo.
+        // This callback will always get called immediately and synchronously with whatever data
+        // it has available, and may make a subsequent call later (same thread) if it had to
+        // call into the contacts provider for more data.
+        com.android.incallui.Call incallCall = new com.android.incallui.Call(info.getCall(),
+                false /* registerCallback */);
+
+        mContactInfoCache.findInfo(incallCall, false /* isIncoming */,
+                new ContactInfoCache.ContactInfoCacheCallback() {
+                    @Override
+                    public void onContactInfoComplete(String callId,
+                            ContactInfoCache.ContactCacheEntry entry) {
+
+                        // Ensure notification still exists as the external call could have been
+                        // removed during async contact info lookup.
+                        if (mNotifications.containsKey(info.getCall())) {
+                            saveContactInfo(info, entry);
+                        }
+                    }
+
+                    @Override
+                    public void onImageLoadComplete(String callId,
+                            ContactInfoCache.ContactCacheEntry entry) {
+
+                        // Ensure notification still exists as the external call could have been
+                        // removed during async contact info lookup.
+                        if (mNotifications.containsKey(info.getCall())) {
+                            savePhoto(info, entry);
+                        }
+                    }
+
+                    @Override
+                    public void onContactInteractionsInfoComplete(String callId,
+                            ContactInfoCache.ContactCacheEntry entry) {
+                    }
+                });
+    }
+
+    /**
+     * Dismisses a notification for an external call.
+     */
+    private void dismissNotification(Call call) {
+        Preconditions.checkArgument(mNotifications.containsKey(call));
+
+        NotificationManager notificationManager =
+                (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
+        notificationManager.cancel(NOTIFICATION_TAG, mNotifications.get(call).getNotificationId());
+
+        mNotifications.remove(call);
+    }
+
+    /**
+     * Attempts to build a large icon to use for the notification based on the contact info and
+     * post the updated notification to the notification manager.
+     */
+    private void savePhoto(NotificationInfo info, ContactInfoCache.ContactCacheEntry entry) {
+        Bitmap largeIcon = getLargeIconToDisplay(mContext, entry, info.getCall());
+        if (largeIcon != null) {
+            largeIcon = getRoundedIcon(mContext, largeIcon);
+        }
+        info.setLargeIcon(largeIcon);
+        postNotification(info);
+    }
+
+    /**
+     * Builds and stores the contact information the notification will display and posts the updated
+     * notification to the notification manager.
+     */
+    private void saveContactInfo(NotificationInfo info, ContactInfoCache.ContactCacheEntry entry) {
+        info.setContentTitle(getContentTitle(mContext, mContactsPreferences,
+                entry, info.getCall()));
+        info.setPersonReference(getPersonReference(entry, info.getCall()));
+        postNotification(info);
+    }
+
+    /**
+     * Rebuild an existing or show a new notification given {@link NotificationInfo}.
+     */
+    private void postNotification(NotificationInfo info) {
+        Log.i(this, "postNotification : " + info.getContentTitle());
+        Notification.Builder builder = new Notification.Builder(mContext);
+        // Set notification as ongoing since calls are long-running versus a point-in-time notice.
+        builder.setOngoing(true);
+        // Make the notification prioritized over the other normal notifications.
+        builder.setPriority(Notification.PRIORITY_HIGH);
+        // Set the content ("Ongoing call on another device")
+        builder.setContentText(mContext.getString(R.string.notification_external_call));
+        builder.setSmallIcon(R.drawable.ic_call_white_24dp);
+        builder.setContentTitle(info.getContentTitle());
+        builder.setLargeIcon(info.getLargeIcon());
+        builder.setColor(mContext.getResources().getColor(R.color.dialer_theme_color));
+        builder.addPerson(info.getPersonReference());
+
+        // Where the external call supports being transferred to the local device, add an action
+        // to the notification to initiate the call pull process.
+        if ((info.getCall().getDetails().getCallCapabilities()
+                & CallSdkCompat.Details.CAPABILITY_CAN_PULL_CALL)
+                == CallSdkCompat.Details.CAPABILITY_CAN_PULL_CALL) {
+
+            Intent intent = new Intent(
+                    NotificationBroadcastReceiver.ACTION_PULL_EXTERNAL_CALL, null, mContext,
+                    NotificationBroadcastReceiver.class);
+            intent.putExtra(NotificationBroadcastReceiver.EXTRA_NOTIFICATION_ID,
+                    info.getNotificationId());
+
+            builder.addAction(new Notification.Action.Builder(R.drawable.ic_call_white_24dp,
+                    mContext.getText(R.string.notification_transfer_call),
+                    PendingIntent.getBroadcast(mContext, 0, intent, 0)).build());
+        }
+
+        /**
+         * This builder is used for the notification shown when the device is locked and the user
+         * has set their notification settings to 'hide sensitive content'
+         * {@see Notification.Builder#setPublicVersion}.
+         */
+        Notification.Builder publicBuilder = new Notification.Builder(mContext);
+        publicBuilder.setSmallIcon(R.drawable.ic_call_white_24dp);
+        publicBuilder.setColor(mContext.getResources().getColor(R.color.dialer_theme_color));
+
+        builder.setPublicVersion(publicBuilder.build());
+        Notification notification = builder.build();
+
+        NotificationManager notificationManager =
+                (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
+        notificationManager.notify(NOTIFICATION_TAG, info.getNotificationId(), notification);
+    }
+
+    /**
+     * Finds a large icon to display in a notification for a call.  For conference calls, a
+     * conference call icon is used, otherwise if contact info is specified, the user's contact
+     * photo or avatar is used.
+     *
+     * @param context The context.
+     * @param contactInfo The contact cache info.
+     * @param call The call.
+     * @return The large icon to use for the notification.
+     */
+    private @Nullable Bitmap getLargeIconToDisplay(Context context,
+            ContactInfoCache.ContactCacheEntry contactInfo, android.telecom.Call call) {
+
+        Bitmap largeIcon = null;
+        if (call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE) &&
+                !call.getDetails()
+                        .hasProperty(android.telecom.Call.Details.PROPERTY_GENERIC_CONFERENCE)) {
+
+            largeIcon = BitmapFactory.decodeResource(context.getResources(),
+                    R.drawable.img_conference);
+        }
+        if (contactInfo.photo != null && (contactInfo.photo instanceof BitmapDrawable)) {
+            largeIcon = ((BitmapDrawable) contactInfo.photo).getBitmap();
+        }
+        return largeIcon;
+    }
+
+    /**
+     * Given a bitmap, returns a rounded version of the icon suitable for display in a notification.
+     *
+     * @param context The context.
+     * @param bitmap The bitmap to round.
+     * @return The rounded bitmap.
+     */
+    private @Nullable Bitmap getRoundedIcon(Context context, @Nullable Bitmap bitmap) {
+        if (bitmap == null) {
+            return null;
+        }
+        final int height = (int) context.getResources().getDimension(
+                android.R.dimen.notification_large_icon_height);
+        final int width = (int) context.getResources().getDimension(
+                android.R.dimen.notification_large_icon_width);
+        return BitmapUtil.getRoundedBitmap(bitmap, width, height);
+    }
+
+    /**
+     * Builds a notification content title for a call.  If the call is a conference call, it is
+     * identified as such.  Otherwise an attempt is made to show an associated contact name or
+     * phone number.
+     *
+     * @param context The context.
+     * @param contactsPreferences Contacts preferences, used to determine the preferred formatting
+     *                            for contact names.
+     * @param contactInfo The contact info which was looked up in the contact cache.
+     * @param call The call to generate a title for.
+     * @return The content title.
+     */
+    private @Nullable String getContentTitle(Context context,
+            @Nullable ContactsPreferences contactsPreferences,
+            ContactInfoCache.ContactCacheEntry contactInfo, android.telecom.Call call) {
+
+        if (call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE) &&
+                !call.getDetails()
+                        .hasProperty(android.telecom.Call.Details.PROPERTY_GENERIC_CONFERENCE)) {
+
+            return context.getResources().getString(R.string.card_title_conf_call);
+        }
+
+        String preferredName = ContactDisplayUtils.getPreferredDisplayName(contactInfo.namePrimary,
+                contactInfo.nameAlternative, contactsPreferences);
+        if (TextUtils.isEmpty(preferredName)) {
+            return TextUtils.isEmpty(contactInfo.number) ? null : BidiFormatter.getInstance()
+                    .unicodeWrap(contactInfo.number, TextDirectionHeuristics.LTR);
+        }
+        return preferredName;
+    }
+
+    /**
+     * Gets a "person reference" for a notification, used by the system to determine whether the
+     * notification should be allowed past notification interruption filters.
+     *
+     * @param contactInfo The contact info from cache.
+     * @param call The call.
+     * @return the person reference.
+     */
+    private String getPersonReference(ContactInfoCache.ContactCacheEntry contactInfo,
+            Call call) {
+
+        String number = TelecomCallUtil.getNumber(call);
+        // Query {@link Contacts#CONTENT_LOOKUP_URI} directly with work lookup key is not allowed.
+        // So, do not pass {@link Contacts#CONTENT_LOOKUP_URI} to NotificationManager to avoid
+        // NotificationManager using it.
+        if (contactInfo.lookupUri != null && contactInfo.userType != ContactsUtils.USER_TYPE_WORK) {
+            return contactInfo.lookupUri.toString();
+        } else if (!TextUtils.isEmpty(number)) {
+            return Uri.fromParts(PhoneAccount.SCHEME_TEL, number, null).toString();
+        }
+        return "";
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/InCallActivity.java b/InCallUI/src/com/android/incallui/InCallActivity.java
index d9f610d..4598d3c 100644
--- a/InCallUI/src/com/android/incallui/InCallActivity.java
+++ b/InCallUI/src/com/android/incallui/InCallActivity.java
@@ -214,6 +214,10 @@
         // TODO(klp): Do we need to add this back when prox sensor is not available?
         // lp.inputFeatures |= WindowManager.LayoutParams.INPUT_FEATURE_DISABLE_USER_ACTIVITY;
 
+        // Since activity is created newly, clear full screen flag. This will ensure that
+        // the flag is in sync with actual UI when UI is recreated due to orientation change.
+        InCallPresenter.getInstance().clearFullscreen();
+
         setContentView(R.layout.incall_screen);
 
         internalResolveIntent(getIntent());
diff --git a/InCallUI/src/com/android/incallui/InCallPresenter.java b/InCallUI/src/com/android/incallui/InCallPresenter.java
index 04d2f75..0acc35e 100644
--- a/InCallUI/src/com/android/incallui/InCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/InCallPresenter.java
@@ -44,6 +44,7 @@
 import android.view.WindowManager;
 
 import com.android.contacts.common.GeoUtil;
+import com.android.contacts.common.compat.CallSdkCompat;
 import com.android.contacts.common.compat.CompatUtils;
 import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
 import com.android.contacts.common.interactions.TouchPointManager;
@@ -112,9 +113,11 @@
 
     private AudioModeProvider mAudioModeProvider;
     private StatusBarNotifier mStatusBarNotifier;
+    private ExternalCallNotifier mExternalCallNotifier;
     private ContactInfoCache mContactInfoCache;
     private Context mContext;
     private CallList mCallList;
+    private ExternalCallList mExternalCallList;
     private InCallActivity mInCallActivity;
     private InCallState mInCallState = InCallState.NO_CALLS;
     private ProximitySensor mProximitySensor;
@@ -304,8 +307,10 @@
 
     public void setUp(Context context,
             CallList callList,
+            ExternalCallList externalCallList,
             AudioModeProvider audioModeProvider,
             StatusBarNotifier statusBarNotifier,
+            ExternalCallNotifier externalCallNotifier,
             ContactInfoCache contactInfoCache,
             ProximitySensor proximitySensor) {
         if (mServiceConnected) {
@@ -323,6 +328,7 @@
         mContactInfoCache = contactInfoCache;
 
         mStatusBarNotifier = statusBarNotifier;
+        mExternalCallNotifier = externalCallNotifier;
         addListener(mStatusBarNotifier);
 
         mAudioModeProvider = audioModeProvider;
@@ -330,6 +336,11 @@
         mProximitySensor = proximitySensor;
         addListener(mProximitySensor);
 
+        // dismiss any pending dialogues related to earlier call, which
+        // are no longer relevant now.
+        if (isActivityStarted()) {
+            mInCallActivity.dismissPendingDialogs();
+        }
         addIncomingCallListener(mAnswerPresenter);
         addInCallUiListener(mAnswerPresenter);
         mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
@@ -337,6 +348,8 @@
                 PowerManager.ACQUIRE_CAUSES_WAKEUP, "InCallPresenter");
 
         mCallList = callList;
+        mExternalCallList = externalCallList;
+        externalCallList.addExternalCallListener(mExternalCallNotifier);
 
         // This only gets called by the service so this is okay.
         mServiceConnected = true;
@@ -538,7 +551,12 @@
         if (shouldAttemptBlocking(call)) {
             maybeBlockCall(call);
         } else {
-            mCallList.onCallAdded(call);
+            if (call.getDetails()
+                    .hasProperty(CallSdkCompat.Details.PROPERTY_IS_EXTERNAL_CALL)) {
+                mExternalCallList.onCallAdded(call);
+            } else {
+                mCallList.onCallAdded(call);
+            }
         }
 
         // Since a call has been added we are no longer waiting for Telecom to send us a call.
@@ -558,6 +576,9 @@
             Log.i(this, "Not attempting to block incoming call due to recent emergency call");
             return false;
         }
+        if (call.getDetails().hasProperty(CallSdkCompat.Details.PROPERTY_IS_EXTERNAL_CALL)) {
+            return false;
+        }
 
         return true;
     }
@@ -627,8 +648,13 @@
     }
 
     public void onCallRemoved(android.telecom.Call call) {
-        mCallList.onCallRemoved(call);
-        call.unregisterCallback(mCallCallback);
+        if (call.getDetails()
+                .hasProperty(CallSdkCompat.Details.PROPERTY_IS_EXTERNAL_CALL)) {
+            mExternalCallList.onCallRemoved(call);
+        } else {
+            mCallList.onCallRemoved(call);
+            call.unregisterCallback(mCallCallback);
+        }
     }
 
     public void onCanAddCallChanged(boolean canAddCall) {
@@ -702,6 +728,7 @@
         if (CallList.getInstance().isDsdaEnabled() && (mInCallActivity != null)) {
             mInCallActivity.updateDsdaTab();
         }
+        wakeUpScreen();
     }
 
     @Override
@@ -1375,6 +1402,15 @@
         }
     }
 
+    /**
+     * Called by the {@link VideoCallPresenter} to inform of a change in availability of
+     * incoming video stream.
+     */
+    public void notifyIncomingVideoAvailabilityChanged(boolean isAvailable) {
+        for (InCallEventListener listener : mInCallEventListeners) {
+            listener.onIncomingVideoAvailabilityChanged(isAvailable);
+        }
+    }
 
     /**
      * For some disconnected causes, we show a dialog.  This calls into the activity to show
@@ -1652,6 +1688,9 @@
             if (mStatusBarNotifier != null) {
                 removeListener(mStatusBarNotifier);
             }
+            if (mExternalCallNotifier != null && mExternalCallList != null) {
+                mExternalCallList.removeExternalCallListener(mExternalCallNotifier);
+            }
             mStatusBarNotifier = null;
 
             InCallCsRedialHandler.getInstance().tearDown();
@@ -1867,21 +1906,6 @@
         }
     }
 
-    public void enableScreenTimeout(boolean enable) {
-        Log.v(this, "enableScreenTimeout: value=" + enable);
-        if (mInCallActivity == null) {
-            Log.e(this, "enableScreenTimeout: InCallActivity is null.");
-            return;
-        }
-
-        final Window window = mInCallActivity.getWindow();
-        if (enable) {
-            window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-        } else {
-            window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-        }
-    }
-
     /**
      * Returns the space available beside the call card.
      *
@@ -2028,6 +2052,10 @@
         return mAnswerPresenter;
     }
 
+    ExternalCallNotifier getExternalCallNotifier() {
+        return mExternalCallNotifier;
+    }
+
     /**
      * Private constructor. Must use getInstance() to get this singleton.
      */
@@ -2100,6 +2128,7 @@
         public void onFullscreenModeChanged(boolean isFullscreenMode);
         public void onSecondaryCallerInfoVisibilityChanged(boolean isVisible, int height);
         public void updatePrimaryCallState();
+        public void onIncomingVideoAvailabilityChanged(boolean isAvailable);
     }
 
     public interface InCallUiListener {
diff --git a/InCallUI/src/com/android/incallui/InCallServiceImpl.java b/InCallUI/src/com/android/incallui/InCallServiceImpl.java
index 5ca721b..8f011e3 100644
--- a/InCallUI/src/com/android/incallui/InCallServiceImpl.java
+++ b/InCallUI/src/com/android/incallui/InCallServiceImpl.java
@@ -32,7 +32,7 @@
  */
 public class InCallServiceImpl extends InCallService {
 
-    static int sPhoneCount = 0;
+    static int sPhoneCount = TelephonyManager.getDefault().getPhoneCount();
 
     @Override
     public void onCallAudioStateChanged(CallAudioState audioState) {
@@ -63,13 +63,14 @@
     @Override
     public IBinder onBind(Intent intent) {
         final Context context = getApplicationContext();
-        sPhoneCount = QtiCallUtils.getPhoneCount(context);
         final ContactInfoCache contactInfoCache = ContactInfoCache.getInstance(context);
         InCallPresenter.getInstance().setUp(
                 getApplicationContext(),
                 CallList.getInstance(),
+                new ExternalCallList(),
                 AudioModeProvider.getInstance(),
                 new StatusBarNotifier(context, contactInfoCache),
+                new ExternalCallNotifier(context, contactInfoCache),
                 contactInfoCache,
                 new ProximitySensor(
                         context,
diff --git a/InCallUI/src/com/android/incallui/NotificationBroadcastReceiver.java b/InCallUI/src/com/android/incallui/NotificationBroadcastReceiver.java
index ef28e5e..94a852b 100644
--- a/InCallUI/src/com/android/incallui/NotificationBroadcastReceiver.java
+++ b/InCallUI/src/com/android/incallui/NotificationBroadcastReceiver.java
@@ -47,6 +47,10 @@
             "com.android.incallui.ACTION_DECLINE_VIDEO_UPGRADE_REQUEST";
     public static final String ADD_CALL_MODE_KEY = "add_call_mode";
     public static final String ADD_PARTICIPANT_KEY = "add_participant";
+    public static final String ACTION_PULL_EXTERNAL_CALL =
+            "com.android.incallui.ACTION_PULL_EXTERNAL_CALL";
+    public static final String EXTRA_NOTIFICATION_ID =
+            "com.android.incallui.extra.EXTRA_NOTIFICATION_ID";
 
     @Override
     public void onReceive(Context context, Intent intent) {
@@ -67,6 +71,10 @@
             InCallPresenter.getInstance().acceptUpgradeRequest(context);
         } else if (action.equals(ACTION_DECLINE_VIDEO_UPGRADE_REQUEST)) {
             InCallPresenter.getInstance().declineUpgradeRequest(context);
+        } else if (action.equals(ACTION_PULL_EXTERNAL_CALL)) {
+            int notificationId = intent.getIntExtra(EXTRA_NOTIFICATION_ID, -1);
+            InCallPresenter.getInstance().getExternalCallNotifier()
+                    .pullExternalCall(notificationId);
         }
     }
 
diff --git a/InCallUI/src/com/android/incallui/ProximitySensor.java b/InCallUI/src/com/android/incallui/ProximitySensor.java
index 3c9fd93..fbd24e5 100644
--- a/InCallUI/src/com/android/incallui/ProximitySensor.java
+++ b/InCallUI/src/com/android/incallui/ProximitySensor.java
@@ -25,6 +25,7 @@
 import android.os.PowerManager;
 import android.telecom.CallAudioState;
 import android.view.Display;
+import android.provider.Settings;
 
 import com.android.incallui.AudioModeProvider.AudioModeListener;
 import com.android.incallui.InCallPresenter.InCallState;
@@ -42,6 +43,7 @@
 public class ProximitySensor implements AccelerometerListener.OrientationListener,
         InCallStateListener, AudioModeListener {
     private static final String TAG = ProximitySensor.class.getSimpleName();
+    private static final String PROXIMITY_SENSOR = "proximity_sensor";
 
     private final PowerManager mPowerManager;
     private final PowerManager.WakeLock mProximityWakeLock;
@@ -52,6 +54,7 @@
     private boolean mUiShowing = false;
     private boolean mIsPhoneOffhook = false;
     private boolean mDialpadVisible;
+    private Context mContext;
 
     // True if the keyboard is currently *not* hidden
     // Gets updated whenever there is a Configuration change
@@ -59,6 +62,7 @@
 
     public ProximitySensor(Context context, AudioModeProvider audioModeProvider,
             AccelerometerListener accelerometerListener) {
+        mContext = context;
         mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
         if (mPowerManager.isWakeLockLevelSupported(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK)) {
             mProximityWakeLock = mPowerManager.newWakeLock(
@@ -232,6 +236,8 @@
                     || CallAudioState.ROUTE_SPEAKER == audioMode
                     || CallAudioState.ROUTE_BLUETOOTH == audioMode
                     || mIsHardKeyboardOpen);
+            screenOnImmediately |= Settings.System.getInt(mContext.getContentResolver(),
+                    PROXIMITY_SENSOR, 1) == 0;
 
             // We do not keep the screen off when the user is outside in-call screen and we are
             // horizontal, but we do not force it on when we become horizontal until the
diff --git a/InCallUI/src/com/android/incallui/StatusBarNotifier.java b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
index d088594..1efa3cc 100644
--- a/InCallUI/src/com/android/incallui/StatusBarNotifier.java
+++ b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
@@ -82,8 +82,6 @@
     private static final int NOTIFICATION_IN_CALL = 1;
     // Notification for incoming calls. This is interruptive and will show up as a HUN.
     private static final int NOTIFICATION_INCOMING_CALL = 2;
-    //If voice privacy is on this property will be added to the call associated with the connection.
-    private static final int CAPABILITY_VOICE_PRIVACY = 0x01000000;
 
     private static final long[] VIBRATE_PATTERN = new long[] {0, 1000, 1000};
 
@@ -602,7 +600,7 @@
         // from the foreground call.  And if there's a ringing call,
         // display that regardless of the state of the other calls.
         int resId;
-        boolean supportsVoicePrivacy = call.can(CAPABILITY_VOICE_PRIVACY);
+        boolean supportsVoicePrivacy = call.hasProperty(Details.PROPERTY_HAS_CDMA_VOICE_PRIVACY);
         if (call.getState() == Call.State.ONHOLD) {
             if (supportsVoicePrivacy) {
                 resId = R.drawable.stat_sys_vp_phone_call_on_hold;
diff --git a/InCallUI/src/com/android/incallui/VideoCallFragment.java b/InCallUI/src/com/android/incallui/VideoCallFragment.java
index cea9c4d..3a708ab 100644
--- a/InCallUI/src/com/android/incallui/VideoCallFragment.java
+++ b/InCallUI/src/com/android/incallui/VideoCallFragment.java
@@ -16,6 +16,7 @@
 
 package com.android.incallui;
 
+import android.app.Activity;
 import android.graphics.Matrix;
 import android.graphics.Point;
 import android.graphics.SurfaceTexture;
@@ -29,6 +30,8 @@
 import android.view.ViewGroup;
 import android.view.ViewStub;
 import android.view.ViewTreeObserver;
+import android.view.Window;
+import android.view.WindowManager;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 
@@ -512,6 +515,7 @@
     public void onPause() {
         super.onPause();
         Log.d(this, "onPause:");
+        getPresenter().cancelAutoFullScreen();
     }
 
     @Override
@@ -562,6 +566,7 @@
      * Hides and shows the incoming video view and changes the outgoing video view's state based on
      * whether outgoing view is enabled or not.
      */
+    @Override
     public void showVideoViews(boolean previewPaused, boolean showIncoming) {
         inflateVideoUi(true);
 
@@ -575,12 +580,16 @@
         if (mPreviewPhoto != null) {
             mPreviewPhoto.setVisibility(!previewPaused ? View.VISIBLE : View.INVISIBLE);
         }
+
+        enableScreenTimeout(false);
     }
 
     /**
      * Hide all video views.
      */
+    @Override
     public void hideVideoUi() {
+        enableScreenTimeout(true);
         inflateVideoUi(false);
     }
 
@@ -852,7 +861,12 @@
 
             Log.d(this, "inflateVideoCallViews: sVideoSurfacesInUse=" + sVideoSurfacesInUse);
             //If peer adjusted screen size is not available, set screen size to default display size
-            Point screenSize = sDisplaySize == null ? getScreenSize() : sDisplaySize;
+            Point screenSize = getScreenSize();
+            if (sDisplaySize != null) {
+                screenSize = VideoCallPresenter.resizeForAspectRatio(screenSize,
+                        sDisplaySize.x, sDisplaySize.y);
+            }
+
             setSurfaceSizeAndTranslation(displaySurface, screenSize);
 
             if (!sVideoSurfacesInUse) {
@@ -922,4 +936,23 @@
             centerDisplayView(textureView);
         }
     }
+
+    private void enableScreenTimeout(boolean enable) {
+        Log.v(this, "enableScreenTimeout: value=" + enable);
+        final Activity activity = getActivity();
+        if (activity == null) {
+            Log.e(this, "enableScreenTimeout: Activity is null.");
+            return;
+        }
+        final Window window = activity.getWindow();
+        if (window == null) {
+            Log.e(this, "enableScreenTimeout: window is null");
+            return;
+        }
+        if (enable) {
+            window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+        } else {
+            window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+        }
+    }
 }
diff --git a/InCallUI/src/com/android/incallui/VideoCallPresenter.java b/InCallUI/src/com/android/incallui/VideoCallPresenter.java
index e08f4d5..58405a8 100644
--- a/InCallUI/src/com/android/incallui/VideoCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/VideoCallPresenter.java
@@ -86,7 +86,9 @@
     private Runnable mAutoFullscreenRunnable =  new Runnable() {
         @Override
         public void run() {
-            if (mAutoFullScreenPending && !InCallPresenter.getInstance().isDialpadVisible()) {
+            if (mAutoFullScreenPending && !InCallPresenter.getInstance().isDialpadVisible()
+                    && mIsVideoMode) {
+
                 Log.v(this, "Automatically entering fullscreen mode.");
                 InCallPresenter.getInstance().setFullScreen(true);
                 mAutoFullScreenPending = false;
@@ -309,6 +311,8 @@
             return;
         }
 
+        cancelAutoFullScreen();
+
         InCallPresenter.getInstance().removeListener(this);
         InCallPresenter.getInstance().removeDetailsListener(this);
         InCallPresenter.getInstance().removeIncomingCallListener(this);
@@ -322,6 +326,7 @@
             CallList.getInstance().removeCallUpdateListener(mPrimaryCall.getId(), this);
         }
         mPictureModeHelper.tearDown(this);
+        cancelAutoFullScreen();
     }
 
     /**
@@ -563,6 +568,11 @@
         getUi().adjustPreviewLocation(isVisible /* shiftUp */, height);
     }
 
+    @Override
+    public void onIncomingVideoAvailabilityChanged(boolean isAvailable) {
+        //NO OP
+    }
+
     private void checkForVideoStateChange(Call call) {
         boolean isVideoCall = VideoUtils.isVideoCall(call);
         boolean hasVideoStateChanged = mCurrentVideoState != call.getVideoState();
@@ -585,7 +595,7 @@
         updateCameraSelection(call);
 
         if (isVideoCall) {
-            enterVideoMode(call);
+            adjustVideoMode(call);
         } else if (isVideoMode()) {
             exitVideoMode();
         }
@@ -647,7 +657,7 @@
 
             checkForOrientationAllowedChange(newPrimaryCall);
             updateCameraSelection(newPrimaryCall);
-            enterVideoMode(newPrimaryCall);
+            adjustVideoMode(newPrimaryCall);
         }
         checkForOrientationAllowedChange(newPrimaryCall);
     }
@@ -728,7 +738,7 @@
      * Handles a change to the video call. Sets the surfaces on the previous call to null and sets
      * the surfaces on the new video call accordingly.
      *
-     * @param videoCall The new video call.
+     * @param call The new video call.
      */
     private void changeVideoCall(Call call) {
         final VideoCall videoCall = call.getTelecomCall().getVideoCall();
@@ -749,7 +759,7 @@
         }
 
         if (VideoUtils.isVideoCall(call) && hasChanged) {
-            enterVideoMode(call);
+            adjustVideoMode(call);
         }
     }
 
@@ -763,14 +773,16 @@
     }
 
     /**
-     * Enters video mode by showing the video surfaces and making other adjustments (eg. audio).
+     * Adjusts the current video mode by setting up the preview and display surfaces as necessary.
+     * Expected to be called whenever the video state associated with a call changes (e.g. a user
+     * turns their camera on or off) to ensure the correct surfaces are shown/hidden.
      * TODO(vt): Need to adjust size and orientation of preview surface here.
      */
-    private void enterVideoMode(Call call) {
+    private void adjustVideoMode(Call call) {
         VideoCall videoCall = call.getVideoCall();
         int newVideoState = call.getVideoState();
 
-        Log.d(this, "enterVideoMode videoCall= " + videoCall + " videoState: " + newVideoState);
+        Log.d(this, "adjustVideoMode videoCall= " + videoCall + " videoState: " + newVideoState);
         VideoCallUi ui = getUi();
         if (ui == null) {
             Log.e(this, "Error VideoCallUi is null so returning");
@@ -795,11 +807,15 @@
             videoCall.setDeviceOrientation(mDeviceOrientation);
             enableCamera(videoCall, isCameraRequired(newVideoState));
         }
+        int previousVideoState = mCurrentVideoState;
         mCurrentVideoState = newVideoState;
-
         mIsVideoMode = true;
 
-        maybeAutoEnterFullscreen(call);
+        // adjustVideoMode may be called if we are already in a 1-way video state.  In this case
+        // we do not want to trigger auto-fullscreen mode.
+        if (!VideoUtils.isVideoCall(previousVideoState) && VideoUtils.isVideoCall(newVideoState)) {
+            maybeAutoEnterFullscreen(call);
+        }
     }
 
     private void enableCamera(VideoCall videoCall, boolean isCameraRequired) {
@@ -884,9 +900,6 @@
         } else {
             ui.hideVideoUi();
         }
-
-        InCallPresenter.getInstance().enableScreenTimeout(
-                VideoProfile.isAudioOnly(videoState));
     }
 
     /**
@@ -1096,6 +1109,8 @@
                     event == Connection.VideoProvider.SESSION_EVENT_RX_RESUME;
                 showVideoUi(mCurrentVideoState, mCurrentCallState, isConfCall());
                 sb.append(mIsIncomingVideoAvailable ? "rx_resume" : "rx_pause");
+                InCallPresenter.getInstance().
+                        notifyIncomingVideoAvailabilityChanged(mIsIncomingVideoAvailable);
                 break;
             case Connection.VideoProvider.SESSION_EVENT_CAMERA_FAILURE:
                 sb.append("camera_failure");
@@ -1222,6 +1237,12 @@
         Point size = ui.getScreenSize();
         Log.v(this, "setDisplayVideoSize: windowmgr width=" + size.x
                 + " windowmgr height=" + size.y);
+        size = resizeForAspectRatio(size, width, height);
+        ui.setDisplayVideoSize(size.x, size.y);
+    }
+
+    public static Point resizeForAspectRatio(Point inSize, int width, int height) {
+        Point size = new Point(inSize);
         if (size.y * width > size.x * height) {
             // current display height is too much. Correct it
             size.y = (int) (size.x * height / width);
@@ -1229,7 +1250,7 @@
             // current display width is too much. Correct it
             size.x = (int) (size.y * width / height);
         }
-        ui.setDisplayVideoSize(size.x, size.y);
+        return size;
     }
 
     /**
@@ -1254,6 +1275,8 @@
      * 2. Call is not active
      * 3. Call is not video call
      * 4. Already in fullscreen mode
+     * 5. The current video state is not bi-directional (if the remote party stops transmitting,
+     *    the user's contact photo would dominate in fullscreen mode).
      *
      * @param call The current call.
      */
@@ -1265,7 +1288,8 @@
         if (call == null || (
                 call != null && (call.getState() != Call.State.ACTIVE ||
                         !VideoUtils.isVideoCall(call)) ||
-                        InCallPresenter.getInstance().isFullscreen())) {
+                        InCallPresenter.getInstance().isFullscreen()) ||
+                        !VideoUtils.isBidirectionalVideoCall(call)) {
             // Ensure any previously scheduled attempt to enter fullscreen is cancelled.
             cancelAutoFullScreen();
             return;
@@ -1290,6 +1314,9 @@
         }
         Log.v(this, "cancelAutoFullScreen : cancelling pending");
         mAutoFullScreenPending = false;
+        if (mHandler != null) {
+            mHandler.removeCallbacks(mAutoFullscreenRunnable);
+        }
     }
 
     private static boolean isAudioRouteEnabled(int audioRoute, int audioRouteMask) {
diff --git a/InCallUI/src/com/android/incallui/VideoUtils.java b/InCallUI/src/com/android/incallui/VideoUtils.java
index 8641d60..a2eb8bc 100644
--- a/InCallUI/src/com/android/incallui/VideoUtils.java
+++ b/InCallUI/src/com/android/incallui/VideoUtils.java
@@ -45,6 +45,14 @@
         return VideoProfile.isBidirectional(call.getVideoState());
     }
 
+    public static boolean isTransmissionEnabled(Call call) {
+        if (!CompatUtils.isVideoCompatible()) {
+            return false;
+        }
+
+        return VideoProfile.isTransmissionEnabled(call.getVideoState());
+    }
+
     public static boolean isIncomingVideoCall(Call call) {
         if (!VideoUtils.isVideoCall(call)) {
             return false;
diff --git a/InCallUI/tests/src/com/android/incallui/ExternalCallListTest.java b/InCallUI/tests/src/com/android/incallui/ExternalCallListTest.java
new file mode 100644
index 0000000..070bdf5
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/ExternalCallListTest.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.net.Uri;
+import android.os.Bundle;
+import android.telecom.*;
+import android.telecom.Call;
+import android.test.AndroidTestCase;
+
+import java.lang.reflect.Constructor;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+public class ExternalCallListTest extends AndroidTestCase {
+
+    private static class Listener implements ExternalCallList.ExternalCallListener {
+        private CountDownLatch mCallAddedLatch = new CountDownLatch(1);
+        private CountDownLatch mCallRemovedLatch = new CountDownLatch(1);
+        private CountDownLatch mCallUpdatedLatch = new CountDownLatch(1);
+
+        @Override
+        public void onExternalCallAdded(Call call) {
+            mCallAddedLatch.countDown();
+        }
+
+        @Override
+        public void onExternalCallRemoved(Call call) {
+            mCallRemovedLatch.countDown();
+        }
+
+        @Override
+        public void onExternalCallUpdated(Call call) {
+            mCallUpdatedLatch.countDown();
+        }
+
+        public boolean awaitCallAdded() {
+            try {
+                return mCallAddedLatch.await(WAIT_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
+            } catch (InterruptedException e) {
+                return false;
+            }
+        }
+
+        public boolean awaitCallRemoved() {
+            try {
+                return mCallRemovedLatch.await(WAIT_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
+            } catch (InterruptedException e) {
+                return false;
+            }
+        }
+
+        public boolean awaitCallUpdated() {
+            try {
+                return mCallUpdatedLatch.await(WAIT_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
+            } catch (InterruptedException e) {
+                return false;
+            }
+        }
+    }
+
+    private static final int WAIT_TIMEOUT_MILLIS = 5000;
+
+    private ExternalCallList mExternalCallList = new ExternalCallList();
+    private Listener mExternalCallListener = new Listener();
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        mExternalCallList.addExternalCallListener(mExternalCallListener);
+    }
+
+    public void testAddCallSuccess() {
+        TestTelecomCall call = getTestCall(Call.Details.PROPERTY_IS_EXTERNAL_CALL);
+        mExternalCallList.onCallAdded(call.getCall());
+        assertTrue(mExternalCallListener.awaitCallAdded());
+    }
+
+    public void testAddCallFail() {
+        TestTelecomCall call = getTestCall(0 /* no properties */);
+        try {
+            mExternalCallList.onCallAdded(call.getCall());
+            fail();
+        } catch (IllegalArgumentException e) {
+        }
+    }
+
+    public void testUpdateCall() {
+        TestTelecomCall call = getTestCall(Call.Details.PROPERTY_IS_EXTERNAL_CALL);
+        mExternalCallList.onCallAdded(call.getCall());
+        assertTrue(mExternalCallListener.awaitCallAdded());
+
+        call.forceDetailsUpdate();
+        assertTrue(mExternalCallListener.awaitCallUpdated());
+    }
+
+    public void testRemoveCall() {
+        TestTelecomCall call = getTestCall(Call.Details.PROPERTY_IS_EXTERNAL_CALL);
+        mExternalCallList.onCallAdded(call.getCall());
+        assertTrue(mExternalCallListener.awaitCallAdded());
+
+        mExternalCallList.onCallRemoved(call.getCall());
+        assertTrue(mExternalCallListener.awaitCallRemoved());
+    }
+
+    private TestTelecomCall getTestCall(int properties) {
+        TestTelecomCall testCall = TestTelecomCall.createInstance(
+                "1",
+                Uri.parse("tel:650-555-1212"), /* handle */
+                TelecomManager.PRESENTATION_ALLOWED, /* handlePresentation */
+                "Joe", /* callerDisplayName */
+                TelecomManager.PRESENTATION_ALLOWED, /* callerDisplayNamePresentation */
+                new PhoneAccountHandle(new ComponentName("test", "class"),
+                        "handle"), /* accountHandle */
+                Call.Details.CAPABILITY_CAN_PULL_CALL, /* capabilities */
+                properties, /* properties */
+                null, /* disconnectCause */
+                0, /* connectTimeMillis */
+                null, /* GatewayInfo */
+                VideoProfile.STATE_AUDIO_ONLY, /* videoState */
+                null, /* statusHints */
+                null, /* extras */
+                null /* intentExtras */);
+        return testCall;
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/ExternalCallNotifierTest.java b/InCallUI/tests/src/com/android/incallui/ExternalCallNotifierTest.java
new file mode 100644
index 0000000..e57efef
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/ExternalCallNotifierTest.java
@@ -0,0 +1,212 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyBoolean;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.timeout;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import com.android.contacts.common.preference.ContactsPreferences;
+
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.res.Resources;
+import android.net.Uri;
+import android.telecom.*;
+import android.telecom.Call;
+import android.telephony.TelephonyManager;
+import android.test.AndroidTestCase;
+import android.test.mock.MockContext;
+
+/**
+ * Unit tests for {@link ExternalCallNotifier}.
+ */
+public class ExternalCallNotifierTest extends AndroidTestCase {
+    private static final int TIMEOUT_MILLIS = 5000;
+    private static final String NAME_PRIMARY = "Full Name";
+    private static final String NAME_ALTERNATIVE = "Name, Full";
+    private static final String LOCATION = "US";
+    private static final String NUMBER = "6505551212";
+
+    @Mock private ContactsPreferences mContactsPreferences;
+    @Mock private NotificationManager mNotificationManager;
+    @Mock private MockContext mMockContext;
+    @Mock private Resources mResources;
+    @Mock private StatusBarNotifier mStatusBarNotifier;
+    @Mock private ContactInfoCache mContactInfoCache;
+    @Mock private TelecomManager mTelecomManager;
+    @Mock private TelephonyManager mTelephonyManager;
+    @Mock private ProximitySensor mProximitySensor;
+    @Mock private CallList mCallList;
+    private InCallPresenter mInCallPresenter;
+    private ExternalCallNotifier mExternalCallNotifier;
+    private ContactInfoCache.ContactCacheEntry mContactInfo;
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        MockitoAnnotations.initMocks(this);
+
+        when(mContactsPreferences.getDisplayOrder())
+                .thenReturn(ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+
+        // Setup the mock context to return mocks for some of the needed services; the notification
+        // service is especially important as we want to be able to intercept calls into it and
+        // validate the notifcations.
+        when(mMockContext.getSystemService(eq(Context.NOTIFICATION_SERVICE)))
+                .thenReturn(mNotificationManager);
+        when(mMockContext.getSystemService(eq(Context.TELECOM_SERVICE)))
+                .thenReturn(mTelecomManager);
+        when(mMockContext.getSystemService(eq(Context.TELEPHONY_SERVICE)))
+                .thenReturn(mTelephonyManager);
+
+        // These aspects of the context are used by the notification builder to build the actual
+        // notification; we will rely on the actual implementations of these.
+        when(mMockContext.getPackageManager()).thenReturn(mContext.getPackageManager());
+        when(mMockContext.getResources()).thenReturn(mContext.getResources());
+        when(mMockContext.getApplicationInfo()).thenReturn(mContext.getApplicationInfo());
+        when(mMockContext.getContentResolver()).thenReturn(mContext.getContentResolver());
+        when(mMockContext.getPackageName()).thenReturn(mContext.getPackageName());
+
+        ContactsPreferencesFactory.setTestInstance(null);
+        mExternalCallNotifier = new ExternalCallNotifier(mMockContext, mContactInfoCache);
+
+        // We don't directly use the InCallPresenter in the test, or even in ExternalCallNotifier
+        // itself.  However, ExternalCallNotifier needs to make instances of
+        // com.android.incallui.Call for the purpose of performing contact cache lookups.  The
+        // Call class depends on the static InCallPresenter for a number of things, so we need to
+        // set it up here to prevent crashes.
+        mInCallPresenter = InCallPresenter.getInstance();
+        mInCallPresenter.setUp(mMockContext, mCallList, new ExternalCallList(),
+                null, mStatusBarNotifier, mExternalCallNotifier, mContactInfoCache,
+                mProximitySensor);
+
+        // Unlocked all contact info is available
+        mContactInfo = new ContactInfoCache.ContactCacheEntry();
+        mContactInfo.namePrimary = NAME_PRIMARY;
+        mContactInfo.nameAlternative = NAME_ALTERNATIVE;
+        mContactInfo.location = LOCATION;
+        mContactInfo.number = NUMBER;
+
+        // Given the mock ContactInfoCache cache, we need to mock out what happens when the
+        // ExternalCallNotifier calls into the contact info cache to do a lookup.  We will always
+        // return mock info stored in mContactInfo.
+        doAnswer(new Answer() {
+            @Override
+            public Object answer(InvocationOnMock invocation) throws Throwable {
+                Object[] args = invocation.getArguments();
+                com.android.incallui.Call call = (com.android.incallui.Call) args[0];
+                ContactInfoCache.ContactInfoCacheCallback callback
+                        = (ContactInfoCache.ContactInfoCacheCallback) args[2];
+                callback.onContactInfoComplete(call.getId(), mContactInfo);
+                return null;
+            }
+        }).when(mContactInfoCache).findInfo(any(com.android.incallui.Call.class), anyBoolean(),
+                any(ContactInfoCache.ContactInfoCacheCallback.class));
+    }
+
+    @Override
+    public void tearDown() throws Exception {
+        super.tearDown();
+        ContactsPreferencesFactory.setTestInstance(null);
+        mInCallPresenter.tearDown();
+    }
+
+    public void testPostNonPullable() {
+        TestTelecomCall call = getTestCall(false);
+        mExternalCallNotifier.onExternalCallAdded(call.getCall());
+        Notification notification = verifyNotificationPosted();
+        assertNull(notification.actions);
+    }
+
+    public void testPostPullable() {
+        TestTelecomCall call = getTestCall(true);
+        mExternalCallNotifier.onExternalCallAdded(call.getCall());
+        Notification notification = verifyNotificationPosted();
+        assertEquals(1, notification.actions.length);
+    }
+
+    public void testNotificationDismissed() {
+        TestTelecomCall call = getTestCall(false);
+        mExternalCallNotifier.onExternalCallAdded(call.getCall());
+        verifyNotificationPosted();
+
+        mExternalCallNotifier.onExternalCallRemoved(call.getCall());
+        verify(mNotificationManager, timeout(TIMEOUT_MILLIS)).cancel(eq("EXTERNAL_CALL"), eq(0));
+    }
+
+    public void testNotificationUpdated() {
+        TestTelecomCall call = getTestCall(false);
+        mExternalCallNotifier.onExternalCallAdded(call.getCall());
+        verifyNotificationPosted();
+
+        call.setCapabilities(android.telecom.Call.Details.CAPABILITY_CAN_PULL_CALL);
+        mExternalCallNotifier.onExternalCallUpdated(call.getCall());
+
+        ArgumentCaptor<Notification> notificationCaptor =
+                ArgumentCaptor.forClass(Notification.class);
+        verify(mNotificationManager, timeout(TIMEOUT_MILLIS).times(2))
+                .notify(eq("EXTERNAL_CALL"), eq(0), notificationCaptor.capture());
+        Notification notification1 = notificationCaptor.getAllValues().get(0);
+        assertNull(notification1.actions);
+        Notification notification2 = notificationCaptor.getAllValues().get(1);
+        assertEquals(1, notification2.actions.length);
+    }
+
+    private Notification verifyNotificationPosted() {
+        ArgumentCaptor<Notification> notificationCaptor =
+                ArgumentCaptor.forClass(Notification.class);
+        verify(mNotificationManager, timeout(TIMEOUT_MILLIS))
+                .notify(eq("EXTERNAL_CALL"), eq(0), notificationCaptor.capture());
+        return notificationCaptor.getValue();
+    }
+
+    private TestTelecomCall getTestCall(boolean canPull) {
+        TestTelecomCall testCall = TestTelecomCall.createInstance(
+                "1",
+                Uri.parse("tel:650-555-1212"), /* handle */
+                TelecomManager.PRESENTATION_ALLOWED, /* handlePresentation */
+                "Joe", /* callerDisplayName */
+                TelecomManager.PRESENTATION_ALLOWED, /* callerDisplayNamePresentation */
+                new PhoneAccountHandle(new ComponentName("test", "class"),
+                        "handle"), /* accountHandle */
+                canPull ? android.telecom.Call.Details.CAPABILITY_CAN_PULL_CALL : 0, /* capabilities */
+                Call.Details.PROPERTY_IS_EXTERNAL_CALL, /* properties */
+                null, /* disconnectCause */
+                0, /* connectTimeMillis */
+                null, /* GatewayInfo */
+                VideoProfile.STATE_AUDIO_ONLY, /* videoState */
+                null, /* statusHints */
+                null, /* extras */
+                null /* intentExtras */);
+        return testCall;
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/InCallPresenterTest.java b/InCallUI/tests/src/com/android/incallui/InCallPresenterTest.java
index ed8d622..f0f08ab 100644
--- a/InCallUI/tests/src/com/android/incallui/InCallPresenterTest.java
+++ b/InCallUI/tests/src/com/android/incallui/InCallPresenterTest.java
@@ -39,6 +39,7 @@
     @Mock private InCallActivity mInCallActivity;
     @Mock private AudioModeProvider mAudioModeProvider;
     @Mock private StatusBarNotifier mStatusBarNotifier;
+    @Mock private ExternalCallNotifier mExternalCallNotifier;
     @Mock private ContactInfoCache mContactInfoCache;
     @Mock private ProximitySensor mProximitySensor;
 
@@ -57,8 +58,9 @@
         when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
 
         mInCallPresenter = InCallPresenter.getInstance();
-        mInCallPresenter.setUp(mContext, mCallList.getCallList(), mAudioModeProvider,
-                mStatusBarNotifier, mContactInfoCache, mProximitySensor);
+        mInCallPresenter.setUp(mContext, mCallList.getCallList(), new ExternalCallList(),
+                mAudioModeProvider, mStatusBarNotifier, mExternalCallNotifier, mContactInfoCache,
+                mProximitySensor);
     }
 
     @Override
diff --git a/InCallUI/tests/src/com/android/incallui/TestTelecomCall.java b/InCallUI/tests/src/com/android/incallui/TestTelecomCall.java
new file mode 100644
index 0000000..48ac6e1
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/TestTelecomCall.java
@@ -0,0 +1,161 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import com.google.common.base.Preconditions;
+
+import android.content.Context;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.telecom.DisconnectCause;
+import android.telecom.GatewayInfo;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.StatusHints;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+/**
+ * Wrapper class which uses reflection to create instances of {@link android.telecom.Call} for use
+ * with unit testing.  Since {@link android.telecom.Call} is final, it cannot be mocked using
+ * mockito, and since all setter methods are hidden, it is necessary to use reflection.  In the
+ * future, it would be desirable to replace this if a different mocking solution is used.
+ */
+public class TestTelecomCall {
+
+    private android.telecom.Call mCall;
+
+    public static @Nullable TestTelecomCall createInstance(String callId,
+            Uri handle,
+            int handlePresentation,
+            String callerDisplayName,
+            int callerDisplayNamePresentation,
+            PhoneAccountHandle accountHandle,
+            int capabilities,
+            int properties,
+            DisconnectCause disconnectCause,
+            long connectTimeMillis,
+            GatewayInfo gatewayInfo,
+            int videoState,
+            StatusHints statusHints,
+            Bundle extras,
+            Bundle intentExtras) {
+
+        try {
+            // Phone and InCall adapter are @hide, so we cannot refer to them directly.
+            Class<?> phoneClass = Class.forName("android.telecom.Phone");
+            Class<?> incallAdapterClass = Class.forName("android.telecom.InCallAdapter");
+            Class<?> callClass = android.telecom.Call.class;
+            Constructor<?> cons = callClass
+                    .getDeclaredConstructor(phoneClass, String.class, incallAdapterClass);
+            cons.setAccessible(true);
+
+            android.telecom.Call call = (android.telecom.Call) cons.newInstance(null, callId, null);
+
+            // Create an instance of the call details.
+            Class<?> callDetailsClass = android.telecom.Call.Details.class;
+            Constructor<?> detailsCons = callDetailsClass.getDeclaredConstructor(
+                    String.class, /* telecomCallId */
+                    Uri.class, /* handle */
+                    int.class, /* handlePresentation */
+                    String.class, /* callerDisplayName */
+                    int.class, /* callerDisplayNamePresentation */
+                    PhoneAccountHandle.class, /* accountHandle */
+                    int.class, /* capabilities */
+                    int.class, /* properties */
+                    DisconnectCause.class, /* disconnectCause */
+                    long.class, /* connectTimeMillis */
+                    GatewayInfo.class, /* gatewayInfo */
+                    int.class, /* videoState */
+                    StatusHints.class, /* statusHints */
+                    Bundle.class, /* extras */
+                    Bundle.class /* intentExtras */);
+            detailsCons.setAccessible(true);
+
+            android.telecom.Call.Details details = (android.telecom.Call.Details)
+                    detailsCons.newInstance(callId, handle, handlePresentation, callerDisplayName,
+                            callerDisplayNamePresentation, accountHandle, capabilities, properties,
+                            disconnectCause, connectTimeMillis, gatewayInfo, videoState,
+                            statusHints,
+                            extras, intentExtras);
+
+            // Finally, set this as the details of the call.
+            Field detailsField = call.getClass().getDeclaredField("mDetails");
+            detailsField.setAccessible(true);
+            detailsField.set(call, details);
+
+            return new TestTelecomCall(call);
+        } catch (NoSuchMethodException nsm) {
+            return null;
+        } catch (ClassNotFoundException cnf) {
+            return null;
+        } catch (IllegalAccessException e) {
+            return null;
+        } catch (InstantiationException e) {
+            return null;
+        } catch (InvocationTargetException e) {
+            return null;
+        } catch (NoSuchFieldException e) {
+            return null;
+        }
+    }
+
+    private TestTelecomCall(android.telecom.Call call) {
+        mCall = call;
+    }
+
+    public android.telecom.Call getCall() {
+        return mCall;
+    }
+
+    public void forceDetailsUpdate() {
+        Preconditions.checkNotNull(mCall);
+
+        try {
+            Method method = mCall.getClass().getDeclaredMethod("fireDetailsChanged",
+                    android.telecom.Call.Details.class);
+            method.setAccessible(true);
+            method.invoke(mCall, mCall.getDetails());
+        } catch (NoSuchMethodException e) {
+            Log.e(this, "forceDetailsUpdate", e);
+        } catch (InvocationTargetException e) {
+            Log.e(this, "forceDetailsUpdate", e);
+        } catch (IllegalAccessException e) {
+            Log.e(this, "forceDetailsUpdate", e);
+        }
+    }
+
+    public void setCapabilities(int capabilities) {
+        Preconditions.checkNotNull(mCall);
+        try {
+            Field field = mCall.getDetails().getClass().getDeclaredField("mCallCapabilities");
+            field.setAccessible(true);
+            field.set(mCall.getDetails(), capabilities);
+        } catch (IllegalAccessException e) {
+            Log.e(this, "setProperties", e);
+        } catch (NoSuchFieldException e) {
+            Log.e(this, "setProperties", e);
+        }
+    }
+
+    public void setCall(android.telecom.Call call) {
+        mCall = call;
+    }
+}
diff --git a/res/layout/call_log_activity.xml b/res/layout/call_log_activity.xml
index 0109df7..aa1a6f4 100644
--- a/res/layout/call_log_activity.xml
+++ b/res/layout/call_log_activity.xml
@@ -33,4 +33,8 @@
         android:layout_width="match_parent"
         android:layout_height="0dp"
         android:layout_weight="1" />
+    <RelativeLayout
+        android:id="@+id/floating_action_button_container"
+        android:layout_width="0dp"
+        android:layout_height="0dp" />
 </LinearLayout>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index 96209eb..35071c3 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -126,7 +126,7 @@
     <string name="menu_callNumber" msgid="997146291983360266">"Զանգել <xliff:g id="NUMBER">%s</xliff:g>-ին"</string>
     <string name="unknown" msgid="740067747858270469">"Անհայտ"</string>
     <string name="voicemail" msgid="3851469869202611441">"Ձայնային փոստ"</string>
-    <string name="private_num" msgid="6374339738119166953">"Անձնական համարը"</string>
+    <string name="private_num" msgid="6374339738119166953">"Փակ համար"</string>
     <string name="payphone" msgid="7726415831153618726">"Հանրային հեռախոս"</string>
     <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> վրկ"</string>
     <string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> րոպե <xliff:g id="SECONDS">%s</xliff:g> վայրկյան"</string>
@@ -147,10 +147,10 @@
     <string name="voice_search_not_available" msgid="2977719040254285301">"Ձայնային որոնումը հասանելի չէ"</string>
     <string name="call_not_available" msgid="8941576511946492225">"Հնարավոր չէ զանգահարել, քանի որ Հեռախոս հավելվածն անջատված է:"</string>
     <string name="activity_not_available" msgid="2287665636817987623">"Սարքի վրա համապատասխան հավելված չկա"</string>
-    <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Որոնել կոնտակտներ"</string>
+    <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Կոնտակտների որոնում"</string>
     <string name="block_number_search_hint" msgid="5409571607043872758">"Ավելացրեք համար/որոնեք կոնտակտներ"</string>
-    <string name="call_log_all_empty" msgid="8357417710416340920">"Ձեր զանգերի պատմությունը դատարկ է"</string>
-    <string name="call_log_all_empty_action" msgid="9093210119068366147">"Զանգահարել"</string>
+    <string name="call_log_all_empty" msgid="8357417710416340920">"Զանգերի մատյանը դատարկ է"</string>
+    <string name="call_log_all_empty_action" msgid="9093210119068366147">"Զանգել"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"Բաց թողած զանգեր չունեք:"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Ձայնային փոստի մուտքի արկղը դատարկ է:"</string>
     <string name="voicemail_archive_empty" msgid="1087408796679056787">"Ձեր ձայնային փոստի արխիվը դատարկ է:"</string>
@@ -184,7 +184,7 @@
     <string name="search_shortcut_block_number" msgid="4787156645163436072">"Արգելափակել համարը"</string>
     <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> նոր բաց թողնված զանգ"</string>
     <string name="speed_dial_empty" msgid="8838921693673366129">"Արագ համարահավաքման ցանկը դատարկ է"</string>
-    <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Ավելացնել ընտրանում"</string>
+    <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Ավելացնել կոնտակտ"</string>
     <string name="all_contacts_empty" msgid="471370638298229686">"Դեռ կոնտակտներ չունեք"</string>
     <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Ավելացնել կոնտակտ"</string>
     <string name="contact_tooltip" msgid="2019777545923635266">"Բոլոր համարները տեսնելու համար հպեք պատկերին: Վերադասավորելու համար հպեք և պահեք:"</string>
@@ -258,7 +258,7 @@
     <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> համարը սխալ է:"</string>
     <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> համարն արդեն արգելափակված է:"</string>
     <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Զանգերի արգելափակումն անջատվել է 48 ժամով"</string>
-    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Անջատվել է, քանի որ կատարվել է արտակարգ իրավիճակների զանգ:"</string>
+    <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Անջատվել է, քանի որ շտապ կանչ է կատարվել։"</string>
     <string name="phone_account_settings_label" msgid="5864322009841175294">"Հաշիվներ զանգերի համար"</string>
     <string name="permission_single_turn_on" msgid="1543391076065465464">"Միացնել"</string>
     <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Թույլտվությունների սահմանում"</string>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 15fe532..b3eff80 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -31,7 +31,7 @@
     <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> ನಿರ್ಬಂಧ ತೆಗೆಯಲಾಗಿದೆ"</string>
     <string name="block_number_undo" msgid="591338370336724156">"ರದ್ದುಮಾಡು"</string>
     <string name="call_details_delete" msgid="1833359621896346955">"ಅಳಿಸು"</string>
-    <string name="action_edit_number_before_call" msgid="3100221149873436485">"ಕರೆ ಮಾಡುವ ಮೊದಲು ಸಂಖ್ಯೆಯನ್ನು ಸಂಪಾದಿಸಿ"</string>
+    <string name="action_edit_number_before_call" msgid="3100221149873436485">"ಕರೆ ಮಾಡುವ ಮೊದಲು ಸಂಖ್ಯೆಯನ್ನು ಎಡಿಟ್ ಮಾಡಿ"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"ಕರೆ ಇತಿಹಾಸವನ್ನು ತೆರವುಗೊಳಿಸಿ"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ಧ್ವನಿಮೇಲ್‌ ಅಳಿಸಿ"</string>
     <string name="call_log_archive_voicemail" msgid="9072936797223284265">"ಧ್ವನಿಮೇಲ್ ಆರ್ಕೈವ್ ಮಾಡಿ"</string>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index d820bf3..85f5484 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -34,12 +34,12 @@
     <string name="action_edit_number_before_call" msgid="3100221149873436485">"မခေါ်ဆိုမီ နံပါတ်ကိုတည်းဖြတ်ရန်"</string>
     <string name="call_log_delete_all" msgid="4677609108288680411">"ခေါ်ဆိုမှု မှတ်တမ်း ရှင်းရန်"</string>
     <string name="call_log_trash_voicemail" msgid="1283948488625129019">"အသံပို့စာ အားဖျက်ရန်"</string>
-    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"အသံစာကို သိုလှောင်ထားပါ"</string>
+    <string name="call_log_archive_voicemail" msgid="9072936797223284265">"အသံမေးလ်ကို မှတ်တမ်းသိမ်းပါ"</string>
     <string name="call_log_share_voicemail" msgid="7272635349055945546">"အသံမေးလ်ကို မျှဝေပါ"</string>
     <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"အသံမေးလ် ရှာတွေ့ခဲ့"</string>
     <string name="snackbar_voicemail_archived" msgid="7442340403660554373">"သိုလှောင်ထားသည့် အသံစာ"</string>
     <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ပြန်ဖျက်ရန်"</string>
-    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"သိုလှောင်ရုံသို့ သွားပါ"</string>
+    <string name="snackbar_voicemail_archived_goto" msgid="9186182602955185448">"မှတ်တမ်းသို့ သွားပါ"</string>
     <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ခေါ်ဆိုမှု မှတ်တမ်းကို ဖယ်ရှားရမလား။"</string>
     <string name="clearCallLogConfirmation" msgid="7899552396101432827">"သင့်မှတ်တမ်းထဲရှိ ခေါ်ဆိုမှုများအားလုံးကို ဖျက်ပါမည်"</string>
     <string name="clearCallLogProgress_title" msgid="3372471156216306132">"ခေါ်ဆိုမှု မှတ်တမ်းကို ရှင်းနေ…"</string>
@@ -143,20 +143,20 @@
     <string name="meid" msgid="6210568493746275750">"MEIDနံပါတ်"</string>
     <string name="simContacts_emptyLoading" msgid="6700035985448642408">"ဆင်းမ်ကဒ်မှ ဖွင့်နေပါသည်..."</string>
     <string name="simContacts_title" msgid="27341688347689769">"ဆင်းမ်ကဒ်မှ အဆက်အသွယ်များ"</string>
-    <string name="add_contact_not_available" msgid="5547311613368004859">"အဆက်အသွယ်များ app မရှိ"</string>
+    <string name="add_contact_not_available" msgid="5547311613368004859">"အဆက်အသွယ်များ အက်ပ်မရှိ"</string>
     <string name="voice_search_not_available" msgid="2977719040254285301">"အသံဖြင့် ရှာဖွေမှု မရှိ"</string>
     <string name="call_not_available" msgid="8941576511946492225">"ဖုန်း အပလီကေးရှင်းကို ပိတ်ထား၍ ဖုန်း ခေါ်ဆိုမှု မပြုလုပ်နိုင်ခဲ့ပါ။"</string>
-    <string name="activity_not_available" msgid="2287665636817987623">"ဒီကိရိယာထဲမှာ အဲဒါ့အတွက် app မရှိပါ"</string>
+    <string name="activity_not_available" msgid="2287665636817987623">"ဒီကိရိယာထဲမှာ အဲဒါ့အတွက် အက်ပ်မရှိပါ"</string>
     <string name="dialer_hint_find_contact" msgid="3574350254520035364">"အဆက်အသွယ်များရှာပါ"</string>
     <string name="block_number_search_hint" msgid="5409571607043872758">"နံပါတ်ပေါင်းထည့်ပါ သို့မဟုတ် အဆက်အသွယ်များ ရှာဖွေပါ"</string>
     <string name="call_log_all_empty" msgid="8357417710416340920">"သင့်ခေါ်ဆိုမှတ်တမ်းတွင် ဘာမှမရှိပါ"</string>
     <string name="call_log_all_empty_action" msgid="9093210119068366147">"ဖုန်းခေါ်ရန်"</string>
     <string name="call_log_missed_empty" msgid="3927274175205520135">"သင့်တွင် လွတ်သွားသည့်ခေါ်ဆိုမှုများ မရှိပါ။"</string>
     <string name="call_log_voicemail_empty" msgid="8383585074222277550">"သင့်အသံမေးလ် စာတိုက်ပုံးတွင် ဘာမှမရှိပါ။"</string>
-    <string name="voicemail_archive_empty" msgid="1087408796679056787">"သင့် အသံစာတို သိုလှောင်ရုံသည် အလွတ်ဖြစ်နေသည်။"</string>
+    <string name="voicemail_archive_empty" msgid="1087408796679056787">"သင့် အသံမေးလ်မှတ်တမ်းတွင် ဘာမှမရှိပါ။"</string>
     <string name="show_favorites_only" msgid="5520072531022614595">"အနှစ်သက်ဆုံးများသာ ပြပါ"</string>
     <string name="call_log_activity_title" msgid="7949633151371183580">"ခေါ်ဆိုမှုသမိုင်း"</string>
-    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"အသံစာ သိုလှောင်ရုံ"</string>
+    <string name="voicemail_archive_activity_title" msgid="2638669189424535229">"အသံမေးလ် မှတ်တမ်း"</string>
     <string name="call_log_all_title" msgid="3566738938889333307">"အားလုံး"</string>
     <string name="call_log_missed_title" msgid="4541142293870638971">"မကိုင်မိလိုက်သော"</string>
     <string name="call_log_voicemail_title" msgid="940422274047025948">"အသံစာ"</string>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index 1de1c0d..1c137ce 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -232,7 +232,7 @@
     <string name="sounds_and_vibration_title" msgid="1692290115642160845">"ஒலிகளும் அதிர்வும்"</string>
     <string name="accessibility_settings_title" msgid="6068141142874046249">"அணுகல் தன்மை"</string>
     <string name="ringtone_title" msgid="760362035635084653">"மொபைலின் ரிங்டோன்"</string>
-    <string name="vibrate_on_ring_title" msgid="3362916460327555241">"அழைப்புகளுக்கும் அதிர்வுறு"</string>
+    <string name="vibrate_on_ring_title" msgid="3362916460327555241">"அழைப்பு வருகையில் அதிர்வுறு"</string>
     <string name="dtmf_tone_enable_title" msgid="6571449695997521615">"டயல்பேட் ஒலிகள்"</string>
     <string name="dtmf_tone_length_title" msgid="8581125689808919460">"டயல்பேட் டோன் நீளம்"</string>
   <string-array name="dtmf_tone_length_entries">
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index 0c4034c..fde6c9b 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -102,8 +102,8 @@
     <string name="callDetailTitle" msgid="5340227785196217938">"Chaqiruv tafsilotlari"</string>
     <string name="toast_call_detail_error" msgid="6947041258280380832">"Tafsilotlar mavjud emas"</string>
     <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Tovushli raqam tergich"</string>
-    <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Qo‘ng‘iroqqa qaytish"</string>
-    <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Qo‘ng‘iroq qo‘shish"</string>
+    <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Amaldagi chaqiruvga qaytish"</string>
+    <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Chaqiruv qo‘shish"</string>
     <string name="type_incoming" msgid="6502076603836088532">"Kiruvchi qo‘ng‘iroq"</string>
     <string name="type_outgoing" msgid="343108709599392641">"Chiquvchi qo‘ng‘iroq"</string>
     <string name="type_missed" msgid="2720502601640509542">"Javobsiz qo‘ng‘iroq"</string>
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java
index 94c2f00..db4abe7 100644
--- a/src/com/android/dialer/CallDetailActivity.java
+++ b/src/com/android/dialer/CallDetailActivity.java
@@ -283,10 +283,12 @@
                 if (TextUtils.isEmpty(mNumber)) {
                     return;
                 }
-                mContext.startActivity(
-                        new CallIntentBuilder(getDialableNumber())
-                                .setCallInitiationType(LogState.INITIATION_CALL_DETAILS)
-                                .build());
+                Intent dialIntent = new CallIntentBuilder(getDialableNumber())
+                        .setCallInitiationType(LogState.INITIATION_CALL_DETAILS).build();
+                if (DialerUtils.isConferenceURICallLog(mNumber, mPostDialDigits)) {
+                    dialIntent.putExtra("org.codeaurora.extra.DIAL_CONFERENCE_URI", true);
+                }
+                mContext.startActivity(dialIntent);
             }
         });
 
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 6142d52..2ae567f 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -1223,10 +1223,6 @@
         setConferenceDialButtonImage(false);
         setConferenceDialButtonVisibility(true);
         boolean mIsRecipientsShown = mDialpadFragment.isRecipientsShown();
-        if(mIsRecipientsShown) {
-            mDialpadFragment.hideAndClearDialConference();
-        }
-
         if (mIsDialpadShown || mIsRecipientsShown) {
             if (TextUtils.isEmpty(mSearchQuery) ||
                     (mSmartDialSearchFragment != null && mSmartDialSearchFragment.isVisible()
diff --git a/src/com/android/dialer/SpeedDialListActivity.java b/src/com/android/dialer/SpeedDialListActivity.java
index 2d6cef2..e979151 100644
--- a/src/com/android/dialer/SpeedDialListActivity.java
+++ b/src/com/android/dialer/SpeedDialListActivity.java
@@ -111,6 +111,11 @@
     private static final int COLUMN_NORMALIZED = 4;
     private static final int MENU_REPLACE = 1001;
     private static final int MENU_DELETE = 1002;
+    private int mItemPosition;
+    private static String SPEAD_DIAL_NUMBER = "SpeedDialNumber";
+    private static String SAVE_CLICKED_POS = "Clicked_pos";
+    private String mInputNumber;
+    private boolean mConfigChanged;
 
     private static final String PROPERTY_RADIO_ATEL_CARRIER = "persist.radio.atel.carrier";
     private static final String CARRIER_ONE_DEFAULT_MCC_MNC = "405854";
@@ -177,6 +182,29 @@
     }
 
     @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        if (mAddSpeedDialDialog == null || !mAddSpeedDialDialog.isShowing()) {
+            outState.clear();
+            return;
+        }
+        outState.putInt(SAVE_CLICKED_POS, mItemPosition);
+        outState.putString(SPEAD_DIAL_NUMBER, mEditNumber.getText().toString());
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Bundle state) {
+        super.onRestoreInstanceState(state);
+        if (state.isEmpty()) {
+            return;
+        }
+        mConfigChanged = true;
+        int number = state.getInt(SAVE_CLICKED_POS, mItemPosition);
+        mInputNumber = state.getString(SPEAD_DIAL_NUMBER, "");
+        showAddSpeedDialDialog(number);
+    }
+
+    @Override
     protected void onResume() {
         super.onResume();
 
@@ -239,6 +267,7 @@
 
     private void showAddSpeedDialDialog(final int number) {
         mPickNumber = number;
+        mItemPosition = number;
         AlertDialog.Builder builder = new AlertDialog.Builder(this);
         builder.setTitle(R.string.speed_dial_settings);
         View contentView = LayoutInflater.from(this).inflate(
@@ -257,6 +286,11 @@
         if (null != mRecords.get(number)) {
             mEditNumber.setText(SpeedDialUtils.getNumber(this, number));
         }
+        if (mConfigChanged && !mInputNumber.isEmpty()) {
+            mEditNumber.setText(mInputNumber);
+            mConfigChanged = false;
+            mInputNumber = "";
+        }
         Button cancelButton = (Button) contentView
                 .findViewById(R.id.btn_cancel);
         cancelButton.setOnClickListener(new View.OnClickListener() {
@@ -333,6 +367,7 @@
                 Toast.LENGTH_SHORT).show();
                 return;
             }
+            mItemPosition = number;
             final Record record = mRecords.get(number);
             if (record == null) {
                 showAddSpeedDialDialog(number);
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 48b4f55..6a447a6 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -60,6 +60,7 @@
 import com.android.dialer.logging.InteractionEvent;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.service.ExtendedBlockingButtonRenderer;
+import com.android.dialer.util.DialerUtils;
 import com.android.dialer.util.PhoneNumberUtil;
 import com.android.dialer.voicemail.VoicemailPlaybackPresenter;
 
@@ -182,7 +183,9 @@
                 if (viewHolder.callType == CallLog.Calls.MISSED_TYPE) {
                     CallLogAsyncTaskUtil.markCallAsRead(mContext, viewHolder.callIds);
                     if (mActivityType == ACTIVITY_TYPE_DIALTACTS) {
-                        ((DialtactsActivity) v.getContext()).updateTabUnreadCounts();
+                        if (v.getContext() instanceof DialtactsActivity) {
+                            ((DialtactsActivity) v.getContext()).updateTabUnreadCounts();
+                        }
                     }
                 }
                 expandViewHolderActions(viewHolder);
@@ -379,6 +382,13 @@
         }
     }
 
+    public void onStop () {
+        pauseCache();
+        if (mHiddenItemUri != null) {
+            CallLogAsyncTaskUtil.deleteVoicemail(mContext, mHiddenItemUri, null);
+        }
+    }
+
     @VisibleForTesting
     /* package */ void pauseCache() {
         mContactInfoCache.stop();
@@ -497,15 +507,15 @@
         }
 
         int count = getGroupSize(position);
-
         final String phoneNumber = c.getString(CallLogQuery.NUMBER);
         Pattern pattern = Pattern.compile("[,;]");
         String[] num = pattern.split(phoneNumber);
-        final String number = num.length > 0 ? num[0] : "";
         final String countryIso = c.getString(CallLogQuery.COUNTRY_ISO);
         final String postDialDigits = CompatUtils.isNCompatible()
                 && mActivityType != ACTIVITY_TYPE_ARCHIVE ?
                 c.getString(CallLogQuery.POST_DIAL_DIGITS) : "";
+        final String number = DialerUtils.isConferenceURICallLog(phoneNumber, postDialDigits) ?
+                phoneNumber : num.length > 0 ? num[0] : "";
         final String viaNumber = CompatUtils.isNCompatible()
                 && mActivityType != ACTIVITY_TYPE_ARCHIVE ?
                 c.getString(CallLogQuery.VIA_NUMBER) : "";
@@ -524,8 +534,11 @@
         ContactInfo info = ContactInfo.EMPTY;
         if (PhoneNumberUtil.canPlaceCallsTo(number, numberPresentation) && !isVoicemailNumber) {
             // Lookup contacts with this number
-            info = mContactInfoCache.getValue(number + postDialDigits,
-                    countryIso, cachedContactInfo);
+            boolean isConfCallLog = num != null && num.length > 1
+                    && DialerUtils.isConferenceURICallLog(phoneNumber, postDialDigits);
+            String queryNumber = isConfCallLog ? phoneNumber : number;
+            info = mContactInfoCache.getValue(queryNumber, postDialDigits,
+                    countryIso, cachedContactInfo, isConfCallLog);
         }
         CharSequence formattedNumber = info.formattedNumber == null
                 ? null : PhoneNumberUtilsCompat.createTtsSpannable(info.formattedNumber);
diff --git a/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java b/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java
index 34b2f0e..667d6b9 100644
--- a/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java
+++ b/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java
@@ -41,11 +41,13 @@
 import com.android.dialer.util.AsyncTaskExecutor;
 import com.android.dialer.util.AsyncTaskExecutors;
 import com.android.dialer.util.PhoneNumberUtil;
+import com.android.dialer.util.DialerUtils;
 import com.android.dialer.util.TelecomUtil;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Locale;
+import java.util.regex.Pattern;
 
 public class CallLogAsyncTaskUtil {
     private static String TAG = CallLogAsyncTaskUtil.class.getSimpleName();
@@ -208,13 +210,20 @@
                     PhoneNumberUtil.canPlaceCallsTo(number, numberPresentation) && !isVoicemail;
             ContactInfo info = ContactInfo.EMPTY;
 
+            Pattern pattern = Pattern.compile("[,;]");
+            String[] num = pattern.split(number);
+            boolean isConf = num != null && num.length > 1
+                    && DialerUtils.isConferenceURICallLog(number, postDialDigits);
+            String phoneNumber = num != null && num.length > 0 ? num[0] : "";
+            String queryNumber = isConf ? number : phoneNumber;
             if (shouldLookupNumber) {
-                ContactInfo lookupInfo = contactInfoHelper.lookupNumber(number, countryIso);
+                ContactInfo lookupInfo = contactInfoHelper.lookupNumber(queryNumber, postDialDigits,
+                        countryIso, isConf);
                 info = lookupInfo != null ? lookupInfo : ContactInfo.EMPTY;
             }
 
             PhoneCallDetails details = new PhoneCallDetails(
-                    context, number, numberPresentation, info.formattedNumber,
+                    context, queryNumber, numberPresentation, info.formattedNumber,
                     postDialDigits, isVoicemail);
 
             details.viaNumber = viaNumber;
diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java
index b44d8ca..96551a4 100644
--- a/src/com/android/dialer/calllog/CallLogFragment.java
+++ b/src/com/android/dialer/calllog/CallLogFragment.java
@@ -354,14 +354,13 @@
     @Override
     public void onPause() {
         cancelDisplayUpdate();
-        mAdapter.onPause();
         super.onPause();
     }
 
     @Override
     public void onStop() {
         updateOnTransition();
-
+        mAdapter.onStop();
         super.onStop();
     }
 
diff --git a/src/com/android/dialer/calllog/CallLogGroupBuilder.java b/src/com/android/dialer/calllog/CallLogGroupBuilder.java
index aa45029..ab9d535 100644
--- a/src/com/android/dialer/calllog/CallLogGroupBuilder.java
+++ b/src/com/android/dialer/calllog/CallLogGroupBuilder.java
@@ -27,6 +27,9 @@
 import com.android.contacts.common.util.DateUtils;
 import com.android.contacts.common.util.PhoneNumberHelper;
 import com.android.dialer.util.AppCompatConstants;
+import com.android.dialer.util.DialerUtils;
+
+import java.util.regex.Pattern;
 
 /**
  * Groups together calls in the call log.  The primary grouping attempts to group together calls
@@ -130,6 +133,8 @@
         int groupCallType = cursor.getInt(CallLogQuery.CALL_TYPE);
         String groupAccountComponentName = cursor.getString(CallLogQuery.ACCOUNT_COMPONENT_NAME);
         String groupAccountId = cursor.getString(CallLogQuery.ACCOUNT_ID);
+        boolean isGroupConfCallLog = DialerUtils.isConferenceURICallLog(groupNumber,
+                groupPostDialDigits);
         int groupSize = 1;
 
         String number;
@@ -138,6 +143,7 @@
         int callType;
         String accountComponentName;
         String accountId;
+        boolean isNumberConfCallLog = false;
 
         while (cursor.moveToNext()) {
             // Obtain the values for the current call to group.
@@ -149,8 +155,10 @@
             callType = cursor.getInt(CallLogQuery.CALL_TYPE);
             accountComponentName = cursor.getString(CallLogQuery.ACCOUNT_COMPONENT_NAME);
             accountId = cursor.getString(CallLogQuery.ACCOUNT_ID);
+            isNumberConfCallLog = DialerUtils.isConferenceURICallLog(number, numberPostDialDigits);
 
-            final boolean isSameNumber = equalNumbers(groupNumber, number);
+            final boolean isSameNumber = equalNumbers(groupNumber, isGroupConfCallLog,
+                    number, isNumberConfCallLog);
             final boolean isSamePostDialDigits = groupPostDialDigits.equals(numberPostDialDigits);
             final boolean isSameViaNumbers = groupViaNumbers.equals(numberViaNumbers);
             final boolean isSameAccount = isSameAccount(
@@ -184,6 +192,8 @@
                 groupCallType = callType;
                 groupAccountComponentName = accountComponentName;
                 groupAccountId = accountId;
+                isGroupConfCallLog = DialerUtils.isConferenceURICallLog(groupNumber,
+                        groupPostDialDigits);
             }
 
             // Save the day group associated with the current call.
@@ -224,8 +234,27 @@
 
     @VisibleForTesting
     boolean equalNumbers(String number1, String number2) {
+        return equalNumbers(number1, false, number2, false);
+    }
+
+    boolean equalNumbers(String number1, boolean isConf1, String number2, boolean isConf2) {
         if (PhoneNumberHelper.isUriNumber(number1) || PhoneNumberHelper.isUriNumber(number2)) {
             return compareSipAddresses(number1, number2);
+        } else if (isConf1 && isConf2) {
+            Pattern pattern = Pattern.compile("[,;]");
+            String[] num1 = pattern.split(number1);
+            String[] num2 = pattern.split(number2);
+            if (num1 == null || num2 == null || num1.length != num2.length) {
+                return false;
+            }
+            for (int i = 0; i < num1.length; i++) {
+                if (!PhoneNumberUtils.compare(num1[i], num2[i])) {
+                    return false;
+                }
+            }
+            return true;
+        } else if (isConf1 != isConf2) {
+            return false;
         } else {
             return PhoneNumberUtils.compare(number1, number2);
         }
diff --git a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
index 4036f10..d63531b 100644
--- a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
+++ b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
@@ -710,6 +710,9 @@
             if (intentProvider != null) {
                 final Intent intent = intentProvider.getIntent(mContext);
                 // See IntentProvider.getCallDetailIntentProvider() for why this may be null.
+                if (DialerUtils.isConferenceURICallLog(number, postDialDigits)) {
+                    intent.putExtra("org.codeaurora.extra.DIAL_CONFERENCE_URI", true);
+                }
                 if (intent != null) {
                     DialerUtils.startActivityWithErrorToast(mContext, intent);
                 }
diff --git a/src/com/android/dialer/calllog/ContactInfoHelper.java b/src/com/android/dialer/calllog/ContactInfoHelper.java
index b0ef0ab..ea39d03 100644
--- a/src/com/android/dialer/calllog/ContactInfoHelper.java
+++ b/src/com/android/dialer/calllog/ContactInfoHelper.java
@@ -43,6 +43,8 @@
 import com.android.dialer.util.TelecomUtil;
 import com.android.dialerbind.ObjectFactory;
 
+import java.util.regex.Pattern;
+
 import org.json.JSONException;
 import org.json.JSONObject;
 
@@ -76,6 +78,26 @@
      */
     @Nullable
     public ContactInfo lookupNumber(String number, String countryIso) {
+        return lookupNumber(number, null, countryIso, false);
+    }
+
+    /**
+     * Returns the contact information for the given number.
+     * <p>
+     * If the number does not match any contact, returns a contact info containing only the number
+     * and the formatted number.
+     * <p>
+     * If an error occurs during the lookup, it returns null.
+     *
+     * @param number the number to look up
+     * @param postDialString append into number if required
+     * @param countryIso the country associated with this number
+     * @param isConfUrlLog whether call log is for Conference URL call
+     */
+    @Nullable
+    public ContactInfo lookupNumber(String number, String postDialString, String countryIso,
+            boolean isConfUrlCallLog) {
+
         if (TextUtils.isEmpty(number)) {
             return null;
         }
@@ -89,12 +111,14 @@
                 // If lookup failed, check if the "username" of the SIP address is a phone number.
                 String username = PhoneNumberHelper.getUsernameFromUriNumber(number);
                 if (PhoneNumberUtils.isGlobalPhoneNumber(username)) {
-                    info = queryContactInfoForPhoneNumber(username, countryIso, true);
+                    info = queryContactInfoForPhoneNumber(username, null, countryIso, true,
+                            isConfUrlCallLog);
                 }
             }
         } else {
             // Look for a contact that has the given phone number.
-            info = queryContactInfoForPhoneNumber(number, countryIso, false);
+            info = queryContactInfoForPhoneNumber(number, postDialString, countryIso,
+                    false, isConfUrlCallLog);
         }
 
         final ContactInfo updatedInfo;
@@ -106,6 +130,9 @@
             if (info == ContactInfo.EMPTY) {
                 // Did not find a matching contact.
                 updatedInfo = new ContactInfo();
+                if (!isConfUrlCallLog && !TextUtils.isEmpty(postDialString)) {
+                    number += postDialString;
+                }
                 updatedInfo.number = number;
                 updatedInfo.formattedNumber = formatPhoneNumber(number, null, countryIso);
                 updatedInfo.normalizedNumber = PhoneNumberUtils.formatNumberToE164(
@@ -244,14 +271,47 @@
      * <p>
      * If the lookup fails for some other reason, it returns null.
      */
-    private ContactInfo queryContactInfoForPhoneNumber(String number, String countryIso,
-                                                       boolean isSip) {
+    private ContactInfo queryContactInfoForPhoneNumber(String number, String postDialString,
+            String countryIso, boolean isSip, boolean isConfUrlLog) {
         if (TextUtils.isEmpty(number)) {
             return null;
         }
 
         ContactInfo info = lookupContactFromUri(getContactInfoLookupUri(number), isSip);
+        if (isConfUrlLog) {
+            Pattern pattern = Pattern.compile("[,;]");
+            String[] nums = pattern.split(number);
+            if (nums != null && nums.length > 1) {
+                if (info == null || info == ContactInfo.EMPTY) {
+                    info = new ContactInfo();
+                    info.number = number;
+                    info.formattedNumber = formatPhoneNumber(number, null, countryIso);
+                    info.lookupUri = createTemporaryContactUri(info.formattedNumber);
+                    info.normalizedNumber = PhoneNumberUtils.formatNumberToE164(number,
+                            countryIso);
+                }
+                String combName = "";
+                for (String num : nums) {
+                    ContactInfo singleCi = lookupContactFromUri(getContactInfoLookupUri(num),
+                            isSip);
+                    // If contact does not exist, need to avoid changing static empty-contact.
+                    if (singleCi == ContactInfo.EMPTY) {
+                        singleCi = new ContactInfo();
+                    }
+                    if (TextUtils.isEmpty(singleCi.name)) {
+                        singleCi.name = formatPhoneNumber(num, null, countryIso);
+                    }
+                    combName += singleCi.name + ";";
+                }
+                if (!TextUtils.isEmpty(combName) && combName.length() > 1) {
+                    info.name = combName.substring(0, combName.length() - 1);
+                }
+            }
+        }
         if (info != null && info != ContactInfo.EMPTY) {
+            if (!isConfUrlLog && TextUtils.isEmpty(postDialString)) {
+                number += postDialString;
+            }
             info.formattedNumber = formatPhoneNumber(number, null, countryIso);
         } else if (mCachedNumberLookupService != null) {
             CachedContactInfo cacheInfo =
diff --git a/src/com/android/dialer/contactinfo/ContactInfoCache.java b/src/com/android/dialer/contactinfo/ContactInfoCache.java
index 1e24579..4fd3013 100644
--- a/src/com/android/dialer/contactinfo/ContactInfoCache.java
+++ b/src/com/android/dialer/contactinfo/ContactInfoCache.java
@@ -76,7 +76,8 @@
 
                 if (req != null) {
                     // Process the request. If the lookup succeeds, schedule a redraw.
-                    needRedraw |= queryContactInfo(req.number, req.countryIso, req.callLogInfo);
+                    needRedraw |= queryContactInfo(req.number, req.postDialString, req.countryIso,
+                            req.callLogInfo, req.isConf);
                 } else {
                     // Throttle redraw rate by only sending them when there are
                     // more requests.
@@ -130,6 +131,7 @@
     private final LinkedList<ContactInfoRequest> mRequests;
 
     private ExpirableCache<NumberWithCountryIso, ContactInfo> mCache;
+    private ExpirableCache<NumberWithCountryIso, ContactInfo> mCacheFor4gConfCall;
 
     private ContactInfoHelper mContactInfoHelper;
     private QueryThread mContactInfoQueryThread;
@@ -142,32 +144,52 @@
 
         mRequests = new LinkedList<ContactInfoRequest>();
         mCache = ExpirableCache.create(CONTACT_INFO_CACHE_SIZE);
+        mCacheFor4gConfCall = ExpirableCache.create(CONTACT_INFO_CACHE_SIZE);
     }
 
     public ContactInfo getValue(String number, String countryIso, ContactInfo cachedContactInfo) {
-        NumberWithCountryIso numberCountryIso = new NumberWithCountryIso(number, countryIso);
-        ExpirableCache.CachedValue<ContactInfo> cachedInfo =
-                mCache.getCachedValue(numberCountryIso);
+        return getValue(number, null, countryIso, cachedContactInfo, false);
+    }
+
+    public ContactInfo getValue(String number, String postDialString, String countryIso,
+                ContactInfo cachedContactInfo, boolean isConf) {
+        String phoneNumber = number;
+        if (!isConf && !TextUtils.isEmpty(postDialString)) {
+            phoneNumber += postDialString;
+        }
+        NumberWithCountryIso numberCountryIso = new NumberWithCountryIso(phoneNumber, countryIso);
+        ExpirableCache.CachedValue<ContactInfo> cachedInfo = null;
+        if (isConf) {
+            cachedInfo = mCacheFor4gConfCall.getCachedValue(numberCountryIso);
+        } else {
+            cachedInfo = mCache.getCachedValue(numberCountryIso);
+        }
         ContactInfo info = cachedInfo == null ? null : cachedInfo.getValue();
         if (cachedInfo == null) {
-            mCache.put(numberCountryIso, ContactInfo.EMPTY);
+            if (isConf) {
+                mCacheFor4gConfCall.put(numberCountryIso, ContactInfo.EMPTY);
+            } else {
+                mCache.put(numberCountryIso, ContactInfo.EMPTY);
+            }
             // Use the cached contact info from the call log.
             info = cachedContactInfo;
             // The db request should happen on a non-UI thread.
             // Request the contact details immediately since they are currently missing.
-            enqueueRequest(number, countryIso, cachedContactInfo, true);
+            enqueueRequest(number, postDialString, countryIso, cachedContactInfo, true, isConf);
             // We will format the phone number when we make the background request.
         } else {
             if (cachedInfo.isExpired()) {
                 // The contact info is no longer up to date, we should request it. However, we
                 // do not need to request them immediately.
-                enqueueRequest(number, countryIso, cachedContactInfo, false);
+                enqueueRequest(number, postDialString, countryIso,
+                        cachedContactInfo, false, isConf);
             } else if (!callLogInfoMatches(cachedContactInfo, info)) {
                 // The call log information does not match the one we have, look it up again.
                 // We could simply update the call log directly, but that needs to be done in a
                 // background thread, so it is easier to simply request a new lookup, which will, as
                 // a side-effect, update the call log.
-                enqueueRequest(number, countryIso, cachedContactInfo, false);
+                enqueueRequest(number, postDialString, countryIso,
+                        cachedContactInfo, false, isConf);
             }
 
             if (info == ContactInfo.EMPTY) {
@@ -186,11 +208,15 @@
      *
      * The number might be either a SIP address or a phone number.
      *
+     * @param postDialString if required, append into number
+     * @param isConf determine whether it is a 4g conf call log
      * It returns true if it updated the content of the cache and we should therefore tell the
      * view to update its content.
      */
-    private boolean queryContactInfo(String number, String countryIso, ContactInfo callLogInfo) {
-        final ContactInfo info = mContactInfoHelper.lookupNumber(number, countryIso);
+    private boolean queryContactInfo(String number, String postDialString, String countryIso,
+            ContactInfo callLogInfo, boolean isConf) {
+        final ContactInfo info = mContactInfoHelper.lookupNumber(number, postDialString,
+                countryIso, isConf);
 
         if (info == null) {
             // The lookup failed, just return without requesting to update the view.
@@ -199,8 +225,17 @@
 
         // Check the existing entry in the cache: only if it has changed we should update the
         // view.
-        NumberWithCountryIso numberCountryIso = new NumberWithCountryIso(number, countryIso);
-        ContactInfo existingInfo = mCache.getPossiblyExpired(numberCountryIso);
+        String phoneNumber = number;
+        if (!isConf && !TextUtils.isEmpty(postDialString)) {
+            phoneNumber += postDialString;
+        }
+        NumberWithCountryIso numberCountryIso = new NumberWithCountryIso(phoneNumber, countryIso);
+        ContactInfo existingInfo = null;
+        if (isConf) {
+            existingInfo = mCacheFor4gConfCall.getPossiblyExpired(numberCountryIso);
+        } else {
+            existingInfo = mCache.getPossiblyExpired(numberCountryIso);
+        }
 
         final boolean isRemoteSource = info.sourceType != 0;
 
@@ -215,11 +250,21 @@
 
         // Store the data in the cache so that the UI thread can use to display it. Store it
         // even if it has not changed so that it is marked as not expired.
-        mCache.put(numberCountryIso, info);
+        if (isConf) {
+            mCacheFor4gConfCall.put(numberCountryIso, info);
+        } else {
+            mCache.put(numberCountryIso, info);
+        }
 
         // Update the call log even if the cache it is up-to-date: it is possible that the cache
         // contains the value from a different call log entry.
-        mContactInfoHelper.updateCallLogContactInfo(number, countryIso, info, callLogInfo);
+        if (isConf) {
+            mContactInfoHelper.updateCallLogContactInfo(number, countryIso,
+                    info, callLogInfo);
+        } else {
+            mContactInfoHelper.updateCallLogContactInfo(phoneNumber, countryIso,
+                    info, callLogInfo);
+        }
         return updated;
     }
 
@@ -264,6 +309,7 @@
 
     public void invalidate() {
         mCache.expireAll();
+        mCacheFor4gConfCall.expireAll();
         stopRequestProcessing();
     }
 
@@ -293,7 +339,24 @@
      */
     protected void enqueueRequest(String number, String countryIso, ContactInfo callLogInfo,
             boolean immediate) {
-        ContactInfoRequest request = new ContactInfoRequest(number, countryIso, callLogInfo);
+        enqueueRequest(number, null, countryIso, callLogInfo, immediate, false);
+    }
+
+    /**
+     * Enqueues a request to look up the contact details for the given phone number.
+     * <p>
+     * It also provides the current contact info stored in the call log for this number.
+     * <p>
+     * If the {@code immediate} parameter is true, it will start immediately the thread that looks
+     * up the contact information (if it has not been already started). Otherwise, it will be
+     * started with a delay. See {@link #START_PROCESSING_REQUESTS_DELAY_MILLIS}.
+     * @param postDialString if required, append into number
+     * @param isConf indicate whether call log is for Conference Url call
+     */
+    protected void enqueueRequest(String number, String postDialString, String countryIso,
+            ContactInfo callLogInfo, boolean immediate, boolean isConf) {
+        ContactInfoRequest request = new ContactInfoRequest(number, postDialString, countryIso,
+                callLogInfo, isConf);
         synchronized (mRequests) {
             if (!mRequests.contains(request)) {
                 mRequests.add(request);
diff --git a/src/com/android/dialer/contactinfo/ContactInfoRequest.java b/src/com/android/dialer/contactinfo/ContactInfoRequest.java
index ec5c119..98208bc 100644
--- a/src/com/android/dialer/contactinfo/ContactInfoRequest.java
+++ b/src/com/android/dialer/contactinfo/ContactInfoRequest.java
@@ -31,11 +31,20 @@
     public final String countryIso;
     /** The cached contact information stored in the call log. */
     public final ContactInfo callLogInfo;
+    public final boolean isConf;
+    public final String postDialString;
 
     public ContactInfoRequest(String number, String countryIso, ContactInfo callLogInfo) {
+        this(number, null, countryIso, callLogInfo, false);
+    }
+
+    public ContactInfoRequest(String number, String postDialString, String countryIso,
+            ContactInfo callLogInfo, boolean isConf) {
         this.number = number;
+        this.postDialString = postDialString;
         this.countryIso = countryIso;
         this.callLogInfo = callLogInfo;
+        this.isConf = isConf;
     }
 
     @Override
@@ -47,6 +56,7 @@
         ContactInfoRequest other = (ContactInfoRequest) obj;
 
         if (!TextUtils.equals(number, other.number)) return false;
+        if (!TextUtils.equals(postDialString, other.postDialString)) return false;
         if (!TextUtils.equals(countryIso, other.countryIso)) return false;
         if (!Objects.equal(callLogInfo, other.callLogInfo)) return false;
 
@@ -60,6 +70,7 @@
         result = prime * result + ((callLogInfo == null) ? 0 : callLogInfo.hashCode());
         result = prime * result + ((countryIso == null) ? 0 : countryIso.hashCode());
         result = prime * result + ((number == null) ? 0 : number.hashCode());
+        result = prime * result + ((postDialString == null) ? 0 : postDialString.hashCode());
         return result;
     }
 }
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index 13661a4..85be754 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -100,6 +100,9 @@
 import com.android.phone.common.dialpad.DialpadKeyButton;
 import com.android.phone.common.dialpad.DialpadView;
 
+import static android.Manifest.permission.READ_CALL_LOG;
+import static android.Manifest.permission.WRITE_CALL_LOG;
+
 import java.util.HashSet;
 import java.util.List;
 
@@ -114,8 +117,9 @@
         DialpadKeyButton.OnPressedListener {
     private static final String TAG = "DialpadFragment";
 
-    /* define for Activity permission request for Android6.0 */
+    /* define for Activity permission request for Android >= 6.0 */
     private static final int PERMISSION_REQUEST_CODE_LOCATION = 2;
+    private static final int READ_WRITE_CALL_LOG_PERMISSION_REQUEST_CODE = 3;
     /**
      * LinearLayout with getter and setter methods for the translationY property using floats,
      * for animation purposes.
@@ -196,7 +200,6 @@
     private static final String PROPERTY_RADIO_ATEL_CARRIER = "persist.radio.atel.carrier";
     private static final String CARRIER_ONE_DEFAULT_MCC_MNC = "405854";
 
-
     private OnDialpadQueryChangedListener mDialpadQueryListener;
 
     private DialpadView mDialpadView;
@@ -269,6 +272,8 @@
 
     private CallStateReceiver mCallStateReceiver;
 
+    private boolean mHasReadAndWriteCallLogPermission = false;
+
     private class CallStateReceiver extends BroadcastReceiver {
         /**
          * Receive call state changes so that we can take down the
@@ -649,11 +654,16 @@
     private void setFormattedDigits(String data, String normalizedNumber) {
         final String formatted = getFormattedDigits(data, normalizedNumber, mCurrentCountryIso);
         if (!TextUtils.isEmpty(formatted)) {
-            Editable digits = mDigits.getText();
-            digits.replace(0, digits.length(), formatted);
-            // for some reason this isn't getting called in the digits.replace call above..
-            // but in any case, this will make sure the background drawable looks right
-            afterTextChanged(digits);
+            if (isRecipientsShown()) {
+                mRecipients.setText(formatted);
+                afterTextChanged(mRecipients.getText());
+            } else {
+                Editable digits = mDigits.getText();
+                digits.replace(0, digits.length(), formatted);
+                // for some reason this isn't getting called in the digits.replace call above..
+                // but in any case, this will make sure the background drawable looks right
+                afterTextChanged(digits);
+            }
         }
     }
 
@@ -756,8 +766,16 @@
         final StopWatch stopWatch = StopWatch.start("Dialpad.onResume");
 
         // Query the last dialed number. Do it first because hitting
+        mHasReadAndWriteCallLogPermission =
+                PermissionsUtil.hasPermission(getActivity(), READ_CALL_LOG) &&
+                PermissionsUtil.hasPermission(getActivity(), WRITE_CALL_LOG);
         // the DB is 'slow'. This call is asynchronous.
-        queryLastOutgoingCall();
+        if (mHasReadAndWriteCallLogPermission){
+            queryLastOutgoingCall();
+        } else {
+            ActivityCompat.requestPermissions(getActivity(), new String[] {READ_CALL_LOG,
+                    WRITE_CALL_LOG}, READ_WRITE_CALL_LOG_PERMISSION_REQUEST_CODE);
+        }
 
         stopWatch.lap("qloc");
 
@@ -2086,6 +2104,15 @@
                     handleDialButtonPressed();
                 }
                 break;
+            case READ_WRITE_CALL_LOG_PERMISSION_REQUEST_CODE:
+                for (int i = 0; i < grantResults.length; i++) {
+                    mHasReadAndWriteCallLogPermission &=
+                            PackageManager.PERMISSION_GRANTED == grantResults[i];
+                }
+                if (mHasReadAndWriteCallLogPermission) {
+                    queryLastOutgoingCall();
+                }
+                break;
             default:
                 super.onRequestPermissionsResult(requestCode, permissions, grantResults);
         }
diff --git a/src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java b/src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java
index 3c60a96..6255dec 100644
--- a/src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java
+++ b/src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java
@@ -238,7 +238,9 @@
         final OnUnblockNumberListener onUndoListener = new OnUnblockNumberListener() {
             @Override
             public void onUnblockComplete(int rows, ContentValues values) {
-                Snackbar.make(mParentView, undoMessage, Snackbar.LENGTH_LONG).show();
+                if (mParentView != null) {
+                    Snackbar.make(mParentView, undoMessage, Snackbar.LENGTH_LONG).show();
+                }
                 if (callback != null) {
                     callback.onChangeFilteredNumberUndo();
                 }
@@ -256,12 +258,12 @@
                         mHandler.unblock(onUndoListener, uri);
                     }
                 };
-
-                Snackbar.make(mParentView, message, Snackbar.LENGTH_LONG)
-                        .setAction(R.string.block_number_undo, undoListener)
-                        .setActionTextColor(actionTextColor)
-                        .show();
-
+                if (mParentView != null) {
+                    Snackbar.make(mParentView, message, Snackbar.LENGTH_LONG)
+                            .setAction(R.string.block_number_undo, undoListener)
+                            .setActionTextColor(actionTextColor)
+                            .show();
+                }
                 if (callback != null) {
                     callback.onFilterNumberSuccess();
                 }
@@ -287,7 +289,9 @@
         final OnBlockNumberListener onUndoListener = new OnBlockNumberListener() {
             @Override
             public void onBlockComplete(final Uri uri) {
-                Snackbar.make(mParentView, undoMessage, Snackbar.LENGTH_LONG).show();
+                if (mParentView != null) {
+                    Snackbar.make(mParentView, undoMessage, Snackbar.LENGTH_LONG).show();
+                }
                 if (callback != null) {
                     callback.onChangeFilteredNumberUndo();
                 }
@@ -305,12 +309,12 @@
                         mHandler.blockNumber(onUndoListener, values);
                     }
                 };
-
-                Snackbar.make(mParentView, message, Snackbar.LENGTH_LONG)
-                        .setAction(R.string.block_number_undo, undoListener)
-                        .setActionTextColor(actionTextColor)
-                        .show();
-
+                if (mParentView != null) {
+                    Snackbar.make(mParentView, message, Snackbar.LENGTH_LONG)
+                            .setAction(R.string.block_number_undo, undoListener)
+                            .setActionTextColor(actionTextColor)
+                            .show();
+                }
                 if (callback != null) {
                     callback.onUnfilterNumberSuccess();
                 }
diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java
index 1c81455..303c73a 100644
--- a/src/com/android/dialer/settings/DialerSettingsActivity.java
+++ b/src/com/android/dialer/settings/DialerSettingsActivity.java
@@ -63,10 +63,12 @@
 
     @Override
     public void onBuildHeaders(List<Header> target) {
-        Header displayOptionsHeader = new Header();
-        displayOptionsHeader.titleRes = R.string.display_options_title;
-        displayOptionsHeader.fragment = DisplayOptionsSettingsFragment.class.getName();
-        target.add(displayOptionsHeader);
+        if (showDisplayOptions()) {
+            Header displayOptionsHeader = new Header();
+            displayOptionsHeader.titleRes = R.string.display_options_title;
+            displayOptionsHeader.fragment = DisplayOptionsSettingsFragment.class.getName();
+            target.add(displayOptionsHeader);
+        }
 
         Header soundSettingsHeader = new Header();
         soundSettingsHeader.titleRes = R.string.sounds_and_vibration_title;
@@ -158,6 +160,18 @@
         }
     }
 
+    /**
+    * Returns {@code true} or {@code false} based on whether the display options setting should be
+    * shown. For languages such as Chinese, Japanese, or Korean, display options aren't useful
+    * since contacts are sorted and displayed family name first by default.
+    *
+    * @return {@code true} if the display options should be shown, {@code false} otherwise.
+    */
+    private boolean showDisplayOptions() {
+        return getResources().getBoolean(R.bool.config_display_order_user_changeable)
+                && getResources().getBoolean(R.bool.config_sort_order_user_changeable);
+    }
+
     @Override
     public void onHeaderClick(Header header, int position) {
         if (header.id == R.id.settings_header_sounds_and_vibration) {
diff --git a/src/com/android/dialer/util/DialerUtils.java b/src/com/android/dialer/util/DialerUtils.java
index a71e287..f2b04f9 100644
--- a/src/com/android/dialer/util/DialerUtils.java
+++ b/src/com/android/dialer/util/DialerUtils.java
@@ -232,4 +232,13 @@
                 PREFS_MESSAGE, Context.MODE_PRIVATE);
         prefs.edit().putBoolean(KEY_STATE, show).apply();
     }
+
+    /**
+     * @return true if calllog inserted earlier when dial a ConfURI call.
+     */
+    public static boolean isConferenceURICallLog(String number, String postDialDigits) {
+        return (number == null || number.contains(";") || number.contains(",")) &&
+                (postDialDigits == null || postDialDigits.equals(""));
+    }
+
 }
diff --git a/src/com/android/dialer/util/IntentUtil.java b/src/com/android/dialer/util/IntentUtil.java
index 8d47075..bb87a49 100644
--- a/src/com/android/dialer/util/IntentUtil.java
+++ b/src/com/android/dialer/util/IntentUtil.java
@@ -177,7 +177,8 @@
                     if (subRes.getBoolean(R.bool.config_enable_conference_dialer)) {
                         TelephonyManager telephonyMgr = (TelephonyManager) context.
                                 getSystemService(Context.TELEPHONY_SERVICE);
-                        isEnabled = telephonyMgr.isImsRegistered();
+                        isEnabled = telephonyMgr.isImsRegisteredForSubscriber(subInfo
+                                .getSubscriptionId());
                         if (isEnabled) {
                             break;
                         }
diff --git a/src/com/android/dialer/util/TelecomUtil.java b/src/com/android/dialer/util/TelecomUtil.java
index bd201c4..69c7334 100644
--- a/src/com/android/dialer/util/TelecomUtil.java
+++ b/src/com/android/dialer/util/TelecomUtil.java
@@ -95,11 +95,14 @@
     }
 
     public static boolean handleMmi(Context context, String dialString,
-            PhoneAccountHandle handle) {
+            @Nullable PhoneAccountHandle handle) {
         if (hasModifyPhoneStatePermission(context)) {
             try {
-                return TelecomManagerCompat.handleMmi(
-                        getTelecomManager(context), dialString, handle);
+                if (handle == null) {
+                    return getTelecomManager(context).handleMmi(dialString);
+                } else {
+                    return getTelecomManager(context).handleMmi(dialString, handle);
+                }
             } catch (SecurityException e) {
                 Log.w(TAG, "TelecomManager.handleMmi called without permission.");
             }