diff --git a/InCallUI/res/drawable-hdpi/ab_transparent_dark_holo.9.png b/InCallUI/res/drawable-hdpi/ab_transparent_dark_holo.9.png
deleted file mode 100644
index 0eff695..0000000
--- a/InCallUI/res/drawable-hdpi/ab_transparent_dark_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_business_white_24dp.png b/InCallUI/res/drawable-hdpi/ic_business_white_24dp.png
new file mode 100644
index 0000000..d10ebb7
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_business_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_location_on_white_24dp.png b/InCallUI/res/drawable-hdpi/ic_location_on_white_24dp.png
new file mode 100644
index 0000000..7c281c3
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_location_on_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_lockscreen_handle_pressed.png b/InCallUI/res/drawable-hdpi/ic_lockscreen_handle_pressed.png
deleted file mode 100644
index 58a5f16..0000000
--- a/InCallUI/res/drawable-hdpi/ic_lockscreen_handle_pressed.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-hdpi/ic_schedule_white_24dp.png b/InCallUI/res/drawable-hdpi/ic_schedule_white_24dp.png
new file mode 100644
index 0000000..f3581d1
--- /dev/null
+++ b/InCallUI/res/drawable-hdpi/ic_schedule_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ab_transparent_dark_holo.9.png b/InCallUI/res/drawable-mdpi/ab_transparent_dark_holo.9.png
deleted file mode 100644
index ad980b1..0000000
--- a/InCallUI/res/drawable-mdpi/ab_transparent_dark_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_business_white_24dp.png b/InCallUI/res/drawable-mdpi/ic_business_white_24dp.png
new file mode 100644
index 0000000..7b9227c
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_business_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_location_on_white_24dp.png b/InCallUI/res/drawable-mdpi/ic_location_on_white_24dp.png
new file mode 100644
index 0000000..933eb51
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_location_on_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_lockscreen_answer_normal.png b/InCallUI/res/drawable-mdpi/ic_lockscreen_answer_normal.png
deleted file mode 100644
index da15c33..0000000
--- a/InCallUI/res/drawable-mdpi/ic_lockscreen_answer_normal.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_lockscreen_decline_activated.png b/InCallUI/res/drawable-mdpi/ic_lockscreen_decline_activated.png
deleted file mode 100644
index 6496626..0000000
--- a/InCallUI/res/drawable-mdpi/ic_lockscreen_decline_activated.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_lockscreen_decline_normal.png b/InCallUI/res/drawable-mdpi/ic_lockscreen_decline_normal.png
deleted file mode 100644
index 27fe093..0000000
--- a/InCallUI/res/drawable-mdpi/ic_lockscreen_decline_normal.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_lockscreen_handle_pressed.png b/InCallUI/res/drawable-mdpi/ic_lockscreen_handle_pressed.png
deleted file mode 100644
index 0187a02..0000000
--- a/InCallUI/res/drawable-mdpi/ic_lockscreen_handle_pressed.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_schedule_white_24dp.png b/InCallUI/res/drawable-mdpi/ic_schedule_white_24dp.png
new file mode 100644
index 0000000..501ee84
--- /dev/null
+++ b/InCallUI/res/drawable-mdpi/ic_schedule_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ab_transparent_dark_holo.9.png b/InCallUI/res/drawable-xhdpi/ab_transparent_dark_holo.9.png
deleted file mode 100644
index 719b923..0000000
--- a/InCallUI/res/drawable-xhdpi/ab_transparent_dark_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_business_white_24dp.png b/InCallUI/res/drawable-xhdpi/ic_business_white_24dp.png
new file mode 100644
index 0000000..e563045
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_business_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_location_on_white_24dp.png b/InCallUI/res/drawable-xhdpi/ic_location_on_white_24dp.png
new file mode 100644
index 0000000..814ca8d
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_location_on_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_lockscreen_answer_normal.png b/InCallUI/res/drawable-xhdpi/ic_lockscreen_answer_normal.png
deleted file mode 100644
index 983d5d9..0000000
--- a/InCallUI/res/drawable-xhdpi/ic_lockscreen_answer_normal.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_lockscreen_decline_activated.png b/InCallUI/res/drawable-xhdpi/ic_lockscreen_decline_activated.png
deleted file mode 100644
index 317b329..0000000
--- a/InCallUI/res/drawable-xhdpi/ic_lockscreen_decline_activated.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_lockscreen_decline_normal.png b/InCallUI/res/drawable-xhdpi/ic_lockscreen_decline_normal.png
deleted file mode 100644
index 2cb03e7..0000000
--- a/InCallUI/res/drawable-xhdpi/ic_lockscreen_decline_normal.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_lockscreen_handle_pressed.png b/InCallUI/res/drawable-xhdpi/ic_lockscreen_handle_pressed.png
deleted file mode 100644
index 2d28009..0000000
--- a/InCallUI/res/drawable-xhdpi/ic_lockscreen_handle_pressed.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_schedule_white_24dp.png b/InCallUI/res/drawable-xhdpi/ic_schedule_white_24dp.png
new file mode 100644
index 0000000..2e27936
--- /dev/null
+++ b/InCallUI/res/drawable-xhdpi/ic_schedule_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ab_transparent_dark_holo.9.png b/InCallUI/res/drawable-xxhdpi/ab_transparent_dark_holo.9.png
deleted file mode 100644
index 84155cc..0000000
--- a/InCallUI/res/drawable-xxhdpi/ab_transparent_dark_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_business_white_24dp.png b/InCallUI/res/drawable-xxhdpi/ic_business_white_24dp.png
new file mode 100644
index 0000000..7dfc8dc
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_business_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_location_on_white_24dp.png b/InCallUI/res/drawable-xxhdpi/ic_location_on_white_24dp.png
new file mode 100644
index 0000000..078b10d
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_location_on_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_lockscreen_answer_normal.png b/InCallUI/res/drawable-xxhdpi/ic_lockscreen_answer_normal.png
deleted file mode 100644
index fcf4367..0000000
--- a/InCallUI/res/drawable-xxhdpi/ic_lockscreen_answer_normal.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_lockscreen_decline_activated.png b/InCallUI/res/drawable-xxhdpi/ic_lockscreen_decline_activated.png
deleted file mode 100644
index 74b6cf0..0000000
--- a/InCallUI/res/drawable-xxhdpi/ic_lockscreen_decline_activated.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_lockscreen_decline_normal.png b/InCallUI/res/drawable-xxhdpi/ic_lockscreen_decline_normal.png
deleted file mode 100644
index 54b7965..0000000
--- a/InCallUI/res/drawable-xxhdpi/ic_lockscreen_decline_normal.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_lockscreen_handle_pressed.png b/InCallUI/res/drawable-xxhdpi/ic_lockscreen_handle_pressed.png
deleted file mode 100644
index 7528064..0000000
--- a/InCallUI/res/drawable-xxhdpi/ic_lockscreen_handle_pressed.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_schedule_white_24dp.png b/InCallUI/res/drawable-xxhdpi/ic_schedule_white_24dp.png
new file mode 100644
index 0000000..bfc7273
--- /dev/null
+++ b/InCallUI/res/drawable-xxhdpi/ic_schedule_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/fab_green.png b/InCallUI/res/drawable-xxxhdpi/fab_green.png
deleted file mode 100644
index aa8849e..0000000
--- a/InCallUI/res/drawable-xxxhdpi/fab_green.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_business_white_24dp.png b/InCallUI/res/drawable-xxxhdpi/ic_business_white_24dp.png
new file mode 100644
index 0000000..c9aea72
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_business_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_location_on_white_24dp.png b/InCallUI/res/drawable-xxxhdpi/ic_location_on_white_24dp.png
new file mode 100644
index 0000000..8bcb6f6
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_location_on_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable-xxxhdpi/ic_schedule_white_24dp.png b/InCallUI/res/drawable-xxxhdpi/ic_schedule_white_24dp.png
new file mode 100644
index 0000000..b94f4df
--- /dev/null
+++ b/InCallUI/res/drawable-xxxhdpi/ic_schedule_white_24dp.png
Binary files differ
diff --git a/InCallUI/res/drawable/ic_lockscreen_answer_activated_layer.xml b/InCallUI/res/drawable/ic_lockscreen_answer_activated_layer.xml
index c615295..f22b87e 100644
--- a/InCallUI/res/drawable/ic_lockscreen_answer_activated_layer.xml
+++ b/InCallUI/res/drawable/ic_lockscreen_answer_activated_layer.xml
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:drawable="@drawable/fab_blue" />
+    <item android:drawable="@drawable/fab_green"/>
     <item>
         <bitmap
             android:gravity="center"
diff --git a/InCallUI/res/drawable/ic_lockscreen_decline_video_normal_layer.xml b/InCallUI/res/drawable/ic_lockscreen_decline_video_normal_layer.xml
index e247f0a..e3b89b9 100644
--- a/InCallUI/res/drawable/ic_lockscreen_decline_video_normal_layer.xml
+++ b/InCallUI/res/drawable/ic_lockscreen_decline_video_normal_layer.xml
@@ -28,7 +28,7 @@
         <bitmap
             android:gravity="center"
             android:src="@drawable/ic_toolbar_video_off"
-            android:tint="@color/glowpad_call_widget_normal_tint"
+            android:tint="@color/glowpad_end_call_widget_normal_tint"
             android:autoMirrored="true" />
     </item>
 </layer-list>
diff --git a/InCallUI/res/drawable/incoming_sms_background.xml b/InCallUI/res/drawable/incoming_sms_background.xml
new file mode 100644
index 0000000..81ff21c
--- /dev/null
+++ b/InCallUI/res/drawable/incoming_sms_background.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<shape
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners
+        android:topLeftRadius="@dimen/person_contact_context_message_background_main_radius"
+        android:topRightRadius="@dimen/person_contact_context_message_background_main_radius"
+        android:bottomRightRadius="@dimen/person_contact_context_message_background_main_radius"
+        android:bottomLeftRadius="@dimen/person_contact_context_message_background_accent_radius"/>
+    <solid android:color="@color/person_contact_context_message_background_color" />
+</shape>
diff --git a/InCallUI/res/drawable/outgoing_sms_background.xml b/InCallUI/res/drawable/outgoing_sms_background.xml
new file mode 100644
index 0000000..e4f868f
--- /dev/null
+++ b/InCallUI/res/drawable/outgoing_sms_background.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<shape
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <corners
+        android:topLeftRadius="@dimen/person_contact_context_message_background_main_radius"
+        android:topRightRadius="@dimen/person_contact_context_message_background_main_radius"
+        android:bottomLeftRadius="@dimen/person_contact_context_message_background_main_radius"
+        android:bottomRightRadius="@dimen/person_contact_context_message_background_accent_radius"/>
+    <solid android:color="@color/person_contact_context_message_background_color" />
+</shape>
diff --git a/InCallUI/res/layout-land/call_card_fragment.xml b/InCallUI/res/layout-land/call_card_fragment.xml
index c02af1b..c71cf07 100644
--- a/InCallUI/res/layout-land/call_card_fragment.xml
+++ b/InCallUI/res/layout-land/call_card_fragment.xml
@@ -16,18 +16,17 @@
   ~ limitations under the License
   -->
 
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:layout_alignParentTop="true"
-    android:layout_alignParentStart="true" >
+    android:orientation="horizontal">
 
     <LinearLayout
         android:id="@+id/primary_call_info_container"
-        android:layout_alignParentStart="true"
         android:layout_centerVertical="true"
-        android:layout_width="wrap_content"
+        android:layout_width="0dp"
         android:layout_height="match_parent"
+        android:layout_weight="1"
         android:orientation="vertical"
         android:elevation="@dimen/primary_call_elevation"
         android:background="@drawable/rounded_call_card_background"
@@ -39,104 +38,121 @@
 
         <include layout="@layout/primary_call_info" />
 
-        <FrameLayout
+        <fragment android:name="com.android.incallui.CallButtonFragment"
+            android:id="@+id/callButtonFragment"
             android:layout_width="wrap_content"
-            android:layout_height="match_parent" >
+            android:layout_height="wrap_content"
+            android:layout_gravity="bottom|center_horizontal"
+            android:layout_marginBottom="@dimen/call_buttons_bottom_margin" />
 
-            <fragment android:name="com.android.incallui.CallButtonFragment"
-                android:id="@+id/callButtonFragment"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="bottom"
-                android:layout_marginBottom="@dimen/call_buttons_bottom_margin" />
-            <!-- Secondary "Call info" block, for the background ("on hold") call. -->
-            <include layout="@layout/secondary_call_info"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_gravity="bottom" />
-
-        </FrameLayout>
+        <!-- Secondary "Call info" block, for the background ("on hold") call. -->
+        <include layout="@layout/secondary_call_info"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="bottom" />
 
     </LinearLayout>
 
     <FrameLayout
         android:layout_height="match_parent"
-        android:layout_width="match_parent"
-        android:layout_below="@id/primary_call_info_container"
-        android:id="@+id/call_card_content">
+        android:layout_width="0dp"
+        android:layout_weight="1">
 
-        <ImageView android:id="@+id/photo"
-            android:layout_toEndOf="@id/primary_call_info_container"
+        <FrameLayout
+            android:layout_height="match_parent"
             android:layout_width="match_parent"
+            android:id="@+id/call_card_content">
+
+            <ImageView android:id="@+id/photoLarge"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:scaleType="centerCrop"
+                android:contentDescription="@string/contactPhoto"
+                android:background="@color/incall_photo_background_color"
+                android:src="@drawable/img_no_image_automirrored" />
+
+            <!-- Call context -->
+            <LinearLayout
+                android:id="@+id/contact_context"
+                android:layout_height="match_parent"
+                android:layout_width="match_parent"
+                android:orientation="vertical"
+                android:background="@color/incall_background_color"
+                android:visibility="gone">
+                <TextView android:id="@+id/contactContextTitle"
+                    android:textSize="@dimen/contact_context_title_text_size"
+                    android:textColor="@color/contact_context_title_text_color"
+                    android:fontFamily="sans-serif-medium"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_horizontal"
+                    android:layout_marginBottom="@dimen/contact_context_title_margin_bottom" />
+                <ListView android:id="@+id/contactContextInfo"
+                     android:layout_width="match_parent"
+                     android:layout_height="match_parent"
+                     android:divider="@null"
+                     android:dividerHeight="@dimen/contact_context_list_item_padding" />
+            </LinearLayout>
+
+        </FrameLayout>
+
+        <include layout="@layout/manage_conference_call_button"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_alignTop="@id/photoLarge" />
+
+        <!-- Progress spinner, useful for indicating pending operations such as upgrade to video. -->
+        <FrameLayout
+            android:id="@+id/progressSpinner"
+            android:background="#63000000"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_centerHorizontal="true"
+            android:layout_centerVertical="true"
+            android:visibility="gone" >
+
+            <ProgressBar
+                android:id="@+id/progress_bar"
+                style="@android:style/Widget.Material.ProgressBar"
+                android:layout_gravity="center"
+                android:layout_width="48dp"
+                android:layout_height="48dp"
+                android:indeterminate="true" />
+
+        </FrameLayout>
+
+        <fragment android:name="com.android.incallui.VideoCallFragment"
+            android:layout_alignParentStart="true"
             android:layout_gravity="start|center_vertical"
-            android:layout_height="match_parent"
-            android:gravity="start|center_vertical"
-            android:scaleType="centerCrop"
-            android:contentDescription="@string/contactPhoto"
-            android:background="@android:color/white"
-            android:src="@drawable/img_no_image_automirrored" />
-
-    </FrameLayout>
-
-    <include layout="@layout/manage_conference_call_button"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_alignTop="@id/photo" />
-
-    <!-- Progress spinner, useful for indicating pending operations such as upgrade to video. -->
-    <FrameLayout
-        android:id="@+id/progressSpinner"
-        android:layout_toEndOf="@id/primary_call_info_container"
-        android:background="#63000000"
-        android:layout_width="fill_parent"
-        android:layout_height="fill_parent"
-        android:layout_centerHorizontal="true"
-        android:layout_centerVertical="true"
-        android:visibility="gone" >
-
-        <ProgressBar
-            android:id="@+id/progress_bar"
-            style="@android:style/Widget.Material.ProgressBar"
-            android:layout_gravity="center"
-            android:layout_width="48dp"
-            android:layout_height="48dp"
-            android:indeterminate="true" />
-
-    </FrameLayout>
-
-    <fragment android:name="com.android.incallui.VideoCallFragment"
-        android:layout_alignParentStart="true"
-        android:layout_gravity="start|center_vertical"
-        android:id="@+id/videoCallFragment"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-    <!-- Placeholder for the dialpad which is replaced with the dialpad fragment when shown. -->
-    <FrameLayout
-        android:id="@+id/answer_and_dialpad_container"
-        android:layout_toEndOf="@id/primary_call_info_container"
-        android:layout_gravity="end|center_vertical"
-        android:layout_alignParentEnd="true"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-    <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_centerHorizontal="true"
-        android:layout_marginBottom="@dimen/end_call_button_margin_bottom"
-        android:layout_alignParentBottom="true" >
-
-        <ImageButton android:id="@+id/floating_end_call_action_button"
+            android:id="@+id/videoCallFragment"
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="@drawable/end_call_background"
-            android:src="@drawable/fab_ic_end_call"
-            android:scaleType="center"
-            android:contentDescription="@string/onscreenEndCallText" />
+            android:layout_height="match_parent" />
+
+        <!-- Placeholder for the dialpad which is replaced with the dialpad fragment when shown. -->
+        <FrameLayout
+            android:id="@+id/answer_and_dialpad_container"
+            android:layout_gravity="bottom"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+
+        <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_gravity="bottom|center_horizontal"
+            android:layout_marginBottom="@dimen/end_call_button_margin_bottom">
+
+            <ImageButton android:id="@+id/floating_end_call_action_button"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:background="@drawable/end_call_background"
+                android:src="@drawable/fab_ic_end_call"
+                android:scaleType="center"
+                android:contentDescription="@string/onscreenEndCallText" />
+
+        </FrameLayout>
 
     </FrameLayout>
 
-</RelativeLayout>
+</LinearLayout>
diff --git a/InCallUI/res/layout-land/video_call_views.xml b/InCallUI/res/layout-land/video_call_views.xml
deleted file mode 100644
index 8961ea4..0000000
--- a/InCallUI/res/layout-land/video_call_views.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-  ~ Copyright (C) 2014 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent" >
-
-    <TextureView
-        android:id="@+id/incomingVideo"
-        android:layout_gravity="center"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-    <!-- The width and height are replaced at runtime based on the selected camera. -->
-    <TextureView
-        android:id="@+id/previewVideo"
-        android:layout_gravity="bottom|right"
-        android:layout_margin="@dimen/video_preview_margin"
-        android:layout_width="70dp"
-        android:layout_height="120dp" />
-</FrameLayout>
diff --git a/InCallUI/res/layout/accessible_answer_fragment.xml b/InCallUI/res/layout/accessible_answer_fragment.xml
new file mode 100644
index 0000000..90fe577
--- /dev/null
+++ b/InCallUI/res/layout/accessible_answer_fragment.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+~ Copyright (C) 2013 The Android Open Source Project
+~
+~ Licensed under the Apache License, Version 2.0 (the "License");
+~ you may not use this file except in compliance with the License.
+~ You may obtain a copy of the License at
+~
+~      http://www.apache.org/licenses/LICENSE-2.0
+~
+~ Unless required by applicable law or agreed to in writing, software
+~ distributed under the License is distributed on an "AS IS" BASIS,
+~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+~ See the License for the specific language governing permissions and
+~ limitations under the License
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center_horizontal"
+    android:background="@color/glowpad_background_color">
+    <RelativeLayout
+        android:id="@+id/accessible_answer_fragment_answer"
+        android:orientation="vertical"
+        android:layout_width="120dp"
+        android:layout_height="120dp"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:clickable="true"
+        android:layout_alignParentRight="true"
+        android:layout_centerVertical="true"
+        android:layout_marginLeft="16dp"
+        android:layout_marginRight="16dp">
+        <ImageView
+            android:layout_width="64dp"
+            android:layout_height="64dp"
+            android:src="@drawable/ic_lockscreen_answer_activated_layer"
+            android:layout_centerInParent="true">
+        </ImageView>
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/description_target_answer"
+            android:textSize="12sp"
+            android:textColor="@color/accessible_answer_hint_text_color"
+            android:layout_alignParentBottom="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginBottom="8dp"/>
+    </RelativeLayout>
+    <RelativeLayout
+        android:id="@+id/accessible_answer_fragment_decline"
+        android:orientation="vertical"
+        android:layout_width="120dp"
+        android:layout_height="120dp"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:clickable="true"
+        android:layout_alignParentLeft="true"
+        android:layout_centerVertical="true"
+        android:layout_marginLeft="16dp"
+        android:layout_marginRight="16dp">
+        <ImageView
+            android:layout_width="64dp"
+            android:layout_height="64dp"
+            android:src="@drawable/ic_lockscreen_decline_activated_layer"
+            android:layout_centerInParent="true">
+        </ImageView>
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/description_target_decline"
+            android:textSize="12sp"
+            android:textColor="@color/accessible_answer_hint_text_color"
+            android:layout_alignParentBottom="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginBottom="8dp"/>
+    </RelativeLayout>
+    <LinearLayout
+        android:id="@+id/accessible_answer_fragment_text"
+        android:orientation="vertical"
+        android:layout_width="92dp"
+        android:layout_height="92dp"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:clickable="true"
+        android:layout_alignParentEnd="false"
+        android:layout_alignParentStart="false"
+        android:layout_above="@+id/accessible_answer_fragment_decline"
+        android:layout_alignWithParentIfMissing="false"
+        android:layout_alignParentTop="false"
+        android:layout_alignParentLeft="false"
+        android:layout_alignParentBottom="false"
+        android:layout_alignParentRight="false"
+        android:layout_centerHorizontal="true"
+        android:contentDescription="@string/description_target_send_sms"
+        android:gravity="center">
+        <ImageView
+            android:layout_width="64dp"
+            android:layout_height="64dp"
+            android:src="@drawable/ic_lockscreen_text">
+        </ImageView>
+    </LinearLayout>
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/InCallUI/res/layout/business_contact_context_list_header.xml b/InCallUI/res/layout/business_contact_context_list_header.xml
new file mode 100644
index 0000000..9052118
--- /dev/null
+++ b/InCallUI/res/layout/business_contact_context_list_header.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+     android:layout_width="match_parent"
+     android:layout_height="wrap_content"
+     android:orientation="horizontal"
+     android:paddingEnd="@dimen/business_contact_context_end_padding">
+     <ImageView android:id="@+id/icon"
+         android:layout_width="@dimen/contact_context_title_image_size"
+         android:layout_height="@dimen/contact_context_title_image_size"
+         android:layout_marginLeft="@dimen/contact_context_title_image_side_padding"
+         android:layout_marginRight="@dimen/contact_context_title_image_side_padding"
+         android:layout_gravity="center"
+         android:scaleType="center"
+         android:src="@drawable/ic_business_white_24dp"
+         android:tint="@color/business_contact_context_text_color"
+         android:alpha="0.8"
+         android:importantForAccessibility="no"/>
+     <TextView android:id="@+id/title"
+         android:layout_width="match_parent"
+         android:layout_height="wrap_content"
+         android:layout_gravity="center_vertical"
+         android:text="@string/business_contact_context_title"
+         android:textSize="@dimen/business_contact_context_detail_font_size"
+         android:textColor="@color/business_contact_context_text_color"
+         android:fontFamily="sans-serif-medium"/>
+ </LinearLayout>
\ No newline at end of file
diff --git a/InCallUI/res/layout/business_context_info_list_item.xml b/InCallUI/res/layout/business_context_info_list_item.xml
new file mode 100644
index 0000000..616d219
--- /dev/null
+++ b/InCallUI/res/layout/business_context_info_list_item.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+     android:layout_width="match_parent"
+     android:layout_height="wrap_content"
+     android:orientation="horizontal"
+     android:paddingEnd="@dimen/business_contact_context_end_padding">
+     <ImageView android:id="@+id/icon"
+         android:layout_width="@dimen/business_contact_context_image_size"
+         android:layout_height="@dimen/business_contact_context_image_size"
+         android:layout_marginLeft="@dimen/business_contact_context_image_padding"
+         android:layout_marginRight="@dimen/business_contact_context_image_padding"
+         android:layout_gravity="center"
+         android:scaleType="centerCrop"
+         android:tint="@color/business_contact_context_text_color"
+         android:alpha="0.8"/>
+     <LinearLayout
+         android:layout_width="match_parent"
+         android:layout_height="wrap_content"
+         android:layout_gravity="center"
+         android:orientation="vertical">
+         <TextView android:id="@+id/heading"
+             android:layout_width="match_parent"
+             android:layout_height="wrap_content"
+             android:textSize="@dimen/business_contact_context_heading_font_size"
+             android:textColor="@color/business_contact_context_text_color"
+             android:fontFamily="sans-serif-medium"/>
+         <TextView android:id="@+id/detail"
+             android:layout_width="match_parent"
+             android:layout_height="wrap_content"
+             android:textSize="@dimen/business_contact_context_detail_font_size"
+             android:textColor="@color/business_contact_context_text_color"
+             android:fontFamily="sans-serif-medium"/>
+     </LinearLayout>
+ </LinearLayout>
\ No newline at end of file
diff --git a/InCallUI/res/layout/call_card_fragment.xml b/InCallUI/res/layout/call_card_fragment.xml
index dabba76..760e4e2 100644
--- a/InCallUI/res/layout/call_card_fragment.xml
+++ b/InCallUI/res/layout/call_card_fragment.xml
@@ -18,131 +18,150 @@
 
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:layout_alignParentTop="true"
-    android:layout_alignParentStart="true">
-
-    <!-- The main content of the CallCard is either one or two "call info"
-         blocks, depending on whether one or two lines are in use.
-
-         The call_info blocks are stacked vertically inside a CallCard (LinearLayout),
-         each with layout_weight="1".  If only one line is in use (i.e. the
-         common case) then the 2nd call info will be GONE and thus the 1st one
-         will expand to fill the full height of the CallCard. -->
-
-    <!-- Primary "call card" block, for the foreground call. -->
+    android:layout_height="match_parent">
     <LinearLayout
-        android:id="@+id/primary_call_info_container"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:elevation="@dimen/primary_call_elevation"
-        android:layout_centerHorizontal="true"
-        android:background="@color/incall_call_banner_background_color"
-        android:paddingTop="@dimen/call_banner_primary_call_container_top_padding"
-        android:clipChildren="false"
-        android:clipToPadding="false">
+        android:layout_height="match_parent"
+        android:orientation="vertical">
 
-        <include layout="@layout/primary_call_info" />
-
-        <fragment android:name="com.android.incallui.CallButtonFragment"
-            android:id="@+id/callButtonFragment"
+        <!-- Primary "call card" block, for the foreground call. -->
+        <LinearLayout
+            android:id="@+id/primary_call_info_container"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content" />
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:orientation="vertical"
+            android:elevation="@dimen/primary_call_elevation"
+            android:background="@color/incall_call_banner_background_color"
+            android:paddingTop="@dimen/call_banner_primary_call_container_top_padding"
+            android:clipChildren="false"
+            android:clipToPadding="false"
+            android:gravity="bottom">
 
-        <TextView android:id="@+id/connectionServiceMessage"
+            <include layout="@layout/primary_call_info"
+                android:layout_centerHorizontal="true" />
+
+            <fragment android:name="com.android.incallui.CallButtonFragment"
+                android:id="@+id/callButtonFragment"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+
+            <TextView android:id="@+id/connectionServiceMessage"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:visibility="gone"
+                android:padding="@dimen/call_banner_side_padding"
+                android:background="@android:color/white" />
+
+        </LinearLayout>
+
+        <RelativeLayout
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:textAppearance="?android:attr/textAppearanceMedium"
-            android:visibility="gone"
-            android:padding="@dimen/call_banner_side_padding"
-            android:background="@android:color/white" />
+            android:layout_height="0dp"
+            android:layout_weight="2">
+
+            <FrameLayout
+                android:layout_height="match_parent"
+                android:layout_width="match_parent"
+                android:id="@+id/call_card_content">
+
+                <!-- Contact photo for primary call info -->
+                <ImageView android:id="@+id/photoLarge"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:scaleType="centerCrop"
+                    android:importantForAccessibility="no"
+                    android:background="@color/incall_photo_background_color"
+                    android:src="@drawable/img_no_image_automirrored" />
+
+                <!-- Call context -->
+                <LinearLayout
+                    android:id="@+id/contact_context"
+                    android:layout_height="match_parent"
+                    android:layout_width="match_parent"
+                    android:orientation="vertical"
+                    android:background="@color/incall_background_color"
+                    android:visibility="gone">
+                    <TextView android:id="@+id/contactContextTitle"
+                        android:textSize="@dimen/contact_context_title_text_size"
+                        android:textColor="@color/contact_context_title_text_color"
+                        android:fontFamily="sans-serif-medium"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center_horizontal"
+                        android:layout_marginBottom="@dimen/contact_context_title_margin_bottom"/>
+                    <ListView android:id="@+id/contactContextInfo"
+                         android:layout_width="match_parent"
+                         android:layout_height="match_parent"
+                         android:divider="@null"
+                         android:dividerHeight="@dimen/contact_context_list_item_padding"/>
+                </LinearLayout>
+            </FrameLayout>
+
+            <fragment android:name="com.android.incallui.VideoCallFragment"
+                android:id="@+id/videoCallFragment"
+                android:layout_alignParentTop="true"
+                android:layout_gravity="top|center_horizontal"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent" />
+
+            <!-- Progress spinner, useful for indicating pending operations such as upgrade to video. -->
+            <FrameLayout
+                android:id="@+id/progressSpinner"
+                android:background="#63000000"
+                android:layout_width="fill_parent"
+                android:layout_height="fill_parent"
+                android:layout_centerHorizontal="true"
+                android:layout_centerVertical="true"
+                android:visibility="gone">
+
+                <ProgressBar
+                    android:id="@+id/progress_bar"
+                    style="@android:style/Widget.Material.ProgressBar"
+                    android:layout_gravity="center"
+                    android:layout_width="48dp"
+                    android:layout_height="48dp"
+                    android:indeterminate="true" />
+
+            </FrameLayout>
+
+
+            <include layout="@layout/manage_conference_call_button"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+
+            <!-- Placeholder for various fragments that are added dynamically underneath the caller info. -->
+            <FrameLayout
+                android:id="@+id/answer_and_dialpad_container"
+                android:layout_gravity="bottom|center_horizontal"
+                android:layout_alignParentBottom="true"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:elevation="@dimen/dialpad_elevation" />
+
+            <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_alignParentBottom="true"
+                android:layout_centerHorizontal="true"
+                android:layout_marginBottom="@dimen/end_call_button_margin_bottom">
+
+                <ImageButton android:id="@+id/floating_end_call_action_button"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:background="@drawable/end_call_background"
+                    android:src="@drawable/fab_ic_end_call"
+                    android:scaleType="center"
+                    android:contentDescription="@string/onscreenEndCallText" />
+
+            </FrameLayout>
+
+        </RelativeLayout>
 
     </LinearLayout>
-
-    <FrameLayout
-        android:layout_height="match_parent"
-        android:layout_width="match_parent"
-        android:layout_below="@id/primary_call_info_container"
-        android:id="@+id/call_card_content">
-
-        <!-- Contact photo for primary call info -->
-        <ImageView android:id="@+id/photo"
-            android:layout_below="@id/primary_call_info_container"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_gravity="center_vertical"
-            android:gravity="top|center_horizontal"
-            android:scaleType="centerCrop"
-            android:importantForAccessibility="no"
-            android:background="@android:color/white"
-            android:src="@drawable/img_no_image_automirrored" />
-
-    </FrameLayout>
-
-    <fragment android:name="com.android.incallui.VideoCallFragment"
-        android:id="@+id/videoCallFragment"
-        android:layout_alignParentTop="true"
-        android:layout_gravity="top|center_horizontal"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent" />
-
-    <!-- Progress spinner, useful for indicating pending operations such as upgrade to video. -->
-    <FrameLayout
-        android:id="@+id/progressSpinner"
-        android:layout_below="@id/primary_call_info_container"
-        android:background="#63000000"
-        android:layout_width="fill_parent"
-        android:layout_height="fill_parent"
-        android:layout_centerHorizontal="true"
-        android:layout_centerVertical="true"
-        android:visibility="gone">
-
-        <ProgressBar
-            android:id="@+id/progress_bar"
-            style="@android:style/Widget.Material.ProgressBar"
-            android:layout_gravity="center"
-            android:layout_width="48dp"
-            android:layout_height="48dp"
-            android:indeterminate="true" />
-
-    </FrameLayout>
-
     <!-- Secondary "Call info" block, for the background ("on hold") call. -->
     <include layout="@layout/secondary_call_info" />
-
-    <include layout="@layout/manage_conference_call_button"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_below="@id/primary_call_info_container" />
-
-    <!-- Placeholder for various fragments that are added dynamically underneath the caller info. -->
-    <FrameLayout
-        android:id="@+id/answer_and_dialpad_container"
-        android:layout_below="@id/primary_call_info_container"
-        android:layout_gravity="bottom|center_horizontal"
-        android:layout_alignParentBottom="true"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:elevation="@dimen/dialpad_elevation" />
-
-    <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_centerHorizontal="true"
-        android:layout_marginBottom="@dimen/end_call_button_margin_bottom"
-        android:layout_alignParentBottom="true" >
-
-        <ImageButton android:id="@+id/floating_end_call_action_button"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="@drawable/end_call_background"
-            android:src="@drawable/fab_ic_end_call"
-            android:scaleType="center"
-            android:contentDescription="@string/onscreenEndCallText" />
-
-    </FrameLayout>
-
-</RelativeLayout>
+</RelativeLayout>
\ No newline at end of file
diff --git a/InCallUI/res/layout/incall_screen.xml b/InCallUI/res/layout/incall_screen.xml
index d46778c..3922ea0 100644
--- a/InCallUI/res/layout/incall_screen.xml
+++ b/InCallUI/res/layout/incall_screen.xml
@@ -18,5 +18,6 @@
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:background="@android:color/black"
     android:id="@+id/main" >
 </FrameLayout>
diff --git a/InCallUI/res/layout/person_context_info_list_item.xml b/InCallUI/res/layout/person_context_info_list_item.xml
new file mode 100644
index 0000000..4f973d5
--- /dev/null
+++ b/InCallUI/res/layout/person_context_info_list_item.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+     android:layout_width="match_parent"
+     android:layout_height="match_parent"
+     android:paddingRight="@dimen/person_contact_context_horizontal_padding"
+     android:paddingLeft="@dimen/person_contact_context_horizontal_padding">
+     <TextView android:id="@+id/message"
+         android:layout_width="wrap_content"
+         android:layout_height="wrap_content"
+         android:paddingLeft="@dimen/person_contact_context_message_horizontal_padding"
+         android:paddingRight="@dimen/person_contact_context_message_horizontal_padding"
+         android:paddingTop="@dimen/person_contact_context_message_vertical_padding"
+         android:paddingBottom="@dimen/person_contact_context_message_vertical_padding"
+         android:textSize="@dimen/person_contact_context_message_text_size"
+         android:textColor="@color/person_contact_context_message_text_color"
+         android:fontFamily="sans-serif-medium"
+         android:background="@drawable/incoming_sms_background"/>
+      <TextView android:id="@+id/detail"
+         android:layout_width="wrap_content"
+         android:layout_height="wrap_content"
+         android:paddingTop="@dimen/person_contact_context_detail_padding_top"
+         android:textSize="@dimen/person_contact_context_detail_text_size"
+         android:textColor="@color/person_contact_context_detail_text_color"
+         android:fontFamily="sans-serif-medium"
+         android:layout_below="@id/message"/>
+</RelativeLayout>
\ No newline at end of file
diff --git a/InCallUI/res/layout/primary_call_info.xml b/InCallUI/res/layout/primary_call_info.xml
index 8f78440..629d220 100644
--- a/InCallUI/res/layout/primary_call_info.xml
+++ b/InCallUI/res/layout/primary_call_info.xml
@@ -21,178 +21,201 @@
     other status info.  This info is shown as a "banner" overlaid across the top of contact photo.
     -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/primary_call_banner"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical"
+    android:layout_height="0dp"
+    android:layout_weight="1"
+    android:orientation="horizontal"
     android:minHeight="@dimen/call_banner_height"
     android:paddingStart="@dimen/call_banner_side_padding"
     android:paddingEnd="@dimen/call_banner_side_padding"
-    android:clipChildren="false"
-    android:clipToPadding="false"
     android:animateLayoutChanges="true"
     android:gravity="center">
 
-    <LinearLayout android:id="@+id/callSubjectLayout"
-                  android:layout_width="match_parent"
-                  android:layout_height="wrap_content"
-                  android:orientation="horizontal"
-                  android:clipChildren="false"
-                  android:clipToPadding="false">
-
-        <TextView android:id="@+id/callSubject"
-                  android:layout_width="wrap_content"
-                  android:layout_height="wrap_content"
-                  android:textAlignment="viewStart"
-                  android:textAppearance="?android:attr/textAppearanceSmall"
-                  android:textColor="@color/incall_call_banner_background_color"
-                  android:textSize="@dimen/call_label_text_size"
-                  android:background="@drawable/subject_bubble"
-                  android:maxLines="2"
-                  android:ellipsize="end"
-                  android:singleLine="false"
-                  android:visibility="gone" />
-    </LinearLayout>
-
-    <LinearLayout android:id="@+id/callStateButton"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
+    <LinearLayout
+        android:id="@+id/primary_call_banner"
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="1"
+        android:orientation="vertical"
         android:clipChildren="false"
-        android:clipToPadding="false">
+        android:clipToPadding="false"
+        android:gravity="center">
 
-        <!-- Subscription provider or WiFi calling icon displayed to the left of the label -->
-        <ImageView android:id="@+id/callStateIcon"
-            android:layout_width="24dp"
-            android:layout_height="match_parent"
-            android:layout_marginEnd="10dp"
-            android:tint="@color/incall_accent_color"
-            android:alpha="0.0"
-            android:scaleType="fitCenter"
-            android:visibility="gone" />
+        <LinearLayout android:id="@+id/callSubjectLayout"
+                      android:layout_width="match_parent"
+                      android:layout_height="wrap_content"
+                      android:orientation="horizontal"
+                      android:clipChildren="false"
+                      android:clipToPadding="false">
 
-        <ImageView android:id="@+id/videoCallIcon"
-            android:src="@drawable/ic_toolbar_video"
-            android:layout_width="16dp"
-            android:layout_height="match_parent"
-            android:layout_marginEnd="16dp"
-            android:baselineAlignBottom="true"
-            android:tint="@color/incall_accent_color"
-            android:scaleType="center"
-            android:visibility="gone" />
+            <TextView android:id="@+id/callSubject"
+                      android:layout_width="wrap_content"
+                      android:layout_height="wrap_content"
+                      android:textAlignment="viewStart"
+                      android:textAppearance="?android:attr/textAppearanceSmall"
+                      android:textColor="@color/incall_call_banner_background_color"
+                      android:textSize="@dimen/call_label_text_size"
+                      android:background="@drawable/subject_bubble"
+                      android:maxLines="2"
+                      android:ellipsize="end"
+                      android:singleLine="false"
+                      android:visibility="gone" />
+        </LinearLayout>
 
-        <com.android.phone.common.widget.ResizingTextTextView
-            xmlns:ex="http://schemas.android.com/apk/res-auto"
-            android:id="@+id/callStateLabel"
+        <LinearLayout android:id="@+id/callStateButton"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:textAlignment="viewStart"
-            android:textAppearance="?android:attr/textAppearanceLarge"
-            android:textColor="@color/incall_accent_color"
-            android:textSize="@dimen/call_status_text_size"
-            android:alpha="0.7"
-            android:singleLine="true"
-            android:gravity="start"
-            android:ellipsize="end"
-            ex:resizing_text_min_size="@dimen/call_status_text_min_size" />
+            android:orientation="horizontal"
+            android:clipChildren="false"
+            android:clipToPadding="false">
 
-    </LinearLayout>
+            <!-- Subscription provider or WiFi calling icon displayed to the left of the label -->
+            <ImageView android:id="@+id/callStateIcon"
+                android:layout_width="24dp"
+                android:layout_height="match_parent"
+                android:layout_marginEnd="10dp"
+                android:tint="@color/incall_accent_color"
+                android:alpha="0.0"
+                android:scaleType="fitCenter"
+                android:visibility="gone" />
 
-    <!-- Name (or the phone number, if we don't have a name to display). -->
-    <com.android.phone.common.widget.ResizingTextTextView
-        xmlns:ex="http://schemas.android.com/apk/res-auto"
-        android:id="@+id/name"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="-5dp"
-        android:fontFamily="sans-serif-light"
-        android:textAlignment="viewStart"
-        android:textAppearance="?android:attr/textAppearanceLarge"
-        android:textSize="@dimen/call_name_text_size"
-        android:singleLine="true"
-        ex:resizing_text_min_size="@dimen/call_name_text_min_size" />
+            <ImageView android:id="@+id/videoCallIcon"
+                android:src="@drawable/ic_toolbar_video"
+                android:layout_width="16dp"
+                android:layout_height="match_parent"
+                android:layout_marginEnd="16dp"
+                android:baselineAlignBottom="true"
+                android:tint="@color/incall_accent_color"
+                android:scaleType="center"
+                android:visibility="gone" />
 
+            <com.android.phone.common.widget.ResizingTextTextView
+                xmlns:ex="http://schemas.android.com/apk/res-auto"
+                android:id="@+id/callStateLabel"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:textAlignment="viewStart"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:textColor="@color/incall_accent_color"
+                android:textSize="@dimen/call_status_text_size"
+                android:alpha="0.7"
+                android:singleLine="true"
+                android:gravity="start"
+                android:ellipsize="end"
+                ex:resizing_text_min_size="@dimen/call_status_text_min_size" />
 
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        android:clipChildren="false"
-        android:clipToPadding="false">
+        </LinearLayout>
 
-        <ImageView android:id="@+id/hdAudioIcon"
-            android:src="@drawable/ic_hd_24dp"
-            android:layout_width="24dp"
-            android:layout_height="match_parent"
-            android:layout_marginEnd="8dp"
-            android:tint="@color/incall_call_banner_subtext_color"
-            android:scaleType="fitCenter"
-            android:visibility="gone" />
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content">
 
-        <ImageView android:id="@+id/forwardIcon"
-            android:src="@drawable/ic_forward_white_24dp"
-            android:layout_width="24dp"
-            android:layout_height="match_parent"
-            android:layout_marginEnd="8dp"
-            android:tint="@color/incall_call_banner_subtext_color"
-            android:scaleType="fitCenter"
-            android:visibility="gone" />
+            <!-- Name (or the phone number, if we don't have a name to display). -->
+            <com.android.phone.common.widget.ResizingTextTextView
+                xmlns:ex="http://schemas.android.com/apk/res-auto"
+                android:id="@+id/name"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="-5dp"
+                android:fontFamily="sans-serif-light"
+                android:textAlignment="viewStart"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:textSize="@dimen/call_name_text_size"
+                android:singleLine="true"
+                ex:resizing_text_min_size="@dimen/call_name_text_min_size" />
 
-        <!-- Label (like "Mobile" or "Work", if present) and phone number, side by side -->
-        <LinearLayout android:id="@+id/labelAndNumber"
-            android:layout_width="wrap_content"
+            <!-- Contact photo for primary call info -->
+            <ImageView android:id="@+id/photoSmall"
+                android:layout_width="@dimen/contact_context_small_photo_size"
+                android:layout_height="@dimen/contact_context_small_photo_size"
+                android:layout_centerVertical="true"
+                android:layout_alignParentEnd="true"
+                android:scaleType="centerCrop"
+                android:importantForAccessibility="no"
+                android:src="@drawable/img_no_image_automirrored" />
+        </RelativeLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:orientation="horizontal">
+            android:orientation="horizontal"
+            android:clipChildren="false"
+            android:clipToPadding="false">
 
-            <TextView android:id="@+id/label"
+            <ImageView android:id="@+id/hdAudioIcon"
+                android:src="@drawable/ic_hd_24dp"
+                android:layout_width="24dp"
+                android:layout_height="match_parent"
+                android:layout_marginEnd="8dp"
+                android:tint="@color/incall_call_banner_subtext_color"
+                android:scaleType="fitCenter"
+                android:visibility="gone" />
+
+            <ImageView android:id="@+id/forwardIcon"
+                android:src="@drawable/ic_forward_white_24dp"
+                android:layout_width="24dp"
+                android:layout_height="match_parent"
+                android:layout_marginEnd="8dp"
+                android:tint="@color/incall_call_banner_subtext_color"
+                android:scaleType="fitCenter"
+                android:visibility="gone" />
+
+            <!-- Label (like "Mobile" or "Work", if present) and phone number, side by side -->
+            <LinearLayout android:id="@+id/labelAndNumber"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:orientation="horizontal">
+
+                <TextView android:id="@+id/label"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="0"
+                    android:textAppearance="?android:attr/textAppearanceSmall"
+                    android:textColor="@color/incall_call_banner_subtext_color"
+                    android:textSize="@dimen/call_label_text_size"
+                    android:singleLine="true"
+                    android:textDirection="ltr"
+                    android:visibility="gone" />
+
+                <TextView android:id="@+id/phoneNumber"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:layout_marginStart="6dp"
+                    android:textAlignment="viewStart"
+                    android:textAppearance="?android:attr/textAppearanceSmall"
+                    android:textColor="@color/incall_call_banner_subtext_color"
+                    android:textSize="@dimen/call_label_text_size"
+                    android:singleLine="false"
+                    android:visibility="gone" />
+
+            </LinearLayout>
+
+            <!-- Elapsed time indication for a call in progress. -->
+            <TextView android:id="@+id/elapsedTime"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_weight="0"
+                android:textAlignment="viewEnd"
                 android:textAppearance="?android:attr/textAppearanceSmall"
                 android:textColor="@color/incall_call_banner_subtext_color"
                 android:textSize="@dimen/call_label_text_size"
                 android:singleLine="true"
-                android:textDirection="ltr"
-                android:visibility="gone" />
-
-            <TextView android:id="@+id/phoneNumber"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:layout_marginStart="6dp"
-                android:textAlignment="viewStart"
-                android:textAppearance="?android:attr/textAppearanceSmall"
-                android:textColor="@color/incall_call_banner_subtext_color"
-                android:textSize="@dimen/call_label_text_size"
-                android:singleLine="false"
                 android:visibility="gone" />
 
         </LinearLayout>
 
-        <!-- Elapsed time indication for a call in progress. -->
-        <TextView android:id="@+id/elapsedTime"
+        <!-- Call type indication: a special label and/or branding
+         for certain kinds of calls (like "SIP call" for a SIP call.) -->
+        <TextView android:id="@+id/callTypeLabel"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_weight="0"
-            android:textAlignment="viewEnd"
             android:textAppearance="?android:attr/textAppearanceSmall"
-            android:textColor="@color/incall_call_banner_subtext_color"
-            android:textSize="@dimen/call_label_text_size"
-            android:singleLine="true"
+            android:textColor="@color/incall_call_banner_text_color"
+            android:maxLines="1"
+            android:ellipsize="end"
             android:visibility="gone" />
 
     </LinearLayout>
-
-    <!-- Call type indication: a special label and/or branding
-     for certain kinds of calls (like "SIP call" for a SIP call.) -->
-    <TextView android:id="@+id/callTypeLabel"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceSmall"
-        android:textColor="@color/incall_call_banner_text_color"
-        android:maxLines="1"
-        android:ellipsize="end"
-        android:visibility="gone" />
-
 </LinearLayout>  <!-- End of call_banner -->
diff --git a/InCallUI/res/values-af/strings.xml b/InCallUI/res/values-af/strings.xml
index 345cf91..12aeb4f 100644
--- a/InCallUI/res/values-af/strings.xml
+++ b/InCallUI/res/values-af/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Video-oproep"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Versoek tans video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Kan nie video-oproep koppel nie"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video-oproep (Wag tans)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Videoversoek is verwerp"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Jou terugbelnommer\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Jou noodterugbelnommer\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Bel"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Verstek klank (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Foon-luitoon"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibreer wanneer lui"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Belblad-outovoltooi"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Luitoon en vibreer"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Bestuur konferensie-oproep"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Noodnommer"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> uur</item>
       <item quantity="one">1 uur</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profielfoto"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera af"</string>
+    <string name="child_number" msgid="7437330400723805538">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Nota is gestuur"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Onlangse boodskappe"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Besigheidinligting"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> myl ver"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km ver"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Maak môre om <xliff:g id="OPEN_TIME">%s</xliff:g> oop"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Maak vandag om <xliff:g id="OPEN_TIME">%s</xliff:g> oop"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Maak om <xliff:g id="CLOSE_TIME">%s</xliff:g> toe"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Het vandag om <xliff:g id="CLOSE_TIME">%s</xliff:g> toegemaak"</string>
+    <string name="open_now" msgid="6439301193613349163">"Nou oop"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Nou gesluit"</string>
 </resources>
diff --git a/InCallUI/res/values-am/strings.xml b/InCallUI/res/values-am/strings.xml
index 4a321d4..44e71c0 100644
--- a/InCallUI/res/values-am/strings.xml
+++ b/InCallUI/res/values-am/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"የቪዲዮ ጥሪ"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"ቪድዮ በመጠየቅ ላይ"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"የቪዲዮ ጥሪን ማገናኘት አልተቻለም"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"የቪዲዮ ጥሪ (ላፍታ ቆሟል)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"የቪዲዮ ጥያቄ ውድቅ ተደርጓል"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"የእርስዎ የመልሶ መደወያ ቁጥር\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"የእርስዎ የድንገተኛ አደጋ መልሶ መደወያ ቁጥር\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"በመደወል ላይ"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"ነባሪ ድምጽ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"የስልክ ጥሪ ድምፅ"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"በሚደወልበት ጊዜ ንዘር"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"የስልክ ሰሌዳ ራስ-አጠናቅቅ"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"የደወል ቅላጼ እና ንዘረት"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"የስብሰባስልክ ጥሪ አደራጅ"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"የአደጋ ጊዜ ቁጥር"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ሰዓቶች</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ሰዓቶች</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"መገለጫ ፎቶ"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"ካሜራ ጠፍቷል"</string>
+    <string name="child_number" msgid="7437330400723805538">"በ<xliff:g id="CHILD_NUMBER">%s</xliff:g> በኩል"</string>
+    <string name="note_sent" msgid="3548700178238244595">"ማስታወሻ ተልኳል"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"የቅርብ ጊዜ መልዕክቶች"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"የንግድ መረጃ"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> ማይል ርቀት ላይ"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> ኪሜ ርቀት ላይ"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>፣ <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>፣ <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"ነገ <xliff:g id="OPEN_TIME">%s</xliff:g> ላይ ይከፈታል"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"ዛሬ <xliff:g id="OPEN_TIME">%s</xliff:g> ላይ ይከፈታል"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g> ላይ ይዘጋል"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"ዛሬ <xliff:g id="CLOSE_TIME">%s</xliff:g> ላይ ተዘግቷል"</string>
+    <string name="open_now" msgid="6439301193613349163">"አሁን ክፍት ነው"</string>
+    <string name="closed_now" msgid="9175774453982778909">"አሁን ዝግ ነው"</string>
 </resources>
diff --git a/InCallUI/res/values-ar/strings.xml b/InCallUI/res/values-ar/strings.xml
index 06bb7e2..a9fcb64 100644
--- a/InCallUI/res/values-ar/strings.xml
+++ b/InCallUI/res/values-ar/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"مكالمة فيديو"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"جارٍ طلب الفيديو"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"يتعذر إجراء مكالمة فيديو"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"مكالمة فيديو (تم إيقافها مؤقتًا)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"تم رفض طلب مكالمة الفيديو"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"رقم معاودة الاتصال\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"رقم معاودة اتصال الطوارئ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"جارٍ الطلب"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"الصوت الافتراضي (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"نغمة رنين الهاتف"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"اهتزاز عند الرنين"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"الإكمال التلقائي للوحة الطلب"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"نغمة الرنين والاهتزاز"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"إدارة مكالمة جماعية"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"رقم الطوارئ"</string>
@@ -180,4 +179,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> من الساعات</item>
       <item quantity="one">ساعة واحدة</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"صورة الملف الشخصي"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"تم إيقاف الكاميرا"</string>
+    <string name="child_number" msgid="7437330400723805538">"عبر <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"تم إرسال الملاحظة"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"الرسائل الأخيرة"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"معلومات النشاط التجاري"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"على بُعد <xliff:g id="DISTANCE">%.1f</xliff:g> ميل"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"على بُعد <xliff:g id="DISTANCE">%.1f</xliff:g> كم"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>، <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>، <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"مفتوح غدًا في <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"مفتوح اليوم في <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"مغلق في <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"مغلق اليوم في <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"مفتوح الآن"</string>
+    <string name="closed_now" msgid="9175774453982778909">"مغلق الآن"</string>
 </resources>
diff --git a/InCallUI/res/values-az-rAZ/strings.xml b/InCallUI/res/values-az-rAZ/strings.xml
index 1690af8..96c5c93 100644
--- a/InCallUI/res/values-az-rAZ/strings.xml
+++ b/InCallUI/res/values-az-rAZ/strings.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
+<!-- 
   ~ Copyright (C) 2013 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,29 +21,9 @@
     <string name="onHold" msgid="9035493194749959955">"Gözləmə mövqeyində"</string>
     <string name="unknown" msgid="6878797917991465859">"Naməlum"</string>
     <string name="private_num" msgid="6713286113000232309">"Şəxsi nömrə"</string>
-    <string name="payphone" msgid="1931775086311769314">"Telefon ödənişi"</string>
-    <string name="callFailed_userBusy" msgid="8851106999809294904">"Xətt məşğuldur"</string>
-    <string name="callFailed_congestion" msgid="8737761615702718375">"Şəbəkə məşğuldur"</string>
-    <string name="callFailed_timedOut" msgid="7590961703135543346">"Cavab yoxdur, vaxt keçdi"</string>
-    <string name="callFailed_server_unreachable" msgid="2133506577423869729">"Server əlçatmazdır"</string>
-    <string name="callFailed_number_unreachable" msgid="7632566442515734778">"Nömrə əlçatmazdır"</string>
-    <string name="callFailed_invalid_credentials" msgid="8226835346196775378">"Yanlış istifadəçi adı və ya parol"</string>
-    <string name="callFailed_out_of_network" msgid="8740943329772180507">"Şəbəkədən kənar zəng edilib"</string>
-    <string name="callFailed_server_error" msgid="5717915213586193217">"Server xətası. Yenidən cəhd edin."</string>
-    <string name="callFailed_noSignal" msgid="1889803273616031933">"Siqnal yoxdur"</string>
-    <string name="callFailed_limitExceeded" msgid="4958065157970101491">"ACM limiti keçilib"</string>
-    <string name="callFailed_powerOff" msgid="2766035859391549713">"Radio deaktivdir"</string>
-    <string name="callFailed_simError" msgid="4476360200030635828">"SIM və ya SIM xətası yoxdur"</string>
-    <string name="callFailed_outOfService" msgid="4825791466557236225">"Xidmət zonasından kənarda"</string>
-    <string name="callFailed_fdn_only" msgid="2850204579765430641">"Gedən zənglər FDN tərəfindən məhdudlaşdırılıb."</string>
-    <string name="callFailed_cb_enabled" msgid="3686963693629739680">"Zənglər qadağan olduğu halda zəng edə bilməzsiniz."</string>
-    <string name="callFailed_dsac_restricted" msgid="2180223622768522345">"Bütün zənglər giriş kontrolu ilə məhdudlaşdırılıb."</string>
-    <string name="callFailed_dsac_restricted_emergency" msgid="4353654268813314466">"Təcili zənglər giriş kontrolu ilə məhdudlaşdırılıb."</string>
-    <string name="callFailed_dsac_restricted_normal" msgid="2680774510252408620">"Normal zənglər giriş kontrolu ilə məhdudlaşdırılıb."</string>
-    <string name="callFailed_unobtainable_number" msgid="4736290912891155067">"Yanlış nömrə"</string>
+    <string name="payphone" msgid="4793877574636445118">"Taksofon"</string>
     <string name="confCall" msgid="1904840547188336828">"Konfrans zəngi"</string>
-    <string name="call_lost" msgid="317670617901479594">"Zəng itdi."</string>
-    <string name="ok" msgid="3811371167865772377">"OK"</string>
+    <string name="call_lost" msgid="6183862117003999578">"Zəng bitdi"</string>
     <string name="audio_mode_speaker" msgid="27649582100085266">"Dinamik"</string>
     <string name="audio_mode_earpiece" msgid="4156527186373869107">"Dəstək qulaqlığı"</string>
     <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Simli qulaqlıq"</string>
@@ -57,7 +37,7 @@
     <string name="caller_manage_header" msgid="3231519674734638786">"Konfrans zəngi <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
     <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Səsli poçt nömrəsi"</string>
     <string name="card_title_dialing" msgid="5769417478498348054">"Nömrə yığılır"</string>
-    <string name="card_title_redialing" msgid="4831412164303596395">"Yenidən sınanılır"</string>
+    <string name="card_title_redialing" msgid="8253487008234167266">"Yenidən yığır"</string>
     <string name="card_title_conf_call" msgid="1162980346189744501">"Konfrans zəngi"</string>
     <string name="card_title_incoming_call" msgid="7364539451234646909">"Gələn zəng"</string>
     <string name="card_title_call_ended" msgid="5544730338889702298">"Zəng sona çatdı"</string>
@@ -65,77 +45,143 @@
     <string name="card_title_hanging_up" msgid="3999101620995182450">"Dəstək asılır"</string>
     <string name="card_title_in_call" msgid="6346543933068225205">"zəngdadır"</string>
     <string name="card_title_my_phone_number" msgid="112428362494434191">"Mənim nömrəm <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="297586766381973954">"Video qoşulur"</string>
+    <string name="card_title_video_call" msgid="5898636679563320218">"Video zəng"</string>
+    <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Video sorğusu göndərilir"</string>
+    <string name="card_title_video_call_error" msgid="9000555878389539225">"Video zəngə qoşulmaq mümkün deyil"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Video sorğusu rədd edildi"</string>
+    <string name="card_title_callback_number" msgid="7307938207564217293">"Cavab zəngi üçün nömrə\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Təcili cavab zəngi nömrəniz\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Nömrə yığılır"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Buraxılmış zəng"</string>
     <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Buraxılmış zənglər"</string>
     <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> buraxılmış zənglər"</string>
     <string name="notification_missedCallTicker" msgid="504686252427747209">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> tərəfindən zəng buraxılıb"</string>
     <string name="notification_ongoing_call" msgid="7068688957273482989">"Davam edən zəng"</string>
+    <string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"Davam edən Wi-Fi zəngi"</string>
     <string name="notification_on_hold" msgid="3480694969511790465">"Gözləmə mövqeyində"</string>
     <string name="notification_incoming_call" msgid="2820429205043529642">"Zəng gəlir"</string>
+    <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"Gələn Wi-Fi zəngi"</string>
+    <string name="notification_incoming_video_call" msgid="7356836933934464805">"Gələn video zəng"</string>
+    <string name="notification_requesting_video_call" msgid="1405576812892369451">"Gələn video çağrı"</string>
     <string name="notification_voicemail_title" msgid="8933468752045550523">"Yeni səsli poçt"</string>
     <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Yeni səsli poçt (<xliff:g id="COUNT">%d</xliff:g>)"</string>
     <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Yığın <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
     <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Səsli poçt nömrəsi naməlumdur"</string>
     <string name="notification_network_selection_title" msgid="4224455487793492772">"Xidmət yoxdur"</string>
     <string name="notification_network_selection_text" msgid="2607085729661923269">"Seçilmiş (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) şəbəkə əlçatmazdır"</string>
+    <string name="notification_action_answer" msgid="6700362365135365143">"Cavab"</string>
     <string name="notification_action_end_call" msgid="6069460915123531620">"Dəstəyi qoyun"</string>
+    <string name="notification_action_answer_video" msgid="7809271910870211729">"Videolar"</string>
+    <string name="notification_action_answer_voice" msgid="1770796916369437773">"Səs"</string>
+    <string name="notification_action_accept" msgid="2898609801209468429">"Qəbul edin"</string>
+    <string name="notification_action_dismiss" msgid="2679969397930852858">"Kənarlaşdırın"</string>
     <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Geriyə zəng"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Mesaj"</string>
     <string name="incall_error_power_off" msgid="6550191216405193368">"Zəng etmək üçün ilk olaraq Uçuş Rejimini söndürün."</string>
     <string name="incall_error_emergency_only" msgid="4678640422710818317">"Şəbəkədə qeydə alınmayıb."</string>
-    <string name="incall_error_out_of_service" msgid="8587993036435080418">"Mobil şəbəkə əlçatımlı deyil."</string>
-    <string name="incall_error_no_phone_number_supplied" msgid="4197432103471807739">"Zəng göndərilmədi, etibarlı nömrə daxil edilməyib."</string>
-    <string name="incall_error_call_failed" msgid="4313552620858880999">"Zəng göndərilmədi."</string>
+    <string name="incall_error_out_of_service" msgid="4100065333878929223">"Mobil şəbəkə əlçatan deyil"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"Zəngi yerləşdirmək üçün düzgün nömrə daxil edin."</string>
+    <string name="incall_error_call_failed" msgid="6302746943230078197">"Zəng etmək mümkün deyil."</string>
     <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMI başlanma ardıcıllığı…"</string>
-    <string name="incall_error_supp_service_unknown" msgid="2991054870745666038">"Dəstəklənməyən xidmət."</string>
-    <string name="incall_error_supp_service_switch" msgid="3503552565745872241">"Zəngləri keçirmək mümkün deyil."</string>
-    <string name="incall_error_supp_service_separate" msgid="914362338192301746">"Zəngi ayırmaq mümkün deyil."</string>
-    <string name="incall_error_supp_service_transfer" msgid="2509871374644921632">"Zəng transfer oluna bilmir."</string>
-    <string name="incall_error_supp_service_conference" msgid="2505727299596357312">"Zənglərin konfransı mümkün deyil."</string>
-    <string name="incall_error_supp_service_reject" msgid="7055164130563826216">"Zəngi rədd etmək mümkün deyil."</string>
-    <string name="incall_error_supp_service_hangup" msgid="7417583238334762737">"Zəng(ləri) buraxmaq mümkün deyil."</string>
-    <string name="incall_call_type_label_sip" msgid="2310958283037924371">"İnternet zəng"</string>
+    <string name="incall_error_supp_service_unknown" msgid="323435289607131929">"Xidmət dəstəklənmir."</string>
+    <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"Zəngləri keçirmək mümkün deyil."</string>
+    <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Zəngi ayırmaq mümkün deyil."</string>
+    <string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Ötürmək mümkün deyil."</string>
+    <string name="incall_error_supp_service_conference" msgid="7010354362202271726">"Konfrans keçirmək mümkün deyil."</string>
+    <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Zəngi rədd etmək mümkün deyil."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Zəngləri buraxmaq mümkün deyil."</string>
+    <string name="incall_call_type_label_sip" msgid="4931428719494190371">"SIP çağrısı"</string>
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Təcili zəng"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Radio yandırılır ..."</string>
-    <string name="emergency_enable_radio_dialog_retry" msgid="3724423402363063736">"Xidmət sahəsindən kənardadır, yenidən sınanılır…"</string>
-    <string name="dial_emergency_error" msgid="7969515493359619960">"Zəng göndərilmədi. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> təcili nömrə deyil!"</string>
-    <string name="dial_emergency_empty_error" msgid="5556166819619323893">"Zəng göndərilmədi. Təcili nömrəyə zəng vurun!"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Xidmət yoxdur. Yenidən cəhd edilir…"</string>
+    <string name="dial_emergency_error" msgid="1509085166367420355">"Zəng etmək mümkün deyil. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> fövqəladə nömrə deyil."</string>
+    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Zəng etmək mümkün deyil. Fövqəladə nömrəni yığ."</string>
     <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Yığmaq üçün klaviatura istifadə edin"</string>
-    <string name="onscreenHoldText" msgid="2285258239691145872">"Saxlayın"</string>
-    <string name="onscreenEndCallText" msgid="4403855834875398585">"Son"</string>
+    <string name="onscreenHoldText_unselected" msgid="7092499303393171276">"Zəngi gözlədin"</string>
+    <string name="onscreenHoldText_selected" msgid="7127901498507384249">"Zəngə davam edin"</string>
+    <string name="onscreenEndCallText" msgid="9039601192595655846">"Zəngi bitirin"</string>
     <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Yığım paneli"</string>
     <string name="onscreenMuteText" msgid="5011369181754261374">"Susdurun"</string>
     <string name="onscreenAddCallText" msgid="5140385634712287403">"Zəng əlavə edin"</string>
     <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Zəngləri birləşdirin"</string>
     <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Dəyişdirin"</string>
     <string name="onscreenManageCallsText" msgid="5473231160123254154">"Zəngləri idarə edin"</string>
-    <string name="onscreenManageConferenceText" msgid="6485935856534311346">"Konfransı idarə edin"</string>
+    <string name="onscreenManageConferenceText" msgid="6801708317570467407">"Konfrans çağrısını idarə edin"</string>
     <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
     <string name="onscreenVideoCallText" msgid="4800924186056115442">"Video zəng"</string>
+    <string name="onscreenChangeToVoiceText" msgid="5311407863653867937">"Səsli çağrıya dəyişin"</string>
+    <string name="onscreenSwitchCameraText" msgid="5324543493442787798">"Kameraya keçin"</string>
+    <string name="onscreenPauseVideoText" msgid="5663965924921429203">"Videonu durdurun"</string>
+    <string name="onscreenOverflowText" msgid="2702376562345723132">"Daha çox seçim"</string>
+    <string name="player_started" msgid="6046262510243983589">"Pleyer Başladıldı"</string>
+    <string name="player_stopped" msgid="8856926759436364963">"Pleyer Dayandırıldı"</string>
+    <string name="camera_not_ready" msgid="4955261496193316240">"Kamera hazır deyil"</string>
+    <string name="camera_ready" msgid="1903335385405807324">"Kamera hazırdır"</string>
+    <string name="unknown_call_session_event" msgid="2431061946920253582">"Naməlum zəng sessiyası"</string>
     <string name="voicemail_provider" msgid="5135942703327136909">"Xidmət"</string>
     <string name="voicemail_settings" msgid="72448049107749316">"Quraşdırma"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Ayarlanmayıb&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Digər zəng parametrləri"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> vasitəsi ilə zəng edilir"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> üzərindən"</string>
+    <string name="incoming_via_template" msgid="1696993226115570960">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> vasitəsilə gələn"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"kontakt fotosu"</string>
     <string name="goPrivate" msgid="865837794424530980">"şəxsi rejimə keçin"</string>
     <string name="selectContact" msgid="781975788478987237">"kontakt seçin"</string>
     <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Özünüzünkünü yazın"</string>
-    <string name="respond_via_sms_setting_title" msgid="3754000371039709383">"Tez cavablar"</string>
-    <string name="description_dial_button" msgid="7459705245418435351">"Yığ"</string>
-    <string name="description_delete_button" msgid="4015842181592283903">"geri düyməsi"</string>
+    <string name="custom_message_cancel" msgid="7516406059429609296">"Ləğv et"</string>
+    <string name="custom_message_send" msgid="5795754217085747742">"Göndər"</string>
     <string name="description_target_answer" msgid="7205604197797472471">"Cavab"</string>
     <string name="description_target_send_sms" msgid="2098326025587950144">"SMS göndər"</string>
     <string name="description_target_decline" msgid="4789834364389731957">"Rədd et"</string>
+    <string name="description_target_answer_video_call" msgid="3495965588512395026">"Video çağrı olaraq cavab verin"</string>
+    <string name="description_target_answer_audio_call" msgid="8396296303320994450">"Audio çağrı olaraq cavab verin"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="2894072808324604062">"Accept video request"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="4093888612888538776">"Decline video request"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="5311037889642077468">"Video ötürmə sorğusunu qəbul edin"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="3636108065510415975">"Video ötürmə sorğusunu ləğv edin"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="8668058323593087912">"Video qəbuletmə sorğusunu qəbul edin"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="2355776509656298367">"Video qəbuletmə sorğusunu ləğv edin"</string>
+    <string name="description_direction_up" msgid="4441409581444516690">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> üçün yuxarı sürüşdürün."</string>
+    <string name="description_direction_left" msgid="7129873384376533287">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> üçün sola sürüşdürün."</string>
+    <string name="description_direction_right" msgid="2122584234531957308">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> üçün sağa sürüşdürün."</string>
+    <string name="description_direction_down" msgid="4317245625565166742">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> üçün aşağı sürüşdürün."</string>
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrasiya"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrasiya"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Səs"</string>
     <string name="default_notification_description" msgid="78174796906240970">"Defolt səs (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Telefon zəng səsi"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Zəng çalanda vibrasiya olsun"</string>
-    <string name="dtmf_tone_enable_title" msgid="827601042915852989">"Yığım düymələrinin toxunuş tonları"</string>
-    <string name="dial_pad_autocomplete" msgid="494525952035761075">"Nömrə yığımı klaviaturası tamamlanması"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Zəng səsi &amp; Vibrasiya"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Konfrans zəngini idarə edin"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Təcili nömrə"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="59971978269163609">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> saniyə</item>
+      <item quantity="one">1 saniyə</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="1103289948818175408">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> dəqiqə</item>
+      <item quantity="one">1 dəqiqə</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7560637459014865969">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> saat</item>
+      <item quantity="one">1 saat</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profil fotosu"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera deaktivdir"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> vasitəsilə"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Qeyd göndərildi"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Son mesajlar"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Biznes məlumatı"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mil uzaqlıqda"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km uzaqlıqda"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Sabah saat <xliff:g id="OPEN_TIME">%s</xliff:g> açılır"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Bu gün saat <xliff:g id="OPEN_TIME">%s</xliff:g> açılır"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Saat <xliff:g id="CLOSE_TIME">%s</xliff:g> bağlanır"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Bu gün saat <xliff:g id="CLOSE_TIME">%s</xliff:g> bağlanıb"</string>
+    <string name="open_now" msgid="6439301193613349163">"İndi açın"</string>
+    <string name="closed_now" msgid="9175774453982778909">"İndi bağlandı"</string>
 </resources>
diff --git a/InCallUI/res/values-b+sr+Latn/strings.xml b/InCallUI/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 0000000..49d8999
--- /dev/null
+++ b/InCallUI/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2013 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="onHold" msgid="9035493194749959955">"Na čekanju"</string>
+    <string name="unknown" msgid="6878797917991465859">"Nepoznato"</string>
+    <string name="private_num" msgid="6713286113000232309">"Privatan broj"</string>
+    <string name="payphone" msgid="4793877574636445118">"Telefonska govornica"</string>
+    <string name="confCall" msgid="1904840547188336828">"Konferencijski poziv"</string>
+    <string name="call_lost" msgid="6183862117003999578">"Poziv je prekinut"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Zvučnik"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Slušalica telefona"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Žičane slušalice"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Želite li da pošaljete sledeće tonove?\n"</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Tonovi slanja\n"</string>
+    <string name="send_button" msgid="4106860097497818751">"Pošalji"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Da"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Ne"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Zamenite džoker znak sa"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Konferencijski poziv <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Broj govorne pošte"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Poziva se"</string>
+    <string name="card_title_redialing" msgid="8253487008234167266">"Ponovno biranje"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konferencijski poziv"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Dolazni poziv"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Poziv je završen"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Na čekanju"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Prekid veze"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"U pozivu"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Moj broj je <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="297586766381973954">"Povezivanje sa video pozivom"</string>
+    <string name="card_title_video_call" msgid="5898636679563320218">"Video poziv"</string>
+    <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Zahtevanje video poziva"</string>
+    <string name="card_title_video_call_error" msgid="9000555878389539225">"Povezivanje video poziva nije uspelo"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Zahtev za video poziv je odbijen"</string>
+    <string name="card_title_callback_number" msgid="7307938207564217293">"Broj za povratni poziv\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Broj za hitan povratni poziv\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Biranje"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Propušten poziv"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Propušteni pozivi"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"Broj propuštenih poziva: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Propušten poziv od: <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Aktuelni poziv"</string>
+    <string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"Tekući Wi-Fi poziv"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Na čekanju"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Dolazni poziv"</string>
+    <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"Dolazni Wi-Fi poziv"</string>
+    <string name="notification_incoming_video_call" msgid="7356836933934464805">"Dolazni video poziv"</string>
+    <string name="notification_requesting_video_call" msgid="1405576812892369451">"Zahtev za dolazni video poziv"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nova govorna pošta"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nova govorna pošta (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Pozovi <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Nepoznat broj govorne pošte"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Nema usluge"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Izabrana mreža (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nije dostupna"</string>
+    <string name="notification_action_answer" msgid="6700362365135365143">"Odgovori"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Prekini vezu"</string>
+    <string name="notification_action_answer_video" msgid="7809271910870211729">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="1770796916369437773">"Glasovni"</string>
+    <string name="notification_action_accept" msgid="2898609801209468429">"Prihvati"</string>
+    <string name="notification_action_dismiss" msgid="2679969397930852858">"Odbij"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Uzvrati poziv"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Poruka"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Da biste uputili poziv, prvo isključite režim rada u avionu."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Nije registrovano na mreži."</string>
+    <string name="incall_error_out_of_service" msgid="4100065333878929223">"Mobilna mreža nije dostupna."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"Da biste uputili poziv, unesite važeći broj."</string>
+    <string name="incall_error_call_failed" msgid="6302746943230078197">"Poziv nije uspeo."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Pokretanje MMI sekvence"</string>
+    <string name="incall_error_supp_service_unknown" msgid="323435289607131929">"Usluga nije podržana."</string>
+    <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"Zamena poziva nije uspela."</string>
+    <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Razdvajanje poziva nije uspelo."</string>
+    <string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Prebacivanje nije uspelo."</string>
+    <string name="incall_error_supp_service_conference" msgid="7010354362202271726">"Konferencijski poziv nije uspeo."</string>
+    <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Odbijanje poziva nije uspelo."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Uspostavljanje poziva nije uspelo."</string>
+    <string name="incall_call_type_label_sip" msgid="4931428719494190371">"SIP poziv"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Hitan poziv"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Uključivanje radija…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Nema mreže. Ponovni pokušaj…"</string>
+    <string name="dial_emergency_error" msgid="1509085166367420355">"Poziv nije uspeo. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nije broj za hitne slučajeve."</string>
+    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Poziv nije uspeo. Pozovite broj za hitne slučajeve."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Koristite tastaturu za pozivanje"</string>
+    <string name="onscreenHoldText_unselected" msgid="7092499303393171276">"Stavi poziv na čekanje"</string>
+    <string name="onscreenHoldText_selected" msgid="7127901498507384249">"Nastavi poziv"</string>
+    <string name="onscreenEndCallText" msgid="9039601192595655846">"Završi poziv"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Numerička tastatura"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Isključi zvuk"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Dodaj poziv"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Objedini pozive"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Zameni"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Upravljajte pozivima"</string>
+    <string name="onscreenManageConferenceText" msgid="6801708317570467407">"Upravljaj konf. pozivom"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Video poz."</string>
+    <string name="onscreenChangeToVoiceText" msgid="5311407863653867937">"Promeni u glasovni poziv"</string>
+    <string name="onscreenSwitchCameraText" msgid="5324543493442787798">"Promeni kameru"</string>
+    <string name="onscreenPauseVideoText" msgid="5663965924921429203">"Pauziraj video"</string>
+    <string name="onscreenOverflowText" msgid="2702376562345723132">"Još opcija"</string>
+    <string name="player_started" msgid="6046262510243983589">"Plejer je pokrenut"</string>
+    <string name="player_stopped" msgid="8856926759436364963">"Plejer je zaustavljen"</string>
+    <string name="camera_not_ready" msgid="4955261496193316240">"Kamera nije spremna"</string>
+    <string name="camera_ready" msgid="1903335385405807324">"Kamera je spremna"</string>
+    <string name="unknown_call_session_event" msgid="2431061946920253582">"Nepoznat događaj sesije poziva"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Usluga"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Podešavanje"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nije podešeno&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Druga podešavanja poziva"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Pozivanje preko <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="1696993226115570960">"Dolazna preko <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"fotografija kontakta"</string>
+    <string name="goPrivate" msgid="865837794424530980">"idi na privatno"</string>
+    <string name="selectContact" msgid="781975788478987237">"izaberite kontakt"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Napišite sami…"</string>
+    <string name="custom_message_cancel" msgid="7516406059429609296">"Otkaži"</string>
+    <string name="custom_message_send" msgid="5795754217085747742">"Pošalji"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Odgovori"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Pošalji SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Odbij"</string>
+    <string name="description_target_answer_video_call" msgid="3495965588512395026">"Odgovorite video pozivom"</string>
+    <string name="description_target_answer_audio_call" msgid="8396296303320994450">"Odgovorite audio-pozivom"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="2894072808324604062">"Prihvati zahtev za video"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="4093888612888538776">"Odbij zahtev za video"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="5311037889642077468">"Prihvati zahtev za odlazni video poziv"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="3636108065510415975">"Odbij zahtev za odlazni video poziv"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="8668058323593087912">"Prihvati zahtev za dolazni video poziv"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="2355776509656298367">"Odbij zahtev za dolazni video poziv"</string>
+    <string name="description_direction_up" msgid="4441409581444516690">"Prevucite nagore za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="7129873384376533287">"Prevucite ulevo za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="2122584234531957308">"Prevucite udesno za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="4317245625565166742">"Prevucite nadole za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibracija"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibracija"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Zvuk"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Podrazumevani zvuk (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Melodija zvona telefona"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibriraj kada zvoni"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Melodija zvona i vibracija"</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Upravljanje konferencijskim pozivom"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Broj za hitne slučajeve"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="59971978269163609">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> sekunda</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> sekunde</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekundi</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="1103289948818175408">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> minut</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> minuta</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuta</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7560637459014865969">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> sat</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> sata</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sati</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Slika profila"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera je isključena"</string>
+    <string name="child_number" msgid="7437330400723805538">"na <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Beleška je poslata"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Nedavne poruke"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Informacije o preduzeću"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"Udaljenost je <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"Udaljenost je <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Otvara se sutra u <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Otvara se danas u <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Zatvara se u <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Zatvorilo se danas u <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Trenutno otvoreno"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Trenutno zatvoreno"</string>
+</resources>
diff --git a/InCallUI/res/values-bg/strings.xml b/InCallUI/res/values-bg/strings.xml
index e7e3942..4971d8e 100644
--- a/InCallUI/res/values-bg/strings.xml
+++ b/InCallUI/res/values-bg/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Видеообаждане"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Заявява се видеовръзка"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Видеообаждането не може да се осъществи"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Видеообаждане (на пауза)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Заявката за видео е отхвърлена"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Номер за обратно обаждане\n– <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Номер за спешно обратно обаждане\n– <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Набира се"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Стандартен звук (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Мелодия на телефона"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Вибриране при звънене"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Набиране: Авт. довършване"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Мелодия и вибриране"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Управление на конферентно обаждане"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Спешен номер"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> часа</item>
       <item quantity="one">1 час</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Снимка на потребителския профил"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Камерата е изключена"</string>
+    <string name="child_number" msgid="7437330400723805538">"чрез <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Бележката е изпратена"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Скорошни съобщения"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Бизнес информация"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"На <xliff:g id="DISTANCE">%.1f</xliff:g> мили"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"На <xliff:g id="DISTANCE">%.1f</xliff:g> км"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>; <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Отваря утре в <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Отваря днес в <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Затваря в <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Затворено днес в <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"В момента работи"</string>
+    <string name="closed_now" msgid="9175774453982778909">"В момента не работи"</string>
 </resources>
diff --git a/InCallUI/res/values-bn-rBD/strings.xml b/InCallUI/res/values-bn-rBD/strings.xml
index 9274995..7e6c678 100644
--- a/InCallUI/res/values-bn-rBD/strings.xml
+++ b/InCallUI/res/values-bn-rBD/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"ভিডিও কল"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"ভিডিওর অনুরোধ করছে"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"ভিডিও কলে সংযোগ করা যাচ্ছে না"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"ভিডিও কল (বিরাম দেওয়া হয়েছে)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"ভিডিওর অনুরোধ প্রত্যাখ্যান করা হয়েছে"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"আপনার কলব্যাক নম্বর\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"আপনার জরুরী কলব্যাক নম্বর\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"ডায়াল করা হচ্ছে"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"সেটআপ"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;সেট করা নেই&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"অন্যান্য কল সেটিংস"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> এর মাধ্যমে কল করা হচ্ছে"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> এর দ্বারা কল হচ্ছে"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> এর মাধ্যমে ইনকামিং কল"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"পরিচিতির ফটো"</string>
     <string name="goPrivate" msgid="865837794424530980">"ব্যক্তিগতভাবে কাজ করুন"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"ডিফল্ট শব্দ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"ফোন রিংটোন"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"রিং হওয়ার সময় কম্পন হবে"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"ডায়ালপ্যাড স্বয়ংপূর্ণ করা"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"রিংটোন ও কম্পন"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"কনফারেন্স কল পরিচালনা করুন"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"জরুরি নম্বর"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ঘন্টা</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ঘন্টা</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"প্রোফাইল ফটো"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"ক্যামেরা বন্ধ"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> এর মাধ্যমে"</string>
+    <string name="note_sent" msgid="3548700178238244595">"নোট পাঠানো হয়েছে"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"সাম্প্রতিক বার্তাগুলি"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"ব্যবসার তথ্য"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> মাইল দূরে"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> কিলোমিটার দূরে"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"আগামীকাল <xliff:g id="OPEN_TIME">%s</xliff:g>\'টায় খুলবে"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"আজ <xliff:g id="OPEN_TIME">%s</xliff:g>\'টায় খুলবে"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g>\'টায় বন্ধ হয়"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"আজ <xliff:g id="CLOSE_TIME">%s</xliff:g>\'টায় বন্ধ হয়েছে"</string>
+    <string name="open_now" msgid="6439301193613349163">"এখন খোলা রয়েছে"</string>
+    <string name="closed_now" msgid="9175774453982778909">"এখন বন্ধ রয়েছে"</string>
 </resources>
diff --git a/InCallUI/res/values-ca/strings.xml b/InCallUI/res/values-ca/strings.xml
index db638d5..1561616 100644
--- a/InCallUI/res/values-ca/strings.xml
+++ b/InCallUI/res/values-ca/strings.xml
@@ -35,7 +35,7 @@
     <string name="pause_prompt_no" msgid="6686238803236884877">"No"</string>
     <string name="wild_prompt_str" msgid="5543521676355533577">"Substitueix el caràcter comodí per"</string>
     <string name="caller_manage_header" msgid="3231519674734638786">"Trucada de conferència <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
-    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Número del correu de veu"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Número de la bústia de veu"</string>
     <string name="card_title_dialing" msgid="5769417478498348054">"S\'està marcant"</string>
     <string name="card_title_redialing" msgid="8253487008234167266">"S\'està tornant a marcar"</string>
     <string name="card_title_conf_call" msgid="1162980346189744501">"Trucada de conferència"</string>
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videotrucada"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"S\'està sol·licitant el vídeo"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"No es pot connectar la videotrucada"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videotrucada (en pausa)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"S\'ha rebutjat la sol·licitud de vídeo"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Número de devolució de trucada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Número de devolució de trucada d\'emergència\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Marcatge"</string>
@@ -64,10 +64,10 @@
     <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"Trucada Wi-Fi entrant"</string>
     <string name="notification_incoming_video_call" msgid="7356836933934464805">"Videotrucada entrant"</string>
     <string name="notification_requesting_video_call" msgid="1405576812892369451">"Sol·licitud de vídeo entrant"</string>
-    <string name="notification_voicemail_title" msgid="8933468752045550523">"Correu de veu nou"</string>
-    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Correu de veu nou (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Missatge de veu nou"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Bústia de veu nou (<xliff:g id="COUNT">%d</xliff:g>)"</string>
     <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Marca <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
-    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Número del correu de veu desconegut"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Número de la bústia de veu desconegut"</string>
     <string name="notification_network_selection_title" msgid="4224455487793492772">"Sense servei"</string>
     <string name="notification_network_selection_text" msgid="2607085729661923269">"La xarxa seleccionada (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) no està disponible"</string>
     <string name="notification_action_answer" msgid="6700362365135365143">"Respon"</string>
@@ -75,7 +75,7 @@
     <string name="notification_action_answer_video" msgid="7809271910870211729">"Vídeo"</string>
     <string name="notification_action_answer_voice" msgid="1770796916369437773">"Veu"</string>
     <string name="notification_action_accept" msgid="2898609801209468429">"Accepta"</string>
-    <string name="notification_action_dismiss" msgid="2679969397930852858">"Omet"</string>
+    <string name="notification_action_dismiss" msgid="2679969397930852858">"Ignora"</string>
     <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Torna la trucada"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Missatge"</string>
     <string name="incall_error_power_off" msgid="6550191216405193368">"Per fer una trucada, primer apagueu el mode d\'avió."</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Configuració"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;No definit&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Altres opcions de trucades"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Trucada mitjançant <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Trucada amb <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Entrant mitjançant <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"foto de contacte"</string>
     <string name="goPrivate" msgid="865837794424530980">"passa a privat"</string>
@@ -142,17 +142,16 @@
     <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="3636108065510415975">"Rebutja la sol·licitud per transmetre vídeo"</string>
     <string name="description_target_accept_upgrade_to_video_receive_request" msgid="8668058323593087912">"Accepta la sol·licitud per rebre vídeo"</string>
     <string name="description_target_decline_upgrade_to_video_receive_request" msgid="2355776509656298367">"Rebutja la sol·licitud per rebre vídeo"</string>
-    <string name="description_direction_up" msgid="4441409581444516690">"Fes lliscar el dit cap amunt per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
-    <string name="description_direction_left" msgid="7129873384376533287">"Fes lliscar el dit cap a l\'esquerra per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
-    <string name="description_direction_right" msgid="2122584234531957308">"Fes lliscar el dit cap a la dreta per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
-    <string name="description_direction_down" msgid="4317245625565166742">"Fes lliscar el dit cap avall per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_up" msgid="4441409581444516690">"Llisca cap amunt per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="7129873384376533287">"Llisca cap a l\'esquerra per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="2122584234531957308">"Llisca cap a la dreta per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="4317245625565166742">"Llisca cap avall per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
     <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibra"</string>
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibra"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"So"</string>
     <string name="default_notification_description" msgid="78174796906240970">"So predeterminat (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"So de trucada"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrar en sonar"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Compleció automàtica de teclat"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"So i vibració"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Gestiona la trucada de conferència"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Número d\'emergència"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hores</item>
       <item quantity="one">1 hora</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Foto de perfil"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Càmera desactivada"</string>
+    <string name="child_number" msgid="7437330400723805538">"mitjançant <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"S\'ha enviat la nota"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Missatges recents"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Informació de l\'empresa"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"A <xliff:g id="DISTANCE">%.1f</xliff:g> mi de distància"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"A <xliff:g id="DISTANCE">%.1f</xliff:g> km de distància"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Obre demà a les <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Obre avui a les <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Tanca a les <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Avui ha tancat a les <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Ara és obert"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Ara és tancat"</string>
 </resources>
diff --git a/InCallUI/res/values-cs/strings.xml b/InCallUI/res/values-cs/strings.xml
index f83b390..5d4ddad 100644
--- a/InCallUI/res/values-cs/strings.xml
+++ b/InCallUI/res/values-cs/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videohovor"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Požadování videa"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Videohovor nelze zahájit"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videohovor (pozastaveno)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Žádost o video byla zamítnuta"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Vaše číslo pro zpětné volání\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Vaše číslo pro tísňové zpětné volání\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Vytáčení"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Konfigurace"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nenastaveno&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Další nastavení hovorů"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Volání prostřednictvím poskytovatele <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Volání přes <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Příchozí hovor přes poskytovatele <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"fotografie kontaktu"</string>
     <string name="goPrivate" msgid="865837794424530980">"přepnout na soukromé"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Výchozí zvuk (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Vyzváněcí tón telefonu"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrace při vyzvánění"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Aut. doplňování číselníku"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Vyzvánění a vibrace"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Spravovat konferenční hovor"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Číslo tísňové linky"</string>
@@ -174,4 +173,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hodin</item>
       <item quantity="one">1 hodina</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profilová fotka"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Fotoaparát je vypnutý"</string>
+    <string name="child_number" msgid="7437330400723805538">"pomocí čísla <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Poznámka odeslána"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Nejnovější zprávy"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Informace o firmě"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"Vzdálenost: <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"Vzdálenost: <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Zítra otevírá v <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Dnes otevírá v <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Zavírá v <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Dnes zavřeno od <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Nyní otevřeno"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Nyní zavřeno"</string>
 </resources>
diff --git a/InCallUI/res/values-da/strings.xml b/InCallUI/res/values-da/strings.xml
index 76778fa..81569e6 100644
--- a/InCallUI/res/values-da/strings.xml
+++ b/InCallUI/res/values-da/strings.xml
@@ -17,7 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Opkald"</string>
     <string name="onHold" msgid="9035493194749959955">"Ventende"</string>
     <string name="unknown" msgid="6878797917991465859">"Ukendt"</string>
     <string name="private_num" msgid="6713286113000232309">"Privat nummer"</string>
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videoopkald"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Anmoder om video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Kan ikke forbinde videoopkald"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videoopkald (på pause)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Videoanmodningen blev afvist"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Dit tilbagekaldsnummer\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Dit tilbagekaldsnummer til nødopkald\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Ringer op"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Standardlyd (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Ringetone for opkald"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrer ved opringning"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Autofuldfør numerisk tastatur"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringetone og vibration"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Administrer telefonmøde"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Nødnummer"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> timer</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> timer</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profilfoto"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Sluk kamera"</string>
+    <string name="child_number" msgid="7437330400723805538">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Noten er sendt"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Seneste beskeder"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Virksomhedsoplysninger"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mil væk"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km væk"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>-<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Åbner i morgen kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Åbner i dag kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Lukker kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Lukkede i dag kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Åbent nu"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Lukket for i dag"</string>
 </resources>
diff --git a/InCallUI/res/values-de/strings.xml b/InCallUI/res/values-de/strings.xml
index c0a04ef..312e206 100644
--- a/InCallUI/res/values-de/strings.xml
+++ b/InCallUI/res/values-de/strings.xml
@@ -23,7 +23,7 @@
     <string name="private_num" msgid="6713286113000232309">"Private Nummer"</string>
     <string name="payphone" msgid="4793877574636445118">"Münztelefon"</string>
     <string name="confCall" msgid="1904840547188336828">"Telefonkonferenz"</string>
-    <string name="call_lost" msgid="6183862117003999578">"Anruf abgebrochen"</string>
+    <string name="call_lost" msgid="6183862117003999578">"Verbindung unterbrochen"</string>
     <string name="audio_mode_speaker" msgid="27649582100085266">"Lautsprecher"</string>
     <string name="audio_mode_earpiece" msgid="4156527186373869107">"Handy-Kopfhörer"</string>
     <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Kabelgebundenes Headset"</string>
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videoanruf"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Videoanfrage wird gesendet."</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Videoanruf kann nicht verbunden werden."</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videoanruf (pausiert)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Videoanfrage abgelehnt"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Ihre Rückrufnummer:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Ihre Notrufnummer:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Verbindung wird aufgebaut..."</string>
@@ -78,10 +78,10 @@
     <string name="notification_action_dismiss" msgid="2679969397930852858">"Ablehnen"</string>
     <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Zurückrufen"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Nachricht"</string>
-    <string name="incall_error_power_off" msgid="6550191216405193368">"Deaktivieren Sie zunächst den Flugmodus, um einen Anruf zu tätigen."</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Deaktiviere zunächst den Flugmodus, um einen Anruf zu tätigen."</string>
     <string name="incall_error_emergency_only" msgid="4678640422710818317">"Nicht in Netzwerk registriert."</string>
     <string name="incall_error_out_of_service" msgid="4100065333878929223">"Mobilfunknetz nicht verfügbar"</string>
-    <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"Geben Sie eine gültige Nummer ein."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"Gib eine gültige Nummer ein."</string>
     <string name="incall_error_call_failed" msgid="6302746943230078197">"Anruf nicht möglich."</string>
     <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMI-Sequenz wird gestartet..."</string>
     <string name="incall_error_supp_service_unknown" msgid="323435289607131929">"Dienst wird nicht unterstützt."</string>
@@ -96,7 +96,7 @@
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Mobilfunkverbindung wird aktiviert..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Kein Service. Erneuter Versuch..."</string>
     <string name="dial_emergency_error" msgid="1509085166367420355">"Anruf nicht möglich. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ist keine Notrufnummer."</string>
-    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Anruf nicht möglich. Wählen Sie eine Notrufnummer."</string>
+    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Anruf nicht möglich. Wähle eine Notrufnummer."</string>
     <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Zum Wählen Tastatur verwenden"</string>
     <string name="onscreenHoldText_unselected" msgid="7092499303393171276">"Anruf halten"</string>
     <string name="onscreenHoldText_selected" msgid="7127901498507384249">"Anruf fortsetzen"</string>
@@ -131,11 +131,11 @@
     <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Eigene Antwort schreiben..."</string>
     <string name="custom_message_cancel" msgid="7516406059429609296">"Abbrechen"</string>
     <string name="custom_message_send" msgid="5795754217085747742">"Senden"</string>
-    <string name="description_target_answer" msgid="7205604197797472471">"Antworten"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Annehmen"</string>
     <string name="description_target_send_sms" msgid="2098326025587950144">"SMS senden"</string>
     <string name="description_target_decline" msgid="4789834364389731957">"Ablehnen"</string>
-    <string name="description_target_answer_video_call" msgid="3495965588512395026">"Antworten mit Videoanruf"</string>
-    <string name="description_target_answer_audio_call" msgid="8396296303320994450">"Antworten mit Audioanruf"</string>
+    <string name="description_target_answer_video_call" msgid="3495965588512395026">"Als Videoanruf annehmen"</string>
+    <string name="description_target_answer_audio_call" msgid="8396296303320994450">"Als normalen Anruf annehmen"</string>
     <string name="description_target_accept_upgrade_to_video_request" msgid="2894072808324604062">"Videoanfrage akzeptieren"</string>
     <string name="description_target_decline_upgrade_to_video_request" msgid="4093888612888538776">"Videoanfrage ablehnen"</string>
     <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="5311037889642077468">"Anfrage für ausgehenden Videoanruf akzeptieren"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Standardklingelton (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Klingelton"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Beim Klingeln vibrieren"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Wähltasten-Autovervollständigung"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Klingelton &amp; Vibration"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Telefonkonferenz verwalten"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Notrufnummer"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> Stunden</item>
       <item quantity="one">1 Stunde</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profilfoto"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera aus"</string>
+    <string name="child_number" msgid="7437330400723805538">"über <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Notiz gesendet"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Zuletzt eingegangene Nachrichten"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Geschäftsinformationen"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> Meilen entfernt"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> Kilometer entfernt"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> bis <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Öffnet morgen um <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Öffnet heute um <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Schließt um <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Hat heute um <xliff:g id="CLOSE_TIME">%s</xliff:g> geschlossen"</string>
+    <string name="open_now" msgid="6439301193613349163">"Jetzt geöffnet"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Jetzt geschlossen"</string>
 </resources>
diff --git a/InCallUI/res/values-el/strings.xml b/InCallUI/res/values-el/strings.xml
index d737d7f..68b3257 100644
--- a/InCallUI/res/values-el/strings.xml
+++ b/InCallUI/res/values-el/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Βιντεοκλήση"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Αίτημα βίντεο"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Δεν είναι δυνατή η σύνδεση βιντεοκλησης"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Βιντεοκλήση (Παύση)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Το αίτημα βίντεο απορρίφθηκε"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Αριθμός επανάκλησης\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Αριθμός επανάκλησης έκτακτης ανάγκης\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Κλήση"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Προεπιλεγμένος ήχος (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Ήχος κλήσης τηλεφώνου"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Δόνηση κατά το κουδούνισμα"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Αυτόμ. συμπλ. πληκτρολ. κλήσης"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ήχος κλήσης &amp; δόνηση"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Διαχείριση κλήσης συνδιάσκεψης"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Αριθμός έκτακτης ανάγκης"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ώρες</item>
       <item quantity="one">1 ώρα</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Φωτογραφία προφίλ"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Απενεργοποίηση κάμερας"</string>
+    <string name="child_number" msgid="7437330400723805538">"μέσω <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Η σημείωση εστάλη"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Πρόσφατα μηνύματα"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Πληροφορίες επιχείρησης"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> μίλια μακριά"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> χιλιόμετρα μακριά"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Ανοίγει αύριο στις <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Ανοίγει σήμερα στις <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Κλείνει στις <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Έκλεισε σήμερα στις <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Ανοιχτό τώρα"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Κλειστό τώρα"</string>
 </resources>
diff --git a/InCallUI/res/values-en-rAU/strings.xml b/InCallUI/res/values-en-rAU/strings.xml
index fed826e..15409ad 100644
--- a/InCallUI/res/values-en-rAU/strings.xml
+++ b/InCallUI/res/values-en-rAU/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Video call"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Requesting video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Can\'t connect video call"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video call (Paused)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Video request rejected"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Your callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Your emergency callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Dialling"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Default sound (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Phone ringtone"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrate when ringing"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Dialpad auto-complete"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringtone &amp; Vibrate"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Manage conference call"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Emergency number"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hours</item>
       <item quantity="one">1 hour</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profile photo"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Camera off"</string>
+    <string name="child_number" msgid="7437330400723805538">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Note sent"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Recent messages"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Business info"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mi away"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km away"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Opens tomorrow at <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Opens today at <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Closes at <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Closed today at <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Open now"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Closed now"</string>
 </resources>
diff --git a/InCallUI/res/values-en-rGB/strings.xml b/InCallUI/res/values-en-rGB/strings.xml
index fed826e..15409ad 100644
--- a/InCallUI/res/values-en-rGB/strings.xml
+++ b/InCallUI/res/values-en-rGB/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Video call"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Requesting video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Can\'t connect video call"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video call (Paused)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Video request rejected"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Your callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Your emergency callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Dialling"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Default sound (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Phone ringtone"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrate when ringing"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Dialpad auto-complete"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringtone &amp; Vibrate"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Manage conference call"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Emergency number"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hours</item>
       <item quantity="one">1 hour</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profile photo"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Camera off"</string>
+    <string name="child_number" msgid="7437330400723805538">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Note sent"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Recent messages"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Business info"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mi away"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km away"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Opens tomorrow at <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Opens today at <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Closes at <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Closed today at <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Open now"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Closed now"</string>
 </resources>
diff --git a/InCallUI/res/values-en-rIN/strings.xml b/InCallUI/res/values-en-rIN/strings.xml
index fed826e..15409ad 100644
--- a/InCallUI/res/values-en-rIN/strings.xml
+++ b/InCallUI/res/values-en-rIN/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Video call"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Requesting video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Can\'t connect video call"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video call (Paused)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Video request rejected"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Your callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Your emergency callback number\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Dialling"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Default sound (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Phone ringtone"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrate when ringing"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Dialpad auto-complete"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringtone &amp; Vibrate"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Manage conference call"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Emergency number"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hours</item>
       <item quantity="one">1 hour</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profile photo"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Camera off"</string>
+    <string name="child_number" msgid="7437330400723805538">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Note sent"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Recent messages"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Business info"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mi away"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km away"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Opens tomorrow at <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Opens today at <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Closes at <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Closed today at <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Open now"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Closed now"</string>
 </resources>
diff --git a/InCallUI/res/values-es-rUS/strings.xml b/InCallUI/res/values-es-rUS/strings.xml
index fed658c..0e88906 100644
--- a/InCallUI/res/values-es-rUS/strings.xml
+++ b/InCallUI/res/values-es-rUS/strings.xml
@@ -35,7 +35,7 @@
     <string name="pause_prompt_no" msgid="6686238803236884877">"No"</string>
     <string name="wild_prompt_str" msgid="5543521676355533577">"Reemplazar el carácter comodín con"</string>
     <string name="caller_manage_header" msgid="3231519674734638786">"Llamada en conferencia <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
-    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Núm. de correo de voz"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Correo de voz"</string>
     <string name="card_title_dialing" msgid="5769417478498348054">"Marcando"</string>
     <string name="card_title_redialing" msgid="8253487008234167266">"Volviendo a marcar"</string>
     <string name="card_title_conf_call" msgid="1162980346189744501">"Llamada en conferencia"</string>
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videollamada"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Solicitando video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"No se puede conectar la videollamada."</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videollamada (pausada)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Se rechazó la solicitud de videollamada."</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Número de devolución de llamada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Número de devolución de llamada de emergencia\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Marcando"</string>
@@ -76,7 +76,7 @@
     <string name="notification_action_answer_voice" msgid="1770796916369437773">"Voz"</string>
     <string name="notification_action_accept" msgid="2898609801209468429">"Aceptar"</string>
     <string name="notification_action_dismiss" msgid="2679969397930852858">"Descartar"</string>
-    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Devolver llamada"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Llamar"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Mensaje"</string>
     <string name="incall_error_power_off" msgid="6550191216405193368">"Para realizar una llamada, primero debes desactivar el modo avión."</string>
     <string name="incall_error_emergency_only" msgid="4678640422710818317">"No registrado en la red."</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Configuración"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Sin configurar&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Otras configuraciones de llamada"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Llamada a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Llamada vía <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Recibidas a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"foto de contacto"</string>
     <string name="goPrivate" msgid="865837794424530980">"pasar a modo privado"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Sonido predeterminado (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Tono del dispositivo"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrar al sonar"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Autocompletar con teclado"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Tono y vibración"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Administrar conferencia telefónica"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Número de emergencia"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
       <item quantity="one">1 hora</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Foto de perfil"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Cámara desactivada"</string>
+    <string name="child_number" msgid="7437330400723805538">"a través del <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Se envió la nota"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Mensajes recientes"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Información de la empresa"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"A <xliff:g id="DISTANCE">%.1f</xliff:g> millas"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"A <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g> y <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Abre mañana a la hora <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Abre hoy a la hora <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Cierra a la hora <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Cerró hoy a la hora <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Abierto ahora"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Cerrado ahora"</string>
 </resources>
diff --git a/InCallUI/res/values-es/strings.xml b/InCallUI/res/values-es/strings.xml
index a52d6b7..966544f 100644
--- a/InCallUI/res/values-es/strings.xml
+++ b/InCallUI/res/values-es/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videollamada"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Solicitando videollamada"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"No se puede establecer la videollamada"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videollamada (en pausa)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Solicitud de vídeo rechazada"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Tu número de devolución de llamada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Tu número de devolución de llamada de emergencia\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Llamando..."</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Configuración"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;No definido&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Otras opciones de llamada"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Llamada a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Llamada vía <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Recibidas a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"foto de contacto"</string>
     <string name="goPrivate" msgid="865837794424530980">"llamada privada"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Sonido predeterminado (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Tono del teléfono"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrar al sonar"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Autocompletar número"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Tono y vibración"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Administrar conferencia telefónica"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Número de emergencia"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
       <item quantity="one">1 hora</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Foto de perfil"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Cámara apagada"</string>
+    <string name="child_number" msgid="7437330400723805538">"a través de <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Nota enviada"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Mensajes recientes"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Información de la empresa"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"A <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"A <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Abre mañana a las <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Abre hoy a las <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Cierra hoy a las <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Cerrado hoy a las <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Abierto ahora"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Cerrado ahora"</string>
 </resources>
diff --git a/InCallUI/res/values-et-rEE/strings.xml b/InCallUI/res/values-et-rEE/strings.xml
index 6986066..3f1e6ce 100644
--- a/InCallUI/res/values-et-rEE/strings.xml
+++ b/InCallUI/res/values-et-rEE/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videokõne"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Video taotlemine"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Videokõnet ei õnnestu ühendada"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videokõne (peatatud)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Videotaotlus lükati tagasi"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Teie tagasihelistamise number\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Teie hädaabikõne tagasihelistamise number\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Valimine"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Vaikeheli (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Telefonihelin"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibreerimine helina ajal"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Valimisklahv. autom. täitmine"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Helin ja vibratsioon"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Konverentskõne haldamine"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Hädaabinumber"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> tundi</item>
       <item quantity="one">1 tund</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profiilifoto"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kaamera lülitatakse välja"</string>
+    <string name="child_number" msgid="7437330400723805538">"numbri <xliff:g id="CHILD_NUMBER">%s</xliff:g> kaudu"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Märkus on saadetud"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Viimased sõnumid"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Ettevõtte teave"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> miili kaugusel"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km kaugusel"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Avatakse homme kell <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Avatakse täna kell <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Suletakse kell <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Suleti täna kell <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Praegu avatud"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Praegu suletud"</string>
 </resources>
diff --git a/InCallUI/res/values-eu-rES/strings.xml b/InCallUI/res/values-eu-rES/strings.xml
index bb4789f..ccc0916 100644
--- a/InCallUI/res/values-eu-rES/strings.xml
+++ b/InCallUI/res/values-eu-rES/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Bideo-deia"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Bideoa eskatzen"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Ezin da konektatu bideo-deia"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Bideo-deia (pausatuta)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Baztertu egin da bideo-eskaera"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Deiak itzultzeko zenbakia:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Larrialdi-deiak itzultzeko zenbakia:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Markatzen"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Soinu lehenetsia (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Telefonoaren tonua"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Egin dar-dar tonua jotzean"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Markagailua osatzea"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Tonua eta dardara"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Kudeatu konferentzia-deia"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Larrialdietarako zenbakia"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ordu</item>
       <item quantity="one">ordubete</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profileko argazkia"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamara desaktibatuta dago"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> zenbakitik"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Bidali da oharra"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Azken mezuak"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Enpresaren informazioa"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"Hemendik <xliff:g id="DISTANCE">%.1f</xliff:g> miliara"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"Hemendik <xliff:g id="DISTANCE">%.1f</xliff:g> km-ra"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"<xliff:g id="OPEN_TIME">%s</xliff:g> da biharko irekitze-ordua"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"<xliff:g id="OPEN_TIME">%s</xliff:g> da gaurko irekitze-ordua"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g> da itxiera-ordua"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"<xliff:g id="CLOSE_TIME">%s</xliff:g> da gaurko itxiera-ordua"</string>
+    <string name="open_now" msgid="6439301193613349163">"Irekita dago"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Itxita dago"</string>
 </resources>
diff --git a/InCallUI/res/values-fa/strings.xml b/InCallUI/res/values-fa/strings.xml
index 16b5609..db8ea84 100644
--- a/InCallUI/res/values-fa/strings.xml
+++ b/InCallUI/res/values-fa/strings.xml
@@ -32,7 +32,7 @@
     <string name="pause_prompt_str" msgid="1789964702154314806">"تون‌های ارسالی\n"</string>
     <string name="send_button" msgid="4106860097497818751">"ارسال"</string>
     <string name="pause_prompt_yes" msgid="3564467212025151797">"بله"</string>
-    <string name="pause_prompt_no" msgid="6686238803236884877">"خیر"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"نه"</string>
     <string name="wild_prompt_str" msgid="5543521676355533577">"جایگزینی نویسه عمومی با"</string>
     <string name="caller_manage_header" msgid="3231519674734638786">"تماس کنفرانسی <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
     <string name="voicemail_settings_number_label" msgid="8524164258691887790">"شماره پست صوتی"</string>
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"تماس ویدیویی"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"درحال درخواست تماس ویدیویی"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"اتصال تماس ویدیویی ممکن نیست"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"تماس ویدیویی (موقتاً متوقف شد)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"درخواست ویدیو رد شد"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"شماره پاسخ تماس شما\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"شماره پاسخ تماس اضطراری شما\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"شماره‌گیری"</string>
@@ -74,7 +74,7 @@
     <string name="notification_action_end_call" msgid="6069460915123531620">"قطع تماس"</string>
     <string name="notification_action_answer_video" msgid="7809271910870211729">"ویدیو"</string>
     <string name="notification_action_answer_voice" msgid="1770796916369437773">"صدا"</string>
-    <string name="notification_action_accept" msgid="2898609801209468429">"پذیرش"</string>
+    <string name="notification_action_accept" msgid="2898609801209468429">"پذیرفتن"</string>
     <string name="notification_action_dismiss" msgid="2679969397930852858">"ردکردن"</string>
     <string name="notification_missedCall_call_back" msgid="2684890353590890187">"پاسخ تماس"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"پیام"</string>
@@ -96,7 +96,7 @@
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"در حال روشن کردن رادیو..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"سرویسی در دسترس نیست. دوباره امتحان کنید..."</string>
     <string name="dial_emergency_error" msgid="1509085166367420355">"نمی‌توانید تماس بگیرید. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> یک شماره اضطراری نیست."</string>
-    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"نمی توانید تماس بگیرید. یک شماره اضطراری را شماره‌گیری کنید."</string>
+    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"نمی‌ توانید تماس بگیرید. یک شماره اضطراری را شماره‌گیری کنید."</string>
     <string name="dialerKeyboardHintText" msgid="9192914825413747792">"استفاده از صفحه‌کلید برای شماره گیری"</string>
     <string name="onscreenHoldText_unselected" msgid="7092499303393171276">"نگه داشتن تماس"</string>
     <string name="onscreenHoldText_selected" msgid="7127901498507384249">"از سرگیری تماس"</string>
@@ -112,7 +112,7 @@
     <string name="onscreenVideoCallText" msgid="4800924186056115442">"تماس ویدیویی"</string>
     <string name="onscreenChangeToVoiceText" msgid="5311407863653867937">"تغییر به تماس صوتی"</string>
     <string name="onscreenSwitchCameraText" msgid="5324543493442787798">"تغییر دوربین"</string>
-    <string name="onscreenPauseVideoText" msgid="5663965924921429203">"توقف موقت ویدیو"</string>
+    <string name="onscreenPauseVideoText" msgid="5663965924921429203">"مکث ویدیو"</string>
     <string name="onscreenOverflowText" msgid="2702376562345723132">"گزینه‌های بیشتر"</string>
     <string name="player_started" msgid="6046262510243983589">"پخش‌کننده راه‌اندازی شد"</string>
     <string name="player_stopped" msgid="8856926759436364963">"پخش‌کننده متوقف شد"</string>
@@ -126,22 +126,22 @@
     <string name="calling_via_template" msgid="4839419581866928142">"تماس از طریق <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"تماس‌های ورودی از طریق <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"عکس مخاطب"</string>
-    <string name="goPrivate" msgid="865837794424530980">"برو به خصوصی"</string>
+    <string name="goPrivate" msgid="865837794424530980">"رفتن به خصوصی"</string>
     <string name="selectContact" msgid="781975788478987237">"انتخاب حساب"</string>
     <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"نوشتن پاسخ خود…"</string>
     <string name="custom_message_cancel" msgid="7516406059429609296">"لغو"</string>
     <string name="custom_message_send" msgid="5795754217085747742">"ارسال"</string>
     <string name="description_target_answer" msgid="7205604197797472471">"پاسخ"</string>
     <string name="description_target_send_sms" msgid="2098326025587950144">"ارسال پیامک"</string>
-    <string name="description_target_decline" msgid="4789834364389731957">"عدم پذیرش"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"نپذیرفتن"</string>
     <string name="description_target_answer_video_call" msgid="3495965588512395026">"پاسخ به صورت تماس ویدیویی"</string>
     <string name="description_target_answer_audio_call" msgid="8396296303320994450">"پاسخ به صورت تماس صوتی"</string>
-    <string name="description_target_accept_upgrade_to_video_request" msgid="2894072808324604062">"پذیرش درخواست ویدیو"</string>
-    <string name="description_target_decline_upgrade_to_video_request" msgid="4093888612888538776">"رد کردن درخواست ویدیو"</string>
-    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="5311037889642077468">"پذیرش درخواست ارسال ویدیو"</string>
-    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="3636108065510415975">"رد کردن درخواست انتقال ویدیو"</string>
-    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="8668058323593087912">"پذیرش درخواست دریافت ویدیو"</string>
-    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="2355776509656298367">"رد کردن درخواست دریافت ویدیو"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="2894072808324604062">"پذیرفتن درخواست ویدیو"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="4093888612888538776">"نپذیرفتن درخواست ویدیو"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="5311037889642077468">"پذیرفتن درخواست ارسال ویدیو"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="3636108065510415975">"نپذیرفتن درخواست انتقال ویدیو"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="8668058323593087912">"پذیرفتن درخواست دریافت ویدیو"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="2355776509656298367">"نپذیرفتن درخواست دریافت ویدیو"</string>
     <string name="description_direction_up" msgid="4441409581444516690">"برای <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> به بالا بلغزانید."</string>
     <string name="description_direction_left" msgid="7129873384376533287">"برای <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> به چپ بلغزانید."</string>
     <string name="description_direction_right" msgid="2122584234531957308">"برای <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> به راست بلغزانید."</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"صدای پیش‌فرض (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"آهنگ زنگ تلفن"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"ارتعاش هنگام زنگ زدن"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"تکمیل خودکار صفحه شماره‌گیری"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"آهنگ‌ زنگ و لرزش"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"مدیریت تماس کنفرانس"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"شماره اضطراری"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ساعت</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ساعت</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"عکس نمایه"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"دوربین خاموش"</string>
+    <string name="child_number" msgid="7437330400723805538">"از طریق <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"یادداشت ارسال شد"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"پیام‌های جدید"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"اطلاعات کسب و کار"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> مایل دورتر"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> کیلومتر دورتر"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>،‫ <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> تا <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>، <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"فردا ساعت <xliff:g id="OPEN_TIME">%s</xliff:g> باز می‌شود"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"امروز ساعت <xliff:g id="OPEN_TIME">%s</xliff:g> باز می‌شود"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"ساعت <xliff:g id="CLOSE_TIME">%s</xliff:g> بسته می‌شود"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"امروز ساعت <xliff:g id="CLOSE_TIME">%s</xliff:g> بسته شد"</string>
+    <string name="open_now" msgid="6439301193613349163">"اکنون باز است"</string>
+    <string name="closed_now" msgid="9175774453982778909">"اکنون بسته است"</string>
 </resources>
diff --git a/InCallUI/res/values-fi/strings.xml b/InCallUI/res/values-fi/strings.xml
index 18737e8..7aebff4 100644
--- a/InCallUI/res/values-fi/strings.xml
+++ b/InCallUI/res/values-fi/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videopuhelu"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Videota pyydetään"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Videopuhelua ei voi soittaa"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videopuhelu (keskeytetty)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Videopyyntö hylättiin."</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Takaisinsoittonumerosi\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Hätäpuhelujen takaisinsoittonumero\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Soitetaan"</string>
@@ -76,7 +76,7 @@
     <string name="notification_action_answer_voice" msgid="1770796916369437773">"Äänipuhelu"</string>
     <string name="notification_action_accept" msgid="2898609801209468429">"Hyväksy"</string>
     <string name="notification_action_dismiss" msgid="2679969397930852858">"Hylkää"</string>
-    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Soita takaisin"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Soita"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Viesti"</string>
     <string name="incall_error_power_off" msgid="6550191216405193368">"Poista lentokonetila käytöstä ennen puhelun soittamista."</string>
     <string name="incall_error_emergency_only" msgid="4678640422710818317">"Ei rekisteröity verkkoon."</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Asetukset"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Ei asetettu&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Muut puheluasetukset"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Käytetään operaattoria <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Operaattorilla <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Saapuva puhelu (<xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"yhteyshenkilön valokuva"</string>
     <string name="goPrivate" msgid="865837794424530980">"muuta yksityiseksi"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Oletusääni (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Puhelimen soittoääni"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Käytä värinää"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Näppäimistön täydennys"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Soittoääni ja värinä"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Hallinnoi puhelinneuvottelua"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Hätänumero"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> tuntia</item>
       <item quantity="one">1 tunti</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profiilikuva"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera on pois käytöstä."</string>
+    <string name="child_number" msgid="7437330400723805538">"nron <xliff:g id="CHILD_NUMBER">%s</xliff:g> kautta"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Muistiinpano lähetettiin."</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Viimeisimmät viestit"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Yrityksen tiedot"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"Etäisyys: <xliff:g id="DISTANCE">%.1f</xliff:g> mailia"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"Etäisyys: <xliff:g id="DISTANCE">%.1f</xliff:g> kilometriä"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Aukeaa huomenna kello <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Aukeaa tänään kello <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Sulkeutuu tänään kello <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Sulkeutui tänään kello <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Auki nyt"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Suljettu nyt"</string>
 </resources>
diff --git a/InCallUI/res/values-fr-rCA/strings.xml b/InCallUI/res/values-fr-rCA/strings.xml
index 7451353..1441d3f 100644
--- a/InCallUI/res/values-fr-rCA/strings.xml
+++ b/InCallUI/res/values-fr-rCA/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Appel vidéo"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Demande de vidéo en cours"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Impossible de connecter l\'appel vidéo"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Appel vidéo (en pause)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Demande vidéo refusée"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Votre numéro de rappel :\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Votre numéro de rappel d\'urgence :\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Numérotation en cours…"</string>
@@ -70,7 +70,7 @@
     <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Numéro de messagerie vocale inconnu"</string>
     <string name="notification_network_selection_title" msgid="4224455487793492772">"Aucun service"</string>
     <string name="notification_network_selection_text" msgid="2607085729661923269">"Réseau sélectionné (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) non disponible"</string>
-    <string name="notification_action_answer" msgid="6700362365135365143">"Réponse"</string>
+    <string name="notification_action_answer" msgid="6700362365135365143">"Répondre"</string>
     <string name="notification_action_end_call" msgid="6069460915123531620">"Raccrocher"</string>
     <string name="notification_action_answer_video" msgid="7809271910870211729">"Vidéo"</string>
     <string name="notification_action_answer_voice" msgid="1770796916369437773">"Vocal"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Sonnerie par défaut (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Sonnerie du téléphone"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Mode Vibreur lorsque le tél. sonne"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Suggestions automatiques pour le pavé numérique"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Sonnerie et vibreur"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Gérer la conférence téléphonique"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Numéro d\'urgence"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> heure</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> heures</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Photo de profil"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Appareil photo désactiver"</string>
+    <string name="child_number" msgid="7437330400723805538">"au moyen du <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Note envoyée"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Messages récents"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Renseignements sur l\'entreprise"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"À <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"À <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> à <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Ouvre demain à <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Ouvre aujourd\'hui à <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Ferme à <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"A fermé aujourd\'hui à <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Ouvert"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Fermé"</string>
 </resources>
diff --git a/InCallUI/res/values-fr/strings.xml b/InCallUI/res/values-fr/strings.xml
index 22c0545..7883bdf 100644
--- a/InCallUI/res/values-fr/strings.xml
+++ b/InCallUI/res/values-fr/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Appel vidéo"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Demande de vidéo en cours…"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Impossible d\'établir la connexion de l\'appel vidéo."</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Appel vidéo (interrompu)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Demande d\'appel vidéo refusée"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Votre numéro de rappel\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Votre numéro de rappel d\'urgence\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Numérotation en cours…"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Sonnerie par défaut (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Sonnerie du téléphone"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Mode Vibreur lorsque le tél. sonne"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Clavier à saisie semi-automatique"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Sonnerie et vibreur"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Gérer la conférence téléphonique"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Numéro d\'urgence"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> heure</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> heures</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Photo du profil"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Caméra désactivée"</string>
+    <string name="child_number" msgid="7437330400723805538">"via le <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"La note a bien été envoyée."</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Messages récents"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Informations sur l\'établissement"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"À <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"À <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Ouvre demain à <xliff:g id="OPEN_TIME">%s</xliff:g>."</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Ouvre aujourd\'hui à <xliff:g id="OPEN_TIME">%s</xliff:g>."</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Ferme à <xliff:g id="CLOSE_TIME">%s</xliff:g>."</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Fermé aujourd\'hui à <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Ouvert"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Fermé"</string>
 </resources>
diff --git a/InCallUI/res/values-gl-rES/strings.xml b/InCallUI/res/values-gl-rES/strings.xml
index 55e0719..7a17f02 100644
--- a/InCallUI/res/values-gl-rES/strings.xml
+++ b/InCallUI/res/values-gl-rES/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videochamada"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Solicitando vídeo"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Non se pode conectar a videochamada"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videochamada (pausada)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Rexeitouse a solicitude de chamada vídeo"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Número de devolución de chamada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Número de devolución de chamada de emerxencia\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Marcación"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Configuración"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Sen configurar&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Outras configuracións de chamada"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Chamando a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Chamada mediante <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Chamadas entrantes a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"foto do contacto"</string>
     <string name="goPrivate" msgid="865837794424530980">"activar o modo privado"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Son predeterminado (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Ton de chamada do teléfono"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrar ao soar"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Completar teclado de marcación"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ton de chamada e vibración"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Xestionar conferencia telefónica"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Número de emerxencia"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
       <item quantity="one">Unha hora</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Foto de perfil"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Cámara desactivada"</string>
+    <string name="child_number" msgid="7437330400723805538">"a través do <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Enviouse a nota"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Mensaxes recentes"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Información da empresa"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"A <xliff:g id="DISTANCE">%.1f</xliff:g> mi de distancia"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"A <xliff:g id="DISTANCE">%.1f</xliff:g> km de distancia"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Abre mañá ás <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Abre hoxe ás <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Pecha ás <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Pechou hoxe ás <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Aberto agora"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Pechado agora"</string>
 </resources>
diff --git a/InCallUI/res/values-gu-rIN/strings.xml b/InCallUI/res/values-gu-rIN/strings.xml
index 2901780..77a3e8c 100644
--- a/InCallUI/res/values-gu-rIN/strings.xml
+++ b/InCallUI/res/values-gu-rIN/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"વિડિઓ કૉલ"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"વિડિઓની વિનંતી કરી રહ્યાં છે"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"વિડિઓ કૉલ કનેક્ટ કરી શકાતો નથી"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"વિડિઓ કૉલ (થોભાવ્યો)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"વિડિઓ વિનંતી નકારી"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"તમારો કૉલબેક નંબર\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"તમારો કટોકટીનો કૉલબેક નંબર\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"ડાયલ કરી રહ્યાં છે"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"ડિફોલ્ટ ધ્વનિ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"ફોન રિંગટોન"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"જ્યારે રિંગ કરે ત્યારે વાઇબ્રેટ કરો"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"ડાયલપેડ સ્વતઃપૂર્ણ"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"રિંગટોન અને વાઇબ્રેટ"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"કોન્ફરન્સ કૉલ સંચાલિત કરો"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"કટોકટીનો નંબર"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> કલાક</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> કલાક</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"પ્રોફાઇલ ફોટો"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"કૅમેરો બંધ"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> મારફતે"</string>
+    <string name="note_sent" msgid="3548700178238244595">"નોંધ મોકલી"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"તાજેતરનાં સંદેશા"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"વ્યવસાયની માહિતી"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> માઇલ દૂર"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> કિમી દૂર"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"આવતીકાલે <xliff:g id="OPEN_TIME">%s</xliff:g> વાગ્યે ખુલશે"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"આજે <xliff:g id="OPEN_TIME">%s</xliff:g> વાગ્યે ખુલશે"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g> વાગ્યે બંધ થશે"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"આજે <xliff:g id="CLOSE_TIME">%s</xliff:g> વાગ્યે બંધ થયેલું"</string>
+    <string name="open_now" msgid="6439301193613349163">"હમણાં ખોલો"</string>
+    <string name="closed_now" msgid="9175774453982778909">"અત્યારે બંધ કર્યું"</string>
 </resources>
diff --git a/InCallUI/res/values-hi/strings.xml b/InCallUI/res/values-hi/strings.xml
index 1da6f7a..aa9d3de 100644
--- a/InCallUI/res/values-hi/strings.xml
+++ b/InCallUI/res/values-hi/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"वीडियो कॉल"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"वीडियो का अनुरोध किया जा रहा है"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"वीडियो कॉल कनेक्‍ट नहीं किया जा सकता"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"वीडियो काॅल (रोका गया)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"वीडियो अनुरोध अस्वीकार किया गया"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"आपका कॉलबैक नंबर\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"आपका आपातकालीन कॉलबैक नंबर\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"डायल हो रहा है"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"सेटअप"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;सेट नहीं है&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"अन्य कॉल सेटिंग"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> के माध्यम से कॉल किया जा रहा है"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"कॉल <xliff:g id="PROVIDER_NAME">%s</xliff:g> से जा रही है"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> की ओर से इनकमिंग"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"संपर्क का फ़ोटो"</string>
     <string name="goPrivate" msgid="865837794424530980">"निजी हो जाएं"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"डिफ़ॉल्ट ध्वनि (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"फ़ोन रिंगटोन"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"रिंग आने पर कंपन करें"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"डायलपैड स्‍वत: पूर्ण"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"रिंगटोन और कंपन"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"कॉन्फ़्रेंस कॉल प्रबंधित करें"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"आपातकालीन नंबर"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> घंटे</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> घंटे</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"प्रोफ़ाइल फ़ोटो"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"कैमरा बंद है"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> के द्वारा"</string>
+    <string name="note_sent" msgid="3548700178238244595">"नोट भेज दिया गया है"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"हाल ही के संदेश"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"व्यवसाय जानकारी"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> मील दूर"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> किमी दूर"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"कल <xliff:g id="OPEN_TIME">%s</xliff:g> बजे खुलता है"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"आज <xliff:g id="OPEN_TIME">%s</xliff:g> बजे खुलता है"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g> बजे बंद होता है"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"आज <xliff:g id="CLOSE_TIME">%s</xliff:g> बजे बंद हो गया"</string>
+    <string name="open_now" msgid="6439301193613349163">"अभी खुला है"</string>
+    <string name="closed_now" msgid="9175774453982778909">"अभी बंद है"</string>
 </resources>
diff --git a/InCallUI/res/values-hr/strings.xml b/InCallUI/res/values-hr/strings.xml
index 8bbb70e..1714e33 100644
--- a/InCallUI/res/values-hr/strings.xml
+++ b/InCallUI/res/values-hr/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videopoziv"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Zahtijevanje videopiziva"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Videopoziv nije uspostavljen"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videopoziv (pauziran)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Zahtjev za videopoziv odbijen"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Vaš broj za povratni poziv\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Vaš broj za povratni poziv za hitne službe\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Biranje broja"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Postavljanje"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nije postavljeno&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Ostale postavke poziva"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Pozivanje putem operatera <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Poziv preko <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Dolazni pozivi putem davatelja <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"kontakt fotografija"</string>
     <string name="goPrivate" msgid="865837794424530980">"na privatno"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Zadani zvuk (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Melodija zvona telefona"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrira dok zvoni"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Samodovr. povr. za biranje br."</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Melodija zvona i vibracija"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Upravljanje konferencijskim pozivom"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Broj hitne službe"</string>
@@ -171,4 +170,21 @@
       <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> sata</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sati</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Fotografija na profilu"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Fotoaparat je isključen"</string>
+    <string name="child_number" msgid="7437330400723805538">"putem <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Bilješka je poslana"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Nedavne poruke"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Informacije o tvrtki"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mi udaljenosti"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km udaljenosti"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Otvara se sutra u <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Otvara se danas u <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Zatvara se u <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Zatvoreno danas u <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Trenutačno otvoreno"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Trenutačno zatvoreno"</string>
 </resources>
diff --git a/InCallUI/res/values-hu/strings.xml b/InCallUI/res/values-hu/strings.xml
index 9d7f4c8..d4a2135 100644
--- a/InCallUI/res/values-hu/strings.xml
+++ b/InCallUI/res/values-hu/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videohívás"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Videohívást kér"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"A videohívás létesítése sikertelen"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videohívás (szüneteltetve)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Videokérelem elutasítva"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Visszahívható telefonszáma\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Vészhelyzet esetén visszahívható telefonszáma\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Tárcsázás"</string>
@@ -70,7 +70,7 @@
     <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"A hangposta száma ismeretlen"</string>
     <string name="notification_network_selection_title" msgid="4224455487793492772">"Nincs szolgáltatás"</string>
     <string name="notification_network_selection_text" msgid="2607085729661923269">"A kiválasztott hálózat (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nem érhető el"</string>
-    <string name="notification_action_answer" msgid="6700362365135365143">"Válasz"</string>
+    <string name="notification_action_answer" msgid="6700362365135365143">"Fogadás"</string>
     <string name="notification_action_end_call" msgid="6069460915123531620">"Hívás befejezése"</string>
     <string name="notification_action_answer_video" msgid="7809271910870211729">"Videó"</string>
     <string name="notification_action_answer_voice" msgid="1770796916369437773">"Hang"</string>
@@ -95,8 +95,8 @@
     <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Segélyhívás"</string>
     <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Rádió bekapcsolása..."</string>
     <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Nincs szolgáltatás. Újrapróbálkozás folyamatban…"</string>
-    <string name="dial_emergency_error" msgid="1509085166367420355">"A hívás sikertelen. A(z) <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> szám nem vészhívószám."</string>
-    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"A hívás sikertelen. Tárcsázzon vészhívószámot."</string>
+    <string name="dial_emergency_error" msgid="1509085166367420355">"A hívás sikertelen. A(z) <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> szám nem segélyhívószám."</string>
+    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"A hívás sikertelen. Tárcsázzon segélyhívószámot."</string>
     <string name="dialerKeyboardHintText" msgid="9192914825413747792">"A tárcsázáshoz használja a billentyűzetet"</string>
     <string name="onscreenHoldText_unselected" msgid="7092499303393171276">"Hívás tartása"</string>
     <string name="onscreenHoldText_selected" msgid="7127901498507384249">"Hívás folytatása"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Beállítás"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nincs megadva&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Egyéb hívásbeállítások"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Hívás a(z) <xliff:g id="PROVIDER_NAME">%s</xliff:g> szolgáltatón keresztül"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Hívás (<xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Bejövő hívás a következőn keresztül: <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"ismerős fotója"</string>
     <string name="goPrivate" msgid="865837794424530980">"magánbeszélgetés"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Alapértelmezett hang (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Telefon csengőhangja"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Csengetéskor rezegjen"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Tárcsázás kiegészítése"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Csengőhang és rezgés"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Konferenciahívás kezelése"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Segélyhívó szám"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> óra</item>
       <item quantity="one">1 óra</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profilfotó"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera ki"</string>
+    <string name="child_number" msgid="7437330400723805538">"a következő számon keresztül: <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Üzenet elküldve"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Legutóbbi üzenetek"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Cég adatai"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mérföldre"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> kilométerre"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Holnap ekkor nyit: <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Ma ekkor nyit: <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Ekkor zár: <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Zárva ma ekkor: <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Jelenleg nyitva van"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Jelenleg zárva van"</string>
 </resources>
diff --git a/InCallUI/res/values-hy-rAM/strings.xml b/InCallUI/res/values-hy-rAM/strings.xml
index a267eb7..47eb09c 100644
--- a/InCallUI/res/values-hy-rAM/strings.xml
+++ b/InCallUI/res/values-hy-rAM/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Տեսազանգել"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Տեսակապի հայցում"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Հնարավոր չէ կապակցել տեսազանգը"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Տեսազանգ (դադարեցված)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Տեսազանգի հարցումը մերժվել է"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Ձեր հետադարձ զանգի համարը՝\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Արտակարգ իրավիճակների հետադարձ զանգի համարը՝\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Համարարկում է"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Կարգավորում"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Նշված չէ&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Այլ զանգերի կարգավորումներ"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Զանգում է <xliff:g id="PROVIDER_NAME">%s</xliff:g>-ի միջոցով"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Զանգ <xliff:g id="PROVIDER_NAME">%s</xliff:g>-ի միջոցով"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Մուտքային զանգ <xliff:g id="PROVIDER_NAME">%s</xliff:g>-ի ցանցից"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"կոնտակտի լուսանկարը"</string>
     <string name="goPrivate" msgid="865837794424530980">"Անցնել անձնականի"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Լռելյայն ձայներանգը (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Հեռախոսի զանգերանգ"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Թրթռալ զանգի ժամանակ"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Թվատախտակի ինքնալրացում"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ձայներանգ &amp; Թրթռոց"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Կառավարեք կոնֆերանս զանգը"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Արտակարգ իրավիճակների հեռախոսահամար"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ժամ</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ժամ</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Պրոֆիլի լուսանկար"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Խցիկն անջատված է"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g>-ի միջոցով"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Գրառումը ուղարկված է"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Վերջին հաղորդագրությունները"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Բիզնես տեղեկատվություն"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> մղոն հեռու"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> կմ հեռու"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Բացվում է վաղը ժամը <xliff:g id="OPEN_TIME">%s</xliff:g>-ին"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Բացվում է այսօր ժամը <xliff:g id="OPEN_TIME">%s</xliff:g>-ին"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Փակվում է ժամը <xliff:g id="CLOSE_TIME">%s</xliff:g>-ին"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Փակվել է այսօր ժամը <xliff:g id="CLOSE_TIME">%s</xliff:g>-ին"</string>
+    <string name="open_now" msgid="6439301193613349163">"Հիմա բաց է"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Հիմա փակ է"</string>
 </resources>
diff --git a/InCallUI/res/values-in/strings.xml b/InCallUI/res/values-in/strings.xml
index 166e797..05d046a 100644
--- a/InCallUI/res/values-in/strings.xml
+++ b/InCallUI/res/values-in/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Video call"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Meminta video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Tidak dapat menyambungkan video call"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video call (Dijeda)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Permintaan video ditolak"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Nomor panggilan balik Anda\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Nomor panggilan balik darurat Anda\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Memanggil"</string>
@@ -76,7 +76,7 @@
     <string name="notification_action_answer_voice" msgid="1770796916369437773">"Suara"</string>
     <string name="notification_action_accept" msgid="2898609801209468429">"Terima"</string>
     <string name="notification_action_dismiss" msgid="2679969397930852858">"Tutup"</string>
-    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Hubungi kembali"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Telepon"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Pesan"</string>
     <string name="incall_error_power_off" msgid="6550191216405193368">"Untuk melakukan panggilan, pertama-tama matikan mode Pesawat."</string>
     <string name="incall_error_emergency_only" msgid="4678640422710818317">"Tidak terdaftar pada jaringan."</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Suara default (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Nada dering ponsel"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Bergetar saat berdering"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Pelengkapan otomatis tombol nomor"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Nada dering &amp; Getar"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Kelola penggilan telewicara"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Nomor darurat"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> jam</item>
       <item quantity="one">1 jam</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Foto profil"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera tidak aktif"</string>
+    <string name="child_number" msgid="7437330400723805538">"melalui <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Catatan telah dikirim"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Pesan terbaru"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Info bisnis"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mil"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Buka pukul <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Hari ini buka pukul <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Tutup pukul <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Hari ini tutup pukul <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Buka sekarang"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Sekarang tutup"</string>
 </resources>
diff --git a/InCallUI/res/values-is-rIS/strings.xml b/InCallUI/res/values-is-rIS/strings.xml
index 1603060..974028a 100644
--- a/InCallUI/res/values-is-rIS/strings.xml
+++ b/InCallUI/res/values-is-rIS/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Myndsímtal"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Biður um myndskeið"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Ekki tókst að tengja myndsímtal"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Myndsímtal (í bið)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Myndsímtalsbeiðni hafnað"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Svarhringinúmerið þitt\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Svarhringinúmerið þitt í neyð\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Hringir"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Sjálfgefið hljóð (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Hringitónn síma"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Titra við hringingu"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Flýtiritun símatakkaborðs"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Hringitónn og titringur"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Stjórna símafundi"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Neyðarnúmer"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> klukkustund</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> klukkustundir</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Prófílmynd"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Slökkt á myndavél"</string>
+    <string name="child_number" msgid="7437330400723805538">"úr <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Glósa send"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Nýleg skilaboð"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Fyrirtækjaupplýsingar"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"í <xliff:g id="DISTANCE">%.1f</xliff:g> míl. fjarlægð"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"í <xliff:g id="DISTANCE">%.1f</xliff:g> km fjarlægð"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Opið á morgun frá kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Opið í dag frá kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Lokunartími kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Var lokað í dag kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Opið núna"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Lokað núna"</string>
 </resources>
diff --git a/InCallUI/res/values-it/strings.xml b/InCallUI/res/values-it/strings.xml
index 775a2a5..45ba96f 100644
--- a/InCallUI/res/values-it/strings.xml
+++ b/InCallUI/res/values-it/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videochiamata"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Richiesta video..."</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Impossibile effettuare una videochiamata"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videochiamata (in pausa)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Richiesta video rifiutata"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Il numero da richiamare\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Numero da richiamare in caso di emergenza\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Chiamata in corso"</string>
@@ -60,7 +60,7 @@
     <string name="notification_ongoing_call" msgid="7068688957273482989">"Chiamata in corso"</string>
     <string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"Chiamata Wi-Fi in corso"</string>
     <string name="notification_on_hold" msgid="3480694969511790465">"In attesa"</string>
-    <string name="notification_incoming_call" msgid="2820429205043529642">"Chiamata ricevuta"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Chiamata in arrivo"</string>
     <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"Chiamata Wi-Fi in arrivo"</string>
     <string name="notification_incoming_video_call" msgid="7356836933934464805">"Videochiamata in arrivo"</string>
     <string name="notification_requesting_video_call" msgid="1405576812892369451">"Richiesta video in arrivo"</string>
@@ -103,7 +103,7 @@
     <string name="onscreenEndCallText" msgid="9039601192595655846">"Termina chiamata"</string>
     <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Tastierino"</string>
     <string name="onscreenMuteText" msgid="5011369181754261374">"No audio"</string>
-    <string name="onscreenAddCallText" msgid="5140385634712287403">"Aggiungi"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Aggiungi chiamata"</string>
     <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Unisci"</string>
     <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Scambia"</string>
     <string name="onscreenManageCallsText" msgid="5473231160123254154">"Gestisci chiamate"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Suono predefinito (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Suoneria telefono"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrazione quando squilla"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Tastierino con completam. auto"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Suoneria e vibrazione"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Gestisci audioconferenza"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Numero di emergenza"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ore</item>
       <item quantity="one">1 ora</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Foto del profilo"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Videocamera disattivata"</string>
+    <string name="child_number" msgid="7437330400723805538">"tramite <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Nota inviata"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Messaggi recenti"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Informazioni sull\'attività commerciale"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"Distante <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"Distante <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Apre domani alle ore <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Apre oggi alle ore <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Chiude alle ore <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Ha chiuso oggi alle ore <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Aperto ora"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Ora chiuso"</string>
 </resources>
diff --git a/InCallUI/res/values-iw/strings.xml b/InCallUI/res/values-iw/strings.xml
index 77ea49f..8bb71f2 100644
--- a/InCallUI/res/values-iw/strings.xml
+++ b/InCallUI/res/values-iw/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"שיחת וידאו"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"מבקש וידאו"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"לא ניתן לחבר שיחת וידאו"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"שיחת וידאו (מושהית)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"בקשת וידאו נדחתה"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"המספר שלך להתקשרות חזרה\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"המספר שלך להתקשרות חזרה במצב חירום\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"מחייג"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"צליל ברירת מחדל (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"רינגטון של טלפון"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"רטט בעת צלצול"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"השלמה אוטומטית בלוח חיוג"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"רינגטון ורטט"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"נהל שיחת ועידה"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"מספר חירום"</string>
@@ -174,4 +173,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> שעות</item>
       <item quantity="one">שעה אחת</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"תמונת פרופיל"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"מצלמה כבויה"</string>
+    <string name="child_number" msgid="7437330400723805538">"דרך <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"ההערה נשלחה"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"הודעות אחרונות"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"פרטי עסק"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"במרחק <xliff:g id="DISTANCE">%.1f</xliff:g> מייל"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"במרחק <xliff:g id="DISTANCE">%.1f</xliff:g> ק\"מ"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"ייפתח מחר ב-<xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"נפתח היום ב-<xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"נסגר ב-<xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"נסגר היום ב-<xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"פתוח עכשיו"</string>
+    <string name="closed_now" msgid="9175774453982778909">"סגור עכשיו"</string>
 </resources>
diff --git a/InCallUI/res/values-ja/strings.xml b/InCallUI/res/values-ja/strings.xml
index 677969e..dbf584b 100644
--- a/InCallUI/res/values-ja/strings.xml
+++ b/InCallUI/res/values-ja/strings.xml
@@ -20,7 +20,7 @@
     <string name="phoneAppLabel" product="default" msgid="906161039445636857">"電話"</string>
     <string name="onHold" msgid="9035493194749959955">"保留中"</string>
     <string name="unknown" msgid="6878797917991465859">"通知不可能"</string>
-    <string name="private_num" msgid="6713286113000232309">"非通知"</string>
+    <string name="private_num" msgid="6713286113000232309">"非通知設定"</string>
     <string name="payphone" msgid="4793877574636445118">"公衆電話"</string>
     <string name="confCall" msgid="1904840547188336828">"グループ通話"</string>
     <string name="call_lost" msgid="6183862117003999578">"通話が遮断されました"</string>
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"ビデオハングアウト"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"ビデオハングアウトをリクエストしています"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"ビデオハングアウトを接続できません"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"ビデオハングアウト（一時停止）"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"ビデオハングアウトのリクエスト不承認"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"コールバック先\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"緊急通報コールバック先\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"発信中"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"デフォルトの通知音（<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>）"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"着信音"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"着信時のバイブレーション"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"ダイヤルのオートコンプリート"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"着信音とバイブレーション"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"グループ通話オプション"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"緊急通報番号"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>時間</item>
       <item quantity="one">1時間</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"プロフィール写真"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"カメラをオフ"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g>に着信"</string>
+    <string name="note_sent" msgid="3548700178238244595">"メモを送信しました"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"最近のメッセージ"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"ビジネス情報"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g>マイル圏内"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g>km圏内"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>、<xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>～<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>、<xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"明日 <xliff:g id="OPEN_TIME">%s</xliff:g> に営業開始"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"本日 <xliff:g id="OPEN_TIME">%s</xliff:g> に営業開始"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g> に営業終了"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"本日 <xliff:g id="CLOSE_TIME">%s</xliff:g> に営業終了"</string>
+    <string name="open_now" msgid="6439301193613349163">"現在営業中"</string>
+    <string name="closed_now" msgid="9175774453982778909">"営業終了"</string>
 </resources>
diff --git a/InCallUI/res/values-ka-rGE/strings.xml b/InCallUI/res/values-ka-rGE/strings.xml
index 88c4e34..57e4dae 100644
--- a/InCallUI/res/values-ka-rGE/strings.xml
+++ b/InCallUI/res/values-ka-rGE/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"ვიდეოზარი"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"მიმდინარეობს ვიდეოს მოთხოვნა"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"ვერ ხორციელდება ვიდეო ზარით დაკავშირება"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"ვიდეოზარი (დაპაუზებული)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"ვიდეო მოთხოვნა არ დაკმაყოფილდა"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"თქვენი გადმორეკვის ნომერი \n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"თქვენი საგანგებო გადმორეკვის ნომერი \n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"აკრეფვა"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"ნაგულისხმები ხმა (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"ტელეფონის ზარი"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"დარეკვის დროს ვიბრაცია"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"აკრეფვის ავტოდასრულება"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"ზარის მელოდია &amp; ვიბრაცია"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"საკონფერენციო ზარის მართვა"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"გადაუდებელი დახმარების ნომერი"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> საათი</item>
       <item quantity="one">1 საათი</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"პროფილის ფოტო"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"კამერა გამორთულია"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g>-დან"</string>
+    <string name="note_sent" msgid="3548700178238244595">"ჩანიშვნა გაიგზავნა"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"ბოლო შეტყობინებები"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"ბიზნეს-ინფორმაცია"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> მილში"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> კმ-ში"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"იხსნება ხვალ <xliff:g id="OPEN_TIME">%s</xliff:g>-ზე"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"იხსნება დღეს <xliff:g id="OPEN_TIME">%s</xliff:g>-ზე"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"იკეტება <xliff:g id="CLOSE_TIME">%s</xliff:g>-ზე"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"დაიკეტა დღეს <xliff:g id="CLOSE_TIME">%s</xliff:g>-ზე"</string>
+    <string name="open_now" msgid="6439301193613349163">"ახლა ღიაა"</string>
+    <string name="closed_now" msgid="9175774453982778909">"ახლა დაკეტილია"</string>
 </resources>
diff --git a/InCallUI/res/values-kk-rKZ/strings.xml b/InCallUI/res/values-kk-rKZ/strings.xml
new file mode 100644
index 0000000..c7bbf2d
--- /dev/null
+++ b/InCallUI/res/values-kk-rKZ/strings.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2013 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Телефон"</string>
+    <string name="onHold" msgid="9035493194749959955">"Күтуде"</string>
+    <string name="unknown" msgid="6878797917991465859">"Белгісіз"</string>
+    <string name="private_num" msgid="6713286113000232309">"Жеке нөмір"</string>
+    <string name="payphone" msgid="4793877574636445118">"Автомат-телефон"</string>
+    <string name="confCall" msgid="1904840547188336828">"Мәжіліс қоңырауы"</string>
+    <string name="call_lost" msgid="6183862117003999578">"Қоңырау үзілді"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Үндеткіш"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Телефон құлағы"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Сымды телефон"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Келесі әуендер жіберілсін бе?\n"</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Жіберу әуендері\n"</string>
+    <string name="send_button" msgid="4106860097497818751">"Жіберу"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Иә"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Жоқ"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Ерекше таңбаны келесі таңбамен алмастыру"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"<xliff:g id="CONF_CALL_TIME">%s</xliff:g> мәжіліс қоңырауы"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Дауыстық пошта нөмірі"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Теруде"</string>
+    <string name="card_title_redialing" msgid="8253487008234167266">"Қайта терілуде"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Мәжіліс қоңырауы"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Келген қоңырау"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Қоңырау аяқталды"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Күтуде"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Телефон құлағын ілуде"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Қоңырау"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Mенің нөмірім <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="297586766381973954">"Бейне қосылуда"</string>
+    <string name="card_title_video_call" msgid="5898636679563320218">"Бейне қоңырау"</string>
+    <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Бейне сұралуда"</string>
+    <string name="card_title_video_call_error" msgid="9000555878389539225">"Бейне қоңырауға қосылу мүмкін емес"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Бейне сұрауы қабылданбады"</string>
+    <string name="card_title_callback_number" msgid="7307938207564217293">"Кері қоңырау шалу нөміріңіз\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Жедел кері қоңырау шалу нөміріңіз\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Теру"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Қабылданбаған қоңырау"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Қабылданбаған қоңыраулар"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> қабылданбаған қоңыраулар"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> қоңырауы қабылданбаған"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Ағымдағы қоңырау"</string>
+    <string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"Ағымдық Wi-Fi қоңырауы"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Күтуде"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Келген қоңырау"</string>
+    <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"Кіріс Wi-Fi қоңырауы"</string>
+    <string name="notification_incoming_video_call" msgid="7356836933934464805">"Кіріс бейне қоңырау"</string>
+    <string name="notification_requesting_video_call" msgid="1405576812892369451">"Кіріс бейне сұрау"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Жаңа дауыс хабары"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"(<xliff:g id="COUNT">%d</xliff:g>) дауыс хабары"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> нөмірін теру"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Дауыс хабарының нөмірі белгісіз"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Қызмет көрсетілмейді"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Таңдалған (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) желісі қол жетімсіз"</string>
+    <string name="notification_action_answer" msgid="6700362365135365143">"Жауап"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Қоңырауды аяқтау"</string>
+    <string name="notification_action_answer_video" msgid="7809271910870211729">"Бейне"</string>
+    <string name="notification_action_answer_voice" msgid="1770796916369437773">"Дауыс"</string>
+    <string name="notification_action_accept" msgid="2898609801209468429">"Қабылдау"</string>
+    <string name="notification_action_dismiss" msgid="2679969397930852858">"Бас тарту"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Қоңырау шалу"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Хабар"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Қоңырау шалу үшін алдымен Ұшақ режимін өшіріңіз."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Желіде тіркелмеген."</string>
+    <string name="incall_error_out_of_service" msgid="4100065333878929223">"Ұялы желі қол жетімді емес."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"Қоңырау шалу үшін жарамды нөмірді енгізіңіз."</string>
+    <string name="incall_error_call_failed" msgid="6302746943230078197">"Қоңырау шалу мүмкін емес."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMI қатарын бастау…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="323435289607131929">"Қызметке қолдау көрсетілмейді."</string>
+    <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"Қоңырауларды ауыстыру мүмкін емес."</string>
+    <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Қоңырауды бөлу мүмкін емес."</string>
+    <string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Тасымалдау мүмкін емес."</string>
+    <string name="incall_error_supp_service_conference" msgid="7010354362202271726">"Конференция мүмкін емес."</string>
+    <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Қоңырауды қабылдамау мүмкін емес."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Қоңырау(лар)ды босату мүмкін емес."</string>
+    <string name="incall_call_type_label_sip" msgid="4931428719494190371">"SIP қоңырауы"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Төтенше қоңырау"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Радионы қосуда…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Қызмет жоқ. Әрекет қайталануда…"</string>
+    <string name="dial_emergency_error" msgid="1509085166367420355">"Қоңырау шалу мүмкін емес. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> жедел нөмір емес."</string>
+    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Қоңырау шалу мүмкін емес. Жедел нөмірді теріңіз."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Теру үшін пернетақтаны қолдану"</string>
+    <string name="onscreenHoldText_unselected" msgid="7092499303393171276">"Қоңырауды ұстап тұру"</string>
+    <string name="onscreenHoldText_selected" msgid="7127901498507384249">"Қоңырауды жалғастыру"</string>
+    <string name="onscreenEndCallText" msgid="9039601192595655846">"Қоңырауды аяқтау"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Теру тақтасы"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Үнсіз"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Қоңырау қосу"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Қоңырауларды біріктіру"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Алмастыру"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Қоңырауларды басқару"</string>
+    <string name="onscreenManageConferenceText" msgid="6801708317570467407">"Конф-қ қоң. басқару"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Aудио"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Видео қоңырау"</string>
+    <string name="onscreenChangeToVoiceText" msgid="5311407863653867937">"Дауыстық қоңырауға өзгерту"</string>
+    <string name="onscreenSwitchCameraText" msgid="5324543493442787798">"Камераны ауыстыру"</string>
+    <string name="onscreenPauseVideoText" msgid="5663965924921429203">"Бейнені кідірту"</string>
+    <string name="onscreenOverflowText" msgid="2702376562345723132">"Басқа опциялар"</string>
+    <string name="player_started" msgid="6046262510243983589">"Ойнатқыш іске қосылды"</string>
+    <string name="player_stopped" msgid="8856926759436364963">"Ойнатқыш тоқтатылды"</string>
+    <string name="camera_not_ready" msgid="4955261496193316240">"Камера дайын емес"</string>
+    <string name="camera_ready" msgid="1903335385405807324">"Камера дайын"</string>
+    <string name="unknown_call_session_event" msgid="2431061946920253582">"Белгісіз қоңырау сеансы оқиғасы"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Қызмет"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Орнату"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Реттелген жоқt&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Басқа қоңырау параметрлері"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> арқылы шалу"</string>
+    <string name="incoming_via_template" msgid="1696993226115570960">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> арқылы кіріс"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"контакт фотосуреті"</string>
+    <string name="goPrivate" msgid="865837794424530980">"жеке қоңырауға ауысу"</string>
+    <string name="selectContact" msgid="781975788478987237">"контакт таңдау"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Өзіңіздікін жазыңыз..."</string>
+    <string name="custom_message_cancel" msgid="7516406059429609296">"Тоқтату"</string>
+    <string name="custom_message_send" msgid="5795754217085747742">"Жіберу"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Жауап"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"SMS жіберу"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Қабылдамау"</string>
+    <string name="description_target_answer_video_call" msgid="3495965588512395026">"Бейне қоңырауға жауап беру"</string>
+    <string name="description_target_answer_audio_call" msgid="8396296303320994450">"Аудио қоңырауға жауап беру"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="2894072808324604062">"Бейне сұрауды қабылдау"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="4093888612888538776">"Бейне сұрауды қабылдамау"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="5311037889642077468">"Бейне тасымалдау сұрауын қабылдау"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="3636108065510415975">"Бейне тасымалдау сұрауын қабылдамау"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="8668058323593087912">"Бейне алу сұрауын қабылдау"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="2355776509656298367">"Бейне алу сұрауын қабылдамау"</string>
+    <string name="description_direction_up" msgid="4441409581444516690">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үшін жоғары сырғыту."</string>
+    <string name="description_direction_left" msgid="7129873384376533287">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үшін сол жаққа сырғыту."</string>
+    <string name="description_direction_right" msgid="2122584234531957308">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үшін оң жаққа сырғыту."</string>
+    <string name="description_direction_down" msgid="4317245625565166742">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үшін төмен сырғыту."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Діріл"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Діріл"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Дыбыс"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Бастапқы бойынша дыбыс (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Телефон рингтоны"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Шырылдағанда тербеу"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Рингтон&amp; Діріл"</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Мәжіліс қоңырауын басқару"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Төтенше жағдай нөмірі"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="59971978269163609">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> секунд</item>
+      <item quantity="one">1 секунд</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="1103289948818175408">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> минут</item>
+      <item quantity="one">1 минут</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7560637459014865969">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> сағат</item>
+      <item quantity="one">1 сағат</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Профиль фотосуреті"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Камераны өшіру"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> арқылы"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Ескертпе жіберілді"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Жақындағы хабарлар"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Іскери ақпарат"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> миля қашықтықта"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> км қашықтықта"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Ертең <xliff:g id="OPEN_TIME">%s</xliff:g> уақытында ашылады"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Бүгін <xliff:g id="OPEN_TIME">%s</xliff:g> уақытында ашылады"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g> уақытында жабылады"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Бүгін <xliff:g id="CLOSE_TIME">%s</xliff:g> уақытында жабық"</string>
+    <string name="open_now" msgid="6439301193613349163">"Қазір ашық"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Қазір жабық"</string>
+</resources>
diff --git a/InCallUI/res/values-km-rKH/strings.xml b/InCallUI/res/values-km-rKH/strings.xml
index f8b16ef..7a31cbc 100644
--- a/InCallUI/res/values-km-rKH/strings.xml
+++ b/InCallUI/res/values-km-rKH/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"ហៅ​ជា​វីដេអូ"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"ស្នើ​វីដេអូ"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"មិនអាចភ្ជាប់ការហៅជាវីដេអូបានទេ"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"ការហៅជាវីដេអូ (បានផ្អាក)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"បានបដិសេធសំណើហៅជាវីដេអូ"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"លេខទូរស័ព្ទអាសន្នហៅទៅវិញរបស់អ្នក\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"លេខទូរស័ព្ទអាសន្នហៅទៅវិញរបស់អ្នក\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"ហៅ"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"សំឡេង​លំនាំដើម (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"សំឡេង​ទូរស័ព្ទ​រោទ៍"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"ញ័រ​នៅ​ពេល​រោទ៍"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"ផ្ទាំងចុចលេខបំពេញដោយស្វ័យប្រវត្តិ"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"សំឡេង​រោទ៍ &amp; ញ័រ"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"គ្រប់គ្រង​ការ​ហៅ​​ជា​សន្និសីទ"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"លេខ​ពេល​អាសន្ន"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ម៉ោង</item>
       <item quantity="one">1 ម៉ោង</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"រូបថត​ប្រវត្តិរូប"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"បិទកាមេរ៉ា"</string>
+    <string name="child_number" msgid="7437330400723805538">"តាមរយៈ <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"បានផ្ញើចំណាំ"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"សារថ្មីៗ"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"ព័ត៌មានធុរកិច្ច"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"ចម្ងាយ <xliff:g id="DISTANCE">%.1f</xliff:g> ម៉ាយល៍"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"ចម្ងាយ <xliff:g id="DISTANCE">%.1f</xliff:g> គម"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"បើកថ្ងៃស្អែកនៅម៉ោង <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"បើកថ្ងៃនេះនៅម៉ោង <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"បិទនៅម៉ោង <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"បានបិទថ្ងៃនេះនៅម៉ោង <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"បើកឥឡូវនេះ"</string>
+    <string name="closed_now" msgid="9175774453982778909">"បិទឥឡូវនេះ"</string>
 </resources>
diff --git a/InCallUI/res/values-kn-rIN/strings.xml b/InCallUI/res/values-kn-rIN/strings.xml
index 4d6c3fe..296d43d 100644
--- a/InCallUI/res/values-kn-rIN/strings.xml
+++ b/InCallUI/res/values-kn-rIN/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"ವೀಡಿಯೊ ಕರೆ"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"ವೀಡಿಯೊ ವಿನಂತಿಸಲಾಗುತ್ತಿದೆ"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"ವೀಡಿಯೊ ಕರೆಯನ್ನು ಸಂಪರ್ಕಪಡಿಸಲಾಗುವುದಿಲ್ಲ"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"ವೀಡಿಯೊ ಕರೆ (ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"ವೀಡಿಯೊ ವಿನಂತಿಯನ್ನು ತಿರಸ್ಕರಿಸಲಾಗಿದೆ"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"ನಿಮ್ಮ ಕರೆಯ ಸಂಖ್ಯೆ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"ನಿಮ್ಮ ತುರ್ತು ಕರೆಯ ಸಂಖ್ಯೆ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"ಡಯಲ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
@@ -58,10 +58,10 @@
     <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ತಪ್ಪಿದ ಕರೆಗಳು"</string>
     <string name="notification_missedCallTicker" msgid="504686252427747209">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> ಅವರಿಂದ ಮಿಸ್ಡ್‌ ಕಾಲ್‌"</string>
     <string name="notification_ongoing_call" msgid="7068688957273482989">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಕರೆ"</string>
-    <string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ ವೈ-ಫೈ ಕರೆ"</string>
+    <string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ Wi-Fi ಕರೆ"</string>
     <string name="notification_on_hold" msgid="3480694969511790465">"ತಡೆಹಿಡಿಯಲಾಗಿದೆ"</string>
     <string name="notification_incoming_call" msgid="2820429205043529642">"ಒಳಬರುವ ಕರೆ"</string>
-    <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"ಒಳಬರುವ ವೈ-ಫೈ ಕರೆ"</string>
+    <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"ಒಳಬರುವ Wi-Fi ಕರೆ"</string>
     <string name="notification_incoming_video_call" msgid="7356836933934464805">"ಒಳಬರುವ ವೀಡಿಯೊ ಕರೆ"</string>
     <string name="notification_requesting_video_call" msgid="1405576812892369451">"ಒಳಬರುವ ವೀಡಿಯೊ ವಿನಂತಿ"</string>
     <string name="notification_voicemail_title" msgid="8933468752045550523">"ಹೊಸ ಧ್ವನಿಮೇಲ್‌"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"ಸೆಟಪ್"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;ಹೊಂದಿಸಿಲ್ಲ&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"ಇತರ ಕರೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ಮೂಲಕ ಕರೆ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>ನಿಂದ ಕರೆ ಆಗುತ್ತಿದೆ"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ಅವರ ಒಳಬರುತ್ತಿರುವ ಕರೆ"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"ಸಂಪರ್ಕ ಫೋಟೋ"</string>
     <string name="goPrivate" msgid="865837794424530980">"ಖಾಸಗಿಯಾಗಿ ಹೋಗಿ"</string>
@@ -132,7 +132,7 @@
     <string name="custom_message_cancel" msgid="7516406059429609296">"ರದ್ದುಮಾಡು"</string>
     <string name="custom_message_send" msgid="5795754217085747742">"ಕಳುಹಿಸು"</string>
     <string name="description_target_answer" msgid="7205604197797472471">"ಉತ್ತರ"</string>
-    <string name="description_target_send_sms" msgid="2098326025587950144">"SMS ಕಳುಹಿಸು"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"SMS ಕಳುಹಿಸಿ"</string>
     <string name="description_target_decline" msgid="4789834364389731957">"ನಿರಾಕರಿಸು"</string>
     <string name="description_target_answer_video_call" msgid="3495965588512395026">"ವೀಡಿಯೊ ಕರೆ ರೂಪದಲ್ಲಿ ಉತ್ತರಿಸಿ"</string>
     <string name="description_target_answer_audio_call" msgid="8396296303320994450">"ಆಡಿಯೊ ಕರೆಯಂತೆ ಉತ್ತರಿಸಿ"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"ಡೀಫಾಲ್ಟ್‌ ಧ್ವನಿ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"ಫೋನ್ ರಿಂಗ್‌ಟೋನ್"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"ರಿಂಗ್ ಆಗುವಾಗ ಕಂಪಿಸು"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"ಸ್ವಯಂಪರಿಪೂರ್ಣತೆ ಡಯಲ್ ಪ್ಯಾಡ್"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"ರಿಂಗ್‌ಟೋನ್‌‌ &amp; ವೈಬ್ರೇಟ್‌"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"ಕಾನ್ಫರೆನ್ಸ್ ಕರೆಯನ್ನು ನಿರ್ವಹಿಸಿ"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"ತುರ್ತು ಸಂಖ್ಯೆ"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ಗಂಟೆಗಳು</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ಗಂಟೆಗಳು</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"ಪ್ರೊಫೈಲ್ ಫೋಟೋ‌"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"ಕ್ಯಾಮರಾ ಆಫ್‌"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> ಮೂಲಕ"</string>
+    <string name="note_sent" msgid="3548700178238244595">"ಟಿಪ್ಪಣಿ ಕಳುಹಿಸಲಾಗಿದೆ"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"ಇತ್ತೀಚಿನ ಸಂದೇಶಗಳು"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"ವ್ಯಾಪಾರ ಮಾಹಿತಿ"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> ಮೈಲು ದೂರ"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> ಕಿಮೀ ದೂರ"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"ನಾಳೆ <xliff:g id="OPEN_TIME">%s</xliff:g> ಗಂಟೆಗೆ ತೆರೆಯುತ್ತದೆ"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"ಇಂದು <xliff:g id="OPEN_TIME">%s</xliff:g> ಗಂಟೆಗೆ ತೆರೆಯುತ್ತದೆ"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g> ಗಂಟೆಗೆ ಮುಚ್ಚಲಾಗಿದೆ"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"ಇಂದು <xliff:g id="CLOSE_TIME">%s</xliff:g> ಗಂಟೆಗೆ ಮುಚ್ಚಲಾಗಿದೆ"</string>
+    <string name="open_now" msgid="6439301193613349163">"ಇದೀಗ ತೆರೆಯಲಾಗಿದೆ"</string>
+    <string name="closed_now" msgid="9175774453982778909">"ಇದೀಗ ಮುಚ್ಚಲಾಗಿದೆ"</string>
 </resources>
diff --git a/InCallUI/res/values-ko/strings.xml b/InCallUI/res/values-ko/strings.xml
index a689099..2797f84 100644
--- a/InCallUI/res/values-ko/strings.xml
+++ b/InCallUI/res/values-ko/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"화상 통화"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"동영상 요청 중"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"화상 통화를 연결할 수 없습니다."</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"화상 통화(일시중지됨)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"동영상 요청 거부됨"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"콜백 번호\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"긴급 콜백 번호\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"전화 거는 중"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"기본 알림음(<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"전화 벨소리"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"전화 수신 시 진동"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"다이얼패드 자동완성"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"벨소리 및 진동"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"다자간 통화 관리"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"비상 전화번호"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g>시간</item>
       <item quantity="one">1시간</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"프로필 사진"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"카메라 꺼짐"</string>
+    <string name="child_number" msgid="7437330400723805538">"수신 번호: <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"메모가 전송되었습니다."</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"최근 메시지"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"비즈니스 정보"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g>mi 거리"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g>km 거리"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>~<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"내일 <xliff:g id="OPEN_TIME">%s</xliff:g>에 영업 시작"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"오늘 <xliff:g id="OPEN_TIME">%s</xliff:g>에 영업 시작"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g>에 영업 종료"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"오늘 <xliff:g id="CLOSE_TIME">%s</xliff:g>에 영업 종료됨"</string>
+    <string name="open_now" msgid="6439301193613349163">"영업 중"</string>
+    <string name="closed_now" msgid="9175774453982778909">"영업 종료"</string>
 </resources>
diff --git a/InCallUI/res/values-ky-rKG/strings.xml b/InCallUI/res/values-ky-rKG/strings.xml
new file mode 100644
index 0000000..446d2d9
--- /dev/null
+++ b/InCallUI/res/values-ky-rKG/strings.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2013 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Телефон"</string>
+    <string name="onHold" msgid="9035493194749959955">"Күтүлүүдө"</string>
+    <string name="unknown" msgid="6878797917991465859">"Белгисиз"</string>
+    <string name="private_num" msgid="6713286113000232309">"Купуя номер"</string>
+    <string name="payphone" msgid="4793877574636445118">"Таксофон"</string>
+    <string name="confCall" msgid="1904840547188336828">"Конференц-чалуу"</string>
+    <string name="call_lost" msgid="6183862117003999578">"Чалуу үзүлдү"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Катуу сүйлөткүч"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Гарнитура"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Зымдуу кулакчын"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Төмөнкү номер жөнөтүлсүнбү?\n"</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Тоналдык жөнөтүү болууда \n"</string>
+    <string name="send_button" msgid="4106860097497818751">"Жөнөтүү"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Ооба"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Жок"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Атайын белгини муну менен алмаштыр"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Конференц-чалуу <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Үн почтасынын номери"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Терилүүдө"</string>
+    <string name="card_title_redialing" msgid="8253487008234167266">"Кайра терүү"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Конференц-чалуу"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Кирүүчү чалуу"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Чалуу аяктады"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Күтүлүүдө"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Телефон коюлууда"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Чалууда"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Менин номерим <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="297586766381973954">"Видео туташтырылууда"</string>
+    <string name="card_title_video_call" msgid="5898636679563320218">"Видео чалуу"</string>
+    <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Видео"</string>
+    <string name="card_title_video_call_error" msgid="9000555878389539225">"Видео чалууга туташуу мүмкүн болбой жатат"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Видео сурам четке кагылды"</string>
+    <string name="card_title_callback_number" msgid="7307938207564217293">"Төмөнкү номерге кайра чалуу\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Төмөнкү номерге шашылыш кайра чалуу\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Терилүүдө"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Кабыл алынбаган чалуу"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Кабыл алынбаган чалуулар"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> кабыл алынбаган чалуу"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> дегенден кабыл алынбаган чалуу"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Учурдагы чалуу"</string>
+    <string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"Аткаруудагы Wi-Fi чалуу"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Күтүлүүдө"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Кирүүчү чалуу"</string>
+    <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"Кирүүчү Wi-Fi чалуу"</string>
+    <string name="notification_incoming_video_call" msgid="7356836933934464805">"Келип жаткан видео чалуу"</string>
+    <string name="notification_requesting_video_call" msgid="1405576812892369451">"Келип жаткан видео сурамы"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Жаңы үн почтасы"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Жаңы үн почтасы (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> номерин терүү"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Үн почтасынын номери белгисиз"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Байланыш жок"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Тандалган тармак (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) жеткиликсиз"</string>
+    <string name="notification_action_answer" msgid="6700362365135365143">"Жооп берүү"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Телефонду коюу"</string>
+    <string name="notification_action_answer_video" msgid="7809271910870211729">"Видео"</string>
+    <string name="notification_action_answer_voice" msgid="1770796916369437773">"Үн"</string>
+    <string name="notification_action_accept" msgid="2898609801209468429">"Кабыл алуу"</string>
+    <string name="notification_action_dismiss" msgid="2679969397930852858">"Этибарга албоо"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Кайра чалуу"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Билдирүү"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Чалуу үчүн, адегенде учак режимин өчүрүңүз."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Тармакта катталган эмес."</string>
+    <string name="incall_error_out_of_service" msgid="4100065333878929223">"Уюктук тармак жеткиликтүү эмес."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"Чалуу үчүн, жарактуу номер киргизиңиз."</string>
+    <string name="incall_error_call_failed" msgid="6302746943230078197">"Чалынбай жатат."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMI кезеги башталууда…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="323435289607131929">"Кызмат колдоого алынбайт."</string>
+    <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"Чалуулар которуштурулбай жатат."</string>
+    <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Чалуу бөлүнбөй жатат."</string>
+    <string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Өткөрүлбөй жатат."</string>
+    <string name="incall_error_supp_service_conference" msgid="7010354362202271726">"Конференц-байланышы түзүлбөй жатат."</string>
+    <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Чалуу четке кагылбай жатат."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Чалуу(лар) бошотулбай жатат."</string>
+    <string name="incall_call_type_label_sip" msgid="4931428719494190371">"SIP чалуу"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Шашылыш чалуу"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Радио күйгүзүлүүдө…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Кызмат жок. Кайра аракет кылууда…"</string>
+    <string name="dial_emergency_error" msgid="1509085166367420355">"Чалынбай жатат. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> өзгөчө кырдаал номери эмес."</string>
+    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Чалынбай жатат. Өзгөчө кырдаал номерин териңиз."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Баскычтоп менен териңиз"</string>
+    <string name="onscreenHoldText_unselected" msgid="7092499303393171276">"Чалууну Кармоо"</string>
+    <string name="onscreenHoldText_selected" msgid="7127901498507384249">"Чалууну Улантуу"</string>
+    <string name="onscreenEndCallText" msgid="9039601192595655846">"Чалууну бүтүрүү"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Тергич"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Үнсүз"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Чалуу кошуу"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Чалууларды бириктирүү"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Алмаштыруу"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Чалууларды башкаруу"</string>
+    <string name="onscreenManageConferenceText" msgid="6801708317570467407">"Конференц-чалууну башкаруу"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Аудио"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Видео чалуу"</string>
+    <string name="onscreenChangeToVoiceText" msgid="5311407863653867937">"Үн чалууга өзгөртүү"</string>
+    <string name="onscreenSwitchCameraText" msgid="5324543493442787798">"Камерага которулуу"</string>
+    <string name="onscreenPauseVideoText" msgid="5663965924921429203">"Видеону бир азга токтото туруу"</string>
+    <string name="onscreenOverflowText" msgid="2702376562345723132">"Көбүрөөк параметрлер"</string>
+    <string name="player_started" msgid="6046262510243983589">"Ойноткуч башталды"</string>
+    <string name="player_stopped" msgid="8856926759436364963">"Ойноткуч токтотулду"</string>
+    <string name="camera_not_ready" msgid="4955261496193316240">"Камера даяр эмес"</string>
+    <string name="camera_ready" msgid="1903335385405807324">"Камера даяр"</string>
+    <string name="unknown_call_session_event" msgid="2431061946920253582">"Чалуу сеансынын окуясы белгисиз"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Кызмат"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Орнотуу"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Орнотулган эмес&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Башка чалуу жөндөөлөрү"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> аркылуу чалуу"</string>
+    <string name="incoming_via_template" msgid="1696993226115570960">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> аркылуу келүүдө"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"байланыштын сүрөтү"</string>
+    <string name="goPrivate" msgid="865837794424530980">"купуя режимине өтүү"</string>
+    <string name="selectContact" msgid="781975788478987237">"байланыш тандоо"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Каалганыңызды жазыңыз..."</string>
+    <string name="custom_message_cancel" msgid="7516406059429609296">"Жокко чыгаруу"</string>
+    <string name="custom_message_send" msgid="5795754217085747742">"Жөнөтүү"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Жооп берүү"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"SMS жөнөтүү"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Четке кагуу"</string>
+    <string name="description_target_answer_video_call" msgid="3495965588512395026">"Видео чалуу түрүндө жооп берүү"</string>
+    <string name="description_target_answer_audio_call" msgid="8396296303320994450">"Аудио чалуу жооп берүү"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="2894072808324604062">"Видео сурамын кабыл алуу"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="4093888612888538776">"Видео сурамын четке кагуу"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="5311037889642077468">"Видео өткөрүү өтүнүчүн кабыл алуу"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="3636108065510415975">"Видео өткөрүү өтүнүчүн четке кагуу"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="8668058323593087912">"Видео алуу өтүнүчүн кабыл алуу"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="2355776509656298367">"Видео алуу өтүнүчүн четке кагуу"</string>
+    <string name="description_direction_up" msgid="4441409581444516690">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үчүн жогору жылмыштырыңыз."</string>
+    <string name="description_direction_left" msgid="7129873384376533287">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үчүн солго жылмыштырыңыз."</string>
+    <string name="description_direction_right" msgid="2122584234531957308">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үчүн оңго жылмыштырыңыз."</string>
+    <string name="description_direction_down" msgid="4317245625565166742">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үчүн төмөн сылап коюңуз."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Титиретүү"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Титиретүү"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Үнү"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Абалкы үнү (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Телефондун рингтону"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Шыңгырап жатканда титиретүү"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Рингтон жана Титирөө"</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Конференц-чалууну башкаруу"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Куткаруучулардын номуру"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="59971978269163609">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> секунд</item>
+      <item quantity="one">1 секунд</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="1103289948818175408">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> мүнөт</item>
+      <item quantity="one">1 мүнөт</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7560637459014865969">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> саат</item>
+      <item quantity="one">1 саат</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Профиль сүрөтү"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Камера өчүк"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> аркылуу"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Билдирүү жөнөтүлдү"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Акыркы билдирүүлөр"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Ишкердик маалыматы"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> миля алыста"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> км алыста"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Эртең саат <xliff:g id="OPEN_TIME">%s</xliff:g> ачылат"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Бүгүн саат <xliff:g id="OPEN_TIME">%s</xliff:g> ачылат"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Саат <xliff:g id="CLOSE_TIME">%s</xliff:g> жабылат"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Бүгүн саат <xliff:g id="CLOSE_TIME">%s</xliff:g> жабылды"</string>
+    <string name="open_now" msgid="6439301193613349163">"Эми ачылды"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Эми жабылды"</string>
+</resources>
diff --git a/InCallUI/res/values-lo-rLA/strings.xml b/InCallUI/res/values-lo-rLA/strings.xml
index 3986994..9bbbca3 100644
--- a/InCallUI/res/values-lo-rLA/strings.xml
+++ b/InCallUI/res/values-lo-rLA/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"ໂທ​ແບບ​ເຫັນ​ໜ້າ"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"​ກຳ​ລັງ​ຮ້ອງ​ຂໍ​ວິ​ດີ​ໂອ"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"ບໍ່​ສາ​ມາດ​ເຊື່ອມ​ຕໍ່​ການ​ໂທເຫັນພາບ​ໄດ້"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"ໂທເຫັນພາບ (ຢຸດ​ແລ້ວ)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"ປະ​ຕິ​ເສດ​ການ​ຂໍ​ວິ​ດີ​ໂອ​ແລ້ວ"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"ເບີ​ໂທ​ກັບ​ຂອງ​ທ່ານ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"ເບີ​ໂທ​ກັບ​ສຸກ​ເສີນ​ຂອງ​ທ່ານ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"ກຳລັງໂທ"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"ສຽງເລີ່ມຕົ້ນ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"ຣິງໂທນໂທລະສັບ"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"ສັ່ນເຕືອນເມື່ອມີສາຍໂທເຂົ້າ"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"ຕື່ມ​ໃສ່​ແປ້ນ​ກົດ​ໂທ​ອັດ​ຕະ​ໂນ​ມັດ"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"ຣິງໂທນ &amp; ການສັ່ນເຕືອນ"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"ຈັດການການປະຊຸມສາຍ"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"ເບີໂທສຸກເສີນ"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ຊົ່ວ​ໂມງ</item>
       <item quantity="one">1 ຊົ່ວໂມງ</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"ຮູບໂປຣໄຟລ໌"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"ກ້ອງ​ຖ່າຍ​ຮູບ​ປິດ"</string>
+    <string name="child_number" msgid="7437330400723805538">"ຜ່ານ <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"ສົ່ງ​ບັນ​ທຶກ​ແລ້ວ"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"ຂໍ້​ຄວາມ​ບໍ່​ດົນ​ມາ​ນີ້"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"ຂໍ້​ມູນ​ທຸ​ລະ​ກິດ"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> ໄມ​ລ໌​ ຫ່າງ​ອອກ​ໄປ"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> ກມ ຫ່າງ​ອອກ​ໄປ"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"ເປີດມື້ອື່ນເວລາ <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"ເປີດມື້ນີ້ເວລາ <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"ປິດເວລາ <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"ປິດແລ້ວມື້ນີ້ເວລາ <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"ດຽວ​ນີ້​ເປີດ"</string>
+    <string name="closed_now" msgid="9175774453982778909">"ດຽວ​ນີ້​ປິດ​ແລ້ວ"</string>
 </resources>
diff --git a/InCallUI/res/values-lt/strings.xml b/InCallUI/res/values-lt/strings.xml
index e18916a..e00ae85 100644
--- a/InCallUI/res/values-lt/strings.xml
+++ b/InCallUI/res/values-lt/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Vaizdo skambutis"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Pateikiama vaizdo skambučio užklausa"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Nepavyko prijungti vaizdo įrašo skambučio"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Vaizdo skambutis (pristabdytas)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Vaizdo įrašo užklausa atmesta"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Atskambinimo numeris\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Atskambinimo numeris, kuriuos skambina pagalbos tarnyba\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Renkamas numeris"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Sąranka"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nenustatyta&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Kiti skambučio nustatymai"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Skambinama naudojantis „<xliff:g id="PROVIDER_NAME">%s</xliff:g>“ paslaugomis"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Skam. naudojant „<xliff:g id="PROVIDER_NAME">%s</xliff:g>“"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Gaunama per „<xliff:g id="PROVIDER_NAME">%s</xliff:g>“"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"kontakto nuotrauka"</string>
     <string name="goPrivate" msgid="865837794424530980">"naudoti privatų režimą"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Numatytasis garsas (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Telefono skambėjimo tonas"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibruoti, kai skambina"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Autom. skamb. skyd. užbaig."</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Skambėjimo tonas ir vibracija"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Valdyti konferencinį skambutį"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Pagalbos numeris"</string>
@@ -174,4 +173,21 @@
       <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> valandos</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> valandų</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profilio nuotrauka"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Fotoaparatas išjungtas"</string>
+    <string name="child_number" msgid="7437330400723805538">"naudojant <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Užrašas išsiųstas"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Naujausi pranešimai"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Verslo informacija"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"Už <xliff:g id="DISTANCE">%.1f</xliff:g> myl."</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"Už <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Rytoj atidaroma <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Šiandien atidaroma <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Uždaroma <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Šiandien uždaryta <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Dabar atidaryta"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Dabar uždaryta"</string>
 </resources>
diff --git a/InCallUI/res/values-lv/strings.xml b/InCallUI/res/values-lv/strings.xml
index 02fc4ae..752d8cf 100644
--- a/InCallUI/res/values-lv/strings.xml
+++ b/InCallUI/res/values-lv/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videozvans"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Notiek video pieprasīšana"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Nevar veikt videozvanu"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videozvans (pārtraukts)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Video pieprasījums noraidīts"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Jūsu atzvana numurs\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Jūsu ārkārtas atzvana numurs\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Notiek numura sastādīšana"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Iestatīšana"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nav iestatīts&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Citi zvanu iestatījumi"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Zvans, ko nodrošina <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Zvanu nodrošina <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Ienākošie zvani, ko nodrošina <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"kontaktpersonas fotoattēls"</string>
     <string name="goPrivate" msgid="865837794424530980">"pārslēgt uz privāto režīmu"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Noklusējuma signāls (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Tālruņa zvana signāls"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrēt zvanot"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Numura automātiska pabeigšana"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Zvana signāls un vibrācija"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Pārvaldīt konferences zvanu"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Ārkārtas numurs"</string>
@@ -171,4 +170,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> stunda</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> stundas</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profila fotoattēls"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Izslēgt kameru"</string>
+    <string name="child_number" msgid="7437330400723805538">"no numura <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Piezīme nosūtīta"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Pēdējie ziņojumi"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Informācija par uzņēmumu"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> jūdzes(-džu) attālumā"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km attālumā"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Tiks atvērts rīt plkst. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Tiks atvērts šodien plkst. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Tiks slēgts plkst. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Tika slēgts šodien plkst. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Atvērts"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Slēgts"</string>
 </resources>
diff --git a/InCallUI/res/values-mk-rMK/strings.xml b/InCallUI/res/values-mk-rMK/strings.xml
new file mode 100644
index 0000000..6699bb5
--- /dev/null
+++ b/InCallUI/res/values-mk-rMK/strings.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2013 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Телефон"</string>
+    <string name="onHold" msgid="9035493194749959955">"На чекање"</string>
+    <string name="unknown" msgid="6878797917991465859">"Непознато"</string>
+    <string name="private_num" msgid="6713286113000232309">"Приватен број"</string>
+    <string name="payphone" msgid="4793877574636445118">"Говорница"</string>
+    <string name="confCall" msgid="1904840547188336828">"Конференциски повик"</string>
+    <string name="call_lost" msgid="6183862117003999578">"Повикот е испуштен"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Звучник"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Слушалка"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Жични слушалки"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Испрати ги следниве тонови?\n"</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Испраќање тонови\n"</string>
+    <string name="send_button" msgid="4106860097497818751">"Испрати"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Да"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Не"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Замени резервен знак со"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Конференциски повик <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Број на говорна пошта"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Бирање"</string>
+    <string name="card_title_redialing" msgid="8253487008234167266">"Повторно бирање"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Конференциски повик"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Дојдовен повик"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Повикот заврши"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"На чекање"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Прекинување повик"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Повик во тек"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Мојот број е <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="297586766381973954">"Се поврзува видео"</string>
+    <string name="card_title_video_call" msgid="5898636679563320218">"Видеоповик"</string>
+    <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Се побарува видео"</string>
+    <string name="card_title_video_call_error" msgid="9000555878389539225">"Не може да поврзе видеоповик"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Барањето за видео е одбиено"</string>
+    <string name="card_title_callback_number" msgid="7307938207564217293">"Вашиот број за повратен повик\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Вашиот број за итен повик\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Бирање"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Пропуштен повик"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Пропуштени повици"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> пропуштени повици"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Пропуштен повик од <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Тековен повик"</string>
+    <string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"Појдовен повик преку Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"На чекање"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Дојдовен повик"</string>
+    <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"Дојдовен повик преку Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7356836933934464805">"Дојдовен видеоповик"</string>
+    <string name="notification_requesting_video_call" msgid="1405576812892369451">"Дојдовно побарување за видео"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Нова говорна пошта"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Нова говорна пошта (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Бирај <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Бројот на говорна пошта е непознат"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Нема услуга"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Одбраната мрежа (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) е недостапна"</string>
+    <string name="notification_action_answer" msgid="6700362365135365143">"Одговори"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Спушти"</string>
+    <string name="notification_action_answer_video" msgid="7809271910870211729">"Видео"</string>
+    <string name="notification_action_answer_voice" msgid="1770796916369437773">"Гласовен"</string>
+    <string name="notification_action_accept" msgid="2898609801209468429">"Прифати"</string>
+    <string name="notification_action_dismiss" msgid="2679969397930852858">"Отфрли"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Повикува назад"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Порака"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"За да воспоставите повик, прво исклучете режим на работа во авион."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Не е регистриран на мрежа."</string>
+    <string name="incall_error_out_of_service" msgid="4100065333878929223">"Не е достапна мобилна мрежа."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"За да повикате, внесете важечки број."</string>
+    <string name="incall_error_call_failed" msgid="6302746943230078197">"Не може да повика."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Започнува MMI низа..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="323435289607131929">"Услугата не е поддржана."</string>
+    <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"Не може да префрли повици."</string>
+    <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Не може да оддели повик."</string>
+    <string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Не може да пренесе."</string>
+    <string name="incall_error_supp_service_conference" msgid="7010354362202271726">"Не може да влезе во конференција."</string>
+    <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Не може да отфрли повик."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Не може да реализира повик(ци)."</string>
+    <string name="incall_call_type_label_sip" msgid="4931428719494190371">"Повик преку СИП"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Повик за итни случаи"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Вклучување радио..."</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Нема услуга. Се обидува повторно…"</string>
+    <string name="dial_emergency_error" msgid="1509085166367420355">"Не може да повика. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> не е број за итни повици."</string>
+    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Не може да повика. Бирајте го бројот за итни повици."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Користи тастатурата за бирање"</string>
+    <string name="onscreenHoldText_unselected" msgid="7092499303393171276">"Ставете повик на чекање"</string>
+    <string name="onscreenHoldText_selected" msgid="7127901498507384249">"Продолжете повик"</string>
+    <string name="onscreenEndCallText" msgid="9039601192595655846">"Завршете повик"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Тастатура за бирање"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Исклучи звук"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Додај повик"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Спој повици"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Замени"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Управувај со повици"</string>
+    <string name="onscreenManageConferenceText" msgid="6801708317570467407">"Управувај со повикот"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Аудио"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Видео повик"</string>
+    <string name="onscreenChangeToVoiceText" msgid="5311407863653867937">"Промени во гласовен повик"</string>
+    <string name="onscreenSwitchCameraText" msgid="5324543493442787798">"Префрли фотоапарат"</string>
+    <string name="onscreenPauseVideoText" msgid="5663965924921429203">"Паузирај видео"</string>
+    <string name="onscreenOverflowText" msgid="2702376562345723132">"Повеќе опции"</string>
+    <string name="player_started" msgid="6046262510243983589">"Плеерот започна"</string>
+    <string name="player_stopped" msgid="8856926759436364963">"Плеерот запре"</string>
+    <string name="camera_not_ready" msgid="4955261496193316240">"Камерата не е подготвена"</string>
+    <string name="camera_ready" msgid="1903335385405807324">"Камерата е подготвена"</string>
+    <string name="unknown_call_session_event" msgid="2431061946920253582">"Непознат настан на сесија на повик"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Услуга"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Подесување"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Не е подесен&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Други подесувања на повик"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Повикување преку <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="1696993226115570960">"Дојдовни повици преку <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"фотографија за контакт"</string>
+    <string name="goPrivate" msgid="865837794424530980">"префли на приватно"</string>
+    <string name="selectContact" msgid="781975788478987237">"избери контакт"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Напиши сопствена..."</string>
+    <string name="custom_message_cancel" msgid="7516406059429609296">"Откажи"</string>
+    <string name="custom_message_send" msgid="5795754217085747742">"Испрати"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Одговори"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Испрати СМС"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Одбиј"</string>
+    <string name="description_target_answer_video_call" msgid="3495965588512395026">"Одговори со видеоповик"</string>
+    <string name="description_target_answer_audio_call" msgid="8396296303320994450">"Одговори со аудиоповик"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="2894072808324604062">"Прифати барање за видео"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="4093888612888538776">"Одбиј барање за видео"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="5311037889642077468">"Прифати барање за пренос на видео"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="3636108065510415975">"Одбиј барање за пренос на видео"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="8668058323593087912">"Прифати барање за прием на видео"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="2355776509656298367">"Одбиј барање за прием на видео"</string>
+    <string name="description_direction_up" msgid="4441409581444516690">"Лизгај нагоре за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="7129873384376533287">"Лизгај налево за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="2122584234531957308">"Лизгај надесно за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="4317245625565166742">"Лизгај надолу за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Вибрирање"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Вибрирање"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Звук"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Стандарден звук (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Мелодија на телефон"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Вибрирај кога ѕвони"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Мелодија и вибрации"</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Управувај со конференциски повик"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Број за итни случаи"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="59971978269163609">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> секунда</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> секунди</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="1103289948818175408">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> минута</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> минути</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7560637459014865969">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> час</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> часа</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Фотографија на профил"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Камерата е исклучена"</string>
+    <string name="child_number" msgid="7437330400723805538">"преку <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Испратена е белешка"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Скорешни пораки"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Бизнис информации"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"Оддалечено <xliff:g id="DISTANCE">%.1f</xliff:g> ми"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"Оддалчено <xliff:g id="DISTANCE">%.1f</xliff:g> км"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Отвора утре во <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Отвора денес во <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Затвора во <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Затвори денес во <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Сега е отворено"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Сега е затворено"</string>
+</resources>
diff --git a/InCallUI/res/values-ml-rIN/strings.xml b/InCallUI/res/values-ml-rIN/strings.xml
index bda73ac..58bec29 100644
--- a/InCallUI/res/values-ml-rIN/strings.xml
+++ b/InCallUI/res/values-ml-rIN/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"വീഡിയോ കോള്‍"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"വീഡിയോ അഭ്യർത്ഥിക്കുന്നു"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"വീഡിയോ കോളുമായി കണക്‌റ്റുചെയ്യാനാവില്ല"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"വീഡിയോ കോൾ (താൽക്കാലികമായി നിർത്തി)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"വീഡിയോ അഭ്യർത്ഥന നിരസിച്ചു"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"നിങ്ങൾ തിരിച്ചുവിളിക്കേണ്ട നമ്പർ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"അടിയന്തിരമായി നിങ്ങൾ തിരിച്ചുവിളിക്കേണ്ട നമ്പർ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"ഡയൽ ചെയ്യുന്നു"</string>
@@ -58,10 +58,10 @@
     <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> മിസ്‌ഡ് കോളുകൾ"</string>
     <string name="notification_missedCallTicker" msgid="504686252427747209">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> എന്നതിൽ നിന്നുള്ള മിസ്‌ഡ് കോൾ"</string>
     <string name="notification_ongoing_call" msgid="7068688957273482989">"കോൾ സജീവമാണ്"</string>
-    <string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"ഓൺഗോയിംഗ് Wi-Fi കോൾ"</string>
+    <string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"ഓൺഗോയിംഗ് വൈഫൈ കോൾ"</string>
     <string name="notification_on_hold" msgid="3480694969511790465">"ഹോള്‍ഡിലാണ്"</string>
     <string name="notification_incoming_call" msgid="2820429205043529642">"ഇന്‍കമിംഗ് കോള്‍"</string>
-    <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"ഇൻകമിംഗ് Wi-Fi കോൾ"</string>
+    <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"ഇൻകമിംഗ് വൈഫൈ കോൾ"</string>
     <string name="notification_incoming_video_call" msgid="7356836933934464805">"ഇൻകമിംഗ് വീഡിയോ കോൾ"</string>
     <string name="notification_requesting_video_call" msgid="1405576812892369451">"ഇൻകമിംഗ് വീഡിയോ അഭ്യർത്ഥന"</string>
     <string name="notification_voicemail_title" msgid="8933468752045550523">"പുതിയ വോയ്‌സ്‌മെയിൽ"</string>
@@ -70,7 +70,7 @@
     <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"വോയ്‌സ്‌മെയിൽ നമ്പർ അജ്ഞാതമാണ്"</string>
     <string name="notification_network_selection_title" msgid="4224455487793492772">"സേവനമില്ല"</string>
     <string name="notification_network_selection_text" msgid="2607085729661923269">"തിരഞ്ഞെടുത്ത നെറ്റ്‌വർക്ക് (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ലഭ്യമല്ല"</string>
-    <string name="notification_action_answer" msgid="6700362365135365143">"മറുപടി നൽകുക"</string>
+    <string name="notification_action_answer" msgid="6700362365135365143">"മറുപടി"</string>
     <string name="notification_action_end_call" msgid="6069460915123531620">"ഹാംഗ് അപ്പ് ചെയ്യുക"</string>
     <string name="notification_action_answer_video" msgid="7809271910870211729">"വീഡിയോ"</string>
     <string name="notification_action_answer_voice" msgid="1770796916369437773">"വോയ്‌സ്"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"സജ്ജമാക്കുക"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;സജ്ജീകരിച്ചിട്ടില്ല&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"മറ്റ് കോൾ ക്രമീകരണങ്ങൾ"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> മുഖേന വിളിക്കുന്നു"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> വഴി വിളിക്കുന്നു"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> മുഖേനയുള്ള ഇൻകമിംഗ്"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"കോൺടാക്റ്റ് ഫോട്ടോ"</string>
     <string name="goPrivate" msgid="865837794424530980">"സ്വകാര്യം എന്നതിലേക്ക് പോകുക"</string>
@@ -131,7 +131,7 @@
     <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"നിങ്ങളുടെ സ്വന്തം സന്ദേശമെഴുതുക..."</string>
     <string name="custom_message_cancel" msgid="7516406059429609296">"റദ്ദാക്കുക"</string>
     <string name="custom_message_send" msgid="5795754217085747742">"അയയ്‌ക്കുക"</string>
-    <string name="description_target_answer" msgid="7205604197797472471">"മറുപടി നൽകുക"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"മറുപടി"</string>
     <string name="description_target_send_sms" msgid="2098326025587950144">"SMS അയയ്ക്കുക"</string>
     <string name="description_target_decline" msgid="4789834364389731957">"നിരസിക്കുക"</string>
     <string name="description_target_answer_video_call" msgid="3495965588512395026">"വീഡിയോ കോളായി മറുപടി നൽകുക"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"സ്ഥിര ശബ്‌ദം (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"ഫോൺ റിംഗ്ടോൺ"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"റിംഗുചെയ്യുമ്പോൾ വൈബ്രേറ്റുചെയ്യുക"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"ഡയൽപാഡ് സ്വയംപൂർത്തിയാക്കൽ"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"റിംഗ്ടോണും വൈബ്രേറ്റുചെയ്യലും"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"കോൺഫറൻസ് കോൾ നിയന്ത്രിക്കുക"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"അടിയന്തര നമ്പർ"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> മണിക്കൂർ</item>
       <item quantity="one">1 മണിക്കൂർ</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"പ്രൊഫൈല്‍ ഫോട്ടോ"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"ക്യാമറ ഓഫാക്കുക"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> വഴി"</string>
+    <string name="note_sent" msgid="3548700178238244595">"കുറിപ്പ് അയച്ചു"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"ഏറ്റവും പുതിയ സന്ദേശങ്ങൾ"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"ബിസിനസ്സ് വിവരം"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> മൈൽ അകലെ"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> കിലോമീറ്റർ അകലെ"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"നാളെ <xliff:g id="OPEN_TIME">%s</xliff:g>-ന് തുറക്കുന്നു"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"ഇന്ന് <xliff:g id="OPEN_TIME">%s</xliff:g>-ന് തുറക്കുന്നു"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g>-ന് അടയ്ക്കുന്നു"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"ഇന്ന് <xliff:g id="CLOSE_TIME">%s</xliff:g>-ന് അടച്ചു"</string>
+    <string name="open_now" msgid="6439301193613349163">"ഇപ്പോൾ തുറന്നിരിക്കുന്നു"</string>
+    <string name="closed_now" msgid="9175774453982778909">"ഇപ്പോൾ അടച്ചിരിക്കുന്നു"</string>
 </resources>
diff --git a/InCallUI/res/values-mn-rMN/strings.xml b/InCallUI/res/values-mn-rMN/strings.xml
index 335935d..13d4411 100644
--- a/InCallUI/res/values-mn-rMN/strings.xml
+++ b/InCallUI/res/values-mn-rMN/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Видео хурал"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Видео хүсэлт гаргасан"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Видео дуудлага амжилтгүй боллоо"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Видео дуудлага (түр зогсоосон)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Бичлэг хийх хүсэлтийг татгалзсан"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Таны залгасан дугаар\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Таны залгасан түргэн тусламжийн дугаар \n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Залгаж байна"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Үндсэн дуу (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Утасны хонхны ая"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Хонх дуугарах үед чичрэх"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Дугаарыг автоматиар гүйцээх"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Хонхны ая &amp; Чичиргээ"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Утсан хурлыг удирдах"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Яаралтай дугаар"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> цаг</item>
       <item quantity="one">1 цаг</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Профайл зураг"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Камер унтраалттай байна"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g>-аар"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Тэмдэглэлийг илгээсэн"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Саяхны зурвас"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Бизнес мэдээлэл"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> милийн зайтай"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> км-н зайтай"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Маргааш <xliff:g id="OPEN_TIME">%s</xliff:g>-с нээнэ"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Өнөөдөр <xliff:g id="OPEN_TIME">%s</xliff:g>-с нээнэ"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g>-с хаадаг"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Өнөөдөр <xliff:g id="CLOSE_TIME">%s</xliff:g>-с хаасан"</string>
+    <string name="open_now" msgid="6439301193613349163">"Одоо нээлттэй"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Одоо хаалттай"</string>
 </resources>
diff --git a/InCallUI/res/values-mr-rIN/strings.xml b/InCallUI/res/values-mr-rIN/strings.xml
index ea39725..c364bb5 100644
--- a/InCallUI/res/values-mr-rIN/strings.xml
+++ b/InCallUI/res/values-mr-rIN/strings.xml
@@ -27,7 +27,7 @@
     <string name="audio_mode_speaker" msgid="27649582100085266">"स्पीकर"</string>
     <string name="audio_mode_earpiece" msgid="4156527186373869107">"हँडसेट इअरपीस"</string>
     <string name="audio_mode_wired_headset" msgid="1465350758489175975">"वायर्ड हेडसेट"</string>
-    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"ब"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"ब्लूटुथ"</string>
     <string name="wait_prompt_str" msgid="7601815427707856238">"खालील टोन पाठवायचे?\n"</string>
     <string name="pause_prompt_str" msgid="1789964702154314806">"टोन पाठवित आहे\n"</string>
     <string name="send_button" msgid="4106860097497818751">"पाठवा"</string>
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"व्हिडिओ कॉल"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"व्हिडिओ विनंती करत आहे"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"व्हिडिओ कॉल कनेक्ट करू शकत नाही"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"व्हिडिओ कॉल (विराम दिला)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"व्हिडिओ विनंती नाकारली"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"आपला कॉलबॅक नंबर\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"आपला आणीबाणी कॉलबॅक नंबर\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"डायल करीत आहे"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"सेटअप"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;सेट नाही&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"इतर कॉल सेटिंग्ज"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> द्वारे कॉल करीत आहे"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> द्वारे कॉल करत आहे"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> द्वारे येणारे"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"संपर्क फोटो"</string>
     <string name="goPrivate" msgid="865837794424530980">"खाजगी जा"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"डीफॉल्ट आवाज (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"फोन रिंगटोन"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"रिंग करताना कंपन करा"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"डायलपॅड स्वयंपूर्ण"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"रिंगटोन आणि कंपन"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"परिषद कॉल व्यवस्थापित करा"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"आणीबाणीचा नंबर"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> तास</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> तास</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"प्रोफाईल फोटो"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"कॅमेरा बंद"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> द्वारा"</string>
+    <string name="note_sent" msgid="3548700178238244595">"टीप पाठविली"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"अलीकडील संदेश"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"व्‍यवसाय माहिती"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> मैल दूर"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> किमी दूर"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"उद्या <xliff:g id="OPEN_TIME">%s</xliff:g> वाजता उघडेल"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"आज <xliff:g id="OPEN_TIME">%s</xliff:g> उघडेल"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"आज <xliff:g id="CLOSE_TIME">%s</xliff:g> वाजता बंद होईल"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"आज <xliff:g id="CLOSE_TIME">%s</xliff:g> वाजता बंद केले"</string>
+    <string name="open_now" msgid="6439301193613349163">"आता उघडा"</string>
+    <string name="closed_now" msgid="9175774453982778909">"आता बंद केले आहे"</string>
 </resources>
diff --git a/InCallUI/res/values-ms-rMY/strings.xml b/InCallUI/res/values-ms-rMY/strings.xml
index c87dec6..27e97f0 100644
--- a/InCallUI/res/values-ms-rMY/strings.xml
+++ b/InCallUI/res/values-ms-rMY/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Pgln video"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Meminta video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Tidak dapat menyambungkan panggilan video"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Panggilan video (Dijeda)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Permintaan video ditolak"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Nombor panggil balik anda\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Nombor panggil balik kecemasan anda\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Mendail"</string>
@@ -64,8 +64,8 @@
     <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"Panggilan Wi-Fi masuk"</string>
     <string name="notification_incoming_video_call" msgid="7356836933934464805">"Panggilan video masuk"</string>
     <string name="notification_requesting_video_call" msgid="1405576812892369451">"Permintaan video masuk"</string>
-    <string name="notification_voicemail_title" msgid="8933468752045550523">"Mel suara baru"</string>
-    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Mel suara baru (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Mel suara baharu"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Mel suara baharu (<xliff:g id="COUNT">%d</xliff:g>)"</string>
     <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Dail <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
     <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Nombor mel suara tidak dikenali"</string>
     <string name="notification_network_selection_title" msgid="4224455487793492772">"Tiada perkhidmatan"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Bunyi lalai (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Nada dering telefon"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Bergetar apabila berdering"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Autolengkap pad dail"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Nada dering &amp; Bergetar"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Urus panggilan sidang"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Nombor kecemasan"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> jam</item>
       <item quantity="one">1 jam</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Foto profil"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera dimatikan"</string>
+    <string name="child_number" msgid="7437330400723805538">"melalui <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Nota dihantar"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Mesej terbaru"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Maklumat perniagaan"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> batu dari sini"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km dari sini"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Dibuka esok pada pukul <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Dibuka hari ini pada pukul <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Tutup pada pukul <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Ditutup hari ini pada pukul <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Dibuka sekarang"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Ditutup sekarang"</string>
 </resources>
diff --git a/InCallUI/res/values-my-rMM/strings.xml b/InCallUI/res/values-my-rMM/strings.xml
index db186ac..5feb756 100644
--- a/InCallUI/res/values-my-rMM/strings.xml
+++ b/InCallUI/res/values-my-rMM/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"ဗီဒီယို ခေါ်ဆိုမှု"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"ဗွီဒီယိုကို တောင်းဆိုနေ"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"ဗွီဒီယို ခေါ်ဆိုမှု မပြုနိုင်။"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"ဗီဒီယိုခေါ်ဆိုမှု (ရပ်ထားသည်)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"ဗီဒီယို တောင်းဆိုချက် ပယ်ချ၏"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"သင့်အား ပြန်ခေါ်ရန် နံပါတ်\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"သင့် အရေးပေါ် ပြန်ခေါ်ရန် နံပါတ်\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"ဖုန်းခေါ်နေစဉ်"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"ပုံသေ အသံ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"ဖုန်းမြည်သံ"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"ဖုန်းမြည်စဉ်တုန်ခါရန်"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"နံပါတ်ကွက် အလိုအလျောက်ဖြည့်ရန်"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"ဖုန်းမြည်သံ &amp; တုန်ခါသံ"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"ကွန်းဖရင့် ခေါ်ဆိုမှုကို ထိန်းချုပ်သည်"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"အရေးပေါ်နံပါတ်"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> နာရီများ</item>
       <item quantity="one">၁ နာရီ</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"ပရိုဖိုင် ဓာတ်ပုံ"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"ကင်မရာ ပိတ်ရန်"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g>မှတစ်ဆင့်"</string>
+    <string name="note_sent" msgid="3548700178238244595">"မပို့ခဲ့"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"မကြာမီက စာတိုများ"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"စီးပွားရေး အချက်အလက်"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mi အကွာ"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km အကွာ"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>၊ <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>၊ <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"မနက်ဖြန် <xliff:g id="OPEN_TIME">%s</xliff:g> ၌ဖွင့်မည်"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"ယနေ့ <xliff:g id="OPEN_TIME">%s</xliff:g> ၌ဖွင့်မည်"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g> ၌ပိတ်မည်"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"ယနေ့ <xliff:g id="CLOSE_TIME">%s</xliff:g> ၌ပိတ်ခဲ့သည်"</string>
+    <string name="open_now" msgid="6439301193613349163">"ယခုဖွင့်ရန်"</string>
+    <string name="closed_now" msgid="9175774453982778909">"ယခုပိတ်ရန်"</string>
 </resources>
diff --git a/InCallUI/res/values-nb/strings.xml b/InCallUI/res/values-nb/strings.xml
index af4dcef..e036a03 100644
--- a/InCallUI/res/values-nb/strings.xml
+++ b/InCallUI/res/values-nb/strings.xml
@@ -35,7 +35,7 @@
     <string name="pause_prompt_no" msgid="6686238803236884877">"Nei"</string>
     <string name="wild_prompt_str" msgid="5543521676355533577">"Erstatt jokertegn med"</string>
     <string name="caller_manage_header" msgid="3231519674734638786">"Telefonmøte <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
-    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Nummer til telefonsvarer"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Nummer til talepostkasse"</string>
     <string name="card_title_dialing" msgid="5769417478498348054">"Ringer"</string>
     <string name="card_title_redialing" msgid="8253487008234167266">"Slår nummer på nytt"</string>
     <string name="card_title_conf_call" msgid="1162980346189744501">"Telefonmøte"</string>
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videoanrop"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Ber om video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Kan ikke koble til videosamtale"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videosamtale (satt på pause)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Videoforespørselen er avvist"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Ditt tilbakeringingsnummer\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Ditt tilbakeringingsnummer for nødsamtaler\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Slår nummeret"</string>
@@ -64,10 +64,10 @@
     <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"Innkommende anrop via Wi-Fi"</string>
     <string name="notification_incoming_video_call" msgid="7356836933934464805">"Innkommende videoanrop"</string>
     <string name="notification_requesting_video_call" msgid="1405576812892369451">"Innkommende videoforespørsel"</string>
-    <string name="notification_voicemail_title" msgid="8933468752045550523">"Nye beskjeder på telefonsvarer"</string>
-    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nye beskjeder på telefonsvarer (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Ny talemelding"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Nye talemeldinger (<xliff:g id="COUNT">%d</xliff:g>)"</string>
     <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Ring <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
-    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Mangler nummer til telefonsvarer"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Mangler nummer til talepostkasse"</string>
     <string name="notification_network_selection_title" msgid="4224455487793492772">"Ingen tjeneste"</string>
     <string name="notification_network_selection_text" msgid="2607085729661923269">"Valgt nettverk (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) er ikke tilgjengelig"</string>
     <string name="notification_action_answer" msgid="6700362365135365143">"Svar"</string>
@@ -150,9 +150,8 @@
     <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrering"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Lyd"</string>
     <string name="default_notification_description" msgid="78174796906240970">"Standardlyd (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
-    <string name="ringtone_title" msgid="6374978286202084684">"Telefonringetone"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Telefonringelyd"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrering når det ringer"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Tastaturets autofullføring"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringetone og vibrering"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Administrer konferansesamtale"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Nødnummer"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> timer</item>
       <item quantity="one">1 time</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profilbilde"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kameraet er slått av"</string>
+    <string name="child_number" msgid="7437330400723805538">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Notatet er sendt"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Nylige meldinger"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Informasjon om bedriften"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> engelske mil unna"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km unna"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Åpner i morgen kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Åpner i dag kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Stenger kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Stengte i dag kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Åpent nå"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Stengt nå"</string>
 </resources>
diff --git a/InCallUI/res/values-ne-rNP/strings.xml b/InCallUI/res/values-ne-rNP/strings.xml
index ebed718..89c6f59 100644
--- a/InCallUI/res/values-ne-rNP/strings.xml
+++ b/InCallUI/res/values-ne-rNP/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"भिडियो कल"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"भिडियो अनुरोध"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"भिडियो कल जडान गर्न सक्दैन"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"भिडियो कल (पज गरिएको)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"भिडियो अनुरोध अस्वीकार गरियो"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"तपाईंको कलब्याक नम्बर \n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"तपाईंको आपतकालिन कलब्याक नम्बर \n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"डायल गर्ने"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"पूर्वनिर्धारित ध्वनि ( <xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g> )"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"फोन रिङटोन"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"घन्टी बज्दा भाइब्रेट"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"डायलप्याड स्वतःपूर्णता"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"रिङ्गटोन र भाइब्रेट"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"सम्मेलन कल प्रबन्ध गर्नुहोस्"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"आपतकालीन नम्बर"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> घन्टा</item>
       <item quantity="one">१ घन्टा</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"प्रोफाइल तस्बिर"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"क्यामेरा बन्द"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> बाट"</string>
+    <string name="note_sent" msgid="3548700178238244595">"नोट पठाइयो"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"भर्खरैका सन्देशहरू"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"व्यवसाय जानकारी"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> माइल टाढा"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> किलोमिटर टाढा"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"भोलि <xliff:g id="OPEN_TIME">%s</xliff:g> खुल्छ"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"आज <xliff:g id="OPEN_TIME">%s</xliff:g> खुल्छ"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"आज <xliff:g id="CLOSE_TIME">%s</xliff:g> बन्द हुन्छ"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"आज <xliff:g id="CLOSE_TIME">%s</xliff:g> बन्द भयो"</string>
+    <string name="open_now" msgid="6439301193613349163">"अहिले खुला छ"</string>
+    <string name="closed_now" msgid="9175774453982778909">"अब बन्द भयो"</string>
 </resources>
diff --git a/InCallUI/res/values-nl/strings.xml b/InCallUI/res/values-nl/strings.xml
index db92006..f195431 100644
--- a/InCallUI/res/values-nl/strings.xml
+++ b/InCallUI/res/values-nl/strings.xml
@@ -49,9 +49,9 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videogesprek"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Video aanvragen"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Kan geen videogesprek starten"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videogesprek (onderbreken)"</string>
-    <string name="card_title_callback_number" msgid="7307938207564217293">"Uw terugbelnummer\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
-    <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Uw terugbelnummer bij alarm\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Videoverzoek geweigerd"</string>
+    <string name="card_title_callback_number" msgid="7307938207564217293">"Je terugbelnummer\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Je terugbelnummer bij alarm\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Kiezen"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Gemiste oproep"</string>
     <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Gemiste oproepen"</string>
@@ -78,10 +78,10 @@
     <string name="notification_action_dismiss" msgid="2679969397930852858">"Sluiten"</string>
     <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Terugbellen"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Bericht"</string>
-    <string name="incall_error_power_off" msgid="6550191216405193368">"Als u wilt bellen, moet u eerst de Vliegtuigmodus uitschakelen."</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Als je wilt bellen, moet je eerst de Vliegtuigmodus uitschakelen."</string>
     <string name="incall_error_emergency_only" msgid="4678640422710818317">"Niet geregistreerd op netwerk."</string>
     <string name="incall_error_out_of_service" msgid="4100065333878929223">"Mobiel netwerk niet beschikbaar."</string>
-    <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"Als u wilt bellen, moet u een geldig nummer invoeren."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"Als je wilt bellen, moet je een geldig nummer invoeren."</string>
     <string name="incall_error_call_failed" msgid="6302746943230078197">"Kan niet bellen."</string>
     <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMI-reeks starten..."</string>
     <string name="incall_error_supp_service_unknown" msgid="323435289607131929">"Service wordt niet ondersteund."</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Standaardgeluid (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Beltoon telefoon"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Trillen bij bellen"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Toetsenblok automatisch aanvullen"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Beltoon en trillen"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Telefonische vergadering beheren"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Alarmnummer"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> uur</item>
       <item quantity="one">1 uur</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profielfoto"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Camera uit"</string>
+    <string name="child_number" msgid="7437330400723805538">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Notitie verzonden"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Recente berichten"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Bedrijfsinformatie"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mijl hiervandaan"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km hiervandaan"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Gaat morgen open om <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Gaat vandaag open om <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Sluit om <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Vandaag gesloten vanaf <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Nu geopend"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Nu gesloten"</string>
 </resources>
diff --git a/InCallUI/res/values-pa-rIN/strings.xml b/InCallUI/res/values-pa-rIN/strings.xml
new file mode 100644
index 0000000..6a2026a
--- /dev/null
+++ b/InCallUI/res/values-pa-rIN/strings.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2013 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"ਫੋਨ"</string>
+    <string name="onHold" msgid="9035493194749959955">"ਹੋਲਡ ਤੇ"</string>
+    <string name="unknown" msgid="6878797917991465859">"ਅਗਿਆਤ"</string>
+    <string name="private_num" msgid="6713286113000232309">"ਨਿੱਜੀ ਨੰਬਰ"</string>
+    <string name="payphone" msgid="4793877574636445118">"ਪੇਫੋਨ"</string>
+    <string name="confCall" msgid="1904840547188336828">"ਕਾਨਫਰੰਸ ਕਾਲ"</string>
+    <string name="call_lost" msgid="6183862117003999578">"ਕਾਲ ਡ੍ਰੌਪ ਕੀਤੀ"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"ਸਪੀਕਰ"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"ਹੈਂਡਸੈਟ ਈਅਰਪੀਸ"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"ਵਾਇਰ ਵਾਲਾ ਹੈਡਸੈਟ"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"ਕੀ ਇਹ ਟੋਨਾਂ ਭੇਜਣੀਆਂ ਹਨ?\n"</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"ਟੋਨਾਂ\n ਭੇਜ ਰਿਹਾ ਹੈ"</string>
+    <string name="send_button" msgid="4106860097497818751">"ਭੇਜੋ"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"ਹਾਂ"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"ਨਹੀਂ"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"ਇਸ ਨਾਲ ਵਾਈਲਡ ਅੱਖਰ ਬਦਲੋ"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"ਕਾਨਫਰੰਸ ਕਾਲ <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"ਵੌਇਸਮੇਲ ਨੰਬਰ"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"ਡਾਇਲ ਕਰ ਰਿਹਾ ਹੈ"</string>
+    <string name="card_title_redialing" msgid="8253487008234167266">"ਮੁੜ ਡਾਇਲ ਕਰ ਰਿਹਾ ਹੈ"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"ਕਾਨਫਰੰਸ ਕਾਲ"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"ਇਨਕਮਿੰਗ ਕਾਲ"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"ਕਾਲ ਖ਼ਤਮ ਹੋਈ"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"ਹੋਲਡ ਤੇ"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"ਹੈਂਗ ਅਪ ਕਰ ਰਿਹਾ ਹੈ"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"ਇਨ ਕਾਲ"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"ਮੇਰਾ ਨੰਬਰ ਹੈ <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="297586766381973954">"ਵੀਡੀਓ ਕਨੈਕਟ ਕਰ ਰਿਹਾ ਹੈ"</string>
+    <string name="card_title_video_call" msgid="5898636679563320218">"ਵੀਡੀਓ ਕਾਲ"</string>
+    <string name="card_title_video_call_requesting" msgid="4587504939739340937">"ਵੀਡੀਓ ਦੀ ਬੇਨਤੀ ਕਰ ਰਿਹਾ ਹੈ"</string>
+    <string name="card_title_video_call_error" msgid="9000555878389539225">"ਵੀਡੀਓ ਕਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕਰ ਸਕਦਾ"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"ਵੀਡੀਓ ਬੇਨਤੀ ਅਸਵੀਕਾਰ ਕੀਤੀ ਗਈ"</string>
+    <string name="card_title_callback_number" msgid="7307938207564217293">"ਤੁਹਾਡਾ ਕਾਲਬੈਕ ਨੰਬਰ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"ਤੁਹਾਡਾ ਐਮਰਜੈਂਸੀ ਕਾਲਬੈਕ ਨੰਬਰ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"ਡਾਇਲ ਕਰ ਰਿਹਾ ਹੈ"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"ਮਿਸਡ ਕਾਲ"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"ਮਿਸਡ ਕਾਲਾਂ"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ਮਿਸਡ ਕਾਲਾਂ"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> ਵੱਲੋਂ ਮਿਸਡ ਕਾਲ"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"ਜਾਰੀ ਕਾਲ"</string>
+    <string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"ਜਾਰੀ Wi-Fi ਕਾਲ"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"ਹੋਲਡ ਤੇ"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"ਇਨਕਮਿੰਗ ਕਾਲ"</string>
+    <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"ਇਨਕਮਿੰਗ Wi-Fi ਕਾਲ"</string>
+    <string name="notification_incoming_video_call" msgid="7356836933934464805">"ਇਨਕਮਿੰਗ ਵੀਡੀਓ ਕਾਲ"</string>
+    <string name="notification_requesting_video_call" msgid="1405576812892369451">"ਇਨਕਮਿੰਗ ਵੀਡੀਓ ਬੇਨਤੀ"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"ਨਵੀਂ ਵੌਇਸਮੇਲ"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"ਨਵੀਂ ਵੌਇਸਮੇਲ (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g> ਡਾਇਲ ਕਰੋ"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"ਵੌਇਸਮੇਲ ਨੰਬਰ ਅਗਿਆਤ"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"ਕੋਈ ਸੇਵਾ ਨਹੀਂ"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"ਚੁਣੇ ਗਏ ਨੈਟਵਰਕ (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ਅਣਉਪਲਬਧ"</string>
+    <string name="notification_action_answer" msgid="6700362365135365143">"ਜਵਾਬ ਦਿਓ"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"ਹੈਂਗ ਅਪ ਕਰੋ"</string>
+    <string name="notification_action_answer_video" msgid="7809271910870211729">"ਵੀਡੀਓ"</string>
+    <string name="notification_action_answer_voice" msgid="1770796916369437773">"ਵੌਇਸ"</string>
+    <string name="notification_action_accept" msgid="2898609801209468429">"ਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="notification_action_dismiss" msgid="2679969397930852858">"ਬਰਖਾਸਤ ਕਰੋ"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"ਕਾਲ ਬੈਕ ਕਰੋ"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"ਸੁਨੇਹਾ"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"ਇੱਕ ਕਾਲ ਕਰਨ ਲਈ, ਪਹਿਲਾਂ ਏਅਰਪਲੇਨ ਮੋਡ ਬੰਦ ਕਰੋ।"</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"ਨੈਟਵਰਕ ਤੇ ਰਜਿਸਟਰ ਨਹੀਂ ਕੀਤਾ।"</string>
+    <string name="incall_error_out_of_service" msgid="4100065333878929223">"ਸੈਲਿਊਲਰ ਨੈਟਵਰਕ ਉਪਲਬਧ ਨਹੀਂ"</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"ਇੱਕ ਕਾਲ ਕਰਨ ਲਈ, ਇੱਕ ਪ੍ਰਮਾਣਿਕ ਨੰਬਰ ਦਰਜ ਕਰੋ।"</string>
+    <string name="incall_error_call_failed" msgid="6302746943230078197">"ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMI ਕੜੀ ਚਾਲੂ ਕਰ ਰਿਹਾ ਹੈ…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="323435289607131929">"ਸੇਵਾ ਸਮਰਥਿਤ ਨਹੀਂ।"</string>
+    <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"ਕਾਲਾਂ ਸਵਿਚ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
+    <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"ਕਾਲ ਵੱਖ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
+    <string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"ਟ੍ਰਾਂਸਫਰ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
+    <string name="incall_error_supp_service_conference" msgid="7010354362202271726">"ਕਾਨਫਰੰਸ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
+    <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"ਕਾਲ ਅਸਵੀਕਾਰ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
+    <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"ਕਾਲ(ਕਾਲਾਂ) ਰਿਲੀਜ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
+    <string name="incall_call_type_label_sip" msgid="4931428719494190371">"SIP ਕਾਲ"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"ਐਮਰਜੈਂਸੀ ਕਾਲ"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"ਰੇਡੀਓ ਚਾਲੂ ਕਰ ਰਿਹਾ ਹੈ…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"ਕੋਈ ਸੇਵਾ ਨਹੀਂ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਹੈ…"</string>
+    <string name="dial_emergency_error" msgid="1509085166367420355">"ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ। <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> ਇੱਕ ਐਮਰਜੈਂਸੀ ਨੰਬਰ ਨਹੀਂ ਹੈ।"</string>
+    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ। ਇੱਕ ਐਮਰਜੈਂਸੀ ਨੰਬਰ ਡਾਇਲ ਕਰੋ।"</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"ਡਾਇਲ ਕਰਨ ਲਈ ਕੀਬੋਰਡ ਵਰਤੋ"</string>
+    <string name="onscreenHoldText_unselected" msgid="7092499303393171276">"ਕਾਲ ਹੋਲਡ ਕਰੋ"</string>
+    <string name="onscreenHoldText_selected" msgid="7127901498507384249">"ਕਾਲ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਕਰੋ"</string>
+    <string name="onscreenEndCallText" msgid="9039601192595655846">"ਕਾਲ ਸਮਾਪਤ ਕਰੋ"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"ਡਾਇਲਪੈਡ"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"ਮਿਊਟ ਕਰੋ"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"ਕਾਲ ਜੋੜੋ"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"ਕਾਲਾਂ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"ਸਵੈਪ ਕਰੋ"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"ਕਾਲਾਂ ਵਿਵਸਥਿਤ ਕਰੋ"</string>
+    <string name="onscreenManageConferenceText" msgid="6801708317570467407">"ਕਾਨਫਰੰਸ ਕਾਲ ਵਿਵਸਥਿਤ ਕਰੋ"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"ਔਡੀਓ"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"ਵੀਡੀਓ ਕਾਲ"</string>
+    <string name="onscreenChangeToVoiceText" msgid="5311407863653867937">"ਵੌਇਸ ਕਾਲ ਵਿੱਚ ਬਦਲੋ"</string>
+    <string name="onscreenSwitchCameraText" msgid="5324543493442787798">"ਕੈਮਰਾ ਸਵਿਚ ਕਰੋ"</string>
+    <string name="onscreenPauseVideoText" msgid="5663965924921429203">"ਵੀਡੀਓ ਰੋਕੋ"</string>
+    <string name="onscreenOverflowText" msgid="2702376562345723132">"ਹੋਰ ਚੋਣਾਂ"</string>
+    <string name="player_started" msgid="6046262510243983589">"ਪਲੇਅਰ ਅਰੰਭ ਹੋ ਗਿਆ"</string>
+    <string name="player_stopped" msgid="8856926759436364963">"ਪਲੇਅਰ ਰੁੱਕ ਗਿਆ"</string>
+    <string name="camera_not_ready" msgid="4955261496193316240">"ਕੈਮਰਾ ਤਿਆਰ ਨਹੀਂ ਹੈ"</string>
+    <string name="camera_ready" msgid="1903335385405807324">"ਕੈਮਰਾ ਤਿਆਰ ਹੈ"</string>
+    <string name="unknown_call_session_event" msgid="2431061946920253582">"ਅਗਿਆਤ ਕਾਲ ਸੈਸ਼ਨ ਇਵੈਂਟ"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"ਸੇਵਾ"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"ਸੈਟਅਪ"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;ਸੈਟ ਨਹੀਂ ਕੀਤਾ&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"ਹੋਰ ਕਾਲ ਸੈਟਿੰਗਾਂ"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ਰਾਹੀਂ ਕਾਲ ਕਰ ਰਿਹਾ ਹੈ"</string>
+    <string name="incoming_via_template" msgid="1696993226115570960">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ਰਾਹੀਂ ਇਨਕਮਿੰਗ"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"ਸੰਪਰਕ ਫੋਟੋ"</string>
+    <string name="goPrivate" msgid="865837794424530980">"ਨਿੱਜੀ ਜਾਓ"</string>
+    <string name="selectContact" msgid="781975788478987237">"ਸੰਪਰਕ ਚੁਣੋ"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"ਆਪਣਾ ਖੁਦ ਦਾ ਲਿਖੋ..."</string>
+    <string name="custom_message_cancel" msgid="7516406059429609296">"ਰੱਦ ਕਰੋ"</string>
+    <string name="custom_message_send" msgid="5795754217085747742">"ਭੇਜੋ"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"ਜਵਾਬ ਦਿਓ"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"SMS ਭੇਜੋ"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"ਅਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="description_target_answer_video_call" msgid="3495965588512395026">"ਵੀਡੀਓ ਕਾਲ ਦੇ ਤੌਰ ਤੇ ਜਵਾਬ ਦਿਓ"</string>
+    <string name="description_target_answer_audio_call" msgid="8396296303320994450">"ਔਡੀਓ ਕਾਲ ਦੇ ਤੌਰ ਤੇ ਜਵਾਬ ਦਿਓ"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="2894072808324604062">"ਵੀਡੀਓ ਬੇਨਤੀ ਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="4093888612888538776">"ਵੀਡੀਓ ਬੇਨਤੀ ਅਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="5311037889642077468">"ਵੀਡੀਓ ਪ੍ਰਸਾਰਣ ਬੇਨਤੀ ਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="3636108065510415975">"ਵੀਡੀਓ ਪ੍ਰਸਾਰਣ ਬੇਨਤੀ ਅਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="8668058323593087912">"ਵੀਡੀਓ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਬੇਨਤੀ ਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="2355776509656298367">"ਵੀਡੀਓ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਬੇਨਤੀ ਅਸਵੀਕਾਰ ਕਰੋ"</string>
+    <string name="description_direction_up" msgid="4441409581444516690">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ਤੱਕ ਉੱਪਰ ਸਲਾਈਡ ਕਰੋ।"</string>
+    <string name="description_direction_left" msgid="7129873384376533287">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ਤੱਕ ਖੱਬੇ ਪਾਸੇ ਸਲਾਈਡ ਕਰੋ।"</string>
+    <string name="description_direction_right" msgid="2122584234531957308">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ਤੱਕ ਸੱਜੇ ਪਾਸੇ ਸਲਾਈਡ ਕਰੋ।"</string>
+    <string name="description_direction_down" msgid="4317245625565166742">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ਤੱਕ ਹੇਠਾਂ ਸਲਾਈਡ ਕਰੋ।"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"ਵਾਈਬ੍ਰੇਟ"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"ਵਾਈਬ੍ਰੇਟ"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"ਅਵਾਜ਼"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"ਡਿਫੌਲਟ ਅਵਾਜ਼ (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"ਫੋਨ ਰਿੰਗਟੋਨ"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"ਰਿੰਗ ਕਰਨ ਵੇਲੇ ਵਾਈਬ੍ਰੇਟ"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"ਰਿੰਗਟੋਨ &amp; ਵਾਈਬ੍ਰੇਟ"</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"ਕਾਨਫਰੰਸ ਕਾਲ ਵਿਵਸਥਿਤ ਕਰੋ"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"ਐਮਰਜੈਂਸੀ ਨੰਬਰ"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="59971978269163609">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ਸਕਿੰਟ</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ਸਕਿੰਟ</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="1103289948818175408">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ਮਿੰਟ</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ਮਿੰਟ</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7560637459014865969">
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> ਘੰਟੇ</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ਘੰਟੇ</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"ਪ੍ਰੋਫ਼ਾਈਲ ਫੋਟੋ"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"ਕੈਮਰਾ ਬੰਦ"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> ਰਾਹੀਂ"</string>
+    <string name="note_sent" msgid="3548700178238244595">"ਸੂਚਨਾ ਭੇਜੀ ਗਈ"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"ਹਾਲੀਆ ਸੁਨੇਹੇ"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"ਵਪਾਰ ਜਾਣਕਾਰੀ"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> ਮੀਲ ਦੂਰ"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> ਕਿ.ਮੀ. ਦੂਰ"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"ਕੱਲ੍ਹ <xliff:g id="OPEN_TIME">%s</xliff:g> ਵਜੇ ਖੁੱਲ੍ਹੇਗਾ"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"ਅੱਜ <xliff:g id="OPEN_TIME">%s</xliff:g> ਵਜੇ ਖੁੱਲ੍ਹੇਗਾ"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g> ਵਜੇ ਬੰਦ ਹੋਵੇਗਾ"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"ਅੱਜ <xliff:g id="CLOSE_TIME">%s</xliff:g> ਵਜੇ ਬੰਦ ਹੋਇਆ"</string>
+    <string name="open_now" msgid="6439301193613349163">"ਹੁਣ ਖੁੱਲ੍ਹਾ ਹੈ"</string>
+    <string name="closed_now" msgid="9175774453982778909">"ਹੁਣ ਬੰਦ ਹੈ"</string>
+</resources>
diff --git a/InCallUI/res/values-pl/strings.xml b/InCallUI/res/values-pl/strings.xml
index 918f8b0..836ec6b 100644
--- a/InCallUI/res/values-pl/strings.xml
+++ b/InCallUI/res/values-pl/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Rozmowa wideo"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Wysyłanie żądania wideo"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Nie można nawiązać połączenia wideo"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Rozmowa wideo (wstrzymana)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Prośba o film została odrzucona"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Twój numer oddzwaniania\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Twój numer oddzwaniania dla połączeń alarmowych\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Trwa wybieranie numeru"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Konfiguracja"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nie ustawiono&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Inne ustawienia połączeń"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Nawiązywanie połączenia przez <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Połączenie przez <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Przychodzące przez <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"zdjęcie kontaktu"</string>
     <string name="goPrivate" msgid="865837794424530980">"przejdź do rozmowy prywatnej"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Domyślny dźwięk (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Dzwonek telefonu"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Wibracje i dzwonek"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Autouzupełnianie na klawiaturze"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Dzwonek i wibracje"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Zarządzaj połączeniem konferencyjnym"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Numer alarmowy"</string>
@@ -174,4 +173,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> godziny</item>
       <item quantity="one">1 godzina</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Zdjęcie profilowe"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera wyłączona"</string>
+    <string name="child_number" msgid="7437330400723805538">"z <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Notatka wysłana"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Ostatnie wiadomości"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Informacje o firmie"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mil(e) stąd"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km stąd"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Otwarte jutro od <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Otwarte dzisiaj od <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Zamknięte od <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Zamknięte dzisiaj od <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Teraz otwarte"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Teraz zamknięte"</string>
 </resources>
diff --git a/InCallUI/res/values-pt-rPT/strings.xml b/InCallUI/res/values-pt-rPT/strings.xml
index 6025659..8908c37 100644
--- a/InCallUI/res/values-pt-rPT/strings.xml
+++ b/InCallUI/res/values-pt-rPT/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videochamada"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"A solicitar vídeo"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Não é possível ligar a videochamada"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videochamada (em pausa)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Pedido de vídeo rejeitado"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"O seu número de retorno de chamada\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"O seu número de retorno de chamadas de emergência\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"A marcar"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Configuração"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Não definido&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Outras definições de chamada"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"A chamar através de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"A chamar via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Recebida através de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"fotografia do contacto"</string>
     <string name="goPrivate" msgid="865837794424530980">"tornar privado"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Som predefinido (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Toque do telemóvel"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrar ao tocar"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Preenchimento aut. do teclado"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Tocar e Vibrar"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Gerir chamada de conferência"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Número de emergência"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
       <item quantity="one">1 hora</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Foto do perfil"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Câmara desligada"</string>
+    <string name="child_number" msgid="7437330400723805538">"através de <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Nota enviada"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Mensagens recentes"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Informações da empresa"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"A <xliff:g id="DISTANCE">%.1f</xliff:g> milhas de distância"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"A <xliff:g id="DISTANCE">%.1f</xliff:g> km de distância"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Abre amanhã às <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Abre hoje às <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Fecha às <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Fechou hoje às <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Aberto agora"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Fechado agora"</string>
 </resources>
diff --git a/InCallUI/res/values-pt/strings.xml b/InCallUI/res/values-pt/strings.xml
index e061557..4d1c3dc 100644
--- a/InCallUI/res/values-pt/strings.xml
+++ b/InCallUI/res/values-pt/strings.xml
@@ -46,10 +46,10 @@
     <string name="card_title_in_call" msgid="6346543933068225205">"Em chamada"</string>
     <string name="card_title_my_phone_number" msgid="112428362494434191">"Meu número é <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
     <string name="card_title_video_call_connecting" msgid="297586766381973954">"Conectando vídeo"</string>
-    <string name="card_title_video_call" msgid="5898636679563320218">"Vídeo chamada"</string>
+    <string name="card_title_video_call" msgid="5898636679563320218">"Videochamada"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Solicitando vídeo"</string>
-    <string name="card_title_video_call_error" msgid="9000555878389539225">"Não é possível conectar a vídeo chamada"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Vídeo chamada (pausada)"</string>
+    <string name="card_title_video_call_error" msgid="9000555878389539225">"Não é possível conectar a videochamada"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Solicitação de vídeo rejeitada"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Seu número de retorno de chamada\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Seu número de retorno de chamada de emergência\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Discando"</string>
@@ -62,7 +62,7 @@
     <string name="notification_on_hold" msgid="3480694969511790465">"Em espera"</string>
     <string name="notification_incoming_call" msgid="2820429205043529642">"Recebendo chamada"</string>
     <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"Chamada Wi-Fi recebida"</string>
-    <string name="notification_incoming_video_call" msgid="7356836933934464805">"Recebendo vídeo chamada"</string>
+    <string name="notification_incoming_video_call" msgid="7356836933934464805">"Recebendo videochamada"</string>
     <string name="notification_requesting_video_call" msgid="1405576812892369451">"Recebendo solicitação de vídeo"</string>
     <string name="notification_voicemail_title" msgid="8933468752045550523">"Novo correio de voz"</string>
     <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Novo correio de voz (<xliff:g id="COUNT">%d</xliff:g>)"</string>
@@ -109,7 +109,7 @@
     <string name="onscreenManageCallsText" msgid="5473231160123254154">"Gerenciar chamadas"</string>
     <string name="onscreenManageConferenceText" msgid="6801708317570467407">"Gerenciar teleconferência"</string>
     <string name="onscreenAudioText" msgid="1710087112800041743">"Áudio"</string>
-    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Vídeo ch."</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Videocham."</string>
     <string name="onscreenChangeToVoiceText" msgid="5311407863653867937">"Alterar para chamada de voz"</string>
     <string name="onscreenSwitchCameraText" msgid="5324543493442787798">"Alternar câmera"</string>
     <string name="onscreenPauseVideoText" msgid="5663965924921429203">"Pausar vídeo"</string>
@@ -134,7 +134,7 @@
     <string name="description_target_answer" msgid="7205604197797472471">"Responder"</string>
     <string name="description_target_send_sms" msgid="2098326025587950144">"Enviar SMS"</string>
     <string name="description_target_decline" msgid="4789834364389731957">"Recusar"</string>
-    <string name="description_target_answer_video_call" msgid="3495965588512395026">"Atender como vídeo chamada"</string>
+    <string name="description_target_answer_video_call" msgid="3495965588512395026">"Atender como videochamada"</string>
     <string name="description_target_answer_audio_call" msgid="8396296303320994450">"Atender como chamada de áudio"</string>
     <string name="description_target_accept_upgrade_to_video_request" msgid="2894072808324604062">"Aceitar solicitação de vídeo"</string>
     <string name="description_target_decline_upgrade_to_video_request" msgid="4093888612888538776">"Recusar solicitação de vídeo"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Som padrão (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Toque do telefone"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrar quando estiver tocando"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Preench. automático do teclado"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Toque e vibração"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Gerenciar conferência telefônica"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Número de emergência"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> horas</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> horas</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Foto do perfil"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Câmera desligada"</string>
+    <string name="child_number" msgid="7437330400723805538">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Nota enviada"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Mensagens recentes"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Informações sobre a empresa"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> milhas de distância"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km de distância"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Abre amanhã às <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Abre hoje às <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Fecha às <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Fechou hoje às <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Aberto agora"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Fechado agora"</string>
 </resources>
diff --git a/InCallUI/res/values-ro/strings.xml b/InCallUI/res/values-ro/strings.xml
index 00d365e..3be764d 100644
--- a/InCallUI/res/values-ro/strings.xml
+++ b/InCallUI/res/values-ro/strings.xml
@@ -18,7 +18,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
-    <string name="onHold" msgid="9035493194749959955">"În aşteptare"</string>
+    <string name="onHold" msgid="9035493194749959955">"În așteptare"</string>
     <string name="unknown" msgid="6878797917991465859">"Necunoscut"</string>
     <string name="private_num" msgid="6713286113000232309">"Număr privat"</string>
     <string name="payphone" msgid="4793877574636445118">"Telefon public"</string>
@@ -28,9 +28,9 @@
     <string name="audio_mode_earpiece" msgid="4156527186373869107">"Casca dispozitivului"</string>
     <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Cască cu fir"</string>
     <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
-    <string name="wait_prompt_str" msgid="7601815427707856238">"Trimiteţi următoarele tonuri?\n"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Trimiteți următoarele tonuri?\n"</string>
     <string name="pause_prompt_str" msgid="1789964702154314806">"Se trimit tonuri\n"</string>
-    <string name="send_button" msgid="4106860097497818751">"Trimiteţi"</string>
+    <string name="send_button" msgid="4106860097497818751">"Trimiteți"</string>
     <string name="pause_prompt_yes" msgid="3564467212025151797">"Da"</string>
     <string name="pause_prompt_no" msgid="6686238803236884877">"Nu"</string>
     <string name="wild_prompt_str" msgid="5543521676355533577">"Înlocuiţi metacaracterul cu"</string>
@@ -39,9 +39,9 @@
     <string name="card_title_dialing" msgid="5769417478498348054">"Apelează"</string>
     <string name="card_title_redialing" msgid="8253487008234167266">"Se reapelează"</string>
     <string name="card_title_conf_call" msgid="1162980346189744501">"Teleconferinţă"</string>
-    <string name="card_title_incoming_call" msgid="7364539451234646909">"Apel de intrare"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Apel primit"</string>
     <string name="card_title_call_ended" msgid="5544730338889702298">"Apel încheiat"</string>
-    <string name="card_title_on_hold" msgid="821463117892339942">"În aşteptare"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"În așteptare"</string>
     <string name="card_title_hanging_up" msgid="3999101620995182450">"Se închide telefonul"</string>
     <string name="card_title_in_call" msgid="6346543933068225205">"În timpul apelului"</string>
     <string name="card_title_my_phone_number" msgid="112428362494434191">"Numărul meu este <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Apel video"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Se solicită video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Nu se poate conecta apelul video"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Apel video (întrerupt)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Solicitarea pentru apel video a fost respinsă"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Numărul de apelare inversă\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Numărul de apelare inversă de urgență\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Apelează"</string>
@@ -59,7 +59,7 @@
     <string name="notification_missedCallTicker" msgid="504686252427747209">"Apel nepreluat de la <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
     <string name="notification_ongoing_call" msgid="7068688957273482989">"Apel în desfăşurare"</string>
     <string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"Apel Wi-Fi în desfășurare"</string>
-    <string name="notification_on_hold" msgid="3480694969511790465">"În aşteptare"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"În așteptare"</string>
     <string name="notification_incoming_call" msgid="2820429205043529642">"Apel de intrare"</string>
     <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"Apel prin Wi-Fi primit"</string>
     <string name="notification_incoming_video_call" msgid="7356836933934464805">"Apel video primit"</string>
@@ -69,17 +69,17 @@
     <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Apelați <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
     <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Număr mesagerie vocală necunoscut"</string>
     <string name="notification_network_selection_title" msgid="4224455487793492772">"Fără serviciu"</string>
-    <string name="notification_network_selection_text" msgid="2607085729661923269">"Reţeaua selectată (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nu este disponibilă"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Rețeaua selectată (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nu este disponibilă"</string>
     <string name="notification_action_answer" msgid="6700362365135365143">"Răspundeți"</string>
     <string name="notification_action_end_call" msgid="6069460915123531620">"Încheiaţi apelul"</string>
     <string name="notification_action_answer_video" msgid="7809271910870211729">"Videoclip"</string>
     <string name="notification_action_answer_voice" msgid="1770796916369437773">"Voce"</string>
     <string name="notification_action_accept" msgid="2898609801209468429">"Acceptați"</string>
-    <string name="notification_action_dismiss" msgid="2679969397930852858">"Renunțați"</string>
-    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Sunaţi înapoi"</string>
+    <string name="notification_action_dismiss" msgid="2679969397930852858">"Refuzați"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Sunați"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Mesaj"</string>
-    <string name="incall_error_power_off" msgid="6550191216405193368">"Pentru a efectua un apel, mai întâi dezactivaţi modul Avion."</string>
-    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Neînregistrat în reţea."</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Pentru a efectua un apel, mai întâi dezactivați modul Avion."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Neînregistrat în rețea."</string>
     <string name="incall_error_out_of_service" msgid="4100065333878929223">"Rețeaua mobilă nu este disponibilă"</string>
     <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"Pentru a apela, introduceți un număr valid."</string>
     <string name="incall_error_call_failed" msgid="6302746943230078197">"Nu se poate apela."</string>
@@ -102,11 +102,11 @@
     <string name="onscreenHoldText_selected" msgid="7127901498507384249">"Reluați apelul"</string>
     <string name="onscreenEndCallText" msgid="9039601192595655846">"Încheiați apelul"</string>
     <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Tastatură numerică"</string>
-    <string name="onscreenMuteText" msgid="5011369181754261374">"Dezactivaţi sunetul"</string>
-    <string name="onscreenAddCallText" msgid="5140385634712287403">"Adăugaţi un apel"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Dezactivați sunetul"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Adăugați un apel"</string>
     <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Îmbinaţi apelurile"</string>
     <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Schimbaţi"</string>
-    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Gestionaţi apelurile"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Gestionați apelurile"</string>
     <string name="onscreenManageConferenceText" msgid="6801708317570467407">"Gestionați teleconferința"</string>
     <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
     <string name="onscreenVideoCallText" msgid="4800924186056115442">"Apel video"</string>
@@ -131,8 +131,8 @@
     <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Scrieți propriul răspuns…"</string>
     <string name="custom_message_cancel" msgid="7516406059429609296">"Anulați"</string>
     <string name="custom_message_send" msgid="5795754217085747742">"Trimiteți"</string>
-    <string name="description_target_answer" msgid="7205604197797472471">"Răspundeţi"</string>
-    <string name="description_target_send_sms" msgid="2098326025587950144">"Trimiteţi SMS"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Răspundeți"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Trimiteți SMS"</string>
     <string name="description_target_decline" msgid="4789834364389731957">"Refuzaţi"</string>
     <string name="description_target_answer_video_call" msgid="3495965588512395026">"Răspundeți ca apel video"</string>
     <string name="description_target_answer_audio_call" msgid="8396296303320994450">"Răspundeți ca apel audio"</string>
@@ -146,15 +146,14 @@
     <string name="description_direction_left" msgid="7129873384376533287">"Glisați spre stânga pentru <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
     <string name="description_direction_right" msgid="2122584234531957308">"Glisați spre dreapta pentru <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
     <string name="description_direction_down" msgid="4317245625565166742">"Glisați în jos pentru <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
-    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibraţii"</string>
-    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibraţii"</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Vibrații"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Vibrații"</string>
     <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Sunet"</string>
     <string name="default_notification_description" msgid="78174796906240970">"Sunet prestabilit (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
-    <string name="ringtone_title" msgid="6374978286202084684">"Ton de sonerie telefon"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Ton de apel telefon"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrează când sună"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Complet. autom. tastatură num."</string>
-    <string name="preference_category_ringtone" msgid="5197960752529332721">"Ton de sonerie și vibrare"</string>
-    <string name="manageConferenceLabel" msgid="4691922394301969053">"Gestionaţi teleconferinţa"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Ton de apel și vibrare"</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Gestionați teleconferinţa"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Număr de urgență"</string>
     <plurals name="duration_seconds" formatted="false" msgid="59971978269163609">
       <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> secunde</item>
@@ -171,4 +170,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> de ore</item>
       <item quantity="one">O oră</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Fotografie de profil"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Camera este oprită"</string>
+    <string name="child_number" msgid="7437330400723805538">"pe <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Nota a fost trimisă"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Mesaje recente"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Informații despre companie"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mi distanță"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km distanță"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Deschide mâine la <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Deschide astăzi la <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Închide la <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"A închis astăzi la <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Acum este deschis"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Acum este închis"</string>
 </resources>
diff --git a/InCallUI/res/values-ru/strings.xml b/InCallUI/res/values-ru/strings.xml
index c0736c8..876ad50 100644
--- a/InCallUI/res/values-ru/strings.xml
+++ b/InCallUI/res/values-ru/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Видеовстреча"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Запрос видео"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Не удалось совершить видеовызов"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Видеозвонок (на паузе)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Видеовызов отклонен"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Номер обратного вызова:\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Номер обратного вызова для экстренных служб:\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Набор номера"</string>
@@ -75,7 +75,7 @@
     <string name="notification_action_answer_video" msgid="7809271910870211729">"Видео"</string>
     <string name="notification_action_answer_voice" msgid="1770796916369437773">"Голосовой вызов"</string>
     <string name="notification_action_accept" msgid="2898609801209468429">"Принять"</string>
-    <string name="notification_action_dismiss" msgid="2679969397930852858">"Закрыть"</string>
+    <string name="notification_action_dismiss" msgid="2679969397930852858">"Отклонить"</string>
     <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Позвонить"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"Написать"</string>
     <string name="incall_error_power_off" msgid="6550191216405193368">"Перед тем как звонить, отключите режим полета."</string>
@@ -103,7 +103,7 @@
     <string name="onscreenEndCallText" msgid="9039601192595655846">"Завершить вызов"</string>
     <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Кнопки"</string>
     <string name="onscreenMuteText" msgid="5011369181754261374">"Откл. звук"</string>
-    <string name="onscreenAddCallText" msgid="5140385634712287403">"+ вызов"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Добавить вызов"</string>
     <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Соединить"</string>
     <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Перевод звонка"</string>
     <string name="onscreenManageCallsText" msgid="5473231160123254154">"Управление вызовами"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"По умолчанию (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Рингтон"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Вибросигнал и рингтон"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Автозаполнение номера"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Рингтон и вибросигнал"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Управление конференц-связью"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Экстренная служба"</string>
@@ -174,4 +173,21 @@
       <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> часов</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> часа</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Фото профиля"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Камера отключена"</string>
+    <string name="child_number" msgid="7437330400723805538">"через <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Сообщение отправлено"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Недавние сообщения"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Информация о компании"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> мил."</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> км"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Откроется завтра в <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Откроется сегодня в <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Работает до <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Сегодня не работает с <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Сейчас открыто"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Сейчас закрыто"</string>
 </resources>
diff --git a/InCallUI/res/values-si-rLK/strings.xml b/InCallUI/res/values-si-rLK/strings.xml
index 1d0786b..fe92a63 100644
--- a/InCallUI/res/values-si-rLK/strings.xml
+++ b/InCallUI/res/values-si-rLK/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"වීඩියෝ ඇමතුම"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"වීඩියෝවක් ඉල්ලමින්"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"වීඩියෝ ඇමතුම සම්බන්ධ කළ නොහැක"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"වීඩියෝ ඇමතුම (විරාමය)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"වීඩියෝ ඉල්ලීම ප්‍රතික්ෂේප කරන ලදී"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"ඔබට ආපසු කථා කිරීමේ අංකය\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"ඔබගේ හදිසි ඇමතුම් අංකය\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"අමතමින්"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"සුපුරුදු ශබ්දය (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"දුරකථන රිංටෝනය"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"රිංග් වන විට කම්පනයවේ"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"ඩයල් පැඩය ස්වයං සම්පුර්ණ කරන්න"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"රිගින් ටෝන් සහ කම්පනය කරන්න"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"සම්මන්ත්‍රණ ඇමතුම කළමනාකරණය කරන්න"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"හදිසි ඇමතුම් අංකය"</string>
@@ -168,4 +167,21 @@
       <item quantity="one">පැය <xliff:g id="COUNT">%d</xliff:g></item>
       <item quantity="other">පැය <xliff:g id="COUNT">%d</xliff:g></item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"පැතිකඩ ඡායාරූපය"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"කැමරාව ක්‍රියාවිරහිතයි"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> හරහා"</string>
+    <string name="note_sent" msgid="3548700178238244595">"සටහන යවන ලදී"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"මෑත පණිවිඩ"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"ව්‍යාපාර තොරතුරු"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"සැතපුම් <xliff:g id="DISTANCE">%.1f</xliff:g>ක් ඈතින්"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"කි.මි. <xliff:g id="DISTANCE">%.1f</xliff:g>ක් ඈතින්"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"හෙට <xliff:g id="OPEN_TIME">%s</xliff:g>ට විවෘත කෙරේ"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"අද <xliff:g id="OPEN_TIME">%s</xliff:g>ට විවෘත කෙරේ"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g>ට වසයි"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"අද <xliff:g id="CLOSE_TIME">%s</xliff:g>ට වසනු ලැබේ"</string>
+    <string name="open_now" msgid="6439301193613349163">"දැන් විවෘතයි"</string>
+    <string name="closed_now" msgid="9175774453982778909">"දැන් වසා ඇත"</string>
 </resources>
diff --git a/InCallUI/res/values-sk/strings.xml b/InCallUI/res/values-sk/strings.xml
index b272be4..78fe6e6 100644
--- a/InCallUI/res/values-sk/strings.xml
+++ b/InCallUI/res/values-sk/strings.xml
@@ -36,7 +36,7 @@
     <string name="wild_prompt_str" msgid="5543521676355533577">"Nahradiť zástupný znak znakom"</string>
     <string name="caller_manage_header" msgid="3231519674734638786">"Konferenčný hovor <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
     <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Číslo hlasovej schránky"</string>
-    <string name="card_title_dialing" msgid="5769417478498348054">"Vytáčanie"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Vytáča sa"</string>
     <string name="card_title_redialing" msgid="8253487008234167266">"Znova sa vytáča"</string>
     <string name="card_title_conf_call" msgid="1162980346189744501">"Konferenčný hovor"</string>
     <string name="card_title_incoming_call" msgid="7364539451234646909">"Prichádzajúci hovor"</string>
@@ -49,10 +49,10 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videohovor"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Žiada sa video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Videohovor nie je možné pripojiť"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videohovor (pozastavený)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Žiadosť o video bola odmietnutá"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Vaše číslo na spätné volanie\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Vaše číslo na spätné tiesňové volanie\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
-    <string name="notification_dialing" msgid="2107666444937350731">"Vytáčanie"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Vytáča sa"</string>
     <string name="notification_missedCallTitle" msgid="7554385905572364535">"Zmeškaný hovor"</string>
     <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Zmeškané hovory"</string>
     <string name="notification_missedCallsMsg" msgid="4575787816055205600">"Zmeškané hovory: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>."</string>
@@ -70,14 +70,14 @@
     <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Číslo hlasovej schránky je neznáme"</string>
     <string name="notification_network_selection_title" msgid="4224455487793492772">"Žiadny signál"</string>
     <string name="notification_network_selection_text" msgid="2607085729661923269">"Vybratá sieť (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nie je k dispozícii"</string>
-    <string name="notification_action_answer" msgid="6700362365135365143">"Odpoveď"</string>
+    <string name="notification_action_answer" msgid="6700362365135365143">"Prijať"</string>
     <string name="notification_action_end_call" msgid="6069460915123531620">"Položiť"</string>
     <string name="notification_action_answer_video" msgid="7809271910870211729">"Video"</string>
     <string name="notification_action_answer_voice" msgid="1770796916369437773">"Hlas"</string>
     <string name="notification_action_accept" msgid="2898609801209468429">"Prijať"</string>
     <string name="notification_action_dismiss" msgid="2679969397930852858">"Zatvoriť"</string>
-    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Zavolať späť"</string>
-    <string name="notification_missedCall_message" msgid="3049928912736917988">"Správa"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Zavolať"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Napísať"</string>
     <string name="incall_error_power_off" msgid="6550191216405193368">"Ak chcete telefonovať, vypnite najprv režim v lietadle."</string>
     <string name="incall_error_emergency_only" msgid="4678640422710818317">"Prihlásenie do siete nebolo úspešné."</string>
     <string name="incall_error_out_of_service" msgid="4100065333878929223">"Mobilná sieť nie je k dispozícii."</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Nastavenie"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Nenastavené&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Ďalšie nastavenia hovorov"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Voláte prostredníctvom poskytovateľa <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Volanie cez <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Prichádz. hovor prostred. poskytovateľa <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"fotografia kontaktu"</string>
     <string name="goPrivate" msgid="865837794424530980">"prepnúť na súkromné"</string>
@@ -131,7 +131,7 @@
     <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Napísať vlastnú..."</string>
     <string name="custom_message_cancel" msgid="7516406059429609296">"Zrušiť"</string>
     <string name="custom_message_send" msgid="5795754217085747742">"Odoslať"</string>
-    <string name="description_target_answer" msgid="7205604197797472471">"Odpovedať"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Prijať"</string>
     <string name="description_target_send_sms" msgid="2098326025587950144">"Odoslať SMS"</string>
     <string name="description_target_decline" msgid="4789834364389731957">"Odmietnuť"</string>
     <string name="description_target_answer_video_call" msgid="3495965588512395026">"Prijať ako videohovor"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Predvolený zvuk (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Tón zvonenia telefónu"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibrovať pri zvonení"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Čís. klávesnica – aut. dopĺň."</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Tón zvonenia a vibrovanie"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Spravovať konferenčný hovor"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Číslo tiesňového volania"</string>
@@ -174,4 +173,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> hodín</item>
       <item quantity="one">1 hodina</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profilová fotka"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera je vypnutá"</string>
+    <string name="child_number" msgid="7437330400723805538">"na čísle <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Poznámka bola odoslaná"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Nedávne správy"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Informácie o firme"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"Vzdialené <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"Vzdialené <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Otvára sa zajtra o <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Dnes sa otvára o <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Zatvára sa o <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Dnes bolo zatvorené o <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Otvorené"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Zatvorené"</string>
 </resources>
diff --git a/InCallUI/res/values-sl/strings.xml b/InCallUI/res/values-sl/strings.xml
index f418648..cb94456 100644
--- a/InCallUI/res/values-sl/strings.xml
+++ b/InCallUI/res/values-sl/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videoklic"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Zahtevanje videa"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Videoklica ni mogoče vzpostaviti"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videoklic (zaustavljen)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Zavrnjena zahteva za videoklic"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Vaša številka za povratni klic:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Vaša številka za povratni klic v sili:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Klicanje"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Nastavitev"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Ni nastavljeno&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Druge nastavitve klicev"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Klicanje prek ponudnika <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Klicanje prek <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Dohodni prek <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"fotografija stika"</string>
     <string name="goPrivate" msgid="865837794424530980">"zasebno"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Privzeti zvok (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Ton zvonjenja telefona"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Vibriranje ob zvonjenju"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Samodokončanje tipkovnice"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Zvonjenje in vibriranje"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Upravljanje konferenčnih klicev"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Številka za klic v sili"</string>
@@ -174,4 +173,21 @@
       <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> ure</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ur</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Slika profila"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera je izklopljena"</string>
+    <string name="child_number" msgid="7437330400723805538">"prek <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Opomba poslana"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Nedavna sporočila"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Podatki o podjetju"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mi stran"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km stran"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Odpre se jutri ob <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Odpre se danes ob <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Zapre se ob <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Zaprto danes ob <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Trenutno odprto"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Trenutno zaprto"</string>
 </resources>
diff --git a/InCallUI/res/values-sq-rAL/strings.xml b/InCallUI/res/values-sq-rAL/strings.xml
new file mode 100644
index 0000000..b56e2b1
--- /dev/null
+++ b/InCallUI/res/values-sq-rAL/strings.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2013 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefoni"</string>
+    <string name="onHold" msgid="9035493194749959955">"Në pritje"</string>
+    <string name="unknown" msgid="6878797917991465859">"I panjohur"</string>
+    <string name="private_num" msgid="6713286113000232309">"Numër privat"</string>
+    <string name="payphone" msgid="4793877574636445118">"Telefon me pagesë"</string>
+    <string name="confCall" msgid="1904840547188336828">"Telefonatë konference"</string>
+    <string name="call_lost" msgid="6183862117003999578">"Telefonata ra"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Altoparlant"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Kufje për vesh"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Kufje me tel"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Dëshiron t\'i dërgosh tonet e mëposhtme?\n"</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Po dërgon tone\n"</string>
+    <string name="send_button" msgid="4106860097497818751">"Dërgo"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Po"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Jo"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Zëvendëso karakterin variabël me"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Telefonatë konference <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Numri i postës zanore"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Po telefonon"</string>
+    <string name="card_title_redialing" msgid="8253487008234167266">"Po riformon numrin"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Telefonatë konference"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Telefonatë hyrëse"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Telefonata përfundoi"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Në pritje"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Mbyllja"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Në telefonatë"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Numri është <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="297586766381973954">"Po rilidh videon"</string>
+    <string name="card_title_video_call" msgid="5898636679563320218">"Telefonatë me video"</string>
+    <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Po kërkon video"</string>
+    <string name="card_title_video_call_error" msgid="9000555878389539225">"Nuk mund të lidhë telefonatën me video"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Kërkesa me video u refuzua"</string>
+    <string name="card_title_callback_number" msgid="7307938207564217293">"Numri i kthimit të telefonatës\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Numri i kthimit të telefonatës së urgjencës\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Po telefonon"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Telefonatë e humbur"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Telefonata të humbura"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> telefonata të humbura"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"Telefonatë e humbur nga <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Telefonatë në vazhdim"</string>
+    <string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"Telefonatë në vazhdim me Wi-Fi"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Në pritje"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Telefonatë hyrëse"</string>
+    <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"Telefonatë hyrëse Wi-Fi"</string>
+    <string name="notification_incoming_video_call" msgid="7356836933934464805">"Telefonatë me video hyrëse"</string>
+    <string name="notification_requesting_video_call" msgid="1405576812892369451">"Kërkesë për video hyrëse"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Postë e re zanore"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Postë e re zanore (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Formo numrin <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Numri i postës zanore është i panjohur"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Nuk ka shërbim"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Rrjeti i përzgjedhur (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) nuk mundësohet"</string>
+    <string name="notification_action_answer" msgid="6700362365135365143">"Përgjigju"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Mbyll"</string>
+    <string name="notification_action_answer_video" msgid="7809271910870211729">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="1770796916369437773">"Zanore"</string>
+    <string name="notification_action_accept" msgid="2898609801209468429">"Prano"</string>
+    <string name="notification_action_dismiss" msgid="2679969397930852858">"Injoro"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Telefono"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Mesazh"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Për të kryer telefonatë, së pari çaktivizo modalitetin e aeroplanit."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"I paregjistruar në rrjet."</string>
+    <string name="incall_error_out_of_service" msgid="4100065333878929223">"Rrjeti celular nuk mundësohet."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"Për të kryer një telefonatë, fut një numër të vlefshëm."</string>
+    <string name="incall_error_call_failed" msgid="6302746943230078197">"Nuk mund të telefonojë."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"Po fillon sekuencën MMI…"</string>
+    <string name="incall_error_supp_service_unknown" msgid="323435289607131929">"Shërbimi nuk mbështetet."</string>
+    <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"Nuk mund të ndryshojë telefonatat."</string>
+    <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Nuk mund të ndajë telefonatën."</string>
+    <string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"Nuk mund të transferojë."</string>
+    <string name="incall_error_supp_service_conference" msgid="7010354362202271726">"Nuk mund të kryejë telefonatë konference."</string>
+    <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Nuk mund të refuzojë telefonatën."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Nuk mund të lëshojë telefonatën(at)."</string>
+    <string name="incall_call_type_label_sip" msgid="4931428719494190371">"Telefonatë SAP"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Telefonata e urgjencës"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Po aktivizon radion…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Nuk ka shërbim. Po provon sërish…"</string>
+    <string name="dial_emergency_error" msgid="1509085166367420355">"Nuk mund të telefonohet. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> nuk është numër urgjence."</string>
+    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Nuk mund të telefonohet. Formo një numër urgjence."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Përdor tastierën për të formuar numrin"</string>
+    <string name="onscreenHoldText_unselected" msgid="7092499303393171276">"Vendose në pritje telefonatën"</string>
+    <string name="onscreenHoldText_selected" msgid="7127901498507384249">"Rifillo telefonatën"</string>
+    <string name="onscreenEndCallText" msgid="9039601192595655846">"Mbylle telefonatën"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Blloku i formimit të numrit"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Kalo në heshtje"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Shto telefonatë"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Shkri telefonatat"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Shkëmbe"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Menaxho telefonatat"</string>
+    <string name="onscreenManageConferenceText" msgid="6801708317570467407">"Menaxho telefonatën-konferencë"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Telefonatë me video"</string>
+    <string name="onscreenChangeToVoiceText" msgid="5311407863653867937">"Ndërro në telefonatë me video"</string>
+    <string name="onscreenSwitchCameraText" msgid="5324543493442787798">"Ndërro kamerën"</string>
+    <string name="onscreenPauseVideoText" msgid="5663965924921429203">"Vendose në pauzë videon"</string>
+    <string name="onscreenOverflowText" msgid="2702376562345723132">"Më shumë opsione"</string>
+    <string name="player_started" msgid="6046262510243983589">"Luajtësi filloi"</string>
+    <string name="player_stopped" msgid="8856926759436364963">"Luajtësi ndaloi"</string>
+    <string name="camera_not_ready" msgid="4955261496193316240">"Kamera nuk është gati"</string>
+    <string name="camera_ready" msgid="1903335385405807324">"Kamera është gati"</string>
+    <string name="unknown_call_session_event" msgid="2431061946920253582">"Ngjarje e panjohur në sesionin e telefonatës"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Shërbimi"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Konfigurimi"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;I pavendosur&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Cilësime të tjera të telefonatës"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Telefonatë përmes <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="incoming_via_template" msgid="1696993226115570960">"Hyrëse nga <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"fotografia e kontaktit"</string>
+    <string name="goPrivate" msgid="865837794424530980">"bëje private"</string>
+    <string name="selectContact" msgid="781975788478987237">"përzgjidh kontaktin"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"Shkruaj përgjigjen tënde..."</string>
+    <string name="custom_message_cancel" msgid="7516406059429609296">"Anulo"</string>
+    <string name="custom_message_send" msgid="5795754217085747742">"Dërgo"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Përgjigju"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"Dërgo SMS"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Refuzo"</string>
+    <string name="description_target_answer_video_call" msgid="3495965588512395026">"Përgjigju si telefonatë me video"</string>
+    <string name="description_target_answer_audio_call" msgid="8396296303320994450">"Përgjigju si telefonatë me video"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="2894072808324604062">"Prano kërkesën për video"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="4093888612888538776">"Refuzo kërkesën për video"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="5311037889642077468">"Prano kërkesën për transmetimin e videos"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="3636108065510415975">"Refuzo kërkesën për transmetimin e videos"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="8668058323593087912">"Prano kërkesën për marrjen e videos"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="2355776509656298367">"Refuzo kërkesën për marrjen e videos"</string>
+    <string name="description_direction_up" msgid="4441409581444516690">"Rrëshqit lart për <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_left" msgid="7129873384376533287">"Rrëshqit majtas për <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_right" msgid="2122584234531957308">"Rrëshqit djathtas për <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="description_direction_down" msgid="4317245625565166742">"Rrëshqit poshtë për <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Dridhja"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Dridhja"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Tingulli"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Tingulli me parazgjedhje (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Zilja e telefonit"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Lësho edhe dridhje kur bie zilja"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Me zile dhe me dridhje"</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Menaxho telefonatën-konferencë"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Numri i urgjencës"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="59971978269163609">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sekonda</item>
+      <item quantity="one">1 sekondë</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="1103289948818175408">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> minuta</item>
+      <item quantity="one">1 minutë</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7560637459014865969">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> orë</item>
+      <item quantity="one">1 orë</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Fotografia e profilit"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera joaktive"</string>
+    <string name="child_number" msgid="7437330400723805538">"përmes <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Shënimi u dërgua"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Mesazhet e fundit"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Informacioni i biznesit"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> milje larg"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km larg"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Hapet nesër në <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Hapet sot në <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Mbyllet në <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Mbyllur sot në <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Tani është hapur"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Tani është mbyllur"</string>
+</resources>
diff --git a/InCallUI/res/values-sr/strings.xml b/InCallUI/res/values-sr/strings.xml
index 1c3bcc9..f83800d 100644
--- a/InCallUI/res/values-sr/strings.xml
+++ b/InCallUI/res/values-sr/strings.xml
@@ -36,7 +36,7 @@
     <string name="wild_prompt_str" msgid="5543521676355533577">"Замените џокер знак са"</string>
     <string name="caller_manage_header" msgid="3231519674734638786">"Конференцијски позив <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
     <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Број говорне поште"</string>
-    <string name="card_title_dialing" msgid="5769417478498348054">"Позивање"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Позива се"</string>
     <string name="card_title_redialing" msgid="8253487008234167266">"Поновно бирање"</string>
     <string name="card_title_conf_call" msgid="1162980346189744501">"Конференцијски позив"</string>
     <string name="card_title_incoming_call" msgid="7364539451234646909">"Долазни позив"</string>
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Видео позив"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Захтевање видео позива"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Повезивање видео позива није успело"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Видео позив (паузиран)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Захтев за видео позив је одбијен"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Број за повратни позив\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Број за хитан повратни позив\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Бирање"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Подешавање"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Није подешено&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Друга подешавања позива"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Позивање преко добављача <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Позивање преко <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Долазна преко <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"фотографија контакта"</string>
     <string name="goPrivate" msgid="865837794424530980">"иди на приватно"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Подразумевани звук (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Мелодија звона телефона"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Вибрирај када звони"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Аутоматско довршавање"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Мелодија звона и вибрација"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Управљање конференцијским позивом"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Број за хитне случајеве"</string>
@@ -171,4 +170,21 @@
       <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> сата</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> сати</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Слика профила"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Камера је искључена"</string>
+    <string name="child_number" msgid="7437330400723805538">"на <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Белешка је послата"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Недавне поруке"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Информације о предузећу"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"Удаљеност је <xliff:g id="DISTANCE">%.1f</xliff:g> mi"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"Удаљеност је <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Отвара се сутра у <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Отвара се данас у <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Затвара се у <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Затворило се данас у <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Тренутно отворено"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Тренутно затворено"</string>
 </resources>
diff --git a/InCallUI/res/values-sv/strings.xml b/InCallUI/res/values-sv/strings.xml
index 3bdcb8d..fe6c742 100644
--- a/InCallUI/res/values-sv/strings.xml
+++ b/InCallUI/res/values-sv/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Videosamtal"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Begär video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Det gick inte att ansluta till videosamtalet"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Videosamtal (pausat)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Videobegäran avslogs"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Ditt nummer för återuppringning\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Ditt nödnummer för återuppringning\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Ringer"</string>
@@ -77,7 +77,7 @@
     <string name="notification_action_accept" msgid="2898609801209468429">"Godkänn"</string>
     <string name="notification_action_dismiss" msgid="2679969397930852858">"Avvisa"</string>
     <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Ring upp"</string>
-    <string name="notification_missedCall_message" msgid="3049928912736917988">"Meddelande"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"Sms:a"</string>
     <string name="incall_error_power_off" msgid="6550191216405193368">"Om du vill ringa ett samtal måste du först inaktivera flygplansläge."</string>
     <string name="incall_error_emergency_only" msgid="4678640422710818317">"Inte registrerat på nätverk."</string>
     <string name="incall_error_out_of_service" msgid="4100065333878929223">"Det finns inget mobilnät tillgängligt."</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Standardsignal (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Ringsignal"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Mobilen vibrerar när det ringer"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Autoslutförande för knappsats"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringsignal och vibrera"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Hantera konferenssamtal"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Nödsamtalsnummer"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> timmar</item>
       <item quantity="one">1 timme</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profilfoto"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera av"</string>
+    <string name="child_number" msgid="7437330400723805538">"via <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Anteckningen har skickats"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Senaste meddelandena"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Företagsuppgifter"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> miles bort"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km bort"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Öppnar i morgon kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Öppnar i dag kl. <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Stänger kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Stängde i dag kl. <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Öppet"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Stängt"</string>
 </resources>
diff --git a/InCallUI/res/values-sw/strings.xml b/InCallUI/res/values-sw/strings.xml
index b3d287e..4c417c5 100644
--- a/InCallUI/res/values-sw/strings.xml
+++ b/InCallUI/res/values-sw/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Hangout ya Video"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Inaomba video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Haiwezi kuunganisha Hangout ya video"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Hangout ya video (Imesitishwa)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Ombi la video limekataliwa"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Nambari yako ya kupigiwa simu\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Nambari yako ya dharura ya kupigiwa simu\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Inapiga"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Sanidi"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Haijawekwa&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Mipangilio mingine ya simu"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Kupiga simu kupitia <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Inapiga kupitia <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Simu zinazoingia kupitia <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"picha ya anwani"</string>
     <string name="goPrivate" msgid="865837794424530980">"nenda kwa faragha"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Sauti chaguo-msingi (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Mlio wa simu"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Tetema wakati wa kulia"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Ukamilishaji otomatiki wa vitufe vya kupiga simu"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Mlio wa simu na Mtetemo"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Dhibiti simu ya kongamano"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Nambari ya dharura"</string>
@@ -168,4 +167,21 @@
       <item quantity="other">Saa <xliff:g id="COUNT">%d</xliff:g></item>
       <item quantity="one">Saa 1</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Picha kwenye wasifu"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera imezimwa"</string>
+    <string name="child_number" msgid="7437330400723805538">"kupitia <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Dokezo limetumwa"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Ujumbe wa hivi majuzi"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Maelezo ya biashara"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"Umbali wa maili <xliff:g id="DISTANCE">%.1f</xliff:g>"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"Umbali wa kilomita <xliff:g id="DISTANCE">%.1f</xliff:g>"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Itafunguliwa kesho saa <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Itafunguliwa leo saa <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Hufungwa saa <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Imefungwa leo saa <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Sasa imefunguliwa"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Sasa imefungwa"</string>
 </resources>
diff --git a/InCallUI/res/values-sw360dp/dimens.xml b/InCallUI/res/values-sw360dp/dimens.xml
index d6ee5b4..9fbcd60 100644
--- a/InCallUI/res/values-sw360dp/dimens.xml
+++ b/InCallUI/res/values-sw360dp/dimens.xml
@@ -18,9 +18,6 @@
 <resources>
     <!-- Dimensions for CallCard elements (the normal in-call UI) -->
 
-    <!-- Height of the "call banner" overlay on top of the upper part of
-         the call info area. -->
-    <dimen name="call_banner_height">122dp</dimen>
     <!-- Text size for the name in the call info. -->
     <dimen name="call_status_text_size">22sp</dimen>
     <dimen name="call_status_text_min_size">18sp</dimen>
diff --git a/InCallUI/res/values-ta-rIN/strings.xml b/InCallUI/res/values-ta-rIN/strings.xml
index a4f1feb..638b6ff 100644
--- a/InCallUI/res/values-ta-rIN/strings.xml
+++ b/InCallUI/res/values-ta-rIN/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"வீடியோ அழைப்பு"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"வீடியோவைக் கோருகிறது"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"வீடியோ அழைப்பை இணைக்க முடியாது"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"வீடியோ அழைப்பு (இடைநிறுத்தப்பட்டது)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"வீடியோ கோரிக்கை புறக்கணிக்கப்பட்டது"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"உங்களைத் திரும்ப அழைப்பதற்கான எண்\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"அவசர அழைப்பு எண்\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"அழைக்கிறது"</string>
@@ -70,13 +70,13 @@
     <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"குரலஞ்சல் எண் அறியப்படவில்லை"</string>
     <string name="notification_network_selection_title" msgid="4224455487793492772">"சேவை இல்லை"</string>
     <string name="notification_network_selection_text" msgid="2607085729661923269">"தேர்ந்தெடுத்த நெட்வொர்க் (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) கிடைக்கவில்லை"</string>
-    <string name="notification_action_answer" msgid="6700362365135365143">"பதில்"</string>
+    <string name="notification_action_answer" msgid="6700362365135365143">"எடு"</string>
     <string name="notification_action_end_call" msgid="6069460915123531620">"துண்டி"</string>
     <string name="notification_action_answer_video" msgid="7809271910870211729">"வீடியோ"</string>
     <string name="notification_action_answer_voice" msgid="1770796916369437773">"குரல்"</string>
     <string name="notification_action_accept" msgid="2898609801209468429">"ஏற்கிறேன்"</string>
     <string name="notification_action_dismiss" msgid="2679969397930852858">"நிராகரி"</string>
-    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"திருப்பி அழை"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"அழை"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"செய்தி"</string>
     <string name="incall_error_power_off" msgid="6550191216405193368">"அழைப்பதற்கு, முதலில் விமானப் பயன்முறையை முடக்கவும்."</string>
     <string name="incall_error_emergency_only" msgid="4678640422710818317">"நெட்வொர்க்கில் பதிவுசெய்யப்படவில்லை."</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"இயல்பு ஒலி (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"தொலைபேசி ரிங்டோன்"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"ரிங் ஆகும்போது அதிர்வை ஏற்படுத்து"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"டயல்பேட் தன்னிரப்பி"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"ரிங்டோன் &amp; அதிர்வு"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"குழு அழைப்பை நிர்வகிக்கவும்"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"அவசரகால எண்"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> மணிநேரம்</item>
       <item quantity="one">1 மணிநேரம்</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"சுயவிவரப் படம்"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"கேமராவை முடக்கும்"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> வழியாக"</string>
+    <string name="note_sent" msgid="3548700178238244595">"குறிப்பு அனுப்பப்பட்டது"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"சமீபத்திய செய்திகள்"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"வணிகத் தகவல்"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> மைல் தொலைவில்"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> கிமீ தொலைவில்"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"நாளை <xliff:g id="OPEN_TIME">%s</xliff:g> மணிக்குத் திறக்கப்படும்"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"இன்று <xliff:g id="OPEN_TIME">%s</xliff:g> மணிக்குத் திறக்கப்படும்"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g> மணிக்கு மூடப்படும்"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"இன்று <xliff:g id="CLOSE_TIME">%s</xliff:g> மணிக்கு மூடப்பட்டது"</string>
+    <string name="open_now" msgid="6439301193613349163">"இப்போது திறக்கப்பட்டுள்ளது"</string>
+    <string name="closed_now" msgid="9175774453982778909">"இப்போது மூடப்பட்டுள்ளது"</string>
 </resources>
diff --git a/InCallUI/res/values-te-rIN/strings.xml b/InCallUI/res/values-te-rIN/strings.xml
index 479b4c2..94ef5df 100644
--- a/InCallUI/res/values-te-rIN/strings.xml
+++ b/InCallUI/res/values-te-rIN/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"వీడియో కాల్"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"వీడియో కోసం అభ్యర్థిస్తోంది"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"వీడియో కాల్‌ను కనెక్ట్ చేయలేరు"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"వీడియో కాల్ (పాజ్ చేయబడింది)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"వీడియో అభ్యర్థన నిరాకరించబడింది"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"మీ కాల్‌బ్యాక్ నంబర్\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"మీ అత్యవసర కాల్‌బ్యాక్ నంబర్\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"డయల్ చేస్తోంది"</string>
@@ -76,7 +76,7 @@
     <string name="notification_action_answer_voice" msgid="1770796916369437773">"వాయిస్"</string>
     <string name="notification_action_accept" msgid="2898609801209468429">"ఆమోదిస్తున్నాను"</string>
     <string name="notification_action_dismiss" msgid="2679969397930852858">"తీసివేయి"</string>
-    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"తిరిగి కాల్ చేయి"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"కాల్ చేయి"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"సందేశం"</string>
     <string name="incall_error_power_off" msgid="6550191216405193368">"కాల్ చేయడానికి, మొదట ఎయిర్‌ప్లైన్ మోడ్‌ను ఆపివేయండి."</string>
     <string name="incall_error_emergency_only" msgid="4678640422710818317">"నెట్‌వర్క్‌లో నమోదు కాలేదు."</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"సెటప్"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;సెట్ చేయలేదు&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"ఇతర కాల్ సెట్టింగ్‌లు"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ద్వారా కాల్ చేయబడుతోంది"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>తో కాల్ వెళుతోంది"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ద్వారా ఇన్‌కమింగ్"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"పరిచయ ఫోటో"</string>
     <string name="goPrivate" msgid="865837794424530980">"ప్రైవేట్‌గా వెళ్లు"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"డిఫాల్ట్ ధ్వని (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"ఫోన్ రింగ్‌టోన్"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"రింగ్ అవుతున్నప్పుడు వైబ్రేట్ చేయి"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"డయల్‌ప్యాడ్ స్వీయపూర్తి"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"రింగ్‌టోన్ &amp; వైబ్రేట్"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"కాన్ఫరెన్స్ కాల్‌ను నిర్వహించండి"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"అత్యవసర నంబర్"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> గంటలు</item>
       <item quantity="one">1 గంట</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"ప్రొఫైల్ ఫోటో"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"కెమెరా ఆఫ్‌లో ఉంది"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> ద్వారా"</string>
+    <string name="note_sent" msgid="3548700178238244595">"గమనిక పంపబడింది"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"ఇటీవలి సందేశాలు"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"వ్యాపార సంస్థ సమాచారం"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> మై. దూరంలో ఉంది"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> కి.మీ దూరంలో ఉంది"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"రేపు <xliff:g id="OPEN_TIME">%s</xliff:g>కి తెరవబడుతుంది"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"ఈరోజు <xliff:g id="OPEN_TIME">%s</xliff:g>కి తెరవబడుతుంది"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g>కి మూసివేయబడుతుంది"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"ఈరోజు <xliff:g id="CLOSE_TIME">%s</xliff:g>కి మూసివేయబడింది"</string>
+    <string name="open_now" msgid="6439301193613349163">"ఇప్పుడు తెరిచి ఉంది"</string>
+    <string name="closed_now" msgid="9175774453982778909">"ఇప్పుడు మూసివేయబడింది"</string>
 </resources>
diff --git a/InCallUI/res/values-th/strings.xml b/InCallUI/res/values-th/strings.xml
index 0cd0a55..540a15f 100644
--- a/InCallUI/res/values-th/strings.xml
+++ b/InCallUI/res/values-th/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"แฮงเอาท์วิดีโอ"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"กำลังขอวิดีโอ"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"ไม่สามารถเชื่อมต่อแฮงเอาท์วิดีโอได้"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"แฮงเอาท์วิดีโอ (หยุดชั่วคราว)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"คำขอวิดีโอถูกปฏิเสธ"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"หมายเลขโทรกลับของคุณ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"หมายเลขโทรกลับฉุกเฉินของคุณ\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"กำลังโทรออก"</string>
@@ -70,12 +70,12 @@
     <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"ไม่ทราบหมายเลขข้อความเสียง"</string>
     <string name="notification_network_selection_title" msgid="4224455487793492772">"ไม่มีบริการ"</string>
     <string name="notification_network_selection_text" msgid="2607085729661923269">"เครือข่ายที่เลือกไว้ (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) ไม่พร้อมใช้งาน"</string>
-    <string name="notification_action_answer" msgid="6700362365135365143">"ตอบ"</string>
+    <string name="notification_action_answer" msgid="6700362365135365143">"รับสาย"</string>
     <string name="notification_action_end_call" msgid="6069460915123531620">"วางสาย"</string>
     <string name="notification_action_answer_video" msgid="7809271910870211729">"วิดีโอ"</string>
     <string name="notification_action_answer_voice" msgid="1770796916369437773">"เสียง"</string>
     <string name="notification_action_accept" msgid="2898609801209468429">"ยอมรับ"</string>
-    <string name="notification_action_dismiss" msgid="2679969397930852858">"ปิด"</string>
+    <string name="notification_action_dismiss" msgid="2679969397930852858">"ไม่รับ"</string>
     <string name="notification_missedCall_call_back" msgid="2684890353590890187">"โทรกลับ"</string>
     <string name="notification_missedCall_message" msgid="3049928912736917988">"ข้อความ"</string>
     <string name="incall_error_power_off" msgid="6550191216405193368">"หากต้องการโทรออก ให้ปิดโหมดใช้งานบนเครื่องบินก่อน"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"เสียงเริ่มต้น (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"เสียงเรียกเข้าโทรศัพท์"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"สั่นเมื่อมีสายเข้า"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"เติมหมายเลขอัตโนมัติบนแป้น"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"เสียงเรียกเข้าและสั่น"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"จัดการการประชุมสาย"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"หมายเลขฉุกเฉิน"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ชั่วโมง</item>
       <item quantity="one">1 ชั่วโมง</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"รูปโปรไฟล์"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"ปิดกล้อง"</string>
+    <string name="child_number" msgid="7437330400723805538">"ผ่านหมายเลข <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"ส่งโน้ตแล้ว"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"ข้อความล่าสุด"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"ข้อมูลธุรกิจ"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"อยู่ห่างออกไป <xliff:g id="DISTANCE">%.1f</xliff:g> ไมล์"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"อยู่ห่างออกไป <xliff:g id="DISTANCE">%.1f</xliff:g> กม."</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"เปิดให้บริการพรุ่งนี้เวลา <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"เปิดให้บริการวันนี้เวลา <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"ปิดให้บริการเวลา <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"ปิดให้บริการแล้ววันนี้เวลา <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"ขณะนี้เปิดทำการ"</string>
+    <string name="closed_now" msgid="9175774453982778909">"ขณะนี้ปิดทำการ"</string>
 </resources>
diff --git a/InCallUI/res/values-tl/strings.xml b/InCallUI/res/values-tl/strings.xml
index 8a88f9b..0468b55 100644
--- a/InCallUI/res/values-tl/strings.xml
+++ b/InCallUI/res/values-tl/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Video call"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Humihiling ng video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Hindi makakonekta sa video call"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video call (Naka-pause)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Tinanggihan ang kahilingan sa video"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Ang iyong numero ng callback\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Ang iyong emergency na numero ng callback\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Dina-dial"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Setup"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Hindi nakatakda&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Iba pang mga setting ng tawag"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Tumatawag sa pamamagitan ng <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Tumatawag via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Papasok sa pamamagitan ng <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"larawan ng contact"</string>
     <string name="goPrivate" msgid="865837794424530980">"maging pribado"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Default na tunog (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Ringtone ng telepono"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"I-vibrate kapag nagri-ring"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"I-autocomplete ang dialpad"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ringtone at Pag-vibrate"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Pamahalaan ang conference call"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Pang-emergency na numero"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> oras</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> na oras</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Larawan sa profile"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Naka-off ang camera"</string>
+    <string name="child_number" msgid="7437330400723805538">"sa pamamagitan ng <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Naipadala ang tala"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Mga kamakailang mensahe"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Impormasyon ng negosyo"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> (na) milya ang layo"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> (na) kilometro ang layo"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Magbubukas bukas nang <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Magbubukas ngayon nang <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Magsasara nang <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Sarado ngayon nang <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Bukas ngayon"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Sarado ngayon"</string>
 </resources>
diff --git a/InCallUI/res/values-tr/strings.xml b/InCallUI/res/values-tr/strings.xml
index f0cd34f..8e5e28b 100644
--- a/InCallUI/res/values-tr/strings.xml
+++ b/InCallUI/res/values-tr/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Video görüşmesi"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Video isteniyor"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Video görüşmesi bağlantısı yapılamıyor"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Video görüşmesi (Duraklatıldı)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Video isteği reddedildi"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Geri arama numaranız\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Acil durum geri arama numaranız\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Çevriliyor"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Kurulum"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Ayarlanmadı&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Diğer çağrı ayarları"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> üzerinden çağrı yapılıyor"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> üzerinden"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> adlı sağlayıcı üzerinden gelen çağrı"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"kişi fotoğrafı"</string>
     <string name="goPrivate" msgid="865837794424530980">"özele git"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Varsayılan ses (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Telefon zil sesi"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Çalarken titret"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Tuş takımı otomatik tamamlama"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Zil Sesi ve Titreşim"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Konferans görüşmesini yönet"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Acil durum numarası"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> saat</item>
       <item quantity="one">1 saat</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profil fotoğrafı"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera kapalı"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> ile"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Not gönderildi"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Son iletiler"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"İş bilgileri"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mil uzakta"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km uzakta"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Yarın açılış saati: <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Bugün açılış saati: <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Kapanış saati: <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Bugün kapanış saati: <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Şu an açık"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Şu an kapalı"</string>
 </resources>
diff --git a/InCallUI/res/values-uk/strings.xml b/InCallUI/res/values-uk/strings.xml
index 5671b73..749d9c4 100644
--- a/InCallUI/res/values-uk/strings.xml
+++ b/InCallUI/res/values-uk/strings.xml
@@ -35,8 +35,8 @@
     <string name="pause_prompt_no" msgid="6686238803236884877">"Ні"</string>
     <string name="wild_prompt_str" msgid="5543521676355533577">"Замінити довільний символ на"</string>
     <string name="caller_manage_header" msgid="3231519674734638786">"Конференц-виклик <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
-    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Номер голос. пошти"</string>
-    <string name="card_title_dialing" msgid="5769417478498348054">"Набір"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Номер голосової пошти"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Набір номера"</string>
     <string name="card_title_redialing" msgid="8253487008234167266">"Повторний набір"</string>
     <string name="card_title_conf_call" msgid="1162980346189744501">"Конференц-виклик"</string>
     <string name="card_title_incoming_call" msgid="7364539451234646909">"Вхідний дзвінок"</string>
@@ -49,11 +49,11 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Відеодзвінок"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Надсилання запиту на відеодзвінок"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Неможливо здійснити відеодзвінок"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Відеодзвінок (призупинено)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Запрошення на відеодзвінок відхилено"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Номер для зв’язку:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Екстрений номер:\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
-    <string name="notification_dialing" msgid="2107666444937350731">"Набір"</string>
-    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Пропущ. виклик"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Набір номера"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Пропущений виклик"</string>
     <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Пропущ. дзвінки"</string>
     <string name="notification_missedCallsMsg" msgid="4575787816055205600">"Пропущ. дзвінк: <xliff:g id="NUM_MISSED_CALLS">%s</xliff:g>"</string>
     <string name="notification_missedCallTicker" msgid="504686252427747209">"Пропущ. виклик від <xliff:g id="MISSED_CALL_FROM">%s</xliff:g>"</string>
@@ -64,10 +64,10 @@
     <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"Вхідний дзвінок через Wi-Fi"</string>
     <string name="notification_incoming_video_call" msgid="7356836933934464805">"Вхідний відеодзвінок"</string>
     <string name="notification_requesting_video_call" msgid="1405576812892369451">"Запит на вхідний відеодзвінок"</string>
-    <string name="notification_voicemail_title" msgid="8933468752045550523">"Нова голос. пошта"</string>
-    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Нова голос. пошта (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Нове голосове повідомлення"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Нове голосове повідомлення (<xliff:g id="COUNT">%d</xliff:g>)"</string>
     <string name="notification_voicemail_text_format" msgid="4447323569453981685">"Набрати <xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>"</string>
-    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Невідомий номер голос. пошти"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Невідомий номер голосової пошти"</string>
     <string name="notification_network_selection_title" msgid="4224455487793492772">"Нема служби"</string>
     <string name="notification_network_selection_text" msgid="2607085729661923269">"Вибрана мережа (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) недоступна"</string>
     <string name="notification_action_answer" msgid="6700362365135365143">"Відповісти"</string>
@@ -103,7 +103,7 @@
     <string name="onscreenEndCallText" msgid="9039601192595655846">"Завершити виклик"</string>
     <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Цифр. клав."</string>
     <string name="onscreenMuteText" msgid="5011369181754261374">"Вимк. зв."</string>
-    <string name="onscreenAddCallText" msgid="5140385634712287403">"Дод. виклик"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Додати виклик"</string>
     <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Об’єдн. дзвінки"</string>
     <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Поміняти"</string>
     <string name="onscreenManageCallsText" msgid="5473231160123254154">"Керув. викликами"</string>
@@ -123,7 +123,7 @@
     <string name="voicemail_settings" msgid="72448049107749316">"Налаштування"</string>
     <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Не встановлено&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Інші налаштування виклику"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"Виклик здійснюється за допомогою <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"Виклик через <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Вхідні дзвінки через оператора <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"фото контакта"</string>
     <string name="goPrivate" msgid="865837794424530980">"конфіденц."</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Звук за умовчанням (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Сигнал дзвінка телефону"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Вібрувати під час дзвінка"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Автозаповн. цифрової клавіат."</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Сигнал дзвінка та вібросигнал"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Керувати конференц-викликом"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Екстрений номер"</string>
@@ -174,4 +173,21 @@
       <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> годин</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> години</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Фотографія профілю"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Камеру вимкнено"</string>
+    <string name="child_number" msgid="7437330400723805538">"на номер <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Нотатку надіслано"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Останні повідомлення"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Інформація про компанію"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"За <xliff:g id="DISTANCE">%.1f</xliff:g> мил."</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"За <xliff:g id="DISTANCE">%.1f</xliff:g> км"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g>–<xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Відчиняється завтра о <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Відчиняється сьогодні о <xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Зачиняється о <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Зачинено сьогодні о <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Відчинено"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Зачинено"</string>
 </resources>
diff --git a/InCallUI/res/values-ur-rPK/strings.xml b/InCallUI/res/values-ur-rPK/strings.xml
index 8a3b11d..a07c0f5 100644
--- a/InCallUI/res/values-ur-rPK/strings.xml
+++ b/InCallUI/res/values-ur-rPK/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"ویڈیو کال"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"ویڈیو کی درخواست کی جا رہی ہے"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"ویڈیو کال منسلک نہیں کر سکتا"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"ویڈیو کال (موقوف)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"ویڈیو کی درخواست مسترد کر دی گئی"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"‏آپ کا کال بیک نمبر‎\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>‎"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"‏آپ کا ہنگامی کال بیک نمبر‎\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>‎"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"ڈائل ہو رہا ہے"</string>
@@ -121,9 +121,9 @@
     <string name="unknown_call_session_event" msgid="2431061946920253582">"نامعلوم کال سیشن ایونٹ"</string>
     <string name="voicemail_provider" msgid="5135942703327136909">"سروس"</string>
     <string name="voicemail_settings" msgid="72448049107749316">"سیٹ اپ"</string>
-    <string name="voicemail_number_not_set" msgid="6724904736891087856">"‏&lt;متعین نہیں ہے&gt;"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"‏&lt;سیٹ نہیں ہے&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"دیگر کال کی ترتیبات"</string>
-    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> کی معرفت کال ہو رہی ہے"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"کالنگ بذریعہ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> کے ذریعے موصول ہونے والی"</string>
     <string name="contactPhoto" msgid="4713193418046639466">"رابطہ کی تصویر"</string>
     <string name="goPrivate" msgid="865837794424530980">"نجی ہوجائیں"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"ڈیفالٹ آواز (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"فون رنگ ٹون"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"بجنے کے وقت مرتعش کریں"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"ڈائل پیڈ کی خودکار تکمیل"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"رنگ ٹون اور وائبریٹ"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"کانفرنس کال کا نظم کریں"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"ہنگامی نمبر"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> گھنٹے</item>
       <item quantity="one">1 گھنٹہ</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"پروفائل کی تصویر"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"کیمرہ آف ہے"</string>
+    <string name="child_number" msgid="7437330400723805538">"بذریعہ <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"نوٹ بھیج دیا گیا"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"حالیہ پیغامات"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"کاروباری معلومات"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> میل دور"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> کلومیٹر دور"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>، <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>، <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"کل <xliff:g id="OPEN_TIME">%s</xliff:g> بجے کھلے گا"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"آج <xliff:g id="OPEN_TIME">%s</xliff:g> بجے کھلے گا"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g> بجے بند ہوگا"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"آج <xliff:g id="CLOSE_TIME">%s</xliff:g> بجے بند ہوا"</string>
+    <string name="open_now" msgid="6439301193613349163">"ابھی کھلا ہے"</string>
+    <string name="closed_now" msgid="9175774453982778909">"اب بند ہے"</string>
 </resources>
diff --git a/InCallUI/res/values-uz-rUZ/strings.xml b/InCallUI/res/values-uz-rUZ/strings.xml
new file mode 100644
index 0000000..53aa5f4
--- /dev/null
+++ b/InCallUI/res/values-uz-rUZ/strings.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2013 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="phoneAppLabel" product="default" msgid="906161039445636857">"Telefon"</string>
+    <string name="onHold" msgid="9035493194749959955">"Kutmoqda"</string>
+    <string name="unknown" msgid="6878797917991465859">"Noma’lum"</string>
+    <string name="private_num" msgid="6713286113000232309">"Shaxsiy raqam"</string>
+    <string name="payphone" msgid="4793877574636445118">"Taksofon"</string>
+    <string name="confCall" msgid="1904840547188336828">"Konferensiya qo‘ng‘irog‘i"</string>
+    <string name="call_lost" msgid="6183862117003999578">"Qo‘ng‘iroq tugatildi"</string>
+    <string name="audio_mode_speaker" msgid="27649582100085266">"Karnay"</string>
+    <string name="audio_mode_earpiece" msgid="4156527186373869107">"Telefon quloq eshitgichlari"</string>
+    <string name="audio_mode_wired_headset" msgid="1465350758489175975">"Simli garnitura"</string>
+    <string name="audio_mode_bluetooth" msgid="3047641300848211128">"Bluetooth"</string>
+    <string name="wait_prompt_str" msgid="7601815427707856238">"Ushbu tovushlar jo‘natilsinmi?\n"</string>
+    <string name="pause_prompt_str" msgid="1789964702154314806">"Tovushlar jo‘natilmoqda\n"</string>
+    <string name="send_button" msgid="4106860097497818751">"Jo‘natish"</string>
+    <string name="pause_prompt_yes" msgid="3564467212025151797">"Ha"</string>
+    <string name="pause_prompt_no" msgid="6686238803236884877">"Yo‘q"</string>
+    <string name="wild_prompt_str" msgid="5543521676355533577">"Belgilarni quyidagilar bilan almashtiring:"</string>
+    <string name="caller_manage_header" msgid="3231519674734638786">"Konferensiya qo‘ng‘irog‘i <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
+    <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Ovozli pochta raqami"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Raqam terilmoqda"</string>
+    <string name="card_title_redialing" msgid="8253487008234167266">"Qayta terilmoqda"</string>
+    <string name="card_title_conf_call" msgid="1162980346189744501">"Konferensiya qo‘ng‘irog‘i"</string>
+    <string name="card_title_incoming_call" msgid="7364539451234646909">"Kiruvchi qo‘ng‘iroq"</string>
+    <string name="card_title_call_ended" msgid="5544730338889702298">"Qo‘ng‘iroq tugadi"</string>
+    <string name="card_title_on_hold" msgid="821463117892339942">"Kutish holatida"</string>
+    <string name="card_title_hanging_up" msgid="3999101620995182450">"Go‘shak qo‘yilmoqda"</string>
+    <string name="card_title_in_call" msgid="6346543933068225205">"Qo‘ng‘iroqda"</string>
+    <string name="card_title_my_phone_number" msgid="112428362494434191">"Mening raqamim - <xliff:g id="MY_PHONE_NUMBER">%s</xliff:g>"</string>
+    <string name="card_title_video_call_connecting" msgid="297586766381973954">"Videoga ulanmoqda"</string>
+    <string name="card_title_video_call" msgid="5898636679563320218">"Video qo‘ng‘iroq"</string>
+    <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Video so\'ralmoqda"</string>
+    <string name="card_title_video_call_error" msgid="9000555878389539225">"Video qo‘ng‘iroqqa ulanib bo‘lmadi"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Video qo‘ng‘iroq so‘rovi rad etildi"</string>
+    <string name="card_title_callback_number" msgid="7307938207564217293">"Teskari qo‘ng‘iroq raqamingiz\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Favqulodda holatlar uchun teskari qo‘ng‘iroq raqamingiz\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
+    <string name="notification_dialing" msgid="2107666444937350731">"Raqam terilmoqda"</string>
+    <string name="notification_missedCallTitle" msgid="7554385905572364535">"Javobsiz qo‘ng‘iroq"</string>
+    <string name="notification_missedCallsTitle" msgid="1361677948941502522">"Javobsiz qo‘ng‘iroqlar"</string>
+    <string name="notification_missedCallsMsg" msgid="4575787816055205600">"<xliff:g id="NUM_MISSED_CALLS">%s</xliff:g> ta javobsiz qo‘ng‘iroq"</string>
+    <string name="notification_missedCallTicker" msgid="504686252427747209">"<xliff:g id="MISSED_CALL_FROM">%s</xliff:g> qo‘ng‘irog‘i javobsiz qoldirildi"</string>
+    <string name="notification_ongoing_call" msgid="7068688957273482989">"Joriy qo‘ng‘iroq"</string>
+    <string name="notification_ongoing_call_wifi" msgid="8521553590606569379">"Chiquvchi Wi-Fi qo‘ng‘irog‘i"</string>
+    <string name="notification_on_hold" msgid="3480694969511790465">"Kutmoqda"</string>
+    <string name="notification_incoming_call" msgid="2820429205043529642">"Kiruvchi qo‘ng‘iroq"</string>
+    <string name="notification_incoming_call_wifi" msgid="9210706506594546627">"Kiruvchi Wi-Fi qo‘ng‘irog‘i"</string>
+    <string name="notification_incoming_video_call" msgid="7356836933934464805">"Kiruvchi videoqo‘ng‘iroq"</string>
+    <string name="notification_requesting_video_call" msgid="1405576812892369451">"Kiruvchi video so\'rovi"</string>
+    <string name="notification_voicemail_title" msgid="8933468752045550523">"Yangi ovozli xabar"</string>
+    <string name="notification_voicemail_title_count" msgid="4366360747660929916">"Yangi ovozli xabar (<xliff:g id="COUNT">%d</xliff:g>)"</string>
+    <string name="notification_voicemail_text_format" msgid="4447323569453981685">"<xliff:g id="VOICEMAIL_NUMBER">%s</xliff:g>ni terish"</string>
+    <string name="notification_voicemail_no_vm_number" msgid="760963466895609716">"Ovozli pochta raqami noma’lum"</string>
+    <string name="notification_network_selection_title" msgid="4224455487793492772">"Xizmat mavjud emas"</string>
+    <string name="notification_network_selection_text" msgid="2607085729661923269">"Tanlangan tarmoq (<xliff:g id="OPERATOR_NAME">%s</xliff:g>) mavjud emas"</string>
+    <string name="notification_action_answer" msgid="6700362365135365143">"Javob"</string>
+    <string name="notification_action_end_call" msgid="6069460915123531620">"Go‘shakni qo‘yish"</string>
+    <string name="notification_action_answer_video" msgid="7809271910870211729">"Video"</string>
+    <string name="notification_action_answer_voice" msgid="1770796916369437773">"Ovoz"</string>
+    <string name="notification_action_accept" msgid="2898609801209468429">"Roziman"</string>
+    <string name="notification_action_dismiss" msgid="2679969397930852858">"Yopish"</string>
+    <string name="notification_missedCall_call_back" msgid="2684890353590890187">"Telefon"</string>
+    <string name="notification_missedCall_message" msgid="3049928912736917988">"SMS"</string>
+    <string name="incall_error_power_off" msgid="6550191216405193368">"Qo‘ng‘iroq qilish uchun, avval \"Parvoz rejimi\" o‘chirilishi kerak."</string>
+    <string name="incall_error_emergency_only" msgid="4678640422710818317">"Tarmoqda ro‘yxatdan o‘tmagan."</string>
+    <string name="incall_error_out_of_service" msgid="4100065333878929223">"Mobil tarmoq mavjud emas."</string>
+    <string name="incall_error_no_phone_number_supplied" msgid="1150414018684246528">"Qo‘ng‘iroq qilish uchun raqamni to‘g‘ri kiriting."</string>
+    <string name="incall_error_call_failed" msgid="6302746943230078197">"Qo‘ng‘iroq qilib bo‘lmadi."</string>
+    <string name="incall_status_dialed_mmi" msgid="3672498861336189563">"MMI tartibi ishga tushmoqda..."</string>
+    <string name="incall_error_supp_service_unknown" msgid="323435289607131929">"Xizmat qo‘llab-quvvatlanmaydi."</string>
+    <string name="incall_error_supp_service_switch" msgid="5237002176899962862">"Qo‘ng‘iroqlarni almashtirib bo‘lmadi."</string>
+    <string name="incall_error_supp_service_separate" msgid="7224393405134545246">"Qo‘ng‘iroqni ajratib bo‘lmadi."</string>
+    <string name="incall_error_supp_service_transfer" msgid="7235952238189391438">"O‘tkazib bo‘lmadi."</string>
+    <string name="incall_error_supp_service_conference" msgid="7010354362202271726">"Konferens-aloqa o‘rnatib bo‘lmadi."</string>
+    <string name="incall_error_supp_service_reject" msgid="8998568661508655638">"Qo‘ng‘iroqni rad qilib bo‘lmadi."</string>
+    <string name="incall_error_supp_service_hangup" msgid="7434513517153834426">"Qo‘ng‘iroq(lar)ni chiqarib bo‘lmadi."</string>
+    <string name="incall_call_type_label_sip" msgid="4931428719494190371">"SIP qo‘ng‘iroq"</string>
+    <string name="emergency_enable_radio_dialog_title" msgid="4627849966634578257">"Favqulodda qo‘ng‘iroq"</string>
+    <string name="emergency_enable_radio_dialog_message" msgid="207613549344420291">"Radio yoqilmoqda…"</string>
+    <string name="emergency_enable_radio_dialog_retry" msgid="5960061579996526883">"Aloqa yo‘q. Qayta urinilmoqda…"</string>
+    <string name="dial_emergency_error" msgid="1509085166367420355">"Qo‘ng‘iroq qilib bo‘lmadi. <xliff:g id="NON_EMERGENCY_NUMBER">%s</xliff:g> favqulodda raqam emas."</string>
+    <string name="dial_emergency_empty_error" msgid="9130194953830414638">"Qo‘ng‘iroq qilib bo‘lmadi. Favqulodda raqamga tering."</string>
+    <string name="dialerKeyboardHintText" msgid="9192914825413747792">"Terish uchun tugmatagdan foydalaning"</string>
+    <string name="onscreenHoldText_unselected" msgid="7092499303393171276">"Qo‘ng‘iroqni ushlab turish"</string>
+    <string name="onscreenHoldText_selected" msgid="7127901498507384249">"Qo‘ng‘iroqni davom ettirish"</string>
+    <string name="onscreenEndCallText" msgid="9039601192595655846">"Qo‘ng‘iroqni tugatish"</string>
+    <string name="onscreenShowDialpadText" msgid="8561805492659639893">"Terish paneli"</string>
+    <string name="onscreenMuteText" msgid="5011369181754261374">"Ovozni o‘chirish"</string>
+    <string name="onscreenAddCallText" msgid="5140385634712287403">"Qo‘ng‘iroq qo‘shish"</string>
+    <string name="onscreenMergeCallsText" msgid="6640195098064538950">"Qo‘ng‘iroqlarni birlashtirish"</string>
+    <string name="onscreenSwapCallsText" msgid="1602990689244030047">"Almashish"</string>
+    <string name="onscreenManageCallsText" msgid="5473231160123254154">"Qo‘ng‘iroqlarni boshqarish"</string>
+    <string name="onscreenManageConferenceText" msgid="6801708317570467407">"Konf. aloqani boshqarish"</string>
+    <string name="onscreenAudioText" msgid="1710087112800041743">"Audio"</string>
+    <string name="onscreenVideoCallText" msgid="4800924186056115442">"Video qo‘ng‘iroq"</string>
+    <string name="onscreenChangeToVoiceText" msgid="5311407863653867937">"Ovozli qo‘ng‘iroqqa o‘zgartirish"</string>
+    <string name="onscreenSwitchCameraText" msgid="5324543493442787798">"Kamerani almashtirish"</string>
+    <string name="onscreenPauseVideoText" msgid="5663965924921429203">"Videoni vaqtincha to‘xtatish"</string>
+    <string name="onscreenOverflowText" msgid="2702376562345723132">"Ko‘proq"</string>
+    <string name="player_started" msgid="6046262510243983589">"Pleyer ishga tushirildi"</string>
+    <string name="player_stopped" msgid="8856926759436364963">"Pleyer to‘xtatildi"</string>
+    <string name="camera_not_ready" msgid="4955261496193316240">"Kamera tayyor emas"</string>
+    <string name="camera_ready" msgid="1903335385405807324">"Kamera tayyor"</string>
+    <string name="unknown_call_session_event" msgid="2431061946920253582">"Noma’lum qo‘ng‘iroq sessiyasi hodisasi"</string>
+    <string name="voicemail_provider" msgid="5135942703327136909">"Xizmat"</string>
+    <string name="voicemail_settings" msgid="72448049107749316">"Sozlash"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Ko‘rsatilmagan&gt;"</string>
+    <string name="other_settings" msgid="3672912580359716394">"Boshqa qo‘ng‘iroq sozlamalari"</string>
+    <string name="calling_via_template" msgid="4839419581866928142">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> orqali qo‘ng‘iroq"</string>
+    <string name="incoming_via_template" msgid="1696993226115570960">"Kiruvchi qo‘ng‘iroqlar <xliff:g id="PROVIDER_NAME">%s</xliff:g> orqali"</string>
+    <string name="contactPhoto" msgid="4713193418046639466">"kontakt surati"</string>
+    <string name="goPrivate" msgid="865837794424530980">"alohidaga o‘tish"</string>
+    <string name="selectContact" msgid="781975788478987237">"kontaktni tanlash"</string>
+    <string name="respond_via_sms_custom_message" msgid="6158880869935281078">"O‘z javobingizni yozing..."</string>
+    <string name="custom_message_cancel" msgid="7516406059429609296">"Bekor qilish"</string>
+    <string name="custom_message_send" msgid="5795754217085747742">"Jo‘natish"</string>
+    <string name="description_target_answer" msgid="7205604197797472471">"Javob"</string>
+    <string name="description_target_send_sms" msgid="2098326025587950144">"SMS yuborish"</string>
+    <string name="description_target_decline" msgid="4789834364389731957">"Rad qilish"</string>
+    <string name="description_target_answer_video_call" msgid="3495965588512395026">"Video qo\'ng\'iroq sifatida javob berish"</string>
+    <string name="description_target_answer_audio_call" msgid="8396296303320994450">"Audio qo\'ng\'iroq sifatida javob berish"</string>
+    <string name="description_target_accept_upgrade_to_video_request" msgid="2894072808324604062">"Video qo‘ng‘iroq so‘rovini qabul qilish"</string>
+    <string name="description_target_decline_upgrade_to_video_request" msgid="4093888612888538776">"Video qo‘ng‘iroq so‘rovini rad qilish"</string>
+    <string name="description_target_accept_upgrade_to_video_transmit_request" msgid="5311037889642077468">"Video jo‘natmani qabul qilish"</string>
+    <string name="description_target_decline_upgrade_to_video_transmit_request" msgid="3636108065510415975">"Video jo‘natmani rad qilish"</string>
+    <string name="description_target_accept_upgrade_to_video_receive_request" msgid="8668058323593087912">"Kiruvchi video qo‘ng‘iroqni qabul qilish"</string>
+    <string name="description_target_decline_upgrade_to_video_receive_request" msgid="2355776509656298367">"Kiruvchi video qo‘ng‘iroqni rad etish"</string>
+    <string name="description_direction_up" msgid="4441409581444516690">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> uchun tepaga suring."</string>
+    <string name="description_direction_left" msgid="7129873384376533287">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> uchun chapga suring."</string>
+    <string name="description_direction_right" msgid="2122584234531957308">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> uchun o‘ngga suring."</string>
+    <string name="description_direction_down" msgid="4317245625565166742">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> uchun pastga suring."</string>
+    <string name="voicemail_notification_vibrate_when_title" msgid="8361970092063604886">"Tebranish"</string>
+    <string name="voicemail_notification_vibarte_when_dialog_title" msgid="5739583146522136440">"Tebratish"</string>
+    <string name="voicemail_notification_ringtone_title" msgid="2609519527849101590">"Ovoz"</string>
+    <string name="default_notification_description" msgid="78174796906240970">"Standart ovoz (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_title" msgid="6374978286202084684">"Telefon ringtoni"</string>
+    <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Jiringlash vaqtida tebranish"</string>
+    <string name="preference_category_ringtone" msgid="5197960752529332721">"Qo‘ng‘iroq ohangi &amp; tebranish"</string>
+    <string name="manageConferenceLabel" msgid="4691922394301969053">"Konferensiya qo‘ng‘irog‘ini boshqarish"</string>
+    <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Favqulodda qo‘ng‘iroq raqamlari"</string>
+    <plurals name="duration_seconds" formatted="false" msgid="59971978269163609">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> soniya</item>
+      <item quantity="one">1 soniya</item>
+    </plurals>
+    <plurals name="duration_minutes" formatted="false" msgid="1103289948818175408">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> daqiqa</item>
+      <item quantity="one">1 daqiqa</item>
+    </plurals>
+    <plurals name="duration_hours" formatted="false" msgid="7560637459014865969">
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> soat</item>
+      <item quantity="one">1 soat</item>
+    </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Profil rasmi"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Kamera o‘chiq"</string>
+    <string name="child_number" msgid="7437330400723805538">"<xliff:g id="CHILD_NUMBER">%s</xliff:g> orqali"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Qayd yuborildi"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"So‘nggi xabarlar"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Korporativ ma’lumotlar"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mil uzoqda"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km uzoqda"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> – <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Ertaga <xliff:g id="OPEN_TIME">%s</xliff:g> da ochiladi"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Bugun <xliff:g id="OPEN_TIME">%s</xliff:g> da ochiladi"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"<xliff:g id="CLOSE_TIME">%s</xliff:g> da yopiladi"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Bugun <xliff:g id="CLOSE_TIME">%s</xliff:g> da yopiladi"</string>
+    <string name="open_now" msgid="6439301193613349163">"Ochiq"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Yopiq"</string>
+</resources>
diff --git a/InCallUI/res/values-vi/strings.xml b/InCallUI/res/values-vi/strings.xml
index c962381..34a4fc8 100644
--- a/InCallUI/res/values-vi/strings.xml
+++ b/InCallUI/res/values-vi/strings.xml
@@ -36,7 +36,7 @@
     <string name="wild_prompt_str" msgid="5543521676355533577">"Thay thế ký tự tự do bằng"</string>
     <string name="caller_manage_header" msgid="3231519674734638786">"Cuộc gọi hội nghị <xliff:g id="CONF_CALL_TIME">%s</xliff:g>"</string>
     <string name="voicemail_settings_number_label" msgid="8524164258691887790">"Số thư thoại"</string>
-    <string name="card_title_dialing" msgid="5769417478498348054">"Đang quay số"</string>
+    <string name="card_title_dialing" msgid="5769417478498348054">"Đang gọi"</string>
     <string name="card_title_redialing" msgid="8253487008234167266">"Đang quay số lại"</string>
     <string name="card_title_conf_call" msgid="1162980346189744501">"Cuộc gọi hội nghị"</string>
     <string name="card_title_incoming_call" msgid="7364539451234646909">"Cuộc gọi đến"</string>
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Cuộc gọi điện video"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Đang yêu cầu video"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Không kết nối được cuộc gọi điện video"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Cuộc gọi điện video (tạm dừng)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Đã từ chối yêu cầu video"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Số gọi lại của bạn\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Số gọi lại khẩn cấp của bạn\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Đang gọi"</string>
@@ -121,7 +121,7 @@
     <string name="unknown_call_session_event" msgid="2431061946920253582">"Sự kiện phiên cuộc gọi không xác định"</string>
     <string name="voicemail_provider" msgid="5135942703327136909">"Dịch vụ"</string>
     <string name="voicemail_settings" msgid="72448049107749316">"Thiết lập"</string>
-    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Chưa được đặt&gt;"</string>
+    <string name="voicemail_number_not_set" msgid="6724904736891087856">"&lt;Chưa đặt&gt;"</string>
     <string name="other_settings" msgid="3672912580359716394">"Cài đặt cuộc gọi khác"</string>
     <string name="calling_via_template" msgid="4839419581866928142">"Gọi điện qua <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
     <string name="incoming_via_template" msgid="1696993226115570960">"Cuộc gọi đến qua <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Âm thanh mặc định (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Nhạc chuông điện thoại"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Rung khi đổ chuông"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Bàn phím số tự động điền"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Nhạc chuông và rung"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Quản lý cuộc gọi hội nghị"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Số khẩn cấp"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> giờ</item>
       <item quantity="one">1 giờ</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Ảnh hồ sơ"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Tắt máy ảnh"</string>
+    <string name="child_number" msgid="7437330400723805538">"qua <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Đã gửi ghi chú"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Tin nhắn gần đây"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Thông tin doanh nghiệp"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"Cách <xliff:g id="DISTANCE">%.1f</xliff:g> dặm"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"Cách <xliff:g id="DISTANCE">%.1f</xliff:g> km"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Mở cửa lúc <xliff:g id="OPEN_TIME">%s</xliff:g> ngày mai"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Mở cửa lúc <xliff:g id="OPEN_TIME">%s</xliff:g> hôm nay"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Đóng cửa lúc <xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Đã đóng cửa lúc <xliff:g id="CLOSE_TIME">%s</xliff:g> hôm nay"</string>
+    <string name="open_now" msgid="6439301193613349163">"Mở ngay bây giờ"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Hiện đã đóng cửa"</string>
 </resources>
diff --git a/InCallUI/res/values-zh-rCN/strings.xml b/InCallUI/res/values-zh-rCN/strings.xml
index 9f0b5d9..f23f502 100644
--- a/InCallUI/res/values-zh-rCN/strings.xml
+++ b/InCallUI/res/values-zh-rCN/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"视频通话"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"正在发出视频请求"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"无法连接视频通话"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"视频通话（已暂停）"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"视频请求被拒绝"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"您的回拨号码\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"您的紧急回拨号码\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"正在拨号"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"默认提示音 (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"手机铃声"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"响铃时振动"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"拨号键盘自动填充"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"铃声和振动"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"管理电话会议"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"紧急电话号码"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 小时</item>
       <item quantity="one">1 小时</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"个人资料照片"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"关闭摄像头"</string>
+    <string name="child_number" msgid="7437330400723805538">"通过 <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"已发送记事"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"最近的信息"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"商家信息"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> 英里远"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> 公里远"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="LOCALITY">%2$s</xliff:g><xliff:g id="STREET_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>，<xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"将于明天<xliff:g id="OPEN_TIME">%s</xliff:g>开始营业"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"将于今天<xliff:g id="OPEN_TIME">%s</xliff:g>开始营业"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"将于<xliff:g id="CLOSE_TIME">%s</xliff:g>结束营业"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"已于今天<xliff:g id="CLOSE_TIME">%s</xliff:g>结束营业"</string>
+    <string name="open_now" msgid="6439301193613349163">"营业中"</string>
+    <string name="closed_now" msgid="9175774453982778909">"现已打烊"</string>
 </resources>
diff --git a/InCallUI/res/values-zh-rHK/strings.xml b/InCallUI/res/values-zh-rHK/strings.xml
index 90adbe2..8107a16 100644
--- a/InCallUI/res/values-zh-rHK/strings.xml
+++ b/InCallUI/res/values-zh-rHK/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"視像通話"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"提出視像要求"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"無法連接視像通話"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"視像通話 (已暫停)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"視像通話要求被拒"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"您的回撥號碼：\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"您的緊急回撥號碼：\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"撥號中"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"預設音效 (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"手機鈴聲"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"鈴響時震動"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"撥號盤自動完成功能"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"鈴聲與震動"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"管理會議通話"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"緊急電話號碼"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 小時</item>
       <item quantity="one">1 小時</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"個人檔案相片"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"攝影機已關閉"</string>
+    <string name="child_number" msgid="7437330400723805538">"透過 <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"已傳送筆記"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"最新訊息"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"公司資料"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> 英里外"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> 公里外"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g> (<xliff:g id="LATER_TIME">%2$s</xliff:g>)"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"將於明天<xliff:g id="OPEN_TIME">%s</xliff:g> 開放"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"將於今天<xliff:g id="OPEN_TIME">%s</xliff:g> 開放"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"將於<xliff:g id="CLOSE_TIME">%s</xliff:g> 關門"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"已於今天<xliff:g id="CLOSE_TIME">%s</xliff:g> 關門"</string>
+    <string name="open_now" msgid="6439301193613349163">"營業中"</string>
+    <string name="closed_now" msgid="9175774453982778909">"休息"</string>
 </resources>
diff --git a/InCallUI/res/values-zh-rTW/strings.xml b/InCallUI/res/values-zh-rTW/strings.xml
index 0a8ab31..020dd10 100644
--- a/InCallUI/res/values-zh-rTW/strings.xml
+++ b/InCallUI/res/values-zh-rTW/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"視訊通話"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"提出視訊要求"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"無法建立視訊通話連線"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"視訊通話 (已暫停)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"視訊通話請求遭拒"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"您的回撥號碼如下\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"您的緊急回撥號碼如下\n<xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"撥號中"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"預設音效 (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"手機鈴聲"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"鈴響時震動"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"撥號鍵盤自動完成"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"鈴聲與震動"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"管理會議通話"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"緊急電話號碼"</string>
@@ -168,4 +167,21 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 小時</item>
       <item quantity="one">1 小時</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"個人資料相片"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"關閉相機"</string>
+    <string name="child_number" msgid="7437330400723805538">"透過 <xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"備註已送出"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"最近的訊息"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"商家資訊"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> 英里遠"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> 公里遠"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>，<xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>，<xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"將於明日<xliff:g id="OPEN_TIME">%s</xliff:g>開始營業"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"將於本日<xliff:g id="OPEN_TIME">%s</xliff:g>開始營業"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"將於<xliff:g id="CLOSE_TIME">%s</xliff:g>結束營業"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"已於本日<xliff:g id="CLOSE_TIME">%s</xliff:g>結束營業"</string>
+    <string name="open_now" msgid="6439301193613349163">"營業中"</string>
+    <string name="closed_now" msgid="9175774453982778909">"今日已結束營業"</string>
 </resources>
diff --git a/InCallUI/res/values-zu/strings.xml b/InCallUI/res/values-zu/strings.xml
index fe25ff5..6a7b0a3 100644
--- a/InCallUI/res/values-zu/strings.xml
+++ b/InCallUI/res/values-zu/strings.xml
@@ -49,7 +49,7 @@
     <string name="card_title_video_call" msgid="5898636679563320218">"Ikholi yevidiyo"</string>
     <string name="card_title_video_call_requesting" msgid="4587504939739340937">"Icela ividiyo"</string>
     <string name="card_title_video_call_error" msgid="9000555878389539225">"Ayikwazi ukuxhuma ikholi yevidiyo"</string>
-    <string name="card_title_video_call_paused" msgid="3753261320787432731">"Ikholi yevidiyo (Imiswe isikhashana)"</string>
+    <string name="card_title_video_call_rejected" msgid="462358296694719787">"Isicelo sevidiyo sinqatshelwe"</string>
     <string name="card_title_callback_number" msgid="7307938207564217293">"Inombolo yakho okumele ishayelwe futhi ngu-\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="card_title_callback_number_emergency" msgid="8634765419223426754">"Inombolo yakho yesimo esiphuthumayo okumele iphinde ishayelwe ngu-\n <xliff:g id="DARK_NUMBER">%1$s</xliff:g>"</string>
     <string name="notification_dialing" msgid="2107666444937350731">"Iyadayela"</string>
@@ -152,7 +152,6 @@
     <string name="default_notification_description" msgid="78174796906240970">"Umsindo ozenzakalelayo (<xliff:g id="DEFAULT_SOUND_TITLE">%1$s</xliff:g>)"</string>
     <string name="ringtone_title" msgid="6374978286202084684">"Ithoni yokukhala kocingo"</string>
     <string name="vibrate_on_ring_title" msgid="9197564612065258960">"Dlidlizisa uma ikhala"</string>
-    <string name="dial_pad_autocomplete" msgid="7683489952557536398">"Ukuqedelwa ngokuzenzakalela kwephedi yokudayela"</string>
     <string name="preference_category_ringtone" msgid="5197960752529332721">"Ithoni yokukhala nokudlidliza"</string>
     <string name="manageConferenceLabel" msgid="4691922394301969053">"Phatha ucingo lwengqungquthela"</string>
     <string name="emergency_call_dialog_number_for_display" msgid="8373041754188879871">"Inombolo yesimo esiphuthumayo"</string>
@@ -168,4 +167,21 @@
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> amahora</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> amahora</item>
     </plurals>
+    <string name="profile_photo_description" msgid="5609894336203315400">"Isithombe sephrofayela"</string>
+    <string name="camera_off_description" msgid="5689494614359429889">"Ikhamela ivaliwe"</string>
+    <string name="child_number" msgid="7437330400723805538">"nge-<xliff:g id="CHILD_NUMBER">%s</xliff:g>"</string>
+    <string name="note_sent" msgid="3548700178238244595">"Inothi lithunyelwe"</string>
+    <string name="person_contact_context_title" msgid="723266617256740572">"Imilayezo yakamuva"</string>
+    <string name="business_contact_context_title" msgid="5334864183374669765">"Ulwazi lwebhizinisi"</string>
+    <string name="distance_imperial_away" msgid="437508440176409037">"<xliff:g id="DISTANCE">%.1f</xliff:g> mi kude"</string>
+    <string name="distance_metric_away" msgid="166931929505893599">"<xliff:g id="DISTANCE">%.1f</xliff:g> km kude"</string>
+    <string name="display_address" msgid="7307400970699471708">"<xliff:g id="STREET_ADDRESS">%1$s</xliff:g>, <xliff:g id="LOCALITY">%2$s</xliff:g>"</string>
+    <string name="open_time_span" msgid="6709726401179550381">"<xliff:g id="OPEN_TIME">%1$s</xliff:g> - <xliff:g id="CLOSE_TIME">%2$s</xliff:g>"</string>
+    <string name="opening_hours" msgid="8524931350345922176">"<xliff:g id="EARLIER_TIMES">%1$s</xliff:g>, <xliff:g id="LATER_TIME">%2$s</xliff:g>"</string>
+    <string name="opens_tomorrow_at" msgid="9168271983241323946">"Kuvulwa kusasa ngo-<xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="opens_today_at" msgid="9011139983701379907">"Kuvulwa namuhla ngo-<xliff:g id="OPEN_TIME">%s</xliff:g>"</string>
+    <string name="closes_today_at" msgid="2623384032475495193">"Kuvalwa ngo-<xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="closed_today_at" msgid="324294933330883529">"Kuvalwe namuhla ngo-<xliff:g id="CLOSE_TIME">%s</xliff:g>"</string>
+    <string name="open_now" msgid="6439301193613349163">"Kuvuliwe manje"</string>
+    <string name="closed_now" msgid="9175774453982778909">"Kuvaliwe manje"</string>
 </resources>
diff --git a/InCallUI/res/values/array.xml b/InCallUI/res/values/array.xml
index 7877ec8..8744d3e 100644
--- a/InCallUI/res/values/array.xml
+++ b/InCallUI/res/values/array.xml
@@ -76,10 +76,10 @@
         <item>@drawable/ic_lockscreen_answer_video</item>
     </array>
     <array name="incoming_call_widget_video_without_sms_target_descriptions">
-        <item>@string/description_target_answer_video_call</item>
+        <item>@string/description_target_answer_audio_call</item>
         <item>@null</item>
         <item>@string/description_target_decline</item>
-        <item>@string/description_target_answer_audio_call</item>
+        <item>@string/description_target_answer_video_call</item>
     </array>
     <array name="incoming_call_widget_video_without_sms_direction_descriptions">
         <item>@string/description_direction_right</item>
@@ -89,21 +89,21 @@
     </array>
 
     <!-- For video calls, if respond via SMS is enabled:
-         - Answer as video call (drag right)
+         - Answer as audio call (drag right)
          - Respond via SMS (drag up)
          - Decline (drag left)
-         - Answer as audio call (drag down) -->
+         - Answer as video call (drag down) -->
     <array name="incoming_call_widget_video_with_sms_targets">
-        <item>@drawable/ic_lockscreen_answer_video</item>
+        <item>@drawable/ic_lockscreen_answer</item>
         <item>@drawable/ic_lockscreen_text</item>
         <item>@drawable/ic_lockscreen_decline</item>
-        <item>@drawable/ic_lockscreen_answer</item>
+        <item>@drawable/ic_lockscreen_answer_video</item>
     </array>
     <array name="incoming_call_widget_video_with_sms_target_descriptions">
-        <item>@string/description_target_answer_video_call</item>
+        <item>@string/description_target_answer_audio_call</item>
         <item>@string/description_target_send_sms</item>
         <item>@string/description_target_decline</item>
-        <item>@string/description_target_answer_audio_call</item>
+        <item>@string/description_target_answer_video_call</item>
     </array>
     <array name="incoming_call_widget_video_with_sms_direction_descriptions">
         <item>@string/description_direction_right</item>
diff --git a/InCallUI/res/values/colors.xml b/InCallUI/res/values/colors.xml
index cac382d..60a017c 100644
--- a/InCallUI/res/values/colors.xml
+++ b/InCallUI/res/values/colors.xml
@@ -32,6 +32,8 @@
     <color name="incall_action_bar_background_color">@color/incall_background_color</color>
     <color name="incall_action_bar_text_color">@color/incall_call_banner_text_color</color>
 
+    <color name="incall_photo_background_color">#545454</color>
+
     <!-- Put on top of each photo, implying 80% darker than usual. -->
     <color name="on_hold_dim_effect">#cc000000</color>
 
@@ -71,11 +73,14 @@
     <color name="glowpad_text_widget_ring_color">#ffffff</color>
     <color name="glowpad_widget_active_color">#ffffff</color>
     <color name="glowpad_text_widget_normal_tint">#cccccc</color>
-    <color name="glowpad_call_widget_normal_tint">@color/dialtacts_theme_color</color>
+    <color name="glowpad_call_widget_normal_tint">#00c853</color>
     <color name="glowpad_end_call_widget_normal_tint">#ff1744</color>
     <color name="glowpad_incoming_widget_tint">#a3a3a3</color>
     <color name="glowpad_incoming_widget_background_tint">#ffffff</color>
 
+    <!-- 70% opacity, white. -->
+    <color name="accessible_answer_hint_text_color">#B2FFFFFF</color>
+
     <!-- 20% opacity, theme color. -->
     <color name="incall_dialpad_touch_tint">#330288d1</color>
 
@@ -108,4 +113,10 @@
 
     <!-- Ripple color used over light backgrounds. -->
     <color name="ripple_light">#40000000</color>
+
+    <color name="contact_context_title_text_color">@color/incall_call_banner_subtext_color</color>
+    <color name="person_contact_context_message_text_color">@color/dialer_theme_color</color>
+    <color name="person_contact_context_message_background_color">@color/incall_call_banner_subtext_color</color>
+    <color name="person_contact_context_detail_text_color">@color/incall_call_banner_subtext_color</color>
+    <color name="business_contact_context_text_color">@color/incall_call_banner_subtext_color</color>
 </resources>
diff --git a/InCallUI/res/values/dimens.xml b/InCallUI/res/values/dimens.xml
index 6485377..439bb41 100644
--- a/InCallUI/res/values/dimens.xml
+++ b/InCallUI/res/values/dimens.xml
@@ -21,9 +21,6 @@
 
     <!-- Dimensions for CallCard elements (the normal in-call UI) -->
 
-    <!-- Height of the "call banner" overlay on top of the upper part of the call info area.
-         Note: This is the default size for small (<600dp height) devices: larger screen sizes apply
-         the values in values-h600dp/dimens.xml. -->
     <dimen name="call_banner_height">90dp</dimen>
     <dimen name="incall_action_bar_elevation">3dp</dimen>
 
@@ -122,4 +119,27 @@
 
     <dimen name="conference_call_manager_padding_top">64dp</dimen>
     <dimen name="conference_call_manager_button_dimension">46dp</dimen>
+
+    <dimen name="contact_context_title_text_size">14sp</dimen>
+    <dimen name="contact_context_title_image_size">19dp</dimen>
+    <dimen name="contact_context_title_image_side_padding">23dp</dimen>
+    <dimen name="contact_context_title_margin_bottom">13dp</dimen>
+    <dimen name="contact_context_list_item_padding">13dp</dimen>
+
+    <dimen name="person_contact_context_horizontal_padding">30dp</dimen>
+    <dimen name="person_contact_context_message_text_size">16sp</dimen>
+    <dimen name="person_contact_context_message_vertical_padding">7dp</dimen>
+    <dimen name="person_contact_context_message_horizontal_padding">12dp</dimen>
+    <dimen name="person_contact_context_message_background_main_radius">15dp</dimen>
+    <dimen name="person_contact_context_message_background_accent_radius">2dp</dimen>
+    <dimen name="person_contact_context_detail_padding_top">7dp</dimen>
+    <dimen name="person_contact_context_detail_text_size">14sp</dimen>
+
+    <dimen name="business_contact_context_end_padding">10dp</dimen>
+    <dimen name="business_contact_context_image_size">25dp</dimen>
+    <dimen name="business_contact_context_image_padding">20dp</dimen>
+    <dimen name="business_contact_context_heading_font_size">16sp</dimen>
+    <dimen name="business_contact_context_detail_font_size">12sp</dimen>
+
+    <dimen name="contact_context_small_photo_size">40dp</dimen>
 </resources>
diff --git a/InCallUI/res/values/strings.xml b/InCallUI/res/values/strings.xml
index e59867c..b30ca65 100644
--- a/InCallUI/res/values/strings.xml
+++ b/InCallUI/res/values/strings.xml
@@ -464,4 +464,39 @@
     <!-- Used to inform the user that the note associated with an outgoing call has been sent.
          [CHAR LIMIT=32] -->
     <string name="note_sent">Note sent</string>
+
+    <!-- Title for the call context with a person-type contact. [CHAR LIMIT=40] -->
+    <string name="person_contact_context_title">Recent messages</string>
+
+    <!-- Title for the call context with a business-type contact. [CHAR LIMIT=40] -->
+    <string name="business_contact_context_title">Business info</string>
+
+    <!-- Distance strings for business caller ID context. -->
+
+    <!-- Used to inform the user how far away a location is in miles. [CHAR LIMIT=NONE] -->
+    <string name="distance_imperial_away"><xliff:g id="distance">%.1f</xliff:g> mi away</string>
+    <!-- Used to inform the user how far away a location is in kilometers. [CHAR LIMIT=NONE] -->
+    <string name="distance_metric_away"><xliff:g id="distance">%.1f</xliff:g> km away</string>
+    <!-- A shortened way to display a business address. Formatted [street address], [city/locality]. -->
+    <string name="display_address"><xliff:g id="street_address">%1$s</xliff:g>, <xliff:g id="locality">%2$s</xliff:g></string>
+    <!-- Used to indicate hours of operation for a location as a time span. e.g. "11 am - 9 pm" [CHAR LIMIT=NONE] -->
+    <string name="open_time_span"><xliff:g id="open_time">%1$s</xliff:g> - <xliff:g id="close_time">%2$s</xliff:g></string>
+    <!-- Used to indicate a series of opening hours for a location.
+         This first argument may be one or more time spans. e.g. "11 am - 9 pm, 9 pm - 11 pm"
+         The second argument is an additional time span. e.g. "11 pm - 1 am"
+         The string is used to build a list of opening hours.
+         [CHAR LIMIT=NONE] -->
+    <string name="opening_hours"><xliff:g id="earlier_times">%1$s</xliff:g>, <xliff:g id="later_time">%2$s</xliff:g></string>
+    <!-- Used to express when a location will open the next day. [CHAR LIMIT=NONE] -->
+    <string name="opens_tomorrow_at">Opens tomorrow at <xliff:g id="open_time">%s</xliff:g></string>
+    <!-- Used to express the next time at which a location will be open today. [CHAR LIMIT=NONE] -->
+    <string name="opens_today_at">Opens today at <xliff:g id="open_time">%s</xliff:g></string>
+    <!-- Used to express the next time at which a location will close today. [CHAR LIMIT=NONE] -->
+    <string name="closes_today_at">Closes at <xliff:g id="close_time">%s</xliff:g></string>
+    <!-- Used to express the next time at which a location closed today if it is already closed. [CHAR LIMIT=NONE] -->
+    <string name="closed_today_at">Closed today at <xliff:g id="close_time">%s</xliff:g></string>
+    <!-- Displayed when a place is open. -->
+    <string name="open_now">Open now</string>
+    <!-- Displayed when a place is closed. -->
+    <string name="closed_now">Closed now</string>
 </resources>
diff --git a/InCallUI/src/com/android/incallui/AccessibleAnswerFragment.java b/InCallUI/src/com/android/incallui/AccessibleAnswerFragment.java
new file mode 100644
index 0000000..89c78ec
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/AccessibleAnswerFragment.java
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.os.Bundle;
+import android.telecom.VideoProfile;
+import android.view.GestureDetector;
+import android.view.GestureDetector.SimpleOnGestureListener;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.dialer.R;
+
+/**
+ * AnswerFragment to use when touch exploration is enabled in accessibility.
+ */
+public class AccessibleAnswerFragment extends AnswerFragment {
+
+    private static final String TAG = AccessibleAnswerFragment.class.getSimpleName();
+    private static final int SWIPE_THRESHOLD = 100;
+
+    private View mAnswer;
+    private View mDecline;
+    private View mText;
+
+    private TouchListener mTouchListener;
+    private GestureDetector mGestureDetector;
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        ViewGroup group = (ViewGroup) inflater.inflate(R.layout.accessible_answer_fragment,
+                container, false);
+
+        mTouchListener = new TouchListener();
+        mGestureDetector = new GestureDetector(getContext(), new SimpleOnGestureListener() {
+            @Override
+            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
+                    float velocityY) {
+                return AccessibleAnswerFragment.this.onFling(e1, e2, velocityX, velocityX);
+            }
+        });
+
+        mAnswer = group.findViewById(R.id.accessible_answer_fragment_answer);
+        mAnswer.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Log.d(TAG, "Answer Button Clicked");
+                onAnswer(VideoProfile.STATE_AUDIO_ONLY, getContext());
+            }
+        });
+        mDecline = group.findViewById(R.id.accessible_answer_fragment_decline);
+        mDecline.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Log.d(TAG, "Decline Button Clicked");
+                onDecline(getContext());
+            }
+        });
+
+        mText = group.findViewById(R.id.accessible_answer_fragment_text);
+        mText.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Log.d(TAG, "Text Button Clicked");
+                onText();
+            }
+        });
+        return group;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        // Intercept all touch events for full screen swiping gesture.
+        InCallActivity activity = (InCallActivity) getActivity();
+        activity.setDispatchTouchEventListener(mTouchListener);
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        InCallActivity activity = (InCallActivity) getActivity();
+        activity.setDispatchTouchEventListener(null);
+    }
+
+    private class TouchListener implements View.OnTouchListener {
+        @Override
+        public boolean onTouch(View v, MotionEvent event) {
+            return mGestureDetector.onTouchEvent(event);
+        }
+    }
+
+    private boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
+            float velocityY) {
+        if (hasPendingDialogs()) {
+            return false;
+        }
+
+        float diffY = e2.getY() - e1.getY();
+        float diffX = e2.getX() - e1.getX();
+        if (Math.abs(diffX) > Math.abs(diffY)) {
+            if (Math.abs(diffX) > SWIPE_THRESHOLD) {
+                if (diffX > 0) {
+                    onSwipeRight();
+                } else {
+                    onSwipeLeft();
+                }
+            }
+            return true;
+        } else if (Math.abs(diffY) > SWIPE_THRESHOLD) {
+            if (diffY > 0) {
+                onSwipeDown();
+            } else {
+                onSwipeUp();
+            }
+            return true;
+        }
+
+        return false;
+    }
+
+    private void onSwipeUp() {
+        Log.d(TAG, "onSwipeUp");
+        onText();
+    }
+
+    private void onSwipeDown() {
+        Log.d(TAG, "onSwipeDown");
+    }
+
+    private void onSwipeLeft() {
+        Log.d(TAG, "onSwipeLeft");
+        onDecline(getContext());
+    }
+
+    private void onSwipeRight() {
+        Log.d(TAG, "onSwipeRight");
+        onAnswer(VideoProfile.STATE_AUDIO_ONLY, getContext());
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/AnswerFragment.java b/InCallUI/src/com/android/incallui/AnswerFragment.java
index 7c67719..44ddfcd 100644
--- a/InCallUI/src/com/android/incallui/AnswerFragment.java
+++ b/InCallUI/src/com/android/incallui/AnswerFragment.java
@@ -21,7 +21,6 @@
 import android.content.Context;
 import android.content.DialogInterface;
 import android.os.Bundle;
-import android.telecom.VideoProfile;
 import android.text.Editable;
 import android.text.TextWatcher;
 import android.view.LayoutInflater;
@@ -34,17 +33,17 @@
 import android.widget.EditText;
 import android.widget.ListView;
 
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
+import com.android.dialer.R;
 
 import java.util.ArrayList;
 import java.util.List;
 
+
 /**
- *
+ * Provides only common interface and functions. Should be derived to implement the actual UI.
  */
-public class AnswerFragment extends BaseFragment<AnswerPresenter, AnswerPresenter.AnswerUi>
-        implements GlowPadWrapper.AnswerListener, AnswerPresenter.AnswerUi {
+public abstract class AnswerFragment extends BaseFragment<AnswerPresenter, AnswerPresenter.AnswerUi>
+        implements AnswerPresenter.AnswerUi {
 
     public static final int TARGET_SET_FOR_AUDIO_WITHOUT_SMS = 0;
     public static final int TARGET_SET_FOR_AUDIO_WITH_SMS = 1;
@@ -53,6 +52,13 @@
     public static final int TARGET_SET_FOR_VIDEO_ACCEPT_REJECT_REQUEST = 4;
 
     /**
+     * This fragment implement no UI at all. Derived class should do it.
+     */
+    @Override
+    public abstract View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState);
+
+    /**
      * The popup showing the list of canned responses.
      *
      * This is an AlertDialog containing a ListView showing the possible choices.  This may be null
@@ -70,11 +76,6 @@
 
     private final List<String> mSmsResponses = new ArrayList<>();
 
-    private GlowPadWrapper mGlowpad;
-
-    public AnswerFragment() {
-    }
-
     @Override
     public AnswerPresenter createPresenter() {
         return InCallPresenter.getInstance().getAnswerPresenter();
@@ -86,113 +87,6 @@
     }
 
     @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        mGlowpad = (GlowPadWrapper) inflater.inflate(R.layout.answer_fragment,
-                container, false);
-
-        Log.d(this, "Creating view for answer fragment ", this);
-        Log.d(this, "Created from activity", getActivity());
-        mGlowpad.setAnswerListener(this);
-
-        return mGlowpad;
-    }
-
-    @Override
-    public void onDestroyView() {
-        Log.d(this, "onDestroyView");
-        if (mGlowpad != null) {
-            mGlowpad.stopPing();
-            mGlowpad = null;
-        }
-        super.onDestroyView();
-    }
-
-    @Override
-    public void onShowAnswerUi(boolean shown) {
-        Log.d(this, "Show answer UI: " + shown);
-        if (shown) {
-            mGlowpad.startPing();
-        } else {
-            mGlowpad.stopPing();
-        }
-    }
-
-    /**
-     * Sets targets on the glowpad according to target set identified by the parameter.
-     * @param targetSet Integer identifying the set of targets to use.
-     */
-    public void showTargets(int targetSet) {
-        showTargets(targetSet, VideoProfile.STATE_BIDIRECTIONAL);
-    }
-
-    /**
-     * Sets targets on the glowpad according to target set identified by the parameter.
-     * @param targetSet Integer identifying the set of targets to use.
-     */
-    @Override
-    public void showTargets(int targetSet, int videoState) {
-        final int targetResourceId;
-        final int targetDescriptionsResourceId;
-        final int directionDescriptionsResourceId;
-        final int handleDrawableResourceId;
-        mGlowpad.setVideoState(videoState);
-
-        switch (targetSet) {
-            case TARGET_SET_FOR_AUDIO_WITH_SMS:
-                targetResourceId = R.array.incoming_call_widget_audio_with_sms_targets;
-                targetDescriptionsResourceId =
-                        R.array.incoming_call_widget_audio_with_sms_target_descriptions;
-                directionDescriptionsResourceId =
-                        R.array.incoming_call_widget_audio_with_sms_direction_descriptions;
-                handleDrawableResourceId = R.drawable.ic_incall_audio_handle;
-                break;
-            case TARGET_SET_FOR_VIDEO_WITHOUT_SMS:
-                targetResourceId = R.array.incoming_call_widget_video_without_sms_targets;
-                targetDescriptionsResourceId =
-                        R.array.incoming_call_widget_video_without_sms_target_descriptions;
-                directionDescriptionsResourceId =
-                        R.array.incoming_call_widget_video_without_sms_direction_descriptions;
-                handleDrawableResourceId = R.drawable.ic_incall_video_handle;
-                break;
-            case TARGET_SET_FOR_VIDEO_WITH_SMS:
-                targetResourceId = R.array.incoming_call_widget_video_with_sms_targets;
-                targetDescriptionsResourceId =
-                        R.array.incoming_call_widget_video_with_sms_target_descriptions;
-                directionDescriptionsResourceId =
-                        R.array.incoming_call_widget_video_with_sms_direction_descriptions;
-                handleDrawableResourceId = R.drawable.ic_incall_video_handle;
-                break;
-            case TARGET_SET_FOR_VIDEO_ACCEPT_REJECT_REQUEST:
-                targetResourceId =
-                    R.array.incoming_call_widget_video_request_targets;
-                targetDescriptionsResourceId =
-                        R.array.incoming_call_widget_video_request_target_descriptions;
-                directionDescriptionsResourceId = R.array
-                        .incoming_call_widget_video_request_target_direction_descriptions;
-                handleDrawableResourceId = R.drawable.ic_incall_video_handle;
-                break;
-            case TARGET_SET_FOR_AUDIO_WITHOUT_SMS:
-            default:
-                targetResourceId = R.array.incoming_call_widget_audio_without_sms_targets;
-                targetDescriptionsResourceId =
-                        R.array.incoming_call_widget_audio_without_sms_target_descriptions;
-                directionDescriptionsResourceId =
-                        R.array.incoming_call_widget_audio_without_sms_direction_descriptions;
-                handleDrawableResourceId = R.drawable.ic_incall_audio_handle;
-                break;
-        }
-
-        if (targetResourceId != mGlowpad.getTargetResourceId()) {
-            mGlowpad.setTargetResources(targetResourceId);
-            mGlowpad.setTargetDescriptionsResourceId(targetDescriptionsResourceId);
-            mGlowpad.setDirectionDescriptionsResourceId(directionDescriptionsResourceId);
-            mGlowpad.setHandleDrawable(handleDrawableResourceId);
-            mGlowpad.reset(false);
-        }
-    }
-
-    @Override
     public void showMessageDialog() {
         final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
 
@@ -207,9 +101,7 @@
                 new DialogInterface.OnCancelListener() {
                     @Override
                     public void onCancel(DialogInterface dialogInterface) {
-                        if (mGlowpad != null) {
-                            mGlowpad.startPing();
-                        }
+                        onMessageDialogCancel();
                         dismissCannedResponsePopup();
                         getPresenter().onDismissDialog();
                     }
@@ -239,7 +131,7 @@
      * This is safe to call even if the popup is already dismissed, and even if you never called
      * showRespondViaSmsPopup() in the first place.
      */
-    private void dismissCannedResponsePopup() {
+    protected void dismissCannedResponsePopup() {
         if (mCannedResponsePopup != null) {
             mCannedResponsePopup.dismiss();  // safe even if already dismissed
             mCannedResponsePopup = null;
@@ -250,10 +142,10 @@
      * Dismiss the custom compose message popup.
      */
     private void dismissCustomMessagePopup() {
-       if (mCustomMessagePopup != null) {
-           mCustomMessagePopup.dismiss();
-           mCustomMessagePopup = null;
-       }
+        if (mCustomMessagePopup != null) {
+            mCustomMessagePopup.dismiss();
+            mCustomMessagePopup = null;
+        }
     }
 
     public void dismissPendingDialogs() {
@@ -280,23 +172,23 @@
         builder.setCancelable(true).setView(et)
                 .setPositiveButton(R.string.custom_message_send,
                         new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface dialog, int which) {
-                        // The order is arranged in a way that the popup will be destroyed when the
-                        // InCallActivity is about to finish.
-                        final String textMessage = et.getText().toString().trim();
-                        dismissCustomMessagePopup();
-                        getPresenter().rejectCallWithMessage(textMessage);
-                    }
-                })
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                // The order is arranged in a way that the popup will be destroyed
+                                // when the InCallActivity is about to finish.
+                                final String textMessage = et.getText().toString().trim();
+                                dismissCustomMessagePopup();
+                                getPresenter().rejectCallWithMessage(textMessage);
+                            }
+                        })
                 .setNegativeButton(R.string.custom_message_cancel,
                         new DialogInterface.OnClickListener() {
-                    @Override
-                    public void onClick(DialogInterface dialog, int which) {
-                        dismissCustomMessagePopup();
-                        getPresenter().onDismissDialog();
-                    }
-                })
+                            @Override
+                            public void onClick(DialogInterface dialog, int which) {
+                                dismissCustomMessagePopup();
+                                getPresenter().onDismissDialog();
+                            }
+                        })
                 .setOnCancelListener(new DialogInterface.OnCancelListener() {
                     @Override
                     public void onCancel(DialogInterface dialogInterface) {
@@ -352,23 +244,19 @@
         return getActivity();
     }
 
-    @Override
     public void onAnswer(int videoState, Context context) {
         Log.d(this, "onAnswer videoState=" + videoState + " context=" + context);
         getPresenter().onAnswer(videoState, context);
     }
 
-    @Override
     public void onDecline(Context context) {
         getPresenter().onDecline(context);
     }
 
-    @Override
     public void onDeclineUpgradeRequest(Context context) {
         InCallPresenter.getInstance().declineUpgradeRequest(context);
     }
 
-    @Override
     public void onText() {
         getPresenter().onText();
     }
@@ -400,4 +288,20 @@
             }
         }
     }
+
+    public void onShowAnswerUi(boolean shown) {
+        // Do Nothing
+    }
+
+    public void showTargets(int targetSet) {
+        // Do Nothing
+    }
+
+    public void showTargets(int targetSet, int videoState) {
+        // Do Nothing
+    }
+
+    protected void onMessageDialogCancel() {
+        // Do nothing.
+    }
 }
diff --git a/InCallUI/src/com/android/incallui/AnswerPresenter.java b/InCallUI/src/com/android/incallui/AnswerPresenter.java
index 97f60c0..1307a3e 100644
--- a/InCallUI/src/com/android/incallui/AnswerPresenter.java
+++ b/InCallUI/src/com/android/incallui/AnswerPresenter.java
@@ -48,6 +48,7 @@
     @Override
     public void onUiShowing(boolean showing) {
         if (showing) {
+            CallList.getInstance().addListener(this);
             final CallList calls = CallList.getInstance();
             Call call;
             call = calls.getIncomingCall();
@@ -60,6 +61,7 @@
                 processVideoUpgradeRequestCall(call);
             }
         } else {
+            CallList.getInstance().removeListener(this);
             // This is necessary because the activity can be destroyed while an incoming call exists.
             // This happens when back button is pressed while incoming call is still being shown.
             if (mCallId != null) {
@@ -179,7 +181,7 @@
         CallList.getInstance().addCallUpdateListener(mCallId, this);
 
         final int currentVideoState = call.getVideoState();
-        final int modifyToVideoState = call.getModifyToVideoState();
+        final int modifyToVideoState = call.getRequestedVideoState();
 
         if (currentVideoState == modifyToVideoState) {
             Log.w(this, "processVideoUpgradeRequestCall: Video states are same. Return.");
@@ -285,7 +287,7 @@
 
         // Only present the user with the option to answer as a video call if the incoming call is
         // a bi-directional video call.
-        if (VideoProfile.isBidirectional((call.getVideoState()))) {
+        if (VideoUtils.isBidirectionalVideoCall(call)) {
             if (withSms) {
                 getUi().showTargets(AnswerFragment.TARGET_SET_FOR_VIDEO_WITH_SMS);
                 getUi().configureMessageDialog(textMsgs);
diff --git a/InCallUI/src/com/android/incallui/AudioModeProvider.java b/InCallUI/src/com/android/incallui/AudioModeProvider.java
index e7ffecc..961fb11 100644
--- a/InCallUI/src/com/android/incallui/AudioModeProvider.java
+++ b/InCallUI/src/com/android/incallui/AudioModeProvider.java
@@ -16,10 +16,10 @@
 
 package com.android.incallui;
 
-import android.telecom.CallAudioState;
-
 import com.google.common.collect.Lists;
 
+import com.android.dialer.compat.CallAudioStateCompat;
+
 import java.util.List;
 
 /**
@@ -30,19 +30,20 @@
     static final int AUDIO_MODE_INVALID = 0;
 
     private static AudioModeProvider sAudioModeProvider = new AudioModeProvider();
-    private int mAudioMode = CallAudioState.ROUTE_EARPIECE;
+    private int mAudioMode = CallAudioStateCompat.ROUTE_EARPIECE;
     private boolean mMuted = false;
-    private int mSupportedModes = CallAudioState.ROUTE_EARPIECE | CallAudioState.ROUTE_BLUETOOTH |
-        CallAudioState.ROUTE_WIRED_HEADSET | CallAudioState.ROUTE_SPEAKER;
+    private int mSupportedModes = CallAudioStateCompat.ROUTE_EARPIECE
+            | CallAudioStateCompat.ROUTE_BLUETOOTH | CallAudioStateCompat.ROUTE_WIRED_HEADSET
+            | CallAudioStateCompat.ROUTE_SPEAKER;
     private final List<AudioModeListener> mListeners = Lists.newArrayList();
 
     public static AudioModeProvider getInstance() {
         return sAudioModeProvider;
     }
 
-    public void onAudioStateChanged(CallAudioState audioState) {
-        onAudioModeChange(audioState.getRoute(), audioState.isMuted());
-        onSupportedAudioModeChange(audioState.getSupportedRouteMask());
+    public void onAudioStateChanged(boolean isMuted, int route, int supportedRouteMask) {
+        onAudioModeChange(route, isMuted);
+        onSupportedAudioModeChange(supportedRouteMask);
     }
 
     public void onAudioModeChange(int newMode, boolean muted) {
diff --git a/InCallUI/src/com/android/incallui/Call.java b/InCallUI/src/com/android/incallui/Call.java
index b768cdd..aec806f 100644
--- a/InCallUI/src/com/android/incallui/Call.java
+++ b/InCallUI/src/com/android/incallui/Call.java
@@ -16,12 +16,10 @@
 
 package com.android.incallui;
 
-import com.android.contacts.common.CallUtil;
-import com.android.contacts.common.testing.NeededForTesting;
-
 import android.content.Context;
 import android.hardware.camera2.CameraCharacteristics;
 import android.net.Uri;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.Trace;
 import android.telecom.Connection;
@@ -32,9 +30,17 @@
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
 import android.telecom.VideoProfile;
-import android.telephony.PhoneNumberUtils;
 import android.text.TextUtils;
 
+import com.android.contacts.common.CallUtil;
+import com.android.contacts.common.compat.SdkVersionOverride;
+import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
+import com.android.contacts.common.testing.NeededForTesting;
+import com.android.dialer.util.IntentUtil;
+import com.android.incallui.compat.telecom.DetailsCompat;
+import com.android.incallui.compat.telecom.VideoProfileCompat;
+import com.android.incallui.util.TelecomCallUtil;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
@@ -60,7 +66,8 @@
         public static final int DISCONNECTED = 10;  /* State after a call disconnects */
         public static final int CONFERENCED = 11;   /* Call part of a conference call */
         public static final int SELECT_PHONE_ACCOUNT = 12; /* Waiting for account selection */
-        public static final int CONNECTING = 13;    /* Waiting for Telecomm broadcast to finish */
+        public static final int CONNECTING = 13;    /* Waiting for Telecom broadcast to finish */
+        public static final int BLOCKED = 14;       /* The number was found on the block list */
 
 
         public static boolean isConnectingOrConnected(int state) {
@@ -113,6 +120,8 @@
                     return "SELECT_PHONE_ACCOUNT";
                 case CONNECTING:
                     return "CONNECTING";
+                case BLOCKED:
+                    return "BLOCKED";
                 default:
                     return "UNKNOWN";
             }
@@ -168,84 +177,273 @@
             return mCameraDirection;
         }
 
+        @Override
         public String toString() {
             return "(CameraDir:" + getCameraDir() + ")";
         }
     }
 
+    /**
+     * Tracks any state variables that is useful for logging. There is some amount of overlap with
+     * existing call member variables, but this duplication helps to ensure that none of these
+     * logging variables will interface with/and affect call logic.
+     */
+    public static class LogState {
+
+        // Contact lookup type constants
+        // Unknown lookup result (lookup not completed yet?)
+        public static final int LOOKUP_UNKNOWN = 0;
+        public static final int LOOKUP_NOT_FOUND = 1;
+        public static final int LOOKUP_LOCAL_CONTACT = 2;
+        public static final int LOOKUP_LOCAL_CACHE = 3;
+        public static final int LOOKUP_REMOTE_CONTACT = 4;
+        public static final int LOOKUP_EMERGENCY = 5;
+        public static final int LOOKUP_VOICEMAIL = 6;
+
+        // Call initiation type constants
+        public static final int INITIATION_UNKNOWN = 0;
+        public static final int INITIATION_INCOMING = 1;
+        public static final int INITIATION_DIALPAD = 2;
+        public static final int INITIATION_SPEED_DIAL = 3;
+        public static final int INITIATION_REMOTE_DIRECTORY = 4;
+        public static final int INITIATION_SMART_DIAL = 5;
+        public static final int INITIATION_REGULAR_SEARCH = 6;
+        public static final int INITIATION_CALL_LOG = 7;
+        public static final int INITIATION_CALL_LOG_FILTER = 8;
+        public static final int INITIATION_VOICEMAIL_LOG = 9;
+        public static final int INITIATION_CALL_DETAILS = 10;
+        public static final int INITIATION_QUICK_CONTACTS = 11;
+        public static final int INITIATION_EXTERNAL = 12;
+
+        public DisconnectCause disconnectCause;
+        public boolean isIncoming = false;
+        public int contactLookupResult = LOOKUP_UNKNOWN;
+        public int callInitiationMethod = INITIATION_EXTERNAL;
+        // If this was a conference call, the total number of calls involved in the conference.
+        public int conferencedCalls = 0;
+        public long duration = 0;
+        public boolean isLogged = false;
+
+        @Override
+        public String toString() {
+            return String.format(Locale.US, "["
+                        + "%s, " // DisconnectCause toString already describes the object type
+                        + "isIncoming: %s, "
+                        + "contactLookup: %s, "
+                        + "callInitiation: %s, "
+                        + "duration: %s"
+                        + "]",
+                    disconnectCause,
+                    isIncoming,
+                    lookupToString(contactLookupResult),
+                    initiationToString(callInitiationMethod),
+                    duration);
+        }
+
+        private static String lookupToString(int lookupType) {
+            switch (lookupType) {
+                case LOOKUP_LOCAL_CONTACT:
+                    return "Local";
+                case LOOKUP_LOCAL_CACHE:
+                    return "Cache";
+                case LOOKUP_REMOTE_CONTACT:
+                    return "Remote";
+                case LOOKUP_EMERGENCY:
+                    return "Emergency";
+                case LOOKUP_VOICEMAIL:
+                    return "Voicemail";
+                default:
+                    return "Not found";
+            }
+        }
+
+        private static String initiationToString(int initiationType) {
+            switch (initiationType) {
+                case INITIATION_INCOMING:
+                    return "Incoming";
+                case INITIATION_DIALPAD:
+                    return "Dialpad";
+                case INITIATION_SPEED_DIAL:
+                    return "Speed Dial";
+                case INITIATION_REMOTE_DIRECTORY:
+                    return "Remote Directory";
+                case INITIATION_SMART_DIAL:
+                    return "Smart Dial";
+                case INITIATION_REGULAR_SEARCH:
+                    return "Regular Search";
+                case INITIATION_CALL_LOG:
+                    return "Call Log";
+                case INITIATION_CALL_LOG_FILTER:
+                    return "Call Log Filter";
+                case INITIATION_VOICEMAIL_LOG:
+                    return "Voicemail Log";
+                case INITIATION_CALL_DETAILS:
+                    return "Call Details";
+                case INITIATION_QUICK_CONTACTS:
+                    return "Quick Contacts";
+                default:
+                    return "Unknown";
+            }
+        }
+    }
+
 
     private static final String ID_PREFIX = Call.class.getSimpleName() + "_";
     private static int sIdCounter = 0;
 
-    private android.telecom.Call.Callback mTelecomCallCallback =
-            new android.telecom.Call.Callback() {
-                @Override
-                public void onStateChanged(android.telecom.Call call, int newState) {
-                    Log.d(this, "TelecommCallCallback onStateChanged call=" + call + " newState="
-                            + newState);
-                    update();
-                }
+    private Object mTelecomCallCallback = newTelecomCallCallback();
 
-                @Override
-                public void onParentChanged(android.telecom.Call call,
-                        android.telecom.Call newParent) {
-                    Log.d(this, "TelecommCallCallback onParentChanged call=" + call + " newParent="
-                            + newParent);
-                    update();
-                }
+    private Object newTelecomCallCallback() {
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            return newMarshmallowTelecomCallCallback();
+        }
+        return newLollipopTelecomCallCallback();
+    }
 
-                @Override
-                public void onChildrenChanged(android.telecom.Call call,
-                        List<android.telecom.Call> children) {
-                    update();
-                }
+    private Object newMarshmallowTelecomCallCallback() {
+        Log.i(this, "Using an android.telecom.Call$Callback");
+        return new android.telecom.Call.Callback() {
+            @Override
+            public void onStateChanged(android.telecom.Call call, int newState) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call + " newState="
+                        + newState);
+                update();
+            }
 
-                @Override
-                public void onDetailsChanged(android.telecom.Call call,
-                        android.telecom.Call.Details details) {
-                    Log.d(this, "TelecommCallCallback onStateChanged call=" + call + " details="
-                            + details);
-                    update();
-                }
+            @Override
+            public void onParentChanged(android.telecom.Call call,
+                    android.telecom.Call newParent) {
+                Log.d(this, "TelecomCallCallback onParentChanged call=" + call + " newParent="
+                        + newParent);
+                update();
+            }
 
-                @Override
-                public void onCannedTextResponsesLoaded(android.telecom.Call call,
-                        List<String> cannedTextResponses) {
-                    Log.d(this, "TelecommCallCallback onStateChanged call=" + call
-                            + " cannedTextResponses=" + cannedTextResponses);
-                    update();
-                }
+            @Override
+            public void onChildrenChanged(android.telecom.Call call,
+                    List<android.telecom.Call> children) {
+                update();
+            }
 
-                @Override
-                public void onPostDialWait(android.telecom.Call call,
-                        String remainingPostDialSequence) {
-                    Log.d(this, "TelecommCallCallback onStateChanged call=" + call
-                            + " remainingPostDialSequence=" + remainingPostDialSequence);
-                    update();
-                }
+            @Override
+            public void onDetailsChanged(android.telecom.Call call,
+                    android.telecom.Call.Details details) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call + " details="
+                        + details);
+                update();
+            }
 
-                @Override
-                public void onVideoCallChanged(android.telecom.Call call,
-                        VideoCall videoCall) {
-                    Log.d(this, "TelecommCallCallback onStateChanged call=" + call + " videoCall="
-                            + videoCall);
-                    update();
-                }
+            @Override
+            public void onCannedTextResponsesLoaded(android.telecom.Call call,
+                    List<String> cannedTextResponses) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call
+                        + " cannedTextResponses=" + cannedTextResponses);
+                update();
+            }
 
-                @Override
-                public void onCallDestroyed(android.telecom.Call call) {
-                    Log.d(this, "TelecommCallCallback onStateChanged call=" + call);
-                    call.unregisterCallback(mTelecomCallCallback);
-                }
+            @Override
+            public void onPostDialWait(android.telecom.Call call,
+                    String remainingPostDialSequence) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call
+                        + " remainingPostDialSequence=" + remainingPostDialSequence);
+                update();
+            }
 
-                @Override
-                public void onConferenceableCallsChanged(android.telecom.Call call,
-                        List<android.telecom.Call> conferenceableCalls) {
-                    update();
-                }
-            };
+            @Override
+            public void onVideoCallChanged(android.telecom.Call call,
+                    VideoCall videoCall) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call + " videoCall="
+                        + videoCall);
+                update();
+            }
 
-    private android.telecom.Call mTelecommCall;
+            @Override
+            public void onCallDestroyed(android.telecom.Call call) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call);
+                call.unregisterCallback(this);
+            }
+
+            @Override
+            public void onConferenceableCallsChanged(android.telecom.Call call,
+                    List<android.telecom.Call> conferenceableCalls) {
+                update();
+            }
+        };
+    }
+
+    private Object newLollipopTelecomCallCallback() {
+        // This code only runs for Google Experience phones on the pre-M sdk since only the system
+        // dialer can invoke the InCallUI code. This allows us to safely use the
+        // android.telecom.Call.Listener interface
+        Log.i(this, "Using an android.telecom.Call$Listener");
+        return new android.telecom.Call.Listener() {
+            @Override
+            public void onStateChanged(android.telecom.Call call, int newState) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call + " newState="
+                        + newState);
+                update();
+            }
+
+            @Override
+            public void onParentChanged(android.telecom.Call call,
+                    android.telecom.Call newParent) {
+                Log.d(this, "TelecomCallCallback onParentChanged call=" + call + " newParent="
+                        + newParent);
+                update();
+            }
+
+            @Override
+            public void onChildrenChanged(android.telecom.Call call,
+                    List<android.telecom.Call> children) {
+                update();
+            }
+
+            @Override
+            public void onDetailsChanged(android.telecom.Call call,
+                    android.telecom.Call.Details details) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call + " details="
+                        + details);
+                update();
+            }
+
+            @Override
+            public void onCannedTextResponsesLoaded(android.telecom.Call call,
+                    List<String> cannedTextResponses) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call
+                        + " cannedTextResponses=" + cannedTextResponses);
+                update();
+            }
+
+            @Override
+            public void onPostDialWait(android.telecom.Call call,
+                    String remainingPostDialSequence) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call
+                        + " remainingPostDialSequence=" + remainingPostDialSequence);
+                update();
+            }
+
+            @Override
+            public void onVideoCallChanged(android.telecom.Call call,
+                    VideoCall videoCall) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call + " videoCall="
+                        + videoCall);
+                update();
+            }
+
+            @Override
+            public void onCallDestroyed(android.telecom.Call call) {
+                Log.d(this, "TelecomCallCallback onStateChanged call=" + call);
+                call.removeListener(this);
+            }
+
+            @Override
+            public void onConferenceableCallsChanged(android.telecom.Call call,
+                    List<android.telecom.Call> conferenceableCalls) {
+                update();
+            }
+        };
+    }
+
+    private android.telecom.Call mTelecomCall;
     private boolean mIsEmergencyCall;
     private Uri mHandle;
     private final String mId;
@@ -254,10 +452,12 @@
     private int mSessionModificationState;
     private final List<String> mChildCallIds = new ArrayList<>();
     private final VideoSettings mVideoSettings = new VideoSettings();
+    private int mVideoState;
+
     /**
-     * mModifyToVideoState is used to store requested upgrade / downgrade video state
+     * mRequestedVideoState is used to store requested upgrade / downgrade video state
      */
-    private int mModifyToVideoState = VideoProfile.STATE_AUDIO_ONLY;
+    private int mRequestedVideoState = VideoProfile.STATE_AUDIO_ONLY;
 
     private InCallVideoCallCallback mVideoCallCallback;
     private String mChildNumber;
@@ -271,26 +471,37 @@
      */
     private boolean mIsCallSubjectSupported;
 
+    private long mTimeAddedMs;
+
+    private LogState mLogState = new LogState();
+
     /**
      * Used only to create mock calls for testing
      */
     @NeededForTesting
     Call(int state) {
-        mTelecommCall = null;
+        mTelecomCall = null;
         mId = ID_PREFIX + Integer.toString(sIdCounter++);
         setState(state);
     }
 
-    public Call(android.telecom.Call telecommCall) {
-        mTelecommCall = telecommCall;
+    public Call(android.telecom.Call telecomCall) {
+        mTelecomCall = telecomCall;
         mId = ID_PREFIX + Integer.toString(sIdCounter++);
 
-        updateFromTelecommCall();
-        mTelecommCall.registerCallback(mTelecomCallCallback);
+        updateFromTelecomCall();
+
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            mTelecomCall.registerCallback((android.telecom.Call.Callback) mTelecomCallCallback);
+        } else {
+            mTelecomCall.addListener((android.telecom.Call.Listener) mTelecomCallCallback);
+        }
+
+        mTimeAddedMs = System.currentTimeMillis();
     }
 
-    public android.telecom.Call getTelecommCall() {
-        return mTelecommCall;
+    public android.telecom.Call getTelecomCall() {
+        return mTelecomCall;
     }
 
     /**
@@ -304,7 +515,7 @@
     private void update() {
         Trace.beginSection("Update");
         int oldState = getState();
-        updateFromTelecommCall();
+        updateFromTelecomCall();
         if (oldState != getState() && getState() == Call.State.DISCONNECTED) {
             CallList.getInstance().onDisconnect(this);
         } else {
@@ -313,30 +524,39 @@
         Trace.endSection();
     }
 
-    private void updateFromTelecommCall() {
-        Log.d(this, "updateFromTelecommCall: " + mTelecommCall.toString());
-        setState(translateState(mTelecommCall.getState()));
-        setDisconnectCause(mTelecommCall.getDetails().getDisconnectCause());
+    private void updateFromTelecomCall() {
+        Log.d(this, "updateFromTelecomCall: " + mTelecomCall.toString());
+        final int translatedState = translateState(mTelecomCall.getState());
+        if (mState != State.BLOCKED) {
+            setState(translatedState);
+            setDisconnectCause(mTelecomCall.getDetails().getDisconnectCause());
+            maybeCancelVideoUpgrade(mTelecomCall.getDetails().getVideoState());
+        }
 
-        if (mTelecommCall.getVideoCall() != null) {
+        if (mTelecomCall.getVideoCall() != null) {
             if (mVideoCallCallback == null) {
                 mVideoCallCallback = new InCallVideoCallCallback(this);
             }
-            mTelecommCall.getVideoCall().registerCallback(mVideoCallCallback);
+            mTelecomCall.getVideoCall().registerCallback(mVideoCallCallback);
         }
 
         mChildCallIds.clear();
-        for (int i = 0; i < mTelecommCall.getChildren().size(); i++) {
+        final int numChildCalls = mTelecomCall.getChildren().size();
+        for (int i = 0; i < numChildCalls; i++) {
             mChildCallIds.add(
-                    CallList.getInstance().getCallByTelecommCall(
-                            mTelecommCall.getChildren().get(i)).getId());
+                    CallList.getInstance().getCallByTelecomCall(
+                            mTelecomCall.getChildren().get(i)).getId());
         }
 
-        updateFromCallExtras(mTelecommCall.getDetails().getExtras());
+        // The number of conferenced calls can change over the course of the call, so use the
+        // maximum number of conferenced child calls as the metric for conference call usage.
+        mLogState.conferencedCalls = Math.max(numChildCalls, mLogState.conferencedCalls);
+
+        updateFromCallExtras(mTelecomCall.getDetails().getExtras());
 
         // If the handle of the call has changed, update state for the call determining if it is an
         // emergency call.
-        Uri newHandle = mTelecommCall.getDetails().getHandle();
+        Uri newHandle = mTelecomCall.getDetails().getHandle();
         if (!Objects.equals(mHandle, newHandle)) {
             mHandle = newHandle;
             updateEmergencyCallState();
@@ -344,13 +564,14 @@
 
         // If the phone account handle of the call is set, cache capability bit indicating whether
         // the phone account supports call subjects.
-        PhoneAccountHandle newPhoneAccountHandle = mTelecommCall.getDetails().getAccountHandle();
+        PhoneAccountHandle newPhoneAccountHandle = mTelecomCall.getDetails().getAccountHandle();
         if (!Objects.equals(mPhoneAccountHandle, newPhoneAccountHandle)) {
             mPhoneAccountHandle = newPhoneAccountHandle;
 
             if (mPhoneAccountHandle != null) {
                 TelecomManager mgr = InCallPresenter.getInstance().getTelecomManager();
-                PhoneAccount phoneAccount = mgr.getPhoneAccount(mPhoneAccountHandle);
+                PhoneAccount phoneAccount =
+                        TelecomManagerCompat.getPhoneAccount(mgr, mPhoneAccountHandle);
                 if (phoneAccount != null) {
                     mIsCallSubjectSupported = phoneAccount.hasCapabilities(
                             PhoneAccount.CAPABILITY_CALL_SUBJECT);
@@ -430,6 +651,23 @@
         }
     }
 
+    /**
+     * Determines if a received upgrade to video request should be cancelled.  This can happen if
+     * another InCall UI responds to the upgrade to video request.
+     *
+     * @param newVideoState The new video state.
+     */
+    private void maybeCancelVideoUpgrade(int newVideoState) {
+        boolean isVideoStateChanged = mVideoState != newVideoState;
+
+        if (mSessionModificationState == SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST
+                && isVideoStateChanged) {
+
+            Log.v(this, "maybeCancelVideoUpgrade : cancelling upgrade notification");
+            setSessionModificationState(SessionModificationState.NO_REQUEST);
+        }
+        mVideoState = newVideoState;
+    }
     private static int translateState(int state) {
         switch (state) {
             case android.telecom.Call.STATE_NEW:
@@ -458,19 +696,21 @@
         return mId;
     }
 
+    public long getTimeAddedMs() {
+        return mTimeAddedMs;
+    }
+
     public String getNumber() {
-        if (mTelecommCall == null) {
-            return null;
-        }
-        if (mTelecommCall.getDetails().getGatewayInfo() != null) {
-            return mTelecommCall.getDetails().getGatewayInfo()
-                    .getOriginalAddress().getSchemeSpecificPart();
-        }
-        return getHandle() == null ? null : getHandle().getSchemeSpecificPart();
+        return TelecomCallUtil.getNumber(mTelecomCall);
+    }
+
+    public void blockCall() {
+        mTelecomCall.reject(false, null);
+        setState(State.BLOCKED);
     }
 
     public Uri getHandle() {
-        return mTelecommCall == null ? null : mTelecommCall.getDetails().getHandle();
+        return mTelecomCall == null ? null : mTelecomCall.getDetails().getHandle();
     }
 
     public boolean isEmergencyCall() {
@@ -478,7 +718,7 @@
     }
 
     public int getState() {
-        if (mTelecommCall != null && mTelecommCall.getParent() != null) {
+        if (mTelecomCall != null && mTelecomCall.getParent() != null) {
             return State.CONFERENCED;
         } else {
             return mState;
@@ -487,28 +727,34 @@
 
     public void setState(int state) {
         mState = state;
+        if (mState == State.INCOMING) {
+            mLogState.isIncoming = true;
+        } else if (mState == State.DISCONNECTED) {
+            mLogState.duration = getConnectTimeMillis() == 0 ?
+                    0: System.currentTimeMillis() - getConnectTimeMillis();
+        }
     }
 
     public int getNumberPresentation() {
-        return mTelecommCall == null ? null : mTelecommCall.getDetails().getHandlePresentation();
+        return mTelecomCall == null ? null : mTelecomCall.getDetails().getHandlePresentation();
     }
 
     public int getCnapNamePresentation() {
-        return mTelecommCall == null ? null
-                : mTelecommCall.getDetails().getCallerDisplayNamePresentation();
+        return mTelecomCall == null ? null
+                : mTelecomCall.getDetails().getCallerDisplayNamePresentation();
     }
 
     public String getCnapName() {
-        return mTelecommCall == null ? null
-                : getTelecommCall().getDetails().getCallerDisplayName();
+        return mTelecomCall == null ? null
+                : getTelecomCall().getDetails().getCallerDisplayName();
     }
 
     public Bundle getIntentExtras() {
-        return mTelecommCall == null ? null : mTelecommCall.getDetails().getIntentExtras();
+        return DetailsCompat.getIntentExtras(mTelecomCall.getDetails());
     }
 
     public Bundle getExtras() {
-        return mTelecommCall == null ? null : mTelecommCall.getDetails().getExtras();
+        return mTelecomCall == null ? null : mTelecomCall.getDetails().getExtras();
     }
 
     /**
@@ -551,21 +797,22 @@
 
     public void setDisconnectCause(DisconnectCause disconnectCause) {
         mDisconnectCause = disconnectCause;
+        mLogState.disconnectCause = mDisconnectCause;
     }
 
     /** Returns the possible text message responses. */
     public List<String> getCannedSmsResponses() {
-        return mTelecommCall.getCannedTextResponses();
+        return mTelecomCall.getCannedTextResponses();
     }
 
     /** Checks if the call supports the given set of capabilities supplied as a bit mask. */
     public boolean can(int capabilities) {
-        int supportedCapabilities = mTelecommCall.getDetails().getCallCapabilities();
+        int supportedCapabilities = mTelecomCall.getDetails().getCallCapabilities();
 
         if ((capabilities & android.telecom.Call.Details.CAPABILITY_MERGE_CONFERENCE) != 0) {
             // We allow you to merge if the capabilities allow it or if it is a call with
             // conferenceable calls.
-            if (mTelecommCall.getConferenceableCalls().isEmpty() &&
+            if (mTelecomCall.getConferenceableCalls().isEmpty() &&
                 ((android.telecom.Call.Details.CAPABILITY_MERGE_CONFERENCE
                         & supportedCapabilities) == 0)) {
                 // Cannot merge calls if there are no calls to merge with.
@@ -573,33 +820,32 @@
             }
             capabilities &= ~android.telecom.Call.Details.CAPABILITY_MERGE_CONFERENCE;
         }
-        return (capabilities == (capabilities & mTelecommCall.getDetails().getCallCapabilities()));
+        return (capabilities == (capabilities & mTelecomCall.getDetails().getCallCapabilities()));
     }
 
     public boolean hasProperty(int property) {
-        return mTelecommCall.getDetails().hasProperty(property);
+        return DetailsCompat.hasProperty(mTelecomCall.getDetails(), property);
     }
 
     /** Gets the time when the call first became active. */
     public long getConnectTimeMillis() {
-        return mTelecommCall.getDetails().getConnectTimeMillis();
+        return mTelecomCall.getDetails().getConnectTimeMillis();
     }
 
     public boolean isConferenceCall() {
-        return mTelecommCall.getDetails().hasProperty(
-                android.telecom.Call.Details.PROPERTY_CONFERENCE);
+        return hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE);
     }
 
     public GatewayInfo getGatewayInfo() {
-        return mTelecommCall == null ? null : mTelecommCall.getDetails().getGatewayInfo();
+        return mTelecomCall == null ? null : mTelecomCall.getDetails().getGatewayInfo();
     }
 
     public PhoneAccountHandle getAccountHandle() {
-        return mTelecommCall == null ? null : mTelecommCall.getDetails().getAccountHandle();
+        return mTelecomCall == null ? null : mTelecomCall.getDetails().getAccountHandle();
     }
 
     public VideoCall getVideoCall() {
-        return mTelecommCall == null ? null : mTelecommCall.getVideoCall();
+        return mTelecomCall == null ? null : mTelecomCall.getVideoCall();
     }
 
     public List<String> getChildCallIds() {
@@ -607,56 +853,56 @@
     }
 
     public String getParentId() {
-        android.telecom.Call parentCall = mTelecommCall.getParent();
+        android.telecom.Call parentCall = mTelecomCall.getParent();
         if (parentCall != null) {
-            return CallList.getInstance().getCallByTelecommCall(parentCall).getId();
+            return CallList.getInstance().getCallByTelecomCall(parentCall).getId();
         }
         return null;
     }
 
     public int getVideoState() {
-        return mTelecommCall.getDetails().getVideoState();
+        return mTelecomCall.getDetails().getVideoState();
     }
 
     public boolean isVideoCall(Context context) {
         return CallUtil.isVideoEnabled(context) &&
-                CallUtils.isVideoCall(getVideoState());
+                VideoUtils.isVideoCall(getVideoState());
     }
 
     /**
-     * This method is called when we request for a video upgrade or downgrade. This handles the
-     * session modification state RECEIVED_UPGRADE_TO_VIDEO_REQUEST and sets the video state we
-     * want to upgrade/downgrade to.
+     * Handles incoming session modification requests.  Stores the pending video request and sets
+     * the session modification state to
+     * {@link SessionModificationState#RECEIVED_UPGRADE_TO_VIDEO_REQUEST} so that we can keep track
+     * of the fact the request was received.  Only upgrade requests require user confirmation and
+     * will be handled by this method.  The remote user can turn off their own camera without
+     * confirmation.
+     *
+     * @param videoState The requested video state.
      */
-    public void setSessionModificationTo(int videoState) {
-        Log.d(this, "setSessionModificationTo - video state= " + videoState);
+    public void setRequestedVideoState(int videoState) {
+        Log.d(this, "setRequestedVideoState - video state= " + videoState);
         if (videoState == getVideoState()) {
             mSessionModificationState = Call.SessionModificationState.NO_REQUEST;
-            Log.w(this,"setSessionModificationTo - Clearing session modification state");
-        } else {
-            mSessionModificationState =
-                Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST;
-            setModifyToVideoState(videoState);
-            CallList.getInstance().onUpgradeToVideo(this);
+            Log.w(this,"setRequestedVideoState - Clearing session modification state");
+            return;
         }
 
-        Log.d(this, "setSessionModificationTo - mSessionModificationState="
+        mSessionModificationState = Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST;
+        mRequestedVideoState = videoState;
+        CallList.getInstance().onUpgradeToVideo(this);
+
+        Log.d(this, "setRequestedVideoState - mSessionModificationState="
             + mSessionModificationState + " video state= " + videoState);
         update();
     }
 
     /**
-     * This method is called to handle any other session modification states other than
-     * RECEIVED_UPGRADE_TO_VIDEO_REQUEST. We set the modification state and reset the video state
-     * when an upgrade request has been completed or failed.
+     * Set the session modification state.  Used to keep track of pending video session modification
+     * operations and to inform listeners of these changes.
+     *
+     * @param state the new session modification state.
      */
     public void setSessionModificationState(int state) {
-        if (state == Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
-            Log.e(this,
-                    "setSessionModificationState not valid for RECEIVED_UPGRADE_TO_VIDEO_REQUEST");
-            return;
-        }
-
         boolean hasChanged = mSessionModificationState != state;
         mSessionModificationState = state;
         Log.d(this, "setSessionModificationState " + state + " mSessionModificationState="
@@ -671,17 +917,16 @@
      * repeated calls to isEmergencyNumber.
      */
     private void updateEmergencyCallState() {
-        Uri handle = mTelecommCall.getDetails().getHandle();
-        mIsEmergencyCall = PhoneNumberUtils.isEmergencyNumber(
-                handle == null ? "" : handle.getSchemeSpecificPart());
+        mIsEmergencyCall = TelecomCallUtil.isEmergencyCall(mTelecomCall);
     }
 
-    private void setModifyToVideoState(int newVideoState) {
-        mModifyToVideoState = newVideoState;
-    }
-
-    public int getModifyToVideoState() {
-        return mModifyToVideoState;
+    /**
+     * Gets the video state which was requested via a session modification request.
+     *
+     * @return The video state.
+     */
+    public int getRequestedVideoState() {
+        return mRequestedVideoState;
     }
 
     public static boolean areSame(Call call1, Call call2) {
@@ -706,13 +951,35 @@
         return TextUtils.equals(call1.getNumber(), call2.getNumber());
     }
 
+    /**
+     *  Gets the current video session modification state.
+     *
+     * @return The session modification state.
+     */
     public int getSessionModificationState() {
         return mSessionModificationState;
     }
 
+    public LogState getLogState() {
+        return mLogState;
+    }
+
+    /**
+     * Logging utility methods
+     */
+    public void logCallInitiationType() {
+        if (getState() == State.INCOMING) {
+            getLogState().callInitiationMethod = LogState.INITIATION_INCOMING;
+        } else if (getIntentExtras() != null) {
+            getLogState().callInitiationMethod =
+                getIntentExtras().getInt(IntentUtil.EXTRA_CALL_INITIATION_TYPE,
+                        LogState.INITIATION_EXTERNAL);
+        }
+    }
+
     @Override
     public String toString() {
-        if (mTelecommCall == null) {
+        if (mTelecomCall == null) {
             // This should happen only in testing since otherwise we would never have a null
             // Telecom call.
             return String.valueOf(mId);
@@ -722,12 +989,11 @@
                 "videoState:%s, mSessionModificationState:%d, VideoSettings:%s]",
                 mId,
                 State.toString(getState()),
-                android.telecom.Call.Details
-                        .capabilitiesToString(mTelecommCall.getDetails().getCallCapabilities()),
+                DetailsCompat.capabilitiesToString(mTelecomCall.getDetails().getCallCapabilities()),
                 mChildCallIds,
                 getParentId(),
-                this.mTelecommCall.getConferenceableCalls(),
-                VideoProfile.videoStateToString(mTelecommCall.getDetails().getVideoState()),
+                this.mTelecomCall.getConferenceableCalls(),
+                VideoProfileCompat.videoStateToString(mTelecomCall.getDetails().getVideoState()),
                 mSessionModificationState,
                 getVideoSettings());
     }
diff --git a/InCallUI/src/com/android/incallui/CallButtonFragment.java b/InCallUI/src/com/android/incallui/CallButtonFragment.java
index 0987cac..6538474 100644
--- a/InCallUI/src/com/android/incallui/CallButtonFragment.java
+++ b/InCallUI/src/com/android/incallui/CallButtonFragment.java
@@ -16,18 +16,28 @@
 
 package com.android.incallui;
 
-import static com.android.incallui.CallButtonFragment.Buttons.*;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_ADD_CALL;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_AUDIO;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_COUNT;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_DIALPAD;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_HOLD;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_MANAGE_VIDEO_CONFERENCE;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_MERGE;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_MUTE;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_PAUSE_VIDEO;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_SWAP;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_SWITCH_CAMERA;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_UPGRADE_TO_VIDEO;
 
 import android.content.Context;
 import android.content.res.ColorStateList;
 import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
-import android.graphics.drawable.LayerDrawable;
 import android.graphics.drawable.GradientDrawable;
+import android.graphics.drawable.LayerDrawable;
 import android.graphics.drawable.RippleDrawable;
 import android.graphics.drawable.StateListDrawable;
 import android.os.Bundle;
-import android.telecom.CallAudioState;
 import android.util.SparseIntArray;
 import android.view.ContextThemeWrapper;
 import android.view.HapticFeedbackConstants;
@@ -43,6 +53,7 @@
 import android.widget.PopupMenu.OnMenuItemClickListener;
 
 import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
+import com.android.dialer.compat.CallAudioStateCompat;
 
 /**
  * Fragment for call control buttons
@@ -51,6 +62,7 @@
         extends BaseFragment<CallButtonPresenter, CallButtonPresenter.CallButtonUi>
         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
@@ -61,6 +73,7 @@
     private static final int BUTTON_MENU = 3;
 
     public interface Buttons {
+
         public static final int BUTTON_AUDIO = 0;
         public static final int BUTTON_MUTE = 1;
         public static final int BUTTON_DIALPAD = 2;
@@ -153,7 +166,7 @@
         mOverflowButton = (ImageButton) parent.findViewById(R.id.overflowButton);
         mOverflowButton.setOnClickListener(this);
         mManageVideoCallConferenceButton = (ImageButton) parent.findViewById(
-            R.id.manageVideoCallConferenceButton);
+                R.id.manageVideoCallConferenceButton);
         mManageVideoCallConferenceButton.setOnClickListener(this);
         return parent;
     }
@@ -181,7 +194,7 @@
         int id = view.getId();
         Log.d(this, "onClick(View " + view + ", id " + id + ")...");
 
-        switch(id) {
+        switch (id) {
             case R.id.audioButton:
                 onAudioButtonClicked();
                 break;
@@ -258,11 +271,11 @@
         }
 
         ImageButton[] normalButtons = {
-            mSwapButton,
-            mChangeToVideoButton,
-            mAddCallButton,
-            mMergeButton,
-            mOverflowButton
+                mSwapButton,
+                mChangeToVideoButton,
+                mAddCallButton,
+                mMergeButton,
+                mOverflowButton
         };
 
         for (ImageButton button : normalButtons) {
@@ -472,7 +485,7 @@
                     }
                     addToOverflowMenu(i, button, menu);
                 }
-            } else if (visibility == BUTTON_HIDDEN){
+            } else if (visibility == BUTTON_HIDDEN) {
                 button.setVisibility(View.GONE);
             }
         }
@@ -514,20 +527,20 @@
         Log.d(this, "  id: " + item.getItemId());
         Log.d(this, "  title: '" + item.getTitle() + "'");
 
-        int mode = CallAudioState.ROUTE_WIRED_OR_EARPIECE;
+        int mode = CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE;
 
         switch (item.getItemId()) {
             case R.id.audio_mode_speaker:
-                mode = CallAudioState.ROUTE_SPEAKER;
+                mode = CallAudioStateCompat.ROUTE_SPEAKER;
                 break;
             case R.id.audio_mode_earpiece:
             case R.id.audio_mode_wired_headset:
                 // InCallCallAudioState.ROUTE_EARPIECE means either the handset earpiece,
                 // or the wired headset (if connected.)
-                mode = CallAudioState.ROUTE_WIRED_OR_EARPIECE;
+                mode = CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE;
                 break;
             case R.id.audio_mode_bluetooth:
-                mode = CallAudioState.ROUTE_BLUETOOTH;
+                mode = CallAudioStateCompat.ROUTE_BLUETOOTH;
                 break;
             default:
                 Log.e(this, "onMenuItemClick:  unexpected View ID " + item.getItemId()
@@ -557,9 +570,9 @@
      */
     private void onAudioButtonClicked() {
         Log.d(this, "onAudioButtonClicked: " +
-                CallAudioState.audioRouteToString(getPresenter().getSupportedAudio()));
+                CallAudioStateCompat.audioRouteToString(getPresenter().getSupportedAudio()));
 
-        if (isSupported(CallAudioState.ROUTE_BLUETOOTH)) {
+        if (isSupported(CallAudioStateCompat.ROUTE_BLUETOOTH)) {
             showAudioModePopup();
         } else {
             getPresenter().toggleSpeakerphone();
@@ -594,8 +607,8 @@
      * are visible based on the supported audio formats.
      */
     private void updateAudioButtons(int supportedModes) {
-        final boolean bluetoothSupported = isSupported(CallAudioState.ROUTE_BLUETOOTH);
-        final boolean speakerSupported = isSupported(CallAudioState.ROUTE_SPEAKER);
+        final boolean bluetoothSupported = isSupported(CallAudioStateCompat.ROUTE_BLUETOOTH);
+        final boolean speakerSupported = isSupported(CallAudioStateCompat.ROUTE_SPEAKER);
 
         boolean audioButtonEnabled = false;
         boolean audioButtonChecked = false;
@@ -615,9 +628,9 @@
             showMoreIndicator = true;
 
             // Update desired layers:
-            if (isAudio(CallAudioState.ROUTE_BLUETOOTH)) {
+            if (isAudio(CallAudioStateCompat.ROUTE_BLUETOOTH)) {
                 showBluetoothIcon = true;
-            } else if (isAudio(CallAudioState.ROUTE_SPEAKER)) {
+            } else if (isAudio(CallAudioStateCompat.ROUTE_SPEAKER)) {
                 showSpeakerphoneIcon = true;
             } else {
                 showHandsetIcon = true;
@@ -636,7 +649,7 @@
 
             // The audio button *is* a toggle in this state, and indicated the
             // current state of the speakerphone.
-            audioButtonChecked = isAudio(CallAudioState.ROUTE_SPEAKER);
+            audioButtonChecked = isAudio(CallAudioStateCompat.ROUTE_SPEAKER);
             mAudioButton.setSelected(audioButtonChecked);
 
             // update desired layers:
@@ -697,20 +710,20 @@
 
         // If bluetooth is not supported, the audio buttion will toggle, so use the label "speaker".
         // Otherwise, use the label of the currently selected audio mode.
-        if (!isSupported(CallAudioState.ROUTE_BLUETOOTH)) {
+        if (!isSupported(CallAudioStateCompat.ROUTE_BLUETOOTH)) {
             stringId = R.string.audio_mode_speaker;
         } else {
             switch (mode) {
-                case CallAudioState.ROUTE_EARPIECE:
+                case CallAudioStateCompat.ROUTE_EARPIECE:
                     stringId = R.string.audio_mode_earpiece;
                     break;
-                case CallAudioState.ROUTE_BLUETOOTH:
+                case CallAudioStateCompat.ROUTE_BLUETOOTH:
                     stringId = R.string.audio_mode_bluetooth;
                     break;
-                case CallAudioState.ROUTE_WIRED_HEADSET:
+                case CallAudioStateCompat.ROUTE_WIRED_HEADSET:
                     stringId = R.string.audio_mode_wired_headset;
                     break;
-                case CallAudioState.ROUTE_SPEAKER:
+                case CallAudioStateCompat.ROUTE_SPEAKER:
                     stringId = R.string.audio_mode_speaker;
                     break;
             }
@@ -740,7 +753,7 @@
         // See comments below for the exact logic.
 
         final MenuItem speakerItem = menu.findItem(R.id.audio_mode_speaker);
-        speakerItem.setEnabled(isSupported(CallAudioState.ROUTE_SPEAKER));
+        speakerItem.setEnabled(isSupported(CallAudioStateCompat.ROUTE_SPEAKER));
         // TODO: Show speakerItem as initially "selected" if
         // speaker is on.
 
@@ -749,7 +762,7 @@
         final MenuItem earpieceItem = menu.findItem(R.id.audio_mode_earpiece);
         final MenuItem wiredHeadsetItem = menu.findItem(R.id.audio_mode_wired_headset);
 
-        final boolean usingHeadset = isSupported(CallAudioState.ROUTE_WIRED_HEADSET);
+        final boolean usingHeadset = isSupported(CallAudioStateCompat.ROUTE_WIRED_HEADSET);
         earpieceItem.setVisible(!usingHeadset);
         earpieceItem.setEnabled(!usingHeadset);
         wiredHeadsetItem.setVisible(usingHeadset);
@@ -759,7 +772,7 @@
         // bluetoothIndicatorOn are both false.
 
         final MenuItem bluetoothItem = menu.findItem(R.id.audio_mode_bluetooth);
-        bluetoothItem.setEnabled(isSupported(CallAudioState.ROUTE_BLUETOOTH));
+        bluetoothItem.setEnabled(isSupported(CallAudioStateCompat.ROUTE_BLUETOOTH));
         // TODO: Show bluetoothItem as initially "selected" if
         // bluetoothIndicatorOn is true.
 
@@ -781,9 +794,11 @@
 
     @Override
     public void displayDialpad(boolean value, boolean animate) {
-        mShowDialpadButton.setSelected(value);
         if (getActivity() != null && getActivity() instanceof InCallActivity) {
-            ((InCallActivity) getActivity()).showDialpadFragment(value, animate);
+            boolean changed = ((InCallActivity) getActivity()).showDialpadFragment(value, animate);
+            if (changed) {
+                mShowDialpadButton.setSelected(value);
+            }
         }
     }
 
diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
index 29cdd4d..7e5f7c6 100644
--- a/InCallUI/src/com/android/incallui/CallButtonPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java
@@ -16,23 +16,32 @@
 
 package com.android.incallui;
 
-import static com.android.incallui.CallButtonFragment.Buttons.*;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_ADD_CALL;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_AUDIO;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_DIALPAD;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_HOLD;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_MERGE;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_MUTE;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_PAUSE_VIDEO;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_SWAP;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_SWITCH_CAMERA;
+import static com.android.incallui.CallButtonFragment.Buttons.BUTTON_UPGRADE_TO_VIDEO;
 
 import android.content.Context;
+import android.os.Build;
 import android.os.Bundle;
-import android.telecom.CallAudioState;
 import android.telecom.InCallService.VideoCall;
 import android.telecom.VideoProfile;
 
+import com.android.contacts.common.compat.SdkVersionOverride;
+import com.android.dialer.compat.CallAudioStateCompat;
 import com.android.incallui.AudioModeProvider.AudioModeListener;
 import com.android.incallui.InCallCameraManager.Listener;
 import com.android.incallui.InCallPresenter.CanAddCallListener;
+import com.android.incallui.InCallPresenter.InCallDetailsListener;
 import com.android.incallui.InCallPresenter.InCallState;
 import com.android.incallui.InCallPresenter.InCallStateListener;
 import com.android.incallui.InCallPresenter.IncomingCallListener;
-import com.android.incallui.InCallPresenter.InCallDetailsListener;
-
-import java.util.Objects;
 
 /**
  * Logic for call buttons.
@@ -177,7 +186,7 @@
         // an update for onAudioMode().  This will make UI response immediate
         // if it turns out to be slow
 
-        Log.d(this, "Sending new Audio Mode: " + CallAudioState.audioRouteToString(mode));
+        Log.d(this, "Sending new Audio Mode: " + CallAudioStateCompat.audioRouteToString(mode));
         TelecomAdapter.getInstance().setAudioRoute(mode);
     }
 
@@ -186,7 +195,7 @@
      */
     public void toggleSpeakerphone() {
         // this function should not be called if bluetooth is available
-        if (0 != (CallAudioState.ROUTE_BLUETOOTH & getSupportedAudio())) {
+        if (0 != (CallAudioStateCompat.ROUTE_BLUETOOTH & getSupportedAudio())) {
 
             // It's clear the UI is wrong, so update the supported mode once again.
             Log.e(this, "toggling speakerphone not allowed when bluetooth supported.");
@@ -194,11 +203,11 @@
             return;
         }
 
-        int newMode = CallAudioState.ROUTE_SPEAKER;
+        int newMode = CallAudioStateCompat.ROUTE_SPEAKER;
 
         // if speakerphone is already on, change to wired/earpiece
-        if (getAudioMode() == CallAudioState.ROUTE_SPEAKER) {
-            newMode = CallAudioState.ROUTE_WIRED_OR_EARPIECE;
+        if (getAudioMode() == CallAudioStateCompat.ROUTE_SPEAKER) {
+            newMode = CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE;
         }
 
         setAudioMode(newMode);
@@ -266,7 +275,7 @@
             return;
         }
         int currVideoState = mCall.getVideoState();
-        int currUnpausedVideoState = CallUtils.getUnPausedVideoState(currVideoState);
+        int currUnpausedVideoState = VideoUtils.getUnPausedVideoState(currVideoState);
         currUnpausedVideoState |= VideoProfile.STATE_BIDIRECTIONAL;
 
         VideoProfile videoProfile = new VideoProfile(currUnpausedVideoState);
@@ -356,7 +365,7 @@
         Log.v(this, "updateButtonsState");
         final CallButtonUi ui = getUi();
 
-        final boolean isVideo = CallUtils.isVideoCall(call);
+        final boolean isVideo = VideoUtils.isVideoCall(call);
 
         // Common functionality (audio, hold, etc).
         // Show either HOLD or SWAP, but not both. If neither HOLD or SWAP is available:
@@ -369,12 +378,10 @@
                 && call.can(android.telecom.Call.Details.CAPABILITY_HOLD);
         final boolean isCallOnHold = call.getState() == Call.State.ONHOLD;
 
-        final boolean showAddCall = TelecomAdapter.getInstance().canAddCall();
+        final boolean showAddCall = TelecomAdapter.getInstance().canAddCall(call);
         final boolean showMerge = call.can(
                 android.telecom.Call.Details.CAPABILITY_MERGE_CONFERENCE);
-        final boolean showUpgradeToVideo = !isVideo &&
-                (call.can(android.telecom.Call.Details.CAPABILITY_SUPPORTS_VT_LOCAL_TX)
-                && call.can(android.telecom.Call.Details.CAPABILITY_SUPPORTS_VT_REMOTE_RX));
+        final boolean showUpgradeToVideo = !isVideo && hasVideoCallCapabilities(call);
 
         final boolean showMute = call.can(android.telecom.Call.Details.CAPABILITY_MUTE);
 
@@ -387,12 +394,21 @@
         ui.showButton(BUTTON_UPGRADE_TO_VIDEO, showUpgradeToVideo);
         ui.showButton(BUTTON_SWITCH_CAMERA, isVideo);
         ui.showButton(BUTTON_PAUSE_VIDEO, isVideo);
-        ui.showButton(BUTTON_DIALPAD, !isVideo);
+        ui.showButton(BUTTON_DIALPAD, true);
         ui.showButton(BUTTON_MERGE, showMerge);
 
         ui.updateButtonStates();
     }
 
+    private boolean hasVideoCallCapabilities(Call call) {
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            return call.can(android.telecom.Call.Details.CAPABILITY_SUPPORTS_VT_LOCAL_TX)
+                    && call.can(android.telecom.Call.Details.CAPABILITY_SUPPORTS_VT_REMOTE_RX);
+        }
+        // In L, this single flag represents both video transmitting and receiving capabilities
+        return call.can(android.telecom.Call.Details.CAPABILITY_SUPPORTS_VT_LOCAL_TX);
+    }
+
     public void refreshMuteState() {
         // Restore the previous mute state
         if (mAutomaticallyMuted &&
diff --git a/InCallUI/src/com/android/incallui/CallCardFragment.java b/InCallUI/src/com/android/incallui/CallCardFragment.java
index fb0ef75..dbb2c9d 100644
--- a/InCallUI/src/com/android/incallui/CallCardFragment.java
+++ b/InCallUI/src/com/android/incallui/CallCardFragment.java
@@ -21,15 +21,19 @@
 import android.animation.AnimatorSet;
 import android.animation.ObjectAnimator;
 import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
 import android.graphics.drawable.AnimationDrawable;
+import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.GradientDrawable;
 import android.os.Bundle;
-import android.os.Trace;
 import android.os.Handler;
 import android.os.Looper;
+import android.os.Trace;
+import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
+import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
 import android.telecom.DisconnectCause;
-import android.telecom.VideoProfile;
 import android.telephony.PhoneNumberUtils;
 import android.text.TextUtils;
 import android.text.format.DateUtils;
@@ -41,14 +45,17 @@
 import android.view.ViewTreeObserver;
 import android.view.ViewTreeObserver.OnGlobalLayoutListener;
 import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityManager;
 import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;
 import android.widget.ImageButton;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ListAdapter;
+import android.widget.ListView;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
 import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
 import com.android.contacts.common.widget.FloatingActionButtonController;
 import com.android.phone.common.animation.AnimUtils;
@@ -88,6 +95,8 @@
         }
     };
 
+    private static final String IS_DIALPAD_SHOWING_KEY = "is_dialpad_showing";
+
     /**
      * The duration of time (in milliseconds) a call state label should remain visible before
      * resetting to its previous value.
@@ -120,7 +129,6 @@
     private ImageView mHdAudioIcon;
     private ImageView mForwardIcon;
     private View mCallNumberAndLabel;
-    private ImageView mPhoto;
     private TextView mElapsedTime;
     private Drawable mPrimaryPhotoDrawable;
     private TextView mCallSubject;
@@ -130,6 +138,7 @@
     // Container view that houses the primary call information
     private ViewGroup mPrimaryCallInfo;
     private View mCallButtonsContainer;
+    private ImageView mPhotoSmall;
 
     // Secondary caller info
     private View mSecondaryCallInfo;
@@ -140,6 +149,14 @@
     private View mSecondaryCallVideoCallIcon;
     private View mProgressSpinner;
 
+    // Call card content
+    private View mCallCardContent;
+    private ImageView mPhotoLarge;
+    private View mContactContext;
+    private TextView mContactContextTitle;
+    private ListView mContactContextListView;
+    private LinearLayout mContactContextListHeaders;
+
     private View mManageConferenceCallButton;
 
     // Dark number info bar
@@ -166,6 +183,11 @@
     private boolean mCallStateLabelResetPending = false;
     private Handler mHandler;
 
+    /**
+     * Determines if secondary call info is populated in the secondary call info UI.
+     */
+    private boolean mHasSecondaryCallInfo = false;
+
     @Override
     public CallCardPresenter.CallCardUi getUi() {
         return this;
@@ -189,6 +211,10 @@
                 R.dimen.end_call_floating_action_button_diameter);
         mFabSmallDiameter = getResources().getDimensionPixelOffset(
                 R.dimen.end_call_floating_action_button_small_diameter);
+
+        if (savedInstanceState != null) {
+            mIsDialpadShowing = savedInstanceState.getBoolean(IS_DIALPAD_SHOWING_KEY, false);
+        }
     }
 
     @Override
@@ -201,6 +227,12 @@
     }
 
     @Override
+    public void onSaveInstanceState(Bundle outState) {
+        outState.putBoolean(IS_DIALPAD_SHOWING_KEY, mIsDialpadShowing);
+        super.onSaveInstanceState(outState);
+    }
+
+    @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
         Trace.beginSection(TAG + " onCreate");
@@ -223,13 +255,22 @@
         mNumberLabel = (TextView) view.findViewById(R.id.label);
         mSecondaryCallInfo = view.findViewById(R.id.secondary_call_info);
         mSecondaryCallProviderInfo = view.findViewById(R.id.secondary_call_provider_info);
-        mPhoto = (ImageView) view.findViewById(R.id.photo);
-        mPhoto.setOnClickListener(new View.OnClickListener() {
+        mCallCardContent = view.findViewById(R.id.call_card_content);
+        mPhotoLarge = (ImageView) view.findViewById(R.id.photoLarge);
+        mPhotoLarge.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 getPresenter().onContactPhotoClick();
             }
         });
+
+        mContactContext = view.findViewById(R.id.contact_context);
+        mContactContextTitle = (TextView) view.findViewById(R.id.contactContextTitle);
+        mContactContextListView = (ListView) view.findViewById(R.id.contactContextInfo);
+        // This layout stores all the list header layouts so they can be easily removed.
+        mContactContextListHeaders = new LinearLayout(getView().getContext());
+        mContactContextListView.addHeaderView(mContactContextListHeaders);
+
         mCallStateIcon = (ImageView) view.findViewById(R.id.callStateIcon);
         mCallStateVideoCallIcon = (ImageView) view.findViewById(R.id.videoCallIcon);
         mCallStateLabel = (TextView) view.findViewById(R.id.callStateLabel);
@@ -241,6 +282,8 @@
         mPrimaryCallCardContainer = view.findViewById(R.id.primary_call_info_container);
         mPrimaryCallInfo = (ViewGroup) view.findViewById(R.id.primary_call_banner);
         mCallButtonsContainer = view.findViewById(R.id.callButtonFragment);
+        mPhotoSmall = (ImageView) view.findViewById(R.id.photoSmall);
+        mPhotoSmall.setVisibility(View.GONE);
         mInCallMessageLabel = (TextView) view.findViewById(R.id.connectionServiceMessage);
         mProgressSpinner = view.findViewById(R.id.progressSpinner);
 
@@ -307,6 +350,26 @@
         mProgressSpinner.setVisibility(visible ? View.VISIBLE : View.GONE);
     }
 
+    @Override
+    public void setContactContextTitle(View headerView) {
+        mContactContextListHeaders.removeAllViews();
+        mContactContextListHeaders.addView(headerView);
+    }
+
+    @Override
+    public void setContactContextContent(ListAdapter listAdapter) {
+        mContactContextListView.setAdapter(listAdapter);
+    }
+
+    @Override
+    public void showContactContext(boolean show) {
+        showImageView(mPhotoLarge, !show);
+        showImageView(mPhotoSmall, show);
+        mPrimaryCallCardContainer.setElevation(
+                show ? 0 : getResources().getDimension(R.dimen.primary_call_elevation));
+        mContactContext.setVisibility(show ? View.VISIBLE : View.GONE);
+    }
+
     /**
      * Sets the visibility of the primary call card.
      * Ensures that when the primary call card is hidden, the video surface slides over to fill the
@@ -316,6 +379,7 @@
      */
     @Override
     public void setCallCardVisible(final boolean visible) {
+        Log.v(this, "setCallCardVisible : isVisible = " + visible);
         // When animating the hide/show of the views in a landscape layout, we need to take into
         // account whether we are in a left-to-right locale or a right-to-left locale and adjust
         // the animations accordingly.
@@ -337,9 +401,7 @@
             @Override
             public boolean onPreDraw() {
                 // We don't want to continue getting called.
-                if (observer.isAlive()) {
-                    observer.removeOnPreDrawListener(this);
-                }
+                getView().getViewTreeObserver().removeOnPreDrawListener(this);
 
                 float videoViewTranslation = 0f;
 
@@ -348,9 +410,8 @@
                     mPrimaryCallCardContainer.setTranslationY(visible ?
                             -mPrimaryCallCardContainer.getHeight() : 0);
 
-                    if (visible) {
-                        videoViewTranslation = videoView.getHeight() / 2 - spaceBesideCallCard / 2;
-                    }
+                    ViewGroup.LayoutParams p = videoView.getLayoutParams();
+                    videoViewTranslation = p.height / 2 - spaceBesideCallCard / 2;
                 }
 
                 // Perform animation of video view.
@@ -359,12 +420,10 @@
                         .setDuration(mVideoAnimationDuration);
                 if (mIsLandscape) {
                     videoViewAnimator
-                            .translationX(videoViewTranslation)
-                            .start();
+                            .translationX(visible ? videoViewTranslation : 0);
                 } else {
                     videoViewAnimator
-                            .translationY(videoViewTranslation)
-                            .start();
+                            .translationY(visible ? videoViewTranslation : 0);
                 }
                 videoViewAnimator.start();
 
@@ -437,7 +496,7 @@
             mPrimaryName.setText(null);
         } else {
             mPrimaryName.setText(nameIsNumber
-                    ? PhoneNumberUtils.createTtsSpannable(name)
+                    ? PhoneNumberUtilsCompat.createTtsSpannable(name)
                     : name);
 
             // Set direction of the name field
@@ -449,10 +508,17 @@
         }
     }
 
+    /**
+     * Sets the primary image for the contact photo.
+     *
+     * @param image The drawable to set.
+     * @param isVisible Whether the contact photo should be visible after being set.
+     */
     @Override
-    public void setPrimaryImage(Drawable image) {
+    public void setPrimaryImage(Drawable image, boolean isVisible) {
         if (image != null) {
-            setDrawableToImageView(mPhoto, image);
+            setDrawableToImageViews(image);
+            showImageView(mPhotoLarge, isVisible);
         }
     }
 
@@ -463,7 +529,7 @@
             mPhoneNumber.setText(null);
             mPhoneNumber.setVisibility(View.GONE);
         } else {
-            mPhoneNumber.setText(PhoneNumberUtils.createTtsSpannable(number));
+            mPhoneNumber.setText(PhoneNumberUtilsCompat.createTtsSpannable(number));
             mPhoneNumber.setVisibility(View.VISIBLE);
             mPhoneNumber.setTextDirection(View.TEXT_DIRECTION_LTR);
         }
@@ -480,9 +546,21 @@
 
     }
 
+    /**
+     * Sets the primary caller information.
+     *
+     * @param number The caller phone number.
+     * @param name The caller name.
+     * @param nameIsNumber {@code true} if the name should be shown in place of the phone number.
+     * @param label The label.
+     * @param photo The contact photo drawable.
+     * @param isSipCall {@code true} if this is a SIP call.
+     * @param isContactPhotoShown {@code true} if the contact photo should be shown (it will be
+     *      updated even if it is not shown).
+     */
     @Override
     public void setPrimary(String number, String name, boolean nameIsNumber, String label,
-            Drawable photo, boolean isSipCall) {
+            Drawable photo, boolean isSipCall, boolean isContactPhotoShown) {
         Log.d(this, "Setting primary call");
         // set the name field.
         setPrimaryName(name, nameIsNumber);
@@ -502,26 +580,28 @@
 
         showInternetCallLabel(isSipCall);
 
-        setDrawableToImageView(mPhoto, photo);
+        setDrawableToImageViews(photo);
+        showImageView(mPhotoLarge, isContactPhotoShown);
     }
 
     @Override
     public void setSecondary(boolean show, String name, boolean nameIsNumber, String label,
-            String providerLabel, boolean isConference, boolean isVideoCall) {
-
-        if (show != mSecondaryCallInfo.isShown()) {
-            updateFabPositionForSecondaryCallInfo();
-        }
+            String providerLabel, boolean isConference, boolean isVideoCall, boolean isFullscreen) {
 
         if (show) {
+            mHasSecondaryCallInfo = true;
             boolean hasProvider = !TextUtils.isEmpty(providerLabel);
-            showAndInitializeSecondaryCallInfo(hasProvider);
+            initializeSecondaryCallInfo(hasProvider);
+
+            // Do not show the secondary caller info in fullscreen mode, but ensure it is populated
+            // in case fullscreen mode is exited in the future.
+            setSecondaryInfoVisible(!isFullscreen);
 
             mSecondaryCallConferenceCallIcon.setVisibility(isConference ? View.VISIBLE : View.GONE);
             mSecondaryCallVideoCallIcon.setVisibility(isVideoCall ? View.VISIBLE : View.GONE);
 
             mSecondaryCallName.setText(nameIsNumber
-                    ? PhoneNumberUtils.createTtsSpannable(name)
+                    ? PhoneNumberUtilsCompat.createTtsSpannable(name)
                     : name);
             if (hasProvider) {
                 mSecondaryCallProviderLabel.setText(providerLabel);
@@ -533,10 +613,92 @@
             }
             mSecondaryCallName.setTextDirection(nameDirection);
         } else {
-            mSecondaryCallInfo.setVisibility(View.GONE);
+            mHasSecondaryCallInfo = false;
+            setSecondaryInfoVisible(false);
         }
     }
 
+    /**
+     * Sets the visibility of the secondary caller info box.  Note, if the {@code visible} parameter
+     * is passed in {@code true}, and there is no secondary caller info populated (as determined by
+     * {@code mHasSecondaryCallInfo}, the secondary caller info box will not be shown.
+     *
+     * @param visible {@code true} if the secondary caller info should be shown, {@code false}
+     *      otherwise.
+     */
+    @Override
+    public void setSecondaryInfoVisible(final boolean visible) {
+        boolean wasVisible = mSecondaryCallInfo.isShown();
+        final boolean isVisible = visible && mHasSecondaryCallInfo;
+        Log.v(this, "setSecondaryInfoVisible: wasVisible = " + wasVisible + " isVisible = "
+                + isVisible);
+
+        // If visibility didn't change, nothing to do.
+        if (wasVisible == isVisible) {
+            return;
+        }
+
+        // If we are showing the secondary info, we need to show it before animating so that its
+        // height will be determined on layout.
+        if (isVisible) {
+            mSecondaryCallInfo.setVisibility(View.VISIBLE);
+        }
+
+        updateFabPositionForSecondaryCallInfo();
+        // We need to translate the secondary caller info, but we need to know its position after
+        // the layout has occurred so use a {@code ViewTreeObserver}.
+        final ViewTreeObserver observer = getView().getViewTreeObserver();
+
+        observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
+            @Override
+            public boolean onPreDraw() {
+                // We don't want to continue getting called.
+                getView().getViewTreeObserver().removeOnPreDrawListener(this);
+
+                // Get the height of the secondary call info now, and then re-hide the view prior
+                // to doing the actual animation.
+                int secondaryHeight = mSecondaryCallInfo.getHeight();
+                if (isVisible) {
+                    mSecondaryCallInfo.setVisibility(View.GONE);
+                }
+                Log.v(this, "setSecondaryInfoVisible: secondaryHeight = " + secondaryHeight);
+
+                // Set the position of the secondary call info card to its starting location.
+                mSecondaryCallInfo.setTranslationY(visible ? secondaryHeight : 0);
+
+                // Animate the secondary card info slide up/down as it appears and disappears.
+                ViewPropertyAnimator secondaryInfoAnimator = mSecondaryCallInfo.animate()
+                        .setInterpolator(AnimUtils.EASE_OUT_EASE_IN)
+                        .setDuration(mVideoAnimationDuration)
+                        .translationY(isVisible ? 0 : secondaryHeight)
+                        .setListener(new AnimatorListenerAdapter() {
+                            @Override
+                            public void onAnimationEnd(Animator animation) {
+                                if (!isVisible) {
+                                    mSecondaryCallInfo.setVisibility(View.GONE);
+                                }
+                            }
+
+                            @Override
+                            public void onAnimationStart(Animator animation) {
+                                if (isVisible) {
+                                    mSecondaryCallInfo.setVisibility(View.VISIBLE);
+                                }
+                            }
+                        });
+                secondaryInfoAnimator.start();
+
+                // Notify listeners of a change in the visibility of the secondary info. This is
+                // important when in a video call so that the video call presenter can shift the
+                // video preview up or down to accommodate the secondary caller info.
+                InCallPresenter.getInstance().notifySecondaryCallerInfoVisibilityChanged(visible,
+                        secondaryHeight);
+
+                return true;
+            }
+        });
+    }
+
     @Override
     public void setCallState(
             int state,
@@ -558,6 +720,12 @@
         Log.v(this, "DisconnectCause " + disconnectCause.toString());
         Log.v(this, "gateway " + connectionLabel + gatewayNumber);
 
+        // Check for video state change and update the visibility of the contact photo.  The contact
+        // photo is hidden when the incoming video surface is shown.
+        // The contact photo visibility can also change in setPrimary().
+        boolean showContactPhoto = !VideoCallPresenter.showIncomingVideo(videoState, state);
+        mPhotoLarge.setVisibility(showContactPhoto ? View.VISIBLE : View.GONE);
+
         // Check if the call subject is showing -- if it is, we want to bypass showing the call
         // state.
         boolean isSubjectShowing = mCallSubject.getVisibility() == View.VISIBLE;
@@ -616,7 +784,7 @@
             mCallStateIcon.setVisibility(View.GONE);
         }
 
-        if (CallUtils.isVideoCall(videoState)
+        if (VideoUtils.isVideoCall(videoState)
                 || (state == Call.State.ACTIVE && sessionModificationState
                         == Call.SessionModificationState.WAITING_FOR_RESPONSE)) {
             mCallStateVideoCallIcon.setVisibility(View.VISIBLE);
@@ -743,28 +911,84 @@
         }
     }
 
-    private void setDrawableToImageView(ImageView view, Drawable photo) {
+    /**
+     * Set all the ImageViews to the same photo. Currently there are 2 photo views: the large one
+     * (which fills about the bottom half of the screen) and the small one, which displays as a
+     * circle next to the primary contact info. This method does not handle whether the ImageView
+     * is shown or not.
+     *
+     * @param photo The photo to set for the image views.
+     */
+    private void setDrawableToImageViews(Drawable photo) {
         if (photo == null) {
-            photo = ContactInfoCache.getInstance(
-                    view.getContext()).getDefaultContactPhotoDrawable();
+            photo = ContactInfoCache.getInstance(getView().getContext())
+                            .getDefaultContactPhotoDrawable();
         }
 
-        if (mPrimaryPhotoDrawable == photo) {
+        if (mPrimaryPhotoDrawable == photo){
             return;
         }
         mPrimaryPhotoDrawable = photo;
 
-        final Drawable current = view.getDrawable();
-        if (current == null) {
-            view.setImageDrawable(photo);
-            AnimUtils.fadeIn(mElapsedTime, AnimUtils.DEFAULT_DURATION);
-        } else {
-            // Cross fading is buggy and not noticable due to the multiple calls to this method
-            // that switch drawables in the middle of the cross-fade animations. Just set the
-            // photo directly instead.
-            view.setImageDrawable(photo);
-            view.setVisibility(View.VISIBLE);
+        mPhotoLarge.setImageDrawable(photo);
+
+        // Modify the drawable to be round for the smaller ImageView.
+        Bitmap bitmap = drawableToBitmap(photo);
+        if (bitmap != null) {
+            final RoundedBitmapDrawable drawable =
+                    RoundedBitmapDrawableFactory.create(getResources(), bitmap);
+            drawable.setAntiAlias(true);
+            drawable.setCornerRadius(bitmap.getHeight() / 2);
+            photo = drawable;
         }
+        mPhotoSmall.setImageDrawable(photo);
+    }
+
+    /**
+     * Helper method for image view to handle animations.
+     *
+     * @param view The image view to show or hide.
+     * @param isVisible {@code true} if we want to show the image, {@code false} to hide it.
+     */
+    private void showImageView(ImageView view, boolean isVisible) {
+        if (view.getDrawable() == null) {
+            if (isVisible) {
+                AnimUtils.fadeIn(mElapsedTime, AnimUtils.DEFAULT_DURATION);
+            }
+        } else {
+            // Cross fading is buggy and not noticeable due to the multiple calls to this method
+            // that switch drawables in the middle of the cross-fade animations. Just show the
+            // photo directly instead.
+            view.setVisibility(isVisible ? View.VISIBLE : View.GONE);
+        }
+    }
+
+    /**
+     * Converts a drawable into a bitmap.
+     *
+     * @param drawable the drawable to be converted.
+     */
+    public static Bitmap drawableToBitmap(Drawable drawable) {
+        Bitmap bitmap;
+        if (drawable instanceof BitmapDrawable) {
+            bitmap = ((BitmapDrawable) drawable).getBitmap();
+        } else {
+            if (drawable.getIntrinsicWidth() <= 0 || drawable.getIntrinsicHeight() <= 0) {
+                // Needed for drawables that are just a colour.
+                bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
+            } else {
+                bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
+                        drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
+            }
+
+            Log.i(TAG, "Created bitmap with width " + bitmap.getWidth() + ", height "
+                    + bitmap.getHeight());
+
+            Canvas canvas = new Canvas(bitmap);
+            drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
+            drawable.draw(canvas);
+        }
+        return bitmap;
     }
 
     /**
@@ -812,7 +1036,7 @@
                 } else if (sessionModificationState
                         == Call.SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
                     callStateLabel = context.getString(R.string.card_title_video_call_requesting);
-                } else if (CallUtils.isVideoCall(videoState)) {
+                } else if (VideoUtils.isVideoCall(videoState)) {
                     callStateLabel = context.getString(R.string.card_title_video_call);
                 }
                 break;
@@ -836,8 +1060,7 @@
                     callStateLabel = label;
                 } else if (isAccount) {
                     callStateLabel = context.getString(R.string.incoming_via_template, label);
-                } else if (VideoProfile.isTransmissionEnabled(videoState) ||
-                        VideoProfile.isReceptionEnabled(videoState)) {
+                } else if (VideoUtils.isVideoCall(videoState)) {
                     callStateLabel = context.getString(R.string.notification_incoming_video_call);
                 } else {
                     callStateLabel = context.getString(R.string.card_title_incoming_call);
@@ -867,9 +1090,7 @@
         return new CallStateLabel(callStateLabel, isAutoDismissing);
     }
 
-    private void showAndInitializeSecondaryCallInfo(boolean hasProvider) {
-        mSecondaryCallInfo.setVisibility(View.VISIBLE);
-
+    private void initializeSecondaryCallInfo(boolean hasProvider) {
         // mSecondaryCallName is initialized here (vs. onViewCreated) because it is inaccessible
         // until mSecondaryCallInfo is inflated in the call above.
         if (mSecondaryCallName == null) {
@@ -1013,6 +1234,8 @@
         }
         mCallButtonsContainer.setBackgroundColor(themeColors.mPrimaryColor);
         mCallSubject.setTextColor(themeColors.mPrimaryColor);
+        mContactContext.setBackgroundColor(themeColors.mPrimaryColor);
+        //TODO: set color of message text in call context "recent messages" to be the theme color.
 
         mCurrentThemeColors = themeColors;
     }
@@ -1108,8 +1331,7 @@
         }
 
         mFloatingActionButtonController.align(
-                mIsLandscape ? FloatingActionButtonController.ALIGN_QUARTER_END
-                        : FloatingActionButtonController.ALIGN_MIDDLE,
+                FloatingActionButtonController.ALIGN_MIDDLE,
                 0 /* offsetX */,
                 offsetY,
                 true);
@@ -1119,6 +1341,11 @@
     }
 
     @Override
+    public Context getContext() {
+        return getActivity();
+    }
+
+    @Override
     public void onResume() {
         super.onResume();
         // If the previous launch animation is still running, cancel it so that we don't get
diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java
index 7833340..0b17e1a 100644
--- a/InCallUI/src/com/android/incallui/CallCardPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java
@@ -16,9 +16,9 @@
 
 package com.android.incallui;
 
+import com.google.common.base.Preconditions;
+
 import android.Manifest;
-import android.app.Activity;
-import android.app.FragmentManager;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
@@ -35,8 +35,14 @@
 import android.telecom.VideoProfile;
 import android.telephony.PhoneNumberUtils;
 import android.text.TextUtils;
+import android.view.View;
 import android.view.accessibility.AccessibilityManager;
+import android.widget.ListAdapter;
 
+import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.contacts.common.util.ContactDisplayUtils;
+import com.android.incallui.Call.State;
 import com.android.incallui.ContactInfoCache.ContactCacheEntry;
 import com.android.incallui.ContactInfoCache.ContactInfoCacheCallback;
 import com.android.incallui.InCallPresenter.InCallDetailsListener;
@@ -44,12 +50,11 @@
 import com.android.incallui.InCallPresenter.InCallState;
 import com.android.incallui.InCallPresenter.InCallStateListener;
 import com.android.incallui.InCallPresenter.IncomingCallListener;
+import com.android.incallui.compat.telecom.DetailsCompat;
 import com.android.incalluibind.ObjectFactory;
 
 import java.lang.ref.WeakReference;
 
-import com.google.common.base.Preconditions;
-
 /**
  * Presenter for the Call Card Fragment.
  * <p>
@@ -57,7 +62,7 @@
  */
 public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
         implements InCallStateListener, IncomingCallListener, InCallDetailsListener,
-        InCallEventListener, CallList.CallUpdateListener {
+        InCallEventListener, CallList.CallUpdateListener, DistanceHelper.Listener {
 
     public interface EmergencyCallListener {
         public void onCallUpdated(BaseFragment fragment, boolean isEmergency);
@@ -68,6 +73,7 @@
 
     private final EmergencyCallListener mEmergencyCallListener =
             ObjectFactory.newEmergencyCallListener();
+    private DistanceHelper mDistanceHelper;
 
     private Call mPrimary;
     private Call mSecondary;
@@ -75,8 +81,11 @@
     private ContactCacheEntry mSecondaryContactInfo;
     private CallTimer mCallTimer;
     private Context mContext;
+    private ContactsPreferences mContactsPreferences;
     private boolean mSpinnerShowing = false;
     private boolean mHasShownToast = false;
+    private InCallContactInteractions mInCallContactInteractions;
+    private boolean mIsFullscreen = false;
 
     public static class ContactLookupCallback implements ContactInfoCacheCallback {
         private final WeakReference<CallCardPresenter> mCallCardPresenter;
@@ -103,6 +112,13 @@
             }
         }
 
+        @Override
+        public void onContactInteractionsInfoComplete(String callId, ContactCacheEntry entry) {
+            CallCardPresenter presenter = mCallCardPresenter.get();
+            if (presenter != null) {
+                presenter.onContactInteractionsInfoComplete(callId, entry);
+            }
+        }
     }
 
     public CallCardPresenter() {
@@ -117,6 +133,8 @@
 
     public void init(Context context, Call call) {
         mContext = Preconditions.checkNotNull(context);
+        mDistanceHelper = ObjectFactory.newDistanceHelper(mContext, this);
+        mContactsPreferences = new ContactsPreferences(mContext);
 
         // Call may be null if disconnect happened already.
         if (call != null) {
@@ -144,6 +162,10 @@
     public void onUiReady(CallCardUi ui) {
         super.onUiReady(ui);
 
+        if (mContactsPreferences != null) {
+            mContactsPreferences.refreshValue(ContactsPreferences.DISPLAY_ORDER_KEY);
+        }
+
         // Contact search may have completed before ui is ready.
         if (mPrimaryContactInfo != null) {
             updatePrimaryDisplayInfo();
@@ -169,6 +191,10 @@
             CallList.getInstance().removeCallUpdateListener(mPrimary.getId(), this);
         }
 
+        if (mDistanceHelper != null) {
+            mDistanceHelper.cleanUp();
+        }
+
         mPrimary = null;
         mPrimaryContactInfo = null;
         mSecondaryContactInfo = null;
@@ -207,6 +233,11 @@
             secondary = getCallToDisplay(callList, primary, true);
         }
 
+        if (mInCallContactInteractions != null &&
+                (oldState == InCallState.INCOMING || newState == InCallState.INCOMING)) {
+            ui.showContactContext(newState != InCallState.INCOMING);
+        }
+
         Log.d(this, "Primary call: " + primary);
         Log.d(this, "Secondary call: " + secondary);
 
@@ -303,7 +334,7 @@
         updatePrimaryCallState();
 
         if (call.can(Details.CAPABILITY_MANAGE_CONFERENCE) !=
-                Details.can(details.getCallCapabilities(), Details.CAPABILITY_MANAGE_CONFERENCE)) {
+                DetailsCompat.can(details, Details.CAPABILITY_MANAGE_CONFERENCE)) {
             maybeShowManageConferenceCallButton();
         }
     }
@@ -367,7 +398,7 @@
         PhoneAccountHandle accountHandle = mPrimary.getAccountHandle();
         if (accountHandle != null) {
             TelecomManager mgr = InCallPresenter.getInstance().getTelecomManager();
-            PhoneAccount account = mgr.getPhoneAccount(accountHandle);
+            PhoneAccount account = TelecomManagerCompat.getPhoneAccount(mgr, accountHandle);
             if (account != null) {
                 return getNumberFromHandle(account.getSubscriptionAddress());
             }
@@ -455,7 +486,7 @@
         if (mPrimary.isEmergencyCall() || showCallbackNumber) {
             callbackNumber = getSubscriptionNumber();
         } else {
-            StatusHints statusHints = mPrimary.getTelecommCall().getDetails().getStatusHints();
+            StatusHints statusHints = mPrimary.getTelecomCall().getDetails().getStatusHints();
             if (statusHints != null) {
                 Bundle extras = statusHints.getExtras();
                 if (extras != null) {
@@ -464,8 +495,10 @@
             }
         }
 
-        TelecomManager mgr = InCallPresenter.getInstance().getTelecomManager();
-        String simNumber = mgr.getLine1Number(mPrimary.getAccountHandle());
+        final String simNumber = TelecomManagerCompat.getLine1Number(
+                InCallPresenter.getInstance().getTelecomManager(),
+                InCallPresenter.getInstance().getTelephonyManager(),
+                mPrimary.getAccountHandle());
         if (!showCallbackNumber && PhoneNumberUtils.compare(callbackNumber, simNumber)) {
             Log.d(this, "Numbers are the same (and callback number is not being forced to show);" +
                     " not showing the callback number");
@@ -535,8 +568,9 @@
             Log.w(this, "Dropping stale contact lookup info for " + callId);
         }
 
-        if (entry.name != null) {
-            Log.d(TAG, "Contact found: " + entry);
+        final Call call = CallList.getInstance().getCallById(callId);
+        if (call != null) {
+            call.getLogState().contactLookupResult = entry.contactLookupResult;
         }
         if (entry.contactUri != null) {
             CallerInfoUtils.sendViewNotification(mContext, entry.contactUri);
@@ -550,11 +584,72 @@
 
         if (entry.photo != null) {
             if (mPrimary != null && callId.equals(mPrimary.getId())) {
-                getUi().setPrimaryImage(entry.photo);
+                boolean showContactPhoto = !VideoCallPresenter.showIncomingVideo(
+                        mPrimary.getVideoState(), mPrimary.getState());
+                getUi().setPrimaryImage(entry.photo, showContactPhoto);
             }
         }
     }
 
+    private void onContactInteractionsInfoComplete(String callId, ContactCacheEntry entry) {
+        if (getUi() == null) {
+            return;
+        }
+
+        if (mPrimary != null && callId.equals(mPrimary.getId())) {
+            mPrimaryContactInfo.locationAddress = entry.locationAddress;
+            updateContactInteractions();
+        }
+    }
+
+    @Override
+    public void onLocationReady() {
+        // This will only update the contacts interactions data if the location returns after
+        // the contact information is found.
+        updateContactInteractions();
+    }
+
+    private void updateContactInteractions() {
+        if (mPrimary != null && mPrimaryContactInfo != null
+                && (mPrimaryContactInfo.locationAddress != null
+                        || mPrimaryContactInfo.openingHours != null)) {
+            // TODO: This is hardcoded to "isBusiness" because functionality to differentiate
+            // between business and personal has not yet been added.
+            if (setInCallContactInteractionsType(true /* isBusiness */)) {
+                getUi().setContactContextTitle(
+                        mInCallContactInteractions.getBusinessListHeaderView());
+            }
+
+            mInCallContactInteractions.setBusinessInfo(
+                    mPrimaryContactInfo.locationAddress,
+                    mDistanceHelper.calculateDistance(mPrimaryContactInfo.locationAddress),
+                    mPrimaryContactInfo.openingHours);
+            getUi().setContactContextContent(mInCallContactInteractions.getListAdapter());
+            getUi().showContactContext(mPrimary.getState() != State.INCOMING);
+        } else {
+            getUi().showContactContext(false);
+        }
+    }
+
+    /**
+     * Update the contact interactions type so that the correct UI is shown.
+     *
+     * @param isBusiness {@code true} if the interaction is a business interaction, {@code false} if
+     * it is a personal contact.
+     *
+     * @return {@code true} if this is a new type of contact interaction (business or personal).
+     * {@code false} if it hasn't changed.
+     */
+    private boolean setInCallContactInteractionsType(boolean isBusiness) {
+        if (mInCallContactInteractions == null) {
+            mInCallContactInteractions =
+                    new InCallContactInteractions(mContext, isBusiness);
+            return true;
+        }
+
+        return mInCallContactInteractions.switchContactType(isBusiness);
+    }
+
     private void updateContactEntry(ContactCacheEntry entry, boolean isPrimary) {
         if (isPrimary) {
             mPrimaryContactInfo = entry;
@@ -574,7 +669,6 @@
      * @param ignore A call to ignore if found.
      */
     private Call getCallToDisplay(CallList callList, Call ignore, boolean skipDisconnected) {
-
         // Active calls come second.  An active call always gets precedent.
         Call retval = callList.getActiveCall();
         if (retval != null && retval != ignore) {
@@ -618,10 +712,15 @@
 
         if (mPrimary == null) {
             // Clear the primary display info.
-            ui.setPrimary(null, null, false, null, null, false);
+            ui.setPrimary(null, null, false, null, null, false, false);
             return;
         }
 
+        // Hide the contact photo if we are in a video call and the incoming video surface is
+        // showing.
+        boolean showContactPhoto = !VideoCallPresenter
+                .showIncomingVideo(mPrimary.getVideoState(), mPrimary.getState());
+
         if (mPrimary.isConferenceCall()) {
             Log.d(TAG, "Update primary display info for conference call.");
 
@@ -631,7 +730,8 @@
                     false /* nameIsNumber */,
                     null /* label */,
                     getConferencePhoto(mPrimary),
-                    false /* isSipCall */);
+                    false /* isSipCall */,
+                    showContactPhoto);
         } else if (mPrimaryContactInfo != null) {
             Log.d(TAG, "Update primary display info for " + mPrimaryContactInfo);
 
@@ -669,10 +769,13 @@
                     nameIsNumber,
                     isChildNumberShown || isCallSubjectShown ? null : mPrimaryContactInfo.label,
                     mPrimaryContactInfo.photo,
-                    mPrimaryContactInfo.isSipCall);
+                    mPrimaryContactInfo.isSipCall,
+                    showContactPhoto);
+
+            updateContactInteractions();
         } else {
             // Clear the primary display info.
-            ui.setPrimary(null, null, false, null, null, false);
+            ui.setPrimary(null, null, false, null, null, false, false);
         }
 
         if (mEmergencyCallListener != null) {
@@ -690,7 +793,7 @@
         if (mSecondary == null) {
             // Clear the secondary display info.
             ui.setSecondary(false, null, false, null, null, false /* isConference */,
-                    false /* isVideoCall */);
+                    false /* isVideoCall */, mIsFullscreen);
             return;
         }
 
@@ -702,7 +805,8 @@
                     null /* label */,
                     getCallProviderLabel(mSecondary),
                     true /* isConference */,
-                    mSecondary.isVideoCall(mContext));
+                    mSecondary.isVideoCall(mContext),
+                    mIsFullscreen);
         } else if (mSecondaryContactInfo != null) {
             Log.d(TAG, "updateSecondaryDisplayInfo() " + mSecondaryContactInfo);
             String name = getNameForCall(mSecondaryContactInfo);
@@ -714,11 +818,12 @@
                     mSecondaryContactInfo.label,
                     getCallProviderLabel(mSecondary),
                     false /* isConference */,
-                    mSecondary.isVideoCall(mContext));
+                    mSecondary.isVideoCall(mContext),
+                    mIsFullscreen);
         } else {
             // Clear the secondary display info.
             ui.setSecondary(false, null, false, null, null, false /* isConference */,
-                    false /* isVideoCall */);
+                    false /* isVideoCall */, mIsFullscreen);
         }
     }
 
@@ -731,7 +836,9 @@
         if (accountHandle == null) {
             return null;
         }
-        return InCallPresenter.getInstance().getTelecomManager().getPhoneAccount(accountHandle);
+        return TelecomManagerCompat.getPhoneAccount(
+                InCallPresenter.getInstance().getTelecomManager(),
+                accountHandle);
     }
 
     /**
@@ -751,7 +858,7 @@
         PhoneAccount account = getAccountForCall(call);
         TelecomManager mgr = InCallPresenter.getInstance().getTelecomManager();
         if (account != null && !TextUtils.isEmpty(account.getLabel())
-                && mgr.getCallCapablePhoneAccounts().size() > 1) {
+                && TelecomManagerCompat.getCallCapablePhoneAccounts(mgr).size() > 1) {
             return account.getLabel().toString();
         }
         return null;
@@ -762,7 +869,7 @@
      * For example, "calling via [Account/Google Voice]" for outgoing calls.
      */
     private String getConnectionLabel() {
-        StatusHints statusHints = mPrimary.getTelecommCall().getDetails().getStatusHints();
+        StatusHints statusHints = mPrimary.getTelecomCall().getDetails().getStatusHints();
         if (statusHints != null && !TextUtils.isEmpty(statusHints.getLabel())) {
             return statusHints.getLabel().toString();
         }
@@ -784,7 +891,7 @@
 
     private Drawable getCallStateIcon() {
         // Return connection icon if one exists.
-        StatusHints statusHints = mPrimary.getTelecommCall().getDetails().getStatusHints();
+        StatusHints statusHints = mPrimary.getTelecomCall().getDetails().getStatusHints();
         if (statusHints != null && statusHints.getIcon() != null) {
             Drawable icon = statusHints.getIcon().loadDrawable(mContext);
             if (icon != null) {
@@ -811,20 +918,27 @@
     /**
      * Gets the name to display for the call.
      */
-    private static String getNameForCall(ContactCacheEntry contactInfo) {
-        if (TextUtils.isEmpty(contactInfo.name)) {
+    private String getNameForCall(ContactCacheEntry contactInfo) {
+        String preferredName = ContactDisplayUtils.getPreferredDisplayName(
+                contactInfo.namePrimary,
+                contactInfo.nameAlternative,
+                mContactsPreferences.getDisplayOrder());
+        if (TextUtils.isEmpty(preferredName)) {
             return contactInfo.number;
         }
-        return contactInfo.name;
+        return preferredName;
     }
 
     /**
      * Gets the number to display for a call.
      */
-    private static String getNumberForCall(ContactCacheEntry contactInfo) {
+    private String getNumberForCall(ContactCacheEntry contactInfo) {
         // If the name is empty, we use the number for the name...so dont show a second
         // number in the number field
-        if (TextUtils.isEmpty(contactInfo.name)) {
+        if (TextUtils.isEmpty(ContactDisplayUtils.getPreferredDisplayName(
+                contactInfo.namePrimary,
+                contactInfo.nameAlternative,
+                mContactsPreferences.getDisplayOrder()))) {
             return contactInfo.location;
         }
         return contactInfo.number;
@@ -863,11 +977,18 @@
      */
     @Override
     public void onFullscreenModeChanged(boolean isFullscreenMode) {
+        mIsFullscreen = isFullscreenMode;
         final CallCardUi ui = getUi();
         if (ui == null) {
             return;
         }
         ui.setCallCardVisible(!isFullscreenMode);
+        ui.setSecondaryInfoVisible(!isFullscreenMode);
+    }
+
+    @Override
+    public void onSecondaryCallerInfoVisibilityChanged(boolean isVisible, int height) {
+        // No-op - the Call Card is the origin of this event.
     }
 
     private boolean isPrimaryCallActive() {
@@ -954,26 +1075,34 @@
      * @return {@code true} if the toast should be shown, {@code false} otherwise.
      */
     private boolean shouldShowNoteSentToast(Call call) {
-        return call != null && !TextUtils
-                .isEmpty(call.getTelecommCall().getDetails().getIntentExtras().getString(
-                        TelecomManager.EXTRA_CALL_SUBJECT)) &&
-                (call.getState() == Call.State.DIALING || call.getState() == Call.State.CONNECTING);
+        return call != null && hasCallSubject(call) && (call.getState() == Call.State.DIALING
+                || call.getState() == Call.State.CONNECTING);
+    }
+
+    private static boolean hasCallSubject(Call call) {
+        return !TextUtils.isEmpty(DetailsCompat.getIntentExtras(
+                call.getTelecomCall().getDetails()).getString(TelecomManager.EXTRA_CALL_SUBJECT));
     }
 
     public interface CallCardUi extends Ui {
         void setVisible(boolean on);
+        void setContactContextTitle(View listHeaderView);
+        void setContactContextContent(ListAdapter listAdapter);
+        void showContactContext(boolean show);
         void setCallCardVisible(boolean visible);
         void setPrimary(String number, String name, boolean nameIsNumber, String label,
-                Drawable photo, boolean isSipCall);
+                Drawable photo, boolean isSipCall, boolean isContactPhotoShown);
         void setSecondary(boolean show, String name, boolean nameIsNumber, String label,
-                String providerLabel, boolean isConference, boolean isVideoCall);
+                String providerLabel, boolean isConference, boolean isVideoCall,
+                boolean isFullscreen);
+        void setSecondaryInfoVisible(boolean visible);
         void setCallState(int state, int videoState, int sessionModificationState,
                 DisconnectCause disconnectCause, String connectionLabel,
                 Drawable connectionIcon, String gatewayNumber, boolean isWifi,
                 boolean isConference);
         void setPrimaryCallElapsedTime(boolean show, long duration);
         void setPrimaryName(String name, boolean nameIsNumber);
-        void setPrimaryImage(Drawable image);
+        void setPrimaryImage(Drawable image, boolean isVisible);
         void setPrimaryPhoneNumber(String phoneNumber);
         void setPrimaryLabel(String label);
         void setEndCallButtonEnabled(boolean enabled, boolean animate);
diff --git a/InCallUI/src/com/android/incallui/CallList.java b/InCallUI/src/com/android/incallui/CallList.java
index 11b5914..99def36 100644
--- a/InCallUI/src/com/android/incallui/CallList.java
+++ b/InCallUI/src/com/android/incallui/CallList.java
@@ -23,6 +23,10 @@
 import android.telecom.PhoneAccount;
 
 import com.android.contacts.common.testing.NeededForTesting;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.logging.Logger;
+import com.android.incallui.util.TelecomCallUtil;
+
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Maps;
 
@@ -33,6 +37,7 @@
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * Maintains the list of active calls and notifies interested classes of changes to the call list
@@ -46,11 +51,12 @@
     private static final int DISCONNECTED_CALL_LONG_TIMEOUT_MS = 5000;
 
     private static final int EVENT_DISCONNECTED_TIMEOUT = 1;
+    private static final long BLOCK_QUERY_TIMEOUT_MS = 1000;
 
     private static CallList sInstance = new CallList();
 
     private final HashMap<String, Call> mCallById = new HashMap<>();
-    private final HashMap<android.telecom.Call, Call> mCallByTelecommCall = new HashMap<>();
+    private final HashMap<android.telecom.Call, Call> mCallByTelecomCall = new HashMap<>();
     private final HashMap<String, List<String>> mCallTextReponsesMap = Maps.newHashMap();
     /**
      * ConcurrentHashMap constructor params: 8 is initial table size, 0.9f is
@@ -63,6 +69,7 @@
             .newHashMap();
     private final Set<Call> mPendingDisconnectCalls = Collections.newSetFromMap(
             new ConcurrentHashMap<Call, Boolean>(8, 0.9f, 1));
+    private FilteredNumberAsyncQueryHandler mFilteredQueryHandler;
 
     /**
      * Static singleton accessor method.
@@ -79,22 +86,26 @@
     CallList() {
     }
 
-    public void onCallAdded(android.telecom.Call telecommCall) {
+    public void onCallAdded(final android.telecom.Call telecomCall) {
         Trace.beginSection("onCallAdded");
-        Call call = new Call(telecommCall);
+        final Call call = new Call(telecomCall);
         Log.d(this, "onCallAdded: callState=" + call.getState());
+
         if (call.getState() == Call.State.INCOMING ||
                 call.getState() == Call.State.CALL_WAITING) {
             onIncoming(call, call.getCannedSmsResponses());
         } else {
             onUpdate(call);
         }
+
+        call.logCallInitiationType();
         Trace.endSection();
     }
 
-    public void onCallRemoved(android.telecom.Call telecommCall) {
-        if (mCallByTelecommCall.containsKey(telecommCall)) {
-            Call call = mCallByTelecommCall.get(telecommCall);
+    public void onCallRemoved(android.telecom.Call telecomCall) {
+        if (mCallByTelecomCall.containsKey(telecomCall)) {
+            Call call = mCallByTelecomCall.get(telecomCall);
+            Logger.logCall(call);
             if (updateCallInMap(call)) {
                 Log.w(this, "Removing call not previously disconnected " + call.getId());
             }
@@ -367,8 +378,8 @@
         return mCallById.get(callId);
     }
 
-    public Call getCallByTelecommCall(android.telecom.Call telecommCall) {
-        return mCallByTelecommCall.get(telecommCall);
+    public Call getCallByTelecomCall(android.telecom.Call telecomCall) {
+        return mCallByTelecomCall.get(telecomCall);
     }
 
     public List<String> getTextResponses(String callId) {
@@ -488,16 +499,16 @@
                 mPendingDisconnectCalls.add(call);
 
                 mCallById.put(call.getId(), call);
-                mCallByTelecommCall.put(call.getTelecommCall(), call);
+                mCallByTelecomCall.put(call.getTelecomCall(), call);
                 updated = true;
             }
         } else if (!isCallDead(call)) {
             mCallById.put(call.getId(), call);
-            mCallByTelecommCall.put(call.getTelecommCall(), call);
+            mCallByTelecomCall.put(call.getTelecomCall(), call);
             updated = true;
         } else if (mCallById.containsKey(call.getId())) {
             mCallById.remove(call.getId());
-            mCallByTelecommCall.remove(call.getTelecommCall());
+            mCallByTelecomCall.remove(call.getTelecomCall());
             updated = true;
         }
 
@@ -568,12 +579,15 @@
      */
     public void notifyCallsOfDeviceRotation(int rotation) {
         for (Call call : mCallById.values()) {
-            // First, ensure a VideoCall is set on the call so that the change can be sent to the
+            // First, ensure that the call videoState has video enabled (there is no need to set
+            // device orientation on a voice call which has not yet been upgraded to video).
+            // Second, ensure a VideoCall is set on the call so that the change can be sent to the
             // provider (a VideoCall can be present for a call that does not currently have video,
             // but can be upgraded to video).
-            // Second, ensure that the call videoState has video enabled (there is no need to set
-            // device orientation on a voice call which has not yet been upgraded to video).
-            if (call.getVideoCall() != null && CallUtils.isVideoCall(call)) {
+
+            // NOTE: is it necessary to use this order because getVideoCall references the class
+            // VideoProfile which is not available on APIs <23 (M).
+            if (VideoUtils.isVideoCall(call) && call.getVideoCall() != null) {
                 call.getVideoCall().setDeviceOrientation(rotation);
             }
         }
@@ -597,6 +611,10 @@
         }
     };
 
+    public void setFilteredNumberQueryHandler(FilteredNumberAsyncQueryHandler handler) {
+        mFilteredQueryHandler = handler;
+    }
+
     /**
      * Listener interface for any class that wants to be notified of changes
      * to the call list.
diff --git a/InCallUI/src/com/android/incallui/CallUtils.java b/InCallUI/src/com/android/incallui/CallUtils.java
deleted file mode 100644
index c69334c..0000000
--- a/InCallUI/src/com/android/incallui/CallUtils.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (c) 2014, The Linux Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- *       copyright notice, this list of conditions and the following
- *       disclaimer in the documentation and/or other materials provided
- *       with the distribution.
- *     * Neither the name of The Linux Foundation nor the names of its
- *       contributors may be used to endorse or promote products derived
- *       from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
- * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package com.android.incallui;
-
-import android.telecom.VideoProfile;
-
-import com.google.common.base.Preconditions;
-
-public class CallUtils {
-
-    public static boolean isVideoCall(Call call) {
-        return call != null && isVideoCall(call.getVideoState());
-    }
-
-    public static boolean isVideoCall(int videoState) {
-        return VideoProfile.isTransmissionEnabled(videoState)
-                || VideoProfile.isReceptionEnabled(videoState);
-    }
-
-    public static boolean isIncomingVideoCall(Call call) {
-        if (!CallUtils.isVideoCall(call)) {
-            return false;
-        }
-        final int state = call.getState();
-        return (state == Call.State.INCOMING) || (state == Call.State.CALL_WAITING);
-    }
-
-    public static boolean isActiveVideoCall(Call call) {
-        return CallUtils.isVideoCall(call) && call.getState() == Call.State.ACTIVE;
-    }
-
-    public static boolean isOutgoingVideoCall(Call call) {
-        if (!CallUtils.isVideoCall(call)) {
-            return false;
-        }
-        final int state = call.getState();
-        return Call.State.isDialing(state) || state == Call.State.CONNECTING
-                || state == Call.State.SELECT_PHONE_ACCOUNT;
-    }
-
-    public static boolean isAudioCall(Call call) {
-        return call != null && VideoProfile.isAudioOnly(call.getVideoState());
-    }
-
-    // TODO (ims-vt) Check if special handling is needed for CONF calls.
-    public static boolean canVideoPause(Call call) {
-        return isVideoCall(call) && call.getState() == Call.State.ACTIVE;
-    }
-
-    public static VideoProfile makeVideoPauseProfile(Call call) {
-        Preconditions.checkNotNull(call);
-        Preconditions.checkState(!VideoProfile.isAudioOnly(call.getVideoState()));
-        return new VideoProfile(getPausedVideoState(call.getVideoState()));
-    }
-
-    public static VideoProfile makeVideoUnPauseProfile(Call call) {
-        Preconditions.checkNotNull(call);
-        return new VideoProfile(getUnPausedVideoState(call.getVideoState()));
-    }
-
-    public static int getUnPausedVideoState(int videoState) {
-        return videoState & (~VideoProfile.STATE_PAUSED);
-    }
-
-    public static int getPausedVideoState(int videoState) {
-        return videoState | VideoProfile.STATE_PAUSED;
-    }
-
-}
diff --git a/InCallUI/src/com/android/incallui/CallerInfo.java b/InCallUI/src/com/android/incallui/CallerInfo.java
index 2f0fc83..4ea4970 100644
--- a/InCallUI/src/com/android/incallui/CallerInfo.java
+++ b/InCallUI/src/com/android/incallui/CallerInfo.java
@@ -16,8 +16,6 @@
 
 package com.android.incallui;
 
-import com.android.contacts.common.util.PhoneNumberHelper;
-import com.android.contacts.common.util.TelephonyManagerUtils;
 import android.content.Context;
 import android.database.Cursor;
 import android.graphics.Bitmap;
@@ -31,21 +29,29 @@
 import android.telephony.PhoneNumberUtils;
 import android.text.TextUtils;
 
-import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;
-import com.google.i18n.phonenumbers.NumberParseException;
-import com.google.i18n.phonenumbers.PhoneNumberUtil;
-import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
-
-import java.util.Locale;
+import com.android.contacts.common.util.PhoneNumberHelper;
+import com.android.contacts.common.util.TelephonyManagerUtils;
+import com.android.dialer.calllog.ContactInfoHelper;
 
 /**
  * Looks up caller information for the given phone number.
- *
- * {@hide}
  */
 public class CallerInfo {
     private static final String TAG = "CallerInfo";
 
+    public static final String[] DEFAULT_PHONELOOKUP_PROJECTION = new String[] {
+            PhoneLookup._ID,
+            PhoneLookup.DISPLAY_NAME,
+            PhoneLookup.LOOKUP_KEY,
+            PhoneLookup.NUMBER,
+            PhoneLookup.NORMALIZED_NUMBER,
+            PhoneLookup.LABEL,
+            PhoneLookup.TYPE,
+            PhoneLookup.PHOTO_URI,
+            PhoneLookup.CUSTOM_RINGTONE,
+            PhoneLookup.SEND_TO_VOICEMAIL
+    };
+
     /**
      * Please note that, any one of these member variables can be null,
      * and any accesses to them should be prepared to handle such a case.
@@ -74,6 +80,7 @@
      * for a connection, but the number should be displayable.
      */
     public String name;
+    public String nameAlternative;
     public String phoneNumber;
     public String normalizedNumber;
     public String forwardingNumber;
@@ -190,6 +197,12 @@
                     info.name = cursor.getString(columnIndex);
                 }
 
+                columnIndex = cursor.getColumnIndex(PhoneLookup.LOOKUP_KEY);
+                if (columnIndex != -1) {
+                    info.nameAlternative = ContactInfoHelper.lookUpDisplayNameAlternative(
+                            context, cursor.getString(columnIndex));
+                }
+
                 // Look for the number
                 columnIndex = cursor.getColumnIndex(PhoneLookup.NUMBER);
                 if (columnIndex != -1) {
@@ -249,7 +262,12 @@
                 // in the database.
                 columnIndex = cursor.getColumnIndex(PhoneLookup.CUSTOM_RINGTONE);
                 if ((columnIndex != -1) && (cursor.getString(columnIndex) != null)) {
-                    info.contactRingtoneUri = Uri.parse(cursor.getString(columnIndex));
+                    if (TextUtils.isEmpty(cursor.getString(columnIndex))) {
+                        // make it consistent with frameworks/base/.../CallerInfo.java
+                        info.contactRingtoneUri = Uri.EMPTY;
+                    } else {
+                        info.contactRingtoneUri = Uri.parse(cursor.getString(columnIndex));
+                    }
                 } else {
                     info.contactRingtoneUri = null;
                 }
@@ -469,43 +487,7 @@
      */
     public void updateGeoDescription(Context context, String fallbackNumber) {
         String number = TextUtils.isEmpty(phoneNumber) ? fallbackNumber : phoneNumber;
-        geoDescription = getGeoDescription(context, number);
-    }
-
-    /**
-     * @return a geographical description string for the specified number.
-     * @see com.android.i18n.phonenumbers.PhoneNumberOfflineGeocoder
-     */
-    private static String getGeoDescription(Context context, String number) {
-        Log.v(TAG, "getGeoDescription('" + number + "')...");
-
-        if (TextUtils.isEmpty(number)) {
-            return null;
-        }
-
-        PhoneNumberUtil util = PhoneNumberUtil.getInstance();
-        PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance();
-
-        Locale locale = context.getResources().getConfiguration().locale;
-        String countryIso = TelephonyManagerUtils.getCurrentCountryIso(context, locale);
-        PhoneNumber pn = null;
-        try {
-            Log.v(TAG, "parsing '" + number
-                    + "' for countryIso '" + countryIso + "'...");
-            pn = util.parse(number, countryIso);
-            Log.v(TAG, "- parsed number: " + pn);
-        } catch (NumberParseException e) {
-            Log.v(TAG, "getGeoDescription: NumberParseException for incoming number '" +
-                    number + "'");
-        }
-
-        if (pn != null) {
-            String description = geocoder.getDescriptionForNumber(pn, locale);
-            Log.v(TAG, "- got description: '" + description + "'");
-            return description;
-        }
-
-        return null;
+        geoDescription = com.android.dialer.util.PhoneNumberUtil.getGeoDescription(context, number);
     }
 
     /**
diff --git a/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java b/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java
index bd766d6..8d45efb 100644
--- a/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java
+++ b/InCallUI/src/com/android/incallui/CallerInfoAsyncQuery.java
@@ -16,22 +16,32 @@
 
 package com.android.incallui;
 
+import com.google.common.primitives.Longs;
+
 import android.content.AsyncQueryHandler;
+import android.content.ContentResolver;
 import android.content.Context;
 import android.database.Cursor;
 import android.database.SQLException;
 import android.net.Uri;
+import android.os.Build;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
 import android.provider.ContactsContract;
-import android.provider.ContactsContract.PhoneLookup;
+import android.provider.ContactsContract.Directory;
 import android.telephony.PhoneNumberUtils;
 import android.text.TextUtils;
 
-import com.android.contacts.common.util.PhoneNumberHelper;
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.compat.DirectoryCompat;
 import com.android.contacts.common.util.TelephonyManagerUtils;
+import com.android.dialer.calllog.ContactInfoHelper;
+import com.android.dialer.service.CachedNumberLookupService;
+import com.android.dialer.service.CachedNumberLookupService.CachedContactInfo;
+import com.android.dialerbind.ObjectFactory;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Locale;
 
@@ -80,7 +90,6 @@
         public String number;
     }
 
-
     /**
      * Simple exception used to communicate problems with the query pool.
      */
@@ -157,7 +166,6 @@
 
                     super.handleMessage(msg);
                 } else {
-
                     Log.d(this, "Processing event: " + cw.event + " token (arg1): " + msg.arg1 +
                             " command: " + msg.what + " query URI: " +
                             sanitizeUriToString(args.uri));
@@ -288,7 +296,7 @@
 
                         // Use the number entered by the user for display.
                         if (!TextUtils.isEmpty(cw.number)) {
-                            mCallerInfo.phoneNumber = PhoneNumberHelper.formatNumber(cw.number,
+                            mCallerInfo.phoneNumber = PhoneNumberUtils.formatNumber(cw.number,
                                     mCallerInfo.normalizedNumber,
                                     TelephonyManagerUtils.getCurrentCountryIso(mQueryContext,
                                             Locale.getDefault()));
@@ -324,6 +332,37 @@
     private CallerInfoAsyncQuery() {
     }
 
+    public static void startQuery(final int token, final Context context, final CallerInfo info,
+            final OnQueryCompleteListener listener, final Object cookie) {
+        Log.d(LOG_TAG, "##### CallerInfoAsyncQuery startContactProviderQuery()... #####");
+        Log.d(LOG_TAG, "- number: " + info.phoneNumber);
+        Log.d(LOG_TAG, "- cookie: " + cookie);
+        OnQueryCompleteListener contactsProviderQueryCompleteListener =
+                new OnQueryCompleteListener() {
+                    @Override
+                    public void onQueryComplete(int token, Object cookie, CallerInfo ci) {
+                        Log.d(LOG_TAG, "contactsProviderQueryCompleteListener done");
+                        if (ci != null && ci.contactExists) {
+                            if (listener != null) {
+                                listener.onQueryComplete(token, cookie, ci);
+                            }
+                        } else {
+                            startOtherDirectoriesQuery(token, context, info, listener, cookie);
+                        }
+                    }
+                };
+        startDefaultDirectoryQuery(token, context, info, contactsProviderQueryCompleteListener,
+                cookie);
+    }
+
+    // Private methods
+    private static CallerInfoAsyncQuery startDefaultDirectoryQuery(int token, Context context,
+            CallerInfo info, OnQueryCompleteListener listener, Object cookie) {
+        // Construct the URI object and query params, and start the query.
+        Uri uri = ContactInfoHelper.getContactInfoLookupUri(info.phoneNumber);
+        return startQueryInternal(token, context, info, listener, cookie, uri);
+    }
+
     /**
      * Factory method to start the query based on a CallerInfo object.
      *
@@ -335,20 +374,8 @@
      * PhoneUtils.startGetCallerInfo() decide which one to call based on
      * the phone type of the incoming connection.
      */
-    public static CallerInfoAsyncQuery startQuery(int token, Context context, CallerInfo info,
-            OnQueryCompleteListener listener, Object cookie) {
-        Log.d(LOG_TAG, "##### CallerInfoAsyncQuery startQuery()... #####");
-        Log.d(LOG_TAG, "- number: " + info.phoneNumber);
-        Log.d(LOG_TAG, "- cookie: " + cookie);
-
-        // Construct the URI object and query params, and start the query.
-
-        final Uri contactRef = PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI.buildUpon()
-                .appendPath(info.phoneNumber)
-                .appendQueryParameter(PhoneLookup.QUERY_PARAMETER_SIP_ADDRESS,
-                        String.valueOf(PhoneNumberHelper.isUriNumber(info.phoneNumber)))
-                .build();
-
+    private static CallerInfoAsyncQuery startQueryInternal(int token, Context context,
+            CallerInfo info, OnQueryCompleteListener listener, Object cookie, Uri contactRef) {
         if (DBG) {
             Log.d(LOG_TAG, "==> contactRef: " + sanitizeUriToString(contactRef));
         }
@@ -374,13 +401,131 @@
         c.mHandler.startQuery(token,
                               cw,  // cookie
                               contactRef,  // uri
-                              null,  // projection
+                              CallerInfo.DEFAULT_PHONELOOKUP_PROJECTION,  // projection
                               null,  // selection
                               null,  // selectionArgs
                               null);  // orderBy
         return c;
     }
 
+    private static void startOtherDirectoriesQuery(int token, Context context, CallerInfo info,
+            OnQueryCompleteListener listener, Object cookie) {
+        long[] directoryIds = getDirectoryIds(context);
+        int size = directoryIds.length;
+        if (size == 0) {
+            if (listener != null) {
+                listener.onQueryComplete(token, cookie, info);
+            }
+            return;
+        }
+
+        DirectoryQueryCompleteListenerFactory listenerFactory =
+                new DirectoryQueryCompleteListenerFactory(context, size, listener);
+
+        // The current implementation of multiple async query runs in single handler thread
+        // in AsyncQueryHandler.
+        // intermediateListener.onQueryComplete is also called from the same caller thread.
+        // TODO(b/26019872): use thread pool instead of single thread.
+        for (int i = 0; i < size; i++) {
+            long directoryId = directoryIds[i];
+            Uri uri = ContactInfoHelper.getContactInfoLookupUri(info.phoneNumber, directoryId);
+            if (DBG) {
+                Log.d(LOG_TAG, "directoryId: " + directoryId + " uri: " + uri);
+            }
+            OnQueryCompleteListener intermediateListener =
+                    listenerFactory.newListener(directoryId);
+            startQueryInternal(token, context, info, intermediateListener, cookie, uri);
+        }
+    }
+
+    /* Directory lookup related code - START */
+    private static final String[] DIRECTORY_PROJECTION = new String[] {Directory._ID};
+
+    private static long[] getDirectoryIds(Context context) {
+        ArrayList<Long> results = new ArrayList<>();
+
+        Uri uri = Directory.CONTENT_URI;
+        if (ContactsUtils.FLAG_N_FEATURE) {
+            uri = Uri.withAppendedPath(ContactsContract.AUTHORITY_URI, "directories_enterprise");
+        }
+
+        ContentResolver cr = context.getContentResolver();
+        Cursor cursor = cr.query(uri, DIRECTORY_PROJECTION, null, null, null);
+        addDirectoryIdsFromCursor(cursor, results);
+
+        return Longs.toArray(results);
+    }
+
+    private static void addDirectoryIdsFromCursor(Cursor cursor, ArrayList<Long> results) {
+        if (cursor != null) {
+            int idIndex = cursor.getColumnIndex(Directory._ID);
+            while (cursor.moveToNext()) {
+                long id = cursor.getLong(idIndex);
+                if (DirectoryCompat.isRemoteDirectory(id)) {
+                    results.add(id);
+                }
+            }
+            cursor.close();
+        }
+    }
+
+    private static final class DirectoryQueryCompleteListenerFactory {
+        // Make sure listener to be called once and only once
+        int mCount;
+        boolean mIsListenerCalled;
+        OnQueryCompleteListener mListener;
+        Context mContext;
+        CachedNumberLookupService mCachedNumberLookupService =
+                ObjectFactory.newCachedNumberLookupService();
+
+        private class DirectoryQueryCompleteListener implements OnQueryCompleteListener {
+            long mDirectoryId;
+
+            DirectoryQueryCompleteListener(long directoryId) {
+                mDirectoryId = directoryId;
+            }
+
+            @Override
+            public void onQueryComplete(int token, Object cookie, CallerInfo ci) {
+                if (ci.contactExists && mCachedNumberLookupService != null) {
+                    CachedContactInfo cachedContactInfo =
+                            CallerInfoUtils.buildCachedContactInfo(mCachedNumberLookupService, ci);
+                    String directoryLabel = mContext.getString(R.string.directory_search_label);
+                    cachedContactInfo.setDirectorySource(directoryLabel, mDirectoryId);
+                    mCachedNumberLookupService.addContact(mContext, cachedContactInfo);
+                }
+
+                callListenerIfNecessary(token, cookie, ci);
+            }
+        }
+
+        DirectoryQueryCompleteListenerFactory(Context context, int size, OnQueryCompleteListener listener)  {
+            mCount = size;
+            mListener = listener;
+            mIsListenerCalled = false;
+            mContext = context;
+        }
+
+        private void callListenerIfNecessary(int token, Object cookie, CallerInfo ci) {
+            boolean shouldCallListener = false;
+            synchronized (this) {
+                mCount = mCount - 1;
+                if (!mIsListenerCalled && (ci.contactExists || mCount == 0)) {
+                    mIsListenerCalled = true;
+                    shouldCallListener = true;
+                }
+            }
+            if (shouldCallListener && mListener != null) {
+                mListener.onQueryComplete(token, cookie, ci);
+            }
+        }
+
+        public OnQueryCompleteListener newListener(long directoryId) {
+            return new DirectoryQueryCompleteListener(directoryId);
+        }
+    }
+    /* Directory lookup related code - END */
+
     /**
      * Method to create a new CallerInfoAsyncQueryHandler object, ensuring correct
      * state of context and uri.
diff --git a/InCallUI/src/com/android/incallui/CallerInfoUtils.java b/InCallUI/src/com/android/incallui/CallerInfoUtils.java
index 681f273..31fc9f1 100644
--- a/InCallUI/src/com/android/incallui/CallerInfoUtils.java
+++ b/InCallUI/src/com/android/incallui/CallerInfoUtils.java
@@ -9,8 +9,12 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
 import com.android.contacts.common.model.Contact;
 import com.android.contacts.common.model.ContactLoader;
+import com.android.dialer.calllog.ContactInfo;
+import com.android.dialer.service.CachedNumberLookupService;
+import com.android.dialer.service.CachedNumberLookupService.CachedContactInfo;
 
 import java.util.Arrays;
 
@@ -87,11 +91,35 @@
         return info;
     }
 
+    /**
+     * Creates a new {@link CachedContactInfo} from a {@link CallerInfo}
+     *
+     * @param lookupService the {@link CachedNumberLookupService} used to build a
+     *        new {@link CachedContactInfo}
+     * @param {@link CallerInfo} object
+     * @return a CachedContactInfo object created from this CallerInfo
+     * @throws NullPointerException if lookupService or ci are null
+     */
+    public static CachedContactInfo buildCachedContactInfo(CachedNumberLookupService lookupService,
+            CallerInfo ci) {
+        ContactInfo info = new ContactInfo();
+        info.name = ci.name;
+        info.type = ci.numberType;
+        info.label = ci.phoneLabel;
+        info.number = ci.phoneNumber;
+        info.normalizedNumber = ci.normalizedNumber;
+        info.photoUri = ci.contactDisplayPhotoUri;
+
+        CachedContactInfo cacheInfo = lookupService.buildCachedContactInfo(info);
+        cacheInfo.setLookupKey(ci.lookupKeyOrNull);
+        return cacheInfo;
+    }
+
     public static boolean isVoiceMailNumber(Context context, Call call) {
-         TelecomManager telecomManager =
-                 (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
-         return telecomManager.isVoiceMailNumber(
-                 call.getTelecommCall().getDetails().getAccountHandle(), call.getNumber());
+         return TelecomManagerCompat.isVoiceMailNumber(
+                 (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE),
+                 call.getTelecomCall().getDetails().getAccountHandle(),
+                 call.getNumber());
     }
 
     /**
diff --git a/InCallUI/src/com/android/incallui/CircularRevealFragment.java b/InCallUI/src/com/android/incallui/CircularRevealFragment.java
index f8cc424..f4a2e91 100644
--- a/InCallUI/src/com/android/incallui/CircularRevealFragment.java
+++ b/InCallUI/src/com/android/incallui/CircularRevealFragment.java
@@ -127,16 +127,18 @@
                     vto.removeOnPreDrawListener(this);
                 }
                 final Animator animator = getRevealAnimator(mTouchPoint);
-                animator.addListener(new AnimatorListenerAdapter() {
-                    @Override
-                    public void onAnimationEnd(Animator animation) {
-                        view.setClipToOutline(false);
-                        if (mListener != null) {
-                            mListener.onCircularRevealComplete(getFragmentManager());
+                if (animator != null) {
+                    animator.addListener(new AnimatorListenerAdapter() {
+                        @Override
+                        public void onAnimationEnd(Animator animation) {
+                            view.setClipToOutline(false);
+                            if (mListener != null) {
+                                mListener.onCircularRevealComplete(getFragmentManager());
+                            }
                         }
-                    }
-                });
-                animator.start();
+                    });
+                    animator.start();
+                }
                 return false;
             }
         });
@@ -144,6 +146,9 @@
 
     private Animator getRevealAnimator(Point touchPoint) {
         final Activity activity = getActivity();
+        if (activity == null) {
+            return null;
+        }
         final View view  = activity.getWindow().getDecorView();
         final Display display = activity.getWindowManager().getDefaultDisplay();
         final Point size = new Point();
diff --git a/InCallUI/src/com/android/incallui/ConferenceParticipantListAdapter.java b/InCallUI/src/com/android/incallui/ConferenceParticipantListAdapter.java
index 7ddeada..79c5fae 100644
--- a/InCallUI/src/com/android/incallui/ConferenceParticipantListAdapter.java
+++ b/InCallUI/src/com/android/incallui/ConferenceParticipantListAdapter.java
@@ -16,9 +16,10 @@
 
 package com.android.incallui;
 
+import com.google.common.base.MoreObjects;
+
 import android.content.Context;
 import android.net.Uri;
-import android.telephony.PhoneNumberUtils;
 import android.text.BidiFormatter;
 import android.text.TextDirectionHeuristics;
 import android.text.TextUtils;
@@ -32,7 +33,11 @@
 
 import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.incallui.ContactInfoCache.ContactCacheEntry;
+import com.android.incallui.compat.telecom.DetailsCompat;
 
 import java.lang.ref.WeakReference;
 import java.util.ArrayList;
@@ -137,6 +142,9 @@
             update(callId, entry);
         }
 
+        @Override
+        public void onContactInteractionsInfoComplete(String callId, ContactCacheEntry entry) {}
+
         /**
          * Updates the contact information for a participant.
          *
@@ -196,6 +204,11 @@
     private final Context mContext;
 
     /**
+     * ContactsPreferences used to lookup displayName preferences
+     */
+    private final ContactsPreferences mContactsPreferences;
+
+    /**
      * The layout inflater used to inflate new views.
      */
     private final LayoutInflater mLayoutInflater;
@@ -223,6 +236,7 @@
 
         mListView = listView;
         mContext = context;
+        mContactsPreferences = new ContactsPreferences(mContext);
         mLayoutInflater = layoutInflater;
         mContactPhotoManager = contactPhotoManager;
     }
@@ -235,6 +249,8 @@
      *                                      conference.
      */
     public void updateParticipants(List<Call> conferenceParticipants, boolean parentCanSeparate) {
+        mContactsPreferences.refreshValue(ContactsPreferences.DISPLAY_ORDER_KEY);
+        mContactsPreferences.refreshValue(ContactsPreferences.SORT_ORDER_KEY);
         mParentCanSeparate = parentCanSeparate;
         updateParticipantInfo(conferenceParticipants);
     }
@@ -337,12 +353,16 @@
                     new ContactLookupCallback(this));
         }
 
-        boolean thisRowCanSeparate = mParentCanSeparate && call.getTelecommCall().getDetails().can(
+        boolean thisRowCanSeparate = mParentCanSeparate && DetailsCompat.can(
+                call.getTelecomCall().getDetails(),
                 android.telecom.Call.Details.CAPABILITY_SEPARATE_FROM_CONFERENCE);
-        boolean thisRowCanDisconnect = call.getTelecommCall().getDetails().can(
+        boolean thisRowCanDisconnect = DetailsCompat.can(call.getTelecomCall().getDetails(),
                 android.telecom.Call.Details.CAPABILITY_DISCONNECT_FROM_CONFERENCE);
 
-        setCallerInfoForRow(result, contactCache.name, contactCache.number, contactCache.label,
+        setCallerInfoForRow(result, contactCache.namePrimary,
+                ContactDisplayUtils.getPreferredDisplayName(contactCache.namePrimary,
+                        contactCache.nameAlternative, mContactsPreferences.getDisplayOrder()),
+                contactCache.number, contactCache.label,
                 contactCache.lookupKey, contactCache.displayPhotoUri, thisRowCanSeparate,
                 thisRowCanDisconnect);
 
@@ -380,9 +400,9 @@
      * @param thisRowCanSeparate {@code True} if this participant can separate from the conference.
      * @param thisRowCanDisconnect {@code True} if this participant can be disconnected.
      */
-    private final void setCallerInfoForRow(View view, String callerName, String callerNumber,
-            String callerNumberType, String lookupKey, Uri photoUri, boolean thisRowCanSeparate,
-            boolean thisRowCanDisconnect) {
+    private final void setCallerInfoForRow(View view, String callerName, String preferredName,
+            String callerNumber, String callerNumberType, String lookupKey, Uri photoUri,
+            boolean thisRowCanSeparate, boolean thisRowCanDisconnect) {
 
         final ImageView photoView = (ImageView) view.findViewById(R.id.callerPhoto);
         final TextView nameTextView = (TextView) view.findViewById(R.id.conferenceCallerName);
@@ -412,7 +432,7 @@
         mContactPhotoManager.loadDirectoryPhoto(photoView, photoUri, false, true, imageRequest);
 
         // set the caller name
-        nameTextView.setText(callerName);
+        nameTextView.setText(preferredName);
 
         // set the caller number in subscript, or make the field disappear.
         if (TextUtils.isEmpty(callerNumber)) {
@@ -420,7 +440,7 @@
             numberTypeTextView.setVisibility(View.GONE);
         } else {
             numberTextView.setVisibility(View.VISIBLE);
-            numberTextView.setText(PhoneNumberUtils.createTtsSpannable(
+            numberTextView.setText(PhoneNumberUtilsCompat.createTtsSpannable(
                     BidiFormatter.getInstance().unicodeWrap(
                             callerNumber, TextDirectionHeuristics.LTR)));
             numberTypeTextView.setVisibility(View.VISIBLE);
@@ -488,15 +508,21 @@
         Collections.sort(mConferenceParticipants, new Comparator<ParticipantInfo>() {
             public int compare(ParticipantInfo p1, ParticipantInfo p2) {
                 // Contact names might be null, so replace with empty string.
-                String p1Name = p1.getContactCacheEntry().name;
-                if (p1Name == null) {
-                    p1Name = "";
-                }
+                ContactCacheEntry c1 = p1.getContactCacheEntry();
+                String p1Name = MoreObjects.firstNonNull(
+                        ContactDisplayUtils.getPreferredSortName(
+                                c1.namePrimary,
+                                c1.nameAlternative,
+                                mContactsPreferences.getSortOrder()),
+                        "");
 
-                String p2Name = p2.getContactCacheEntry().name;
-                if (p2Name == null) {
-                    p2Name = "";
-                }
+                ContactCacheEntry c2 = p2.getContactCacheEntry();
+                String p2Name = MoreObjects.firstNonNull(
+                        ContactDisplayUtils.getPreferredSortName(
+                                c2.namePrimary,
+                                c2.nameAlternative,
+                                mContactsPreferences.getSortOrder()),
+                        "");
 
                 return p1Name.compareToIgnoreCase(p2Name);
             }
diff --git a/InCallUI/src/com/android/incallui/ContactInfoCache.java b/InCallUI/src/com/android/incallui/ContactInfoCache.java
index 0206e0a..9894f55 100644
--- a/InCallUI/src/com/android/incallui/ContactInfoCache.java
+++ b/InCallUI/src/com/android/incallui/ContactInfoCache.java
@@ -16,37 +16,42 @@
 
 package com.android.incallui;
 
+import com.google.common.base.MoreObjects;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
+
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
+import android.location.Address;
 import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Looper;
 import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.DisplayNameSources;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.telecom.TelecomManager;
 import android.text.TextUtils;
+import android.util.Pair;
 
 import com.android.contacts.common.util.PhoneNumberHelper;
 import com.android.dialer.calllog.ContactInfo;
 import com.android.dialer.service.CachedNumberLookupService;
 import com.android.dialer.service.CachedNumberLookupService.CachedContactInfo;
+import com.android.dialer.util.MoreStrings;
+import com.android.incallui.Call.LogState;
 import com.android.incallui.service.PhoneNumberService;
 import com.android.incalluibind.ObjectFactory;
-import com.android.services.telephony.common.MoreStrings;
 
 import org.json.JSONException;
 import org.json.JSONObject;
 
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import com.google.common.base.Objects;
-import com.google.common.base.Preconditions;
-
+import java.util.Calendar;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Set;
 
 /**
@@ -70,6 +75,7 @@
 
     private Drawable mDefaultContactPhotoDrawable;
     private Drawable mConferencePhotoDrawable;
+    private ContactUtils mContactUtils;
 
     public static synchronized ContactInfoCache getInstance(Context mContext) {
         if (sCache == null) {
@@ -83,6 +89,8 @@
         mPhoneNumberService = ObjectFactory.newPhoneNumberService(context);
         mCachedNumberLookupService =
                 com.android.dialerbind.ObjectFactory.newCachedNumberLookupService();
+        mContactUtils = ObjectFactory.getContactUtilsInstance(context);
+
     }
 
     public ContactCacheEntry getInfo(String callId) {
@@ -212,7 +220,7 @@
         ContactCacheEntry cacheEntry = mInfoMap.get(callId);
         // Ensure we always have a cacheEntry. Replace the existing entry if
         // it has no name or if we found a local contact.
-        if (cacheEntry == null || TextUtils.isEmpty(cacheEntry.name) ||
+        if (cacheEntry == null || TextUtils.isEmpty(cacheEntry.namePrimary) ||
                 callerInfo.contactExists) {
             cacheEntry = buildEntry(mContext, callId, callerInfo, presentationMode, isIncoming);
             mInfoMap.put(callId, cacheEntry);
@@ -233,6 +241,7 @@
                 Log.d(TAG, "Contact lookup. Local contact found, starting image load");
                 // Load the image with a callback to update the image state.
                 // When the load is finished, onImageLoadComplete() will be called.
+                cacheEntry.isLoadingPhoto = true;
                 ContactsAsyncHelper.startObtainPhotoAsync(TOKEN_UPDATE_PHOTO_FOR_CALL_STATE,
                         mContext, cacheEntry.displayPhotoUri, ContactInfoCache.this, callId);
             } else {
@@ -248,7 +257,7 @@
     }
 
     class PhoneNumberServiceListener implements PhoneNumberService.NumberLookupListener,
-                                     PhoneNumberService.ImageLookupListener {
+                                     PhoneNumberService.ImageLookupListener, ContactUtils.Listener {
         private final String mCallId;
 
         PhoneNumberServiceListener(String callId) {
@@ -267,8 +276,9 @@
             }
 
             ContactCacheEntry entry = new ContactCacheEntry();
-            entry.name = info.getDisplayName();
+            entry.namePrimary = info.getDisplayName();
             entry.number = info.getNumber();
+            entry.contactLookupResult = info.getLookupSource();
             final int type = info.getPhoneType();
             final String label = info.getPhoneLabel();
             if (type == Phone.TYPE_CUSTOM) {
@@ -293,12 +303,21 @@
                 entry.photo = mContext.getResources().getDrawable(R.drawable.img_business);
             }
 
-            // Add the contact info to the cache.
             mInfoMap.put(mCallId, entry);
             sendInfoNotifications(mCallId, entry);
 
-            // If there is no image then we should not expect another callback.
-            if (info.getImageUrl() == null) {
+            if (mContactUtils != null) {
+                // This method will callback "onContactInteractionsFound".
+                entry.isLoadingContactInteractions =
+                        mContactUtils.retrieveContactInteractionsFromLookupKey(
+                                info.getLookupKey(), this);
+            }
+
+            entry.isLoadingPhoto = info.getImageUrl() != null;
+
+            // If there is no image or contact interactions then we should not expect another
+            // callback.
+            if (!entry.isLoadingPhoto && !entry.isLoadingContactInteractions) {
                 // We're done, so clear callbacks
                 clearCallbacks(mCallId);
             }
@@ -308,6 +327,29 @@
         public void onImageFetchComplete(Bitmap bitmap) {
             onImageLoadComplete(TOKEN_UPDATE_PHOTO_FOR_CALL_STATE, null, bitmap, mCallId);
         }
+
+        @Override
+        public void onContactInteractionsFound(Address address,
+                List<Pair<Calendar, Calendar>> openingHours) {
+            final ContactCacheEntry entry = mInfoMap.get(mCallId);
+            if (entry == null) {
+                Log.e(this, "Contact context received for empty search entry.");
+                clearCallbacks(mCallId);
+                return;
+            }
+
+            entry.isLoadingContactInteractions = false;
+
+            Log.v(ContactInfoCache.this, "Setting contact interactions for entry: ", entry);
+
+            entry.locationAddress = address;
+            entry.openingHours = openingHours;
+            sendContactInteractionsNotifications(mCallId, entry);
+
+            if (!entry.isLoadingPhoto) {
+                clearCallbacks(mCallId);
+            }
+        }
     }
 
     /**
@@ -328,6 +370,9 @@
             clearCallbacks(callId);
             return;
         }
+
+        entry.isLoadingPhoto = false;
+
         Log.d(this, "setting photo for entry: ", entry);
 
         // Conference call icons are being handled in CallCardPresenter.
@@ -343,7 +388,10 @@
         }
 
         sendImageNotifications(callId, entry);
-        clearCallbacks(callId);
+
+        if (!entry.isLoadingContactInteractions) {
+            clearCallbacks(callId);
+        }
     }
 
     /**
@@ -489,7 +537,10 @@
                     Log.d(TAG, "  ==> valid name, but presentation not allowed!" +
                             " displayName = " + displayName);
                 } else {
+                    // Causes cce.namePrimary to be set as info.name below. CallCardPresenter will
+                    // later determine whether to use the name or nameAlternative when presenting
                     displayName = info.name;
+                    cce.nameAlternative = info.nameAlternative;
                     displayNumber = number;
                     label = info.phoneLabel;
                     Log.d(TAG, "  ==>  name is present in CallerInfo: displayName '" + displayName
@@ -497,11 +548,15 @@
                 }
             }
 
-        cce.name = displayName;
+        cce.namePrimary = displayName;
         cce.number = displayNumber;
         cce.location = displayLocation;
         cce.label = label;
         cce.isSipCall = isSipCall;
+
+        if (info.contactExists) {
+            cce.contactLookupResult = LogState.LOOKUP_LOCAL_CONTACT;
+        }
     }
 
     /**
@@ -525,6 +580,15 @@
         }
     }
 
+    private void sendContactInteractionsNotifications(String callId, ContactCacheEntry entry) {
+        final Set<ContactInfoCacheCallback> callBacks = mCallBacks.get(callId);
+        if (callBacks != null) {
+            for (ContactInfoCacheCallback callBack : callBacks) {
+                callBack.onContactInteractionsInfoComplete(callId, entry);
+            }
+        }
+    }
+
     private void clearCallbacks(String callId) {
         mCallBacks.remove(callId);
     }
@@ -572,26 +636,36 @@
     public interface ContactInfoCacheCallback {
         public void onContactInfoComplete(String callId, ContactCacheEntry entry);
         public void onImageLoadComplete(String callId, ContactCacheEntry entry);
+        public void onContactInteractionsInfoComplete(String callId, ContactCacheEntry entry);
     }
 
     public static class ContactCacheEntry {
-        public String name;
+        public String namePrimary;
+        public String nameAlternative;
         public String number;
         public String location;
         public String label;
         public Drawable photo;
         public boolean isSipCall;
+        // Note in cache entry whether this is a pending async loading action to know whether to
+        // wait for its callback or not.
+        public boolean isLoadingPhoto;
+        public boolean isLoadingContactInteractions;
         /** This will be used for the "view" notification. */
         public Uri contactUri;
         /** Either a display photo or a thumbnail URI. */
         public Uri displayPhotoUri;
         public Uri lookupUri; // Sent to NotificationMananger
         public String lookupKey;
+        public Address locationAddress;
+        public List<Pair<Calendar, Calendar>> openingHours;
+        public int contactLookupResult = LogState.LOOKUP_NOT_FOUND;
 
         @Override
         public String toString() {
-            return Objects.toStringHelper(this)
-                    .add("name", MoreStrings.toSafeString(name))
+            return MoreObjects.toStringHelper(this)
+                    .add("name", MoreStrings.toSafeString(namePrimary))
+                    .add("nameAlternative", MoreStrings.toSafeString(nameAlternative))
                     .add("number", MoreStrings.toSafeString(number))
                     .add("location", MoreStrings.toSafeString(location))
                     .add("label", label)
@@ -599,6 +673,9 @@
                     .add("isSipCall", isSipCall)
                     .add("contactUri", contactUri)
                     .add("displayPhotoUri", displayPhotoUri)
+                    .add("locationAddress", locationAddress)
+                    .add("openingHours", openingHours)
+                    .add("contactLookupResult", contactLookupResult)
                     .toString();
         }
     }
diff --git a/InCallUI/src/com/android/incallui/ContactUtils.java b/InCallUI/src/com/android/incallui/ContactUtils.java
new file mode 100644
index 0000000..0750af7
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/ContactUtils.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.incallui;
+
+import android.content.Context;
+import android.location.Address;
+import android.util.Pair;
+
+import com.android.incalluibind.ObjectFactory;
+
+import java.util.Calendar;
+import java.util.List;
+
+/**
+ * Utility functions to help manipulate contact data.
+ */
+public abstract class ContactUtils {
+    protected Context mContext;
+
+    public static ContactUtils getInstance(Context context) {
+        return ObjectFactory.getContactUtilsInstance(context);
+    }
+
+    protected ContactUtils(Context context) {
+        mContext = context;
+    }
+
+    public interface Listener {
+        public void onContactInteractionsFound(Address address,
+                List<Pair<Calendar, Calendar>> openingHours);
+    }
+
+    public abstract boolean retrieveContactInteractionsFromLookupKey(String lookupKey,
+            Listener listener);
+}
diff --git a/InCallUI/src/com/android/incallui/DialpadFragment.java b/InCallUI/src/com/android/incallui/DialpadFragment.java
index 371f5c5..ab44cf2 100644
--- a/InCallUI/src/com/android/incallui/DialpadFragment.java
+++ b/InCallUI/src/com/android/incallui/DialpadFragment.java
@@ -20,7 +20,6 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
-import android.telephony.PhoneNumberUtils;
 import android.text.Editable;
 import android.text.method.DialerKeyListener;
 import android.util.AttributeSet;
@@ -34,6 +33,7 @@
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
+import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
 import com.android.phone.common.dialpad.DialpadKeyButton;
 import com.android.phone.common.dialpad.DialpadView;
 
@@ -483,7 +483,7 @@
      * @param text Text to set Dialpad EditText to.
      */
     public void setDtmfText(String text) {
-        mDtmfDialerField.setText(PhoneNumberUtils.createTtsSpannable(text));
+        mDtmfDialerField.setText(PhoneNumberUtilsCompat.createTtsSpannable(text));
     }
 
     @Override
diff --git a/InCallUI/src/com/android/incallui/DialpadPresenter.java b/InCallUI/src/com/android/incallui/DialpadPresenter.java
index c4ee021..5e24bed 100644
--- a/InCallUI/src/com/android/incallui/DialpadPresenter.java
+++ b/InCallUI/src/com/android/incallui/DialpadPresenter.java
@@ -60,7 +60,7 @@
 
             // Append this key to the "digits" widget.
             getUi().appendDigitsToField(c);
-            // Plays the tone through Telecomm.
+            // Plays the tone through Telecom.
             TelecomAdapter.getInstance().playDtmfTone(mCall.getId(), c);
         } else {
             Log.d(this, "ignoring dtmf request for '" + c + "'");
diff --git a/InCallUI/src/com/android/incallui/DistanceHelper.java b/InCallUI/src/com/android/incallui/DistanceHelper.java
new file mode 100644
index 0000000..a4db5fe
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/DistanceHelper.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.incallui;
+
+import android.location.Address;
+
+/**
+ * Superclass for a helper class to get the current location and distance to other locations.
+ */
+public abstract class DistanceHelper {
+    public static final float DISTANCE_NOT_FOUND = -1;
+    public static final float MILES_PER_METER = (float) 0.000621371192;
+    public static final float KILOMETERS_PER_METER = (float) 0.001;
+
+    public interface Listener {
+        public void onLocationReady();
+    }
+
+    public void cleanUp() {}
+
+    public float calculateDistance(Address address) {
+        return DISTANCE_NOT_FOUND;
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/GlowPadAnswerFragment.java b/InCallUI/src/com/android/incallui/GlowPadAnswerFragment.java
new file mode 100644
index 0000000..62a8e78
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/GlowPadAnswerFragment.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.os.Bundle;
+import android.telecom.VideoProfile;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.dialer.R;
+
+public class GlowPadAnswerFragment extends AnswerFragment {
+
+    private GlowPadWrapper mGlowpad;
+
+    public GlowPadAnswerFragment() {
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        mGlowpad = (GlowPadWrapper) inflater.inflate(R.layout.answer_fragment,
+                container, false);
+
+        Log.d(this, "Creating view for answer fragment ", this);
+        Log.d(this, "Created from activity", getActivity());
+        mGlowpad.setAnswerFragment(this);
+
+        return mGlowpad;
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        mGlowpad.requestFocus();
+    }
+
+    @Override
+    public void onDestroyView() {
+        Log.d(this, "onDestroyView");
+        if (mGlowpad != null) {
+            mGlowpad.stopPing();
+            mGlowpad = null;
+        }
+        super.onDestroyView();
+    }
+
+    @Override
+    public void onShowAnswerUi(boolean shown) {
+        Log.d(this, "Show answer UI: " + shown);
+        if (shown) {
+            mGlowpad.startPing();
+        } else {
+            mGlowpad.stopPing();
+        }
+    }
+
+    /**
+     * Sets targets on the glowpad according to target set identified by the parameter.
+     *
+     * @param targetSet Integer identifying the set of targets to use.
+     */
+    public void showTargets(int targetSet) {
+        showTargets(targetSet, VideoProfile.STATE_BIDIRECTIONAL);
+    }
+
+    /**
+     * Sets targets on the glowpad according to target set identified by the parameter.
+     *
+     * @param targetSet Integer identifying the set of targets to use.
+     */
+    @Override
+    public void showTargets(int targetSet, int videoState) {
+        final int targetResourceId;
+        final int targetDescriptionsResourceId;
+        final int directionDescriptionsResourceId;
+        final int handleDrawableResourceId;
+        mGlowpad.setVideoState(videoState);
+
+        switch (targetSet) {
+            case TARGET_SET_FOR_AUDIO_WITH_SMS:
+                targetResourceId = R.array.incoming_call_widget_audio_with_sms_targets;
+                targetDescriptionsResourceId =
+                        R.array.incoming_call_widget_audio_with_sms_target_descriptions;
+                directionDescriptionsResourceId =
+                        R.array.incoming_call_widget_audio_with_sms_direction_descriptions;
+                handleDrawableResourceId = R.drawable.ic_incall_audio_handle;
+                break;
+            case TARGET_SET_FOR_VIDEO_WITHOUT_SMS:
+                targetResourceId = R.array.incoming_call_widget_video_without_sms_targets;
+                targetDescriptionsResourceId =
+                        R.array.incoming_call_widget_video_without_sms_target_descriptions;
+                directionDescriptionsResourceId =
+                        R.array.incoming_call_widget_video_without_sms_direction_descriptions;
+                handleDrawableResourceId = R.drawable.ic_incall_video_handle;
+                break;
+            case TARGET_SET_FOR_VIDEO_WITH_SMS:
+                targetResourceId = R.array.incoming_call_widget_video_with_sms_targets;
+                targetDescriptionsResourceId =
+                        R.array.incoming_call_widget_video_with_sms_target_descriptions;
+                directionDescriptionsResourceId =
+                        R.array.incoming_call_widget_video_with_sms_direction_descriptions;
+                handleDrawableResourceId = R.drawable.ic_incall_video_handle;
+                break;
+            case TARGET_SET_FOR_VIDEO_ACCEPT_REJECT_REQUEST:
+                targetResourceId =
+                        R.array.incoming_call_widget_video_request_targets;
+                targetDescriptionsResourceId =
+                        R.array.incoming_call_widget_video_request_target_descriptions;
+                directionDescriptionsResourceId = R.array
+                        .incoming_call_widget_video_request_target_direction_descriptions;
+                handleDrawableResourceId = R.drawable.ic_incall_video_handle;
+                break;
+            case TARGET_SET_FOR_AUDIO_WITHOUT_SMS:
+            default:
+                targetResourceId = R.array.incoming_call_widget_audio_without_sms_targets;
+                targetDescriptionsResourceId =
+                        R.array.incoming_call_widget_audio_without_sms_target_descriptions;
+                directionDescriptionsResourceId =
+                        R.array.incoming_call_widget_audio_without_sms_direction_descriptions;
+                handleDrawableResourceId = R.drawable.ic_incall_audio_handle;
+                break;
+        }
+
+        if (targetResourceId != mGlowpad.getTargetResourceId()) {
+            mGlowpad.setTargetResources(targetResourceId);
+            mGlowpad.setTargetDescriptionsResourceId(targetDescriptionsResourceId);
+            mGlowpad.setDirectionDescriptionsResourceId(directionDescriptionsResourceId);
+            mGlowpad.setHandleDrawable(handleDrawableResourceId);
+            mGlowpad.reset(false);
+        }
+    }
+
+    @Override
+    protected void onMessageDialogCancel() {
+        if (mGlowpad != null) {
+            mGlowpad.startPing();
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/GlowPadWrapper.java b/InCallUI/src/com/android/incallui/GlowPadWrapper.java
index ea5fc92..1bd6d39 100644
--- a/InCallUI/src/com/android/incallui/GlowPadWrapper.java
+++ b/InCallUI/src/com/android/incallui/GlowPadWrapper.java
@@ -46,7 +46,7 @@
         }
     };
 
-    private AnswerListener mAnswerListener;
+    private AnswerFragment mAnswerFragment;
     private boolean mPingEnabled = true;
     private boolean mTargetTriggered = false;
     private int mVideoState = VideoProfile.STATE_BIDIRECTIONAL;
@@ -113,24 +113,24 @@
         final int resId = getResourceIdForTarget(target);
         switch (resId) {
             case R.drawable.ic_lockscreen_answer:
-                mAnswerListener.onAnswer(VideoProfile.STATE_AUDIO_ONLY, getContext());
+                mAnswerFragment.onAnswer(VideoProfile.STATE_AUDIO_ONLY, getContext());
                 mTargetTriggered = true;
                 break;
             case R.drawable.ic_lockscreen_decline:
-                mAnswerListener.onDecline(getContext());
+                mAnswerFragment.onDecline(getContext());
                 mTargetTriggered = true;
                 break;
             case R.drawable.ic_lockscreen_text:
-                mAnswerListener.onText();
+                mAnswerFragment.onText();
                 mTargetTriggered = true;
                 break;
             case R.drawable.ic_videocam:
             case R.drawable.ic_lockscreen_answer_video:
-                mAnswerListener.onAnswer(mVideoState, getContext());
+                mAnswerFragment.onAnswer(mVideoState, getContext());
                 mTargetTriggered = true;
                 break;
             case R.drawable.ic_lockscreen_decline_video:
-                mAnswerListener.onDeclineUpgradeRequest(getContext());
+                mAnswerFragment.onDeclineUpgradeRequest(getContext());
                 mTargetTriggered = true;
                 break;
             default:
@@ -149,8 +149,8 @@
 
     }
 
-    public void setAnswerListener(AnswerListener listener) {
-        mAnswerListener = listener;
+    public void setAnswerFragment(AnswerFragment fragment) {
+        mAnswerFragment = fragment;
     }
 
     /**
@@ -161,11 +161,4 @@
     public void setVideoState(int videoState) {
         mVideoState = videoState;
     }
-
-    public interface AnswerListener {
-        void onAnswer(int videoState, Context context);
-        void onDecline(Context context);
-        void onDeclineUpgradeRequest(Context context);
-        void onText();
-    }
 }
diff --git a/InCallUI/src/com/android/incallui/InCallActivity.java b/InCallUI/src/com/android/incallui/InCallActivity.java
index c6892b2..dff2747 100644
--- a/InCallUI/src/com/android/incallui/InCallActivity.java
+++ b/InCallUI/src/com/android/incallui/InCallActivity.java
@@ -26,8 +26,8 @@
 import android.app.FragmentTransaction;
 import android.content.Context;
 import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
 import android.content.DialogInterface.OnCancelListener;
+import android.content.DialogInterface.OnClickListener;
 import android.content.Intent;
 import android.content.res.Configuration;
 import android.graphics.Point;
@@ -37,24 +37,31 @@
 import android.telecom.DisconnectCause;
 import android.telecom.PhoneAccountHandle;
 import android.text.TextUtils;
-import android.view.Display;
+import android.view.KeyEvent;
 import android.view.MenuItem;
+import android.view.MotionEvent;
 import android.view.OrientationEventListener;
 import android.view.Surface;
-import android.view.animation.Animation;
-import android.view.animation.AnimationUtils;
-import android.view.KeyEvent;
 import android.view.View;
+import android.view.View.OnTouchListener;
 import android.view.Window;
 import android.view.WindowManager;
 import android.view.accessibility.AccessibilityEvent;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
 
-import com.android.phone.common.animation.AnimUtils;
-import com.android.phone.common.animation.AnimationListenerAdapter;
+import com.android.contacts.common.activity.TransactionSafeActivity;
+import com.android.contacts.common.compat.CompatUtils;
 import com.android.contacts.common.interactions.TouchPointManager;
 import com.android.contacts.common.widget.SelectPhoneAccountDialogFragment;
 import com.android.contacts.common.widget.SelectPhoneAccountDialogFragment.SelectPhoneAccountListener;
+import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.ScreenEvent;
 import com.android.incallui.Call.State;
+import com.android.incallui.compat.telecom.DetailsCompat;
+import com.android.incallui.util.AccessibilityUtil;
+import com.android.phone.common.animation.AnimUtils;
+import com.android.phone.common.animation.AnimationListenerAdapter;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -63,7 +70,7 @@
 /**
  * Main activity that the user interacts with while in a live call.
  */
-public class InCallActivity extends Activity implements FragmentDisplayManager {
+public class InCallActivity extends TransactionSafeActivity implements FragmentDisplayManager {
 
     public static final String TAG = InCallActivity.class.getSimpleName();
 
@@ -77,6 +84,10 @@
     private static final String TAG_ANSWER_FRAGMENT = "tag_answer_fragment";
     private static final String TAG_SELECT_ACCT_FRAGMENT = "tag_select_acct_fragment";
 
+    private static final int DIALPAD_REQUEST_NONE = 1;
+    private static final int DIALPAD_REQUEST_SHOW = 2;
+    private static final int DIALPAD_REQUEST_HIDE = 3;
+
     private CallButtonFragment mCallButtonFragment;
     private CallCardFragment mCallCardFragment;
     private AnswerFragment mAnswerFragment;
@@ -84,19 +95,30 @@
     private ConferenceManagerFragment mConferenceManagerFragment;
     private FragmentManager mChildFragmentManager;
 
-    private boolean mIsVisible;
     private AlertDialog mDialog;
+    private InCallOrientationEventListener mInCallOrientationEventListener;
 
-    /** Use to pass 'showDialpad' from {@link #onNewIntent} to {@link #onResume} */
-    private boolean mShowDialpadRequested;
+    /**
+     * Used to indicate whether the dialpad should be hidden or shown {@link #onResume}.
+     * {@code #DIALPAD_REQUEST_SHOW} indicates that the dialpad should be shown.
+     * {@code #DIALPAD_REQUEST_HIDE} indicates that the dialpad should be hidden.
+     * {@code #DIALPAD_REQUEST_NONE} indicates no change should be made to dialpad visibility.
+     */
+    private int mShowDialpadRequest = DIALPAD_REQUEST_NONE;
 
-    /** Use to determine if the dialpad should be animated on show. */
+    /**
+     * Use to determine if the dialpad should be animated on show.
+     */
     private boolean mAnimateDialpadOnShow;
 
-    /** Use to determine the DTMF Text which should be pre-populated in the dialpad. */
+    /**
+     * Use to determine the DTMF Text which should be pre-populated in the dialpad.
+     */
     private String mDtmfText;
 
-    /** Use to pass parameters for showing the PostCharDialog to {@link #onResume} */
+    /**
+     * Use to pass parameters for showing the PostCharDialog to {@link #onResume}
+     */
     private boolean mShowPostCharWaitDialogOnResume;
     private String mShowPostCharWaitDialogCallId;
     private String mShowPostCharWaitDialogChars;
@@ -113,6 +135,8 @@
         }
     };
 
+    private OnTouchListener mDispatchTouchEventListener;
+
     private SelectPhoneAccountListener mSelectAcctListener = new SelectPhoneAccountListener() {
         @Override
         public void onPhoneAccountSelected(PhoneAccountHandle selectedAccountHandle,
@@ -120,20 +144,13 @@
             InCallPresenter.getInstance().handleAccountSelection(selectedAccountHandle,
                     setDefault);
         }
+
         @Override
         public void onDialogDismissed() {
             InCallPresenter.getInstance().cancelAccountSelection();
         }
     };
 
-    /** Listener for orientation changes. */
-    private OrientationEventListener mOrientationEventListener;
-
-    /**
-     * Used to determine if a change in rotation has occurred.
-     */
-    private static int sPreviousRotation = -1;
-
     @Override
     protected void onCreate(Bundle icicle) {
         Log.d(this, "onCreate()...  this = " + this);
@@ -185,54 +202,33 @@
 
         mSlideOut.setAnimationListener(mSlideOutListener);
 
+        // If the dialpad fragment already exists, retrieve it.  This is important when rotating as
+        // we will not be able to hide or show the dialpad after the rotation otherwise.
+        Fragment existingFragment =
+                getFragmentManager().findFragmentByTag(DialpadFragment.class.getName());
+        if (existingFragment != null) {
+            mDialpadFragment = (DialpadFragment) existingFragment;
+        }
+
         if (icicle != null) {
             // If the dialpad was shown before, set variables indicating it should be shown and
             // populated with the previous DTMF text.  The dialpad is actually shown and populated
             // in onResume() to ensure the hosting CallCardFragment has been inflated and is ready
             // to receive it.
-            mShowDialpadRequested = icicle.getBoolean(SHOW_DIALPAD_EXTRA);
-            mAnimateDialpadOnShow = false;
+            if (icicle.containsKey(SHOW_DIALPAD_EXTRA)) {
+                boolean showDialpad = icicle.getBoolean(SHOW_DIALPAD_EXTRA);
+                mShowDialpadRequest = showDialpad ? DIALPAD_REQUEST_SHOW : DIALPAD_REQUEST_HIDE;
+                mAnimateDialpadOnShow = false;
+            }
             mDtmfText = icicle.getString(DIALPAD_TEXT_EXTRA);
 
             SelectPhoneAccountDialogFragment dialogFragment = (SelectPhoneAccountDialogFragment)
-                getFragmentManager().findFragmentByTag(TAG_SELECT_ACCT_FRAGMENT);
+                    getFragmentManager().findFragmentByTag(TAG_SELECT_ACCT_FRAGMENT);
             if (dialogFragment != null) {
                 dialogFragment.setListener(mSelectAcctListener);
             }
         }
-
-        mOrientationEventListener = new OrientationEventListener(this,
-                SensorManager.SENSOR_DELAY_NORMAL) {
-            @Override
-            public void onOrientationChanged(int orientation) {
-                // Device is flat, don't change orientation.
-                if (orientation == OrientationEventListener.ORIENTATION_UNKNOWN) {
-                    return;
-                }
-
-                int newRotation = Surface.ROTATION_0;
-                // We only shift if we're within 22.5 (23) degrees of the target
-                // orientation. This avoids flopping back and forth when holding
-                // the device at 45 degrees or so.
-                if (orientation >= 337 || orientation <= 23) {
-                    newRotation = Surface.ROTATION_0;
-                } else if (orientation >= 67 && orientation <= 113) {
-                    // Why not 90? Because screen and sensor orientation are
-                    // reversed.
-                    newRotation = Surface.ROTATION_270;
-                } else if (orientation >= 157 && orientation <= 203) {
-                    newRotation = Surface.ROTATION_180;
-                } else if (orientation >= 247 && orientation <= 293) {
-                    newRotation = Surface.ROTATION_90;
-                }
-
-                // Orientation is the current device orientation in degrees.  Ultimately we want
-                // the rotation (in fixed 90 degree intervals).
-                if (newRotation != sPreviousRotation) {
-                    doOrientationChanged(newRotation);
-                }
-            }
-        };
+        mInCallOrientationEventListener = new InCallOrientationEventListener(this);
 
         Log.d(this, "onCreate(): exit");
     }
@@ -253,18 +249,10 @@
         Log.d(this, "onStart()...");
         super.onStart();
 
-        mIsVisible = true;
-
-        if (mOrientationEventListener.canDetectOrientation()) {
-            Log.v(this, "Orientation detection enabled.");
-            mOrientationEventListener.enable();
-        } else {
-            Log.v(this, "Orientation detection disabled.");
-            mOrientationEventListener.disable();
-        }
-
         // setting activity should be last thing in setup process
         InCallPresenter.getInstance().setActivity(this);
+        enableInCallOrientationEventListener(getRequestedOrientation() ==
+               InCallOrientationEventListener.FULL_SENSOR_SCREEN_ORIENTATION);
 
         InCallPresenter.getInstance().onActivityStarted();
     }
@@ -277,16 +265,31 @@
         InCallPresenter.getInstance().setThemeColors();
         InCallPresenter.getInstance().onUiShowing(true);
 
-        if (mShowDialpadRequested) {
-            mCallButtonFragment.displayDialpad(true /* show */,
-                    mAnimateDialpadOnShow /* animate */);
-            mShowDialpadRequested = false;
-            mAnimateDialpadOnShow = false;
+        // Clear fullscreen state onResume; the stored value may not match reality.
+        InCallPresenter.getInstance().clearFullscreen();
 
-            if (mDialpadFragment != null) {
-                mDialpadFragment.setDtmfText(mDtmfText);
-                mDtmfText = null;
+        // If there is a pending request to show or hide the dialpad, handle that now.
+        if (mShowDialpadRequest != DIALPAD_REQUEST_NONE) {
+            if (mShowDialpadRequest == DIALPAD_REQUEST_SHOW) {
+                // Exit fullscreen so that the user has access to the dialpad hide/show button and
+                // can hide the dialpad.  Important when showing the dialpad from within dialer.
+                InCallPresenter.getInstance().setFullScreen(false, true /* force */);
+
+                mCallButtonFragment.displayDialpad(true /* show */,
+                        mAnimateDialpadOnShow /* animate */);
+                mAnimateDialpadOnShow = false;
+
+                if (mDialpadFragment != null) {
+                    mDialpadFragment.setDtmfText(mDtmfText);
+                    mDtmfText = null;
+                }
+            } else {
+                Log.v(this, "onResume : force hide dialpad");
+                if (mDialpadFragment != null) {
+                    mCallButtonFragment.displayDialpad(false /* show */, false /* animate */);
+                }
             }
+            mShowDialpadRequest = DIALPAD_REQUEST_NONE;
         }
 
         if (mShowPostCharWaitDialogOnResume) {
@@ -299,7 +302,7 @@
     @Override
     protected void onPause() {
         Log.d(this, "onPause()...");
-        if (mDialpadFragment != null ) {
+        if (mDialpadFragment != null) {
             mDialpadFragment.onDialerKeyUp(null);
         }
 
@@ -313,10 +316,9 @@
     @Override
     protected void onStop() {
         Log.d(this, "onStop()...");
-        mIsVisible = false;
+        enableInCallOrientationEventListener(false);
         InCallPresenter.getInstance().updateIsChangingConfigurations();
         InCallPresenter.getInstance().onActivityStopped();
-        mOrientationEventListener.disable();
         super.onStop();
     }
 
@@ -352,10 +354,10 @@
     }
 
     /**
-     * Returns true when the Activity is currently visible (between onStart and onStop).
+     * Returns true when the Activity is currently visible.
      */
     /* package */ boolean isVisible() {
-        return mIsVisible;
+        return isSafeToCommitTransactions();
     }
 
     private boolean hasPendingDialogs() {
@@ -399,6 +401,9 @@
 
         // BACK is also used to exit out of any "special modes" of the
         // in-call UI:
+        if (!isVisible()) {
+            return;
+        }
 
         if ((mConferenceManagerFragment == null || !mConferenceManagerFragment.isVisible())
                 && (mCallCardFragment == null || !mCallCardFragment.isVisible())) {
@@ -438,7 +443,7 @@
     public boolean onKeyUp(int keyCode, KeyEvent event) {
         // push input to the dialer.
         if (mDialpadFragment != null && (mDialpadFragment.isVisible()) &&
-                (mDialpadFragment.onDialerKeyUp(event))){
+                (mDialpadFragment.onDialerKeyUp(event))) {
             return true;
         } else if (keyCode == KeyEvent.KEYCODE_CALL) {
             // Always consume CALL to be sure the PhoneWindow won't do anything with it
@@ -448,6 +453,17 @@
     }
 
     @Override
+    public boolean dispatchTouchEvent(MotionEvent ev) {
+        if (mDispatchTouchEventListener != null) {
+            boolean handled = mDispatchTouchEventListener.onTouch(null, ev);
+            if (handled) {
+                return true;
+            }
+        }
+        return super.dispatchTouchEvent(ev);
+    }
+
+    @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         switch (keyCode) {
             case KeyEvent.KEYCODE_CALL:
@@ -500,7 +516,6 @@
         if (event.getRepeatCount() == 0 && handleDialerKeyDown(keyCode, event)) {
             return true;
         }
-
         return super.onKeyDown(keyCode, event);
     }
 
@@ -517,25 +532,6 @@
         return false;
     }
 
-    /**
-     * Handles changes in device rotation.
-     *
-     * @param rotation The new device rotation (one of: {@link Surface#ROTATION_0},
-     *      {@link Surface#ROTATION_90}, {@link Surface#ROTATION_180},
-     *      {@link Surface#ROTATION_270}).
-     */
-    private void doOrientationChanged(int rotation) {
-        Log.d(this, "doOrientationChanged prevOrientation=" + sPreviousRotation +
-                " newOrientation=" + rotation);
-        // Check to see if the rotation changed to prevent triggering rotation change events
-        // for other configuration changes.
-        if (rotation != sPreviousRotation) {
-            sPreviousRotation = rotation;
-            InCallPresenter.getInstance().onDeviceRotationChange(rotation);
-            InCallPresenter.getInstance().onDeviceOrientationChange(sPreviousRotation);
-        }
-    }
-
     public CallButtonFragment getCallButtonFragment() {
         return mCallButtonFragment;
     }
@@ -577,7 +573,7 @@
 
                 Bundle extras = null;
                 if (call != null) {
-                    extras = call.getTelecommCall().getDetails().getIntentExtras();
+                    extras = DetailsCompat.getIntentExtras(call.getTelecomCall().getDetails());
                 }
                 if (extras == null) {
                     // Initialize the extras bundle to avoid NPE
@@ -600,8 +596,10 @@
                         InCallPresenter.getInstance());
 
                 // InCallActivity is responsible for disconnecting a new outgoing call if there
-                // is no way of making it (i.e. no valid call capable accounts)
-                if (InCallPresenter.isCallWithNoValidAccounts(call)) {
+                // is no way of making it (i.e. no valid call capable accounts).
+                // If the version is not MSIM compatible, then ignore this code.
+                if (CompatUtils.isMSIMCompatible()
+                        && InCallPresenter.isCallWithNoValidAccounts(call)) {
                     TelecomAdapter.getInstance().disconnectCall(call.getId());
                 }
 
@@ -612,8 +610,8 @@
             Call pendingAccountSelectionCall = CallList.getInstance().getWaitingForAccountCall();
             if (pendingAccountSelectionCall != null) {
                 showCallCardFragment(false);
-                Bundle extras = pendingAccountSelectionCall
-                        .getTelecommCall().getDetails().getIntentExtras();
+                Bundle extras = DetailsCompat.getIntentExtras(pendingAccountSelectionCall
+                        .getTelecomCall().getDetails());
 
                 final List<PhoneAccountHandle> phoneAccountHandles;
                 if (extras != null) {
@@ -630,16 +628,23 @@
             } else if (!newOutgoingCall) {
                 showCallCardFragment(true);
             }
-
             return;
         }
     }
 
+    /**
+     * When relaunching from the dialer app, {@code showDialpad} indicates whether the dialpad
+     * should be shown on launch.
+     *
+     * @param showDialpad {@code true} to indicate the dialpad should be shown on launch, and
+     *                                {@code false} to indicate no change should be made to the
+     *                                dialpad visibility.
+     */
     private void relaunchedFromDialer(boolean showDialpad) {
-        mShowDialpadRequested = showDialpad;
+        mShowDialpadRequest = showDialpad ? DIALPAD_REQUEST_SHOW : DIALPAD_REQUEST_NONE;
         mAnimateDialpadOnShow = true;
 
-        if (mShowDialpadRequested) {
+        if (mShowDialpadRequest == DIALPAD_REQUEST_SHOW) {
             // If there's only one line in use, AND it's on hold, then we're sure the user
             // wants to use the dialpad toward the exact line, so un-hold the holding line.
             final Call call = CallList.getInstance().getActiveOrBackgroundCall();
@@ -684,6 +689,7 @@
             } else {
                 transaction.show(fragment);
             }
+            Logger.logScreenView(getScreenTypeForTag(tag), this);
         } else {
             transaction.hide(fragment);
         }
@@ -700,7 +706,11 @@
             mDialpadFragment = new DialpadFragment();
             return mDialpadFragment;
         } else if (TAG_ANSWER_FRAGMENT.equals(tag)) {
-            mAnswerFragment = new AnswerFragment();
+            if (AccessibilityUtil.isTalkBackEnabled(this)) {
+                mAnswerFragment = new AccessibleAnswerFragment();
+            } else {
+                mAnswerFragment = new GlowPadAnswerFragment();
+            }
             return mAnswerFragment;
         } else if (TAG_CONFERENCE_FRAGMENT.equals(tag)) {
             mConferenceManagerFragment = new ConferenceManagerFragment();
@@ -725,6 +735,21 @@
         throw new IllegalStateException("Unexpected fragment: " + tag);
     }
 
+    private int getScreenTypeForTag(String tag) {
+        switch (tag) {
+            case TAG_DIALPAD_FRAGMENT:
+                return ScreenEvent.INCALL_DIALPAD;
+            case TAG_CALLCARD_FRAGMENT:
+                return ScreenEvent.INCALL;
+            case TAG_CONFERENCE_FRAGMENT:
+                return ScreenEvent.CONFERENCE_MANAGEMENT;
+            case TAG_ANSWER_FRAGMENT:
+                return ScreenEvent.INCOMING_CALL;
+            default:
+                return ScreenEvent.UNKNOWN;
+        }
+    }
+
     private int getContainerIdForFragment(String tag) {
         if (TAG_DIALPAD_FRAGMENT.equals(tag)) {
             return R.id.answer_and_dialpad_container;
@@ -738,10 +763,13 @@
         throw new IllegalStateException("Unexpected fragment: " + tag);
     }
 
-    public void showDialpadFragment(boolean show, boolean animate) {
+    /**
+     * @return {@code true} while the visibility of the dialpad has actually changed.
+     */
+    public boolean showDialpadFragment(boolean show, boolean animate) {
         // If the dialpad is already visible, don't animate in. If it's gone, don't animate out.
         if ((show && isDialpadVisible()) || (!show && !isDialpadVisible())) {
-            return;
+            return false;
         }
         // We don't do a FragmentTransaction on the hide case because it will be dealt with when
         // the listener is fired after an animation finishes.
@@ -760,6 +788,7 @@
         if (sensor != null) {
             sensor.onDialpadVisible(show);
         }
+        return true;
     }
 
     public boolean isDialpadVisible() {
@@ -774,7 +803,7 @@
      * Hides or shows the conference manager fragment.
      *
      * @param show {@code true} if the conference manager should be shown, {@code false} if it
-     *                         should be hidden.
+     * should be hidden.
      */
     public void showConferenceFragment(boolean show) {
         showFragment(TAG_CONFERENCE_FRAGMENT, show, true);
@@ -791,7 +820,7 @@
 
     public void showPostCharWaitDialog(String callId, String chars) {
         if (isVisible()) {
-            final PostCharDialogFragment fragment = new PostCharDialogFragment(callId,  chars);
+            final PostCharDialogFragment fragment = new PostCharDialogFragment(callId, chars);
             fragment.show(getFragmentManager(), "postCharWait");
 
             mShowPostCharWaitDialogOnResume = false;
@@ -817,7 +846,7 @@
 
         if (!isFinishing() && !TextUtils.isEmpty(disconnectCause.getDescription())
                 && (disconnectCause.getCode() == DisconnectCause.ERROR ||
-                        disconnectCause.getCode() == DisconnectCause.RESTRICTED)) {
+                disconnectCause.getCode() == DisconnectCause.RESTRICTED)) {
             showErrorDialog(disconnectCause.getDescription());
         }
     }
@@ -846,12 +875,14 @@
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
                         onDialogDismissed();
-                    }})
+                    }
+                })
                 .setOnCancelListener(new OnCancelListener() {
                     @Override
                     public void onCancel(DialogInterface dialog) {
                         onDialogDismissed();
-                    }})
+                    }
+                })
                 .create();
 
         mDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
@@ -865,10 +896,10 @@
     }
 
     public void setExcludeFromRecents(boolean exclude) {
-        ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
+        ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
         List<ActivityManager.AppTask> tasks = am.getAppTasks();
         int taskId = getTaskId();
-        for (int i=0; i<tasks.size(); i++) {
+        for (int i = 0; i < tasks.size(); i++) {
             ActivityManager.AppTask task = tasks.get(i);
             if (task.getTaskInfo().id == taskId) {
                 try {
@@ -879,4 +910,26 @@
             }
         }
     }
+
+
+    public OnTouchListener getDispatchTouchEventListener() {
+        return mDispatchTouchEventListener;
+    }
+
+    public void setDispatchTouchEventListener(OnTouchListener mDispatchTouchEventListener) {
+        this.mDispatchTouchEventListener = mDispatchTouchEventListener;
+    }
+
+    /**
+     * Enables the OrientationEventListener if enable flag is true. Disables it if enable is
+     * false
+     * @param enable true or false.
+     */
+    public void enableInCallOrientationEventListener(boolean enable) {
+        if (enable) {
+            mInCallOrientationEventListener.enable(enable);
+        } else {
+            mInCallOrientationEventListener.disable();
+        }
+    }
 }
diff --git a/InCallUI/src/com/android/incallui/InCallContactInteractions.java b/InCallUI/src/com/android/incallui/InCallContactInteractions.java
new file mode 100644
index 0000000..e627668
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/InCallContactInteractions.java
@@ -0,0 +1,397 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import com.google.common.annotations.VisibleForTesting;
+
+import android.content.Context;
+import android.location.Address;
+import android.text.TextUtils;
+import android.text.format.DateFormat;
+import android.util.Pair;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.ListAdapter;
+import android.widget.RelativeLayout;
+import android.widget.RelativeLayout.LayoutParams;
+import android.widget.TextView;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
+
+/**
+ * Wrapper class for objects that are used in generating the context about the contact in the InCall
+ * screen.
+ *
+ * This handles generating the appropriate resource for the ListAdapter based on whether the contact
+ * is a business contact or not and logic for the manipulation of data for the call context.
+ */
+public class InCallContactInteractions {
+    private static final String TAG = InCallContactInteractions.class.getSimpleName();
+
+    private Context mContext;
+    private InCallContactInteractionsListAdapter mListAdapter;
+    private boolean mIsBusiness;
+    private View mBusinessHeaderView;
+    private LayoutInflater mInflater;
+
+    public InCallContactInteractions(Context context, boolean isBusiness) {
+        mContext = context;
+        mInflater = (LayoutInflater)
+                context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        switchContactType(isBusiness);
+    }
+
+    public InCallContactInteractionsListAdapter getListAdapter() {
+        return mListAdapter;
+    }
+
+    /**
+     * Switches the "isBusiness" value, if applicable. Recreates the list adapter with the resource
+     * corresponding to the new isBusiness value if the "isBusiness" value is switched.
+     *
+     * @param isBusiness Whether or not the contact is a business.
+     *
+     * @return {@code true} if a new list adapter was created, {@code} otherwise.
+     */
+    public boolean switchContactType(boolean isBusiness) {
+        if (mIsBusiness != isBusiness || mListAdapter == null) {
+            mIsBusiness = isBusiness;
+            mListAdapter = new InCallContactInteractionsListAdapter(mContext,
+                    mIsBusiness ? R.layout.business_context_info_list_item
+                            : R.layout.person_context_info_list_item);
+            return true;
+        }
+        return false;
+    }
+
+    public View getBusinessListHeaderView() {
+        if (mBusinessHeaderView == null) {
+            mBusinessHeaderView = mInflater.inflate(
+                    R.layout.business_contact_context_list_header, null);
+        }
+        return mBusinessHeaderView;
+    }
+
+    public void setBusinessInfo(Address address, float distance,
+            List<Pair<Calendar, Calendar>> openingHours) {
+        mListAdapter.clear();
+        List<ContactContextInfo> info = new ArrayList<ContactContextInfo>();
+
+        // Hours of operation
+        if (openingHours != null) {
+            BusinessContextInfo hoursInfo = constructHoursInfo(openingHours);
+            if (hoursInfo != null) {
+                info.add(hoursInfo);
+            }
+        }
+
+        // Location information
+        if (address != null) {
+            BusinessContextInfo locationInfo = constructLocationInfo(address, distance);
+            info.add(locationInfo);
+        }
+
+        mListAdapter.addAll(info);
+    }
+
+    /**
+     * Construct a BusinessContextInfo object containing hours of operation information.
+     * The format is:
+     *      [Open now/Closed now]
+     *      [Hours]
+     *
+     * @param openingHours
+     * @return BusinessContextInfo object with the schedule icon, the heading set to whether the
+     * business is open or not and the details set to the hours of operation.
+     */
+    private BusinessContextInfo constructHoursInfo(List<Pair<Calendar, Calendar>> openingHours) {
+        try {
+            return constructHoursInfo(Calendar.getInstance(), openingHours);
+        } catch (Exception e) {
+            // Catch all exceptions here because we don't want any crashes if something goes wrong.
+            Log.e(TAG, "Error constructing hours info: ", e);
+        }
+        return null;
+    }
+
+    /**
+     * Pass in arbitrary current calendar time.
+     */
+    @VisibleForTesting
+    BusinessContextInfo constructHoursInfo(Calendar currentTime,
+            List<Pair<Calendar, Calendar>> openingHours) {
+        if (currentTime == null || openingHours == null || openingHours.size() == 0) {
+            return null;
+        }
+
+        BusinessContextInfo hoursInfo = new BusinessContextInfo();
+        hoursInfo.iconId = R.drawable.ic_schedule_white_24dp;
+
+        boolean isOpenNow = false;
+        // This variable records which interval the current time is after. 0 denotes none of the
+        // intervals, 1 after the first interval, etc. It is also the index of the interval the
+        // current time is in (if open) or the next interval (if closed).
+        int afterInterval = 0;
+        // This variable counts the number of time intervals in today's opening hours.
+        int todaysIntervalCount = 0;
+
+        for (Pair<Calendar, Calendar> hours : openingHours) {
+            if (hours.first.compareTo(currentTime) <= 0
+                    && currentTime.compareTo(hours.second) < 0) {
+                // If the current time is on or after the opening time and strictly before the
+                // closing time, then this business is open.
+                isOpenNow = true;
+            }
+
+            if (currentTime.get(Calendar.DAY_OF_YEAR) == hours.first.get(Calendar.DAY_OF_YEAR)) {
+                todaysIntervalCount += 1;
+            }
+
+            if (currentTime.compareTo(hours.second) > 0) {
+                // This assumes that the list of intervals is sorted by time.
+                afterInterval += 1;
+            }
+        }
+
+        hoursInfo.heading = isOpenNow ? mContext.getString(R.string.open_now)
+                : mContext.getString(R.string.closed_now);
+
+        /*
+         * The following logic determines what to display in various cases for hours of operation.
+         *
+         * - Display all intervals if open now and number of intervals is <=2.
+         * - Display next closing time if open now and number of intervals is >2.
+         * - Display next opening time if currently closed but opens later today.
+         * - Display last time it closed today if closed now and tomorrow's hours are unknown.
+         * - Display tomorrow's first open time if closed today and tomorrow's hours are known.
+         *
+         * NOTE: The logic below assumes that the intervals are sorted by ascending time. Possible
+         * TODO to modify the logic above and ensure this is true.
+         */
+        if (isOpenNow) {
+            if (todaysIntervalCount == 1) {
+                hoursInfo.detail = getTimeSpanStringForHours(openingHours.get(0));
+            } else if (todaysIntervalCount == 2) {
+                hoursInfo.detail = mContext.getString(
+                        R.string.opening_hours,
+                        getTimeSpanStringForHours(openingHours.get(0)),
+                        getTimeSpanStringForHours(openingHours.get(1)));
+            } else if (afterInterval < openingHours.size()) {
+                // This check should not be necessary since if it is currently open, we should not
+                // be after the last interval, but just in case, we don't want to crash.
+                hoursInfo.detail = mContext.getString(
+                        R.string.closes_today_at,
+                        getFormattedTimeForCalendar(openingHours.get(afterInterval).second));
+            }
+        } else { // Currently closed
+            final int lastIntervalToday = todaysIntervalCount - 1;
+            if (todaysIntervalCount == 0) { // closed today
+                hoursInfo.detail = mContext.getString(
+                        R.string.opens_tomorrow_at,
+                        getFormattedTimeForCalendar(openingHours.get(0).first));
+            } else if (currentTime.after(openingHours.get(lastIntervalToday).second)) {
+                // Passed hours for today
+                if (todaysIntervalCount < openingHours.size()) {
+                    // If all of today's intervals are exhausted, assume the next are tomorrow's.
+                    hoursInfo.detail = mContext.getString(
+                            R.string.opens_tomorrow_at,
+                            getFormattedTimeForCalendar(
+                                    openingHours.get(todaysIntervalCount).first));
+                } else {
+                    // Grab the last time it was open today.
+                    hoursInfo.detail = mContext.getString(
+                            R.string.closed_today_at,
+                            getFormattedTimeForCalendar(
+                                    openingHours.get(lastIntervalToday).second));
+                }
+            } else if (afterInterval < openingHours.size()) {
+                // This check should not be necessary since if it is currently before the last
+                // interval, afterInterval should be less than the count of intervals, but just in
+                // case, we don't want to crash.
+                hoursInfo.detail = mContext.getString(
+                        R.string.opens_today_at,
+                        getFormattedTimeForCalendar(openingHours.get(afterInterval).first));
+            }
+        }
+
+        return hoursInfo;
+    }
+
+    String getFormattedTimeForCalendar(Calendar calendar) {
+        return DateFormat.getTimeFormat(mContext).format(calendar.getTime());
+    }
+
+    String getTimeSpanStringForHours(Pair<Calendar, Calendar> hours) {
+        return mContext.getString(R.string.open_time_span,
+                getFormattedTimeForCalendar(hours.first),
+                getFormattedTimeForCalendar(hours.second));
+    }
+
+    /**
+     * Construct a BusinessContextInfo object with the location information of the business.
+     * The format is:
+     *      [Straight line distance in miles or kilometers]
+     *      [Address without state/country/etc.]
+     *
+     * @param address An Address object containing address details of the business
+     * @param distance The distance to the location in meters
+     * @return A BusinessContextInfo object with the location icon, the heading as the distance to
+     * the business and the details containing the address.
+     */
+    private BusinessContextInfo constructLocationInfo(Address address, float distance) {
+        return constructLocationInfo(Locale.getDefault(), address, distance);
+    }
+
+    @VisibleForTesting
+    BusinessContextInfo constructLocationInfo(Locale locale, Address address,
+            float distance) {
+        if (address == null) {
+            return null;
+        }
+
+        BusinessContextInfo locationInfo = new BusinessContextInfo();
+        locationInfo.iconId = R.drawable.ic_location_on_white_24dp;
+        if (distance != DistanceHelper.DISTANCE_NOT_FOUND) {
+            //TODO: add a setting to allow the user to select "KM" or "MI" as their distance units.
+            if (Locale.US.equals(locale)) {
+                locationInfo.heading = mContext.getString(R.string.distance_imperial_away,
+                        distance * DistanceHelper.MILES_PER_METER);
+            } else {
+                locationInfo.heading = mContext.getString(R.string.distance_metric_away,
+                        distance * DistanceHelper.KILOMETERS_PER_METER);
+            }
+        }
+        if (address.getLocality() != null) {
+            locationInfo.detail = mContext.getString(
+                    R.string.display_address,
+                    address.getAddressLine(0),
+                    address.getLocality());
+        } else {
+            locationInfo.detail = address.getAddressLine(0);
+        }
+        return locationInfo;
+    }
+
+    /**
+     * Get the appropriate title for the context.
+     * @return The "Business info" title for a business contact and the "Recent messages" title for
+     *         personal contacts.
+     */
+    public String getContactContextTitle() {
+        return mIsBusiness
+                ? mContext.getResources().getString(R.string.business_contact_context_title)
+                : mContext.getResources().getString(R.string.person_contact_context_title);
+    }
+
+    public static abstract class ContactContextInfo {
+        public abstract void bindView(View listItem);
+    }
+
+    public static class BusinessContextInfo extends ContactContextInfo {
+        int iconId;
+        String heading;
+        String detail;
+
+        @Override
+        public void bindView(View listItem) {
+            ImageView imageView = (ImageView) listItem.findViewById(R.id.icon);
+            TextView headingTextView = (TextView) listItem.findViewById(R.id.heading);
+            TextView detailTextView = (TextView) listItem.findViewById(R.id.detail);
+
+            if (this.iconId == 0 || (this.heading == null && this.detail == null)) {
+                return;
+            }
+
+            imageView.setImageDrawable(listItem.getContext().getDrawable(this.iconId));
+
+            headingTextView.setText(this.heading);
+            headingTextView.setVisibility(TextUtils.isEmpty(this.heading)
+                    ? View.GONE : View.VISIBLE);
+
+            detailTextView.setText(this.detail);
+            detailTextView.setVisibility(TextUtils.isEmpty(this.detail)
+                    ? View.GONE : View.VISIBLE);
+
+        }
+    }
+
+    public static class PersonContextInfo extends ContactContextInfo {
+        boolean isIncoming;
+        String message;
+        String detail;
+
+        @Override
+        public void bindView(View listItem) {
+            TextView messageTextView = (TextView) listItem.findViewById(R.id.message);
+            TextView detailTextView = (TextView) listItem.findViewById(R.id.detail);
+
+            if (this.message == null || this.detail == null) {
+                return;
+            }
+
+            messageTextView.setBackgroundResource(this.isIncoming ?
+                    R.drawable.incoming_sms_background : R.drawable.outgoing_sms_background);
+            messageTextView.setText(this.message);
+            LayoutParams messageLayoutParams = (LayoutParams) messageTextView.getLayoutParams();
+            messageLayoutParams.addRule(this.isIncoming?
+                    RelativeLayout.ALIGN_PARENT_START : RelativeLayout.ALIGN_PARENT_END);
+            messageTextView.setLayoutParams(messageLayoutParams);
+
+            LayoutParams detailLayoutParams = (LayoutParams) detailTextView.getLayoutParams();
+            detailLayoutParams.addRule(this.isIncoming ?
+                    RelativeLayout.ALIGN_PARENT_START : RelativeLayout.ALIGN_PARENT_END);
+            detailTextView.setLayoutParams(detailLayoutParams);
+            detailTextView.setText(this.detail);
+        }
+    }
+
+    /**
+     * A list adapter for call context information. We use the same adapter for both business and
+     * contact context.
+     */
+    private class InCallContactInteractionsListAdapter extends ArrayAdapter<ContactContextInfo> {
+        // The resource id of the list item layout.
+        int mResId;
+
+        public InCallContactInteractionsListAdapter(Context context, int resource) {
+            super(context, resource);
+            mResId = resource;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            View listItem = mInflater.inflate(mResId, null);
+            ContactContextInfo item = getItem(position);
+
+            if (item == null) {
+                return listItem;
+            }
+
+            item.bindView(listItem);
+            return listItem;
+        }
+    }
+}
\ No newline at end of file
diff --git a/InCallUI/src/com/android/incallui/InCallOrientationEventListener.java b/InCallUI/src/com/android/incallui/InCallOrientationEventListener.java
new file mode 100644
index 0000000..d3334a3
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/InCallOrientationEventListener.java
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.content.Context;
+import android.content.res.Configuration;
+import android.view.OrientationEventListener;
+import android.hardware.SensorManager;
+import android.view.Surface;
+import android.content.pm.ActivityInfo;
+
+/**
+ * This class listens to Orientation events and overrides onOrientationChanged which gets
+ * invoked when an orientation change occurs. When that happens, we notify InCallUI registrants
+ * of the change.
+ */
+public class InCallOrientationEventListener extends OrientationEventListener {
+
+    /**
+     * Screen orientation angles one of 0, 90, 180, 270, 360 in degrees.
+     */
+    public static int SCREEN_ORIENTATION_0 = 0;
+    public static int SCREEN_ORIENTATION_90 = 90;
+    public static int SCREEN_ORIENTATION_180 = 180;
+    public static int SCREEN_ORIENTATION_270 = 270;
+    public static int SCREEN_ORIENTATION_360 = 360;
+
+    public static int FULL_SENSOR_SCREEN_ORIENTATION =
+            ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR;
+
+    public static int NO_SENSOR_SCREEN_ORIENTATION =
+            ActivityInfo.SCREEN_ORIENTATION_NOSENSOR;
+
+    /**
+     * This is to identify dead zones where we won't notify others of orientation changed.
+     * Say for e.g our threshold is x degrees. We will only notify UI when our current rotation is
+     * within x degrees right or left of the screen orientation angles. If it's not within those
+     * ranges, we return SCREEN_ORIENTATION_UNKNOWN and ignore it.
+     */
+    private static int SCREEN_ORIENTATION_UNKNOWN = -1;
+
+    // Rotation threshold is 10 degrees. So if the rotation angle is within 10 degrees of any of
+    // the above angles, we will notify orientation changed.
+    private static int ROTATION_THRESHOLD = 10;
+
+
+    /**
+     * Cache the current rotation of the device.
+     */
+    private static int sCurrentOrientation = SCREEN_ORIENTATION_0;
+
+    public InCallOrientationEventListener(Context context) {
+        super(context);
+    }
+
+    /**
+     * Handles changes in device orientation. Notifies InCallPresenter of orientation changes.
+     *
+     * Note that this API receives sensor rotation in degrees as a param and we convert that to
+     * one of our screen orientation constants - (one of: {@link SCREEN_ORIENTATION_0},
+     * {@link SCREEN_ORIENTATION_90}, {@link SCREEN_ORIENTATION_180},
+     * {@link SCREEN_ORIENTATION_270}).
+     *
+     * @param rotation The new device sensor rotation in degrees
+     */
+    @Override
+    public void onOrientationChanged(int rotation) {
+        if (rotation == OrientationEventListener.ORIENTATION_UNKNOWN) {
+            return;
+        }
+
+        final int orientation = toScreenOrientation(rotation);
+
+        if (orientation != SCREEN_ORIENTATION_UNKNOWN && sCurrentOrientation != orientation) {
+            sCurrentOrientation = orientation;
+            InCallPresenter.getInstance().onDeviceOrientationChange(sCurrentOrientation);
+        }
+    }
+
+    /**
+     * Enables the OrientationEventListener and notifies listeners of current orientation if
+     * notify flag is true
+     * @param notify true or false. Notify device orientation changed if true.
+     */
+    public void enable(boolean notify) {
+        super.enable();
+        if (notify) {
+            InCallPresenter.getInstance().onDeviceOrientationChange(sCurrentOrientation);
+        }
+    }
+
+    /**
+     * Enables the OrientationEventListener with notify flag defaulting to false.
+     */
+    public void enable() {
+        enable(false);
+    }
+
+    /**
+     * Converts sensor rotation in degrees to screen orientation constants.
+     * @param rotation sensor rotation angle in degrees
+     * @return Screen orientation angle in degrees (0, 90, 180, 270). Returns -1 for degrees not
+     * within threshold to identify zones where orientation change should not be trigerred.
+     */
+    private int toScreenOrientation(int rotation) {
+        // Sensor orientation 90 is equivalent to screen orientation 270 and vice versa. This
+        // function returns the screen orientation. So we convert sensor rotation 90 to 270 and
+        // vice versa here.
+        if (isInLeftRange(rotation, SCREEN_ORIENTATION_360, ROTATION_THRESHOLD) ||
+                isInRightRange(rotation, SCREEN_ORIENTATION_0, ROTATION_THRESHOLD)) {
+            return SCREEN_ORIENTATION_0;
+        } else if (isWithinThreshold(rotation, SCREEN_ORIENTATION_90, ROTATION_THRESHOLD)) {
+            return SCREEN_ORIENTATION_270;
+        } else if (isWithinThreshold(rotation, SCREEN_ORIENTATION_180, ROTATION_THRESHOLD)) {
+            return SCREEN_ORIENTATION_180;
+        } else if (isWithinThreshold(rotation, SCREEN_ORIENTATION_270, ROTATION_THRESHOLD)) {
+            return SCREEN_ORIENTATION_90;
+        }
+        return SCREEN_ORIENTATION_UNKNOWN;
+    }
+
+    private static boolean isWithinRange(int value, int begin, int end) {
+        return value >= begin && value < end;
+    }
+
+    private static boolean isWithinThreshold(int value, int center, int threshold) {
+        return isWithinRange(value, center - threshold, center + threshold);
+    }
+
+    private static boolean isInLeftRange(int value, int center, int threshold) {
+        return isWithinRange(value, center - threshold, center);
+    }
+
+    private static boolean isInRightRange(int value, int center, int threshold) {
+        return isWithinRange(value, center, center + threshold);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/InCallPresenter.java b/InCallUI/src/com/android/incallui/InCallPresenter.java
index 2d7d40a..f50da8d 100644
--- a/InCallUI/src/com/android/incallui/InCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/InCallPresenter.java
@@ -16,32 +16,49 @@
 
 package com.android.incallui;
 
+import com.google.common.base.Preconditions;
+
 import android.app.ActivityManager.TaskDescription;
 import android.app.FragmentManager;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.ActivityInfo;
 import android.content.res.Resources;
+import android.database.ContentObserver;
 import android.graphics.Point;
-import android.net.Uri;
+import android.os.Build;
 import android.os.Bundle;
+import android.os.Handler;
+import android.provider.CallLog;
 import android.telecom.DisconnectCause;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
 import android.telecom.VideoProfile;
-import android.telephony.PhoneNumberUtils;
+import android.telephony.PhoneStateListener;
+import android.telephony.TelephonyManager;
 import android.text.TextUtils;
-import android.view.Surface;
 import android.view.View;
 import android.view.Window;
 import android.view.WindowManager;
 
+import com.android.contacts.common.GeoUtil;
+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.interactions.TouchPointManager;
 import com.android.contacts.common.testing.NeededForTesting;
 import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette;
+import com.android.dialer.calllog.CallLogAsyncTaskUtil;
+import com.android.dialer.calllog.CallLogAsyncTaskUtil.OnCallLogQueryFinishedListener;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener;
+import com.android.dialer.filterednumber.FilteredNumbersUtil;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
+import com.android.dialer.util.TelecomUtil;
+import com.android.incallui.compat.telecom.DetailsCompat;
+import com.android.incallui.util.TelecomCallUtil;
 import com.android.incalluibind.ObjectFactory;
-import com.google.common.base.Preconditions;
 
 import java.util.Collections;
 import java.util.List;
@@ -49,6 +66,7 @@
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * Takes updates from the CallList and notifies the InCallActivity (UI)
@@ -65,6 +83,8 @@
     private static final String EXTRA_FIRST_TIME_SHOWN =
             "com.android.incallui.intent.extra.FIRST_TIME_SHOWN";
 
+    private static final long BLOCK_QUERY_TIMEOUT_MS = 1000;
+
     private static final Bundle EMPTY_EXTRAS = new Bundle();
 
     private static InCallPresenter sInCallPresenter;
@@ -100,6 +120,7 @@
     private boolean mAccountSelectionCancelled = false;
     private InCallCameraManager mInCallCameraManager = null;
     private AnswerPresenter mAnswerPresenter = new AnswerPresenter();
+    private FilteredNumberAsyncQueryHandler mFilteredQueryHandler;
 
     /**
      * Whether or not we are currently bound and waiting for Telecom to send us a new call.
@@ -117,37 +138,164 @@
      */
     private boolean mIsFullScreen = false;
 
-    private final android.telecom.Call.Callback mCallCallback =
-            new android.telecom.Call.Callback() {
-        @Override
-        public void onPostDialWait(android.telecom.Call telecomCall,
-                String remainingPostDialSequence) {
-            final Call call = mCallList.getCallByTelecommCall(telecomCall);
-            if (call == null) {
-                Log.w(this, "Call not found in call list: " + telecomCall);
-                return;
+    private final Object mCallCallback = newTelecomCallCallback();
+
+    private Object newTelecomCallCallback() {
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            return newMarshmallowTelecomCallCallback();
+        }
+        return newLollipopTelecomCallCallback();
+    }
+
+    private Object newMarshmallowTelecomCallCallback() {
+        Log.i(this, "Using android.telecom.Call.Callback");
+        return new android.telecom.Call.Callback() {
+            @Override
+            public void onPostDialWait(android.telecom.Call telecomCall,
+                    String remainingPostDialSequence) {
+                final Call call = mCallList.getCallByTelecomCall(telecomCall);
+                if (call == null) {
+                    Log.w(this, "Call not found in call list: " + telecomCall);
+                    return;
+                }
+                onPostDialCharWait(call.getId(), remainingPostDialSequence);
             }
-            onPostDialCharWait(call.getId(), remainingPostDialSequence);
+
+            @Override
+            public void onDetailsChanged(android.telecom.Call telecomCall,
+                    android.telecom.Call.Details details) {
+                final Call call = mCallList.getCallByTelecomCall(telecomCall);
+                if (call == null) {
+                    Log.w(this, "Call not found in call list: " + telecomCall);
+                    return;
+                }
+                for (InCallDetailsListener listener : mDetailsListeners) {
+                    listener.onDetailsChanged(call, details);
+                }
+            }
+
+            @Override
+            public void onConferenceableCallsChanged(android.telecom.Call telecomCall,
+                    List<android.telecom.Call> conferenceableCalls) {
+                Log.i(this, "onConferenceableCallsChanged: " + telecomCall);
+                onDetailsChanged(telecomCall, telecomCall.getDetails());
+            }
+        };
+    }
+
+    private Object newLollipopTelecomCallCallback() {
+        // This code only runs for Google Experience phones on the pre-M sdk since only the system
+        // dialer can invoke the InCallUI code. This allows us to safely use the
+        // android.telecom.Call.Listener interface
+        Log.i(this, "Using android.telecom.Call.Listener");
+        return new android.telecom.Call.Listener() {
+            @Override
+            public void onPostDialWait(android.telecom.Call telecomCall,
+                    String remainingPostDialSequence) {
+                final Call call = mCallList.getCallByTelecomCall(telecomCall);
+                if (call == null) {
+                    Log.w(this, "Call not found in call list: " + telecomCall);
+                    return;
+                }
+                onPostDialCharWait(call.getId(), remainingPostDialSequence);
+            }
+
+            @Override
+            public void onDetailsChanged(android.telecom.Call telecomCall,
+                    android.telecom.Call.Details details) {
+                final Call call = mCallList.getCallByTelecomCall(telecomCall);
+                if (call == null) {
+                    Log.w(this, "Call not found in call list: " + telecomCall);
+                    return;
+                }
+                for (InCallDetailsListener listener : mDetailsListeners) {
+                    listener.onDetailsChanged(call, details);
+                }
+            }
+
+            @Override
+            public void onConferenceableCallsChanged(android.telecom.Call telecomCall,
+                    List<android.telecom.Call> conferenceableCalls) {
+                Log.i(this, "onConferenceableCallsChanged: " + telecomCall);
+                onDetailsChanged(telecomCall, telecomCall.getDetails());
+            }
+        };
+    }
+
+    private PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
+        public void onCallStateChanged(int state, String incomingNumber) {
+            if (state == TelephonyManager.CALL_STATE_RINGING) {
+                // Check if the number is blocked, to silence the ringer.
+                String countryIso = GeoUtil.getCurrentCountryIso(mContext);
+                mFilteredQueryHandler.isBlockedNumber(
+                        mOnCheckBlockedListener, incomingNumber, countryIso);
+            }
+        }
+    };
+
+    private final OnCheckBlockedListener mOnCheckBlockedListener = new OnCheckBlockedListener() {
+        @Override
+        public void onCheckComplete(final Integer id) {
+            if (id != null) {
+                // Silence the ringer now to prevent ringing and vibration before the call is
+                // terminated when Telecom attempts to add it.
+                TelecomUtil.silenceRinger(mContext);
+            }
+        }
+    };
+
+    /**
+     * Observes the CallLog to delete the call log entry for the blocked call after it is added.
+     * Times out if too much time has passed.
+     */
+    private class BlockedNumberContentObserver extends ContentObserver {
+        private static final int TIMEOUT_MS = 5000;
+
+        private Handler mHandler;
+        private String mNumber;
+        private long mTimeAddedMs;
+
+        private Runnable mTimeoutRunnable = new Runnable() {
+            @Override
+            public void run() {
+                unregister();
+            }
+        };
+
+        public BlockedNumberContentObserver(Handler handler, String number, long timeAddedMs) {
+            super(handler);
+
+            mHandler = handler;
+            mNumber = number;
+            mTimeAddedMs = timeAddedMs;
         }
 
         @Override
-        public void onDetailsChanged(android.telecom.Call telecomCall,
-                android.telecom.Call.Details details) {
-            final Call call = mCallList.getCallByTelecommCall(telecomCall);
-            if (call == null) {
-                Log.w(this, "Call not found in call list: " + telecomCall);
-                return;
-            }
-            for (InCallDetailsListener listener : mDetailsListeners) {
-                listener.onDetailsChanged(call, details);
+        public void onChange(boolean selfChange) {
+            CallLogAsyncTaskUtil.deleteBlockedCall(mContext, mNumber, mTimeAddedMs,
+                    new OnCallLogQueryFinishedListener() {
+                        @Override
+                        public void onQueryFinished(boolean hasEntry) {
+                            if (mContext != null && hasEntry) {
+                                unregister();
+                            }
+                        }
+                    });
+        }
+
+        public void register() {
+            if (mContext != null) {
+                mContext.getContentResolver().registerContentObserver(
+                        CallLog.CONTENT_URI, true, this);
+                mHandler.postDelayed(mTimeoutRunnable, TIMEOUT_MS);
             }
         }
 
-        @Override
-        public void onConferenceableCallsChanged(android.telecom.Call telecomCall,
-                List<android.telecom.Call> conferenceableCalls) {
-            Log.i(this, "onConferenceableCallsChanged: " + telecomCall);
-            onDetailsChanged(telecomCall, telecomCall.getDetails());
+        private void unregister() {
+            if (mContext != null) {
+                mHandler.removeCallbacks(mTimeoutRunnable);
+                mContext.getContentResolver().unregisterContentObserver(this);
+            }
         }
     };
 
@@ -176,6 +324,7 @@
     private MaterialPalette mThemeColors;
 
     private TelecomManager mTelecomManager;
+    private TelephonyManager mTelephonyManager;
 
     public static synchronized InCallPresenter getInstance() {
         if (sInCallPresenter == null) {
@@ -239,6 +388,11 @@
 
         VideoPauseController.getInstance().setUp(this);
 
+        mFilteredQueryHandler = new FilteredNumberAsyncQueryHandler(context.getContentResolver());
+        mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+        mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
+        mCallList.setFilteredNumberQueryHandler(mFilteredQueryHandler);
+
         Log.d(this, "Finished InCallPresenter.setUp");
     }
 
@@ -252,9 +406,12 @@
      */
     public void tearDown() {
         Log.d(this, "tearDown");
+        mCallList.clearOnDisconnect();
+
         mServiceConnected = false;
         attemptCleanup();
 
+        mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
         VideoPauseController.getInstance().tearDown();
     }
 
@@ -387,23 +544,96 @@
         bringToForeground(showDialpad);
     }
 
-    /**
-     * TODO: Consider listening to CallList callbacks to do this instead of receiving a direct
-     * method invocation from InCallService.
-     */
-    public void onCallAdded(android.telecom.Call call) {
-        // Since a call has been added we are no longer waiting for Telecom to send us a
-        // call.
+    public void onCallAdded(final android.telecom.Call call) {
+        // Check if call should be blocked.
+        if (!TelecomCallUtil.isEmergencyCall(call)
+                && !FilteredNumbersUtil.hasRecentEmergencyCall(mContext)
+                && call.getState() == android.telecom.Call.STATE_RINGING) {
+            maybeBlockCall(call);
+        } else {
+            mCallList.onCallAdded(call);
+        }
+
+        // Since a call has been added we are no longer waiting for Telecom to send us a call.
         setBoundAndWaitingForOutgoingCall(false, null);
-        call.registerCallback(mCallCallback);
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            call.registerCallback((android.telecom.Call.Callback) mCallCallback);
+        } else {
+            call.addListener((android.telecom.Call.Listener) mCallCallback);
+        }
     }
 
     /**
-     * TODO: Consider listening to CallList callbacks to do this instead of receiving a direct
-     * method invocation from InCallService.
+     * Checks whether a call should be blocked, and blocks it if so. Otherwise, it adds the call
+     * to the CallList so it can proceed as normal. There is a timeout, so if the function for
+     * checking whether a function is blocked does not return in a reasonable time, we proceed
+     * with adding the call anyways.
      */
+    private void maybeBlockCall(final android.telecom.Call call) {
+        final String countryIso = GeoUtil.getCurrentCountryIso(mContext);
+        final String number = TelecomCallUtil.getNumber(call);
+        final long timeAdded = System.currentTimeMillis();
+
+        // Though AtomicBoolean's can be scary, don't fear, as in this case it is only used on the
+        // main UI thread. It is needed so we can change its value within different scopes, since
+        // that cannot be done with a final boolean.
+        final AtomicBoolean hasTimedOut = new AtomicBoolean(false);
+
+        final Handler handler = new Handler();
+
+        // Proceed if the query is slow; the call may still be blocked after the query returns.
+        final Runnable runnable = new Runnable() {
+            public void run() {
+                hasTimedOut.set(true);
+                mCallList.onCallAdded(call);
+            }
+        };
+        handler.postDelayed(runnable, BLOCK_QUERY_TIMEOUT_MS);
+
+        OnCheckBlockedListener onCheckBlockedListener = new OnCheckBlockedListener() {
+            @Override
+            public void onCheckComplete(final Integer id) {
+                if (!hasTimedOut.get()) {
+                    handler.removeCallbacks(runnable);
+                }
+                if (id == null) {
+                    if (!hasTimedOut.get()) {
+                        mCallList.onCallAdded(call);
+                    }
+                } else {
+                    call.reject(false, null);
+                    Log.d(this, "checkForBlockedCall: " + Log.pii(number) + " blocked.");
+                    Logger.logInteraction(InteractionEvent.CALL_BLOCKED);
+
+                    mFilteredQueryHandler.incrementFilteredCount(id);
+
+                    // Register observer to update the call log.
+                    // BlockedNumberContentObserver will unregister after successful log or timeout.
+                    BlockedNumberContentObserver contentObserver =
+                            new BlockedNumberContentObserver(new Handler(), number, timeAdded);
+                    contentObserver.register();
+                }
+            }
+        };
+
+        final boolean success = mFilteredQueryHandler.isBlockedNumber(
+                onCheckBlockedListener, number, countryIso);
+        if (!success) {
+            Log.d(this, "checkForBlockedCall: invalid number, skipping block checking");
+            if (!hasTimedOut.get()) {
+                handler.removeCallbacks(runnable);
+                mCallList.onCallAdded(call);
+            }
+        }
+    }
+
     public void onCallRemoved(android.telecom.Call call) {
-        call.unregisterCallback(mCallCallback);
+        mCallList.onCallRemoved(call);
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            call.unregisterCallback((android.telecom.Call.Callback) mCallCallback);
+        } else {
+            call.removeListener((android.telecom.Call.Listener) mCallCallback);
+        }
     }
 
     public void onCanAddCallChanged(boolean canAddCall) {
@@ -490,6 +720,10 @@
         if (isActivityStarted()) {
             mInCallActivity.dismissKeyguard(false);
         }
+
+        if (call.isEmergencyCall()) {
+            FilteredNumbersUtil.recordLastEmergencyCallTime(mContext);
+        }
     }
 
     /**
@@ -768,17 +1002,26 @@
         return mIsActivityPreviouslyStarted;
     }
 
+    /**
+     * Determines if the In-Call app is currently changing configuration.
+     *
+     * @return {@code true} if the In-Call app is changing configuration.
+     */
     public boolean isChangingConfigurations() {
         return mIsChangingConfigurations;
     }
 
+    /**
+     * Tracks whether the In-Call app is currently in the process of changing configuration (i.e.
+     * screen orientation).
+     */
     /*package*/
     void updateIsChangingConfigurations() {
         mIsChangingConfigurations = false;
         if (mInCallActivity != null) {
             mIsChangingConfigurations = mInCallActivity.isChangingConfigurations();
         }
-        Log.d(this, "IsChangingConfigurations=" + mIsChangingConfigurations);
+        Log.v(this, "updateIsChangingConfigurations = " + mIsChangingConfigurations);
     }
 
 
@@ -961,21 +1204,46 @@
      * @return {@code true} if in-call is now in fullscreen mode.
      */
     public boolean toggleFullscreenMode() {
-        mIsFullScreen = !mIsFullScreen;
-        Log.v(this, "toggleFullscreenMode = " + mIsFullScreen);
-        notifyFullscreenModeChange(mIsFullScreen);
+        boolean isFullScreen = !mIsFullScreen;
+        Log.v(this, "toggleFullscreenMode = " + isFullScreen);
+        setFullScreen(isFullScreen);
         return mIsFullScreen;
     }
 
     /**
+     * Clears the previous fullscreen state.
+     */
+    public void clearFullscreen() {
+        mIsFullScreen = false;
+    }
+
+    /**
      * Changes the fullscreen mode of the in-call UI.
      *
      * @param isFullScreen {@code true} if in-call should be in fullscreen mode, {@code false}
      *                                 otherwise.
      */
     public void setFullScreen(boolean isFullScreen) {
+        setFullScreen(isFullScreen, false /* force */);
+    }
+
+    /**
+     * Changes the fullscreen mode of the in-call UI.
+     *
+     * @param isFullScreen {@code true} if in-call should be in fullscreen mode, {@code false}
+     *                                 otherwise.
+     * @param force {@code true} if fullscreen mode should be set regardless of its current state.
+     */
+    public void setFullScreen(boolean isFullScreen, boolean force) {
         Log.v(this, "setFullScreen = " + isFullScreen);
-        if (mIsFullScreen == isFullScreen) {
+
+        // As a safeguard, ensure we cannot enter fullscreen if the dialpad is shown.
+        if (isDialpadVisible()) {
+            isFullScreen = false;
+            Log.v(this, "setFullScreen overridden as dialpad is shown = " + isFullScreen);
+        }
+
+        if (mIsFullScreen == isFullScreen && !force) {
             Log.v(this, "setFullScreen ignored as already in that state.");
             return;
         }
@@ -1004,6 +1272,21 @@
     }
 
     /**
+     * Called by the {@link CallCardPresenter} to inform of a change in visibility of the secondary
+     * caller info bar.
+     *
+     * @param isVisible {@code true} if the secondary caller info is visible, {@code false}
+     *      otherwise.
+     * @param height the height of the secondary caller info bar.
+     */
+    public void notifySecondaryCallerInfoVisibilityChanged(boolean isVisible, int height) {
+        for (InCallEventListener listener : mInCallEventListeners) {
+            listener.onSecondaryCallerInfoVisibilityChanged(isVisible, height);
+        }
+    }
+
+
+    /**
      * For some disconnected causes, we show a dialog.  This calls into the activity to show
      * the dialog if appropriate for the call.
      */
@@ -1068,7 +1351,7 @@
         // re-initiate the start-up animation, so we do not need to do anything here.
         //
         // It is also possible to go into an intermediate state where the call has been initiated
-        // but Telecomm has not yet returned with the details of the call (handle, gateway, etc.).
+        // but Telecom has not yet returned with the details of the call (handle, gateway, etc.).
         // This pending outgoing state can also launch the call screen.
         //
         // This is different from the incoming call sequence because we do not need to shock the
@@ -1079,7 +1362,7 @@
         // Direct transition from PENDING_OUTGOING -> INCALL means that there was an error in the
         // outgoing call process, so the UI should be brought up to show an error dialog.
         showCallUi |= (InCallState.PENDING_OUTGOING == mInCallState
-                && InCallState.INCALL == newState && !isActivityStarted());
+                && InCallState.INCALL == newState && !isShowingInCallUi());
 
         // Another exception - InCallActivity is in charge of disconnecting a call with no
         // valid accounts set. Bring the UI up if this is true for the current pending outgoing
@@ -1163,9 +1446,9 @@
      * @param call
      */
     private void setDisconnectCauseForMissingAccounts(Call call) {
-        android.telecom.Call telecomCall = call.getTelecommCall();
+        android.telecom.Call telecomCall = call.getTelecomCall();
 
-        Bundle extras = telecomCall.getDetails().getIntentExtras();
+        Bundle extras = DetailsCompat.getIntentExtras(telecomCall.getDetails());
         // Initialize the extras bundle to avoid NPE
         if (extras == null) {
             extras = new Bundle();
@@ -1339,64 +1622,32 @@
     }
 
     /**
-     * Handles changes to the device rotation.
+     * Notifies listeners of changes in orientation and notify calls of rotation angle change.
      *
-     * @param rotation The device rotation (one of: {@link Surface#ROTATION_0},
-     *      {@link Surface#ROTATION_90}, {@link Surface#ROTATION_180},
-     *      {@link Surface#ROTATION_270}).
-     */
-    public void onDeviceRotationChange(int rotation) {
-        Log.d(this, "onDeviceRotationChange: rotation=" + rotation);
-        // First translate to rotation in degrees.
-        if (mCallList != null) {
-            mCallList.notifyCallsOfDeviceRotation(toRotationAngle(rotation));
-        } else {
-            Log.w(this, "onDeviceRotationChange: CallList is null.");
-        }
-    }
-
-    /**
-     * Converts rotation constants to rotation in degrees.
-     * @param rotation Rotation constants (one of: {@link Surface#ROTATION_0},
-     *      {@link Surface#ROTATION_90}, {@link Surface#ROTATION_180},
-     *      {@link Surface#ROTATION_270}).
-     */
-    public static int toRotationAngle(int rotation) {
-        int rotationAngle;
-        switch (rotation) {
-            case Surface.ROTATION_0:
-                rotationAngle = 0;
-                break;
-            case Surface.ROTATION_90:
-                rotationAngle = 90;
-                break;
-            case Surface.ROTATION_180:
-                rotationAngle = 180;
-                break;
-            case Surface.ROTATION_270:
-                rotationAngle = 270;
-                break;
-            default:
-                rotationAngle = 0;
-        }
-        return rotationAngle;
-    }
-
-    /**
-     * Notifies listeners of changes in orientation (e.g. portrait/landscape).
-     *
-     * @param orientation The orientation of the device (one of: {@link Surface#ROTATION_0},
-     *      {@link Surface#ROTATION_90}, {@link Surface#ROTATION_180},
-     *      {@link Surface#ROTATION_270}).
+     * @param orientation The screen orientation of the device (one of:
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_0},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_90},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_180},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_270}).
      */
     public void onDeviceOrientationChange(int orientation) {
+        Log.d(this, "onDeviceOrientationChange: orientation= " + orientation);
+
+        if (mCallList != null) {
+            mCallList.notifyCallsOfDeviceRotation(orientation);
+        } else {
+            Log.w(this, "onDeviceOrientationChange: CallList is null.");
+        }
+
+        // Notify listeners of device orientation changed.
         for (InCallOrientationListener listener : mOrientationListeners) {
             listener.onDeviceOrientationChanged(orientation);
         }
     }
 
     /**
-     * Configures the in-call UI activity so it can change orientations or not.
+     * Configures the in-call UI activity so it can change orientations or not. Enables the
+     * orientation event listener if allowOrientationChange is true, disables it if false.
      *
      * @param allowOrientationChange {@code True} if the in-call UI can change between portrait
      *      and landscape.  {@Code False} if the in-call UI should be locked in portrait.
@@ -1408,10 +1659,15 @@
         }
 
         if (!allowOrientationChange) {
-            mInCallActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
+            mInCallActivity.setRequestedOrientation(
+                    InCallOrientationEventListener.NO_SENSOR_SCREEN_ORIENTATION);
         } else {
-            mInCallActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
+            // Using SCREEN_ORIENTATION_FULL_SENSOR allows for reverse-portrait orientation, where
+            // SCREEN_ORIENTATION_SENSOR does not.
+            mInCallActivity.setRequestedOrientation(
+                    InCallOrientationEventListener.FULL_SENSOR_SCREEN_ORIENTATION);
         }
+        mInCallActivity.enableInCallOrientationEventListener(allowOrientationChange);
     }
 
     public void enableScreenTimeout(boolean enable) {
@@ -1468,6 +1724,18 @@
     }
 
     /**
+     * Determines if the dialpad is visible.
+     *
+     * @return {@code true} if the dialpad is visible, {@code false} otherwise.
+     */
+    public boolean isDialpadVisible() {
+        if (mInCallActivity == null) {
+            return false;
+        }
+        return mInCallActivity.isDialpadVisible();
+    }
+
+    /**
      * @return True if the application is currently running in a right-to-left locale.
      */
     public static boolean isRtl() {
@@ -1490,7 +1758,9 @@
         final Resources resources = mInCallActivity.getResources();
         final int color;
         if (resources.getBoolean(R.bool.is_layout_landscape)) {
-            color = resources.getColor(R.color.statusbar_background_color, null);
+            // TODO use ResourcesCompat.getColor(Resources, int, Resources.Theme) when available
+            // {@link Resources#getColor(int)} used for compatibility
+            color = resources.getColor(R.color.statusbar_background_color);
         } else {
             color = mThemeColors.mSecondaryColor;
         }
@@ -1522,10 +1792,11 @@
             final TelecomManager tm = getTelecomManager();
 
             if (tm != null) {
-                final PhoneAccount account = tm.getPhoneAccount(phoneAccountHandle);
+                final PhoneAccount account =
+                        TelecomManagerCompat.getPhoneAccount(tm, phoneAccountHandle);
                 // For single-sim devices, there will be no selected highlight color, so the phone
                 // account will default to NO_HIGHLIGHT_COLOR.
-                if (account != null) {
+                if (account != null && CompatUtils.isLollipopMr1Compatible()) {
                     highlightColor = account.getHighlightColor();
                 }
             }
@@ -1545,6 +1816,13 @@
         return mTelecomManager;
     }
 
+    /**
+     * @return An instance of TelephonyManager
+     */
+    public TelephonyManager getTelephonyManager() {
+        return mTelephonyManager;
+    }
+
     InCallActivity getActivity() {
         return mInCallActivity;
     }
@@ -1576,7 +1854,7 @@
         WAITING_FOR_ACCOUNT,
 
         // UI is starting up but no call has been initiated yet.
-        // The UI is waiting for Telecomm to respond.
+        // The UI is waiting for Telecom to respond.
         PENDING_OUTGOING,
 
         // User is dialing out
@@ -1623,6 +1901,7 @@
      */
     public interface InCallEventListener {
         public void onFullscreenModeChanged(boolean isFullscreenMode);
+        public void onSecondaryCallerInfoVisibilityChanged(boolean isVisible, int height);
     }
 
     public interface InCallUiListener {
diff --git a/InCallUI/src/com/android/incallui/InCallServiceImpl.java b/InCallUI/src/com/android/incallui/InCallServiceImpl.java
index 8e65f1a..31d6efb 100644
--- a/InCallUI/src/com/android/incallui/InCallServiceImpl.java
+++ b/InCallUI/src/com/android/incallui/InCallServiceImpl.java
@@ -18,22 +18,28 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.os.Build;
 import android.os.IBinder;
+import android.telecom.AudioState;
 import android.telecom.Call;
 import android.telecom.CallAudioState;
 import android.telecom.InCallService;
+import android.telecom.Phone;
+
+import com.android.contacts.common.compat.SdkVersionOverride;
 
 /**
- * Used to receive updates about calls from the Telecomm component.  This service is bound to
- * Telecomm while there exist calls which potentially require UI. This includes ringing (incoming),
- * dialing (outgoing), and active calls. When the last call is disconnected, Telecomm will unbind to
+ * Used to receive updates about calls from the Telecom component.  This service is bound to
+ * Telecom while there exist calls which potentially require UI. This includes ringing (incoming),
+ * dialing (outgoing), and active calls. When the last call is disconnected, Telecom will unbind to
  * the service triggering InCallActivity (via CallList) to finish soon after.
  */
 public class InCallServiceImpl extends InCallService {
 
     @Override
     public void onCallAudioStateChanged(CallAudioState audioState) {
-        AudioModeProvider.getInstance().onAudioStateChanged(audioState);
+        AudioModeProvider.getInstance().onAudioStateChanged(audioState.isMuted(),
+                audioState.getRoute(), audioState.getSupportedRouteMask());
     }
 
     @Override
@@ -43,13 +49,11 @@
 
     @Override
     public void onCallAdded(Call call) {
-        CallList.getInstance().onCallAdded(call);
         InCallPresenter.getInstance().onCallAdded(call);
     }
 
     @Override
     public void onCallRemoved(Call call) {
-        CallList.getInstance().onCallRemoved(call);
         InCallPresenter.getInstance().onCallRemoved(call);
     }
 
@@ -94,8 +98,87 @@
         Log.v(this, "tearDown");
         // Tear down the InCall system
         TelecomAdapter.getInstance().clearInCallService();
-        CallList.getInstance().clearOnDisconnect();
         InCallPresenter.getInstance().tearDown();
     }
 
+    /*
+     * Compatibility code for devices running the L sdk. In that version of the sdk, InCallService
+     * callbacks were registered via a android.telecom.Phone$Listener. These callbacks typically
+     * correspond 1:1 to callbacks now found in android.telecom.InCallService so the compatibility
+     * code forwards to those methods.
+     */
+    private Phone.Listener mPhoneListener = new Phone.Listener() {
+        @Override
+        public void onAudioStateChanged(Phone phone, AudioState audioState) {
+            /*
+             * Need to use reflection here; in M these are private fields retrieved through getters,
+             * but in L they are public fields without getters.
+             */
+            try {
+                boolean isMuted = AudioState.class.getField("isMuted").getBoolean(audioState);
+                int route = AudioState.class.getField("route").getInt(audioState);
+                int supportedRouteMask = AudioState.class.getField("supportedRouteMask")
+                        .getInt(audioState);
+                AudioModeProvider.getInstance()
+                        .onAudioStateChanged(isMuted, route, supportedRouteMask);
+            } catch (ReflectiveOperationException e) {
+                Log.e(this, "Unable to use reflection to retrieve AudioState fields", e);
+            }
+        }
+
+        @Override
+        public void onBringToForeground(Phone phone, boolean showDialpad) {
+            InCallServiceImpl.this.onBringToForeground(showDialpad);
+        }
+
+        @Override
+        public void onCallAdded(Phone phone, Call call) {
+            InCallServiceImpl.this.onCallAdded(call);
+        }
+
+        @Override
+        public void onCallRemoved(Phone phone, Call call) {
+            InCallServiceImpl.this.onCallRemoved(call);
+        }
+    };
+
+    private Phone mPhone;
+
+    @Override
+    public void onPhoneCreated(Phone phone) {
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            return;
+        }
+        mPhone = phone;
+        mPhone.addListener(mPhoneListener);
+    }
+
+    @Override
+    public void onPhoneDestroyed(Phone phone) {
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            return;
+        }
+        mPhone.removeListener(mPhoneListener);
+        mPhone = null;
+    }
+
+    /*
+     * setMuted and setAudioRoute are final in InCallService so compat methods are
+     * used to perform the needed branching logic based on sdk version
+     */
+    public void setMutedCompat(boolean state) {
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            super.setMuted(state);
+            return;
+        }
+        mPhone.setMuted(state);
+    }
+
+    public void setAudioRouteCompat(int route) {
+        if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M) {
+            super.setAudioRoute(route);
+            return;
+        }
+        mPhone.setAudioRoute(route);
+    }
 }
diff --git a/InCallUI/src/com/android/incallui/InCallServiceListener.java b/InCallUI/src/com/android/incallui/InCallServiceListener.java
index 295385d..11a5b08 100644
--- a/InCallUI/src/com/android/incallui/InCallServiceListener.java
+++ b/InCallUI/src/com/android/incallui/InCallServiceListener.java
@@ -19,7 +19,7 @@
 import android.telecom.InCallService;
 
 /**
- * Interface implemented by In-Call components that maintain a reference to the Telecomm API
+ * Interface implemented by In-Call components that maintain a reference to the Telecom API
  * {@code InCallService} object. Clarifies the expectations associated with the relevant method
  * calls.
  */
diff --git a/InCallUI/src/com/android/incallui/InCallUIMaterialColorMapUtils.java b/InCallUI/src/com/android/incallui/InCallUIMaterialColorMapUtils.java
index d65580e..44b035f 100644
--- a/InCallUI/src/com/android/incallui/InCallUIMaterialColorMapUtils.java
+++ b/InCallUI/src/com/android/incallui/InCallUIMaterialColorMapUtils.java
@@ -44,9 +44,13 @@
         return super.calculatePrimaryAndSecondaryColor(color);
     }
 
+    /**
+     * {@link Resources#getColor(int) used for compatibility
+     */
+    @SuppressWarnings("deprecation")
     public static MaterialPalette getDefaultPrimaryAndSecondaryColors(Resources resources) {
-        final int primaryColor = resources.getColor(R.color.dialer_theme_color, null);
-        final int secondaryColor = resources.getColor(R.color.dialer_theme_color_dark, null);
+        final int primaryColor = resources.getColor(R.color.dialer_theme_color);
+        final int secondaryColor = resources.getColor(R.color.dialer_theme_color_dark);
         return new MaterialPalette(primaryColor, secondaryColor);
     }
 }
\ No newline at end of file
diff --git a/InCallUI/src/com/android/incallui/InCallVideoCallCallback.java b/InCallUI/src/com/android/incallui/InCallVideoCallCallback.java
index 87b886d..76f8c09 100644
--- a/InCallUI/src/com/android/incallui/InCallVideoCallCallback.java
+++ b/InCallUI/src/com/android/incallui/InCallVideoCallCallback.java
@@ -49,11 +49,11 @@
     @Override
     public void onSessionModifyRequestReceived(VideoProfile videoProfile) {
         Log.d(this, " onSessionModifyRequestReceived videoProfile=" + videoProfile);
-        int previousVideoState = CallUtils.getUnPausedVideoState(mCall.getVideoState());
-        int newVideoState = CallUtils.getUnPausedVideoState(videoProfile.getVideoState());
+        int previousVideoState = VideoUtils.getUnPausedVideoState(mCall.getVideoState());
+        int newVideoState = VideoUtils.getUnPausedVideoState(videoProfile.getVideoState());
 
-        boolean wasVideoCall = CallUtils.isVideoCall(previousVideoState);
-        boolean isVideoCall = CallUtils.isVideoCall(newVideoState);
+        boolean wasVideoCall = VideoUtils.isVideoCall(previousVideoState);
+        boolean isVideoCall = VideoUtils.isVideoCall(newVideoState);
 
         // Check for upgrades to video and downgrades to audio.
         if (wasVideoCall && !isVideoCall) {
@@ -97,7 +97,7 @@
         } else if (requestedProfile != null && responseProfile != null) {
             boolean modifySucceeded = requestedProfile.getVideoState() ==
                     responseProfile.getVideoState();
-            boolean isVideoCall = CallUtils.isVideoCall(responseProfile.getVideoState());
+            boolean isVideoCall = VideoUtils.isVideoCall(responseProfile.getVideoState());
             if (modifySucceeded && isVideoCall) {
                 InCallVideoCallCallbackNotifier.getInstance().upgradeToVideoSuccess(mCall);
             } else if (!modifySucceeded && isVideoCall) {
diff --git a/InCallUI/src/com/android/incallui/ProximitySensor.java b/InCallUI/src/com/android/incallui/ProximitySensor.java
index 401ebd1..733a67d 100644
--- a/InCallUI/src/com/android/incallui/ProximitySensor.java
+++ b/InCallUI/src/com/android/incallui/ProximitySensor.java
@@ -16,20 +16,20 @@
 
 package com.android.incallui;
 
+import com.google.common.base.Objects;
+
 import android.content.Context;
 import android.content.res.Configuration;
 import android.hardware.display.DisplayManager;
 import android.hardware.display.DisplayManager.DisplayListener;
 import android.os.PowerManager;
-import android.telecom.CallAudioState;
 import android.view.Display;
 
+import com.android.dialer.compat.CallAudioStateCompat;
 import com.android.incallui.AudioModeProvider.AudioModeListener;
 import com.android.incallui.InCallPresenter.InCallState;
 import com.android.incallui.InCallPresenter.InCallStateListener;
 
-import com.google.common.base.Objects;
-
 /**
  * Class manages the proximity sensor for the in-call UI.
  * We enable the proximity sensor while the user in a phone call. The Proximity sensor turns off
@@ -228,9 +228,9 @@
         // turn proximity sensor off and turn screen on immediately if
         // we are using a headset, the keyboard is open, or the device
         // is being held in a horizontal position.
-            boolean screenOnImmediately = (CallAudioState.ROUTE_WIRED_HEADSET == audioMode
-                    || CallAudioState.ROUTE_SPEAKER == audioMode
-                    || CallAudioState.ROUTE_BLUETOOTH == audioMode
+            boolean screenOnImmediately = (CallAudioStateCompat.ROUTE_WIRED_HEADSET == audioMode
+                    || CallAudioStateCompat.ROUTE_SPEAKER == audioMode
+                    || CallAudioStateCompat.ROUTE_BLUETOOTH == audioMode
                     || mIsHardKeyboardOpen);
 
             // We do not keep the screen off when the user is outside in-call screen and we are
@@ -254,7 +254,7 @@
                     .add("offhook", mIsPhoneOffhook ? 1 : 0)
                     .add("hor", horizontal ? 1 : 0)
                     .add("ui", mUiShowing ? 1 : 0)
-                    .add("aud", CallAudioState.audioRouteToString(audioMode))
+                    .add("aud", CallAudioStateCompat.audioRouteToString(audioMode))
                     .toString());
 
             if (mIsPhoneOffhook && !screenOnImmediately) {
diff --git a/InCallUI/src/com/android/incallui/StatusBarNotifier.java b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
index 89794cd..1f2729e 100644
--- a/InCallUI/src/com/android/incallui/StatusBarNotifier.java
+++ b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
@@ -34,7 +34,9 @@
 import android.text.TextDirectionHeuristics;
 import android.text.TextUtils;
 
+import com.android.contacts.common.preference.ContactsPreferences;
 import com.android.contacts.common.util.BitmapUtil;
+import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.incallui.ContactInfoCache.ContactCacheEntry;
 import com.android.incallui.ContactInfoCache.ContactInfoCacheCallback;
 import com.android.incallui.InCallPresenter.InCallState;
@@ -58,6 +60,7 @@
     private static final int NOTIFICATION_INCOMING_CALL = 2;
 
     private final Context mContext;
+    private final ContactsPreferences mContactsPreferences;
     private final ContactInfoCache mContactInfoCache;
     private final NotificationManager mNotificationManager;
     private int mCurrentNotification = NOTIFICATION_NONE;
@@ -72,6 +75,7 @@
     public StatusBarNotifier(Context context, ContactInfoCache contactInfoCache) {
         Preconditions.checkNotNull(context);
         mContext = context;
+        mContactsPreferences = new ContactsPreferences(context);
         mContactInfoCache = contactInfoCache;
         mNotificationManager =
                 (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
@@ -181,6 +185,7 @@
             public void onContactInfoComplete(String callId, ContactCacheEntry entry) {
                 Call call = CallList.getInstance().getCallById(callId);
                 if (call != null) {
+                    call.getLogState().contactLookupResult = entry.contactLookupResult;
                     buildAndSendNotification(call, entry);
                 }
             }
@@ -192,6 +197,9 @@
                     buildAndSendNotification(call, entry);
                 }
             }
+
+            @Override
+            public void onContactInteractionsInfoComplete(String callId, ContactCacheEntry entry) {}
         });
     }
 
@@ -217,9 +225,7 @@
         final String contentTitle = getContentTitle(contactInfo, call);
 
         final int notificationType;
-        if ((state == Call.State.INCOMING
-                || state == Call.State.CALL_WAITING) &&
-                        !InCallPresenter.getInstance().isShowingInCallUi()) {
+        if (state == Call.State.INCOMING || state == Call.State.CALL_WAITING) {
             notificationType = NOTIFICATION_INCOMING_CALL;
         } else {
             notificationType = NOTIFICATION_IN_CALL;
@@ -244,7 +250,8 @@
         builder.setContentIntent(inCallPendingIntent);
 
         // Set the intent as a full screen intent as well if a call is incoming
-        if (notificationType == NOTIFICATION_INCOMING_CALL) {
+        if (notificationType == NOTIFICATION_INCOMING_CALL
+                && !InCallPresenter.getInstance().isShowingInCallUi()) {
             configureFullScreenIntent(builder, inCallPendingIntent, call);
             // Set the notification category for incoming calls
             builder.setCategory(Notification.CATEGORY_CALL);
@@ -273,7 +280,7 @@
          * Fire off the notification
          */
         Notification notification = builder.build();
-        if (mCurrentNotification != notificationType) {
+        if (mCurrentNotification != notificationType && mCurrentNotification != NOTIFICATION_NONE) {
             Log.i(this, "Previous notification already showing - cancelling "
                     + mCurrentNotification);
             mNotificationManager.cancel(mCurrentNotification);
@@ -357,13 +364,15 @@
         if (call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) {
             return mContext.getResources().getString(R.string.card_title_conf_call);
         }
-        if (TextUtils.isEmpty(contactInfo.name)) {
-            return TextUtils.isEmpty(contactInfo.number) ? null
-                    : BidiFormatter.getInstance().unicodeWrap(
-                            contactInfo.number.toString(), TextDirectionHeuristics.LTR);
+
+        String preferredName = ContactDisplayUtils.getPreferredDisplayName(contactInfo.namePrimary,
+                contactInfo.nameAlternative, mContactsPreferences.getDisplayOrder());
+        if (TextUtils.isEmpty(preferredName)) {
+            return TextUtils.isEmpty(contactInfo.number) ? null : BidiFormatter.getInstance()
+                    .unicodeWrap(contactInfo.number, TextDirectionHeuristics.LTR);
         }
 
-        return contactInfo.name;
+        return preferredName;
     }
 
     private void addPersonReference(Notification.Builder builder, ContactCacheEntry contactInfo,
diff --git a/InCallUI/src/com/android/incallui/TelecomAdapter.java b/InCallUI/src/com/android/incallui/TelecomAdapter.java
index 37efdee..0fc2e28 100644
--- a/InCallUI/src/com/android/incallui/TelecomAdapter.java
+++ b/InCallUI/src/com/android/incallui/TelecomAdapter.java
@@ -16,13 +16,16 @@
 
 package com.android.incallui;
 
+import com.google.common.base.Preconditions;
+
 import android.content.ActivityNotFoundException;
 import android.content.Intent;
 import android.os.Looper;
 import android.telecom.InCallService;
 import android.telecom.PhoneAccountHandle;
 
-import com.google.common.base.Preconditions;
+import com.android.incallui.compat.telecom.DetailsCompat;
+import com.android.incallui.compat.telecom.InCallServiceCompat;
 
 import java.util.List;
 
@@ -53,13 +56,13 @@
         mInCallService = null;
     }
 
-    private android.telecom.Call getTelecommCallById(String callId) {
+    private android.telecom.Call getTelecomCallById(String callId) {
         Call call = CallList.getInstance().getCallById(callId);
-        return call == null ? null : call.getTelecommCall();
+        return call == null ? null : call.getTelecomCall();
     }
 
     void answerCall(String callId, int videoState) {
-        android.telecom.Call call = getTelecommCallById(callId);
+        android.telecom.Call call = getTelecomCallById(callId);
         if (call != null) {
             call.answer(videoState);
         } else {
@@ -68,7 +71,7 @@
     }
 
     void rejectCall(String callId, boolean rejectWithMessage, String message) {
-        android.telecom.Call call = getTelecommCallById(callId);
+        android.telecom.Call call = getTelecomCallById(callId);
         if (call != null) {
             call.reject(rejectWithMessage, message);
         } else {
@@ -77,7 +80,7 @@
     }
 
     void disconnectCall(String callId) {
-        android.telecom.Call call = getTelecommCallById(callId);
+        android.telecom.Call call = getTelecomCallById(callId);
         if (call != null) {
             call.disconnect();
         } else {
@@ -86,7 +89,7 @@
     }
 
     void holdCall(String callId) {
-        android.telecom.Call call = getTelecommCallById(callId);
+        android.telecom.Call call = getTelecomCallById(callId);
         if (call != null) {
             call.hold();
         } else {
@@ -95,7 +98,7 @@
     }
 
     void unholdCall(String callId) {
-        android.telecom.Call call = getTelecommCallById(callId);
+        android.telecom.Call call = getTelecomCallById(callId);
         if (call != null) {
             call.unhold();
         } else {
@@ -105,7 +108,7 @@
 
     void mute(boolean shouldMute) {
         if (mInCallService != null) {
-            mInCallService.setMuted(shouldMute);
+            InCallServiceCompat.setMuted(mInCallService, shouldMute);
         } else {
             Log.e(this, "error mute, mInCallService is null");
         }
@@ -113,14 +116,14 @@
 
     void setAudioRoute(int route) {
         if (mInCallService != null) {
-            mInCallService.setAudioRoute(route);
+            InCallServiceCompat.setAudioRoute(mInCallService, route);
         } else {
             Log.e(this, "error setAudioRoute, mInCallService is null");
         }
     }
 
     void separateCall(String callId) {
-        android.telecom.Call call = getTelecommCallById(callId);
+        android.telecom.Call call = getTelecomCallById(callId);
         if (call != null) {
             call.splitFromConference();
         } else {
@@ -129,13 +132,13 @@
     }
 
     void merge(String callId) {
-        android.telecom.Call call = getTelecommCallById(callId);
+        android.telecom.Call call = getTelecomCallById(callId);
         if (call != null) {
             List<android.telecom.Call> conferenceable = call.getConferenceableCalls();
             if (!conferenceable.isEmpty()) {
                 call.conference(conferenceable.get(0));
             } else {
-                if (call.getDetails().can(
+                if (DetailsCompat.can(call.getDetails(),
                         android.telecom.Call.Details.CAPABILITY_MERGE_CONFERENCE)) {
                     call.mergeConference();
                 }
@@ -146,9 +149,9 @@
     }
 
     void swap(String callId) {
-        android.telecom.Call call = getTelecommCallById(callId);
+        android.telecom.Call call = getTelecomCallById(callId);
         if (call != null) {
-            if (call.getDetails().can(
+            if (DetailsCompat.can(call.getDetails(),
                     android.telecom.Call.Details.CAPABILITY_SWAP_CONFERENCE)) {
                 call.swapConference();
             }
@@ -179,7 +182,7 @@
     }
 
     void playDtmfTone(String callId, char digit) {
-        android.telecom.Call call = getTelecommCallById(callId);
+        android.telecom.Call call = getTelecomCallById(callId);
         if (call != null) {
             call.playDtmfTone(digit);
         } else {
@@ -188,7 +191,7 @@
     }
 
     void stopDtmfTone(String callId) {
-        android.telecom.Call call = getTelecommCallById(callId);
+        android.telecom.Call call = getTelecomCallById(callId);
         if (call != null) {
             call.stopDtmfTone();
         } else {
@@ -197,7 +200,7 @@
     }
 
     void postDialContinue(String callId, boolean proceed) {
-        android.telecom.Call call = getTelecommCallById(callId);
+        android.telecom.Call call = getTelecomCallById(callId);
         if (call != null) {
             call.postDialContinue(proceed);
         } else {
@@ -211,7 +214,7 @@
             // TODO: Do we really want to send null accountHandle?
         }
 
-        android.telecom.Call call = getTelecommCallById(callId);
+        android.telecom.Call call = getTelecomCallById(callId);
         if (call != null) {
             call.phoneAccountSelected(accountHandle, setDefault);
         } else {
@@ -219,8 +222,7 @@
         }
     }
 
-    boolean canAddCall() {
-        // Default to true if we are not connected to telecom.
-        return mInCallService == null ? true : mInCallService.canAddCall();
+    boolean canAddCall(Call call) {
+        return InCallServiceCompat.canAddCall(mInCallService, call);
     }
 }
diff --git a/InCallUI/src/com/android/incallui/VideoCallFragment.java b/InCallUI/src/com/android/incallui/VideoCallFragment.java
index 24e9e8d..2c06303 100644
--- a/InCallUI/src/com/android/incallui/VideoCallFragment.java
+++ b/InCallUI/src/com/android/incallui/VideoCallFragment.java
@@ -31,6 +31,7 @@
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 
+import com.android.phone.common.animation.AnimUtils;
 import com.google.common.base.Objects;
 
 /**
@@ -105,6 +106,8 @@
      */
     private boolean mIsLandscape;
 
+    private int mAnimationDuration;
+
     /**
      * Inner-class representing a {@link TextureView} and its associated {@link SurfaceTexture} and
      * {@link Surface}.  Used to manage the lifecycle of these objects across device orientation
@@ -419,6 +422,8 @@
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+
+        mAnimationDuration = getResources().getInteger(R.integer.video_animation_duration);
     }
 
     /**
@@ -454,9 +459,16 @@
      */
     private void centerDisplayView(View displayVideo) {
         if (!mIsLandscape) {
+            ViewGroup.LayoutParams p = displayVideo.getLayoutParams();
+            int height = p.height;
+
             float spaceBesideCallCard = InCallPresenter.getInstance().getSpaceBesideCallCard();
-            float videoViewTranslation = displayVideo.getHeight() / 2
-                    - spaceBesideCallCard / 2;
+            // If space beside call card is zeo, layout hasn't happened yet so there is no point
+            // in attempting to center the view.
+            if (Math.abs(spaceBesideCallCard - 0.0f) < 0.0001) {
+                return;
+            }
+            float videoViewTranslation = height / 2  - spaceBesideCallCard / 2;
             displayVideo.setTranslationY(videoViewTranslation);
         }
     }
@@ -473,13 +485,6 @@
         Log.d(this, "onViewCreated: VideoSurfacesInUse=" + sVideoSurfacesInUse);
 
         mVideoViewsStub = (ViewStub) view.findViewById(R.id.videoCallViewsStub);
-
-        // If the surfaces are already in use, we have just changed orientation or otherwise
-        // re-created the fragment.  In this case we need to inflate the video call views and
-        // restore the surfaces.
-        if (sVideoSurfacesInUse) {
-            inflateVideoCallViews();
-        }
     }
 
     @Override
@@ -588,6 +593,30 @@
         return mPreviewPhoto;
     }
 
+    /**
+     * Adjusts the location of the video preview view by the specified offset.
+     *
+     * @param shiftUp {@code true} if the preview should shift up, {@code false} if it should shift
+     *      down.
+     * @param offset The offset.
+     */
+    @Override
+    public void adjustPreviewLocation(boolean shiftUp, int offset) {
+        if (sPreviewSurface == null || mPreviewVideoContainer == null) {
+            return;
+        }
+
+        // Set the position of the secondary call info card to its starting location.
+        mPreviewVideoContainer.setTranslationY(shiftUp ? 0 : -offset);
+
+        // Animate the secondary card info slide up/down as it appears and disappears.
+        mPreviewVideoContainer.animate()
+                .setInterpolator(AnimUtils.EASE_OUT_EASE_IN)
+                .setDuration(mAnimationDuration)
+                .translationY(shiftUp ? -offset : 0)
+                .start();
+    }
+
     private void onPresenterChanged(VideoCallPresenter presenter) {
         Log.d(this, "onPresenterChanged: Presenter=" + presenter);
         if (sDisplaySurface != null) {
@@ -675,6 +704,33 @@
         }
     }
 
+    /**
+     * Sets the rotation of the preview surface.  Called when the dimensions change due to a
+     * device orientation change.
+     *
+     * Please note that the screen orientation passed in is subtracted from 360 to get the actual
+     * preview rotation values.
+     *
+     * @param rotation The screen orientation. One of -
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_0},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_90},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_180},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_270}).
+     */
+    @Override
+    public void setPreviewRotation(int orientation) {
+        Log.d(this, "setPreviewRotation: orientation=" + orientation);
+        if (sPreviewSurface != null) {
+            TextureView preview = sPreviewSurface.getTextureView();
+
+            if (preview == null ) {
+                return;
+            }
+
+            preview.setRotation(orientation);
+        }
+    }
+
     @Override
     public void setPreviewSurfaceSize(int width, int height) {
         final boolean isPreviewSurfaceAvailable = sPreviewSurface != null;
@@ -707,7 +763,7 @@
      */
     @Override
     public void setDisplayVideoSize(int width, int height) {
-        Log.d(this, "setDisplayVideoSize: width=" + width + " height=" + height);
+        Log.v(this, "setDisplayVideoSize: width=" + width + " height=" + height);
         if (sDisplaySurface != null) {
             TextureView displayVideo = sDisplaySurface.getTextureView();
             if (displayVideo == null) {
diff --git a/InCallUI/src/com/android/incallui/VideoCallPresenter.java b/InCallUI/src/com/android/incallui/VideoCallPresenter.java
index f439f6b..ebdf820 100644
--- a/InCallUI/src/com/android/incallui/VideoCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/VideoCallPresenter.java
@@ -24,7 +24,6 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.provider.ContactsContract;
-import android.telecom.CallAudioState;
 import android.telecom.Connection;
 import android.telecom.InCallService.VideoCall;
 import android.telecom.VideoProfile;
@@ -33,12 +32,14 @@
 import android.widget.ImageView;
 
 import com.android.contacts.common.ContactPhotoManager;
+import com.android.contacts.common.compat.CompatUtils;
 import com.android.incallui.InCallPresenter.InCallDetailsListener;
 import com.android.incallui.InCallPresenter.InCallOrientationListener;
 import com.android.incallui.InCallPresenter.InCallStateListener;
 import com.android.incallui.InCallPresenter.IncomingCallListener;
 import com.android.incallui.InCallVideoCallCallbackNotifier.SurfaceChangeListener;
 import com.android.incallui.InCallVideoCallCallbackNotifier.VideoEventListener;
+import com.android.incallui.compat.telecom.VideoProfileCompat;
 
 import java.util.Objects;
 
@@ -74,12 +75,14 @@
     public static final boolean DEBUG = false;
 
     /**
-     * Runnable which is posted to schedule automatically entering fullscreen mode.
+     * Runnable which is posted to schedule automatically entering fullscreen mode.  Will not auto
+     * enter fullscreen mode if the dialpad is visible (doing so would make it impossible to exit
+     * the dialpad).
      */
     private Runnable mAutoFullscreenRunnable =  new Runnable() {
         @Override
         public void run() {
-            if (mAutoFullScreenPending) {
+            if (mAutoFullScreenPending && !InCallPresenter.getInstance().isDialpadVisible()) {
                 Log.v(this, "Automatically entering fullscreen mode.");
                 InCallPresenter.getInstance().setFullScreen(true);
                 mAutoFullScreenPending = false;
@@ -152,18 +155,13 @@
     /**
      * Determines the device orientation (portrait/lanscape).
      */
-    private int mDeviceOrientation;
+    private int mDeviceOrientation = InCallOrientationEventListener.SCREEN_ORIENTATION_0;
 
     /**
      * Tracks the state of the preview surface negotiation with the telephony layer.
      */
     private int mPreviewSurfaceState = PreviewSurfaceState.NONE;
 
-    /**
-     * Saves the audio mode which was selected prior to going into a video call.
-     */
-    private static int sPrevVideoAudioMode = AudioModeProvider.AUDIO_MODE_INVALID;
-
     private static boolean mIsVideoMode = false;
 
     /**
@@ -225,6 +223,12 @@
         super.onUiReady(ui);
         Log.d(this, "onUiReady:");
 
+        // Do not register any listeners if video calling is not compatible to safeguard against
+        // any accidental calls of video calling code.
+        if (!CompatUtils.isVideoCompatible()) {
+            return;
+        }
+
         // Register for call state changes last
         InCallPresenter.getInstance().addListener(this);
         InCallPresenter.getInstance().addDetailsListener(this);
@@ -232,6 +236,7 @@
         InCallPresenter.getInstance().addOrientationListener(this);
         // To get updates of video call details changes
         InCallPresenter.getInstance().addDetailsListener(this);
+        InCallPresenter.getInstance().addInCallEventListener(this);
 
         // Register for surface and video events from {@link InCallVideoCallListener}s.
         InCallVideoCallCallbackNotifier.getInstance().addSurfaceChangeListener(this);
@@ -251,10 +256,15 @@
         super.onUiUnready(ui);
         Log.d(this, "onUiUnready:");
 
+        if (!CompatUtils.isVideoCompatible()) {
+            return;
+        }
+
         InCallPresenter.getInstance().removeListener(this);
         InCallPresenter.getInstance().removeDetailsListener(this);
         InCallPresenter.getInstance().removeIncomingCallListener(this);
         InCallPresenter.getInstance().removeOrientationListener(this);
+        InCallPresenter.getInstance().removeInCallEventListener(this);
 
         InCallVideoCallCallbackNotifier.getInstance().removeSurfaceChangeListener(this);
         InCallVideoCallCallbackNotifier.getInstance().removeVideoEventListener(this);
@@ -393,8 +403,6 @@
                 " isVideoMode=" + isVideoMode());
 
         if (newState == InCallPresenter.InCallState.NO_CALLS) {
-            updateAudioMode(false);
-
             if (isVideoMode()) {
                 exitVideoMode();
             }
@@ -418,7 +426,7 @@
             // change the camera or UI unless the waiting VT call becomes active.
             primary = callList.getActiveCall();
             currentCall = callList.getIncomingCall();
-            if (!CallUtils.isActiveVideoCall(primary)) {
+            if (!VideoUtils.isActiveVideoCall(primary)) {
                 primary = callList.getIncomingCall();
             }
         } else if (newState == InCallPresenter.InCallState.OUTGOING) {
@@ -458,15 +466,30 @@
         cancelAutoFullScreen();
     }
 
+    /**
+     * Handles changes to the visibility of the secondary caller info bar.
+     *
+     * @param isVisible {@code true} if the secondary caller info is showing, {@code false}
+     *      otherwise.
+     * @param height the height of the secondary caller info bar.
+     */
+    @Override
+    public void onSecondaryCallerInfoVisibilityChanged(boolean isVisible, int height) {
+        Log.d(this,
+                "onSecondaryCallerInfoVisibilityChanged : isVisible = " + isVisible + " height = "
+                        + height);
+        getUi().adjustPreviewLocation(isVisible /* shiftUp */, height);
+    }
+
     private void checkForVideoStateChange(Call call) {
-        final boolean isVideoCall = CallUtils.isVideoCall(call);
+        final boolean isVideoCall = VideoUtils.isVideoCall(call);
         final boolean hasVideoStateChanged = mCurrentVideoState != call.getVideoState();
 
         Log.d(this, "checkForVideoStateChange: isVideoCall= " + isVideoCall
                 + " hasVideoStateChanged=" + hasVideoStateChanged + " isVideoMode="
                 + isVideoMode() + " previousVideoState: " +
-                VideoProfile.videoStateToString(mCurrentVideoState) + " newVideoState: "
-                + VideoProfile.videoStateToString(call.getVideoState()));
+                VideoProfileCompat.videoStateToString(mCurrentVideoState) + " newVideoState: "
+                + VideoProfileCompat.videoStateToString(call.getVideoState()));
 
         if (!hasVideoStateChanged) {
             return;
@@ -482,7 +505,7 @@
     }
 
     private void checkForCallStateChange(Call call) {
-        final boolean isVideoCall = CallUtils.isVideoCall(call);
+        final boolean isVideoCall = VideoUtils.isVideoCall(call);
         final boolean hasCallStateChanged = mCurrentCallState != call.getState();
 
         Log.d(this, "checkForCallStateChange: isVideoCall= " + isVideoCall
@@ -501,7 +524,7 @@
             updateCameraSelection(call);
             String newCameraId = cameraManager.getActiveCameraId();
 
-            if (!Objects.equals(prevCameraId, newCameraId) && CallUtils.isActiveVideoCall(call)) {
+            if (!Objects.equals(prevCameraId, newCameraId) && VideoUtils.isActiveVideoCall(call)) {
                 enableCamera(call.getVideoCall(), true);
             }
         }
@@ -520,7 +543,7 @@
     }
 
     private void onPrimaryCallChanged(Call newPrimaryCall) {
-        final boolean isVideoCall = CallUtils.isVideoCall(newPrimaryCall);
+        final boolean isVideoCall = VideoUtils.isVideoCall(newPrimaryCall);
         final boolean isVideoMode = isVideoMode();
 
         Log.d(this, "onPrimaryCallChanged: isVideoCall=" + isVideoCall + " isVideoMode="
@@ -573,7 +596,7 @@
         }
         // If the details change is not for the currently active call no update is required.
         if (!call.equals(mPrimaryCall)) {
-            Log.d(this," onDetailsChanged: Details not for current active call so returning. ");
+            Log.d(this, " onDetailsChanged: Details not for current active call so returning. ");
             return;
         }
 
@@ -590,14 +613,15 @@
     }
 
     private void checkForOrientationAllowedChange(Call call) {
-        InCallPresenter.getInstance().setInCallAllowsOrientationChange(CallUtils.isVideoCall(call));
+        InCallPresenter.getInstance().setInCallAllowsOrientationChange(
+                VideoUtils.isVideoCall(call));
     }
 
     /**
      * Checks for a change to the video call and changes it if required.
      */
     private void checkForVideoCallChange(Call call) {
-        final VideoCall videoCall = call.getTelecommCall().getVideoCall();
+        final VideoCall videoCall = call.getTelecomCall().getVideoCall();
         Log.d(this, "checkForVideoCallChange: videoCall=" + videoCall + " mVideoCall="
                 + mVideoCall);
         if (!Objects.equals(videoCall, mVideoCall)) {
@@ -612,7 +636,7 @@
      * @param videoCall The new video call.
      */
     private void changeVideoCall(Call call) {
-        final VideoCall videoCall = call.getTelecommCall().getVideoCall();
+        final VideoCall videoCall = call.getTelecomCall().getVideoCall();
         Log.d(this, "changeVideoCall to videoCall=" + videoCall + " mVideoCall=" + mVideoCall);
         // Null out the surfaces on the previous video call.
         if (mVideoCall != null) {
@@ -629,18 +653,18 @@
             return;
         }
 
-        if (CallUtils.isVideoCall(call) && hasChanged) {
+        if (VideoUtils.isVideoCall(call) && hasChanged) {
             enterVideoMode(call);
         }
     }
 
     private static boolean isCameraRequired(int videoState) {
-        return VideoProfile.isBidirectional(videoState) ||
-                VideoProfile.isTransmissionEnabled(videoState);
+        return VideoProfileCompat.isBidirectional(videoState) ||
+                VideoProfileCompat.isTransmissionEnabled(videoState);
     }
 
     private boolean isCameraRequired() {
-        return mPrimaryCall != null ? isCameraRequired(mPrimaryCall.getVideoState()) : false;
+        return mPrimaryCall != null && isCameraRequired(mPrimaryCall.getVideoState());
     }
 
     /**
@@ -668,56 +692,16 @@
                 videoCall.setDisplaySurface(ui.getDisplayVideoSurface());
             }
 
-            final int rotation = ui.getCurrentRotation();
-            if (rotation != VideoCallFragment.ORIENTATION_UNKNOWN) {
-                videoCall.setDeviceOrientation(InCallPresenter.toRotationAngle(rotation));
-            }
-
+            videoCall.setDeviceOrientation(mDeviceOrientation);
             enableCamera(videoCall, isCameraRequired(newVideoState));
         }
         mCurrentVideoState = newVideoState;
-        updateAudioMode(true);
 
         mIsVideoMode = true;
 
         maybeAutoEnterFullscreen(call);
     }
 
-    //TODO: Move this into Telecom. InCallUI should not be this close to audio functionality.
-    private void updateAudioMode(boolean enableSpeaker) {
-        if (!isSpeakerEnabledForVideoCalls()) {
-            Log.d(this, "Speaker is disabled. Can't update audio mode");
-            return;
-        }
-
-        final TelecomAdapter telecomAdapter = TelecomAdapter.getInstance();
-        final boolean isPrevAudioModeValid =
-            sPrevVideoAudioMode != AudioModeProvider.AUDIO_MODE_INVALID;
-
-        Log.d(this, "Is previous audio mode valid = " + isPrevAudioModeValid + " enableSpeaker is "
-                + enableSpeaker);
-
-        // Set audio mode to previous mode if enableSpeaker is false.
-        if (isPrevAudioModeValid && !enableSpeaker) {
-            telecomAdapter.setAudioRoute(sPrevVideoAudioMode);
-            sPrevVideoAudioMode = AudioModeProvider.AUDIO_MODE_INVALID;
-            return;
-        }
-
-        int currentAudioMode = AudioModeProvider.getInstance().getAudioMode();
-
-        // Set audio mode to speaker if enableSpeaker is true and bluetooth or headset are not
-        // connected and it's a video call.
-        if (!isAudioRouteEnabled(currentAudioMode,
-            CallAudioState.ROUTE_BLUETOOTH | CallAudioState.ROUTE_WIRED_HEADSET) &&
-            !isPrevAudioModeValid && enableSpeaker && CallUtils.isVideoCall(mPrimaryCall)) {
-            sPrevVideoAudioMode = currentAudioMode;
-
-            Log.d(this, "Routing audio to speaker");
-            telecomAdapter.setAudioRoute(CallAudioState.ROUTE_SPEAKER);
-        }
-    }
-
     private static boolean isSpeakerEnabledForVideoCalls() {
         // TODO: Make this a carrier configurable setting. For now this is always true. b/20090407
         return true;
@@ -770,21 +754,58 @@
             Log.e(this, "showVideoUi, VideoCallUi is null returning");
             return;
         }
-        boolean isPaused = VideoProfile.isPaused(videoState);
-        boolean isCallActive = callState == Call.State.ACTIVE;
-        if (VideoProfile.isBidirectional(videoState)) {
-            ui.showVideoViews(true, !isPaused && isCallActive);
-        } else if (VideoProfile.isTransmissionEnabled(videoState)) {
-            ui.showVideoViews(true, false);
-        } else if (VideoProfile.isReceptionEnabled(videoState)) {
-            ui.showVideoViews(false, !isPaused && isCallActive);
-            loadProfilePhotoAsync();
+        boolean showIncomingVideo = showIncomingVideo(videoState, callState);
+        boolean showOutgoingVideo = showOutgoingVideo(videoState);
+        Log.v(this, "showVideoUi : showIncoming = " + showIncomingVideo + " showOutgoing = "
+                + showOutgoingVideo);
+        if (showIncomingVideo || showOutgoingVideo) {
+            ui.showVideoViews(showOutgoingVideo, showIncomingVideo);
+
+            if (VideoProfileCompat.isReceptionEnabled(videoState)) {
+                loadProfilePhotoAsync();
+            }
         } else {
             ui.hideVideoUi();
         }
 
         InCallPresenter.getInstance().enableScreenTimeout(
-                VideoProfile.isAudioOnly(videoState));
+                VideoProfileCompat.isAudioOnly(videoState));
+    }
+
+    /**
+     * Determines if the incoming video surface should be shown based on the current videoState and
+     * callState.  The video surface is shown when incoming video is not paused, the call is active,
+     * and video reception is enabled.
+     *
+     * @param videoState The current video state.
+     * @param callState The current call state.
+     * @return {@code true} if the incoming video surface should be shown, {@code false} otherwise.
+     */
+    public static boolean showIncomingVideo(int videoState, int callState) {
+        if (!CompatUtils.isVideoCompatible()) {
+            return false;
+        }
+
+        boolean isPaused = VideoProfileCompat.isPaused(videoState);
+        boolean isCallActive = callState == Call.State.ACTIVE;
+
+        return !isPaused && isCallActive && VideoProfileCompat.isReceptionEnabled(videoState);
+    }
+
+    /**
+     * Determines if the outgoing video surface should be shown based on the current videoState.
+     * The video surface is shown if video transmission is enabled.
+     *
+     * @param videoState The current video state.
+     * @return {@code true} if the the outgoing video surface should be shown, {@code false}
+     *      otherwise.
+     */
+    public static boolean showOutgoingVideo(int videoState) {
+        if (!CompatUtils.isVideoCompatible()) {
+            return false;
+        }
+
+        return VideoProfileCompat.isTransmissionEnabled(videoState);
     }
 
     /**
@@ -943,23 +964,39 @@
 
     /**
      * Handles changes to the device orientation.
-     *
-     * @param orientation The device orientation (one of: {@link Surface#ROTATION_0},
-     *      {@link Surface#ROTATION_90}, {@link Surface#ROTATION_180},
-     *      {@link Surface#ROTATION_270}).
+     * @param orientation The screen orientation of the device (one of:
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_0},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_90},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_180},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_270}).
      */
     @Override
     public void onDeviceOrientationChanged(int orientation) {
         mDeviceOrientation = orientation;
-        Point previewDimensions = getUi().getPreviewSize();
+
+        VideoCallUi ui = getUi();
+        if (ui == null) {
+            Log.e(this, "onDeviceOrientationChanged: VideoCallUi is null");
+            return;
+        }
+
+        Point previewDimensions = ui.getPreviewSize();
         if (previewDimensions == null) {
             return;
         }
         Log.d(this, "onDeviceOrientationChanged: orientation=" + orientation + " size: "
                 + previewDimensions);
         changePreviewDimensions(previewDimensions.x, previewDimensions.y);
+
+        ui.setPreviewRotation(mDeviceOrientation);
     }
 
+    /**
+     * Handles an incoming upgrade to video request.
+     *
+     * @param call The call the request was received for.
+     * @param videoState The video state that the request wants to upgrade to.
+     */
     @Override
     public void onUpgradeToVideoRequest(Call call, int videoState) {
         Log.d(this, "onUpgradeToVideoRequest call = " + call + " new video state = " + videoState);
@@ -971,7 +1008,7 @@
             return;
         }
 
-        call.setSessionModificationTo(videoState);
+        call.setRequestedVideoState(videoState);
     }
 
     @Override
@@ -1007,10 +1044,12 @@
 
     /**
      * Sets the preview surface size based on the current device orientation.
+     * See: {@link InCallOrientationEventListener#SCREEN_ORIENTATION_0},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_90},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_180},
+     * {@link InCallOrientationEventListener#SCREEN_ORIENTATION_270}).
      *
-     * @param orientation The device orientation (one of: {@link Surface#ROTATION_0},
-     *      {@link Surface#ROTATION_90}, {@link Surface#ROTATION_180},
-     *      {@link Surface#ROTATION_270}).
+     * @param orientation The device orientation
      * @param aspectRatio The aspect ratio of the camera (width / height).
      */
     private void setPreviewSize(int orientation, float aspectRatio) {
@@ -1022,8 +1061,8 @@
         int height;
         int width;
 
-        if (orientation == Surface.ROTATION_90 || orientation == Surface.ROTATION_270) {
-            // Landscape or reverse landscape orientation.
+        if (orientation == InCallOrientationEventListener.SCREEN_ORIENTATION_90 ||
+                orientation == InCallOrientationEventListener.SCREEN_ORIENTATION_270) {
             width = (int) (mMinimumVideoDimension * aspectRatio);
             height = (int) mMinimumVideoDimension;
         } else {
@@ -1041,7 +1080,7 @@
      * @param height peer height
      */
     private void setDisplayVideoSize(int width, int height) {
-        Log.d(this, "setDisplayVideoSize:Received peer width=" + width + " peer height=" + height);
+        Log.v(this, "setDisplayVideoSize: Received peer width=" + width + " height=" + height);
         VideoCallUi ui = getUi();
         if (ui == null) {
             return;
@@ -1049,7 +1088,7 @@
 
         // Get current display size
         Point size = ui.getScreenSize();
-        Log.d("VideoCallPresenter", "setDisplayVideoSize: windowmgr width=" + size.x
+        Log.v(this, "setDisplayVideoSize: windowmgr width=" + size.x
                 + " windowmgr height=" + size.y);
         if (size.y * width > size.x * height) {
             // current display height is too much. Correct it
@@ -1071,7 +1110,7 @@
             return;
         }
 
-        if (!CallUtils.isVideoCall(call) || call.getState() == Call.State.INCOMING) {
+        if (!VideoUtils.isVideoCall(call) || call.getState() == Call.State.INCOMING) {
             InCallPresenter.getInstance().setFullScreen(false);
         }
     }
@@ -1093,7 +1132,7 @@
 
         if (call == null || (
                 call != null && (call.getState() != Call.State.ACTIVE ||
-                        !CallUtils.isVideoCall(call)) ||
+                        !VideoUtils.isVideoCall(call)) ||
                         InCallPresenter.getInstance().isFullscreen())) {
             // Ensure any previously scheduled attempt to enter fullscreen is cancelled.
             cancelAutoFullScreen();
@@ -1141,7 +1180,7 @@
         }
 
         // Clear camera direction if this is not a video call.
-        else if (CallUtils.isAudioCall(call)) {
+        else if (VideoUtils.isAudioCall(call)) {
             cameraDir = Call.VideoSettings.CAMERA_DIRECTION_UNKNOWN;
             call.getVideoSettings().setCameraDir(cameraDir);
         }
@@ -1149,33 +1188,33 @@
         // If this is a waiting video call, default to active call's camera,
         // since we don't want to change the current camera for waiting call
         // without user's permission.
-        else if (CallUtils.isVideoCall(activeCall) && CallUtils.isIncomingVideoCall(call)) {
+        else if (VideoUtils.isVideoCall(activeCall) && VideoUtils.isIncomingVideoCall(call)) {
             cameraDir = activeCall.getVideoSettings().getCameraDir();
         }
 
         // Infer the camera direction from the video state and store it,
         // if this is an outgoing video call.
-        else if (CallUtils.isOutgoingVideoCall(call) && !isCameraDirectionSet(call) ) {
+        else if (VideoUtils.isOutgoingVideoCall(call) && !isCameraDirectionSet(call) ) {
             cameraDir = toCameraDirection(call.getVideoState());
             call.getVideoSettings().setCameraDir(cameraDir);
         }
 
         // Use the stored camera dir if this is an outgoing video call for which camera direction
         // is set.
-        else if (CallUtils.isOutgoingVideoCall(call)) {
+        else if (VideoUtils.isOutgoingVideoCall(call)) {
             cameraDir = call.getVideoSettings().getCameraDir();
         }
 
         // Infer the camera direction from the video state and store it,
         // if this is an active video call and camera direction is not set.
-        else if (CallUtils.isActiveVideoCall(call) && !isCameraDirectionSet(call)) {
+        else if (VideoUtils.isActiveVideoCall(call) && !isCameraDirectionSet(call)) {
             cameraDir = toCameraDirection(call.getVideoState());
             call.getVideoSettings().setCameraDir(cameraDir);
         }
 
         // Use the stored camera dir if this is an active video call for which camera direction
         // is set.
-        else if (CallUtils.isActiveVideoCall(call)) {
+        else if (VideoUtils.isActiveVideoCall(call)) {
             cameraDir = call.getVideoSettings().getCameraDir();
         }
 
@@ -1193,14 +1232,14 @@
     }
 
     private static int toCameraDirection(int videoState) {
-        return VideoProfile.isTransmissionEnabled(videoState) &&
-                !VideoProfile.isBidirectional(videoState)
+        return VideoProfileCompat.isTransmissionEnabled(videoState) &&
+                !VideoProfileCompat.isBidirectional(videoState)
                 ? Call.VideoSettings.CAMERA_DIRECTION_BACK_FACING
                 : Call.VideoSettings.CAMERA_DIRECTION_FRONT_FACING;
     }
 
     private static boolean isCameraDirectionSet(Call call) {
-        return CallUtils.isVideoCall(call) && call.getVideoSettings().getCameraDir()
+        return VideoUtils.isVideoCall(call) && call.getVideoSettings().getCameraDir()
                     != Call.VideoSettings.CAMERA_DIRECTION_UNKNOWN;
     }
 
@@ -1236,6 +1275,7 @@
                                     ContactsContract.CommonDataKinds.Phone.PHOTO_URI,
                                     ContactsContract.CommonDataKinds.Phone.LOOKUP_KEY,
                                     ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
+                                    ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME_ALTERNATIVE
                             }, null, null, null);
                     if (cursor != null) {
                         try {
@@ -1246,8 +1286,11 @@
                                         ContactsContract.CommonDataKinds.Phone.PHOTO_URI));
                                 mProfileInfo.displayPhotoUri = photoUri == null ? null
                                         : Uri.parse(photoUri);
-                                mProfileInfo.name = cursor.getString(cursor.getColumnIndex(
+                                mProfileInfo.namePrimary = cursor.getString(cursor.getColumnIndex(
                                         ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
+                                mProfileInfo.nameAlternative = cursor.getString(
+                                        cursor.getColumnIndex(ContactsContract.CommonDataKinds
+                                                        .Phone.DISPLAY_NAME_ALTERNATIVE));
                             }
                         } finally {
                             cursor.close();
@@ -1267,7 +1310,7 @@
                     }
                     ContactPhotoManager.DefaultImageRequest imageRequest = (mProfileInfo != null)
                             ? null :
-                            new ContactPhotoManager.DefaultImageRequest(mProfileInfo.name,
+                            new ContactPhotoManager.DefaultImageRequest(mProfileInfo.namePrimary,
                                     mProfileInfo.lookupKey, false /* isCircularPhoto */);
 
                     ImageView photoView = ui.getPreviewPhotoView();
@@ -1302,5 +1345,7 @@
         Point getPreviewSize();
         void cleanupSurfaces();
         ImageView getPreviewPhotoView();
+        void adjustPreviewLocation(boolean shiftUp, int offset);
+        void setPreviewRotation(int orientation);
     }
 }
diff --git a/InCallUI/src/com/android/incallui/VideoPauseController.java b/InCallUI/src/com/android/incallui/VideoPauseController.java
index 54e31f8..070448e 100644
--- a/InCallUI/src/com/android/incallui/VideoPauseController.java
+++ b/InCallUI/src/com/android/incallui/VideoPauseController.java
@@ -1,34 +1,21 @@
-/* Copyright (c) 2014, The Linux Foundation. All rights reserved.
+/*
+ * Copyright (C) 2015 The Android Open Source Project
  *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- *       copyright notice, this list of conditions and the following
- *       disclaimer in the documentation and/or other materials provided
- *       with the distribution.
- *     * Neither the name of The Linux Foundation nor the names of its
- *       contributors may be used to endorse or promote products derived
- *       from this software without specific prior written permission.
+ * 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
  *
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
- * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *      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.telecom.VideoProfile;
 import com.android.incallui.Call.State;
 import com.android.incallui.InCallPresenter.InCallState;
 import com.android.incallui.InCallPresenter.InCallStateListener;
@@ -42,7 +29,7 @@
  */
 class VideoPauseController implements InCallStateListener, IncomingCallListener,
         SessionModificationListener {
-    private static final String TAG = "VideoPauseController:";
+    private static final String TAG = "VideoPauseController";
 
     /**
      * Keeps track of the current active/foreground call.
@@ -168,7 +155,7 @@
         }
 
         boolean hasPrimaryCallChanged = !areSame(call, mPrimaryCallContext);
-        boolean canVideoPause = CallUtils.canVideoPause(call);
+        boolean canVideoPause = VideoUtils.canVideoPause(call);
         log("onStateChange, hasPrimaryCallChanged=" + hasPrimaryCallChanged);
         log("onStateChange, canVideoPause=" + canVideoPause);
         log("onStateChange, IsInBackground=" + mIsInBackground);
@@ -206,7 +193,7 @@
         log("onPrimaryCallChanged, IsInBackground=" + mIsInBackground);
 
         Preconditions.checkState(!areSame(call, mPrimaryCallContext));
-        final boolean canVideoPause = CallUtils.canVideoPause(call);
+        final boolean canVideoPause = VideoUtils.canVideoPause(call);
 
         if ((isIncomingCall(mPrimaryCallContext) || isDialing(mPrimaryCallContext))
                 && canVideoPause && !mIsInBackground) {
@@ -366,10 +353,10 @@
         if (resume) {
             log("sending resume request, call=" + call);
             call.getVideoCall()
-                    .sendSessionModifyRequest(CallUtils.makeVideoUnPauseProfile(call));
+                    .sendSessionModifyRequest(VideoUtils.makeVideoUnPauseProfile(call));
         } else {
             log("sending pause request, call=" + call);
-            call.getVideoCall().sendSessionModifyRequest(CallUtils.makeVideoPauseProfile(call));
+            call.getVideoCall().sendSessionModifyRequest(VideoUtils.makeVideoPauseProfile(call));
         }
     }
 
@@ -407,7 +394,7 @@
      * @return {@code true} if the call is a video call, {@code false} otherwise.
      */
     private static boolean isVideoCall(CallContext callContext) {
-        return callContext != null && CallUtils.isVideoCall(callContext.getVideoState());
+        return callContext != null && VideoUtils.isVideoCall(callContext.getVideoState());
     }
 
     /**
diff --git a/InCallUI/src/com/android/incallui/VideoUtils.java b/InCallUI/src/com/android/incallui/VideoUtils.java
new file mode 100644
index 0000000..7e0926b
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/VideoUtils.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.telecom.VideoProfile;
+
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.incallui.compat.telecom.VideoProfileCompat;
+
+import com.google.common.base.Preconditions;
+
+public class VideoUtils {
+
+    public static boolean isVideoCall(Call call) {
+        return call != null && isVideoCall(call.getVideoState());
+    }
+
+    public static boolean isVideoCall(int videoState) {
+        if (!CompatUtils.isVideoCompatible()) {
+            return false;
+        }
+
+        return VideoProfileCompat.isTransmissionEnabled(videoState)
+                || VideoProfileCompat.isReceptionEnabled(videoState);
+    }
+
+    public static boolean isBidirectionalVideoCall(Call call) {
+        if (!CompatUtils.isVideoCompatible()) {
+            return false;
+        }
+
+        return VideoProfileCompat.isBidirectional(call.getVideoState());
+    }
+
+    public static boolean isIncomingVideoCall(Call call) {
+        if (!VideoUtils.isVideoCall(call)) {
+            return false;
+        }
+        final int state = call.getState();
+        return (state == Call.State.INCOMING) || (state == Call.State.CALL_WAITING);
+    }
+
+    public static boolean isActiveVideoCall(Call call) {
+        return VideoUtils.isVideoCall(call) && call.getState() == Call.State.ACTIVE;
+    }
+
+    public static boolean isOutgoingVideoCall(Call call) {
+        if (!VideoUtils.isVideoCall(call)) {
+            return false;
+        }
+        final int state = call.getState();
+        return Call.State.isDialing(state) || state == Call.State.CONNECTING
+                || state == Call.State.SELECT_PHONE_ACCOUNT;
+    }
+
+    public static boolean isAudioCall(Call call) {
+        if (!CompatUtils.isVideoCompatible()) {
+            return true;
+        }
+
+        return call != null && VideoProfileCompat.isAudioOnly(call.getVideoState());
+    }
+
+    // TODO (ims-vt) Check if special handling is needed for CONF calls.
+    public static boolean canVideoPause(Call call) {
+        return isVideoCall(call) && call.getState() == Call.State.ACTIVE;
+    }
+
+    public static VideoProfile makeVideoPauseProfile(Call call) {
+        Preconditions.checkNotNull(call);
+        Preconditions.checkState(!VideoProfileCompat.isAudioOnly(call.getVideoState()));
+        return new VideoProfile(getPausedVideoState(call.getVideoState()));
+    }
+
+    public static VideoProfile makeVideoUnPauseProfile(Call call) {
+        Preconditions.checkNotNull(call);
+        return new VideoProfile(getUnPausedVideoState(call.getVideoState()));
+    }
+
+    public static int getUnPausedVideoState(int videoState) {
+        return videoState & (~VideoProfile.STATE_PAUSED);
+    }
+
+    public static int getPausedVideoState(int videoState) {
+        return videoState | VideoProfile.STATE_PAUSED;
+    }
+
+}
diff --git a/InCallUI/src/com/android/incallui/compat/telecom/DetailsCompat.java b/InCallUI/src/com/android/incallui/compat/telecom/DetailsCompat.java
new file mode 100644
index 0000000..b9f82a9
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/compat/telecom/DetailsCompat.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.incallui.compat.telecom;
+
+import android.os.Build;
+import android.os.Bundle;
+import android.telecom.Call.Details;
+
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.incallui.Log;
+
+/**
+ * Compatibility class for {@link Details}
+ */
+public class DetailsCompat {
+
+    /**
+     * Constant formerly in L as PhoneCapabilities#ADD_CALL. It was transferred to
+     * {@link Details#CAPABILITY_UNUSED_1} and hidden
+     */
+    public static final int CAPABILITY_UNUSED_1 = 0x00000010;
+
+    /**
+     * Returns the intent extras from the given {@link Details}
+     * For Sdk version L and earlier, this will return {@link Details#getExtras()}
+     *
+     * @param details The details whose intent extras should be returned
+     * @return The given details' intent extras
+     */
+    public static Bundle getIntentExtras(Details details) {
+        if (CompatUtils.isMarshmallowCompatible()) {
+            return details.getIntentExtras();
+        }
+        return details.getExtras();
+    }
+
+    /**
+     * Compatibility method to check whether the supplied properties includes the
+     * specified property.
+     *
+     * @param details The details whose properties should be checked.
+     * @param property The property to check properties for.
+     * @return Whether the specified property is supported.
+     */
+    public static boolean hasProperty(Details details, int property) {
+        if (CompatUtils.isMarshmallowCompatible()) {
+            return details.hasProperty(property);
+        }
+        return (details.getCallProperties() & property) != 0;
+    }
+
+    /**
+     * Compatibility method to check whether the capabilities of the given {@code Details}
+     * supports the specified capability.
+     *
+     * @param details The details whose capabilities should be checked.
+     * @param capability The capability to check capabilities for.
+     * @return Whether the specified capability is supported.
+     */
+    public static boolean can(Details details, int capability) {
+        if (CompatUtils.isLollipopMr1Compatible()) {
+            return details.can(capability);
+        }
+        return (details.getCallCapabilities() & capability) != 0;
+    }
+
+    /**
+     * Render a set of capability bits ({@code CAPABILITY_*}) as a human readable string.
+     *
+     * @param capabilities A capability bit field.
+     * @return A human readable string representation.
+     */
+    public static String capabilitiesToString(int capabilities) {
+        if (CompatUtils.isLollipopMr1Compatible()) {
+            return Details.capabilitiesToString(capabilities);
+        }
+        return capabilitiesToStringLollipop(capabilities);
+    }
+
+    /*
+     * Use reflection to call PhoneCapabilities.toString. InCallUI code is only run on Google
+     * Experience phones, so we will be the system Dialer and the method will exist
+     */
+    private static String capabilitiesToStringLollipop(int capabilities) {
+        try {
+            return (String) Class.forName("android.telecom.PhoneCapabilities")
+                    .getMethod("toString", Integer.TYPE)
+                    .invoke(null, capabilities);
+        } catch (ReflectiveOperationException e) {
+            Log.e(DetailsCompat.class, "Unable to use reflection to call "
+                    + "android.telecom.PhoneCapabilities.toString(int)", e);
+            return String.valueOf(capabilities);
+        }
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/compat/telecom/InCallServiceCompat.java b/InCallUI/src/com/android/incallui/compat/telecom/InCallServiceCompat.java
new file mode 100644
index 0000000..0a3cb26
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/compat/telecom/InCallServiceCompat.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.incallui.compat.telecom;
+
+import android.support.annotation.Nullable;
+import android.telecom.InCallService;
+
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.incallui.Call;
+import com.android.incallui.InCallServiceImpl;
+
+/**
+ * Compatibility class for {@link android.telecom.InCallService}
+ */
+public class InCallServiceCompat {
+
+    /**
+     * Sets the microphone mute state. When this request is honored, there
+     * will be a change to the {@link android.telecom.CallAudioState}.
+     *
+     * Note: Noop for Sdk versions less than M where inCallService is not of type
+     * {@link InCallServiceImpl}
+     *
+     * @param inCallService the {@link InCallService} to act on
+     * @param shouldMute {@code true} if the microphone should be muted; {@code false} otherwise.
+     */
+    public static void setMuted(@Nullable InCallService inCallService, boolean shouldMute) {
+        if (inCallService == null) {
+            return;
+        }
+        if (CompatUtils.isMarshmallowCompatible()) {
+            inCallService.setMuted(shouldMute);
+            return;
+        }
+
+        if (inCallService instanceof InCallServiceImpl) {
+            ((InCallServiceImpl) inCallService).setMutedCompat(shouldMute);
+        }
+    }
+
+    /**
+     * Sets the audio route (speaker, bluetooth, etc...).  When this request is honored, there will
+     * be change to the {@link android.telecom.CallAudioState}.
+     *
+     * Note: Noop for Sdk versions less than M where inCallService is not of type
+     * {@link InCallServiceImpl}
+     *
+     * @param inCallService the {@link InCallService} to act on
+     * @param route The audio route to use.
+     */
+    public static void setAudioRoute(@Nullable InCallService inCallService, int route) {
+        if (inCallService == null) {
+            return;
+        }
+        if (CompatUtils.isMarshmallowCompatible()) {
+            inCallService.setAudioRoute(route);
+            return;
+        }
+
+        if (inCallService instanceof InCallServiceImpl) {
+            ((InCallServiceImpl) inCallService).setAudioRouteCompat(route);
+        }
+    }
+
+    /**
+     * Returns if the device can support additional calls.
+     *
+     * @param inCallService the {@link InCallService} to act on
+     * @param call a {@link Call} to use if needed due to compatibility reasons
+     * @return Whether the phone supports adding more calls, defaulting to true if inCallService
+     *    is null
+     */
+    public static boolean canAddCall(@Nullable InCallService inCallService, Call call) {
+        if (inCallService == null) {
+            return true;
+        }
+
+        if (CompatUtils.isMarshmallowCompatible()) {
+            // Default to true if we are not connected to telecom.
+            return inCallService.canAddCall();
+        }
+        return call.can(DetailsCompat.CAPABILITY_UNUSED_1);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/compat/telecom/VideoProfileCompat.java b/InCallUI/src/com/android/incallui/compat/telecom/VideoProfileCompat.java
new file mode 100644
index 0000000..6e81bd7
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/compat/telecom/VideoProfileCompat.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.incallui.compat.telecom;
+
+import android.telecom.VideoProfile;
+
+import com.android.contacts.common.compat.CompatUtils;
+
+/**
+ * Compatibility class for {@link android.telecom.VideoProfile}
+ */
+public class VideoProfileCompat {
+
+    /**
+     * Generates a string representation of a video state.
+     *
+     * @param videoState The video state.
+     * @return String representation of the video state.
+     */
+    public static String videoStateToString(int videoState) {
+        if (CompatUtils.isMarshmallowCompatible()) {
+            return VideoProfile.videoStateToString(videoState);
+        }
+        return videoStateToStringLollipop(videoState);
+    }
+
+    /**
+     * Copied from {@link android.telecom.VideoProfile#videoStateToString}
+     */
+    private static String videoStateToStringLollipop(int videoState) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("Audio");
+        if (isAudioOnly(videoState)) {
+            sb.append(" Only");
+        } else {
+            if (isTransmissionEnabled(videoState)) {
+                sb.append(" Tx");
+            }
+            if (isReceptionEnabled(videoState)) {
+                sb.append(" Rx");
+            }
+            if (isPaused(videoState)) {
+                sb.append(" Pause");
+            }
+        }
+        return sb.toString();
+    }
+
+    /**
+     * Indicates whether the video state is audio only.
+     *
+     * @param videoState The video state.
+     * @return {@code true} if the video state is audio only, {@code false} otherwise.
+     */
+    public static boolean isAudioOnly(int videoState) {
+        if (CompatUtils.isMarshmallowCompatible()) {
+            return VideoProfile.isAudioOnly(videoState);
+        }
+        return !hasState(videoState, VideoProfile.STATE_TX_ENABLED)
+                && !hasState(videoState, VideoProfile.STATE_RX_ENABLED);
+    }
+
+    /**
+     * Indicates whether the video state has video transmission enabled.
+     *
+     * @param videoState The video state.
+     * @return {@code true} if video transmission is enabled, {@code false} otherwise.
+     */
+    public static boolean isTransmissionEnabled(int videoState) {
+        if (CompatUtils.isMarshmallowCompatible()) {
+            return VideoProfile.isTransmissionEnabled(videoState);
+        }
+        return hasState(videoState, VideoProfile.STATE_TX_ENABLED);
+    }
+
+    /**
+     * Indicates whether the video state has video reception enabled.
+     *
+     * @param videoState The video state.
+     * @return {@code true} if video reception is enabled, {@code false} otherwise.
+     */
+    public static boolean isReceptionEnabled(int videoState) {
+        if (CompatUtils.isMarshmallowCompatible()) {
+            return VideoProfile.isReceptionEnabled(videoState);
+        }
+        return hasState(videoState, VideoProfile.STATE_RX_ENABLED);
+    }
+
+    /**
+     * Indicates whether the video state is paused.
+     *
+     * @param videoState The video state.
+     * @return {@code true} if the video is paused, {@code false} otherwise.
+     */
+    public static boolean isPaused(int videoState) {
+        if (CompatUtils.isMarshmallowCompatible()) {
+            return VideoProfile.isPaused(videoState);
+        }
+        return hasState(videoState, VideoProfile.STATE_PAUSED);
+    }
+
+    /**
+     * Copied from {@link android.telecom.VideoProfile}
+     *
+     * Determines if a specified state is set in a videoState bit-mask.
+     *
+     * @param videoState The video state bit-mask.
+     * @param state The state to check.
+     * @return {@code true} if the state is set.
+     */
+    private static boolean hasState(int videoState, int state) {
+        return (videoState & state) == state;
+    }
+
+    /**
+     * Indicates whether the video state is bi-directional.
+     *
+     * @param videoState The video state.
+     * @return {@code True} if the video is bi-directional, {@code false} otherwise.
+     */
+    public static boolean isBidirectional(int videoState) {
+        if (CompatUtils.isMarshmallowCompatible()) {
+            return VideoProfile.isBidirectional(videoState);
+        }
+        return hasState(videoState, VideoProfile.STATE_BIDIRECTIONAL);
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/service/PhoneNumberService.java b/InCallUI/src/com/android/incallui/service/PhoneNumberService.java
index 3ce84b9..70da4ef 100644
--- a/InCallUI/src/com/android/incallui/service/PhoneNumberService.java
+++ b/InCallUI/src/com/android/incallui/service/PhoneNumberService.java
@@ -60,6 +60,8 @@
         public String getPhoneLabel();
         public String getNormalizedNumber();
         public String getImageUrl();
+        public String getLookupKey();
         public boolean isBusiness();
+        public int getLookupSource();
     }
 }
diff --git a/InCallUI/src/com/android/incallui/util/AccessibilityUtil.java b/InCallUI/src/com/android/incallui/util/AccessibilityUtil.java
new file mode 100644
index 0000000..1fdd2ba
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/util/AccessibilityUtil.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui.util;
+
+import android.content.Context;
+import android.view.accessibility.AccessibilityManager;
+
+public class AccessibilityUtil {
+    public static boolean isTalkBackEnabled(Context context) {
+        AccessibilityManager accessibilityManager = (AccessibilityManager) context
+                .getSystemService(Context.ACCESSIBILITY_SERVICE);
+        return accessibilityManager != null
+                && accessibilityManager.isEnabled()
+                && accessibilityManager.isTouchExplorationEnabled();
+    }
+}
diff --git a/InCallUI/src/com/android/incallui/util/TelecomCallUtil.java b/InCallUI/src/com/android/incallui/util/TelecomCallUtil.java
new file mode 100644
index 0000000..53ecc29
--- /dev/null
+++ b/InCallUI/src/com/android/incallui/util/TelecomCallUtil.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.incallui.util;
+
+import android.net.Uri;
+import android.telecom.Call;
+import android.telephony.PhoneNumberUtils;
+
+/**
+ * Class to provide a standard interface for obtaining information from the underlying
+ * android.telecom.Call. Much of this should be obtained through the incall.Call, but
+ * on occasion we need to interact with the telecom.Call directly (eg. call blocking,
+ * before the incall.Call has been created).
+ */
+public class TelecomCallUtil {
+
+    // Whether the call handle is an emergency number.
+    public static boolean isEmergencyCall(Call call) {
+        Uri handle = call.getDetails().getHandle();
+        return PhoneNumberUtils.isEmergencyNumber(
+                handle == null ? "" : handle.getSchemeSpecificPart());
+    }
+
+    public static String getNumber(Call call) {
+        if (call == null) {
+            return null;
+        }
+        if (call.getDetails().getGatewayInfo() != null) {
+            return call.getDetails().getGatewayInfo()
+                    .getOriginalAddress().getSchemeSpecificPart();
+        }
+        Uri handle = getHandle(call);
+        return handle == null ? null : handle.getSchemeSpecificPart();
+    }
+
+    public static Uri getHandle(Call call) {
+        return call == null ? null : call.getDetails().getHandle();
+    }
+}
diff --git a/InCallUI/src/com/android/incalluibind/ObjectFactory.java b/InCallUI/src/com/android/incalluibind/ObjectFactory.java
index d8a2e29..7e9423a 100644
--- a/InCallUI/src/com/android/incalluibind/ObjectFactory.java
+++ b/InCallUI/src/com/android/incalluibind/ObjectFactory.java
@@ -20,6 +20,8 @@
 import android.content.Intent;
 
 import com.android.incallui.CallCardPresenter.EmergencyCallListener;
+import com.android.incallui.ContactUtils;
+import com.android.incallui.DistanceHelper;
 import com.android.incallui.service.PhoneNumberService;
 
 public class ObjectFactory {
@@ -45,4 +47,13 @@
     public static Intent getCallStateButtonBroadcastIntent(Context context) {
         return null;
     }
+
+    public static DistanceHelper newDistanceHelper(Context context,
+            DistanceHelper.Listener listener) {
+        return null;
+    }
+
+    public static ContactUtils getContactUtilsInstance(Context context) {
+        return null;
+    }
 }
diff --git a/InCallUI/tests/src/com/android/incallui/CallerInfoUtilsTest.java b/InCallUI/tests/src/com/android/incallui/CallerInfoUtilsTest.java
index 5baabce..de5a023 100644
--- a/InCallUI/tests/src/com/android/incallui/CallerInfoUtilsTest.java
+++ b/InCallUI/tests/src/com/android/incallui/CallerInfoUtilsTest.java
@@ -17,7 +17,9 @@
 package com.android.incallui;
 
 import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
 
+@SmallTest
 public class CallerInfoUtilsTest extends AndroidTestCase {
     public void testToLogSafeNumber_email() {
         assertEquals("xxx@xxx.xxx", CallerInfoUtils.toLogSafePhoneNumber("foo@foo.com"));
diff --git a/InCallUI/tests/src/com/android/incallui/InCallContactInteractionsTest.java b/InCallUI/tests/src/com/android/incallui/InCallContactInteractionsTest.java
new file mode 100644
index 0000000..625cda4
--- /dev/null
+++ b/InCallUI/tests/src/com/android/incallui/InCallContactInteractionsTest.java
@@ -0,0 +1,325 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.location.Address;
+import android.test.AndroidTestCase;
+import android.util.Pair;
+
+import com.android.incallui.InCallContactInteractions.BusinessContextInfo;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Locale;
+
+/**
+ * Tests for InCallContactInteractions class methods for formatting info for display.
+ *
+ * NOTE: tests assume system settings are set to 12hr time format and US locale. This means that
+ * the output of InCallContactInteractions methods are compared against strings in 12hr time format
+ * and US locale address formatting unless otherwise specified.
+ */
+public class InCallContactInteractionsTest extends AndroidTestCase {
+    private InCallContactInteractions mInCallContactInteractions;
+    private static final float TEST_DISTANCE = (float) 1234.56;
+
+    @Override
+    protected void setUp() {
+        mInCallContactInteractions = new InCallContactInteractions(mContext, true /* isBusiness */);
+    }
+
+    public void testIsOpenNow_NowMatchesOpenTime() {
+        assertEquals(mContext.getString(R.string.open_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(8),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(20))))
+                .heading);
+    }
+
+    public void testIsOpenNow_ClosingAfterMidnight() {
+        assertEquals(mContext.getString(R.string.open_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(10),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHourAndDaysFromToday(1, 1))))
+                .heading);
+    }
+
+    public void testIsOpenNow_Open24Hours() {
+        assertEquals(mContext.getString(R.string.open_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(10),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHourAndDaysFromToday(8, 1))))
+                .heading);
+    }
+
+    public void testIsOpenNow_AfterMiddayBreak() {
+        assertEquals(mContext.getString(R.string.open_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(13),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(10)),
+                                Pair.create(
+                                        getTestCalendarWithHour(12),
+                                        getTestCalendarWithHour(15))))
+                .heading);
+    }
+
+    public void testIsClosedNow_DuringMiddayBreak() {
+        assertEquals(mContext.getString(R.string.closed_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(11),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(10)),
+                                Pair.create(
+                                        getTestCalendarWithHour(12),
+                                        getTestCalendarWithHour(15))))
+                .heading);
+    }
+
+    public void testIsClosedNow_BeforeOpen() {
+        assertEquals(mContext.getString(R.string.closed_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(6),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(20))))
+                .heading);
+    }
+
+    public void testIsClosedNow_NowMatchesClosedTime() {
+        assertEquals(mContext.getString(R.string.closed_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(20),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(20))))
+                .heading);
+    }
+
+    public void testIsClosedNow_AfterClosed() {
+        assertEquals(mContext.getString(R.string.closed_now),
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(21),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(20))))
+                .heading);
+    }
+
+    public void testOpeningHours_SingleOpenRangeWhileOpen() {
+        assertEquals("8:00 AM - 8:00 PM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(12),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(20))))
+                .detail);
+    }
+
+    public void testOpeningHours_TwoOpenRangesWhileOpen() {
+        assertEquals("8:00 AM - 10:00 AM, 12:00 PM - 3:00 PM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(12),
+                        Arrays.asList(
+                                Pair.create(
+                                    getTestCalendarWithHour(8),
+                                    getTestCalendarWithHour(10)),
+                                Pair.create(
+                                        getTestCalendarWithHour(12),
+                                        getTestCalendarWithHour(15))))
+                .detail);
+    }
+
+    public void testOpeningHours_AfterClosedNoTomorrow() {
+        assertEquals("Closed today at 8:00 PM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(21),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHour(8),
+                                        getTestCalendarWithHour(20))))
+                .detail);
+    }
+
+    public void testOpeningHours_NotOpenTodayOpenTomorrow() {
+        assertEquals("Opens tomorrow at 8:00 AM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(21),
+                        Arrays.asList(
+                                Pair.create(
+                                        getTestCalendarWithHourAndDaysFromToday(8, 1),
+                                        getTestCalendarWithHourAndDaysFromToday(10, 1))))
+                .detail);
+    }
+
+    public void testMultipleOpenRanges_BeforeOpen() {
+        assertEquals("Opens today at 8:00 AM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(7),
+                        getMultipleOpeningHours())
+                .detail);
+    }
+
+    public void testMultipleOpenRanges_DuringFirstRange() {
+        assertEquals("Closes at 10:00 AM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(9),
+                        getMultipleOpeningHours())
+                .detail);
+    }
+
+    public void testMultipleOpenRanges_BeforeMiddleRange() {
+        assertEquals("Opens today at 12:00 PM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(11),
+                        getMultipleOpeningHours())
+                .detail);
+    }
+
+    public void testMultipleOpeningHours_DuringLastRange() {
+        assertEquals("Closes at 9:00 PM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(19),
+                        getMultipleOpeningHours())
+                .detail);
+    }
+
+    public void testMultipleOpeningHours_AfterClose() {
+        assertEquals("Opens tomorrow at 8:00 AM",
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(22),
+                        getMultipleOpeningHours())
+                .detail);
+    }
+
+    public void testNotOpenTodayOrTomorrow() {
+        assertEquals(null,
+                mInCallContactInteractions.constructHoursInfo(
+                        getTestCalendarWithHour(21),
+                        new ArrayList<Pair<Calendar, Calendar>>()));
+    }
+
+    public void testLocationInfo_ForUS() {
+        BusinessContextInfo info =
+                mInCallContactInteractions.constructLocationInfo(
+                        Locale.US,
+                        getAddressForTest(),
+                        TEST_DISTANCE);
+        assertEquals("0.8 mi away", info.heading);
+        assertEquals("Test address, Test locality", info.detail);
+    }
+
+    public void testLocationInfo_ForNotUS() {
+        BusinessContextInfo info =
+                mInCallContactInteractions.constructLocationInfo(
+                        Locale.CANADA,
+                        getAddressForTest(),
+                        TEST_DISTANCE);
+        assertEquals("1.2 km away", info.heading);
+        assertEquals("Test address, Test locality", info.detail);
+    }
+
+    public void testLocationInfo_NoLocality() {
+        Address address = getAddressForTest();
+        address.setLocality(null);
+        BusinessContextInfo info =
+                mInCallContactInteractions.constructLocationInfo(
+                        Locale.CANADA,
+                        address,
+                        TEST_DISTANCE);
+        assertEquals("1.2 km away", info.heading);
+        assertEquals("Test address", info.detail);
+    }
+
+    public void testLocationInfo_NoAddress() {
+        BusinessContextInfo info =
+                mInCallContactInteractions.constructLocationInfo(
+                        Locale.CANADA,
+                        null,
+                        TEST_DISTANCE);
+        assertEquals(null, info);
+    }
+
+    public void testLocationInfo_NoDistance() {
+        BusinessContextInfo info =
+                mInCallContactInteractions.constructLocationInfo(
+                        Locale.US,
+                        getAddressForTest(),
+                        DistanceHelper.DISTANCE_NOT_FOUND);
+        assertEquals(null, info.heading);
+    }
+
+    private Address getAddressForTest() {
+        Address address = new Address(Locale.US);
+        address.setAddressLine(0, "Test address");
+        address.setLocality("Test locality");
+        return address;
+    }
+
+    private Calendar getTestCalendarWithHour(int hour) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.HOUR_OF_DAY, hour);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND, 0);
+        return calendar;
+    }
+
+    private Calendar getTestCalendarWithHourAndDaysFromToday(int hour, int daysFromToday) {
+        Calendar calendar = getTestCalendarWithHour(hour);
+        calendar.add(Calendar.DATE, daysFromToday);
+        return calendar;
+    }
+
+    private List<Pair<Calendar, Calendar>> getMultipleOpeningHours() {
+        return Arrays.asList(
+                Pair.create(
+                    getTestCalendarWithHour(8),
+                    getTestCalendarWithHour(10)),
+                Pair.create(
+                        getTestCalendarWithHour(12),
+                        getTestCalendarWithHour(15)),
+                Pair.create(
+                        getTestCalendarWithHour(17),
+                        getTestCalendarWithHour(21)),
+                Pair.create(
+                        getTestCalendarWithHourAndDaysFromToday(8, 1),
+                        getTestCalendarWithHourAndDaysFromToday(10, 1)),
+                Pair.create(
+                        getTestCalendarWithHourAndDaysFromToday(12, 1),
+                        getTestCalendarWithHourAndDaysFromToday(8, 1)));
+    }
+}
diff --git a/InCallUI/tests/src/com/android/incallui/InCallPresenterTest.java b/InCallUI/tests/src/com/android/incallui/InCallPresenterTest.java
index f4e06a5..ed8d622 100644
--- a/InCallUI/tests/src/com/android/incallui/InCallPresenterTest.java
+++ b/InCallUI/tests/src/com/android/incallui/InCallPresenterTest.java
@@ -23,7 +23,9 @@
 import android.content.Context;
 import android.content.Intent;
 import android.telecom.PhoneAccountHandle;
+import android.telephony.TelephonyManager;
 import android.test.InstrumentationTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
 
 import com.android.incallui.InCallPresenter.InCallState;
 
@@ -31,6 +33,7 @@
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 
+@MediumTest
 public class InCallPresenterTest extends InstrumentationTestCase {
     private MockCallListWrapper mCallList;
     @Mock private InCallActivity mInCallActivity;
@@ -41,6 +44,7 @@
 
     InCallPresenter mInCallPresenter;
     @Mock private Context mContext;
+    @Mock private TelephonyManager mTelephonyManager;
 
     @Override
     protected void setUp() throws Exception {
@@ -50,6 +54,8 @@
         MockitoAnnotations.initMocks(this);
         mCallList = new MockCallListWrapper();
 
+        when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+
         mInCallPresenter = InCallPresenter.getInstance();
         mInCallPresenter.setUp(mContext, mCallList.getCallList(), mAudioModeProvider,
                 mStatusBarNotifier, mContactInfoCache, mProximitySensor);
diff --git a/InCallUI/tests/src/com/android/incallui/ProximitySensorTest.java b/InCallUI/tests/src/com/android/incallui/ProximitySensorTest.java
index d7b2f64..1c8f347 100644
--- a/InCallUI/tests/src/com/android/incallui/ProximitySensorTest.java
+++ b/InCallUI/tests/src/com/android/incallui/ProximitySensorTest.java
@@ -22,6 +22,7 @@
 import static org.mockito.Mockito.verify;
 
 import android.test.InstrumentationTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
 
 import com.android.incallui.InCallPresenter.InCallState;
 
@@ -29,6 +30,7 @@
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 
+@MediumTest
 public class ProximitySensorTest extends InstrumentationTestCase {
     @Mock private AccelerometerListener mAccelerometerListener;
     private MockCallListWrapper mCallList;
