diff --git a/Android.mk b/Android.mk
index 984cd28..c3b1094 100644
--- a/Android.mk
+++ b/Android.mk
@@ -4,6 +4,12 @@
 # * removed com.google.android.geo.API_KEY key. This should be added to
 #      the manifest files in java/com/android/incallui/calllocation/impl/
 #      and /java/com/android/incallui/maps/impl/
+# * b/62417801 removed translation string variant:
+#      java/com/android/incallui/res/values-af-mcc262-mnc01/strings.xml
+# * b/62343966 include manually generated GRPC service class:
+#      $ protoc --plugin=protoc-gen-grpc-java=prebuilts/tools/common/m2/repository/io/grpc/protoc-gen-grpc-java/1.0.3/protoc-gen-grpc-java-1.0.3-linux-x86_64.exe \
+#               --grpc-java_out=lite:"packages/apps/Dialer/java/com/android/voicemail/impl/" \
+#               --proto_path="packages/apps/Dialer/java/com/android/voicemail/impl/transcribe/grpc/" "packages/apps/Dialer/java/com/android/voicemail/impl/transcribe
 LOCAL_PATH:= $(call my-dir)
 include $(CLEAR_VARS)
 
@@ -20,6 +26,7 @@
 SRC_DIRS := \
 	$(BASE_DIR)/contacts/common \
 	$(BASE_DIR)/dialer \
+	$(BASE_DIR)/dialershared \
 	$(BASE_DIR)/incallui \
 	$(BASE_DIR)/voicemail
 
@@ -39,7 +46,7 @@
 	$(BASE_DIR)/incallui/calllocation/impl/TrafficStatsTags.java \
 	$(BASE_DIR)/incallui/maps/impl/MapsImpl.java \
 	$(BASE_DIR)/incallui/maps/impl/MapsModule.java \
-	$(BASE_DIR)/incallui/maps/impl/StaticMapFragment.java
+	$(BASE_DIR)/incallui/maps/impl/StaticMapFragment.java \
 
 # Exclude testing only class, not used anywhere here
 EXCLUDE_FILES += \
@@ -62,6 +69,7 @@
 	$(BASE_DIR)/dialer/calllog/ui/res \
 	$(BASE_DIR)/dialer/calllogutils/res \
 	$(BASE_DIR)/dialer/common/res \
+	$(BASE_DIR)/dialer/contactactions/res \
 	$(BASE_DIR)/dialer/contactsfragment/res \
 	$(BASE_DIR)/dialer/dialpadview/res \
 	$(BASE_DIR)/dialer/interactions/res \
@@ -69,12 +77,14 @@
 	$(BASE_DIR)/dialer/oem/res \
 	$(BASE_DIR)/dialer/phonenumberutil/res \
 	$(BASE_DIR)/dialer/postcall/res \
+	$(BASE_DIR)/dialer/searchfragment/res \
 	$(BASE_DIR)/dialer/shortcuts/res \
 	$(BASE_DIR)/dialer/speeddial/res \
 	$(BASE_DIR)/dialer/theme/res \
 	$(BASE_DIR)/dialer/util/res \
 	$(BASE_DIR)/dialer/voicemailstatus/res \
 	$(BASE_DIR)/dialer/widget/res \
+	$(BASE_DIR)/dialershared/bubble/res \
 	$(BASE_DIR)/incallui/answer/impl/affordance/res \
 	$(BASE_DIR)/incallui/answer/impl/answermethod/res \
 	$(BASE_DIR)/incallui/answer/impl/hint/res \
@@ -88,6 +98,7 @@
 	$(BASE_DIR)/incallui/incall/impl/res \
 	$(BASE_DIR)/incallui/res \
 	$(BASE_DIR)/incallui/sessiondata/res \
+	$(BASE_DIR)/incallui/speakerbuttonlogic/res \
 	$(BASE_DIR)/incallui/telecomeventui/res \
 	$(BASE_DIR)/incallui/video/impl/res \
 	$(BASE_DIR)/incallui/video/protocol/res \
@@ -113,6 +124,7 @@
 	$(BASE_DIR)/dialer/calllog/ui/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/calllogutils/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/common/AndroidManifest.xml \
+	$(BASE_DIR)/dialer/contactactions/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/contactsfragment/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/dialpadview/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/interactions/AndroidManifest.xml \
@@ -120,6 +132,7 @@
 	$(BASE_DIR)/dialer/oem/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/phonenumberutil/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/postcall/AndroidManifest.xml \
+	$(BASE_DIR)/dialer/searchfragment/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/shortcuts/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/simulator/impl/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/speeddial/AndroidManifest.xml \
@@ -127,6 +140,7 @@
 	$(BASE_DIR)/dialer/util/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/voicemailstatus/AndroidManifest.xml \
 	$(BASE_DIR)/dialer/widget/AndroidManifest.xml \
+	$(BASE_DIR)/dialershared/bubble/AndroidManifest.xml \
 	$(BASE_DIR)/incallui/AndroidManifest.xml \
 	$(BASE_DIR)/incallui/answer/impl/affordance/AndroidManifest.xml \
 	$(BASE_DIR)/incallui/answer/impl/AndroidManifest.xml \
@@ -139,12 +153,13 @@
 	$(BASE_DIR)/incallui/hold/AndroidManifest.xml \
 	$(BASE_DIR)/incallui/incall/impl/AndroidManifest.xml \
 	$(BASE_DIR)/incallui/sessiondata/AndroidManifest.xml \
+	$(BASE_DIR)/incallui/speakerbuttonlogic/AndroidManifest.xml \
 	$(BASE_DIR)/incallui/telecomeventui/AndroidManifest.xml \
 	$(BASE_DIR)/incallui/video/impl/AndroidManifest.xml \
 	$(BASE_DIR)/incallui/video/protocol/AndroidManifest.xml \
 	$(BASE_DIR)/incallui/wifi/AndroidManifest.xml \
 	$(BASE_DIR)/voicemail/impl/AndroidManifest.xml \
-	$(BASE_DIR)/voicemail/permissions.xml \
+	$(BASE_DIR)/voicemail/AndroidManifest.xml \
 
 
 # Merge all manifest files.
@@ -180,6 +195,7 @@
 	--extra-packages com.android.dialer.calllog.ui \
 	--extra-packages com.android.dialer.calllogutils \
 	--extra-packages com.android.dialer.common \
+        --extra-packages com.android.dialer.contactactions \
 	--extra-packages com.android.dialer.contactsfragment \
 	--extra-packages com.android.dialer.dialpadview \
 	--extra-packages com.android.dialer.interactions \
@@ -187,12 +203,14 @@
 	--extra-packages com.android.dialer.oem \
 	--extra-packages com.android.dialer.phonenumberutil \
 	--extra-packages com.android.dialer.postcall \
+	--extra-packages com.android.dialer.searchfragment \
 	--extra-packages com.android.dialer.shortcuts \
 	--extra-packages com.android.dialer.speeddial \
 	--extra-packages com.android.dialer.theme \
 	--extra-packages com.android.dialer.util \
 	--extra-packages com.android.dialer.voicemailstatus \
 	--extra-packages com.android.dialer.widget \
+	--extra-packages com.android.dialershared.bubble \
 	--extra-packages com.android.incallui \
 	--extra-packages com.android.incallui.answer.impl \
 	--extra-packages com.android.incallui.answer.impl.affordance \
@@ -209,6 +227,7 @@
 	--extra-packages com.android.incallui.incall.impl \
 	--extra-packages com.android.incallui.maps.impl \
 	--extra-packages com.android.incallui.sessiondata \
+	--extra-packages com.android.incallui.speakerbuttonlogic \
 	--extra-packages com.android.incallui.telecomeventui \
 	--extra-packages com.android.incallui.video \
 	--extra-packages com.android.incallui.video.impl \
@@ -223,6 +242,7 @@
 
 LOCAL_STATIC_JAVA_LIBRARIES := \
 	android-common \
+	android-support-dynamic-animation \
 	com.android.vcard \
 	dialer-commons-io-target \
 	dialer-dagger2-target \
@@ -230,6 +250,11 @@
 	dialer-gifdecoder-target \
 	dialer-glide-target \
 	dialer-guava-target \
+        dialer-grpc-all-target \
+        dialer-grpc-core-target \
+	dialer-grpc-okhttp-target \
+	dialer-grpc-protobuf-lite-target \
+        dialer-grpc-stub-target \
 	dialer-javax-annotation-api-target \
 	dialer-javax-inject-target \
 	dialer-libshortcutbadger-target \
@@ -251,6 +276,11 @@
 LOCAL_JAVA_LIBRARIES := \
 	org.apache.http.legacy \
 	dialer-auto-value \
+	dialer-grpc-all \
+	dialer-grpc-core \
+	dialer-grpc-okhttp \
+	dialer-grpc-protobuf-lite \
+	dialer-grpc-stub \
 
 # Libraries needed by the compiler (JACK) to generate code.
 PROCESSOR_LIBRARIES_TARGET := \
@@ -314,6 +344,11 @@
     dialer-dagger2:../../../prebuilts/tools/common/m2/repository/com/google/dagger/dagger/2.7/dagger-2.7$(COMMON_JAVA_PACKAGE_SUFFIX) \
     dialer-dagger2-producers:../../../prebuilts/tools/common/m2/repository/com/google/dagger/dagger-producers/2.7/dagger-producers-2.7$(COMMON_JAVA_PACKAGE_SUFFIX) \
     dialer-guava:../../../prebuilts/tools/common/m2/repository/com/google/guava/guava/20.0/guava-20.0$(COMMON_JAVA_PACKAGE_SUFFIX) \
+    dialer-grpc-all:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-all/1.0.3/grpc-all-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \
+    dialer-grpc-core:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-core/1.0.3/grpc-core-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \
+    dialer-grpc-okhttp:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-okhttp/1.0.3/grpc-okhttp-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \
+    dialer-grpc-protobuf-lite:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-protobuf-lite/1.0.3/grpc-protobuf-lite-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \
+    dialer-grpc-stub:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-stub/1.0.3/grpc-stub-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \
     dialer-javax-annotation-api:../../../prebuilts/tools/common/m2/repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2$(COMMON_JAVA_PACKAGE_SUFFIX) \
     dialer-javax-inject:../../../prebuilts/tools/common/m2/repository/javax/inject/javax.inject/1/javax.inject-1$(COMMON_JAVA_PACKAGE_SUFFIX)
 
@@ -432,3 +467,53 @@
 include $(BUILD_PREBUILT)
 
 include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+LOCAL_MODULE := dialer-grpc-core-target
+LOCAL_SDK_VERSION := current
+LOCAL_SRC_FILES := ../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-core/1.0.3/grpc-core-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX)
+LOCAL_UNINSTALLABLE_MODULE := true
+
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+LOCAL_MODULE := dialer-grpc-okhttp-target
+LOCAL_SDK_VERSION := current
+LOCAL_SRC_FILES := ../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-okhttp/1.0.3/grpc-okhttp-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX)
+LOCAL_UNINSTALLABLE_MODULE := true
+
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+LOCAL_MODULE := dialer-grpc-protobuf-lite-target
+LOCAL_SDK_VERSION := current
+LOCAL_SRC_FILES := ../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-protobuf-lite/1.0.3/grpc-protobuf-lite-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX)
+LOCAL_UNINSTALLABLE_MODULE := true
+
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+LOCAL_MODULE := dialer-grpc-stub-target
+LOCAL_SDK_VERSION := current
+LOCAL_SRC_FILES := ../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-stub/1.0.3/grpc-stub-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX)
+LOCAL_UNINSTALLABLE_MODULE := true
+
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_CLASS := JAVA_LIBRARIES
+LOCAL_MODULE := dialer-grpc-all-target
+LOCAL_SDK_VERSION := current
+LOCAL_SRC_FILES := ../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-all/1.0.3/grpc-all-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX)
+LOCAL_UNINSTALLABLE_MODULE := true
+
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index c04f8be..7966a55 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -16,8 +16,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
   coreApp="true"
   package="com.android.dialer"
-  android:versionCode="130000"
-  android:versionName="10.0">
+  android:versionCode="140000"
+  android:versionName="11.0">
 
   <uses-sdk
     android:minSdkVersion="23"
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_bluetooth_audio_white_24.png
new file mode 100644
index 0000000..046372d
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_bluetooth_audio_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_check_circle_googblue_24.png
deleted file mode 100644
index 52ff857..0000000
--- a/assets/quantum/res/drawable-hdpi/quantum_ic_check_circle_googblue_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_forward_white_24.png
deleted file mode 100644
index a0711d3..0000000
--- a/assets/quantum/res/drawable-hdpi/quantum_ic_forward_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_headset_white_24.png
new file mode 100644
index 0000000..d25d388
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_headset_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_mic_off_white_24.png
new file mode 100644
index 0000000..6fccf5d
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_mic_off_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_network_wifi_white_24.png
deleted file mode 100644
index 8df91f2..0000000
--- a/assets/quantum/res/drawable-hdpi/quantum_ic_network_wifi_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_24.png
new file mode 100644
index 0000000..f2c8942
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_36.png
new file mode 100644
index 0000000..ec67c6e
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_36.png
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-hdpi/quantum_ic_report_white_18.png
deleted file mode 100644
index f0bb6f5..0000000
--- a/assets/quantum/res/drawable-hdpi/quantum_ic_report_white_18.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_bluetooth_audio_white_24.png
new file mode 100644
index 0000000..ddffcf1
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_bluetooth_audio_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_check_circle_googblue_24.png
deleted file mode 100644
index eff56272..0000000
--- a/assets/quantum/res/drawable-mdpi/quantum_ic_check_circle_googblue_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_forward_white_24.png
deleted file mode 100644
index 65f7329..0000000
--- a/assets/quantum/res/drawable-mdpi/quantum_ic_forward_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_headset_white_24.png
new file mode 100644
index 0000000..df06379
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_headset_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_mic_off_white_24.png
new file mode 100644
index 0000000..15094d8
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_mic_off_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_network_wifi_white_24.png
deleted file mode 100644
index 1c3e8b9..0000000
--- a/assets/quantum/res/drawable-mdpi/quantum_ic_network_wifi_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_24.png
new file mode 100644
index 0000000..e6f98af
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_36.png
new file mode 100644
index 0000000..f2c8942
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_36.png
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-mdpi/quantum_ic_report_white_18.png
deleted file mode 100644
index 63ef736..0000000
--- a/assets/quantum/res/drawable-mdpi/quantum_ic_report_white_18.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_bluetooth_audio_white_24.png
new file mode 100644
index 0000000..b494eb3
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_bluetooth_audio_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_check_circle_googblue_24.png
deleted file mode 100644
index e31fcf3..0000000
--- a/assets/quantum/res/drawable-xhdpi/quantum_ic_check_circle_googblue_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_forward_white_24.png
deleted file mode 100644
index 7a5df52..0000000
--- a/assets/quantum/res/drawable-xhdpi/quantum_ic_forward_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_headset_white_24.png
new file mode 100644
index 0000000..d7a741b
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_headset_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_mic_off_white_24.png
new file mode 100644
index 0000000..bb7915f
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_mic_off_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_network_wifi_white_24.png
deleted file mode 100644
index ca927f3..0000000
--- a/assets/quantum/res/drawable-xhdpi/quantum_ic_network_wifi_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_24.png
new file mode 100644
index 0000000..a2d78b2
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_36.png
new file mode 100644
index 0000000..9c002da
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_36.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_report_white_18.png
deleted file mode 100644
index dc0c995..0000000
--- a/assets/quantum/res/drawable-xhdpi/quantum_ic_report_white_18.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_bluetooth_audio_white_24.png
new file mode 100644
index 0000000..d5022d0
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_bluetooth_audio_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_check_circle_googblue_24.png
deleted file mode 100644
index a8eb2a4..0000000
--- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_check_circle_googblue_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_forward_white_24.png
deleted file mode 100644
index 7bd5b16..0000000
--- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_forward_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_headset_white_24.png
new file mode 100644
index 0000000..82db542
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_headset_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_mic_off_white_24.png
new file mode 100644
index 0000000..7a15a9e
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_mic_off_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_network_wifi_white_24.png
deleted file mode 100644
index 75469cd..0000000
--- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_network_wifi_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_24.png
new file mode 100644
index 0000000..9c002da
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_36.png
new file mode 100644
index 0000000..5bb683f
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_36.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_report_white_18.png
deleted file mode 100644
index 919a872..0000000
--- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_report_white_18.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_bluetooth_audio_white_24.png
new file mode 100644
index 0000000..8e1fa20
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_bluetooth_audio_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_check_circle_googblue_24.png
deleted file mode 100644
index 7e08f61..0000000
--- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_check_circle_googblue_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_forward_white_24.png
deleted file mode 100644
index 428009c..0000000
--- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_forward_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_headset_white_24.png
new file mode 100644
index 0000000..0f0b2e1
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_headset_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_mic_off_white_24.png
new file mode 100644
index 0000000..22ca19a
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_mic_off_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_network_wifi_white_24.png
deleted file mode 100644
index eb284e3..0000000
--- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_network_wifi_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_24.png
new file mode 100644
index 0000000..36be1da
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_36.png
new file mode 100644
index 0000000..1257e66
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_36.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_report_white_18.png
deleted file mode 100644
index aed7668..0000000
--- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_report_white_18.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable/quantum_ic_arrow_back_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_arrow_back_vd_theme_24.xml
new file mode 100644
index 0000000..2989fda
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_arrow_back_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_call_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_call_vd_theme_24.xml
new file mode 100644
index 0000000..1fbafeb
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_call_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M6.62,10.79c1.44,2.83 3.76,5.14 6.59,6.59l2.2,-2.2c0.27,-0.27 0.67,-0.36 1.02,-0.24 1.12,0.37 2.33,0.57 3.57,0.57 0.55,0 1,0.45 1,1V20c0,0.55 -0.45,1 -1,1 -9.39,0 -17,-7.61 -17,-17 0,-0.55 0.45,-1 1,-1h3.5c0.55,0 1,0.45 1,1 0,1.25 0.2,2.45 0.57,3.57 0.11,0.35 0.03,0.74 -0.25,1.02l-2.2,2.2z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_close_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_close_vd_theme_24.xml
new file mode 100644
index 0000000..3f99732
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_close_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml
index 4f1fd49..6495ac7 100644
--- a/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml
+++ b/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml
@@ -7,4 +7,4 @@
     <path
         android:fillColor="@android:color/white"
         android:pathData="M14,16.5h-4L10,15L3,15v4c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2v-4h-7v1.5zM20,6h-3.5L16.5,4.5L15,3L9,3L7.5,4.55L7.5,6L4,6c-1.1,0 -2,0.9 -2,2v4c0,1.1 0.9,2 2,2h6v-1.5h4L14,14h6c1.1,0 2,-0.9 2,-2L22,8c0,-1.1 -0.9,-2 -2,-2zM15,6L9,6L9,4.5h6L15,6z"/>
-</vector>
\ No newline at end of file
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml
index c67509c..b6da8a0 100644
--- a/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml
+++ b/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml
@@ -7,4 +7,4 @@
     <path
         android:fillColor="@android:color/white"
         android:pathData="M19,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM11,15L9.5,15v-2h-2v2L6,15L6,9h1.5v2.5h2L9.5,9L11,9v6zM13,9h4c0.55,0 1,0.45 1,1v4c0,0.55 -0.45,1 -1,1h-4L13,9zM14.5,13.5h2v-3h-2v3z"/>
-</vector>
\ No newline at end of file
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_history_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_history_vd_theme_24.xml
new file mode 100644
index 0000000..d8567f5
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_history_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.28,2.54 0.72,-1.21 -3.5,-2.08L13.5,8L12,8z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_message_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_message_vd_theme_24.xml
new file mode 100644
index 0000000..280fa26
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_message_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM18,14L6,14v-2h12v2zM18,11L6,11L6,9h12v2zM18,8L6,8L6,6h12v2z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_person_add_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_person_add_vd_theme_24.xml
new file mode 100644
index 0000000..cf4e563
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_person_add_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M15,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM6,10L6,7L4,7v3L1,10v2h3v3h2v-3h3v-2L6,10zM15,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_search_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_search_vd_theme_24.xml
new file mode 100644
index 0000000..083d636
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_search_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_videocam_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_videocam_vd_theme_24.xml
new file mode 100644
index 0000000..429061a
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_videocam_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?attr/colorControlNormal">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M17,10.5V7c0,-0.55 -0.45,-1 -1,-1H4c-0.55,0 -1,0.45 -1,1v10c0,0.55 0.45,1 1,1h12c0.55,0 1,-0.45 1,-1v-3.5l4,4v-11l-4,4z"/>
+</vector>
diff --git a/java/com/android/contacts/common/ClipboardUtils.java b/java/com/android/contacts/common/ClipboardUtils.java
index 9345b0f..3d76839 100644
--- a/java/com/android/contacts/common/ClipboardUtils.java
+++ b/java/com/android/contacts/common/ClipboardUtils.java
@@ -24,8 +24,6 @@
 
 public class ClipboardUtils {
 
-  private static final String TAG = "ClipboardUtils";
-
   private ClipboardUtils() {}
 
   /**
diff --git a/java/com/android/contacts/common/ContactPhotoManager.java b/java/com/android/contacts/common/ContactPhotoManager.java
index 169348b..3e1a78f 100644
--- a/java/com/android/contacts/common/ContactPhotoManager.java
+++ b/java/com/android/contacts/common/ContactPhotoManager.java
@@ -36,14 +36,6 @@
 /** Asynchronously loads contact photos and maintains a cache of photos. */
 public abstract class ContactPhotoManager implements ComponentCallbacks2 {
 
-  /** Contact type constants used for default letter images */
-  public static final int TYPE_PERSON = LetterTileDrawable.TYPE_PERSON;
-
-  public static final int TYPE_SPAM = LetterTileDrawable.TYPE_SPAM;
-  public static final int TYPE_BUSINESS = LetterTileDrawable.TYPE_BUSINESS;
-  public static final int TYPE_VOICEMAIL = LetterTileDrawable.TYPE_VOICEMAIL;
-  public static final int TYPE_DEFAULT = LetterTileDrawable.TYPE_DEFAULT;
-  public static final int TYPE_GENERIC_AVATAR = LetterTileDrawable.TYPE_GENERIC_AVATAR;
   /** Scale and offset default constants used for default letter images */
   public static final float SCALE_DEFAULT = 1.0f;
 
@@ -88,7 +80,7 @@
       if (!TextUtils.isEmpty(request.identifier)) {
         builder.appendQueryParameter(IDENTIFIER_PARAM_KEY, request.identifier);
       }
-      if (request.contactType != TYPE_DEFAULT) {
+      if (request.contactType != LetterTileDrawable.TYPE_DEFAULT) {
         builder.appendQueryParameter(CONTACT_TYPE_PARAM_KEY, String.valueOf(request.contactType));
       }
       if (request.scale != SCALE_DEFAULT) {
@@ -114,7 +106,7 @@
   public static String appendBusinessContactType(String photoUrl) {
     Uri uri = Uri.parse(photoUrl);
     Builder builder = uri.buildUpon();
-    builder.encodedFragment(String.valueOf(TYPE_BUSINESS));
+    builder.encodedFragment(String.valueOf(LetterTileDrawable.TYPE_BUSINESS));
     return builder.build().toString();
   }
 
@@ -147,7 +139,7 @@
 
     String encodedFragment = photoUri.getEncodedFragment();
     return !TextUtils.isEmpty(encodedFragment)
-        && encodedFragment.equals(String.valueOf(TYPE_BUSINESS));
+        && encodedFragment.equals(String.valueOf(LetterTileDrawable.TYPE_BUSINESS));
   }
 
   protected static DefaultImageRequest getDefaultImageRequestFromUri(Uri uri) {
@@ -378,7 +370,7 @@
      * be returned.
      */
     public static final DefaultImageRequest EMPTY_DEFAULT_BUSINESS_IMAGE_REQUEST =
-        new DefaultImageRequest(null, null, TYPE_BUSINESS, false);
+        new DefaultImageRequest(null, null, LetterTileDrawable.TYPE_BUSINESS, false);
     /**
      * Used to indicate that a circular drawable that represents a contact without any contact
      * details should be returned.
@@ -390,7 +382,7 @@
      * should be returned.
      */
     public static final DefaultImageRequest EMPTY_CIRCULAR_BUSINESS_IMAGE_REQUEST =
-        new DefaultImageRequest(null, null, TYPE_BUSINESS, true);
+        new DefaultImageRequest(null, null, LetterTileDrawable.TYPE_BUSINESS, true);
     /** The contact's display name. The display name is used to */
     public String displayName;
     /**
@@ -403,10 +395,9 @@
     /**
      * The type of this contact. This contact type may be used to decide the kind of image to use in
      * the case where a unique letter cannot be generated from the contact's display name and
-     * identifier. See: {@link #TYPE_PERSON} {@link #TYPE_BUSINESS} {@link #TYPE_PERSON} {@link
-     * #TYPE_DEFAULT}
+     * identifier.
      */
-    public int contactType = TYPE_DEFAULT;
+    public @LetterTileDrawable.ContactType int contactType = LetterTileDrawable.TYPE_DEFAULT;
     /**
      * The amount to scale the letter or bitmap to, as a ratio of its default size (from a range of
      * 0.0f to 2.0f). The default value is 1.0f.
@@ -429,7 +420,13 @@
     public DefaultImageRequest() {}
 
     public DefaultImageRequest(String displayName, String identifier, boolean isCircular) {
-      this(displayName, identifier, TYPE_DEFAULT, SCALE_DEFAULT, OFFSET_DEFAULT, isCircular);
+      this(
+          displayName,
+          identifier,
+          LetterTileDrawable.TYPE_DEFAULT,
+          SCALE_DEFAULT,
+          OFFSET_DEFAULT,
+          isCircular);
     }
 
     public DefaultImageRequest(
diff --git a/java/com/android/contacts/common/ContactPhotoManagerImpl.java b/java/com/android/contacts/common/ContactPhotoManagerImpl.java
index 2e6ff9f..28ecf34 100644
--- a/java/com/android/contacts/common/ContactPhotoManagerImpl.java
+++ b/java/com/android/contacts/common/ContactPhotoManagerImpl.java
@@ -53,9 +53,9 @@
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import com.android.contacts.common.util.BitmapUtil;
-import com.android.contacts.common.util.TrafficStatsTags;
 import com.android.contacts.common.util.UriUtils;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.constants.TrafficStatsTags;
 import com.android.dialer.util.PermissionsUtil;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -634,8 +634,9 @@
           }
           return true;
         }
+      default:
+        return false;
     }
-    return false;
   }
 
   public void ensureLoaderThread() {
diff --git a/java/com/android/contacts/common/ContactStatusUtil.java b/java/com/android/contacts/common/ContactStatusUtil.java
index 97d84c8..c5347e7 100644
--- a/java/com/android/contacts/common/ContactStatusUtil.java
+++ b/java/com/android/contacts/common/ContactStatusUtil.java
@@ -23,8 +23,6 @@
 /** Provides static function to get default contact status message. */
 public class ContactStatusUtil {
 
-  private static final String TAG = "ContactStatusUtil";
-
   public static String getStatusString(Context context, int presence) {
     Resources resources = context.getResources();
     switch (presence) {
diff --git a/java/com/android/contacts/common/ContactsUtils.java b/java/com/android/contacts/common/ContactsUtils.java
index 60af44b..66ccc90 100644
--- a/java/com/android/contacts/common/ContactsUtils.java
+++ b/java/com/android/contacts/common/ContactsUtils.java
@@ -16,184 +16,17 @@
 
 package com.android.contacts.common;
 
-import android.content.Context;
-import android.content.Intent;
-import android.database.Cursor;
-import android.net.Uri;
-import android.provider.ContactsContract.CommonDataKinds.Im;
-import android.provider.ContactsContract.DisplayPhoto;
+import android.provider.ContactsContract.Contacts;
 import android.support.annotation.IntDef;
-import android.text.TextUtils;
-import android.util.Pair;
-import com.android.contacts.common.compat.ContactsCompat;
 import com.android.contacts.common.compat.DirectoryCompat;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.model.dataitem.ImDataItem;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
-import java.util.List;
 
 public class ContactsUtils {
 
   // Telecomm related schemes are in CallUtil
-  public static final String SCHEME_IMTO = "imto";
-  public static final String SCHEME_MAILTO = "mailto";
-  public static final String SCHEME_SMSTO = "smsto";
   public static final long USER_TYPE_CURRENT = 0;
   public static final long USER_TYPE_WORK = 1;
-  private static final String TAG = "ContactsUtils";
-  private static final int DEFAULT_THUMBNAIL_SIZE = 96;
-  private static int sThumbnailSize = -1;
-
-  /**
-   * This looks up the provider name defined in ProviderNames from the predefined IM protocol id.
-   * This is used for interacting with the IM application.
-   *
-   * @param protocol the protocol ID
-   * @return the provider name the IM app uses for the given protocol, or null if no provider is
-   *     defined for the given protocol
-   * @hide
-   */
-  public static String lookupProviderNameFromId(int protocol) {
-    switch (protocol) {
-      case Im.PROTOCOL_GOOGLE_TALK:
-        return ProviderNames.GTALK;
-      case Im.PROTOCOL_AIM:
-        return ProviderNames.AIM;
-      case Im.PROTOCOL_MSN:
-        return ProviderNames.MSN;
-      case Im.PROTOCOL_YAHOO:
-        return ProviderNames.YAHOO;
-      case Im.PROTOCOL_ICQ:
-        return ProviderNames.ICQ;
-      case Im.PROTOCOL_JABBER:
-        return ProviderNames.JABBER;
-      case Im.PROTOCOL_SKYPE:
-        return ProviderNames.SKYPE;
-      case Im.PROTOCOL_QQ:
-        return ProviderNames.QQ;
-    }
-    return null;
-  }
-
-  /**
-   * Test if the given {@link CharSequence} contains any graphic characters, first checking {@link
-   * TextUtils#isEmpty(CharSequence)} to handle null.
-   */
-  public static boolean isGraphic(CharSequence str) {
-    return !TextUtils.isEmpty(str) && TextUtils.isGraphic(str);
-  }
-
-  /** Returns true if two objects are considered equal. Two null references are equal here. */
-  public static boolean areObjectsEqual(Object a, Object b) {
-    return a == b || (a != null && a.equals(b));
-  }
-
-  /** Returns true if two {@link Intent}s are both null, or have the same action. */
-  public static final boolean areIntentActionEqual(Intent a, Intent b) {
-    if (a == b) {
-      return true;
-    }
-    if (a == null || b == null) {
-      return false;
-    }
-    return TextUtils.equals(a.getAction(), b.getAction());
-  }
-
-  public static boolean areGroupWritableAccountsAvailable(Context context) {
-    final List<AccountWithDataSet> accounts =
-        AccountTypeManager.getInstance(context).getGroupWritableAccounts();
-    return !accounts.isEmpty();
-  }
-
-  /**
-   * Returns the size (width and height) of thumbnail pictures as configured in the provider. This
-   * can safely be called from the UI thread, as the provider can serve this without performing a
-   * database access
-   */
-  public static int getThumbnailSize(Context context) {
-    if (sThumbnailSize == -1) {
-      final Cursor c =
-          context
-              .getContentResolver()
-              .query(
-                  DisplayPhoto.CONTENT_MAX_DIMENSIONS_URI,
-                  new String[] {DisplayPhoto.THUMBNAIL_MAX_DIM},
-                  null,
-                  null,
-                  null);
-      if (c != null) {
-        try {
-          if (c.moveToFirst()) {
-            sThumbnailSize = c.getInt(0);
-          }
-        } finally {
-          c.close();
-        }
-      }
-    }
-    return sThumbnailSize != -1 ? sThumbnailSize : DEFAULT_THUMBNAIL_SIZE;
-  }
-
-  private static Intent getCustomImIntent(ImDataItem im, int protocol) {
-    String host = im.getCustomProtocol();
-    final String data = im.getData();
-    if (TextUtils.isEmpty(data)) {
-      return null;
-    }
-    if (protocol != Im.PROTOCOL_CUSTOM) {
-      // Try bringing in a well-known host for specific protocols
-      host = ContactsUtils.lookupProviderNameFromId(protocol);
-    }
-    if (TextUtils.isEmpty(host)) {
-      return null;
-    }
-    final String authority = host.toLowerCase();
-    final Uri imUri =
-        new Uri.Builder().scheme(SCHEME_IMTO).authority(authority).appendPath(data).build();
-    final Intent intent = new Intent(Intent.ACTION_SENDTO, imUri);
-    return intent;
-  }
-
-  /**
-   * Returns the proper Intent for an ImDatItem. If available, a secondary intent is stored in the
-   * second Pair slot
-   */
-  public static Pair<Intent, Intent> buildImIntent(Context context, ImDataItem im) {
-    Intent intent = null;
-    Intent secondaryIntent = null;
-    final boolean isEmail = im.isCreatedFromEmail();
-
-    if (!isEmail && !im.isProtocolValid()) {
-      return new Pair<>(null, null);
-    }
-
-    final String data = im.getData();
-    if (TextUtils.isEmpty(data)) {
-      return new Pair<>(null, null);
-    }
-
-    final int protocol = isEmail ? Im.PROTOCOL_GOOGLE_TALK : im.getProtocol();
-
-    if (protocol == Im.PROTOCOL_GOOGLE_TALK) {
-      final int chatCapability = im.getChatCapability();
-      if ((chatCapability & Im.CAPABILITY_HAS_CAMERA) != 0) {
-        intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message"));
-        secondaryIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call"));
-      } else if ((chatCapability & Im.CAPABILITY_HAS_VOICE) != 0) {
-        // Allow Talking and Texting
-        intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message"));
-        secondaryIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call"));
-      } else {
-        intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message"));
-      }
-    } else {
-      // Build an IM Intent
-      intent = getCustomImIntent(im, protocol);
-    }
-    return new Pair<>(intent, secondaryIntent);
-  }
 
   /**
    * Determine UserType from directory id and contact id.
@@ -232,27 +65,13 @@
           : USER_TYPE_CURRENT;
     }
     // Only check contact id if directory id is null
-    if (contactId != null && contactId != 0L && ContactsCompat.isEnterpriseContactId(contactId)) {
+    if (contactId != null && contactId != 0L && Contacts.isEnterpriseContactId(contactId)) {
       return USER_TYPE_WORK;
     } else {
       return USER_TYPE_CURRENT;
     }
   }
 
-  // TODO find a proper place for the canonical version of these
-  public interface ProviderNames {
-
-    String YAHOO = "Yahoo";
-    String GTALK = "GTalk";
-    String MSN = "MSN";
-    String ICQ = "ICQ";
-    String AIM = "AIM";
-    String XMPP = "XMPP";
-    String JABBER = "JABBER";
-    String SKYPE = "SKYPE";
-    String QQ = "QQ";
-  }
-
   /**
    * UserType indicates the user type of the contact. If the contact is from Work User (Work Profile
    * in Android Multi-User System), it's {@link #USER_TYPE_WORK}, otherwise, {@link
diff --git a/java/com/android/contacts/common/GeoUtil.java b/java/com/android/contacts/common/GeoUtil.java
deleted file mode 100644
index 50b0cd9..0000000
--- a/java/com/android/contacts/common/GeoUtil.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2012 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.contacts.common;
-
-import android.app.Application;
-import android.content.Context;
-import com.android.contacts.common.location.CountryDetector;
-import com.google.i18n.phonenumbers.NumberParseException;
-import com.google.i18n.phonenumbers.PhoneNumberUtil;
-import com.google.i18n.phonenumbers.Phonenumber;
-import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;
-import java.util.Locale;
-
-/** Static methods related to Geo. */
-public class GeoUtil {
-
-  /**
-   * Returns the country code of the country the user is currently in. Before calling this method,
-   * make sure that {@link CountryDetector#initialize(Context)} has already been called in {@link
-   * Application#onCreate()}.
-   *
-   * @return The ISO 3166-1 two letters country code of the country the user is in.
-   */
-  public static String getCurrentCountryIso(Context context) {
-    // The {@link CountryDetector} should never return null so this is safe to return as-is.
-    return CountryDetector.getInstance(context).getCurrentCountryIso();
-  }
-
-  public static String getGeocodedLocationFor(Context context, String phoneNumber) {
-    final PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance();
-    final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
-    try {
-      final Phonenumber.PhoneNumber structuredPhoneNumber =
-          phoneNumberUtil.parse(phoneNumber, getCurrentCountryIso(context));
-      final Locale locale = context.getResources().getConfiguration().locale;
-      return geocoder.getDescriptionForNumber(structuredPhoneNumber, locale);
-    } catch (NumberParseException e) {
-      return null;
-    }
-  }
-}
diff --git a/java/com/android/contacts/common/MoreContactUtils.java b/java/com/android/contacts/common/MoreContactUtils.java
index 028f899..26241b3 100644
--- a/java/com/android/contacts/common/MoreContactUtils.java
+++ b/java/com/android/contacts/common/MoreContactUtils.java
@@ -16,7 +16,6 @@
 
 package com.android.contacts.common;
 
-import android.content.Context;
 import android.content.Intent;
 import android.graphics.Rect;
 import android.net.Uri;
@@ -24,7 +23,6 @@
 import android.telephony.PhoneNumberUtils;
 import android.text.TextUtils;
 import android.view.View;
-import android.widget.TextView;
 import com.android.contacts.common.model.account.AccountType;
 import com.google.i18n.phonenumbers.NumberParseException;
 import com.google.i18n.phonenumbers.PhoneNumberUtil;
@@ -194,40 +192,6 @@
   }
 
   /**
-   * Returns a header view based on the R.layout.list_separator, where the containing {@link
-   * android.widget.TextView} is set using the given textResourceId.
-   */
-  public static TextView createHeaderView(Context context, int textResourceId) {
-    final TextView textView = (TextView) View.inflate(context, R.layout.list_separator, null);
-    textView.setText(context.getString(textResourceId));
-    return textView;
-  }
-
-  /**
-   * Set the top padding on the header view dynamically, based on whether the header is in the first
-   * row or not.
-   */
-  public static void setHeaderViewBottomPadding(
-      Context context, TextView textView, boolean isFirstRow) {
-    final int topPadding;
-    if (isFirstRow) {
-      topPadding =
-          (int)
-              context
-                  .getResources()
-                  .getDimension(R.dimen.frequently_contacted_title_top_margin_when_first_row);
-    } else {
-      topPadding =
-          (int) context.getResources().getDimension(R.dimen.frequently_contacted_title_top_margin);
-    }
-    textView.setPaddingRelative(
-        textView.getPaddingStart(),
-        topPadding,
-        textView.getPaddingEnd(),
-        textView.getPaddingBottom());
-  }
-
-  /**
    * Returns the intent to launch for the given invitable account type and contact lookup URI. This
    * will return null if the account type is not invitable (i.e. there is no {@link
    * AccountType#getInviteContactActivityClassName()} or {@link
diff --git a/java/com/android/contacts/common/compat/ContactsCompat.java b/java/com/android/contacts/common/compat/ContactsCompat.java
index 39d0b55..e0c9b7e 100644
--- a/java/com/android/contacts/common/compat/ContactsCompat.java
+++ b/java/com/android/contacts/common/compat/ContactsCompat.java
@@ -21,7 +21,6 @@
 import android.os.Build.VERSION_CODES;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Contacts;
-import com.android.dialer.compat.CompatUtils;
 
 /** Compatibility class for {@link ContactsContract.Contacts} */
 public class ContactsCompat {
@@ -29,8 +28,6 @@
   // TODO: Use N APIs
   private static final Uri ENTERPRISE_CONTENT_FILTER_URI =
       Uri.withAppendedPath(Contacts.CONTENT_URI, "filter_enterprise");
-  // Copied from ContactsContract.Contacts#ENTERPRISE_CONTACT_ID_BASE, which is hidden.
-  private static final long ENTERPRISE_CONTACT_ID_BASE = 1000000000;
 
   /** Not instantiable. */
   private ContactsCompat() {}
@@ -41,17 +38,4 @@
     }
     return Contacts.CONTENT_FILTER_URI;
   }
-
-  /**
-   * Return {@code true} if a contact ID is from the contacts provider on the enterprise profile.
-   */
-  public static boolean isEnterpriseContactId(long contactId) {
-    if (CompatUtils.isLollipopCompatible()) {
-      return Contacts.isEnterpriseContactId(contactId);
-    } else {
-      // copied from ContactsContract.Contacts.isEnterpriseContactId
-      return (contactId >= ENTERPRISE_CONTACT_ID_BASE)
-          && (contactId < ContactsContract.Profile.MIN_ID);
-    }
-  }
 }
diff --git a/java/com/android/contacts/common/compat/PhoneAccountCompat.java b/java/com/android/contacts/common/compat/PhoneAccountCompat.java
index 6a24ec0..aa22c68 100644
--- a/java/com/android/contacts/common/compat/PhoneAccountCompat.java
+++ b/java/com/android/contacts/common/compat/PhoneAccountCompat.java
@@ -20,33 +20,10 @@
 import android.graphics.drawable.Icon;
 import android.support.annotation.Nullable;
 import android.telecom.PhoneAccount;
-import android.util.Log;
-import com.android.dialer.compat.CompatUtils;
 
 /** Compatiblity class for {@link android.telecom.PhoneAccount} */
 public class PhoneAccountCompat {
 
-  private static final String TAG = PhoneAccountCompat.class.getSimpleName();
-
-  /**
-   * Gets the {@link Icon} associated with the given {@link PhoneAccount}
-   *
-   * @param phoneAccount the PhoneAccount from which to retrieve the Icon
-   * @return the Icon, or null
-   */
-  @Nullable
-  public static Icon getIcon(@Nullable PhoneAccount phoneAccount) {
-    if (phoneAccount == null) {
-      return null;
-    }
-
-    if (CompatUtils.isMarshmallowCompatible()) {
-      return phoneAccount.getIcon();
-    }
-
-    return null;
-  }
-
   /**
    * Builds and returns an icon {@code Drawable} to represent this {@code PhoneAccount} in a user
    * interface.
@@ -61,44 +38,16 @@
     if (phoneAccount == null || context == null) {
       return null;
     }
-
-    if (CompatUtils.isMarshmallowCompatible()) {
-      return createIconDrawableMarshmallow(phoneAccount, context);
-    }
-
-    if (CompatUtils.isLollipopMr1Compatible()) {
-      return createIconDrawableLollipopMr1(phoneAccount, context);
-    }
-    return null;
+    return createIconDrawableMarshmallow(phoneAccount, context);
   }
 
   @Nullable
   private static Drawable createIconDrawableMarshmallow(
       PhoneAccount phoneAccount, Context context) {
-    Icon accountIcon = getIcon(phoneAccount);
+    Icon accountIcon = phoneAccount.getIcon();
     if (accountIcon == null) {
       return null;
     }
     return accountIcon.loadDrawable(context);
   }
-
-  @Nullable
-  private static Drawable createIconDrawableLollipopMr1(
-      PhoneAccount phoneAccount, Context context) {
-    try {
-      return (Drawable)
-          PhoneAccount.class
-              .getMethod("createIconDrawable", Context.class)
-              .invoke(phoneAccount, context);
-    } catch (ReflectiveOperationException e) {
-      return null;
-    } catch (Throwable t) {
-      Log.e(
-          TAG,
-          "Unexpected exception when attempting to call "
-              + "android.telecom.PhoneAccount#createIconDrawable",
-          t);
-      return null;
-    }
-  }
 }
diff --git a/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java b/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java
index 960b340..a6cfe07 100644
--- a/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java
+++ b/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java
@@ -17,13 +17,7 @@
 package com.android.contacts.common.compat;
 
 import android.telephony.PhoneNumberUtils;
-import android.text.Spannable;
-import android.text.TextUtils;
 import android.text.style.TtsSpan;
-import com.android.dialer.compat.CompatUtils;
-import com.google.i18n.phonenumbers.NumberParseException;
-import com.google.i18n.phonenumbers.PhoneNumberUtil;
-import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
 
 /**
  * This class contains static utility methods extracted from PhoneNumberUtils, and the methods were
@@ -37,138 +31,16 @@
   /** Not instantiable. */
   private PhoneNumberUtilsCompat() {}
 
-  public static String normalizeNumber(String phoneNumber) {
-    if (CompatUtils.isLollipopCompatible()) {
-      return PhoneNumberUtils.normalizeNumber(phoneNumber);
-    } else {
-      return normalizeNumberInternal(phoneNumber);
-    }
-  }
-
-  /** Implementation copied from {@link PhoneNumberUtils#normalizeNumber} */
-  private static String normalizeNumberInternal(String phoneNumber) {
-    if (TextUtils.isEmpty(phoneNumber)) {
-      return "";
-    }
-    StringBuilder sb = new StringBuilder();
-    int len = phoneNumber.length();
-    for (int i = 0; i < len; i++) {
-      char c = phoneNumber.charAt(i);
-      // Character.digit() supports ASCII and Unicode digits (fullwidth, Arabic-Indic, etc.)
-      int digit = Character.digit(c, 10);
-      if (digit != -1) {
-        sb.append(digit);
-      } else if (sb.length() == 0 && c == '+') {
-        sb.append(c);
-      } else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
-        return normalizeNumber(PhoneNumberUtils.convertKeypadLettersToDigits(phoneNumber));
-      }
-    }
-    return sb.toString();
-  }
-
   public static String formatNumber(
       String phoneNumber, String phoneNumberE164, String defaultCountryIso) {
-    if (CompatUtils.isLollipopCompatible()) {
       return PhoneNumberUtils.formatNumber(phoneNumber, phoneNumberE164, defaultCountryIso);
-    } else {
-      // This method was deprecated in API level 21, so it's only used on pre-L SDKs.
-      return PhoneNumberUtils.formatNumber(phoneNumber);
-    }
   }
 
   public static CharSequence createTtsSpannable(CharSequence phoneNumber) {
-    if (CompatUtils.isMarshmallowCompatible()) {
-      return PhoneNumberUtils.createTtsSpannable(phoneNumber);
-    } else {
-      return createTtsSpannableInternal(phoneNumber);
-    }
+    return PhoneNumberUtils.createTtsSpannable(phoneNumber);
   }
 
   public static TtsSpan createTtsSpan(String phoneNumber) {
-    if (CompatUtils.isMarshmallowCompatible()) {
-      return PhoneNumberUtils.createTtsSpan(phoneNumber);
-    } else if (CompatUtils.isLollipopCompatible()) {
-      return createTtsSpanLollipop(phoneNumber);
-    } else {
-      return null;
-    }
-  }
-
-  /** Copied from {@link PhoneNumberUtils#createTtsSpannable} */
-  private static CharSequence createTtsSpannableInternal(CharSequence phoneNumber) {
-    if (phoneNumber == null) {
-      return null;
-    }
-    Spannable spannable = Spannable.Factory.getInstance().newSpannable(phoneNumber);
-    addTtsSpanInternal(spannable, 0, spannable.length());
-    return spannable;
-  }
-
-  /** Compat method for addTtsSpan, see {@link PhoneNumberUtils#addTtsSpan} */
-  public static void addTtsSpan(Spannable s, int start, int endExclusive) {
-    if (CompatUtils.isMarshmallowCompatible()) {
-      PhoneNumberUtils.addTtsSpan(s, start, endExclusive);
-    } else {
-      addTtsSpanInternal(s, start, endExclusive);
-    }
-  }
-
-  /** Copied from {@link PhoneNumberUtils#addTtsSpan} */
-  private static void addTtsSpanInternal(Spannable s, int start, int endExclusive) {
-    s.setSpan(
-        createTtsSpan(s.subSequence(start, endExclusive).toString()),
-        start,
-        endExclusive,
-        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
-  }
-
-  /** Copied from {@link PhoneNumberUtils#createTtsSpan} */
-  private static TtsSpan createTtsSpanLollipop(String phoneNumberString) {
-    if (phoneNumberString == null) {
-      return null;
-    }
-
-    // Parse the phone number
-    final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
-    PhoneNumber phoneNumber = null;
-    try {
-      // Don't supply a defaultRegion so this fails for non-international numbers because
-      // we don't want to TalkBalk to read a country code (e.g. +1) if it is not already
-      // present
-      phoneNumber = phoneNumberUtil.parse(phoneNumberString, /* defaultRegion */ null);
-    } catch (NumberParseException ignored) {
-    }
-
-    // Build a telephone tts span
-    final TtsSpan.TelephoneBuilder builder = new TtsSpan.TelephoneBuilder();
-    if (phoneNumber == null) {
-      // Strip separators otherwise TalkBack will be silent
-      // (this behavior was observed with TalkBalk 4.0.2 from their alpha channel)
-      builder.setNumberParts(splitAtNonNumerics(phoneNumberString));
-    } else {
-      if (phoneNumber.hasCountryCode()) {
-        builder.setCountryCode(Integer.toString(phoneNumber.getCountryCode()));
-      }
-      builder.setNumberParts(Long.toString(phoneNumber.getNationalNumber()));
-    }
-    return builder.build();
-  }
-
-  /**
-   * Split a phone number using spaces, ignoring anything that is not a digit
-   *
-   * @param number A {@code CharSequence} before splitting, e.g., "+20(123)-456#"
-   * @return A {@code String} after splitting, e.g., "20 123 456".
-   */
-  private static String splitAtNonNumerics(CharSequence number) {
-    StringBuilder sb = new StringBuilder(number.length());
-    for (int i = 0; i < number.length(); i++) {
-      sb.append(PhoneNumberUtils.isISODigit(number.charAt(i)) ? number.charAt(i) : " ");
-    }
-    // It is very important to remove extra spaces. At time of writing, any leading or trailing
-    // spaces, or any sequence of more than one space, will confuse TalkBack and cause the TTS
-    // span to be non-functional!
-    return sb.toString().replaceAll(" +", " ").trim();
+    return PhoneNumberUtils.createTtsSpan(phoneNumber);
   }
 }
diff --git a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
index 7e4803c..4a16fb8 100644
--- a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
+++ b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
@@ -27,7 +27,6 @@
 import android.telephony.TelephonyManager;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.compat.CompatUtils;
 import java.lang.reflect.InvocationTargetException;
 
 public class TelephonyManagerCompat {
@@ -49,31 +48,6 @@
   private static final String SECRET_CODE_ACTION = "android.provider.Telephony.SECRET_CODE";
 
   /**
-   * @param telephonyManager The telephony manager instance to use for method calls.
-   * @return true if the current device is "voice capable".
-   *     <p>"Voice capable" means that this device supports circuit-switched (i.e. voice) phone
-   *     calls over the telephony network, and is allowed to display the in-call UI while a cellular
-   *     voice call is active. This will be false on "data only" devices which can't make voice
-   *     calls and don't support any in-call UI.
-   *     <p>Note: the meaning of this flag is subtly different from the
-   *     PackageManager.FEATURE_TELEPHONY system feature, which is available on any device with a
-   *     telephony radio, even if the device is data-only.
-   */
-  public static boolean isVoiceCapable(@Nullable TelephonyManager telephonyManager) {
-    if (telephonyManager == null) {
-      return false;
-    }
-    if (CompatUtils.isLollipopMr1Compatible()
-        || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isVoiceCapable")) {
-      // isVoiceCapable was unhidden in L-MR1
-      return telephonyManager.isVoiceCapable();
-    }
-    final int phoneType = telephonyManager.getPhoneType();
-    return phoneType == TelephonyManager.PHONE_TYPE_CDMA
-        || phoneType == TelephonyManager.PHONE_TYPE_GSM;
-  }
-
-  /**
    * Returns the number of phones available. Returns 1 for Single standby mode (Single SIM
    * functionality) Returns 2 for Dual standby mode.(Dual SIM functionality)
    *
@@ -85,31 +59,7 @@
     if (telephonyManager == null) {
       return 1;
     }
-    if (CompatUtils.isMarshmallowCompatible()
-        || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "getPhoneCount")) {
-      return telephonyManager.getPhoneCount();
-    }
-    return 1;
-  }
-
-  /**
-   * Returns the unique device ID of a subscription, for example, the IMEI for GSM and the MEID for
-   * CDMA phones. Return null if device ID is not available.
-   *
-   * <p>Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
-   *
-   * @param telephonyManager The telephony manager instance to use for method calls.
-   * @param slotId of which deviceID is returned
-   */
-  public static String getDeviceId(@Nullable TelephonyManager telephonyManager, int slotId) {
-    if (telephonyManager == null) {
-      return null;
-    }
-    if (CompatUtils.isMarshmallowCompatible()
-        || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "getDeviceId", Integer.class)) {
-      return telephonyManager.getDeviceId(slotId);
-    }
-    return null;
+    return telephonyManager.getPhoneCount();
   }
 
   /**
@@ -119,14 +69,7 @@
    * @return {@code true} if the device supports TTY mode, and {@code false} otherwise.
    */
   public static boolean isTtyModeSupported(@Nullable TelephonyManager telephonyManager) {
-    if (telephonyManager == null) {
-      return false;
-    }
-    if (CompatUtils.isMarshmallowCompatible()
-        || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isTtyModeSupported")) {
-      return telephonyManager.isTtyModeSupported();
-    }
-    return false;
+    return telephonyManager != null && telephonyManager.isTtyModeSupported();
   }
 
   /**
@@ -138,15 +81,7 @@
    */
   public static boolean isHearingAidCompatibilitySupported(
       @Nullable TelephonyManager telephonyManager) {
-    if (telephonyManager == null) {
-      return false;
-    }
-    if (CompatUtils.isMarshmallowCompatible()
-        || CompatUtils.isMethodAvailable(
-            TELEPHONY_MANAGER_CLASS, "isHearingAidCompatibilitySupported")) {
-      return telephonyManager.isHearingAidCompatibilitySupported();
-    }
-    return false;
+    return telephonyManager != null && telephonyManager.isHearingAidCompatibilitySupported();
   }
 
   /**
diff --git a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
index 5687f6f..43eae58 100644
--- a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
+++ b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
@@ -15,275 +15,19 @@
  */
 package com.android.contacts.common.compat.telecom;
 
-import android.app.Activity;
-import android.content.Intent;
-import android.net.Uri;
 import android.support.annotation.Nullable;
-import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
-import android.telephony.PhoneNumberUtils;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-import com.android.dialer.compat.CompatUtils;
-import java.util.ArrayList;
-import java.util.List;
 
 /** Compatibility class for {@link android.telecom.TelecomManager}. */
 public class TelecomManagerCompat {
 
-  public static final String TELECOM_MANAGER_CLASS = "android.telecom.TelecomManager";
-
   // TODO: remove once this is available in android.telecom.Call
   // b/33779976
   public static final String EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS =
       "android.telecom.extra.LAST_EMERGENCY_CALLBACK_TIME_MILLIS";
 
   /**
-   * Places a new outgoing call to the provided address using the system telecom service with the
-   * specified intent.
-   *
-   * @param activity {@link Activity} used to start another activity for the given intent
-   * @param telecomManager the {@link TelecomManager} used to place a call, if possible
-   * @param intent the intent for the call
-   */
-  public static void placeCall(
-      @Nullable Activity activity,
-      @Nullable TelecomManager telecomManager,
-      @Nullable Intent intent) {
-    if (activity == null || telecomManager == null || intent == null) {
-      return;
-    }
-    if (CompatUtils.isMarshmallowCompatible()) {
-      telecomManager.placeCall(intent.getData(), intent.getExtras());
-      return;
-    }
-    activity.startActivityForResult(intent, 0);
-  }
-
-  /**
-   * Get the URI for running an adn query.
-   *
-   * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
-   * @param accountHandle The handle for the account to derive an adn query URI for or {@code null}
-   *     to return a URI which will use the default account.
-   * @return The URI (with the content:// scheme) specific to the specified {@link PhoneAccount} for
-   *     the the content retrieve.
-   */
-  public static Uri getAdnUriForPhoneAccount(
-      @Nullable TelecomManager telecomManager, PhoneAccountHandle accountHandle) {
-    if (telecomManager != null
-        && (CompatUtils.isMarshmallowCompatible()
-            || CompatUtils.isMethodAvailable(
-                TELECOM_MANAGER_CLASS, "getAdnUriForPhoneAccount", PhoneAccountHandle.class))) {
-      return telecomManager.getAdnUriForPhoneAccount(accountHandle);
-    }
-    return Uri.parse("content://icc/adn");
-  }
-
-  /**
-   * Returns a list of {@link PhoneAccountHandle}s which can be used to make and receive phone
-   * calls. The returned list includes only those accounts which have been explicitly enabled by the
-   * user.
-   *
-   * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
-   * @return A list of PhoneAccountHandle objects.
-   */
-  public static List<PhoneAccountHandle> getCallCapablePhoneAccounts(
-      @Nullable TelecomManager telecomManager) {
-    if (telecomManager != null
-        && (CompatUtils.isMarshmallowCompatible()
-            || CompatUtils.isMethodAvailable(
-                TELECOM_MANAGER_CLASS, "getCallCapablePhoneAccounts"))) {
-      return telecomManager.getCallCapablePhoneAccounts();
-    }
-    return new ArrayList<>();
-  }
-
-  /**
-   * Used to determine the currently selected default dialer package.
-   *
-   * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
-   * @return package name for the default dialer package or null if no package has been selected as
-   *     the default dialer.
-   */
-  @Nullable
-  public static String getDefaultDialerPackage(@Nullable TelecomManager telecomManager) {
-    if (telecomManager != null && CompatUtils.isDefaultDialerCompatible()) {
-      return telecomManager.getDefaultDialerPackage();
-    }
-    return null;
-  }
-
-  /**
-   * Return the {@link PhoneAccount} which will be used to place outgoing calls to addresses with
-   * the specified {@code uriScheme}. This PhoneAccount will always be a member of the list which is
-   * returned from invoking {@link TelecomManager#getCallCapablePhoneAccounts()}. The specific
-   * account returned depends on the following priorities:
-   *
-   * <p>1. If the user-selected default PhoneAccount supports the specified scheme, it will be
-   * returned. 2. If there exists only one PhoneAccount that supports the specified scheme, it will
-   * be returned.
-   *
-   * <p>If no PhoneAccount fits the criteria above, this method will return {@code null}.
-   *
-   * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
-   * @param uriScheme The URI scheme.
-   * @return The {@link PhoneAccountHandle} corresponding to the account to be used.
-   */
-  @Nullable
-  public static PhoneAccountHandle getDefaultOutgoingPhoneAccount(
-      @Nullable TelecomManager telecomManager, @Nullable String uriScheme) {
-    if (telecomManager != null
-        && (CompatUtils.isMarshmallowCompatible()
-            || CompatUtils.isMethodAvailable(
-                TELECOM_MANAGER_CLASS, "getDefaultOutgoingPhoneAccount", String.class))) {
-      return telecomManager.getDefaultOutgoingPhoneAccount(uriScheme);
-    }
-    return null;
-  }
-
-  /**
-   * Return the line 1 phone number for given phone account.
-   *
-   * @param telecomManager the {@link TelecomManager} to use in the event that {@link
-   *     TelecomManager#getLine1Number(PhoneAccountHandle)} is available
-   * @param telephonyManager the {@link TelephonyManager} to use if TelecomManager#getLine1Number is
-   *     unavailable
-   * @param phoneAccountHandle the phoneAccountHandle upon which to check the line one number
-   * @return the line one number
-   */
-  @Nullable
-  public static String getLine1Number(
-      @Nullable TelecomManager telecomManager,
-      @Nullable TelephonyManager telephonyManager,
-      @Nullable PhoneAccountHandle phoneAccountHandle) {
-    if (telecomManager != null && CompatUtils.isMarshmallowCompatible()) {
-      return telecomManager.getLine1Number(phoneAccountHandle);
-    }
-    if (telephonyManager != null) {
-      return telephonyManager.getLine1Number();
-    }
-    return null;
-  }
-
-  /**
-   * Return whether a given phone number is the configured voicemail number for a particular phone
-   * account.
-   *
-   * @param telecomManager the {@link TelecomManager} to use for checking the number.
-   * @param accountHandle The handle for the account to check the voicemail number against
-   * @param number The number to look up.
-   */
-  public static boolean isVoiceMailNumber(
-      @Nullable TelecomManager telecomManager,
-      @Nullable PhoneAccountHandle accountHandle,
-      @Nullable String number) {
-    if (telecomManager != null
-        && (CompatUtils.isMarshmallowCompatible()
-            || CompatUtils.isMethodAvailable(
-                TELECOM_MANAGER_CLASS,
-                "isVoiceMailNumber",
-                PhoneAccountHandle.class,
-                String.class))) {
-      return telecomManager.isVoiceMailNumber(accountHandle, number);
-    }
-    return PhoneNumberUtils.isVoiceMailNumber(number);
-  }
-
-  /**
-   * Return the {@link PhoneAccount} for a specified {@link PhoneAccountHandle}. Object includes
-   * resources which can be used in a user interface.
-   *
-   * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
-   * @param account The {@link PhoneAccountHandle}.
-   * @return The {@link PhoneAccount} object or null if it doesn't exist.
-   */
-  @Nullable
-  public static PhoneAccount getPhoneAccount(
-      @Nullable TelecomManager telecomManager, @Nullable PhoneAccountHandle accountHandle) {
-    if (telecomManager != null
-        && (CompatUtils.isMethodAvailable(
-            TELECOM_MANAGER_CLASS, "getPhoneAccount", PhoneAccountHandle.class))) {
-      return telecomManager.getPhoneAccount(accountHandle);
-    }
-    return null;
-  }
-
-  /**
-   * Return the voicemail number for a given phone account.
-   *
-   * @param telecomManager The {@link TelecomManager} object to use for retrieving the voicemail
-   *     number if accountHandle is specified.
-   * @param telephonyManager The {@link TelephonyManager} object to use for retrieving the voicemail
-   *     number if accountHandle is null.
-   * @param accountHandle The handle for the phone account.
-   * @return The voicemail number for the phone account, and {@code null} if one has not been
-   *     configured.
-   */
-  @Nullable
-  public static String getVoiceMailNumber(
-      @Nullable TelecomManager telecomManager,
-      @Nullable TelephonyManager telephonyManager,
-      @Nullable PhoneAccountHandle accountHandle) {
-    if (telecomManager != null
-        && (CompatUtils.isMethodAvailable(
-            TELECOM_MANAGER_CLASS, "getVoiceMailNumber", PhoneAccountHandle.class))) {
-      return telecomManager.getVoiceMailNumber(accountHandle);
-    } else if (telephonyManager != null) {
-      return telephonyManager.getVoiceMailNumber();
-    }
-    return null;
-  }
-
-  /**
-   * Processes the specified dial string as an MMI code. MMI codes are any sequence of characters
-   * entered into the dialpad that contain a "*" or "#". Some of these sequences launch special
-   * behavior through handled by Telephony.
-   *
-   * @param telecomManager The {@link TelecomManager} object to use for handling MMI.
-   * @param dialString The digits to dial.
-   * @return {@code true} if the digits were processed as an MMI code, {@code false} otherwise.
-   */
-  public static boolean handleMmi(
-      @Nullable TelecomManager telecomManager,
-      @Nullable String dialString,
-      @Nullable PhoneAccountHandle accountHandle) {
-    if (telecomManager == null || TextUtils.isEmpty(dialString)) {
-      return false;
-    }
-    if (CompatUtils.isMarshmallowCompatible()) {
-      return telecomManager.handleMmi(dialString, accountHandle);
-    }
-
-    Object handleMmiResult =
-        CompatUtils.invokeMethod(
-            telecomManager,
-            "handleMmi",
-            new Class<?>[] {PhoneAccountHandle.class, String.class},
-            new Object[] {accountHandle, dialString});
-    if (handleMmiResult != null) {
-      return (boolean) handleMmiResult;
-    }
-
-    return telecomManager.handleMmi(dialString);
-  }
-
-  /**
-   * Silences the ringer if a ringing call exists. Noop if {@link TelecomManager#silenceRinger()} is
-   * unavailable.
-   *
-   * @param telecomManager the TelecomManager to use to silence the ringer.
-   */
-  public static void silenceRinger(@Nullable TelecomManager telecomManager) {
-    if (telecomManager != null
-        && (CompatUtils.isMarshmallowCompatible()
-            || CompatUtils.isMethodAvailable(TELECOM_MANAGER_CLASS, "silenceRinger"))) {
-      telecomManager.silenceRinger();
-    }
-  }
-
-  /**
    * Returns the current SIM call manager. Apps must be prepared for this method to return null,
    * indicating that there currently exists no registered SIM call manager.
    *
@@ -292,9 +36,7 @@
    */
   @Nullable
   public static PhoneAccountHandle getSimCallManager(TelecomManager telecomManager) {
-    if (telecomManager != null
-        && (CompatUtils.isMarshmallowCompatible()
-            || CompatUtils.isMethodAvailable(TELECOM_MANAGER_CLASS, "getSimCallManager"))) {
+    if (telecomManager != null) {
       return telecomManager.getSimCallManager();
     }
     return null;
diff --git a/java/com/android/contacts/common/dialog/CallSubjectDialog.java b/java/com/android/contacts/common/dialog/CallSubjectDialog.java
index 0e79371..88fac02 100644
--- a/java/com/android/contacts/common/dialog/CallSubjectDialog.java
+++ b/java/com/android/contacts/common/dialog/CallSubjectDialog.java
@@ -45,7 +45,7 @@
 import android.widget.TextView;
 import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.R;
-import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
 import com.android.dialer.animation.AnimUtils;
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallIntentBuilder;
@@ -154,11 +154,7 @@
                   .setCallSubject(subject)
                   .build();
 
-          TelecomManagerCompat.placeCall(
-              CallSubjectDialog.this,
-              (TelecomManager) getSystemService(Context.TELECOM_SERVICE),
-              intent);
-
+          getSystemService(TelecomManager.class).placeCall(intent.getData(), intent.getExtras());
           mSubjectHistory.add(subject);
           saveSubjectHistory(mSubjectHistory);
           finish();
@@ -202,7 +198,7 @@
         number /* number */,
         null /* displayNumber */,
         null /* numberLabel */,
-        ContactPhotoManager.TYPE_DEFAULT,
+        LetterTileDrawable.TYPE_DEFAULT,
         null /* phoneAccountHandle */);
   }
 
@@ -356,7 +352,7 @@
     mNumber = arguments.getString(ARG_NUMBER);
     mDisplayNumber = arguments.getString(ARG_DISPLAY_NUMBER);
     mNumberLabel = arguments.getString(ARG_NUMBER_LABEL);
-    mContactType = arguments.getInt(ARG_CONTACT_TYPE, ContactPhotoManager.TYPE_DEFAULT);
+    mContactType = arguments.getInt(ARG_CONTACT_TYPE, LetterTileDrawable.TYPE_DEFAULT);
     mPhoneAccountHandle = arguments.getParcelable(ARG_PHONE_ACCOUNT_HANDLE);
   }
 
diff --git a/java/com/android/contacts/common/format/FormatUtils.java b/java/com/android/contacts/common/format/FormatUtils.java
deleted file mode 100644
index 727c15b..0000000
--- a/java/com/android/contacts/common/format/FormatUtils.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (C) 2011 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.contacts.common.format;
-
-import android.database.CharArrayBuffer;
-import android.graphics.Typeface;
-import android.support.annotation.VisibleForTesting;
-import android.text.SpannableString;
-import android.text.style.StyleSpan;
-import java.util.Arrays;
-
-/** Assorted utility methods related to text formatting in Contacts. */
-public class FormatUtils {
-
-  /**
-   * Finds the earliest point in buffer1 at which the first part of buffer2 matches. For example,
-   * overlapPoint("abcd", "cdef") == 2.
-   */
-  public static int overlapPoint(CharArrayBuffer buffer1, CharArrayBuffer buffer2) {
-    if (buffer1 == null || buffer2 == null) {
-      return -1;
-    }
-    return overlapPoint(
-        Arrays.copyOfRange(buffer1.data, 0, buffer1.sizeCopied),
-        Arrays.copyOfRange(buffer2.data, 0, buffer2.sizeCopied));
-  }
-
-  /**
-   * Finds the earliest point in string1 at which the first part of string2 matches. For example,
-   * overlapPoint("abcd", "cdef") == 2.
-   */
-  @VisibleForTesting
-  public static int overlapPoint(String string1, String string2) {
-    if (string1 == null || string2 == null) {
-      return -1;
-    }
-    return overlapPoint(string1.toCharArray(), string2.toCharArray());
-  }
-
-  /**
-   * Finds the earliest point in array1 at which the first part of array2 matches. For example,
-   * overlapPoint("abcd", "cdef") == 2.
-   */
-  public static int overlapPoint(char[] array1, char[] array2) {
-    if (array1 == null || array2 == null) {
-      return -1;
-    }
-    int count1 = array1.length;
-    int count2 = array2.length;
-
-    // Ignore matching tails of the two arrays.
-    while (count1 > 0 && count2 > 0 && array1[count1 - 1] == array2[count2 - 1]) {
-      count1--;
-      count2--;
-    }
-
-    int size = count2;
-    for (int i = 0; i < count1; i++) {
-      if (i + size > count1) {
-        size = count1 - i;
-      }
-      int j;
-      for (j = 0; j < size; j++) {
-        if (array1[i + j] != array2[j]) {
-          break;
-        }
-      }
-      if (j == size) {
-        return i;
-      }
-    }
-
-    return -1;
-  }
-
-  /**
-   * Applies the given style to a range of the input CharSequence.
-   *
-   * @param style The style to apply (see the style constants in {@link Typeface}).
-   * @param input The CharSequence to style.
-   * @param start Starting index of the range to style (will be clamped to be a minimum of 0).
-   * @param end Ending index of the range to style (will be clamped to a maximum of the input
-   *     length).
-   * @param flags Bitmask for configuring behavior of the span. See {@link android.text.Spanned}.
-   * @return The styled CharSequence.
-   */
-  public static CharSequence applyStyleToSpan(
-      int style, CharSequence input, int start, int end, int flags) {
-    // Enforce bounds of the char sequence.
-    start = Math.max(0, start);
-    end = Math.min(input.length(), end);
-    SpannableString text = new SpannableString(input);
-    text.setSpan(new StyleSpan(style), start, end, flags);
-    return text;
-  }
-
-  @VisibleForTesting
-  public static void copyToCharArrayBuffer(String text, CharArrayBuffer buffer) {
-    if (text != null) {
-      char[] data = buffer.data;
-      if (data == null || data.length < text.length()) {
-        buffer.data = text.toCharArray();
-      } else {
-        text.getChars(0, text.length(), data, 0);
-      }
-      buffer.sizeCopied = text.length();
-    } else {
-      buffer.sizeCopied = 0;
-    }
-  }
-
-  /** Returns a String that represents the content of the given {@link CharArrayBuffer}. */
-  @VisibleForTesting
-  public static String charArrayBufferToString(CharArrayBuffer buffer) {
-    return new String(buffer.data, 0, buffer.sizeCopied);
-  }
-
-  /**
-   * Finds the index of the first word that starts with the given prefix.
-   *
-   * <p>If not found, returns -1.
-   *
-   * @param text the text in which to search for the prefix
-   * @param prefix the text to find, in upper case letters
-   */
-  public static int indexOfWordPrefix(CharSequence text, String prefix) {
-    if (prefix == null || text == null) {
-      return -1;
-    }
-
-    int textLength = text.length();
-    int prefixLength = prefix.length();
-
-    if (prefixLength == 0 || textLength < prefixLength) {
-      return -1;
-    }
-
-    int i = 0;
-    while (i < textLength) {
-      // Skip non-word characters
-      while (i < textLength && !Character.isLetterOrDigit(text.charAt(i))) {
-        i++;
-      }
-
-      if (i + prefixLength > textLength) {
-        return -1;
-      }
-
-      // Compare the prefixes
-      int j;
-      for (j = 0; j < prefixLength; j++) {
-        if (Character.toUpperCase(text.charAt(i + j)) != prefix.charAt(j)) {
-          break;
-        }
-      }
-      if (j == prefixLength) {
-        return i;
-      }
-
-      // Skip this word
-      while (i < textLength && Character.isLetterOrDigit(text.charAt(i))) {
-        i++;
-      }
-    }
-
-    return -1;
-  }
-}
diff --git a/java/com/android/contacts/common/format/TextHighlighter.java b/java/com/android/contacts/common/format/TextHighlighter.java
index 30c03fd..f397f04 100644
--- a/java/com/android/contacts/common/format/TextHighlighter.java
+++ b/java/com/android/contacts/common/format/TextHighlighter.java
@@ -24,8 +24,6 @@
 /** Highlights the text in a text field. */
 public class TextHighlighter {
 
-  private static final boolean DEBUG = false;
-  private final String TAG = TextHighlighter.class.getSimpleName();
   private int mTextStyle;
 
   private CharacterStyle mTextStyleSpan;
@@ -81,7 +79,7 @@
     }
     final String trimmedPrefix = prefix.substring(prefixStart);
 
-    int index = FormatUtils.indexOfWordPrefix(text, trimmedPrefix);
+    int index = indexOfWordPrefix(text, trimmedPrefix);
     if (index != -1) {
       final SpannableString result = new SpannableString(text);
       result.setSpan(mTextStyleSpan, index, index + trimmedPrefix.length(), 0 /* flags */);
@@ -90,4 +88,55 @@
       return text;
     }
   }
+
+  /**
+   * Finds the index of the first word that starts with the given prefix.
+   *
+   * <p>If not found, returns -1.
+   *
+   * @param text the text in which to search for the prefix
+   * @param prefix the text to find, in upper case letters
+   */
+  public static int indexOfWordPrefix(CharSequence text, String prefix) {
+    if (prefix == null || text == null) {
+      return -1;
+    }
+
+    int textLength = text.length();
+    int prefixLength = prefix.length();
+
+    if (prefixLength == 0 || textLength < prefixLength) {
+      return -1;
+    }
+
+    int i = 0;
+    while (i < textLength) {
+      // Skip non-word characters
+      while (i < textLength && !Character.isLetterOrDigit(text.charAt(i))) {
+        i++;
+      }
+
+      if (i + prefixLength > textLength) {
+        return -1;
+      }
+
+      // Compare the prefixes
+      int j;
+      for (j = 0; j < prefixLength; j++) {
+        if (Character.toUpperCase(text.charAt(i + j)) != prefix.charAt(j)) {
+          break;
+        }
+      }
+      if (j == prefixLength) {
+        return i;
+      }
+
+      // Skip this word
+      while (i < textLength && Character.isLetterOrDigit(text.charAt(i))) {
+        i++;
+      }
+    }
+
+    return -1;
+  }
 }
diff --git a/java/com/android/contacts/common/format/testing/SpannedTestUtils.java b/java/com/android/contacts/common/format/testing/SpannedTestUtils.java
deleted file mode 100644
index 293d9d5..0000000
--- a/java/com/android/contacts/common/format/testing/SpannedTestUtils.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2011 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.contacts.common.format.testing;
-
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.Html;
-import android.text.SpannableString;
-import android.text.Spanned;
-import android.text.TextUtils;
-import android.text.style.StyleSpan;
-import android.widget.TextView;
-import junit.framework.Assert;
-
-/** Utility class to check the value of spanned text in text views. */
-@SmallTest
-public class SpannedTestUtils {
-
-  /**
-   * Checks that the text contained in the text view matches the given HTML text.
-   *
-   * @param expectedHtmlText the expected text to be in the text view
-   * @param textView the text view from which to get the text
-   */
-  public static void checkHtmlText(String expectedHtmlText, TextView textView) {
-    String actualHtmlText = Html.toHtml((Spanned) textView.getText());
-    if (TextUtils.isEmpty(expectedHtmlText)) {
-      // If the text is empty, it does not add the <p></p> bits to it.
-      Assert.assertEquals("", actualHtmlText);
-    } else {
-      Assert.assertEquals("<p dir=ltr>" + expectedHtmlText + "</p>\n", actualHtmlText);
-    }
-  }
-
-  /**
-   * Assert span exists in the correct location.
-   *
-   * @param seq The spannable string to check.
-   * @param start The starting index.
-   * @param end The ending index.
-   */
-  public static void assertPrefixSpan(CharSequence seq, int start, int end) {
-    Assert.assertTrue(seq instanceof Spanned);
-    Spanned spannable = (Spanned) seq;
-
-    if (start > 0) {
-      Assert.assertEquals(0, getNumForegroundColorSpansBetween(spannable, 0, start - 1));
-    }
-    Assert.assertEquals(1, getNumForegroundColorSpansBetween(spannable, start, end));
-    Assert.assertEquals(
-        0, getNumForegroundColorSpansBetween(spannable, end + 1, spannable.length() - 1));
-  }
-
-  private static int getNumForegroundColorSpansBetween(Spanned value, int start, int end) {
-    return value.getSpans(start, end, StyleSpan.class).length;
-  }
-
-  /**
-   * Asserts that the given character sequence is not a Spanned object and text is correct.
-   *
-   * @param seq The sequence to check.
-   * @param expected The expected text.
-   */
-  public static void assertNotSpanned(CharSequence seq, String expected) {
-    Assert.assertFalse(seq instanceof Spanned);
-    Assert.assertEquals(expected, seq);
-  }
-
-  public static int getNextTransition(SpannableString seq, int start) {
-    return seq.nextSpanTransition(start, seq.length(), StyleSpan.class);
-  }
-}
diff --git a/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java b/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java
index 88522c4..5e77b69 100644
--- a/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java
+++ b/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java
@@ -30,8 +30,10 @@
 import android.graphics.drawable.Drawable;
 import android.support.annotation.IntDef;
 import android.support.annotation.Nullable;
+import android.telecom.TelecomManager;
 import android.text.TextUtils;
 import com.android.contacts.common.R;
+import com.android.contacts.common.lettertiles.LetterTileDrawable.ContactType;
 import com.android.dialer.common.Assert;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -406,4 +408,30 @@
     }
     return this;
   }
+
+  /**
+   * Returns the appropriate LetterTileDrawable.TYPE_ based on the given primitive conditions.
+   *
+   * <p>If no special state is detected, yields TYPE_DEFAULT
+   */
+  public static @ContactType int getContactTypeFromPrimitives(
+      boolean isVoicemailNumber,
+      boolean isSpam,
+      boolean isBusiness,
+      int numberPresentation,
+      boolean isConference) {
+    if (isVoicemailNumber) {
+      return LetterTileDrawable.TYPE_VOICEMAIL;
+    } else if (isSpam) {
+      return LetterTileDrawable.TYPE_SPAM;
+    } else if (isBusiness) {
+      return LetterTileDrawable.TYPE_BUSINESS;
+    } else if (numberPresentation == TelecomManager.PRESENTATION_RESTRICTED) {
+      return LetterTileDrawable.TYPE_GENERIC_AVATAR;
+    } else if (isConference) {
+      return LetterTileDrawable.TYPE_CONFERENCE;
+    } else {
+      return LetterTileDrawable.TYPE_DEFAULT;
+    }
+  }
 }
diff --git a/java/com/android/contacts/common/list/ContactEntryListAdapter.java b/java/com/android/contacts/common/list/ContactEntryListAdapter.java
index 18bbae3..064214e 100644
--- a/java/com/android/contacts/common/list/ContactEntryListAdapter.java
+++ b/java/com/android/contacts/common/list/ContactEntryListAdapter.java
@@ -26,7 +26,6 @@
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.Directory;
 import android.text.TextUtils;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -39,7 +38,10 @@
 import com.android.contacts.common.R;
 import com.android.contacts.common.compat.DirectoryCompat;
 import com.android.contacts.common.util.SearchUtil;
+import com.android.dialer.common.LogUtil;
 import com.android.dialer.compat.CompatUtils;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
 import java.util.HashSet;
 
 /**
@@ -354,7 +356,7 @@
     if (cursor.getCount() == 0) {
       // Directory table must have at least local directory, without which this adapter will
       // enter very weird state.
-      Log.e(
+      LogUtil.e(
           TAG,
           "Directory search loader returned an empty cursor, which implies we have "
               + "no directory entries.",
@@ -678,6 +680,9 @@
       // mimetype here is reasonable.
       quickContact.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE);
     }
+    Logger.get(mContext)
+        .logQuickContactOnTouch(
+            quickContact, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_SEARCH, true);
 
     if (photoId != 0 || photoUriColumn == -1) {
       getPhotoLoader().loadThumbnail(quickContact, photoId, mDarkTheme, mCircularPhotos, null);
diff --git a/java/com/android/contacts/common/list/ContactEntryListFragment.java b/java/com/android/contacts/common/list/ContactEntryListFragment.java
index 278175c..146986f 100644
--- a/java/com/android/contacts/common/list/ContactEntryListFragment.java
+++ b/java/com/android/contacts/common/list/ContactEntryListFragment.java
@@ -555,7 +555,6 @@
   protected void setSearchMode(boolean flag) {
     if (mSearchMode != flag) {
       mSearchMode = flag;
-      setSectionHeaderDisplayEnabled(!mSearchMode);
 
       if (!flag) {
         mDirectoryListStatus = STATUS_NOT_LOADED;
diff --git a/java/com/android/contacts/common/list/ContactListItemView.java b/java/com/android/contacts/common/list/ContactListItemView.java
index 7a31947..5a27491 100644
--- a/java/com/android/contacts/common/list/ContactListItemView.java
+++ b/java/com/android/contacts/common/list/ContactListItemView.java
@@ -30,8 +30,8 @@
 import android.provider.ContactsContract.Contacts;
 import android.provider.ContactsContract.SearchSnippets;
 import android.support.annotation.IntDef;
+import android.support.annotation.NonNull;
 import android.support.v4.content.ContextCompat;
-import android.support.v4.graphics.drawable.DrawableCompat;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.TextUtils;
@@ -55,7 +55,6 @@
 import com.android.contacts.common.list.PhoneNumberListAdapter.Listener;
 import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.contacts.common.util.SearchUtil;
-import com.android.dialer.compat.CompatUtils;
 import com.android.dialer.util.ViewUtil;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -81,13 +80,15 @@
 
   /** IntDef for indices of ViewPager tabs. */
   @Retention(RetentionPolicy.SOURCE)
-  @IntDef({NONE, VIDEO, CALL_AND_SHARE})
+  @IntDef({NONE, VIDEO, LIGHTBRINGER, CALL_AND_SHARE})
   public @interface CallToAction {}
 
   public static final int NONE = 0;
   public static final int VIDEO = 1;
-  public static final int CALL_AND_SHARE = 2;
+  public static final int LIGHTBRINGER = 2;
+  public static final int CALL_AND_SHARE = 3;
 
+  private final PhotoPosition mPhotoPosition = getDefaultPhotoPosition();
   private static final Pattern SPLIT_PATTERN =
       Pattern.compile("([\\w-\\.]+)@((?:[\\w]+\\.)+)([a-zA-Z]{2,4})|[\\w]+");
   static final char SNIPPET_START_MATCH = '[';
@@ -106,7 +107,7 @@
   private int mNameTextViewTextSize;
   private int mHeaderWidth;
   private Drawable mActivatedBackgroundDrawable;
-  private int mCallToActionSize = 32;
+  private int mCallToActionSize = 48;
   private int mCallToActionMargin = 16;
   // Set in onLayout. Represent left and right position of the View on the screen.
   private int mLeftOffset;
@@ -122,10 +123,7 @@
   private String mHighlightedPrefix;
   /** Indicates whether the view should leave room for the "video call" icon. */
   private boolean mSupportVideoCall;
-  /** Indicates whether the view should leave room for the "call and share" icon. */
-  private boolean mSupportCallAndShare;
 
-  private PhotoPosition mPhotoPosition = getDefaultPhotoPosition(false /* normal/non opposite */);
   // Header layout data
   private TextView mHeaderTextView;
   private boolean mIsSectionHeaderEnabled;
@@ -139,7 +137,7 @@
   private TextView mSnippetView;
   private TextView mStatusView;
   private ImageView mPresenceIcon;
-  private ImageView mCallToAction;
+  @NonNull private final ImageView mCallToActionView;
   private ImageView mWorkProfileIcon;
   private ColorStateList mSecondaryTextColor;
   private int mDefaultPhotoViewSize = 0;
@@ -181,23 +179,14 @@
   private Rect mBoundsWithoutHeader = new Rect();
   private CharSequence mUnknownNameText;
 
-  public ContactListItemView(Context context) {
-    super(context);
+  private String mPhoneNumber;
+  private int mPosition = -1;
+  private @CallToAction int mCallToAction = NONE;
 
-    mTextHighlighter = new TextHighlighter(Typeface.BOLD);
-    mNameHighlightSequence = new ArrayList<>();
-    mNumberHighlightSequence = new ArrayList<>();
-  }
-
-  public ContactListItemView(
-      Context context,
-      AttributeSet attrs,
-      boolean supportVideoCallIcon,
-      boolean supportCallAndShare) {
+  public ContactListItemView(Context context, AttributeSet attrs, boolean supportVideoCallIcon) {
     this(context, attrs);
 
     mSupportVideoCall = supportVideoCallIcon;
-    mSupportCallAndShare = supportCallAndShare;
   }
 
   public ContactListItemView(Context context, AttributeSet attrs) {
@@ -284,19 +273,20 @@
     mNameHighlightSequence = new ArrayList<>();
     mNumberHighlightSequence = new ArrayList<>();
 
+    mCallToActionView = new ImageView(getContext());
+    mCallToActionView.setId(R.id.call_to_action);
+    mCallToActionView.setLayoutParams(new LayoutParams(mCallToActionSize, mCallToActionSize));
+    mCallToActionView.setScaleType(ScaleType.CENTER);
+    mCallToActionView.setImageTintList(
+        ContextCompat.getColorStateList(getContext(), R.color.search_video_call_icon_tint));
+    addView(mCallToActionView);
+
     setLayoutDirection(View.LAYOUT_DIRECTION_LOCALE);
   }
 
-  public static PhotoPosition getDefaultPhotoPosition(boolean opposite) {
-    final Locale locale = Locale.getDefault();
-    final int layoutDirection = TextUtils.getLayoutDirectionFromLocale(locale);
-    switch (layoutDirection) {
-      case View.LAYOUT_DIRECTION_RTL:
-        return (opposite ? PhotoPosition.LEFT : PhotoPosition.RIGHT);
-      case View.LAYOUT_DIRECTION_LTR:
-      default:
-        return (opposite ? PhotoPosition.RIGHT : PhotoPosition.LEFT);
-    }
+  public static PhotoPosition getDefaultPhotoPosition() {
+    int layoutDirection = TextUtils.getLayoutDirectionFromLocale(Locale.getDefault());
+    return layoutDirection == View.LAYOUT_DIRECTION_RTL ? PhotoPosition.RIGHT : PhotoPosition.LEFT;
   }
 
   /**
@@ -333,35 +323,47 @@
    * @param position The position in the adapter of the call to action.
    */
   public void setCallToAction(@CallToAction int action, Listener listener, int position) {
-    int drawable;
+    mCallToAction = action;
+    mPosition = position;
+
+    Drawable drawable;
     int description;
     OnClickListener onClickListener;
-    if (action == CALL_AND_SHARE && mSupportCallAndShare) {
-      drawable = R.drawable.ic_call_and_share;
-      description = R.string.description_search_video_call;
+    if (action == CALL_AND_SHARE) {
+      drawable = getContext().getResources().getDrawable(R.drawable.ic_phone_attach);
+      drawable.setAutoMirrored(true);
+      description = R.string.description_search_call_and_share;
       onClickListener = v -> listener.onCallAndShareIconClicked(position);
     } else if (action == VIDEO && mSupportVideoCall) {
-      drawable = R.drawable.ic_search_video_call;
-      description = R.string.description_search_call_and_share;
+      drawable =
+          getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
+      drawable.setAutoMirrored(true);
+      description = R.string.description_search_video_call;
       onClickListener = v -> listener.onVideoCallIconClicked(position);
+    } else if (action == LIGHTBRINGER) {
+      drawable =
+          getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
+      drawable.setAutoMirrored(true);
+      description = R.string.description_search_video_call;
+      onClickListener = v -> listener.onLightbringerIconClicked(position);
     } else {
-      if (mCallToAction != null) {
-        mCallToAction.setVisibility(View.GONE);
-        mCallToAction.setOnClickListener(null);
-      }
+      mCallToActionView.setVisibility(View.GONE);
+      mCallToActionView.setOnClickListener(null);
       return;
     }
 
-    if (mCallToAction == null) {
-      mCallToAction = new ImageView(getContext());
-      mCallToAction.setLayoutParams(new LayoutParams(mCallToActionSize, mCallToActionSize));
-      mCallToAction.setScaleType(ScaleType.CENTER);
-      addView(mCallToAction);
-    }
-    mCallToAction.setContentDescription(getContext().getString(description));
-    mCallToAction.setOnClickListener(onClickListener);
-    mCallToAction.setImageResource(drawable);
-    mCallToAction.setVisibility(View.VISIBLE);
+    mCallToActionView.setContentDescription(getContext().getString(description));
+    mCallToActionView.setOnClickListener(onClickListener);
+    mCallToActionView.setImageDrawable(drawable);
+    mCallToActionView.setVisibility(View.VISIBLE);
+  }
+
+  public @CallToAction int getCallToAction() {
+    return mCallToAction;
+  }
+
+  public int getPosition() {
+    return mPosition;
   }
 
   /**
@@ -376,18 +378,6 @@
     mSupportVideoCall = supportVideoCall;
   }
 
-  /**
-   * Sets whether the view supports a call and share icon. This is independent of whether the view
-   * is actually showing an icon. Support for the icon ensures that the layout leaves space for it,
-   * should it be shown.
-   *
-   * @param supportCallAndShare {@code true} if the call and share icon is supported, {@code false}
-   *     otherwise.
-   */
-  public void setSupportCallAndShareIcon(boolean supportCallAndShare) {
-    mSupportCallAndShare = supportCallAndShare;
-  }
-
   @Override
   protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
     // We will match parent's width and wrap content vertically, but make sure
@@ -423,9 +413,7 @@
       effectiveWidth -= mHeaderWidth + mGapBetweenImageAndText;
     }
 
-    if (mSupportVideoCall || mSupportCallAndShare) {
-      effectiveWidth -= (mCallToActionSize + mCallToActionMargin);
-    }
+    effectiveWidth -= (mCallToActionSize + mCallToActionMargin);
 
     // Go over all visible text views and measure actual width of each of them.
     // Also calculate their heights to get the total height for this entire view.
@@ -496,11 +484,9 @@
       mStatusTextViewHeight = mPresenceIcon.getMeasuredHeight();
     }
 
-    if ((mSupportVideoCall || mSupportCallAndShare) && isVisible(mCallToAction)) {
-      mCallToAction.measure(
-          MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY),
-          MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY));
-    }
+    mCallToActionView.measure(
+        MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY),
+        MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY));
 
     if (isVisible(mWorkProfileIcon)) {
       mWorkProfileIcon.measure(
@@ -629,34 +615,30 @@
       leftBound += mTextIndent;
     }
 
-    if (mSupportVideoCall || mSupportCallAndShare) {
-      // Place the call to action at the end of the list (e.g. take into account RTL mode).
-      if (isVisible(mCallToAction)) {
-        // Center the icon vertically
-        final int callToActionTop = topBound + (height - topBound - mCallToActionSize) / 2;
+    // Place the call to action at the end of the list (e.g. take into account RTL mode).
+    // Center the icon vertically
+    final int callToActionTop = topBound + (height - topBound - mCallToActionSize) / 2;
 
-        if (!isLayoutRtl) {
-          // When photo is on left, icon is placed on the right edge.
-          mCallToAction.layout(
-              rightBound - mCallToActionSize,
-              callToActionTop,
-              rightBound,
-              callToActionTop + mCallToActionSize);
-        } else {
-          // When photo is on right, icon is placed on the left edge.
-          mCallToAction.layout(
-              leftBound,
-              callToActionTop,
-              leftBound + mCallToActionSize,
-              callToActionTop + mCallToActionSize);
-        }
-      }
+    if (!isLayoutRtl) {
+      // When photo is on left, icon is placed on the right edge.
+      mCallToActionView.layout(
+          rightBound - mCallToActionSize,
+          callToActionTop,
+          rightBound,
+          callToActionTop + mCallToActionSize);
+    } else {
+      // When photo is on right, icon is placed on the left edge.
+      mCallToActionView.layout(
+          leftBound,
+          callToActionTop,
+          leftBound + mCallToActionSize,
+          callToActionTop + mCallToActionSize);
+    }
 
-      if (mPhotoPosition == PhotoPosition.LEFT) {
-        rightBound -= (mCallToActionSize + mCallToActionMargin);
-      } else {
-        leftBound += mCallToActionSize + mCallToActionMargin;
-      }
+    if (mPhotoPosition == PhotoPosition.LEFT) {
+      rightBound -= (mCallToActionSize + mCallToActionMargin);
+    } else {
+      leftBound += mCallToActionSize + mCallToActionMargin;
     }
 
     // Center text vertically, then apply the top offset.
@@ -901,9 +883,7 @@
     }
     if (mQuickContact == null) {
       mQuickContact = new QuickContactBadge(getContext());
-      if (CompatUtils.isLollipopCompatible()) {
-        mQuickContact.setOverlay(null);
-      }
+      mQuickContact.setOverlay(null);
       mQuickContact.setLayoutParams(getDefaultPhotoLayoutParams());
       if (mNameTextView != null) {
         mQuickContact.setContentDescription(
@@ -1008,9 +988,7 @@
       mNameTextView.setGravity(Gravity.CENTER_VERTICAL);
       mNameTextView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
       mNameTextView.setId(R.id.cliv_name_textview);
-      if (CompatUtils.isLollipopCompatible()) {
-        mNameTextView.setElegantTextHeight(false);
-      }
+      mNameTextView.setElegantTextHeight(false);
       addView(mNameTextView);
     }
     return mNameTextView;
@@ -1056,6 +1034,7 @@
    * exists.
    */
   public void setPhoneNumber(String text) {
+    mPhoneNumber = text;
     if (text == null) {
       if (mDataView != null) {
         mDataView.setVisibility(View.GONE);
@@ -1086,6 +1065,10 @@
     }
   }
 
+  public String getPhoneNumber() {
+    return mPhoneNumber;
+  }
+
   private void setMarqueeText(TextView textView, CharSequence text) {
     if (getTextEllipsis() == TruncateAt.MARQUEE) {
       // To show MARQUEE correctly (with END effect during non-active state), we need
@@ -1109,9 +1092,7 @@
       mDataView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
       mDataView.setActivated(isActivated());
       mDataView.setId(R.id.cliv_data_view);
-      if (CompatUtils.isLollipopCompatible()) {
-        mDataView.setElegantTextHeight(false);
-      }
+      mDataView.setElegantTextHeight(false);
       addView(mDataView);
     }
     return mDataView;
@@ -1469,28 +1450,17 @@
     forceLayout();
   }
 
-  public void setPhotoPosition(PhotoPosition photoPosition) {
-    mPhotoPosition = photoPosition;
-  }
-
   /**
    * Set drawable resources directly for the drawable resource of the photo view.
    *
-   * @param drawableId Id of drawable resource.
+   * @param drawable A drawable resource.
    */
-  public void setDrawableResource(int drawableId) {
+  public void setDrawable(Drawable drawable) {
     ImageView photo = getPhotoView();
     photo.setScaleType(ImageView.ScaleType.CENTER);
-    final Drawable drawable = ContextCompat.getDrawable(getContext(), drawableId);
-    final int iconColor = ContextCompat.getColor(getContext(), R.color.search_shortcut_icon_color);
-    if (CompatUtils.isLollipopCompatible()) {
-      photo.setImageDrawable(drawable);
-      photo.setImageTintList(ColorStateList.valueOf(iconColor));
-    } else {
-      final Drawable drawableWrapper = DrawableCompat.wrap(drawable).mutate();
-      DrawableCompat.setTint(drawableWrapper, iconColor);
-      photo.setImageDrawable(drawableWrapper);
-    }
+    int iconColor = ContextCompat.getColor(getContext(), R.color.search_shortcut_icon_color);
+    photo.setImageDrawable(drawable);
+    photo.setImageTintList(ColorStateList.valueOf(iconColor));
   }
 
   @Override
diff --git a/java/com/android/contacts/common/list/ContactTileView.java b/java/com/android/contacts/common/list/ContactTileView.java
index 9273b05..15582d6 100644
--- a/java/com/android/contacts/common/list/ContactTileView.java
+++ b/java/com/android/contacts/common/list/ContactTileView.java
@@ -19,7 +19,6 @@
 import android.graphics.Rect;
 import android.net.Uri;
 import android.util.AttributeSet;
-import android.util.Log;
 import android.view.View;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
@@ -28,6 +27,9 @@
 import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
 import com.android.contacts.common.MoreContactUtils;
 import com.android.contacts.common.R;
+import com.android.dialer.callintent.CallInitiationType;
+import com.android.dialer.callintent.CallSpecificAppData;
+import com.android.dialer.common.LogUtil;
 
 /** A ContactTile displays a contact's picture and name */
 public abstract class ContactTileView extends FrameLayout {
@@ -60,8 +62,14 @@
         if (mListener == null) {
           return;
         }
+        CallSpecificAppData callSpecificAppData =
+            CallSpecificAppData.newBuilder()
+                .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
+                .build();
         mListener.onContactSelected(
-            getLookupUri(), MoreContactUtils.getTargetRectFromView(ContactTileView.this));
+            getLookupUri(),
+            MoreContactUtils.getTargetRectFromView(ContactTileView.this),
+            callSpecificAppData);
       }
     };
   }
@@ -97,7 +105,7 @@
 
         }
       } else {
-        Log.w(TAG, "contactPhotoManager not set");
+        LogUtil.w(TAG, "contactPhotoManager not set");
       }
     } else {
       setVisibility(View.INVISIBLE);
@@ -163,9 +171,10 @@
   public interface Listener {
 
     /** Notification that the contact was selected; no specific action is dictated. */
-    void onContactSelected(Uri contactLookupUri, Rect viewRect);
+    void onContactSelected(
+        Uri contactLookupUri, Rect viewRect, CallSpecificAppData callSpecificAppData);
 
     /** Notification that the specified number is to be called. */
-    void onCallNumberDirectly(String phoneNumber);
+    void onCallNumberDirectly(String phoneNumber, CallSpecificAppData callSpecificAppData);
   }
 }
diff --git a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
index 9a490d7..65e6f2d 100644
--- a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
+++ b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
@@ -30,7 +30,6 @@
 import android.text.TextUtils;
 import android.view.View;
 import android.view.ViewGroup;
-import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
 import com.android.contacts.common.ContactsUtils;
 import com.android.contacts.common.R;
@@ -38,15 +37,17 @@
 import com.android.contacts.common.compat.DirectoryCompat;
 import com.android.contacts.common.compat.PhoneCompat;
 import com.android.contacts.common.extensions.PhoneDirectoryExtenderAccessor;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
 import com.android.contacts.common.list.ContactListItemView.CallToAction;
 import com.android.contacts.common.preference.ContactsPreferences;
 import com.android.contacts.common.util.Constants;
-import com.android.dialer.callcomposer.CallComposerContact;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.compat.CompatUtils;
+import com.android.dialer.dialercontact.DialerContact;
 import com.android.dialer.enrichedcall.EnrichedCallCapabilities;
 import com.android.dialer.enrichedcall.EnrichedCallComponent;
 import com.android.dialer.enrichedcall.EnrichedCallManager;
+import com.android.dialer.lightbringer.LightbringerComponent;
 import com.android.dialer.location.GeoUtil;
 import com.android.dialer.util.CallUtil;
 import java.util.ArrayList;
@@ -68,16 +69,15 @@
   // A list of extended directories to add to the directories from the database
   private final List<DirectoryPartition> mExtendedDirectories;
   private final CharSequence mUnknownNameText;
-  private final boolean mCallAndShareEnabled;
+  private final boolean mIsPresenceEnabled;
+  protected final boolean mIsImsVideoEnabled;
+
   // Extended directories will have ID's that are higher than any of the id's from the database,
   // so that we can identify them and set them up properly. If no extended directories
   // exist, this will be Long.MAX_VALUE
   private long mFirstExtendedDirectoryId = Long.MAX_VALUE;
-  private ContactListItemView.PhotoPosition mPhotoPosition;
   private boolean mUseCallableUri;
   private Listener mListener;
-  private boolean mIsVideoEnabled;
-  private boolean mIsPresenceEnabled;
 
   public PhoneNumberListAdapter(Context context) {
     super(context);
@@ -88,11 +88,8 @@
         PhoneDirectoryExtenderAccessor.get(mContext).getExtendedDirectories(mContext);
 
     int videoCapabilities = CallUtil.getVideoCallingAvailability(context);
-    mIsVideoEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_ENABLED) != 0;
+    mIsImsVideoEnabled = CallUtil.isVideoEnabled(context);
     mIsPresenceEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_PRESENCE) != 0;
-
-    // TODO
-    mCallAndShareEnabled = true;
   }
 
   @Override
@@ -249,10 +246,10 @@
     return item != null ? item.getString(PhoneQuery.LOOKUP_KEY) : null;
   }
 
-  public CallComposerContact getCallComposerContact(int position) {
+  public DialerContact getDialerContact(int position) {
     Cursor cursor = (Cursor) getItem(position);
     if (cursor == null) {
-      LogUtil.e("PhoneNumberListAdapter.getCallComposerContact", "cursor was null.");
+      LogUtil.e("PhoneNumberListAdapter.getDialerContact", "cursor was null.");
       return null;
     }
 
@@ -263,11 +260,11 @@
         Contacts.getLookupUri(
             cursor.getLong(PhoneQuery.CONTACT_ID), cursor.getString(PhoneQuery.LOOKUP_KEY));
 
-    CallComposerContact.Builder contact = CallComposerContact.newBuilder();
+    DialerContact.Builder contact = DialerContact.newBuilder();
     contact
         .setNumber(number)
         .setPhotoId(cursor.getLong(PhoneQuery.PHOTO_ID))
-        .setContactType(ContactPhotoManager.TYPE_DEFAULT)
+        .setContactType(LetterTileDrawable.TYPE_DEFAULT)
         .setNameOrNumber(displayName)
         .setNumberLabel(
             Phone.getTypeLabel(
@@ -297,7 +294,6 @@
     ContactListItemView view = super.newView(context, partition, cursor, position, parent);
     view.setUnknownNameText(mUnknownNameText);
     view.setQuickContactEnabled(isQuickContactEnabled());
-    view.setPhotoPosition(mPhotoPosition);
     return view;
   }
 
@@ -401,13 +397,17 @@
       int carrierPresence = cursor.getInt(PhoneQuery.CARRIER_PRESENCE);
       boolean isPresent = (carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) != 0;
 
-      boolean isVideoIconShown = mIsVideoEnabled && (!mIsPresenceEnabled || isPresent);
+      boolean isVideoIconShown = mIsImsVideoEnabled && (!mIsPresenceEnabled || isPresent);
       if (isVideoIconShown) {
         action = ContactListItemView.VIDEO;
       }
     }
 
-    if (isCallAndShareEnabled() && action == ContactListItemView.NONE && number != null) {
+    if (LightbringerComponent.get(mContext).getLightbringer().isReachable(mContext, number)) {
+      action = ContactListItemView.LIGHTBRINGER;
+    }
+
+    if (action == ContactListItemView.NONE) {
       EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
       EnrichedCallCapabilities capabilities = manager.getCapabilities(number);
       if (capabilities != null && capabilities.supportsCallComposer()) {
@@ -481,14 +481,6 @@
     }
   }
 
-  public ContactListItemView.PhotoPosition getPhotoPosition() {
-    return mPhotoPosition;
-  }
-
-  public void setPhotoPosition(ContactListItemView.PhotoPosition photoPosition) {
-    mPhotoPosition = photoPosition;
-  }
-
   public void setUseCallableUri(boolean useCallableUri) {
     mUseCallableUri = useCallableUri;
   }
@@ -570,14 +562,12 @@
     mListener = listener;
   }
 
-  public boolean isCallAndShareEnabled() {
-    return mCallAndShareEnabled;
-  }
-
   public interface Listener {
 
     void onVideoCallIconClicked(int position);
 
+    void onLightbringerIconClicked(int position);
+
     void onCallAndShareIconClicked(int position);
   }
 
@@ -642,18 +632,14 @@
     static {
       final List<String> projectionList =
           new ArrayList<>(Arrays.asList(PROJECTION_PRIMARY_INTERNAL));
-      if (CompatUtils.isMarshmallowCompatible()) {
-        projectionList.add(Phone.CARRIER_PRESENCE); // 9
-      }
+      projectionList.add(Phone.CARRIER_PRESENCE); // 9
       PROJECTION_PRIMARY = projectionList.toArray(new String[projectionList.size()]);
     }
 
     static {
       final List<String> projectionList =
           new ArrayList<>(Arrays.asList(PROJECTION_ALTERNATIVE_INTERNAL));
-      if (CompatUtils.isMarshmallowCompatible()) {
-        projectionList.add(Phone.CARRIER_PRESENCE); // 9
-      }
+      projectionList.add(Phone.CARRIER_PRESENCE); // 9
       PROJECTION_ALTERNATIVE = projectionList.toArray(new String[projectionList.size()]);
     }
   }
diff --git a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
index 8f25f82..79e6700 100644
--- a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
+++ b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
@@ -29,15 +29,18 @@
 import android.view.View;
 import android.view.ViewGroup;
 import com.android.contacts.common.R;
+import com.android.contacts.common.list.PhoneNumberListAdapter.Listener;
 import com.android.contacts.common.util.AccountFilterUtil;
-import com.android.dialer.callcomposer.CallComposerContact;
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallInitiationType.Type;
 import com.android.dialer.callintent.CallSpecificAppData;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.dialercontact.DialerContact;
 import com.android.dialer.enrichedcall.EnrichedCallComponent;
 import com.android.dialer.enrichedcall.EnrichedCallManager;
+import com.android.dialer.lightbringer.LightbringerComponent;
+import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.protos.ProtoParsers;
 import java.util.Set;
@@ -61,9 +64,6 @@
 
   private boolean mUseCallableUri;
 
-  private ContactListItemView.PhotoPosition mPhotoPosition =
-      ContactListItemView.getDefaultPhotoPosition(false /* normal/non opposite */);
-
   private final Set<OnLoadFinishedListener> mLoadFinishedListeners = new ArraySet<>();
 
   private CursorReranker mCursorReranker;
@@ -71,7 +71,7 @@
   public PhoneNumberPickerFragment() {
     setQuickContactEnabled(false);
     setPhotoLoaderEnabled(true);
-    setSectionHeaderDisplayEnabled(true);
+    setSectionHeaderDisplayEnabled(false);
     setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_NONE);
 
     // Show nothing instead of letting caller Activity show something.
@@ -85,17 +85,32 @@
    */
   @Override
   public void onVideoCallIconClicked(int position) {
+    Logger.get(getContext()).logImpression(DialerImpression.Type.IMS_VIDEO_REQUESTED_FROM_SEARCH);
     callNumber(position, true /* isVideoCall */);
   }
 
   @Override
+  public void onLightbringerIconClicked(int position) {
+    String phoneNumber = getPhoneNumber(position);
+    Intent intent =
+        LightbringerComponent.get(getContext())
+            .getLightbringer()
+            .getIntent(getContext(), phoneNumber);
+    // DialtactsActivity.ACTIVITY_REQUEST_CODE_LIGHTBRINGER
+    // Cannot reference because of cyclic dependencies
+    Logger.get(getContext())
+        .logImpression(DialerImpression.Type.LIGHTBRINGER_VIDEO_REQUESTED_FROM_SEARCH);
+    int dialactsActivityRequestCode = 3;
+    getActivity().startActivityForResult(intent, dialactsActivityRequestCode);
+  }
+
+  @Override
   public void onCallAndShareIconClicked(int position) {
     // Required because of cyclic dependencies of everything depending on contacts/common.
     String componentName = "com.android.dialer.callcomposer.CallComposerActivity";
     Intent intent = new Intent();
     intent.setComponent(new ComponentName(getContext(), componentName));
-    CallComposerContact contact =
-        ((PhoneNumberListAdapter) getAdapter()).getCallComposerContact(position);
+    DialerContact contact = ((PhoneNumberListAdapter) getAdapter()).getDialerContact(position);
     ProtoParsers.put(intent, "CALL_COMPOSER_CONTACT", contact);
     startActivity(intent);
   }
@@ -320,7 +335,27 @@
   @Override
   public void onCapabilitiesUpdated() {
     if (getAdapter() != null) {
-      getAdapter().notifyDataSetChanged();
+      EnrichedCallManager manager =
+          EnrichedCallComponent.get(getContext()).getEnrichedCallManager();
+      Listener listener = ((PhoneNumberListAdapter) getAdapter()).getListener();
+
+      for (int i = 0; i < getListView().getChildCount(); i++) {
+        if (!(getListView().getChildAt(i) instanceof ContactListItemView)) {
+          continue;
+        }
+
+        // Since call and share is the lowest priority call to action, if any others are set,
+        // do not reset the call to action. Also do not set the call and share call to action if
+        // the number doesn't support call composer.
+        ContactListItemView view = (ContactListItemView) getListView().getChildAt(i);
+        if (view.getCallToAction() != ContactListItemView.NONE
+            || view.getPhoneNumber() == null
+            || manager.getCapabilities(view.getPhoneNumber()) == null
+            || !manager.getCapabilities(view.getPhoneNumber()).supportsCallComposer()) {
+          continue;
+        }
+        view.setCallToAction(ContactListItemView.CALL_AND_SHARE, listener, view.getPosition());
+      }
     }
   }
 
@@ -360,12 +395,6 @@
     if (!isSearchMode() && mFilter != null) {
       adapter.setFilter(mFilter);
     }
-
-    setPhotoPosition(adapter);
-  }
-
-  protected void setPhotoPosition(ContactEntryListAdapter adapter) {
-    ((PhoneNumberListAdapter) adapter).setPhotoPosition(mPhotoPosition);
   }
 
   @Override
@@ -389,15 +418,6 @@
     updateFilterHeaderView();
   }
 
-  public void setPhotoPosition(ContactListItemView.PhotoPosition photoPosition) {
-    mPhotoPosition = photoPosition;
-
-    final PhoneNumberListAdapter adapter = (PhoneNumberListAdapter) getAdapter();
-    if (adapter != null) {
-      adapter.setPhotoPosition(photoPosition);
-    }
-  }
-
   /**
    * @param isRemoteDirectory {@code true} if the call was initiated using a contact/phone number
    *     not in the local contacts database
diff --git a/java/com/android/contacts/common/list/ViewPagerTabs.java b/java/com/android/contacts/common/list/ViewPagerTabs.java
index 34f623e..1e6cf13 100644
--- a/java/com/android/contacts/common/list/ViewPagerTabs.java
+++ b/java/com/android/contacts/common/list/ViewPagerTabs.java
@@ -33,7 +33,6 @@
 import android.widget.TextView;
 import android.widget.Toast;
 import com.android.contacts.common.R;
-import com.android.dialer.compat.CompatUtils;
 
 /**
  * Lightweight implementation of ViewPager tabs. This looks similar to traditional actionBar tabs,
@@ -43,7 +42,13 @@
  */
 public class ViewPagerTabs extends HorizontalScrollView implements ViewPager.OnPageChangeListener {
 
-  private static final ViewOutlineProvider VIEW_BOUNDS_OUTLINE_PROVIDER;
+  private static final ViewOutlineProvider VIEW_BOUNDS_OUTLINE_PROVIDER =
+      new ViewOutlineProvider() {
+        @Override
+        public void getOutline(View view, Outline outline) {
+          outline.setRect(0, 0, view.getWidth(), view.getHeight());
+        }
+      };
   private static final int TAB_SIDE_PADDING_IN_DPS = 10;
   // TODO: This should use <declare-styleable> in the future
   private static final int[] ATTRS =
@@ -54,20 +59,6 @@
         android.R.attr.textAllCaps
       };
 
-  static {
-    if (CompatUtils.isLollipopCompatible()) {
-      VIEW_BOUNDS_OUTLINE_PROVIDER =
-          new ViewOutlineProvider() {
-            @Override
-            public void getOutline(View view, Outline outline) {
-              outline.setRect(0, 0, view.getWidth(), view.getHeight());
-            }
-          };
-    } else {
-      VIEW_BOUNDS_OUTLINE_PROVIDER = null;
-    }
-  }
-
   /**
    * Linearlayout that will contain the TextViews serving as tabs. This is the only child of the
    * parent HorizontalScrollView.
@@ -111,10 +102,8 @@
         new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
     a.recycle();
 
-    if (CompatUtils.isLollipopCompatible()) {
-      // enable shadow casting from view bounds
-      setOutlineProvider(VIEW_BOUNDS_OUTLINE_PROVIDER);
-    }
+    // enable shadow casting from view bounds
+    setOutlineProvider(VIEW_BOUNDS_OUTLINE_PROVIDER);
   }
 
   public void setViewPager(ViewPager viewPager) {
diff --git a/java/com/android/contacts/common/location/CountryDetector.java b/java/com/android/contacts/common/location/CountryDetector.java
deleted file mode 100644
index 7d9e42b..0000000
--- a/java/com/android/contacts/common/location/CountryDetector.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.common.location;
-
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.location.Geocoder;
-import android.location.Location;
-import android.location.LocationManager;
-import android.preference.PreferenceManager;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-import android.util.Log;
-import com.android.dialer.util.PermissionsUtil;
-import java.util.Locale;
-
-/**
- * This class is used to detect the country where the user is. It is a simplified version of the
- * country detector service in the framework. The sources of country location are queried in the
- * following order of reliability:
- *
- * <ul>
- * <li>Mobile network
- * <li>Location manager
- * <li>SIM's country
- * <li>User's default locale
- * </ul>
- *
- * As far as possible this class tries to replicate the behavior of the system's country detector
- * service: 1) Order in priority of sources of country location 2) Mobile network information
- * provided by CDMA phones is ignored 3) Location information is updated every 12 hours (instead of
- * 24 hours in the system) 4) Location updates only uses the {@link
- * LocationManager#PASSIVE_PROVIDER} to avoid active use of the GPS 5) If a location is successfully
- * obtained and geocoded, we never fall back to use of the SIM's country (for the system, the
- * fallback never happens without a reboot) 6) Location is not used if the device does not implement
- * a {@link android.location.Geocoder}
- */
-public class CountryDetector {
-
-  public static final String KEY_PREFERENCE_TIME_UPDATED = "preference_time_updated";
-  public static final String KEY_PREFERENCE_CURRENT_COUNTRY = "preference_current_country";
-  private static final String TAG = "CountryDetector";
-  // Wait 12 hours between updates
-  private static final long TIME_BETWEEN_UPDATES_MS = 1000L * 60 * 60 * 12;
-  // Minimum distance before an update is triggered, in meters. We don't need this to be too
-  // exact because all we care about is what country the user is in.
-  private static final long DISTANCE_BETWEEN_UPDATES_METERS = 5000;
-  private static CountryDetector sInstance;
-  private final TelephonyManager mTelephonyManager;
-  private final LocationManager mLocationManager;
-  private final LocaleProvider mLocaleProvider;
-  // Used as a default country code when all the sources of country data have failed in the
-  // exceedingly rare event that the device does not have a default locale set for some reason.
-  private static final String DEFAULT_COUNTRY_ISO = "US";
-  private final Context mContext;
-
-  private CountryDetector(Context context) {
-    this(
-        context,
-        (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE),
-        (LocationManager) context.getSystemService(Context.LOCATION_SERVICE),
-        new LocaleProvider());
-  }
-
-  private CountryDetector(
-      Context context,
-      TelephonyManager telephonyManager,
-      LocationManager locationManager,
-      LocaleProvider localeProvider) {
-    mTelephonyManager = telephonyManager;
-    mLocationManager = locationManager;
-    mLocaleProvider = localeProvider;
-    mContext = context;
-
-    registerForLocationUpdates(context, mLocationManager);
-  }
-
-  public static void registerForLocationUpdates(Context context, LocationManager locationManager) {
-    if (!PermissionsUtil.hasLocationPermissions(context)) {
-      Log.w(TAG, "No location permissions, not registering for location updates.");
-      return;
-    }
-
-    if (!Geocoder.isPresent()) {
-      // Certain devices do not have an implementation of a geocoder - in that case there is
-      // no point trying to get location updates because we cannot retrieve the country based
-      // on the location anyway.
-      return;
-    }
-    final Intent activeIntent = new Intent(context, LocationChangedReceiver.class);
-    final PendingIntent pendingIntent =
-        PendingIntent.getBroadcast(context, 0, activeIntent, PendingIntent.FLAG_UPDATE_CURRENT);
-
-    locationManager.requestLocationUpdates(
-        LocationManager.PASSIVE_PROVIDER,
-        TIME_BETWEEN_UPDATES_MS,
-        DISTANCE_BETWEEN_UPDATES_METERS,
-        pendingIntent);
-  }
-
-  /**
-   * Returns the instance of the country detector. {@link #initialize(Context)} must have been
-   * called previously.
-   *
-   * @return the initialized country detector.
-   */
-  public static synchronized CountryDetector getInstance(Context context) {
-    if (sInstance == null) {
-      sInstance = new CountryDetector(context.getApplicationContext());
-    }
-    return sInstance;
-  }
-
-  /** Factory method for {@link CountryDetector} that allows the caller to provide mock objects. */
-  public CountryDetector getInstanceForTest(
-      Context context,
-      TelephonyManager telephonyManager,
-      LocationManager locationManager,
-      LocaleProvider localeProvider,
-      Geocoder geocoder) {
-    return new CountryDetector(context, telephonyManager, locationManager, localeProvider);
-  }
-
-  public String getCurrentCountryIso() {
-    String result = null;
-    if (isNetworkCountryCodeAvailable()) {
-      result = getNetworkBasedCountryIso();
-    }
-    if (TextUtils.isEmpty(result)) {
-      result = getLocationBasedCountryIso();
-    }
-    if (TextUtils.isEmpty(result)) {
-      result = getSimBasedCountryIso();
-    }
-    if (TextUtils.isEmpty(result)) {
-      result = getLocaleBasedCountryIso();
-    }
-    if (TextUtils.isEmpty(result)) {
-      result = DEFAULT_COUNTRY_ISO;
-    }
-    return result.toUpperCase(Locale.US);
-  }
-
-  /** @return the country code of the current telephony network the user is connected to. */
-  private String getNetworkBasedCountryIso() {
-    return mTelephonyManager.getNetworkCountryIso();
-  }
-
-  /** @return the geocoded country code detected by the {@link LocationManager}. */
-  private String getLocationBasedCountryIso() {
-    if (!Geocoder.isPresent() || !PermissionsUtil.hasLocationPermissions(mContext)) {
-      return null;
-    }
-    final SharedPreferences sharedPreferences =
-        PreferenceManager.getDefaultSharedPreferences(mContext);
-    return sharedPreferences.getString(KEY_PREFERENCE_CURRENT_COUNTRY, null);
-  }
-
-  /** @return the country code of the SIM card currently inserted in the device. */
-  private String getSimBasedCountryIso() {
-    return mTelephonyManager.getSimCountryIso();
-  }
-
-  /** @return the country code of the user's currently selected locale. */
-  private String getLocaleBasedCountryIso() {
-    Locale defaultLocale = mLocaleProvider.getDefaultLocale();
-    if (defaultLocale != null) {
-      return defaultLocale.getCountry();
-    }
-    return null;
-  }
-
-  private boolean isNetworkCountryCodeAvailable() {
-    // On CDMA TelephonyManager.getNetworkCountryIso() just returns the SIM's country code.
-    // In this case, we want to ignore the value returned and fallback to location instead.
-    return mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM;
-  }
-
-  /**
-   * Class that can be used to return the user's default locale. This is in its own class so that it
-   * can be mocked out.
-   */
-  public static class LocaleProvider {
-
-    public Locale getDefaultLocale() {
-      return Locale.getDefault();
-    }
-  }
-
-  public static class LocationChangedReceiver extends BroadcastReceiver {
-
-    @Override
-    public void onReceive(final Context context, Intent intent) {
-      if (!intent.hasExtra(LocationManager.KEY_LOCATION_CHANGED)) {
-        return;
-      }
-
-      final Location location =
-          (Location) intent.getExtras().get(LocationManager.KEY_LOCATION_CHANGED);
-
-      UpdateCountryService.updateCountry(context, location);
-    }
-  }
-}
diff --git a/java/com/android/contacts/common/location/UpdateCountryService.java b/java/com/android/contacts/common/location/UpdateCountryService.java
deleted file mode 100644
index f23e09e..0000000
--- a/java/com/android/contacts/common/location/UpdateCountryService.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.common.location;
-
-import android.app.IntentService;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.content.SharedPreferences.Editor;
-import android.location.Address;
-import android.location.Geocoder;
-import android.location.Location;
-import android.preference.PreferenceManager;
-import android.util.Log;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Service used to perform asynchronous geocoding from within a broadcast receiver. Given a {@link
- * Location}, convert it into a country code, and save it in shared preferences.
- */
-public class UpdateCountryService extends IntentService {
-
-  private static final String TAG = UpdateCountryService.class.getSimpleName();
-
-  private static final String ACTION_UPDATE_COUNTRY = "saveCountry";
-
-  private static final String KEY_INTENT_LOCATION = "location";
-
-  public UpdateCountryService() {
-    super(TAG);
-  }
-
-  public static void updateCountry(Context context, Location location) {
-    final Intent serviceIntent = new Intent(context, UpdateCountryService.class);
-    serviceIntent.setAction(ACTION_UPDATE_COUNTRY);
-    serviceIntent.putExtra(UpdateCountryService.KEY_INTENT_LOCATION, location);
-    context.startService(serviceIntent);
-  }
-
-  @Override
-  protected void onHandleIntent(Intent intent) {
-    if (intent == null) {
-      Log.d(TAG, "onHandleIntent: could not handle null intent");
-      return;
-    }
-    if (ACTION_UPDATE_COUNTRY.equals(intent.getAction())) {
-      final Location location = intent.getParcelableExtra(KEY_INTENT_LOCATION);
-      final String country = getCountryFromLocation(getApplicationContext(), location);
-
-      if (country == null) {
-        return;
-      }
-
-      final SharedPreferences prefs =
-          PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
-
-      final Editor editor = prefs.edit();
-      editor.putLong(CountryDetector.KEY_PREFERENCE_TIME_UPDATED, System.currentTimeMillis());
-      editor.putString(CountryDetector.KEY_PREFERENCE_CURRENT_COUNTRY, country);
-      editor.commit();
-    }
-  }
-
-  /**
-   * Given a {@link Location}, return a country code.
-   *
-   * @return the ISO 3166-1 two letter country code
-   */
-  private String getCountryFromLocation(Context context, Location location) {
-    final Geocoder geocoder = new Geocoder(context);
-    String country = null;
-    try {
-      double latitude = location.getLatitude();
-      // Latitude has to be between 90 and -90 (latitude of north and south poles wrt equator)
-      if (latitude <= 90 && latitude >= -90) {
-        final List<Address> addresses =
-            geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
-        if (addresses != null && addresses.size() > 0) {
-          country = addresses.get(0).getCountryCode();
-        }
-      } else {
-        Log.w(TAG, "Invalid latitude");
-      }
-    } catch (IOException e) {
-      Log.w(TAG, "Exception occurred when getting geocoded country from location");
-    }
-    return country;
-  }
-}
diff --git a/java/com/android/contacts/common/model/ContactLoader.java b/java/com/android/contacts/common/model/ContactLoader.java
index 55464b1..7ef3b73 100644
--- a/java/com/android/contacts/common/model/ContactLoader.java
+++ b/java/com/android/contacts/common/model/ContactLoader.java
@@ -522,6 +522,7 @@
     cursorColumnToContentValues(cursor, cv, ContactQuery.TIMES_USED);
     cursorColumnToContentValues(cursor, cv, ContactQuery.LAST_TIME_USED);
     cursorColumnToContentValues(cursor, cv, ContactQuery.CARRIER_PRESENCE);
+
     return cv;
   }
 
diff --git a/java/com/android/contacts/common/model/account/BaseAccountType.java b/java/com/android/contacts/common/model/account/BaseAccountType.java
index 8e9ba73..ccdad36 100644
--- a/java/com/android/contacts/common/model/account/BaseAccountType.java
+++ b/java/com/android/contacts/common/model/account/BaseAccountType.java
@@ -307,7 +307,7 @@
     DataKind kind =
         addKind(
             new DataKind(Phone.CONTENT_ITEM_TYPE, R.string.phoneLabelsGroup, Weight.PHONE, true));
-    kind.iconAltRes = R.drawable.quantum_ic_message_white_24;
+    kind.iconAltRes = R.drawable.quantum_ic_message_vd_theme_24;
     kind.iconAltDescriptionRes = R.string.sms;
     kind.actionHeader = new PhoneActionInflater();
     kind.actionAltHeader = new PhoneActionAltInflater();
@@ -1228,7 +1228,7 @@
               new PhoneActionInflater(),
               new SimpleInflater(Phone.NUMBER));
 
-      kind.iconAltRes = R.drawable.quantum_ic_message_white_24;
+      kind.iconAltRes = R.drawable.quantum_ic_message_vd_theme_24;
       kind.iconAltDescriptionRes = R.string.sms;
       kind.actionAltHeader = new PhoneActionAltInflater();
 
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png
deleted file mode 100644
index d86b219..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png
deleted file mode 100644
index ddbb2c4..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png
deleted file mode 100644
index d5942dc..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png
deleted file mode 100644
index 4dc5065..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png
deleted file mode 100644
index 9695529..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png
deleted file mode 100644
index 540ab4d..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png
deleted file mode 100644
index 017e4bb..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png
deleted file mode 100644
index 703d30b..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png
deleted file mode 100644
index c7b1113..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png
deleted file mode 100644
index deb3a6d..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png
deleted file mode 100644
index 06bd18f..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png
deleted file mode 100644
index d829d11..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png
deleted file mode 100644
index 1ba1295..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png
deleted file mode 100644
index 5ff3ac5..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png
deleted file mode 100644
index b4ebfc7..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png
deleted file mode 100644
index 03fd2fb..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png
deleted file mode 100644
index e8cb0f5..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png
deleted file mode 100644
index 4513796..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png
deleted file mode 100644
index 1c9bb81..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png
deleted file mode 100644
index 56708b0..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png
deleted file mode 100644
index ccdda67..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png
deleted file mode 100644
index 603ddc8..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png
deleted file mode 100644
index 97905c9..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png
deleted file mode 100644
index 2121878..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png
deleted file mode 100644
index 4ea7afa..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png
deleted file mode 100644
index cddf9be..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png
deleted file mode 100644
index 86578be..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png
deleted file mode 100644
index e9afcc9..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png
deleted file mode 100644
index 2054530..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png
deleted file mode 100644
index a0f1756..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png
deleted file mode 100644
index ae93717..0000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png
deleted file mode 100644
index 4139942..0000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png
deleted file mode 100644
index 569d28f..0000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png
deleted file mode 100644
index 5ec4c96..0000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png
deleted file mode 100644
index 4139942..0000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png
deleted file mode 100644
index 065ff62..0000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png
deleted file mode 100644
index 013d5e7..0000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png
deleted file mode 100644
index 947f03c..0000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png
deleted file mode 100644
index 6d09d72..0000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png
deleted file mode 100644
index 63c7456..0000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png
deleted file mode 100644
index 4139942..0000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png
deleted file mode 100644
index af58554..0000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png
deleted file mode 100644
index cb801ac..0000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png
deleted file mode 100644
index 3bf8e03..0000000
--- a/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png
deleted file mode 100644
index 86578be..0000000
--- a/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png
deleted file mode 100644
index 3226ab7..0000000
--- a/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png
deleted file mode 100644
index 061904c..0000000
--- a/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png
deleted file mode 100644
index 1d9371d..0000000
--- a/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png
deleted file mode 100644
index 046b24a..0000000
--- a/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png
deleted file mode 100644
index 1ff3373..0000000
--- a/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png
deleted file mode 100644
index 2eb7c7e..0000000
--- a/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png
deleted file mode 100644
index eda10e6..0000000
--- a/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png
deleted file mode 100644
index 86578be..0000000
--- a/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png
deleted file mode 100644
index 5532e88..0000000
--- a/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png
deleted file mode 100644
index f4af926..0000000
--- a/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png
deleted file mode 100644
index 8fb0636..0000000
--- a/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png
deleted file mode 100644
index 52c00dd..0000000
--- a/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png
deleted file mode 100644
index 3e4ca68..0000000
--- a/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png
deleted file mode 100644
index 230d649..0000000
--- a/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png
deleted file mode 100644
index 1352a17..0000000
--- a/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml b/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml
deleted file mode 100644
index be0cdd3..0000000
--- a/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?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
-  -->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:autoMirrored="true"
-    android:src="@drawable/ic_phone_attach"
-    android:tint="@color/search_video_call_icon_tint"
-    android:background="?attr/selectableItemBackgroundBorderless"/>
\ No newline at end of file
diff --git a/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml b/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml
deleted file mode 100644
index 476212d..0000000
--- a/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml
+++ /dev/null
@@ -1,20 +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.
--->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-  android:autoMirrored="true"
-  android:src="@drawable/quantum_ic_person_add_white_24"/>
diff --git a/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml b/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml
deleted file mode 100644
index 0fe0367..0000000
--- a/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?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
-  -->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-  android:autoMirrored="true"
-  android:src="@drawable/quantum_ic_videocam_white_24"
-  android:tint="@color/search_video_call_icon_tint"
-  android:background="?attr/selectableItemBackgroundBorderless"/>
diff --git a/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml b/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml
deleted file mode 100644
index 35fff99..0000000
--- a/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<transition xmlns:android="http://schemas.android.com/apk/res/android">
-  <item android:drawable="@drawable/list_pressed_holo_light"/>
-  <item android:drawable="@drawable/list_longpressed_holo_light"/>
-</transition>
diff --git a/java/com/android/contacts/common/res/layout/dialog_call_subject.xml b/java/com/android/contacts/common/res/layout/dialog_call_subject.xml
index a33b2ac..df8e8d2 100644
--- a/java/com/android/contacts/common/res/layout/dialog_call_subject.xml
+++ b/java/com/android/contacts/common/res/layout/dialog_call_subject.xml
@@ -129,7 +129,7 @@
           android:layout_height="25dp"
           android:layout_alignParentStart="true"
           android:layout_centerVertical="true"
-          android:src="@drawable/quantum_ic_history_white_24"
+          android:src="@drawable/quantum_ic_history_vd_theme_24"
           android:tint="@color/call_subject_history_icon"/>
 
         <TextView
diff --git a/java/com/android/contacts/common/res/layout/search_bar_expanded.xml b/java/com/android/contacts/common/res/layout/search_bar_expanded.xml
index fa16083..7192eb0 100644
--- a/java/com/android/contacts/common/res/layout/search_bar_expanded.xml
+++ b/java/com/android/contacts/common/res/layout/search_bar_expanded.xml
@@ -29,7 +29,7 @@
     android:layout_margin="@dimen/search_box_navigation_icon_margin"
     android:background="?attr/selectableItemBackgroundBorderless"
     android:contentDescription="@string/action_menu_back_from_search"
-    android:src="@drawable/ic_back_arrow"
+    android:src="@drawable/quantum_ic_arrow_back_vd_theme_24"
     android:tint="@color/contactscommon_actionbar_background_color"/>
 
   <EditText
@@ -56,7 +56,7 @@
     android:background="?attr/selectableItemBackgroundBorderless"
     android:clickable="true"
     android:contentDescription="@string/description_clear_search"
-    android:src="@drawable/quantum_ic_close_white_24"
+    android:src="@drawable/quantum_ic_close_vd_theme_24"
     android:tint="@color/searchbox_icon_tint"/>
 
 </LinearLayout>
diff --git a/java/com/android/contacts/common/res/values-af/strings.xml b/java/com/android/contacts/common/res/values-af/strings.xml
index 52e612d..48e4158 100644
--- a/java/com/android/contacts/common/res/values-af/strings.xml
+++ b/java/com/android/contacts/common/res/values-af/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Tik \'n nota om saam met oproep te stuur …"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"STUUR EN BEL"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-oortjie"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-oortjie <xliff:g id="COUNT_3">%2$d</xliff:g> ongelese items. </item>
diff --git a/java/com/android/contacts/common/res/values-am/strings.xml b/java/com/android/contacts/common/res/values-am/strings.xml
index 0283fbb..4121474 100644
--- a/java/com/android/contacts/common/res/values-am/strings.xml
+++ b/java/com/android/contacts/common/res/values-am/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"ከጥሪ ጋር ለመላክ የማስታወሻ ጽሑፍ ይተይቡ ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ላክ እና ደውል"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g><xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"የ<xliff:g id="TITLE">%1$s</xliff:g> ትር።"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> የ<xliff:g id="TITLE_2">%1$s</xliff:g> ትር። <xliff:g id="COUNT_3">%2$d</xliff:g> ያልተነበቡ ንጥሎች። </item>
diff --git a/java/com/android/contacts/common/res/values-ar/strings.xml b/java/com/android/contacts/common/res/values-ar/strings.xml
index a3862fe..98fb057 100644
--- a/java/com/android/contacts/common/res/values-ar/strings.xml
+++ b/java/com/android/contacts/common/res/values-ar/strings.xml
@@ -252,7 +252,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"اكتب ملاحظة لإرسالها مع المكالمة ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"إرسال واتصال"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"علامة تبويب <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="zero"> <xliff:g id="TITLE_2">%1$s</xliff:g> علامة تبويب. <xliff:g id="COUNT_3">%2$d</xliff:g> عناصر غير مقروءة. </item>
diff --git a/java/com/android/contacts/common/res/values-az/strings.xml b/java/com/android/contacts/common/res/values-az/strings.xml
index 9433771..813ada7 100644
--- a/java/com/android/contacts/common/res/values-az/strings.xml
+++ b/java/com/android/contacts/common/res/values-az/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Zəng ilə göndərmək üçün qeyd yazın..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"GÖNDƏRİN VƏ ZƏNG EDİN"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tabel."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tabel. <xliff:g id="COUNT_3">%2$d</xliff:g> oxunmamış element. </item>
diff --git a/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml b/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml
index fc99567..3eccfc6 100644
--- a/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml
@@ -249,7 +249,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Unesite belešku koju ćete poslati uz poziv..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"POŠALJI I POZOVI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Kartica <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Kartica <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item>
diff --git a/java/com/android/contacts/common/res/values-be/strings.xml b/java/com/android/contacts/common/res/values-be/strings.xml
index a9652a1..99922a8 100644
--- a/java/com/android/contacts/common/res/values-be/strings.xml
+++ b/java/com/android/contacts/common/res/values-be/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Увесці нататку для адпраўкі з выклікам…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"АДПРАВІЦЬ І ВЫКЛІКАЦЬ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Укладка <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one">Укладка <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрачытаны элемент. </item>
diff --git a/java/com/android/contacts/common/res/values-bg/strings.xml b/java/com/android/contacts/common/res/values-bg/strings.xml
index 0b57eb6..c2ebd27 100644
--- a/java/com/android/contacts/common/res/values-bg/strings.xml
+++ b/java/com/android/contacts/common/res/values-bg/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Напишете придружаваща бележка, която ще се изпрати при извършване на обаждането..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ИЗПРАЩАНЕ И ОБАЖДАНЕ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Раздел „<xliff:g id="TITLE">%1$s</xliff:g>“."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">Раздел „<xliff:g id="TITLE_2">%1$s</xliff:g>“. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочетени елемента. </item>
diff --git a/java/com/android/contacts/common/res/values-bn/strings.xml b/java/com/android/contacts/common/res/values-bn/strings.xml
index 8e783d1..47e9b02 100644
--- a/java/com/android/contacts/common/res/values-bn/strings.xml
+++ b/java/com/android/contacts/common/res/values-bn/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"কলের সাথে পাঠানোর জন্য একটি নোট লিখুন ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"পাঠান এবং কল করুন"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ট্যাব৷"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ট্যাব৷ <xliff:g id="COUNT_3">%2$d</xliff:g>টি অপঠিত আইটেম৷ </item>
diff --git a/java/com/android/contacts/common/res/values-bs/strings.xml b/java/com/android/contacts/common/res/values-bs/strings.xml
index 278f6a8..305a746 100644
--- a/java/com/android/contacts/common/res/values-bs/strings.xml
+++ b/java/com/android/contacts/common/res/values-bs/strings.xml
@@ -249,7 +249,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Upišite bilješku koja će se poslati uz poziv ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"POŠALJI I POZOVI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Kartica <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Kartica <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item>
diff --git a/java/com/android/contacts/common/res/values-ca/strings.xml b/java/com/android/contacts/common/res/values-ca/strings.xml
index ad31a01..8e80686 100644
--- a/java/com/android/contacts/common/res/values-ca/strings.xml
+++ b/java/com/android/contacts/common/res/values-ca/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Escriu una nota per enviar-la juntament amb la trucada..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVIA I TRUCA"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Pestanya <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">Pestanya <xliff:g id="TITLE_2">%1$s</xliff:g>: <xliff:g id="COUNT_3">%2$d</xliff:g> elements no llegits </item>
diff --git a/java/com/android/contacts/common/res/values-cs/strings.xml b/java/com/android/contacts/common/res/values-cs/strings.xml
index ab54be9..7aea200 100644
--- a/java/com/android/contacts/common/res/values-cs/strings.xml
+++ b/java/com/android/contacts/common/res/values-cs/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Zadejte poznámku, která se odešle pomocí volání…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ODESLAT A ZAVOLAT"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Karta <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="few"> Karta <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepřečtené položky. </item>
diff --git a/java/com/android/contacts/common/res/values-da/strings.xml b/java/com/android/contacts/common/res/values-da/strings.xml
index 965d04a..430895a 100644
--- a/java/com/android/contacts/common/res/values-da/strings.xml
+++ b/java/com/android/contacts/common/res/values-da/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Indtast en note, som skal sendes ved opkald..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SEND OG RING"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Fanen <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Fanen <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ulæst element. </item>
diff --git a/java/com/android/contacts/common/res/values-de/strings.xml b/java/com/android/contacts/common/res/values-de/strings.xml
index 60c5e68..a46f278 100644
--- a/java/com/android/contacts/common/res/values-de/strings.xml
+++ b/java/com/android/contacts/common/res/values-de/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Notiz eingeben, die beim Anrufen gesendet wird..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SENDEN UND ANRUFEN"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Tab \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">Tab \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> ungelesene Elemente. </item>
diff --git a/java/com/android/contacts/common/res/values-el/strings.xml b/java/com/android/contacts/common/res/values-el/strings.xml
index 9af3bc5..567b8fb 100644
--- a/java/com/android/contacts/common/res/values-el/strings.xml
+++ b/java/com/android/contacts/common/res/values-el/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Πληκτρολογήστε μια σημείωση για αποστολή με την κλήση…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ΑΠΟΣΤΟΛΗ ΚΑΙ ΚΛΗΣΗ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Καρτέλα <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Καρτέλα <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> μη αναγνωσμένα στοιχεία. </item>
diff --git a/java/com/android/contacts/common/res/values-en-rAU/strings.xml b/java/com/android/contacts/common/res/values-en-rAU/strings.xml
index 996c6ee..660993d 100644
--- a/java/com/android/contacts/common/res/values-en-rAU/strings.xml
+++ b/java/com/android/contacts/common/res/values-en-rAU/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Type a note to send with call ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SEND &amp; CALL"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tab."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-en-rGB/strings.xml b/java/com/android/contacts/common/res/values-en-rGB/strings.xml
index 996c6ee..660993d 100644
--- a/java/com/android/contacts/common/res/values-en-rGB/strings.xml
+++ b/java/com/android/contacts/common/res/values-en-rGB/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Type a note to send with call ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SEND &amp; CALL"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tab."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-en-rIN/strings.xml b/java/com/android/contacts/common/res/values-en-rIN/strings.xml
index 996c6ee..660993d 100644
--- a/java/com/android/contacts/common/res/values-en-rIN/strings.xml
+++ b/java/com/android/contacts/common/res/values-en-rIN/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Type a note to send with call ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SEND &amp; CALL"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tab."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-es-rUS/strings.xml b/java/com/android/contacts/common/res/values-es-rUS/strings.xml
index acb563c..1c0339a 100644
--- a/java/com/android/contacts/common/res/values-es-rUS/strings.xml
+++ b/java/com/android/contacts/common/res/values-es-rUS/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Escribe una nota para enviar con la llamada…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR Y LLAMAR"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Pestaña <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Pestaña <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementos no leídos. </item>
diff --git a/java/com/android/contacts/common/res/values-es/strings.xml b/java/com/android/contacts/common/res/values-es/strings.xml
index def7a44..b0956ec 100644
--- a/java/com/android/contacts/common/res/values-es/strings.xml
+++ b/java/com/android/contacts/common/res/values-es/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Escribe una nota para enviarla con la llamada..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR Y LLAMAR"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Pestaña <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Pestaña <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementos no leídos. </item>
diff --git a/java/com/android/contacts/common/res/values-et/strings.xml b/java/com/android/contacts/common/res/values-et/strings.xml
index c80d542..e152f59 100644
--- a/java/com/android/contacts/common/res/values-et/strings.xml
+++ b/java/com/android/contacts/common/res/values-et/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Sisestage märkus, mis koos kõnega saata ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SAADA JA HELISTA"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Vahekaart <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Vahekaart <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> lugemata üksust. </item>
diff --git a/java/com/android/contacts/common/res/values-eu/strings.xml b/java/com/android/contacts/common/res/values-eu/strings.xml
index 868d668..967b635 100644
--- a/java/com/android/contacts/common/res/values-eu/strings.xml
+++ b/java/com/android/contacts/common/res/values-eu/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Idatzi deiarekin batera bidali beharreko oharra…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"BIDALI ETA DEITU"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>: <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> fitxa."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> fitxa. Irakurri gabeko <xliff:g id="COUNT_3">%2$d</xliff:g> elementu. </item>
diff --git a/java/com/android/contacts/common/res/values-fa/strings.xml b/java/com/android/contacts/common/res/values-fa/strings.xml
index dda1064..3650e46 100644
--- a/java/com/android/contacts/common/res/values-fa/strings.xml
+++ b/java/com/android/contacts/common/res/values-fa/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"یادداشتی بنویسید که همراه تماس ارسال شود…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ارسال و تماس"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / ‏<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"برگه «<xliff:g id="TITLE">%1$s</xliff:g>»."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> برگه «<xliff:g id="TITLE_2">%1$s</xliff:g>». <xliff:g id="COUNT_3">%2$d</xliff:g> مورد خوانده‌نشده. </item>
diff --git a/java/com/android/contacts/common/res/values-fi/strings.xml b/java/com/android/contacts/common/res/values-fi/strings.xml
index b8065b2..b7739de 100644
--- a/java/com/android/contacts/common/res/values-fi/strings.xml
+++ b/java/com/android/contacts/common/res/values-fi/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Kirjoita muistiinpano lähetettäväksi puhelun kanssa…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"LÄHETÄ JA SOITA"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-välilehti."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-välilehti. <xliff:g id="COUNT_3">%2$d</xliff:g> lukematonta kohdetta. </item>
diff --git a/java/com/android/contacts/common/res/values-fr-rCA/strings.xml b/java/com/android/contacts/common/res/values-fr-rCA/strings.xml
index 82f5492..c20b882 100644
--- a/java/com/android/contacts/common/res/values-fr-rCA/strings.xml
+++ b/java/com/android/contacts/common/res/values-fr-rCA/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Tapez une note à envoyer avec l\'appel..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVOYER ET APPELER"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> : <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Onglet <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Onglet <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> élément non lu. </item>
diff --git a/java/com/android/contacts/common/res/values-fr/strings.xml b/java/com/android/contacts/common/res/values-fr/strings.xml
index 474d721..93b52dc 100644
--- a/java/com/android/contacts/common/res/values-fr/strings.xml
+++ b/java/com/android/contacts/common/res/values-fr/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Saisissez une note pour accompagner l\'appel..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVOYER ET APPELER"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Onglet <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Onglet <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> élément non lu. </item>
diff --git a/java/com/android/contacts/common/res/values-gl/strings.xml b/java/com/android/contacts/common/res/values-gl/strings.xml
index 4a3262a..4aa1fc1 100644
--- a/java/com/android/contacts/common/res/values-gl/strings.xml
+++ b/java/com/android/contacts/common/res/values-gl/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Escribe unha nota para enviala coa chamada…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E CHAMAR"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Pestana <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Pestana <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementos non lidos. </item>
diff --git a/java/com/android/contacts/common/res/values-gu/strings.xml b/java/com/android/contacts/common/res/values-gu/strings.xml
index 536aceb..8bbfb3a 100644
--- a/java/com/android/contacts/common/res/values-gu/strings.xml
+++ b/java/com/android/contacts/common/res/values-gu/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"કૉલ સાથે મોકલવા માટે એક નોંધ લખો ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"મોકલો અને કૉલ કરો"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ટૅબ."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ટૅબ. <xliff:g id="COUNT_3">%2$d</xliff:g> વાંચ્યા વગરની આઇટમ. </item>
diff --git a/java/com/android/contacts/common/res/values-hi/strings.xml b/java/com/android/contacts/common/res/values-hi/strings.xml
index c61e195..c1af9b7 100644
--- a/java/com/android/contacts/common/res/values-hi/strings.xml
+++ b/java/com/android/contacts/common/res/values-hi/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"कॉल के साथ भेजने के लिए नोट लिखें ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"भेजें और कॉल करें"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> टैब."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> टैब. <xliff:g id="COUNT_3">%2$d</xliff:g> नहीं पढ़े गए आइटम. </item>
diff --git a/java/com/android/contacts/common/res/values-hr/strings.xml b/java/com/android/contacts/common/res/values-hr/strings.xml
index 66986dd..a60c884 100644
--- a/java/com/android/contacts/common/res/values-hr/strings.xml
+++ b/java/com/android/contacts/common/res/values-hr/strings.xml
@@ -249,7 +249,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Napišite bilješku koju ćete poslati uz poziv..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"POŠALJI I NAZOVI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Kartica <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Kartica <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item>
diff --git a/java/com/android/contacts/common/res/values-hu/strings.xml b/java/com/android/contacts/common/res/values-hu/strings.xml
index 22bf509..19fbbe8 100644
--- a/java/com/android/contacts/common/res/values-hu/strings.xml
+++ b/java/com/android/contacts/common/res/values-hu/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Írjon üzenetet, amelyet elküldhetünk a hívással együtt…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"KÜLDÉS ÉS HÍVÁS"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="LIMIT">%2$s</xliff:g>/<xliff:g id="COUNT">%1$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> lap."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> lap. <xliff:g id="COUNT_3">%2$d</xliff:g> olvasatlan elem. </item>
diff --git a/java/com/android/contacts/common/res/values-hy/strings.xml b/java/com/android/contacts/common/res/values-hy/strings.xml
index 85c9023..b3ed5e5 100644
--- a/java/com/android/contacts/common/res/values-hy/strings.xml
+++ b/java/com/android/contacts/common/res/values-hy/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Մուտքագրեք նշում՝ զանգի հետ ուղարկելու համար ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ՈՒՂԱՐԿԵԼ ԵՎ ԶԱՆԳԵԼ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ներդիր:"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-in/strings.xml b/java/com/android/contacts/common/res/values-in/strings.xml
index d7ee8bf..13252a5 100644
--- a/java/com/android/contacts/common/res/values-in/strings.xml
+++ b/java/com/android/contacts/common/res/values-in/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Ketik catatan untuk dikirim dengan panggilan telepon ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"KIRIM &amp; TELEPON"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Tab <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Tab <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> item belum dibaca. </item>
diff --git a/java/com/android/contacts/common/res/values-is/strings.xml b/java/com/android/contacts/common/res/values-is/strings.xml
index 26c1aef..569c10f 100644
--- a/java/com/android/contacts/common/res/values-is/strings.xml
+++ b/java/com/android/contacts/common/res/values-is/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Sláðu inn texta til að senda með símtalinu..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SENDA OG HRINGJA"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Flipinn <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Flipinn <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ólesið atriði. </item>
diff --git a/java/com/android/contacts/common/res/values-it/strings.xml b/java/com/android/contacts/common/res/values-it/strings.xml
index 8ea5648..342cd61 100644
--- a/java/com/android/contacts/common/res/values-it/strings.xml
+++ b/java/com/android/contacts/common/res/values-it/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Digita una nota da inviare con la chiamata..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"INVIA E CHIAMA"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Scheda <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Scheda <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementi da leggere. </item>
diff --git a/java/com/android/contacts/common/res/values-iw/strings.xml b/java/com/android/contacts/common/res/values-iw/strings.xml
index 2a6b2c1..e0d8e5d 100644
--- a/java/com/android/contacts/common/res/values-iw/strings.xml
+++ b/java/com/android/contacts/common/res/values-iw/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"הקלד הערה לשליחה עם השיחה..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"שלח והתקשר"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"‎<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>‎"</string>
     <string name="tab_title" msgid="3387876802026074288">"הכרטיסייה <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="two">הכרטיסייה <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> פריטים שלא נקראו. </item>
diff --git a/java/com/android/contacts/common/res/values-ja/strings.xml b/java/com/android/contacts/common/res/values-ja/strings.xml
index 3271b46..e224a38 100644
--- a/java/com/android/contacts/common/res/values-ja/strings.xml
+++ b/java/com/android/contacts/common/res/values-ja/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"発信時に送信するメモを入力..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"送信 / 通話"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g>、<xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> タブ。"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> タブ。<xliff:g id="COUNT_3">%2$d</xliff:g> 件の未読項目。</item>
diff --git a/java/com/android/contacts/common/res/values-ka/strings.xml b/java/com/android/contacts/common/res/values-ka/strings.xml
index ebbee6e..86273b3 100644
--- a/java/com/android/contacts/common/res/values-ka/strings.xml
+++ b/java/com/android/contacts/common/res/values-ka/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"აკრიფეთ შენიშვნა ზართან ერთად გასაგზავნად ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"გაგზავნა და დარეკვა"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ცხრ."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ცხრ. <xliff:g id="COUNT_3">%2$d</xliff:g> წაუკითხავი ერთეული. </item>
diff --git a/java/com/android/contacts/common/res/values-kk/strings.xml b/java/com/android/contacts/common/res/values-kk/strings.xml
index 327532a..45df334 100644
--- a/java/com/android/contacts/common/res/values-kk/strings.xml
+++ b/java/com/android/contacts/common/res/values-kk/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Қоңыраумен жіберу үшін ескертпе теріңіз ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ЖІБЕРУ ЖӘНЕ ҚОҢЫРАУ ШАЛУ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> қойындысы."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> қойындысы. <xliff:g id="COUNT_3">%2$d</xliff:g> оқылмаған элемент. </item>
diff --git a/java/com/android/contacts/common/res/values-km/strings.xml b/java/com/android/contacts/common/res/values-km/strings.xml
index 5030167..8d4ba2a 100644
--- a/java/com/android/contacts/common/res/values-km/strings.xml
+++ b/java/com/android/contacts/common/res/values-km/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"វាយបញ្ចូលចំណាំដែលត្រូវផ្ញើជាមួយការហៅទូរស័ព្ទ ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ផ្ញើ &amp; ហៅ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"ផ្ទាំង <xliff:g id="TITLE">%1$s</xliff:g>។"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">ផ្ទាំង <xliff:g id="TITLE_2">%1$s</xliff:g>។ ធាតុមិនទាន់​អាន <xliff:g id="COUNT_3">%2$d</xliff:g> </item>
diff --git a/java/com/android/contacts/common/res/values-kn/strings.xml b/java/com/android/contacts/common/res/values-kn/strings.xml
index 446e078..0dfdaa6 100644
--- a/java/com/android/contacts/common/res/values-kn/strings.xml
+++ b/java/com/android/contacts/common/res/values-kn/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"ಕರೆ ಕಳುಹಿಸಲು ಟಿಪ್ಪಣಿಯನ್ನು ಟೈಪ್ ಮಾಡಿ ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ಕಳುಹಿಸು ಮತ್ತು ಕರೆಮಾಡು"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ಟ್ಯಾಬ್."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ಟ್ಯಾಬ್. <xliff:g id="COUNT_3">%2$d</xliff:g> ಓದದಿರುವ ಐಟಂಗಳು. </item>
diff --git a/java/com/android/contacts/common/res/values-ko/strings.xml b/java/com/android/contacts/common/res/values-ko/strings.xml
index 4c2bd4f..13edcc1 100644
--- a/java/com/android/contacts/common/res/values-ko/strings.xml
+++ b/java/com/android/contacts/common/res/values-ko/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"통화에 함께 전송할 메모를 입력하세요..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"보내기 및 전화 걸기"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> 탭"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> 탭. 읽지 않은 항목 <xliff:g id="COUNT_3">%2$d</xliff:g>개 </item>
diff --git a/java/com/android/contacts/common/res/values-ky/strings.xml b/java/com/android/contacts/common/res/values-ky/strings.xml
index e5bab45..43e12e7 100644
--- a/java/com/android/contacts/common/res/values-ky/strings.xml
+++ b/java/com/android/contacts/common/res/values-ky/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Чалуу менен жөнөтүлө турган кыска жазууну териңиз …"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ЖӨНӨТҮҮ ЖАНА ЧАЛУУ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"\"<xliff:g id="TITLE">%1$s</xliff:g>\" өтмөгү."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> \"<xliff:g id="TITLE_2">%1$s</xliff:g>\" өтмөгү. <xliff:g id="COUNT_3">%2$d</xliff:g> нерсе окула элек. </item>
diff --git a/java/com/android/contacts/common/res/values-lo/strings.xml b/java/com/android/contacts/common/res/values-lo/strings.xml
index c649539..d98ec8b 100644
--- a/java/com/android/contacts/common/res/values-lo/strings.xml
+++ b/java/com/android/contacts/common/res/values-lo/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"ພິມ​ບັນ​ທຶກ ເພື່ອ​ສົ່ງ​ກັບ​ການ​ໂທ ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ສົ່ງ ແລະ ໂທ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"ແຖບ <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">ແຖບ <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ລາຍການບໍ່ທັນໄດ້ອ່ານ. </item>
diff --git a/java/com/android/contacts/common/res/values-lt/strings.xml b/java/com/android/contacts/common/res/values-lt/strings.xml
index b74bd99..53773b2 100644
--- a/java/com/android/contacts/common/res/values-lt/strings.xml
+++ b/java/com/android/contacts/common/res/values-lt/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Įveskite užrašą, kurį galima išsiųsti skambinant..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SIŲSTI IR SKAMBINTI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Skirtukas „<xliff:g id="TITLE">%1$s</xliff:g>“."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Skirtukas „<xliff:g id="TITLE_2">%1$s</xliff:g>“. <xliff:g id="COUNT_3">%2$d</xliff:g> neskaitytas elementas. </item>
diff --git a/java/com/android/contacts/common/res/values-lv/strings.xml b/java/com/android/contacts/common/res/values-lv/strings.xml
index c09a27f..cc56901 100644
--- a/java/com/android/contacts/common/res/values-lv/strings.xml
+++ b/java/com/android/contacts/common/res/values-lv/strings.xml
@@ -249,7 +249,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Ierakstiet piezīmi, ko nosūtīt ar zvanu..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SŪTĪT UN ZVANĪT"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> no <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>: <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Cilne “<xliff:g id="TITLE">%1$s</xliff:g>”"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="zero"> Cilne “<xliff:g id="TITLE_2">%1$s</xliff:g>”. <xliff:g id="COUNT_3">%2$d</xliff:g> nelasīti vienumi. </item>
diff --git a/java/com/android/contacts/common/res/values-mk/strings.xml b/java/com/android/contacts/common/res/values-mk/strings.xml
index da1530f..f6a4af8 100644
--- a/java/com/android/contacts/common/res/values-mk/strings.xml
+++ b/java/com/android/contacts/common/res/values-mk/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Напишете белешка да се испрати со повикот..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ИСПРАТИ И ПОВИКАЈ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Картичка <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Картичка <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитана ставка. </item>
diff --git a/java/com/android/contacts/common/res/values-ml/strings.xml b/java/com/android/contacts/common/res/values-ml/strings.xml
index 7e92749..dfc21ff 100644
--- a/java/com/android/contacts/common/res/values-ml/strings.xml
+++ b/java/com/android/contacts/common/res/values-ml/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"കോളിനൊപ്പം അയയ്ക്കുന്നതിന് ഒരു കുറിപ്പ് ടൈപ്പുചെയ്യുക ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"അയയ്‌ക്കുകയും വിളിക്കുകയും ചെയ്യുക"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ടാബ്."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ടാബ്. <xliff:g id="COUNT_3">%2$d</xliff:g> വായിക്കാത്ത ഇനങ്ങൾ. </item>
diff --git a/java/com/android/contacts/common/res/values-mn/strings.xml b/java/com/android/contacts/common/res/values-mn/strings.xml
index f0a8c92..a5c2afd 100644
--- a/java/com/android/contacts/common/res/values-mn/strings.xml
+++ b/java/com/android/contacts/common/res/values-mn/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Дуудлаганд илгээх тэмдэглэл бичнэ үү..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ИЛГЭЭХ, ДУУДЛАГА"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> таб."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> таб. <xliff:g id="COUNT_3">%2$d</xliff:g> уншаагүй зүйл. </item>
diff --git a/java/com/android/contacts/common/res/values-mr/strings.xml b/java/com/android/contacts/common/res/values-mr/strings.xml
index 96504c7..d632bb1 100644
--- a/java/com/android/contacts/common/res/values-mr/strings.xml
+++ b/java/com/android/contacts/common/res/values-mr/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"कॉलसह पाठविण्‍यासाठी एक टीप टाइप करा..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"पाठवा आणि कॉल करा"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> टॅब."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> टॅब. <xliff:g id="COUNT_3">%2$d</xliff:g> न वाचलेला आयटम. </item>
diff --git a/java/com/android/contacts/common/res/values-ms/strings.xml b/java/com/android/contacts/common/res/values-ms/strings.xml
index 60d2b7a..24ff737 100644
--- a/java/com/android/contacts/common/res/values-ms/strings.xml
+++ b/java/com/android/contacts/common/res/values-ms/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Taip nota untuk dihantar dengan panggilan…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"HANTAR &amp; PANGGIL"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Tab <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">Tab <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> item belum dibaca. </item>
diff --git a/java/com/android/contacts/common/res/values-my/strings.xml b/java/com/android/contacts/common/res/values-my/strings.xml
index d81e895..c0cb020 100644
--- a/java/com/android/contacts/common/res/values-my/strings.xml
+++ b/java/com/android/contacts/common/res/values-my/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"ခေါ်ဆိုမှုဖြင့် ပေးပို့ရန် မှတ်စုတစ်ခု ရိုက်ပါ ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ပေးပို့ပြီး ခေါ်ပါ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> တဘ်။"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> တဘ်။ မဖတ်ရသေးသည့် အရာ <xliff:g id="COUNT_3">%2$d</xliff:g> ခု။ </item>
diff --git a/java/com/android/contacts/common/res/values-nb/strings.xml b/java/com/android/contacts/common/res/values-nb/strings.xml
index 7085cb3..80507fc 100644
--- a/java/com/android/contacts/common/res/values-nb/strings.xml
+++ b/java/com/android/contacts/common/res/values-nb/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Skriv et notat du vil sende med anropet …"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SEND OG RING"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-fanen."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-fanen. <xliff:g id="COUNT_3">%2$d</xliff:g> uleste elementer. </item>
diff --git a/java/com/android/contacts/common/res/values-ne/strings.xml b/java/com/android/contacts/common/res/values-ne/strings.xml
index 1f54232..2459c8a 100644
--- a/java/com/android/contacts/common/res/values-ne/strings.xml
+++ b/java/com/android/contacts/common/res/values-ne/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"यस कलसँग पठाउन एक टिप्पणी  टाइप गर्नुहोस्"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"पठाउनुहोस् र कल गर्नुहोस्"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ट्याब।"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ट्याब। <xliff:g id="COUNT_3">%2$d</xliff:g> नपढिएका वस्तुहरू। </item>
diff --git a/java/com/android/contacts/common/res/values-nl/strings.xml b/java/com/android/contacts/common/res/values-nl/strings.xml
index 9d41899..c92249b 100644
--- a/java/com/android/contacts/common/res/values-nl/strings.xml
+++ b/java/com/android/contacts/common/res/values-nl/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Typ een notitie om te verzenden met de oproep..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"VERZENDEN EN BELLEN"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Tabblad <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">Tabblad <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ongelezen items. </item>
diff --git a/java/com/android/contacts/common/res/values-no/strings.xml b/java/com/android/contacts/common/res/values-no/strings.xml
index 7085cb3..80507fc 100644
--- a/java/com/android/contacts/common/res/values-no/strings.xml
+++ b/java/com/android/contacts/common/res/values-no/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Skriv et notat du vil sende med anropet …"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SEND OG RING"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-fanen."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-fanen. <xliff:g id="COUNT_3">%2$d</xliff:g> uleste elementer. </item>
diff --git a/java/com/android/contacts/common/res/values-pa/strings.xml b/java/com/android/contacts/common/res/values-pa/strings.xml
index c96510c..6401993 100644
--- a/java/com/android/contacts/common/res/values-pa/strings.xml
+++ b/java/com/android/contacts/common/res/values-pa/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"ਕਾਲ ਦੇ ਨਾਲ ਭੇਜਣ ਲਈ ਕੋਈ ਨੋਟ ਟਾਈਪ ਕਰੋ ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ਭੇਜੋ ਅਤੇ ਕਾਲ ਕਰੋ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ਟੈਬ।"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ਟੈਬ। <xliff:g id="COUNT_3">%2$d</xliff:g> ਅਣ-ਪੜ੍ਹੀਆਂ ਆਈਟਮਾਂ। </item>
diff --git a/java/com/android/contacts/common/res/values-pl/strings.xml b/java/com/android/contacts/common/res/values-pl/strings.xml
index c4e65f5..c10bb1f 100644
--- a/java/com/android/contacts/common/res/values-pl/strings.xml
+++ b/java/com/android/contacts/common/res/values-pl/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Wpisz notatkę, którą chcesz wysłać razem z połączeniem..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"WYŚLIJ I ZADZWOŃ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Karta <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="few"> Karta <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nieprzeczytane elementy. </item>
diff --git a/java/com/android/contacts/common/res/values-pt-rBR/strings.xml b/java/com/android/contacts/common/res/values-pt-rBR/strings.xml
index ee2b87c..95bbb0b 100644
--- a/java/com/android/contacts/common/res/values-pt-rBR/strings.xml
+++ b/java/com/android/contacts/common/res/values-pt-rBR/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Escreva uma nota para enviar com a chamada..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E LIGAR"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Guia \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one">Guia \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> item não lido. </item>
diff --git a/java/com/android/contacts/common/res/values-pt-rPT/strings.xml b/java/com/android/contacts/common/res/values-pt-rPT/strings.xml
index 44bba14..c3b50e0 100644
--- a/java/com/android/contacts/common/res/values-pt-rPT/strings.xml
+++ b/java/com/android/contacts/common/res/values-pt-rPT/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Escrever uma nota para enviar com a chamada..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E LIGAR"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Separador <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-pt/strings.xml b/java/com/android/contacts/common/res/values-pt/strings.xml
index ee2b87c..95bbb0b 100644
--- a/java/com/android/contacts/common/res/values-pt/strings.xml
+++ b/java/com/android/contacts/common/res/values-pt/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Escreva uma nota para enviar com a chamada..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E LIGAR"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Guia \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one">Guia \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> item não lido. </item>
diff --git a/java/com/android/contacts/common/res/values-ro/strings.xml b/java/com/android/contacts/common/res/values-ro/strings.xml
index 358e7af..da0d5da 100644
--- a/java/com/android/contacts/common/res/values-ro/strings.xml
+++ b/java/com/android/contacts/common/res/values-ro/strings.xml
@@ -249,7 +249,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Introduceți o notă ca să o trimiteți împreună cu apelul..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"TRIMITEȚI ȘI APELAȚI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Fila <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="few"> Fila <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elemente necitite. </item>
diff --git a/java/com/android/contacts/common/res/values-ru/strings.xml b/java/com/android/contacts/common/res/values-ru/strings.xml
index 3442f2c..f4e1d84 100644
--- a/java/com/android/contacts/common/res/values-ru/strings.xml
+++ b/java/com/android/contacts/common/res/values-ru/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Введите текст…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ОТПРАВИТЬ И ПОЗВОНИТЬ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Вкладка \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one">Вкладка <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитанный элемент. </item>
diff --git a/java/com/android/contacts/common/res/values-si/strings.xml b/java/com/android/contacts/common/res/values-si/strings.xml
index 72ca32d..fc121f6 100644
--- a/java/com/android/contacts/common/res/values-si/strings.xml
+++ b/java/com/android/contacts/common/res/values-si/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"ඇමතුම සමග යැවීමට සටහනක් ටයිප් කරන්න ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"යවන්න සහ අමතන්න"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ටැබය."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ටැබය. නොකියවූ අයිතම <xliff:g id="COUNT_3">%2$d</xliff:g>. </item>
diff --git a/java/com/android/contacts/common/res/values-sk/strings.xml b/java/com/android/contacts/common/res/values-sk/strings.xml
index b85f63f..90a4752 100644
--- a/java/com/android/contacts/common/res/values-sk/strings.xml
+++ b/java/com/android/contacts/common/res/values-sk/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Napíšte poznámku, ktorá sa odošle s hovorom..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ODOSLAŤ A VOLAŤ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Karta <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="few"> Karta <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> neprečítané položky. </item>
diff --git a/java/com/android/contacts/common/res/values-sl/strings.xml b/java/com/android/contacts/common/res/values-sl/strings.xml
index f4c39de..ef2e1a3 100644
--- a/java/com/android/contacts/common/res/values-sl/strings.xml
+++ b/java/com/android/contacts/common/res/values-sl/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Vnesite zapisek, ki ga želite poslati s klicem ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"POŠLJI IN KLIČI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>: <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Zavihek »<xliff:g id="TITLE">%1$s</xliff:g>«."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Zavihek »<xliff:g id="TITLE_2">%1$s</xliff:g>«. <xliff:g id="COUNT_3">%2$d</xliff:g> neprebran element. </item>
diff --git a/java/com/android/contacts/common/res/values-sq/strings.xml b/java/com/android/contacts/common/res/values-sq/strings.xml
index 553c46d..3011492 100644
--- a/java/com/android/contacts/common/res/values-sq/strings.xml
+++ b/java/com/android/contacts/common/res/values-sq/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Shkruaj një shënim për të dërguar një telefonatë..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"DËRGO DHE TELEFONO"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Skeda <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Skeda <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> artikuj të palexuar. </item>
diff --git a/java/com/android/contacts/common/res/values-sr/strings.xml b/java/com/android/contacts/common/res/values-sr/strings.xml
index 99997e6..25adf7b 100644
--- a/java/com/android/contacts/common/res/values-sr/strings.xml
+++ b/java/com/android/contacts/common/res/values-sr/strings.xml
@@ -249,7 +249,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Унесите белешку коју ћете послати уз позив..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ПОШАЉИ И ПОЗОВИ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Картица <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Картица <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитана ставка. </item>
diff --git a/java/com/android/contacts/common/res/values-sv/strings.xml b/java/com/android/contacts/common/res/values-sv/strings.xml
index 79e56e5..ee748a4 100644
--- a/java/com/android/contacts/common/res/values-sv/strings.xml
+++ b/java/com/android/contacts/common/res/values-sv/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Gör en anteckning som skickas när du ringer …"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"SKICKA OCH RING"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Fliken <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">Fliken <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> olästa poster. </item>
diff --git a/java/com/android/contacts/common/res/values-sw/strings.xml b/java/com/android/contacts/common/res/values-sw/strings.xml
index 4d30271..7bd0835 100644
--- a/java/com/android/contacts/common/res/values-sw/strings.xml
+++ b/java/com/android/contacts/common/res/values-sw/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Andika dokezo litakaloambatana na simu utakayopiga ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"TUMA na UPIGE SIMU"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Kichupo cha <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Kichupo cha <xliff:g id="TITLE_2">%1$s</xliff:g>. Vipengee <xliff:g id="COUNT_3">%2$d</xliff:g> havijasomwa. </item>
diff --git a/java/com/android/contacts/common/res/values-ta/strings.xml b/java/com/android/contacts/common/res/values-ta/strings.xml
index e041a99..d5b3f93 100644
--- a/java/com/android/contacts/common/res/values-ta/strings.xml
+++ b/java/com/android/contacts/common/res/values-ta/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"அழைப்புடன் சேர்த்து அனுப்ப, குறிப்பை உள்ளிடவும்..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"அனுப்பி அழை"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> தாவல்."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> தாவல். படிக்காதவை (<xliff:g id="COUNT_3">%2$d</xliff:g>). </item>
diff --git a/java/com/android/contacts/common/res/values-te/strings.xml b/java/com/android/contacts/common/res/values-te/strings.xml
index 6dd0e21..4126ddc 100644
--- a/java/com/android/contacts/common/res/values-te/strings.xml
+++ b/java/com/android/contacts/common/res/values-te/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"కాల్‌తో పాటు పంపడానికి గమనికను టైప్ చేయండి ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"పంపు &amp; కాల్ చేయి"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ట్యాబ్."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ట్యాబ్. <xliff:g id="COUNT_3">%2$d</xliff:g> చదవని అంశాలు. </item>
diff --git a/java/com/android/contacts/common/res/values-th/strings.xml b/java/com/android/contacts/common/res/values-th/strings.xml
index b979e74..2d52f34 100644
--- a/java/com/android/contacts/common/res/values-th/strings.xml
+++ b/java/com/android/contacts/common/res/values-th/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"พิมพ์โน้ตเพื่อส่งพร้อมการโทร ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ส่งและโทร"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"แท็บ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> แท็บ <xliff:g id="TITLE_2">%1$s</xliff:g> ยังไม่อ่าน <xliff:g id="COUNT_3">%2$d</xliff:g> รายการ </item>
diff --git a/java/com/android/contacts/common/res/values-tl/strings.xml b/java/com/android/contacts/common/res/values-tl/strings.xml
index 62caef8..30978db 100644
--- a/java/com/android/contacts/common/res/values-tl/strings.xml
+++ b/java/com/android/contacts/common/res/values-tl/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Mag-type ng isang tala na ipadadala kasama ng tawag ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"IPADALA AT TAWAGAN"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Tab ng <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Tab ng <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> hindi pa nababasang item. </item>
diff --git a/java/com/android/contacts/common/res/values-tr/strings.xml b/java/com/android/contacts/common/res/values-tr/strings.xml
index ce3c109..c18097a 100644
--- a/java/com/android/contacts/common/res/values-tr/strings.xml
+++ b/java/com/android/contacts/common/res/values-tr/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Çağrıyla göndermek için bir not yazın..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"GÖNDER VE ARA"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> sekmesi."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> sekmesi. <xliff:g id="COUNT_3">%2$d</xliff:g> okunmamış öğe. </item>
diff --git a/java/com/android/contacts/common/res/values-uk/strings.xml b/java/com/android/contacts/common/res/values-uk/strings.xml
index f6d1e47..94d09db 100644
--- a/java/com/android/contacts/common/res/values-uk/strings.xml
+++ b/java/com/android/contacts/common/res/values-uk/strings.xml
@@ -250,7 +250,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Введіть нотатку, яку хочете надіслати під час дзвінка…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"ЗАТЕЛЕФОНУВАТИ Й НАДІСЛАТИ"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> з <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Вкладка \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"> Вкладка \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитаний елемент. </item>
diff --git a/java/com/android/contacts/common/res/values-ur/strings.xml b/java/com/android/contacts/common/res/values-ur/strings.xml
index b34c78d..75c761f 100644
--- a/java/com/android/contacts/common/res/values-ur/strings.xml
+++ b/java/com/android/contacts/common/res/values-ur/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"کال کے ساتھ بھیجنے کیلئے ایک نوٹ ٹائپ کریں…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"بھیجیں اور کال کریں"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ٹیب۔"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ٹیب۔ <xliff:g id="COUNT_3">%2$d</xliff:g> بغیر پڑھی ہوئی آئٹمز۔ </item>
diff --git a/java/com/android/contacts/common/res/values-uz/strings.xml b/java/com/android/contacts/common/res/values-uz/strings.xml
index 44bfd99..69b07d1 100644
--- a/java/com/android/contacts/common/res/values-uz/strings.xml
+++ b/java/com/android/contacts/common/res/values-uz/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Qo‘ng‘iroqqa qo‘shib yuborish uchun izoh yozing ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"YUBORISH va QO‘NG‘IROQ QILISH"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ichki oynasi."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ichki oynasi. <xliff:g id="COUNT_3">%2$d</xliff:g> ta o‘qilmagan narsa. </item>
diff --git a/java/com/android/contacts/common/res/values-vi/strings.xml b/java/com/android/contacts/common/res/values-vi/strings.xml
index dadb78a..c167573 100644
--- a/java/com/android/contacts/common/res/values-vi/strings.xml
+++ b/java/com/android/contacts/common/res/values-vi/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Nhập ghi chú để gửi kèm cuộc gọi..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"GỬI và GỌI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"Tab <xliff:g id="TITLE">%1$s</xliff:g>."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> Tab <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> mục chưa đọc. </item>
diff --git a/java/com/android/contacts/common/res/values-zh-rCN/strings.xml b/java/com/android/contacts/common/res/values-zh-rCN/strings.xml
index 161638e..367b78f 100644
--- a/java/com/android/contacts/common/res/values-zh-rCN/strings.xml
+++ b/java/com/android/contacts/common/res/values-zh-rCN/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"输入要在拨打电话时发送的备注…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"发送并拨打电话"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>：<xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>标签。"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>标签。<xliff:g id="COUNT_3">%2$d</xliff:g> 项未读内容。</item>
diff --git a/java/com/android/contacts/common/res/values-zh-rHK/strings.xml b/java/com/android/contacts/common/res/values-zh-rHK/strings.xml
index 9952ab6..733d980 100644
--- a/java/com/android/contacts/common/res/values-zh-rHK/strings.xml
+++ b/java/com/android/contacts/common/res/values-zh-rHK/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"撥號時可以書寫和傳送筆記…"</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"傳送和撥號"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"「<xliff:g id="TITLE">%1$s</xliff:g>」標籤。"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other">「<xliff:g id="TITLE_2">%1$s</xliff:g>」標籤 (<xliff:g id="COUNT_3">%2$d</xliff:g> 個未讀取項目)。</item>
diff --git a/java/com/android/contacts/common/res/values-zh-rTW/strings.xml b/java/com/android/contacts/common/res/values-zh-rTW/strings.xml
index e5ad61f..af7843f 100644
--- a/java/com/android/contacts/common/res/values-zh-rTW/strings.xml
+++ b/java/com/android/contacts/common/res/values-zh-rTW/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"輸入可在撥號時傳送的備註..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"傳送並撥打"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>分頁。"</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>分頁。<xliff:g id="COUNT_3">%2$d</xliff:g> 個未讀項目。</item>
diff --git a/java/com/android/contacts/common/res/values-zu/strings.xml b/java/com/android/contacts/common/res/values-zu/strings.xml
index adca139..5906ee1 100644
--- a/java/com/android/contacts/common/res/values-zu/strings.xml
+++ b/java/com/android/contacts/common/res/values-zu/strings.xml
@@ -248,7 +248,7 @@
     <string name="call_subject_hint" msgid="7233138753650420800">"Thayipha inothi ukuthumela nekholi ..."</string>
     <string name="send_and_call_button" msgid="4735168294120154013">"THUMELA FUTHI YENZA IKHOLI"</string>
     <string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
-    <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+    <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ithebhu."</string>
     <plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
       <item quantity="one"><xliff:g id="TITLE_2">%1$s</xliff:g> ithebhu. <xliff:g id="COUNT_3">%2$d</xliff:g> izinto ezingafundiwe. </item>
diff --git a/java/com/android/contacts/common/res/values/ids.xml b/java/com/android/contacts/common/res/values/ids.xml
index 871f5a6..65969c4 100644
--- a/java/com/android/contacts/common/res/values/ids.xml
+++ b/java/com/android/contacts/common/res/values/ids.xml
@@ -27,4 +27,5 @@
 
   <item name="contact_tile_image" type="id"/>
   <item name="contact_tile_name" type="id"/>
+  <item name="call_to_action" type="id"/>
 </resources>
diff --git a/java/com/android/contacts/common/res/values/strings.xml b/java/com/android/contacts/common/res/values/strings.xml
index 9ac9fef..371d5b4 100644
--- a/java/com/android/contacts/common/res/values/strings.xml
+++ b/java/com/android/contacts/common/res/values/strings.xml
@@ -744,9 +744,9 @@
        compared to the character limit.  Example: 2 / 64 -->
   <string name="call_subject_limit"><xliff:g example="4" id="count">%1$s</xliff:g> / <xliff:g example="64" id="limit">%2$s</xliff:g></string>
 
-  <!-- String used to build a phone number bype and phone number string.
-       Example: Mobile • 650-555-1212  -->
-  <string name="call_subject_type_and_number"><xliff:g example="Mobile" id="type">%1$s</xliff:g> • <xliff:g example="(650) 555-1212" id="number">%2$s</xliff:g></string>
+  <!-- String used to build a phone number type and phone number string.
+       Example: Mobile 650-555-1212  -->
+  <string name="call_subject_type_and_number"><xliff:g example="Mobile" id="type">%1$s</xliff:g> <xliff:g example="(650) 555-1212" id="number">%2$s</xliff:g></string>
 
   <!-- String format to describe a tab e.g.call history tab. -->
   <string name="tab_title"><xliff:g id="title">%1$s</xliff:g> tab.</string>
diff --git a/java/com/android/contacts/common/res/values/styles.xml b/java/com/android/contacts/common/res/values/styles.xml
index 07d4a02..bb19afe 100644
--- a/java/com/android/contacts/common/res/values/styles.xml
+++ b/java/com/android/contacts/common/res/values/styles.xml
@@ -43,7 +43,6 @@
     <item name="android:layout_height">wrap_content</item>
     <!-- See comments for @dimen/list_section_divider_min_height -->
     <item name="android:minHeight">@dimen/list_section_divider_min_height</item>
-    <item name="android:background">@drawable/list_section_divider_holo_custom</item>
     <item name="android:textAppearance">@style/DirectoryHeaderStyle</item>
     <item name="android:gravity">center_vertical</item>
     <item name="android:paddingLeft">8dip</item>
diff --git a/java/com/android/contacts/common/util/AccountFilterUtil.java b/java/com/android/contacts/common/util/AccountFilterUtil.java
index 18743c6..25f937c 100644
--- a/java/com/android/contacts/common/util/AccountFilterUtil.java
+++ b/java/com/android/contacts/common/util/AccountFilterUtil.java
@@ -16,35 +16,15 @@
 
 package com.android.contacts.common.util;
 
-import android.app.Activity;
 import android.content.Context;
-import android.content.Intent;
-import android.util.Log;
 import android.view.View;
 import android.widget.TextView;
 import com.android.contacts.common.R;
 import com.android.contacts.common.list.ContactListFilter;
-import com.android.contacts.common.list.ContactListFilterController;
 
 /** Utility class for account filter manipulation. */
 public class AccountFilterUtil {
 
-  public static final String EXTRA_CONTACT_LIST_FILTER = "contactListFilter";
-  private static final String TAG = AccountFilterUtil.class.getSimpleName();
-
-  /**
-   * Find TextView with the id "account_filter_header" and set correct text for the account filter
-   * header.
-   *
-   * @param filterContainer View containing TextView with id "account_filter_header"
-   * @return true when header text is set in the call. You may use this for conditionally showing or
-   *     hiding this entire view.
-   */
-  public static boolean updateAccountFilterTitleForPeople(
-      View filterContainer, ContactListFilter filter, boolean showTitleForAllAccounts) {
-    return updateAccountFilterTitle(filterContainer, filter, showTitleForAllAccounts, false);
-  }
-
   /**
    * Similar to {@link #updateAccountFilterTitleForPeople(View, ContactListFilter, boolean,
    * boolean)}, but for Phone UI.
@@ -78,8 +58,6 @@
         } else if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
           headerTextView.setText(R.string.listCustomView);
           textWasSet = true;
-        } else {
-          Log.w(TAG, "Filter type \"" + filter.filterType + "\" isn't expected.");
         }
       } else {
         if (filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) {
@@ -97,29 +75,9 @@
         } else if (filter.filterType == ContactListFilter.FILTER_TYPE_SINGLE_CONTACT) {
           headerTextView.setText(R.string.listSingleContact);
           textWasSet = true;
-        } else {
-          Log.w(TAG, "Filter type \"" + filter.filterType + "\" isn't expected.");
         }
       }
-    } else {
-      Log.w(TAG, "Filter is null.");
     }
     return textWasSet;
   }
-
-  /** This will update filter via a given ContactListFilterController. */
-  public static void handleAccountFilterResult(
-      ContactListFilterController filterController, int resultCode, Intent data) {
-    if (resultCode == Activity.RESULT_OK) {
-      final ContactListFilter filter = data.getParcelableExtra(EXTRA_CONTACT_LIST_FILTER);
-      if (filter == null) {
-        return;
-      }
-      if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
-        filterController.selectCustomFilter();
-      } else {
-        filterController.setContactListFilter(filter, true);
-      }
-    }
-  }
 }
diff --git a/java/com/android/contacts/common/util/BitmapUtil.java b/java/com/android/contacts/common/util/BitmapUtil.java
index 20f916a..51f65f2 100644
--- a/java/com/android/contacts/common/util/BitmapUtil.java
+++ b/java/com/android/contacts/common/util/BitmapUtil.java
@@ -24,8 +24,6 @@
 import android.graphics.PorterDuffXfermode;
 import android.graphics.Rect;
 import android.graphics.RectF;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
 
 /** Provides static functions to decode bitmaps at the optimal size */
 public class BitmapUtil {
@@ -91,30 +89,6 @@
   }
 
   /**
-   * Retrieves a copy of the specified drawable resource, rotated by a specified angle.
-   *
-   * @param resources The current resources.
-   * @param resourceId The resource ID of the drawable to rotate.
-   * @param angle The angle of rotation.
-   * @return Rotated drawable.
-   */
-  public static Drawable getRotatedDrawable(
-      android.content.res.Resources resources, int resourceId, float angle) {
-
-    // Get the original drawable and make a copy which will be rotated.
-    Bitmap original = BitmapFactory.decodeResource(resources, resourceId);
-    Bitmap rotated =
-        Bitmap.createBitmap(original.getWidth(), original.getHeight(), Bitmap.Config.ARGB_8888);
-
-    // Perform the rotation.
-    Canvas tempCanvas = new Canvas(rotated);
-    tempCanvas.rotate(angle, original.getWidth() / 2, original.getHeight() / 2);
-    tempCanvas.drawBitmap(original, 0, 0, null);
-
-    return new BitmapDrawable(resources, rotated);
-  }
-
-  /**
    * Given an input bitmap, scales it to the given width/height and makes it round.
    *
    * @param input {@link Bitmap} to scale and crop
diff --git a/java/com/android/contacts/common/util/ContactDisplayUtils.java b/java/com/android/contacts/common/util/ContactDisplayUtils.java
index 1586784..ff22f28 100644
--- a/java/com/android/contacts/common/util/ContactDisplayUtils.java
+++ b/java/com/android/contacts/common/util/ContactDisplayUtils.java
@@ -16,21 +16,20 @@
 
 package com.android.contacts.common.util;
 
-import static android.provider.ContactsContract.CommonDataKinds.Phone;
-
 import android.content.Context;
 import android.content.res.Resources;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.TextUtils;
 import android.text.style.TtsSpan;
-import android.util.Log;
 import android.util.Patterns;
 import com.android.contacts.common.R;
 import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
 import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.dialer.common.LogUtil;
 import java.util.Objects;
 
 /** Methods for handling various contact data labels. */
@@ -38,7 +37,6 @@
 
   public static final int INTERACTION_CALL = 1;
   public static final int INTERACTION_SMS = 2;
-  private static final String TAG = ContactDisplayUtils.class.getSimpleName();
 
   /**
    * Checks if the given data type is a custom type.
@@ -74,9 +72,9 @@
       } else {
         resId = getPhoneLabelResourceId(type);
         if (interactionType != INTERACTION_CALL) {
-          Log.e(
-              TAG,
-              "Un-recognized interaction type: "
+          LogUtil.e(
+              "ContactDisplayUtils.getLabelForCallOrSms",
+              "un-recognized interaction type: "
                   + interactionType
                   + ". Defaulting to ContactDisplayUtils.INTERACTION_CALL.");
         }
diff --git a/java/com/android/contacts/common/util/DateUtils.java b/java/com/android/contacts/common/util/DateUtils.java
index 1935d72..09d52bc 100644
--- a/java/com/android/contacts/common/util/DateUtils.java
+++ b/java/com/android/contacts/common/util/DateUtils.java
@@ -16,252 +16,11 @@
 
 package com.android.contacts.common.util;
 
-import android.content.Context;
-import android.text.format.DateFormat;
 import android.text.format.Time;
-import java.text.ParsePosition;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Locale;
-import java.util.TimeZone;
 
 /** Utility methods for processing dates. */
 public class DateUtils {
 
-  public static final TimeZone UTC_TIMEZONE = TimeZone.getTimeZone("UTC");
-
-  /**
-   * When parsing a date without a year, the system assumes 1970, which wasn't a leap-year. Let's
-   * add a one-off hack for that day of the year
-   */
-  public static final String NO_YEAR_DATE_FEB29TH = "--02-29";
-
-  // Variations of ISO 8601 date format.  Do not change the order - it does affect the
-  // result in ambiguous cases.
-  private static final SimpleDateFormat[] DATE_FORMATS = {
-    CommonDateUtils.FULL_DATE_FORMAT,
-    CommonDateUtils.DATE_AND_TIME_FORMAT,
-    new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'", Locale.US),
-    new SimpleDateFormat("yyyyMMdd", Locale.US),
-    new SimpleDateFormat("yyyyMMdd'T'HHmmssSSS'Z'", Locale.US),
-    new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'", Locale.US),
-    new SimpleDateFormat("yyyyMMdd'T'HHmm'Z'", Locale.US),
-  };
-
-  static {
-    for (SimpleDateFormat format : DATE_FORMATS) {
-      format.setLenient(true);
-      format.setTimeZone(UTC_TIMEZONE);
-    }
-    CommonDateUtils.NO_YEAR_DATE_FORMAT.setTimeZone(UTC_TIMEZONE);
-  }
-
-  /**
-   * Parses the supplied string to see if it looks like a date.
-   *
-   * @param string The string representation of the provided date
-   * @param mustContainYear If true, the string is parsed as a date containing a year. If false, the
-   *     string is parsed into a valid date even if the year field is missing.
-   * @return A Calendar object corresponding to the date if the string is successfully parsed. If
-   *     not, null is returned.
-   */
-  public static Calendar parseDate(String string, boolean mustContainYear) {
-    ParsePosition parsePosition = new ParsePosition(0);
-    Date date;
-    if (!mustContainYear) {
-      final boolean noYearParsed;
-      // Unfortunately, we can't parse Feb 29th correctly, so let's handle this day seperately
-      if (NO_YEAR_DATE_FEB29TH.equals(string)) {
-        return getUtcDate(0, Calendar.FEBRUARY, 29);
-      } else {
-        synchronized (CommonDateUtils.NO_YEAR_DATE_FORMAT) {
-          date = CommonDateUtils.NO_YEAR_DATE_FORMAT.parse(string, parsePosition);
-        }
-        noYearParsed = parsePosition.getIndex() == string.length();
-      }
-
-      if (noYearParsed) {
-        return getUtcDate(date, true);
-      }
-    }
-    for (int i = 0; i < DATE_FORMATS.length; i++) {
-      SimpleDateFormat f = DATE_FORMATS[i];
-      synchronized (f) {
-        parsePosition.setIndex(0);
-        date = f.parse(string, parsePosition);
-        if (parsePosition.getIndex() == string.length()) {
-          return getUtcDate(date, false);
-        }
-      }
-    }
-    return null;
-  }
-
-  private static final Calendar getUtcDate(Date date, boolean noYear) {
-    final Calendar calendar = Calendar.getInstance(UTC_TIMEZONE, Locale.US);
-    calendar.setTime(date);
-    if (noYear) {
-      calendar.set(Calendar.YEAR, 0);
-    }
-    return calendar;
-  }
-
-  private static final Calendar getUtcDate(int year, int month, int dayOfMonth) {
-    final Calendar calendar = Calendar.getInstance(UTC_TIMEZONE, Locale.US);
-    calendar.clear();
-    calendar.set(Calendar.YEAR, year);
-    calendar.set(Calendar.MONTH, month);
-    calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
-    return calendar;
-  }
-
-  public static boolean isYearSet(Calendar cal) {
-    // use the Calendar.YEAR field to track whether or not the year is set instead of
-    // Calendar.isSet() because doing Calendar.get() causes Calendar.isSet() to become
-    // true irregardless of what the previous value was
-    return cal.get(Calendar.YEAR) > 1;
-  }
-
-  /**
-   * Same as {@link #formatDate(Context context, String string, boolean longForm)}, with longForm
-   * set to {@code true} by default.
-   *
-   * @param context Valid context
-   * @param string String representation of a date to parse
-   * @return Returns the same date in a cleaned up format. If the supplied string does not look like
-   *     a date, return it unchanged.
-   */
-  public static String formatDate(Context context, String string) {
-    return formatDate(context, string, true);
-  }
-
-  /**
-   * Parses the supplied string to see if it looks like a date.
-   *
-   * @param context Valid context
-   * @param string String representation of a date to parse
-   * @param longForm If true, return the date formatted into its long string representation. If
-   *     false, return the date formatted using its short form representation (i.e. 12/11/2012)
-   * @return Returns the same date in a cleaned up format. If the supplied string does not look like
-   *     a date, return it unchanged.
-   */
-  public static String formatDate(Context context, String string, boolean longForm) {
-    if (string == null) {
-      return null;
-    }
-
-    string = string.trim();
-    if (string.length() == 0) {
-      return string;
-    }
-    final Calendar cal = parseDate(string, false);
-
-    // we weren't able to parse the string successfully so just return it unchanged
-    if (cal == null) {
-      return string;
-    }
-
-    final boolean isYearSet = isYearSet(cal);
-    final java.text.DateFormat outFormat;
-    if (!isYearSet) {
-      outFormat = getLocalizedDateFormatWithoutYear(context);
-    } else {
-      outFormat =
-          longForm ? DateFormat.getLongDateFormat(context) : DateFormat.getDateFormat(context);
-    }
-    synchronized (outFormat) {
-      outFormat.setTimeZone(UTC_TIMEZONE);
-      return outFormat.format(cal.getTime());
-    }
-  }
-
-  public static boolean isMonthBeforeDay(Context context) {
-    char[] dateFormatOrder = DateFormat.getDateFormatOrder(context);
-    for (int i = 0; i < dateFormatOrder.length; i++) {
-      if (dateFormatOrder[i] == 'd') {
-        return false;
-      }
-      if (dateFormatOrder[i] == 'M') {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  /**
-   * Returns a SimpleDateFormat object without the year fields by using a regular expression to
-   * eliminate the year in the string pattern. In the rare occurence that the resulting pattern
-   * cannot be reconverted into a SimpleDateFormat, it uses the provided context to determine
-   * whether the month field should be displayed before the day field, and returns either "MMMM dd"
-   * or "dd MMMM" converted into a SimpleDateFormat.
-   */
-  public static java.text.DateFormat getLocalizedDateFormatWithoutYear(Context context) {
-    final String pattern =
-        ((SimpleDateFormat) SimpleDateFormat.getDateInstance(java.text.DateFormat.LONG))
-            .toPattern();
-    // Determine the correct regex pattern for year.
-    // Special case handling for Spanish locale by checking for "de"
-    final String yearPattern =
-        pattern.contains("de") ? "[^Mm]*[Yy]+[^Mm]*" : "[^DdMm]*[Yy]+[^DdMm]*";
-    try {
-      // Eliminate the substring in pattern that matches the format for that of year
-      return new SimpleDateFormat(pattern.replaceAll(yearPattern, ""));
-    } catch (IllegalArgumentException e) {
-      return new SimpleDateFormat(DateUtils.isMonthBeforeDay(context) ? "MMMM dd" : "dd MMMM");
-    }
-  }
-
-  /**
-   * Given a calendar (possibly containing only a day of the year), returns the earliest possible
-   * anniversary of the date that is equal to or after the current point in time if the date does
-   * not contain a year, or the date converted to the local time zone (if the date contains a year.
-   *
-   * @param target The date we wish to convert(in the UTC time zone).
-   * @return If date does not contain a year (year < 1900), returns the next earliest anniversary
-   *     that is after the current point in time (in the local time zone). Otherwise, returns the
-   *     adjusted Date in the local time zone.
-   */
-  public static Date getNextAnnualDate(Calendar target) {
-    final Calendar today = Calendar.getInstance();
-    today.setTime(new Date());
-
-    // Round the current time to the exact start of today so that when we compare
-    // today against the target date, both dates are set to exactly 0000H.
-    today.set(Calendar.HOUR_OF_DAY, 0);
-    today.set(Calendar.MINUTE, 0);
-    today.set(Calendar.SECOND, 0);
-    today.set(Calendar.MILLISECOND, 0);
-
-    final boolean isYearSet = isYearSet(target);
-    final int targetYear = target.get(Calendar.YEAR);
-    final int targetMonth = target.get(Calendar.MONTH);
-    final int targetDay = target.get(Calendar.DAY_OF_MONTH);
-    final boolean isFeb29 = (targetMonth == Calendar.FEBRUARY && targetDay == 29);
-    final GregorianCalendar anniversary = new GregorianCalendar();
-    // Convert from the UTC date to the local date. Set the year to today's year if the
-    // there is no provided year (targetYear < 1900)
-    anniversary.set(!isYearSet ? today.get(Calendar.YEAR) : targetYear, targetMonth, targetDay);
-    // If the anniversary's date is before the start of today and there is no year set,
-    // increment the year by 1 so that the returned date is always equal to or greater than
-    // today. If the day is a leap year, keep going until we get the next leap year anniversary
-    // Otherwise if there is already a year set, simply return the exact date.
-    if (!isYearSet) {
-      int anniversaryYear = today.get(Calendar.YEAR);
-      if (anniversary.before(today) || (isFeb29 && !anniversary.isLeapYear(anniversaryYear))) {
-        // If the target date is not Feb 29, then set the anniversary to the next year.
-        // Otherwise, keep going until we find the next leap year (this is not guaranteed
-        // to be in 4 years time).
-        do {
-          anniversaryYear += 1;
-        } while (isFeb29 && !anniversary.isLeapYear(anniversaryYear));
-        anniversary.set(anniversaryYear, targetMonth, targetDay);
-      }
-    }
-    return anniversary.getTime();
-  }
-
   /**
    * Determine the difference, in days between two dates. Uses similar logic as the {@link
    * android.text.format.DateUtils.getRelativeTimeSpanString} method.
diff --git a/java/com/android/contacts/common/util/MaterialColorMapUtils.java b/java/com/android/contacts/common/util/MaterialColorMapUtils.java
index a2d9847..bd32faa 100644
--- a/java/com/android/contacts/common/util/MaterialColorMapUtils.java
+++ b/java/com/android/contacts/common/util/MaterialColorMapUtils.java
@@ -21,7 +21,6 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.Trace;
-import com.android.contacts.common.R;
 
 public class MaterialColorMapUtils {
 
@@ -35,13 +34,6 @@
         resources.obtainTypedArray(com.android.contacts.common.R.array.letter_tile_colors_dark);
   }
 
-  public static MaterialPalette getDefaultPrimaryAndSecondaryColors(Resources resources) {
-    final int primaryColor = resources.getColor(R.color.quickcontact_default_photo_tint_color);
-    final int secondaryColor =
-        resources.getColor(R.color.quickcontact_default_photo_tint_color_dark);
-    return new MaterialPalette(primaryColor, secondaryColor);
-  }
-
   /**
    * Returns the hue component of a color int.
    *
diff --git a/java/com/android/contacts/common/util/NameConverter.java b/java/com/android/contacts/common/util/NameConverter.java
deleted file mode 100644
index ae3275d..0000000
--- a/java/com/android/contacts/common/util/NameConverter.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * Copyright (C) 2011 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.contacts.common.util;
-
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.net.Uri;
-import android.net.Uri.Builder;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.CommonDataKinds.StructuredName;
-import android.text.TextUtils;
-import com.android.contacts.common.model.dataitem.StructuredNameDataItem;
-import java.util.Map;
-import java.util.TreeMap;
-
-/**
- * Utility class for converting between a display name and structured name (and vice-versa), via
- * calls to the contact provider.
- */
-public class NameConverter {
-
-  /** The array of fields that comprise a structured name. */
-  public static final String[] STRUCTURED_NAME_FIELDS =
-      new String[] {
-        StructuredName.PREFIX,
-        StructuredName.GIVEN_NAME,
-        StructuredName.MIDDLE_NAME,
-        StructuredName.FAMILY_NAME,
-        StructuredName.SUFFIX
-      };
-
-  /**
-   * Converts the given structured name (provided as a map from {@link StructuredName} fields to
-   * corresponding values) into a display name string.
-   *
-   * <p>Note that this operates via a call back to the ContactProvider, but it does not access the
-   * database, so it should be safe to call from the UI thread. See ContactsProvider2.completeName()
-   * for the underlying method call.
-   *
-   * @param context Activity context.
-   * @param structuredName The structured name map to convert.
-   * @return The display name computed from the structured name map.
-   */
-  public static String structuredNameToDisplayName(
-      Context context, Map<String, String> structuredName) {
-    Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name");
-    for (String key : STRUCTURED_NAME_FIELDS) {
-      if (structuredName.containsKey(key)) {
-        appendQueryParameter(builder, key, structuredName.get(key));
-      }
-    }
-    return fetchDisplayName(context, builder.build());
-  }
-
-  /**
-   * Converts the given structured name (provided as ContentValues) into a display name string.
-   *
-   * @param context Activity context.
-   * @param values The content values containing values comprising the structured name.
-   */
-  public static String structuredNameToDisplayName(Context context, ContentValues values) {
-    Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name");
-    for (String key : STRUCTURED_NAME_FIELDS) {
-      if (values.containsKey(key)) {
-        appendQueryParameter(builder, key, values.getAsString(key));
-      }
-    }
-    return fetchDisplayName(context, builder.build());
-  }
-
-  /** Helper method for fetching the display name via the given URI. */
-  private static String fetchDisplayName(Context context, Uri uri) {
-    String displayName = null;
-    Cursor cursor =
-        context
-            .getContentResolver()
-            .query(
-                uri,
-                new String[] {
-                  StructuredName.DISPLAY_NAME,
-                },
-                null,
-                null,
-                null);
-
-    if (cursor != null) {
-      try {
-        if (cursor.moveToFirst()) {
-          displayName = cursor.getString(0);
-        }
-      } finally {
-        cursor.close();
-      }
-    }
-    return displayName;
-  }
-
-  /**
-   * Converts the given display name string into a structured name (as a map from {@link
-   * StructuredName} fields to corresponding values).
-   *
-   * <p>Note that this operates via a call back to the ContactProvider, but it does not access the
-   * database, so it should be safe to call from the UI thread.
-   *
-   * @param context Activity context.
-   * @param displayName The display name to convert.
-   * @return The structured name map computed from the display name.
-   */
-  public static Map<String, String> displayNameToStructuredName(
-      Context context, String displayName) {
-    Map<String, String> structuredName = new TreeMap<String, String>();
-    Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name");
-
-    appendQueryParameter(builder, StructuredName.DISPLAY_NAME, displayName);
-    Cursor cursor =
-        context
-            .getContentResolver()
-            .query(builder.build(), STRUCTURED_NAME_FIELDS, null, null, null);
-
-    if (cursor != null) {
-      try {
-        if (cursor.moveToFirst()) {
-          for (int i = 0; i < STRUCTURED_NAME_FIELDS.length; i++) {
-            structuredName.put(STRUCTURED_NAME_FIELDS[i], cursor.getString(i));
-          }
-        }
-      } finally {
-        cursor.close();
-      }
-    }
-    return structuredName;
-  }
-
-  /**
-   * Converts the given display name string into a structured name (inserting the structured values
-   * into a new or existing ContentValues object).
-   *
-   * <p>Note that this operates via a call back to the ContactProvider, but it does not access the
-   * database, so it should be safe to call from the UI thread.
-   *
-   * @param context Activity context.
-   * @param displayName The display name to convert.
-   * @param contentValues The content values object to place the structured name values into. If
-   *     null, a new one will be created and returned.
-   * @return The ContentValues object containing the structured name fields derived from the display
-   *     name.
-   */
-  public static ContentValues displayNameToStructuredName(
-      Context context, String displayName, ContentValues contentValues) {
-    if (contentValues == null) {
-      contentValues = new ContentValues();
-    }
-    Map<String, String> mapValues = displayNameToStructuredName(context, displayName);
-    for (String key : mapValues.keySet()) {
-      contentValues.put(key, mapValues.get(key));
-    }
-    return contentValues;
-  }
-
-  private static void appendQueryParameter(Builder builder, String field, String value) {
-    if (!TextUtils.isEmpty(value)) {
-      builder.appendQueryParameter(field, value);
-    }
-  }
-
-  /**
-   * Parses phonetic name and returns parsed data (family, middle, given) as ContentValues. Parsed
-   * data should be {@link StructuredName#PHONETIC_FAMILY_NAME}, {@link
-   * StructuredName#PHONETIC_MIDDLE_NAME}, and {@link StructuredName#PHONETIC_GIVEN_NAME}. If this
-   * method cannot parse given phoneticName, null values will be stored.
-   *
-   * @param phoneticName Phonetic name to be parsed
-   * @param values ContentValues to be used for storing data. If null, new instance will be created.
-   * @return ContentValues with parsed data. Those data can be null.
-   */
-  public static StructuredNameDataItem parsePhoneticName(
-      String phoneticName, StructuredNameDataItem item) {
-    String family = null;
-    String middle = null;
-    String given = null;
-
-    if (!TextUtils.isEmpty(phoneticName)) {
-      String[] strings = phoneticName.split(" ", 3);
-      switch (strings.length) {
-        case 1:
-          family = strings[0];
-          break;
-        case 2:
-          family = strings[0];
-          given = strings[1];
-          break;
-        case 3:
-          family = strings[0];
-          middle = strings[1];
-          given = strings[2];
-          break;
-      }
-    }
-
-    if (item == null) {
-      item = new StructuredNameDataItem();
-    }
-    item.setPhoneticFamilyName(family);
-    item.setPhoneticMiddleName(middle);
-    item.setPhoneticGivenName(given);
-    return item;
-  }
-
-  /** Constructs and returns a phonetic full name from given parts. */
-  public static String buildPhoneticName(String family, String middle, String given) {
-    if (!TextUtils.isEmpty(family) || !TextUtils.isEmpty(middle) || !TextUtils.isEmpty(given)) {
-      StringBuilder sb = new StringBuilder();
-      if (!TextUtils.isEmpty(family)) {
-        sb.append(family.trim()).append(' ');
-      }
-      if (!TextUtils.isEmpty(middle)) {
-        sb.append(middle.trim()).append(' ');
-      }
-      if (!TextUtils.isEmpty(given)) {
-        sb.append(given.trim()).append(' ');
-      }
-      sb.setLength(sb.length() - 1); // Yank the last space
-      return sb.toString();
-    } else {
-      return null;
-    }
-  }
-}
diff --git a/java/com/android/contacts/common/util/StopWatch.java b/java/com/android/contacts/common/util/StopWatch.java
index b944b98..7986d10 100644
--- a/java/com/android/contacts/common/util/StopWatch.java
+++ b/java/com/android/contacts/common/util/StopWatch.java
@@ -16,7 +16,7 @@
 
 package com.android.contacts.common.util;
 
-import android.util.Log;
+import com.android.dialer.common.LogUtil;
 import java.util.ArrayList;
 
 /** A {@link StopWatch} records start, laps and stop, and print them to logcat. */
@@ -37,11 +37,6 @@
     return new StopWatch(label);
   }
 
-  /** Return a dummy instance that does no operations. */
-  public static StopWatch getNullStopWatch() {
-    return NullStopWatch.INSTANCE;
-  }
-
   /** Record a lap. */
   public void lap(String lapLabel) {
     mTimes.add(System.currentTimeMillis());
@@ -76,25 +71,6 @@
       sb.append(" ");
       last = current;
     }
-    Log.v(TAG, sb.toString());
-  }
-
-  private static class NullStopWatch extends StopWatch {
-
-    public static final NullStopWatch INSTANCE = new NullStopWatch();
-
-    public NullStopWatch() {
-      super(null);
-    }
-
-    @Override
-    public void lap(String lapLabel) {
-      // noop
-    }
-
-    @Override
-    public void stopAndLog(String TAG, int timeThresholdToLog) {
-      // noop
-    }
+    LogUtil.v(TAG, sb.toString());
   }
 }
diff --git a/java/com/android/contacts/common/util/TelephonyManagerUtils.java b/java/com/android/contacts/common/util/TelephonyManagerUtils.java
index b664268..e4c2c63 100644
--- a/java/com/android/contacts/common/util/TelephonyManagerUtils.java
+++ b/java/com/android/contacts/common/util/TelephonyManagerUtils.java
@@ -33,13 +33,4 @@
     final String voiceMailLabel = telephonyManager.getVoiceMailAlphaTag();
     return voiceMailLabel;
   }
-
-  /**
-   * @param context Current application context.
-   * @return True if there is a subscription which supports video calls. False otherwise.
-   */
-  public static boolean hasVideoCallSubscription(Context context) {
-    // TODO: Check the telephony manager's subscriptions to see if any support video calls.
-    return true;
-  }
 }
diff --git a/java/com/android/contacts/common/util/TrafficStatsTags.java b/java/com/android/contacts/common/util/TrafficStatsTags.java
deleted file mode 100644
index b0e7fb5..0000000
--- a/java/com/android/contacts/common/util/TrafficStatsTags.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.contacts.common.util;
-
-public class TrafficStatsTags {
-
-  public static final int CONTACT_PHOTO_DOWNLOAD_TAG = 0x0001;
-  public static final int TAG_MAX = 0x9999;
-}
diff --git a/java/com/android/dialer/about/AndroidManifest.xml b/java/com/android/dialer/about/AndroidManifest.xml
index e9489ce..85c7508 100644
--- a/java/com/android/dialer/about/AndroidManifest.xml
+++ b/java/com/android/dialer/about/AndroidManifest.xml
@@ -1,6 +1,6 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.android.dialer.about">
-  <application>
+  <application android:theme="@style/Theme.AppCompat">
     <activity
         android:name="com.android.dialer.about.LicenseMenuActivity"
         android:label="@string/licenseActivityLabel"
diff --git a/java/com/android/dialer/about/res/raw/keep.xml b/java/com/android/dialer/about/res/raw/keep.xml
index e41b8b8..9215627 100644
--- a/java/com/android/dialer/about/res/raw/keep.xml
+++ b/java/com/android/dialer/about/res/raw/keep.xml
@@ -16,4 +16,3 @@
   -->
 <resources xmlns:tools="http://schemas.android.com/tools"
     tools:keep="@raw/*"/>
-
diff --git a/java/com/android/dialer/app/AndroidManifest.xml b/java/com/android/dialer/app/AndroidManifest.xml
index de4b48c..4200082 100644
--- a/java/com/android/dialer/app/AndroidManifest.xml
+++ b/java/com/android/dialer/app/AndroidManifest.xml
@@ -39,6 +39,7 @@
   <uses-permission android:name="android.permission.USE_CREDENTIALS"/>
   <uses-permission android:name="android.permission.VIBRATE"/>
   <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
+  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
   <uses-permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL"/>
   <uses-permission android:name="com.android.voicemail.permission.WRITE_VOICEMAIL"/>
   <uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL"/>
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index 6e2c6be..b5e6150 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -91,6 +91,7 @@
 import com.android.dialer.callintent.CallIntentBuilder;
 import com.android.dialer.callintent.CallSpecificAppData;
 import com.android.dialer.common.Assert;
+import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.database.Database;
 import com.android.dialer.database.DialerDatabaseHelper;
@@ -106,6 +107,7 @@
 import com.android.dialer.p13n.logging.P13nLogging;
 import com.android.dialer.postcall.PostCall;
 import com.android.dialer.proguard.UsedByReflection;
+import com.android.dialer.searchfragment.NewSearchFragment;
 import com.android.dialer.simulator.Simulator;
 import com.android.dialer.simulator.SimulatorComponent;
 import com.android.dialer.smartdial.SmartDialNameMatcher;
@@ -154,6 +156,7 @@
   private static final String KEY_FIRST_LAUNCH = "first_launch";
   private static final String KEY_WAS_CONFIGURATION_CHANGE = "was_configuration_change";
   private static final String KEY_IS_DIALPAD_SHOWN = "is_dialpad_shown";
+  private static final String TAG_NEW_SEARCH_FRAGMENT = "new_search";
   private static final String TAG_REGULAR_SEARCH_FRAGMENT = "search";
   private static final String TAG_SMARTDIAL_SEARCH_FRAGMENT = "smartdial";
   private static final String TAG_FAVORITES_FRAGMENT = "favorites";
@@ -162,6 +165,7 @@
 
   private static final int ACTIVITY_REQUEST_CODE_VOICE_SEARCH = 1;
   public static final int ACTIVITY_REQUEST_CODE_CALL_COMPOSE = 2;
+  public static final int ACTIVITY_REQUEST_CODE_LIGHTBRINGER = 3;
 
   private static final int FAB_SCALE_IN_DELAY_MS = 300;
 
@@ -180,6 +184,9 @@
   /** Fragment for searching phone numbers using the dialpad. */
   private SmartDialSearchFragment mSmartDialSearchFragment;
 
+  /** new Fragment for search phone numbers using the keyboard and the dialpad. */
+  private NewSearchFragment mNewSearchFragment;
+
   /** Animation that slides in. */
   private Animation mSlideIn;
 
@@ -262,6 +269,7 @@
           }
           mSearchQuery = newText;
 
+          // TODO: show p13n when newText is empty.
           // Show search fragment only when the query string is changed to non-empty text.
           if (!TextUtils.isEmpty(newText)) {
             // Call enterSearchUi only if we are switching search modes, or showing a search
@@ -277,6 +285,8 @@
             mSmartDialSearchFragment.setQueryString(mSearchQuery);
           } else if (mRegularSearchFragment != null && mRegularSearchFragment.isVisible()) {
             mRegularSearchFragment.setQueryString(mSearchQuery);
+          } else if (mNewSearchFragment != null) {
+            mNewSearchFragment.setQuery(mSearchQuery);
           }
         }
 
@@ -630,6 +640,8 @@
     } else if (fragment instanceof ListsFragment) {
       mListsFragment = (ListsFragment) fragment;
       mListsFragment.addOnPageChangeListener(this);
+    } else if (fragment instanceof NewSearchFragment) {
+      mNewSearchFragment = (NewSearchFragment) fragment;
     }
     if (fragment instanceof SearchFragment) {
       final SearchFragment searchFragment = (SearchFragment) fragment;
@@ -785,6 +797,7 @@
 
     if (animate) {
       mFloatingActionButtonController.scaleOut();
+      maybeEnterSearchUi();
     } else {
       mFloatingActionButtonController.setVisible(false);
       maybeEnterSearchUi();
@@ -1057,7 +1070,11 @@
     }
 
     final String tag;
-    if (smartDialSearch) {
+    boolean useNewSearch =
+        ConfigProviderBindings.get(this).getBoolean("enable_new_search_fragment", false);
+    if (useNewSearch) {
+      tag = TAG_NEW_SEARCH_FRAGMENT;
+    } else if (smartDialSearch) {
       tag = TAG_SMARTDIAL_SEARCH_FRAGMENT;
     } else {
       tag = TAG_REGULAR_SEARCH_FRAGMENT;
@@ -1067,40 +1084,52 @@
 
     mFloatingActionButtonController.scaleOut();
 
-    SearchFragment fragment = (SearchFragment) getFragmentManager().findFragmentByTag(tag);
     if (animate) {
       transaction.setCustomAnimations(android.R.animator.fade_in, 0);
     } else {
       transaction.setTransition(FragmentTransaction.TRANSIT_NONE);
     }
+
+    Fragment fragment = getFragmentManager().findFragmentByTag(tag);
     if (fragment == null) {
-      if (smartDialSearch) {
+      if (useNewSearch) {
+        fragment = new NewSearchFragment();
+      } else if (smartDialSearch) {
         fragment = new SmartDialSearchFragment();
       } else {
         fragment = Bindings.getLegacy(this).newRegularSearchFragment();
-        fragment.setOnTouchListener(
-            new View.OnTouchListener() {
-              @Override
-              public boolean onTouch(View v, MotionEvent event) {
-                // Show the FAB when the user touches the lists fragment and the soft
-                // keyboard is hidden.
-                hideDialpadFragment(true, false);
-                showFabInSearchUi();
-                v.performClick();
-                return false;
-              }
-            });
+        ((SearchFragment) fragment)
+            .setOnTouchListener(
+                (v, event) -> {
+                  // Show the FAB when the user touches the lists fragment and the soft
+                  // keyboard is hidden.
+                  hideDialpadFragment(true, false);
+                  v.performClick();
+                  return false;
+                });
       }
       transaction.add(R.id.dialtacts_frame, fragment, tag);
     } else {
+      // TODO: if this is a transition from dialpad to searchbar, animate fragment
+      // down, and vice versa. Perhaps just add a coordinator behavior with the search bar.
       transaction.show(fragment);
     }
+
     // DialtactsActivity will provide the options menu
     fragment.setHasOptionsMenu(false);
+
     // Will show empty list if P13nRanker is not enabled. Else, re-ranked list by the ranker.
-    fragment.setShowEmptyListForNullQuery(mP13nRanker.shouldShowEmptyListForNullQuery());
-    if (!smartDialSearch) {
-      fragment.setQueryString(query);
+    if (!useNewSearch) {
+      ((SearchFragment) fragment)
+          .setShowEmptyListForNullQuery(mP13nRanker.shouldShowEmptyListForNullQuery());
+    } else {
+      // TODO: add p13n ranker to new search.
+    }
+
+    if (!smartDialSearch && !useNewSearch) {
+      ((SearchFragment) fragment).setQueryString(query);
+    } else if (useNewSearch) {
+      ((NewSearchFragment) fragment).setQuery(query);
     }
     transaction.commit();
 
@@ -1146,6 +1175,9 @@
     if (mRegularSearchFragment != null) {
       transaction.remove(mRegularSearchFragment);
     }
+    if (mNewSearchFragment != null) {
+      transaction.remove(mNewSearchFragment);
+    }
     transaction.commit();
 
     Assert.isNotNull(mListsFragment.getView()).animate().alpha(1).withLayer();
@@ -1477,6 +1509,7 @@
             Arrays.toString(grantResults)));
   }
 
+  /** Popup menu accessible from the search bar */
   protected class OptionsPopupMenu extends PopupMenu {
 
     public OptionsPopupMenu(Context context, View anchor) {
diff --git a/java/com/android/dialer/app/SpecialCharSequenceMgr.java b/java/com/android/dialer/app/SpecialCharSequenceMgr.java
index 85c2ea6..20222d6 100644
--- a/java/com/android/dialer/app/SpecialCharSequenceMgr.java
+++ b/java/com/android/dialer/app/SpecialCharSequenceMgr.java
@@ -47,7 +47,6 @@
 import com.android.dialer.calllogutils.PhoneAccountUtils;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.compat.CompatUtils;
 import com.android.dialer.oem.MotorolaUtils;
 import com.android.dialer.telecom.TelecomUtil;
 import java.util.ArrayList;
@@ -299,9 +298,7 @@
               : R.string.meid;
 
       List<String> deviceIds = new ArrayList<String>();
-      if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1
-          && CompatUtils.isMethodAvailable(
-              TelephonyManagerCompat.TELEPHONY_MANAGER_CLASS, "getDeviceId", Integer.TYPE)) {
+      if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1) {
         for (int slot = 0; slot < telephonyManager.getPhoneCount(); slot++) {
           String deviceId = telephonyManager.getDeviceId(slot);
           if (!TextUtils.isEmpty(deviceId)) {
diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java
index 2f8a58c..3357ee2 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -86,6 +86,7 @@
 import com.android.dialer.phonenumberutil.PhoneNumberHelper;
 import com.android.dialer.spam.Spam;
 import com.android.dialer.util.PermissionsUtil;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -105,11 +106,12 @@
 
   private static final String KEY_EXPANDED_POSITION = "expanded_position";
   private static final String KEY_EXPANDED_ROW_ID = "expanded_row_id";
+  private static final String KEY_ACTION_MODE = "action_mode_selected_items";
 
   public static final String LOAD_DATA_TASK_IDENTIFIER = "load_data";
 
   public static final String ENABLE_CALL_LOG_MULTI_SELECT = "enable_call_log_multiselect";
-  public static final boolean ENABLE_CALL_LOG_MULTI_SELECT_FLAG = false;
+  public static final boolean ENABLE_CALL_LOG_MULTI_SELECT_FLAG = true;
 
   protected final Activity mActivity;
   protected final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
@@ -117,6 +119,7 @@
   protected final CallLogCache mCallLogCache;
 
   private final CallFetcher mCallFetcher;
+  private final MultiSelectRemoveView mMultiSelectRemoveView;
   @NonNull private final FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
   private final int mActivityType;
 
@@ -136,6 +139,8 @@
   private final CallLogAlertManager mCallLogAlertManager;
 
   public ActionMode mActionMode = null;
+  public boolean selectAllMode = false;
+  public boolean deselectAllMode = false;
   private final SparseArray<String> selectedItems = new SparseArray<>();
 
   private final ActionMode.Callback mActionModeCallback =
@@ -144,10 +149,16 @@
         // Called when the action mode is created; startActionMode() was called
         @Override
         public boolean onCreateActionMode(ActionMode mode, Menu menu) {
+          if (mActivity != null) {
+            announceforAccessibility(
+                mActivity.getCurrentFocus(),
+                mActivity.getString(R.string.description_entering_bulk_action_mode));
+          }
           mActionMode = mode;
           // Inflate a menu resource providing context menu items
           MenuInflater inflater = mode.getMenuInflater();
           inflater.inflate(R.menu.actionbar_delete, menu);
+          mMultiSelectRemoveView.showMultiSelectRemoveView(true);
           return true;
         }
 
@@ -165,7 +176,6 @@
             if (selectedItems.size() > 0) {
               showDeleteSelectedItemsDialog();
             }
-            mode.finish();
             return true;
           } else {
             return false;
@@ -175,8 +185,16 @@
         // Called when the user exits the action mode
         @Override
         public void onDestroyActionMode(ActionMode mode) {
+          if (mActivity != null) {
+            announceforAccessibility(
+                mActivity.getCurrentFocus(),
+                mActivity.getString(R.string.description_leaving_bulk_action_mode));
+          }
           selectedItems.clear();
           mActionMode = null;
+          selectAllMode = false;
+          deselectAllMode = false;
+          mMultiSelectRemoveView.showMultiSelectRemoveView(false);
           notifyDataSetChanged();
         }
       };
@@ -202,6 +220,7 @@
           @Override
           public void onClick(DialogInterface dialog, int id) {
             deleteSelectedItems(voicemailsToDeleteOnConfirmation);
+            mActionMode.finish();
             dialog.cancel();
           }
         });
@@ -258,22 +277,15 @@
             return;
           }
           if (mActionMode != null && viewHolder.voicemailUri != null) {
+            selectAllMode = false;
+            deselectAllMode = false;
+            mMultiSelectRemoveView.setSelectAllModeToFalse();
             int id = getVoicemailId(viewHolder.voicemailUri);
             if (selectedItems.get(id) != null) {
-              selectedItems.delete(id);
-              viewHolder.checkBoxView.setVisibility(View.GONE);
-              viewHolder.quickContactView.setVisibility(View.VISIBLE);
+              uncheckMarkCallLogEntry(viewHolder, id);
             } else {
-              viewHolder.quickContactView.setVisibility(View.GONE);
-              viewHolder.checkBoxView.setVisibility(View.VISIBLE);
-              selectedItems.put(getVoicemailId(viewHolder.voicemailUri), viewHolder.voicemailUri);
+              checkMarkCallLogEntry(viewHolder);
             }
-
-            if (selectedItems.size() == 0) {
-              mActionMode.finish();
-              return;
-            }
-            mActionMode.setTitle(Integer.toString(selectedItems.size()));
             return;
           }
 
@@ -312,6 +324,48 @@
         }
       };
 
+  private void checkMarkCallLogEntry(CallLogListItemViewHolder viewHolder) {
+    announceforAccessibility(
+        mActivity.getCurrentFocus(),
+        mActivity.getString(
+            R.string.description_selecting_bulk_action_mode, viewHolder.nameOrNumber));
+    viewHolder.quickContactView.setVisibility(View.GONE);
+    viewHolder.checkBoxView.setVisibility(View.VISIBLE);
+    selectedItems.put(getVoicemailId(viewHolder.voicemailUri), viewHolder.voicemailUri);
+    updateActionBar();
+  }
+
+  private void announceforAccessibility(View view, String announcement) {
+    if (view != null) {
+      view.announceForAccessibility(announcement);
+    }
+  }
+
+  private void updateActionBar() {
+    if (mActionMode == null && selectedItems.size() > 0) {
+      mActivity.startActionMode(mActionModeCallback);
+    }
+    if (mActionMode != null) {
+      mActionMode.setTitle(
+          mActivity
+              .getResources()
+              .getString(
+                  R.string.voicemailMultiSelectActionBarTitle,
+                  Integer.toString(selectedItems.size())));
+    }
+  }
+
+  private void uncheckMarkCallLogEntry(CallLogListItemViewHolder viewHolder, int id) {
+    announceforAccessibility(
+        mActivity.getCurrentFocus(),
+        mActivity.getString(
+            R.string.description_unselecting_bulk_action_mode, viewHolder.nameOrNumber));
+    selectedItems.delete(id);
+    viewHolder.checkBoxView.setVisibility(View.GONE);
+    viewHolder.quickContactView.setVisibility(View.VISIBLE);
+    updateActionBar();
+  }
+
   private static int getVoicemailId(String voicemailUri) {
     Assert.checkArgument(voicemailUri != null);
     Assert.checkArgument(voicemailUri.length() > 0);
@@ -358,6 +412,7 @@
       Activity activity,
       ViewGroup alertContainer,
       CallFetcher callFetcher,
+      MultiSelectRemoveView multiSelectRemoveView,
       CallLogCache callLogCache,
       ContactInfoCache contactInfoCache,
       VoicemailPlaybackPresenter voicemailPlaybackPresenter,
@@ -367,6 +422,7 @@
 
     mActivity = activity;
     mCallFetcher = callFetcher;
+    mMultiSelectRemoveView = multiSelectRemoveView;
     mVoicemailPlaybackPresenter = voicemailPlaybackPresenter;
     if (mVoicemailPlaybackPresenter != null) {
       mVoicemailPlaybackPresenter.setOnVoicemailDeletedListener(this);
@@ -426,6 +482,14 @@
   public void onSaveInstanceState(Bundle outState) {
     outState.putInt(KEY_EXPANDED_POSITION, mCurrentlyExpandedPosition);
     outState.putLong(KEY_EXPANDED_ROW_ID, mCurrentlyExpandedRowId);
+
+    ArrayList<String> listOfSelectedItems = new ArrayList<>();
+    if (selectedItems.size() > 0) {
+      for (int i = 0; i < selectedItems.size(); i++) {
+        listOfSelectedItems.add(Integer.toString(selectedItems.keyAt(i)));
+      }
+    }
+    outState.putStringArrayList(KEY_ACTION_MODE, listOfSelectedItems);
   }
 
   public void onRestoreInstanceState(Bundle savedInstanceState) {
@@ -434,6 +498,18 @@
           savedInstanceState.getInt(KEY_EXPANDED_POSITION, RecyclerView.NO_POSITION);
       mCurrentlyExpandedRowId =
           savedInstanceState.getLong(KEY_EXPANDED_ROW_ID, NO_EXPANDED_LIST_ITEM);
+
+      // Restoring multi selected entries
+      ArrayList<String> listOfSelectedItems =
+          savedInstanceState.getStringArrayList(KEY_ACTION_MODE);
+      if (!listOfSelectedItems.isEmpty()) {
+        for (int i = 0; i < listOfSelectedItems.size(); i++) {
+          String voicemailId = listOfSelectedItems.get(i);
+          int id = Integer.parseInt(voicemailId);
+          selectedItems.put(id, voicemailId);
+        }
+        updateActionBar();
+      }
     }
   }
 
@@ -559,6 +635,8 @@
   public void onViewRecycled(ViewHolder viewHolder) {
     if (viewHolder.getItemViewType() == VIEW_TYPE_CALLLOG) {
       CallLogListItemViewHolder views = (CallLogListItemViewHolder) viewHolder;
+      updateCheckMarkedStatusOfEntry(views);
+
       if (views.asyncTask != null) {
         views.asyncTask.cancel(true);
       }
@@ -591,6 +669,8 @@
       return;
     }
     CallLogListItemViewHolder views = (CallLogListItemViewHolder) viewHolder;
+    updateCheckMarkedStatusOfEntry(views);
+
     views.isLoaded = false;
     int groupSize = getGroupSize(position);
     CallDetailsEntries callDetailsEntries = createCallDetailsEntries(c, groupSize);
@@ -609,6 +689,17 @@
     loadAndRender(views, views.rowId, details, callDetailsEntries);
   }
 
+  private void updateCheckMarkedStatusOfEntry(CallLogListItemViewHolder views) {
+    if (selectedItems.size() > 0 && views.voicemailUri != null) {
+      int id = getVoicemailId(views.voicemailUri);
+      if (selectedItems.get(id) != null) {
+        checkMarkCallLogEntry(views);
+      } else {
+        uncheckMarkCallLogEntry(views, id);
+      }
+    }
+  }
+
   private void loadAndRender(
       final CallLogListItemViewHolder views,
       final long rowId,
@@ -917,6 +1008,12 @@
     views.workIconView.setVisibility(
         details.contactUserType == ContactsUtils.USER_TYPE_WORK ? View.VISIBLE : View.GONE);
 
+    if (selectAllMode && views.voicemailUri != null) {
+      selectedItems.put(getVoicemailId(views.voicemailUri), views.voicemailUri);
+    }
+    if (deselectAllMode && views.voicemailUri != null) {
+      selectedItems.delete(getVoicemailId(views.voicemailUri));
+    }
     if (views.voicemailUri != null
         && selectedItems.get(getVoicemailId(views.voicemailUri)) != null) {
       views.checkBoxView.setVisibility(View.VISIBLE);
@@ -925,7 +1022,6 @@
       views.checkBoxView.setVisibility(View.GONE);
       views.quickContactView.setVisibility(View.VISIBLE);
     }
-
     mCallLogListItemHelper.setPhoneCallDetails(views, details);
     if (mCurrentlyExpandedRowId == views.rowId) {
       // In case ViewHolders were added/removed, update the expanded position if the rowIds
@@ -1192,9 +1288,41 @@
     notifyDataSetChanged();
   }
 
+  public void onAllSelected() {
+    selectAllMode = true;
+    deselectAllMode = false;
+    selectedItems.clear();
+    for (int i = 0; i < getItemCount(); i++) {
+      Cursor c = (Cursor) getItem(i);
+      if (c != null) {
+        Assert.checkArgument(CallLogQuery.VOICEMAIL_URI == c.getColumnIndex("voicemail_uri"));
+        String voicemailUri = c.getString(CallLogQuery.VOICEMAIL_URI);
+        selectedItems.put(getVoicemailId(voicemailUri), voicemailUri);
+      }
+    }
+    updateActionBar();
+    notifyDataSetChanged();
+  }
+
+  public void onAllDeselected() {
+    selectAllMode = false;
+    deselectAllMode = true;
+    selectedItems.clear();
+    updateActionBar();
+    notifyDataSetChanged();
+  }
+
   /** Interface used to initiate a refresh of the content. */
   public interface CallFetcher {
 
     void fetchCalls();
   }
+
+  /** Interface used to hide the fragments. */
+  public interface MultiSelectRemoveView {
+
+    void showMultiSelectRemoveView(boolean show);
+
+    void setSelectAllModeToFalse();
+  }
 }
diff --git a/java/com/android/dialer/app/calllog/CallLogFragment.java b/java/com/android/dialer/app/calllog/CallLogFragment.java
index 6e4b23f..1571c1a 100644
--- a/java/com/android/dialer/app/calllog/CallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/CallLogFragment.java
@@ -49,15 +49,16 @@
 import com.android.dialer.app.contactinfo.ExpirableCacheHeadlessFragment;
 import com.android.dialer.app.list.ListsFragment;
 import com.android.dialer.app.voicemail.VoicemailPlaybackPresenter;
-import com.android.dialer.app.widget.EmptyContentView;
-import com.android.dialer.app.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.database.CallLogQueryHandler;
 import com.android.dialer.location.GeoUtil;
+import com.android.dialer.oem.CequintCallerIdManager;
 import com.android.dialer.phonenumbercache.ContactInfoHelper;
 import com.android.dialer.util.PermissionsUtil;
+import com.android.dialer.widget.EmptyContentView;
+import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 
 /**
  * Displays a list of call log entries. To filter for a particular kind of call (all, missed or
@@ -66,6 +67,7 @@
 public class CallLogFragment extends Fragment
     implements CallLogQueryHandler.Listener,
         CallLogAdapter.CallFetcher,
+        CallLogAdapter.MultiSelectRemoveView,
         OnEmptyViewActionButtonClickedListener,
         FragmentCompat.OnRequestPermissionsResultCallback,
         CallLogModalAlertManager.Listener {
@@ -317,6 +319,7 @@
                 getActivity(),
                 mRecyclerView,
                 this,
+                this,
                 CallLogCache.getCallLogCache(getActivity()),
                 mContactInfoCache,
                 getVoicemailPlaybackPresenter(),
@@ -380,6 +383,16 @@
   }
 
   @Override
+  public void onStart() {
+    super.onStart();
+    CequintCallerIdManager cequintCallerIdManager = null;
+    if (CequintCallerIdManager.isCequintCallerIdEnabled(getContext())) {
+      cequintCallerIdManager = CequintCallerIdManager.createInstanceForCallLog();
+    }
+    mContactInfoCache.setCequintCallerIdManager(cequintCallerIdManager);
+  }
+
+  @Override
   public void onStop() {
     updateOnTransition();
 
@@ -451,6 +464,8 @@
       mEmptyListView.setActionLabel(EmptyContentView.NO_LABEL);
     } else if (filterType == CallLogQueryHandler.CALL_TYPE_ALL) {
       mEmptyListView.setActionLabel(R.string.call_log_all_empty_action);
+    } else {
+      mEmptyListView.setActionLabel(EmptyContentView.NO_LABEL);
     }
   }
 
@@ -589,6 +604,16 @@
     }
   }
 
+  @Override
+  public void showMultiSelectRemoveView(boolean show) {
+    ((ListsFragment) getParentFragment()).showMultiSelectRemoveView(show);
+  }
+
+  @Override
+  public void setSelectAllModeToFalse() {
+    ((ListsFragment) getParentFragment()).setSelectAllModeToFalse();
+  }
+
   public interface HostInterface {
 
     void showDialpad();
diff --git a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
index 1daccd1..a9a4d1d 100644
--- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
+++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
@@ -17,6 +17,7 @@
 package com.android.dialer.app.calllog;
 
 import android.app.Activity;
+import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
@@ -31,7 +32,6 @@
 import android.support.v7.widget.CardView;
 import android.support.v7.widget.RecyclerView;
 import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
 import android.telephony.PhoneNumberUtils;
 import android.text.BidiFormatter;
 import android.text.TextDirectionHeuristics;
@@ -44,10 +44,13 @@
 import android.widget.ImageView;
 import android.widget.QuickContactBadge;
 import android.widget.TextView;
+import android.widget.Toast;
 import com.android.contacts.common.ClipboardUtils;
 import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
 import com.android.contacts.common.dialog.CallSubjectDialog;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
+import com.android.contacts.common.lettertiles.LetterTileDrawable.ContactType;
 import com.android.contacts.common.util.UriUtils;
 import com.android.dialer.app.DialtactsActivity;
 import com.android.dialer.app.R;
@@ -58,15 +61,16 @@
 import com.android.dialer.blocking.FilteredNumberCompat;
 import com.android.dialer.blocking.FilteredNumbersUtil;
 import com.android.dialer.callcomposer.CallComposerActivity;
-import com.android.dialer.callcomposer.CallComposerContact;
 import com.android.dialer.calldetails.CallDetailsEntries;
 import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.compat.CompatUtils;
+import com.android.dialer.dialercontact.DialerContact;
 import com.android.dialer.lightbringer.Lightbringer;
 import com.android.dialer.lightbringer.LightbringerComponent;
 import com.android.dialer.logging.ContactSource;
 import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.InteractionEvent;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.logging.ScreenEvent;
 import com.android.dialer.phonenumbercache.CachedNumberLookupService;
@@ -251,6 +255,20 @@
     phoneCallDetailsViews.nameView.setElegantTextHeight(false);
     phoneCallDetailsViews.callLocationAndDate.setElegantTextHeight(false);
 
+    if (mContext instanceof CallLogActivity) {
+      Logger.get(mContext)
+          .logQuickContactOnTouch(
+              quickContactView, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CALL_HISTORY, true);
+    } else if (mVoicemailPlaybackPresenter == null) {
+      Logger.get(mContext)
+          .logQuickContactOnTouch(
+              quickContactView, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CALL_LOG, true);
+    } else {
+      Logger.get(mContext)
+          .logQuickContactOnTouch(
+              quickContactView, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_VOICEMAIL, false);
+    }
+
     quickContactView.setOverlay(null);
     if (CompatUtils.hasPrioritizedMimeType()) {
       quickContactView.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE);
@@ -467,7 +485,7 @@
         primaryActionButtonView.setContentDescription(
             TextUtils.expandTemplate(
                 mContext.getString(R.string.description_call_action), validNameOrNumber));
-        primaryActionButtonView.setImageResource(R.drawable.quantum_ic_call_white_24);
+        primaryActionButtonView.setImageResource(R.drawable.quantum_ic_call_vd_theme_24);
         primaryActionButtonView.setVisibility(View.VISIBLE);
       } else {
         primaryActionButtonView.setTag(null);
@@ -717,19 +735,14 @@
             getContactType());
   }
 
-  private int getContactType() {
-    int contactType = ContactPhotoManager.TYPE_DEFAULT;
-    if (mCallLogCache.isVoicemailNumber(accountHandle, number)) {
-      contactType = ContactPhotoManager.TYPE_VOICEMAIL;
-    } else if (isSpam) {
-      contactType = ContactPhotoManager.TYPE_SPAM;
-    } else if (mCachedNumberLookupService != null
-        && mCachedNumberLookupService.isBusiness(info.sourceType)) {
-      contactType = ContactPhotoManager.TYPE_BUSINESS;
-    } else if (numberPresentation == TelecomManager.PRESENTATION_RESTRICTED) {
-      contactType = ContactPhotoManager.TYPE_GENERIC_AVATAR;
-    }
-    return contactType;
+  private @ContactType int getContactType() {
+    return LetterTileDrawable.getContactTypeFromPrimitives(
+        mCallLogCache.isVoicemailNumber(accountHandle, number),
+        isSpam,
+        mCachedNumberLookupService != null
+            && mCachedNumberLookupService.isBusiness(info.sourceType),
+        numberPresentation,
+        false);
   }
 
   @Override
@@ -795,19 +808,40 @@
       mVoicemailPlaybackPresenter.shareVoicemail();
     } else {
       logCallLogAction(view.getId());
+
       final IntentProvider intentProvider = (IntentProvider) view.getTag();
-      if (intentProvider != null) {
-        final Intent intent = intentProvider.getIntent(mContext);
-        // See IntentProvider.getCallDetailIntentProvider() for why this may be null.
-        if (intent != null) {
-          DialerUtils.startActivityWithErrorToast(mContext, intent);
-        }
+      if (intentProvider == null) {
+        return;
+      }
+
+      final Intent intent = intentProvider.getIntent(mContext);
+      // See IntentProvider.getCallDetailIntentProvider() for why this may be null.
+      if (intent == null) {
+        return;
+      }
+
+      // We check to see if we are starting a Lightbringer intent. The reason is Lightbringer
+      // intents need to be started using startActivityForResult instead of the usual startActivity
+      String packageName = intent.getPackage();
+      if (packageName != null && packageName.equals(getLightbringer().getPackageName(mContext))) {
+        startLightbringerActivity(intent);
+      } else {
+        DialerUtils.startActivityWithErrorToast(mContext, intent);
       }
     }
   }
 
-  private CallComposerContact buildContact() {
-    CallComposerContact.Builder contact = CallComposerContact.newBuilder();
+  private void startLightbringerActivity(Intent intent) {
+    try {
+      Activity activity = (Activity) mContext;
+      activity.startActivityForResult(intent, DialtactsActivity.ACTIVITY_REQUEST_CODE_LIGHTBRINGER);
+    } catch (ActivityNotFoundException e) {
+      Toast.makeText(mContext, R.string.activity_not_available, Toast.LENGTH_SHORT).show();
+    }
+  }
+
+  private DialerContact buildContact() {
+    DialerContact.Builder contact = DialerContact.newBuilder();
     contact.setPhotoId(info.photoId);
     if (info.photoUri != null) {
       contact.setPhotoUri(info.photoUri.toString());
diff --git a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
index 58fe6fa..1f45f70 100644
--- a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
+++ b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
@@ -225,14 +225,18 @@
       int count,
       String voicemailNumber,
       PendingIntent callVoicemailIntent,
-      PendingIntent voicemailSettingIntent) {
+      PendingIntent voicemailSettingIntent,
+      boolean isRefresh) {
     Assert.isNotNull(phoneAccountHandle);
     Assert.checkArgument(BuildCompat.isAtLeastO());
     TelephonyManager telephonyManager =
         context
             .getSystemService(TelephonyManager.class)
             .createForPhoneAccountHandle(phoneAccountHandle);
-    Assert.isNotNull(telephonyManager);
+    if (telephonyManager == null) {
+      LogUtil.e(TAG, "invalid PhoneAccountHandle, ignoring");
+      return;
+    }
     LogUtil.i(TAG, "Creating legacy voicemail notification");
 
     PersistableBundle carrierConfig = telephonyManager.getCarrierConfig();
@@ -275,7 +279,8 @@
         .setSound(telephonyManager.getVoicemailRingtoneUri(phoneAccountHandle))
         .setOngoing(
             carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL));
+                CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL))
+        .setOnlyAlertOnce(isRefresh);
 
     if (telephonyManager.isVoicemailVibrationEnabled(phoneAccountHandle)) {
       builder.setDefaults(Notification.DEFAULT_VIBRATE);
diff --git a/java/com/android/dialer/app/calllog/IntentProvider.java b/java/com/android/dialer/app/calllog/IntentProvider.java
index a94c678..9c3c18b 100644
--- a/java/com/android/dialer/app/calllog/IntentProvider.java
+++ b/java/com/android/dialer/app/calllog/IntentProvider.java
@@ -24,12 +24,14 @@
 import android.telecom.PhoneAccountHandle;
 import com.android.contacts.common.model.Contact;
 import com.android.contacts.common.model.ContactLoader;
-import com.android.dialer.callcomposer.CallComposerContact;
 import com.android.dialer.calldetails.CallDetailsActivity;
 import com.android.dialer.calldetails.CallDetailsEntries;
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallIntentBuilder;
+import com.android.dialer.dialercontact.DialerContact;
 import com.android.dialer.lightbringer.LightbringerComponent;
+import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.Logger;
 import com.android.dialer.util.CallUtil;
 import com.android.dialer.util.IntentUtil;
 import java.util.ArrayList;
@@ -68,6 +70,7 @@
     return new IntentProvider() {
       @Override
       public Intent getIntent(Context context) {
+        Logger.get(context).logImpression(DialerImpression.Type.IMS_VIDEO_REQUESTED_FROM_CALL_LOG);
         return new CallIntentBuilder(number, CallInitiationType.Type.CALL_LOG)
             .setPhoneAccountHandle(accountHandle)
             .setIsVideoCall(true)
@@ -80,6 +83,8 @@
     return new IntentProvider() {
       @Override
       public Intent getIntent(Context context) {
+        Logger.get(context)
+            .logImpression(DialerImpression.Type.LIGHTBRINGER_VIDEO_REQUESTED_FROM_CALL_LOG);
         return LightbringerComponent.get(context).getLightbringer().getIntent(context, number);
       }
     };
@@ -112,7 +117,7 @@
    * @return The call details intent provider.
    */
   public static IntentProvider getCallDetailIntentProvider(
-      CallDetailsEntries callDetailsEntries, CallComposerContact contact) {
+      CallDetailsEntries callDetailsEntries, DialerContact contact) {
     return new IntentProvider() {
       @Override
       public Intent getIntent(Context context) {
diff --git a/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java b/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java
index 7645a33..6728dfb 100644
--- a/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java
+++ b/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java
@@ -19,7 +19,6 @@
 import android.content.Context;
 import android.telecom.PhoneAccountHandle;
 import com.android.dialer.app.calllog.CallLogAdapter;
-import com.android.dialer.compat.CompatUtils;
 import com.android.dialer.util.CallUtil;
 
 /**
@@ -46,10 +45,7 @@
 
   /** Return the most compatible version of the TelecomCallLogCache. */
   public static CallLogCache getCallLogCache(Context context) {
-    if (CompatUtils.isClassAvailable("android.telecom.PhoneAccountHandle")) {
-      return new CallLogCacheLollipopMr1(context);
-    }
-    return new CallLogCacheLollipop(context);
+    return new CallLogCacheLollipopMr1(context);
   }
 
   public void reset() {
diff --git a/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java b/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java
deleted file mode 100644
index 78aaa41..0000000
--- a/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.app.calllog.calllogcache;
-
-import android.content.Context;
-import android.telecom.PhoneAccount;
-import android.telecom.PhoneAccountHandle;
-import android.telephony.PhoneNumberUtils;
-import android.text.TextUtils;
-
-/**
- * This is a compatibility class for the CallLogCache for versions of dialer before Lollipop Mr1
- * (the introduction of phone accounts).
- *
- * <p>This class should not be initialized directly and instead be acquired from {@link
- * CallLogCache#getCallLogCache}.
- */
-class CallLogCacheLollipop extends CallLogCache {
-
-  private String mVoicemailNumber;
-
-  /* package */ CallLogCacheLollipop(Context context) {
-    super(context);
-  }
-
-  @Override
-  public boolean isVoicemailNumber(PhoneAccountHandle accountHandle, CharSequence number) {
-    if (TextUtils.isEmpty(number)) {
-      return false;
-    }
-
-    String numberString = number.toString();
-
-    if (!TextUtils.isEmpty(mVoicemailNumber)) {
-      return PhoneNumberUtils.compare(numberString, mVoicemailNumber);
-    }
-
-    if (PhoneNumberUtils.isVoiceMailNumber(numberString)) {
-      mVoicemailNumber = numberString;
-      return true;
-    }
-
-    return false;
-  }
-
-  @Override
-  public String getAccountLabel(PhoneAccountHandle accountHandle) {
-    return null;
-  }
-
-  @Override
-  public int getAccountColor(PhoneAccountHandle accountHandle) {
-    return PhoneAccount.NO_HIGHLIGHT_COLOR;
-  }
-
-  @Override
-  public boolean doesAccountSupportCallSubject(PhoneAccountHandle accountHandle) {
-    return false;
-  }
-}
diff --git a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java
index e561b56..32bbf06 100644
--- a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java
+++ b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java
@@ -24,6 +24,7 @@
 import android.text.TextUtils;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.logging.ContactSource.Type;
+import com.android.dialer.oem.CequintCallerIdManager;
 import com.android.dialer.phonenumbercache.ContactInfo;
 import com.android.dialer.phonenumbercache.ContactInfoHelper;
 import com.android.dialer.util.ExpirableCache;
@@ -55,6 +56,7 @@
   private final OnContactInfoChangedListener mOnContactInfoChangedListener;
   private final BlockingQueue<ContactInfoRequest> mUpdateRequests;
   private final Handler mHandler;
+  private CequintCallerIdManager mCequintCallerIdManager;
   private QueryThread mContactInfoQueryThread;
   private volatile boolean mRequestProcessingDisabled = false;
 
@@ -95,6 +97,10 @@
     mHandler = new InnerHandler(new WeakReference<>(this));
   }
 
+  public void setCequintCallerIdManager(CequintCallerIdManager cequintCallerIdManager) {
+    mCequintCallerIdManager = cequintCallerIdManager;
+  }
+
   public ContactInfo getValue(
       String number,
       String countryIso,
@@ -160,7 +166,7 @@
         // TODO: Maybe skip look up if it's already available in cached number lookup
         // service.
         long start = SystemClock.elapsedRealtime();
-        mContactInfoHelper.updateFromCequintCallerId(info, request.number);
+        mContactInfoHelper.updateFromCequintCallerId(mCequintCallerIdManager, info, request.number);
         long time = SystemClock.elapsedRealtime() - start;
         LogUtil.d(
             "ContactInfoCache.queryContactInfo", "Cequint Caller Id look up takes %d ms", time);
diff --git a/java/com/android/dialer/app/dialpad/DialpadFragment.java b/java/com/android/dialer/app/dialpad/DialpadFragment.java
index e9d57b3..c0b26c9 100644
--- a/java/com/android/dialer/app/dialpad/DialpadFragment.java
+++ b/java/com/android/dialer/app/dialpad/DialpadFragment.java
@@ -29,6 +29,7 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.pm.PackageManager;
+import android.content.res.Resources;
 import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
@@ -84,6 +85,7 @@
 import com.android.dialer.dialpadview.DialpadKeyButton;
 import com.android.dialer.dialpadview.DialpadView;
 import com.android.dialer.location.GeoUtil;
+import com.android.dialer.oem.MotorolaUtils;
 import com.android.dialer.proguard.UsedByReflection;
 import com.android.dialer.telecom.TelecomUtil;
 import com.android.dialer.util.CallUtil;
@@ -626,6 +628,14 @@
     Trace.beginSection(TAG + " onResume");
     super.onResume();
 
+    Resources res = getResources();
+    int iconId = R.drawable.quantum_ic_call_vd_theme_24;
+    if (MotorolaUtils.isWifiCallingAvailable(getContext())) {
+      iconId = R.drawable.ic_wifi_calling;
+    }
+    mFloatingActionButtonController.changeIcon(
+        res.getDrawable(iconId, null), res.getString(R.string.description_dial_button));
+
     final DialtactsActivity activity = (DialtactsActivity) getActivity();
     mDialpadQueryListener = activity;
 
diff --git a/java/com/android/dialer/app/filterednumber/NumbersAdapter.java b/java/com/android/dialer/app/filterednumber/NumbersAdapter.java
index f71517a..d98395e 100644
--- a/java/com/android/dialer/app/filterednumber/NumbersAdapter.java
+++ b/java/com/android/dialer/app/filterednumber/NumbersAdapter.java
@@ -28,6 +28,7 @@
 import android.widget.TextView;
 import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
 import com.android.contacts.common.util.UriUtils;
 import com.android.dialer.app.R;
 import com.android.dialer.compat.CompatUtils;
@@ -98,8 +99,8 @@
         info.lookupUri == null ? null : UriUtils.getLookupKeyFromUri(info.lookupUri);
     final int contactType =
         mContactInfoHelper.isBusiness(info.sourceType)
-            ? ContactPhotoManager.TYPE_BUSINESS
-            : ContactPhotoManager.TYPE_DEFAULT;
+            ? LetterTileDrawable.TYPE_BUSINESS
+            : LetterTileDrawable.TYPE_DEFAULT;
     final DefaultImageRequest request =
         new DefaultImageRequest(displayName, lookupKey, contactType, true /* isCircular */);
     badge.assignContactUri(info.lookupUri);
diff --git a/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java b/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java
index 1cdeb21..c208fd5 100644
--- a/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java
+++ b/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java
@@ -40,6 +40,7 @@
       Activity activity,
       ViewGroup alertContainer,
       CallLogAdapter.CallFetcher callFetcher,
+      CallLogAdapter.MultiSelectRemoveView multiSelectRemoveView,
       CallLogCache callLogCache,
       ContactInfoCache contactInfoCache,
       VoicemailPlaybackPresenter voicemailPlaybackPresenter,
diff --git a/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java b/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java
index 6e32843..19fa1a7 100644
--- a/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java
+++ b/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java
@@ -34,6 +34,7 @@
       Activity activity,
       ViewGroup alertContainer,
       CallLogAdapter.CallFetcher callFetcher,
+      CallLogAdapter.MultiSelectRemoveView multiSelectRemoveView,
       CallLogCache callLogCache,
       ContactInfoCache contactInfoCache,
       VoicemailPlaybackPresenter voicemailPlaybackPresenter,
@@ -43,6 +44,7 @@
         activity,
         alertContainer,
         callFetcher,
+        multiSelectRemoveView,
         callLogCache,
         contactInfoCache,
         voicemailPlaybackPresenter,
diff --git a/java/com/android/dialer/app/list/AllContactsFragment.java b/java/com/android/dialer/app/list/AllContactsFragment.java
index 0460997..f5fdb9e 100644
--- a/java/com/android/dialer/app/list/AllContactsFragment.java
+++ b/java/com/android/dialer/app/list/AllContactsFragment.java
@@ -38,12 +38,14 @@
 import com.android.contacts.common.list.ContactListFilter;
 import com.android.contacts.common.list.DefaultContactListAdapter;
 import com.android.dialer.app.R;
-import com.android.dialer.app.widget.EmptyContentView;
-import com.android.dialer.app.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 import com.android.dialer.compat.CompatUtils;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
 import com.android.dialer.util.DialerUtils;
 import com.android.dialer.util.IntentUtil;
 import com.android.dialer.util.PermissionsUtil;
+import com.android.dialer.widget.EmptyContentView;
+import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 
 /** Fragments to show all contacts with phone numbers. */
 public class AllContactsFragment extends ContactEntryListFragment<ContactEntryListAdapter>
@@ -149,6 +151,8 @@
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
     final Uri uri = (Uri) view.getTag();
     if (uri != null) {
+      Logger.get(getContext())
+          .logInteraction(InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_ALL_CONTACTS_GENERAL);
       if (CompatUtils.hasPrioritizedMimeType()) {
         QuickContact.showQuickContact(getContext(), view, uri, null, Phone.CONTENT_ITEM_TYPE);
       } else {
diff --git a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
index 537f488..04927cf 100644
--- a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
+++ b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.content.res.Resources;
 import android.database.Cursor;
+import android.graphics.drawable.Drawable;
 import android.telephony.PhoneNumberUtils;
 import android.text.BidiFormatter;
 import android.text.TextDirectionHeuristics;
@@ -29,7 +30,6 @@
 import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.dialer.app.R;
 import com.android.dialer.location.GeoUtil;
-import com.android.dialer.util.CallUtil;
 
 /**
  * {@link PhoneNumberListAdapter} with the following added shortcuts, that are displayed as list
@@ -50,7 +50,6 @@
 
   private final boolean[] mShortcutEnabled = new boolean[SHORTCUT_COUNT];
   private final BidiFormatter mBidiFormatter = BidiFormatter.getInstance();
-  private final boolean mVideoCallingEnabled;
   private final String mCountryIso;
 
   private String mFormattedQueryString;
@@ -59,7 +58,6 @@
     super(context);
 
     mCountryIso = GeoUtil.getCurrentCountryIso(context);
-    mVideoCallingEnabled = CallUtil.isVideoEnabled(context);
   }
 
   @Override
@@ -110,8 +108,7 @@
         return convertView;
       } else {
         final ContactListItemView v =
-            new ContactListItemView(
-                getContext(), null, mVideoCallingEnabled, isCallAndShareEnabled());
+            new ContactListItemView(getContext(), null, mIsImsVideoEnabled);
         assignShortcutToView(v, shortcutType);
         return v;
       }
@@ -125,8 +122,7 @@
       Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
     final ContactListItemView view = super.newView(context, partition, cursor, position, parent);
 
-    view.setSupportVideoCallIcon(mVideoCallingEnabled);
-    view.setSupportCallAndShareIcon(isCallAndShareEnabled());
+    view.setSupportVideoCallIcon(mIsImsVideoEnabled);
     return view;
   }
 
@@ -171,7 +167,7 @@
 
   private void assignShortcutToView(ContactListItemView v, int shortcutType) {
     final CharSequence text;
-    final int drawableId;
+    final Drawable drawable;
     final Resources resources = getContext().getResources();
     final String number = getFormattedQueryString();
     switch (shortcutType) {
@@ -181,34 +177,39 @@
                 resources,
                 R.string.search_shortcut_call_number,
                 mBidiFormatter.unicodeWrap(number, TextDirectionHeuristics.LTR));
-        drawableId = R.drawable.ic_search_phone;
+        drawable = getContext().getResources().getDrawable(R.drawable.quantum_ic_call_vd_theme_24);
         break;
       case SHORTCUT_CREATE_NEW_CONTACT:
         text = resources.getString(R.string.search_shortcut_create_new_contact);
-        drawableId = R.drawable.ic_search_add_contact;
+        drawable =
+            getContext().getResources().getDrawable(R.drawable.quantum_ic_person_add_vd_theme_24);
+        drawable.setAutoMirrored(true);
         break;
       case SHORTCUT_ADD_TO_EXISTING_CONTACT:
         text = resources.getString(R.string.search_shortcut_add_to_contact);
-        drawableId = R.drawable.quantum_ic_person_white_24;
+        drawable =
+            getContext().getResources().getDrawable(R.drawable.quantum_ic_person_add_vd_theme_24);
         break;
       case SHORTCUT_SEND_SMS_MESSAGE:
         text = resources.getString(R.string.search_shortcut_send_sms_message);
-        drawableId = R.drawable.quantum_ic_message_white_24;
+        drawable =
+            getContext().getResources().getDrawable(R.drawable.quantum_ic_message_vd_theme_24);
         break;
       case SHORTCUT_MAKE_VIDEO_CALL:
         text = resources.getString(R.string.search_shortcut_make_video_call);
-        drawableId = R.drawable.quantum_ic_videocam_white_24;
+        drawable =
+            getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
         break;
       case SHORTCUT_BLOCK_NUMBER:
         text = resources.getString(R.string.search_shortcut_block_number);
-        drawableId = R.drawable.ic_not_interested_googblue_24dp;
+        drawable =
+            getContext().getResources().getDrawable(R.drawable.ic_not_interested_googblue_24dp);
         break;
       default:
         throw new IllegalArgumentException("Invalid shortcut type");
     }
-    v.setDrawableResource(drawableId);
+    v.setDrawable(drawable);
     v.setDisplayName(text);
-    v.setPhotoPosition(super.getPhotoPosition());
     v.setAdjustSelectionBoundsEnabled(false);
   }
 
diff --git a/java/com/android/dialer/app/list/DialerViewPager.java b/java/com/android/dialer/app/list/DialerViewPager.java
new file mode 100644
index 0000000..ae99f05
--- /dev/null
+++ b/java/com/android/dialer/app/list/DialerViewPager.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.app.list;
+
+import android.content.Context;
+import android.support.v4.view.ViewPager;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+
+/** Class that handles enabling/disabling swiping between @{ViewPagerTabs}. */
+public class DialerViewPager extends ViewPager {
+
+  private boolean enableSwipingPages;
+
+  public DialerViewPager(Context context, AttributeSet attributeSet) {
+    super(context, attributeSet);
+    enableSwipingPages = true;
+  }
+
+  @Override
+  public boolean onInterceptTouchEvent(MotionEvent event) {
+    if (enableSwipingPages) {
+      return super.onInterceptTouchEvent(event);
+    }
+
+    return false;
+  }
+
+  @Override
+  public boolean onTouchEvent(MotionEvent event) {
+    if (enableSwipingPages) {
+      return super.onTouchEvent(event);
+    }
+
+    return false;
+  }
+
+  public void setEnableSwipingPages(boolean enabled) {
+    enableSwipingPages = enabled;
+  }
+}
diff --git a/java/com/android/dialer/app/list/ListsFragment.java b/java/com/android/dialer/app/list/ListsFragment.java
index 8dd52a9..32501d5 100644
--- a/java/com/android/dialer/app/list/ListsFragment.java
+++ b/java/com/android/dialer/app/list/ListsFragment.java
@@ -31,19 +31,23 @@
 import android.os.Trace;
 import android.preference.PreferenceManager;
 import android.provider.VoicemailContract;
-import android.support.v4.view.ViewPager;
 import android.support.v4.view.ViewPager.OnPageChangeListener;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.view.View.OnClickListener;
 import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
 import com.android.contacts.common.list.ViewPagerTabs;
 import com.android.dialer.app.R;
 import com.android.dialer.app.calllog.CallLogFragment;
 import com.android.dialer.app.calllog.CallLogNotificationsService;
+import com.android.dialer.app.calllog.VisualVoicemailCallLogFragment;
 import com.android.dialer.app.voicemail.error.VoicemailStatusCorruptionHandler;
 import com.android.dialer.app.voicemail.error.VoicemailStatusCorruptionHandler.Source;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.database.CallLogQueryHandler;
+import com.android.dialer.database.CallLogQueryHandler.Listener;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.logging.ScreenEvent;
@@ -61,24 +65,28 @@
  * containing the lists up above the search bar and pin it against the top of the screen.
  */
 public class ListsFragment extends Fragment
-    implements ViewPager.OnPageChangeListener, CallLogQueryHandler.Listener {
+    implements OnPageChangeListener, Listener, OnClickListener {
 
   private static final String TAG = "ListsFragment";
-  private ViewPager mViewPager;
+  private DialerViewPager mViewPager;
   private ViewPagerTabs mViewPagerTabs;
   private DialtactsPagerAdapter mAdapter;
   private RemoveView mRemoveView;
   private View mRemoveViewContent;
+  private View mMultiSelectSelectAllViewContent;
+  private TextView mSelectUnselectAllViewText;
+  private ImageView mSelectUnselectAllIcon;
   private Fragment mCurrentPage;
   private SharedPreferences mPrefs;
   private boolean mHasFetchedVoicemailStatus;
+  private boolean selectAllMode;
   private boolean mShowVoicemailTabAfterVoicemailStatusIsFetched;
   private VoicemailStatusHelper mVoicemailStatusHelper;
   private final ArrayList<OnPageChangeListener> mOnPageChangeListeners = new ArrayList<>();
   /** The position of the currently selected tab. */
   private int mTabIndex = TAB_INDEX_SPEED_DIAL;
-  private boolean mPaused;
 
+  private boolean mPaused;
   private CallLogQueryHandler mCallLogQueryHandler;
 
   private final ContentObserver mVoicemailStatusObserver =
@@ -163,7 +171,7 @@
     tabIcons[TAB_INDEX_ALL_CONTACTS] = R.drawable.quantum_ic_people_white_24;
     tabIcons[TAB_INDEX_VOICEMAIL] = R.drawable.quantum_ic_voicemail_white_24;
 
-    mViewPager = (ViewPager) parentView.findViewById(R.id.lists_pager);
+    mViewPager = (DialerViewPager) parentView.findViewById(R.id.lists_pager);
     mAdapter =
         new DialtactsPagerAdapter(
             getContext(),
@@ -180,9 +188,15 @@
     mViewPagerTabs.configureTabIcons(tabIcons);
     mViewPagerTabs.setViewPager(mViewPager);
     addOnPageChangeListener(mViewPagerTabs);
-
     mRemoveView = (RemoveView) parentView.findViewById(R.id.remove_view);
     mRemoveViewContent = parentView.findViewById(R.id.remove_view_content);
+    mMultiSelectSelectAllViewContent =
+        parentView.findViewById(R.id.multi_select_select_all_view_content);
+    mSelectUnselectAllViewText = (TextView) parentView.findViewById(R.id.select_all_view_text);
+    mSelectUnselectAllIcon = (ImageView) parentView.findViewById(R.id.select_all_view_icon);
+    mMultiSelectSelectAllViewContent.setOnClickListener(null);
+    mSelectUnselectAllIcon.setOnClickListener(this);
+    mSelectUnselectAllViewText.setOnClickListener(this);
 
     if (PermissionsUtil.hasReadVoicemailPermissions(getContext())
         && PermissionsUtil.hasAddVoicemailPermissions(getContext())) {
@@ -191,7 +205,7 @@
           .registerContentObserver(
               VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
     } else {
-      LogUtil.w("ListsFragment.onCreateView", "no voicemail read/add permissions");
+      LogUtil.w("ListsFragment.onCreateView", "no voicemail read permissions");
     }
 
     Trace.endSection();
@@ -385,6 +399,13 @@
     mRemoveView.animate().alpha(show ? 1 : 0).start();
   }
 
+  public void showMultiSelectRemoveView(boolean show) {
+    mMultiSelectSelectAllViewContent.setVisibility(show ? View.VISIBLE : View.GONE);
+    mMultiSelectSelectAllViewContent.setAlpha(show ? 0 : 1);
+    mMultiSelectSelectAllViewContent.animate().alpha(show ? 1 : 0).start();
+    mViewPager.setEnableSwipingPages(!show);
+  }
+
   public boolean hasFrequents() {
     Fragment page = mAdapter.getItem(mAdapter.getRtlPosition(TAB_INDEX_SPEED_DIAL));
     return page instanceof OldSpeedDialFragment
@@ -424,4 +445,28 @@
     }
     Logger.get(getActivity()).logScreenView(screenType, getActivity());
   }
+
+  @Override
+  public void onClick(View v) {
+    updateSelectAllIcon();
+    selectAllMode = !selectAllMode;
+  }
+
+  public void setSelectAllModeToFalse() {
+    selectAllMode = false;
+    mSelectUnselectAllIcon.setImageDrawable(
+        getContext().getDrawable(R.drawable.ic_empty_check_mark_white_24dp));
+  }
+
+  private void updateSelectAllIcon() {
+    if (selectAllMode) {
+      mSelectUnselectAllIcon.setImageDrawable(
+          getContext().getDrawable(R.drawable.ic_empty_check_mark_white_24dp));
+      ((VisualVoicemailCallLogFragment) mCurrentPage).getAdapter().onAllDeselected();
+    } else {
+      mSelectUnselectAllIcon.setImageDrawable(
+          getContext().getDrawable(R.drawable.ic_check_mark_blue_24dp));
+      ((VisualVoicemailCallLogFragment) mCurrentPage).getAdapter().onAllSelected();
+    }
+  }
 }
diff --git a/java/com/android/dialer/app/list/OldSpeedDialFragment.java b/java/com/android/dialer/app/list/OldSpeedDialFragment.java
index 40fe745..1ddc0f4 100644
--- a/java/com/android/dialer/app/list/OldSpeedDialFragment.java
+++ b/java/com/android/dialer/app/list/OldSpeedDialFragment.java
@@ -50,12 +50,11 @@
 import com.android.contacts.common.list.ContactTileView;
 import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
 import com.android.dialer.app.R;
-import com.android.dialer.app.widget.EmptyContentView;
-import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallSpecificAppData;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.util.PermissionsUtil;
 import com.android.dialer.util.ViewUtil;
+import com.android.dialer.widget.EmptyContentView;
 import java.util.ArrayList;
 
 /** This fragment displays the user's favorite/frequent contacts in a grid. */
@@ -430,7 +429,7 @@
     void showAllContactsTab();
   }
 
-  private class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> {
+  class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> {
 
     @Override
     public CursorLoader onCreateLoader(int id, Bundle args) {
@@ -460,24 +459,17 @@
   private class ContactTileAdapterListener implements ContactTileView.Listener {
 
     @Override
-    public void onContactSelected(Uri contactUri, Rect targetRect) {
+    public void onContactSelected(
+        Uri contactUri, Rect targetRect, CallSpecificAppData callSpecificAppData) {
       if (mPhoneNumberPickerActionListener != null) {
-        CallSpecificAppData callSpecificAppData =
-            CallSpecificAppData.newBuilder()
-                .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
-                .build();
         mPhoneNumberPickerActionListener.onPickDataUri(
             contactUri, false /* isVideoCall */, callSpecificAppData);
       }
     }
 
     @Override
-    public void onCallNumberDirectly(String phoneNumber) {
+    public void onCallNumberDirectly(String phoneNumber, CallSpecificAppData callSpecificAppData) {
       if (mPhoneNumberPickerActionListener != null) {
-        CallSpecificAppData callSpecificAppData =
-            CallSpecificAppData.newBuilder()
-                .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
-                .build();
         mPhoneNumberPickerActionListener.onPickPhoneNumber(
             phoneNumber, false /* isVideoCall */, callSpecificAppData);
       }
diff --git a/java/com/android/dialer/app/list/PhoneFavoriteListView.java b/java/com/android/dialer/app/list/PhoneFavoriteListView.java
index 9516f06..f4f395f 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteListView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteListView.java
@@ -1,6 +1,5 @@
 /*
- * Copyright (C) 2012 Google Inc.
- * Licensed to The Android Open Source Project.
+ * Copyright (C) 2017 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,7 +23,6 @@
 import android.graphics.Bitmap;
 import android.os.Handler;
 import android.util.AttributeSet;
-import android.util.Log;
 import android.view.DragEvent;
 import android.view.MotionEvent;
 import android.view.View;
@@ -33,6 +31,7 @@
 import android.widget.ImageView;
 import com.android.dialer.app.R;
 import com.android.dialer.app.list.DragDropController.DragItemContainer;
+import com.android.dialer.common.LogUtil;
 
 /** Viewgroup that presents the user's speed dial contacts in a grid. */
 public class PhoneFavoriteListView extends GridView
@@ -40,14 +39,14 @@
 
   public static final String LOG_TAG = PhoneFavoriteListView.class.getSimpleName();
   final int[] mLocationOnScreen = new int[2];
-  private final long SCROLL_HANDLER_DELAY_MILLIS = 5;
-  private final int DRAG_SCROLL_PX_UNIT = 25;
-  private final float DRAG_SHADOW_ALPHA = 0.7f;
+  private static final long SCROLL_HANDLER_DELAY_MILLIS = 5;
+  private static final int DRAG_SCROLL_PX_UNIT = 25;
+  private static final float DRAG_SHADOW_ALPHA = 0.7f;
   /**
    * {@link #mTopScrollBound} and {@link mBottomScrollBound} will be offseted to the top / bottom by
    * {@link #getHeight} * {@link #BOUND_GAP_RATIO} pixels.
    */
-  private final float BOUND_GAP_RATIO = 0.2f;
+  private static final float BOUND_GAP_RATIO = 0.2f;
 
   private float mTouchSlop;
   private int mTopScrollBound;
@@ -67,7 +66,6 @@
         }
       };
   private boolean mIsDragScrollerRunning = false;
-  private int mTouchDownForDragStartX;
   private int mTouchDownForDragStartY;
   private Bitmap mDragShadowBitmap;
   private ImageView mDragShadowOverlay;
@@ -98,7 +96,7 @@
   }
 
   public PhoneFavoriteListView(Context context, AttributeSet attrs) {
-    this(context, attrs, -1);
+    this(context, attrs, 0);
   }
 
   public PhoneFavoriteListView(Context context, AttributeSet attrs, int defStyle) {
@@ -121,7 +119,6 @@
   @Override
   public boolean onInterceptTouchEvent(MotionEvent ev) {
     if (ev.getAction() == MotionEvent.ACTION_DOWN) {
-      mTouchDownForDragStartX = (int) ev.getX();
       mTouchDownForDragStartY = (int) ev.getY();
     }
 
@@ -287,7 +284,7 @@
       try {
         bitmap = cache.copy(Bitmap.Config.ARGB_8888, false);
       } catch (final OutOfMemoryError e) {
-        Log.w(LOG_TAG, "Failed to copy bitmap from Drawing cache", e);
+        LogUtil.w(LOG_TAG, "Failed to copy bitmap from Drawing cache", e);
         bitmap = null;
       }
     }
diff --git a/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java b/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java
index 5a18d03..40f23ea 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java
@@ -26,6 +26,8 @@
 import com.android.contacts.common.list.ContactEntry;
 import com.android.dialer.app.R;
 import com.android.dialer.compat.CompatUtils;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
 
 /** Displays the contact's picture overlaid with their name and number type in a tile. */
 public class PhoneFavoriteSquareTileView extends PhoneFavoriteTileView {
@@ -87,6 +89,8 @@
           new OnClickListener() {
             @Override
             public void onClick(View v) {
+              Logger.get(getContext())
+                  .logInteraction(InteractionEvent.Type.SPEED_DIAL_OPEN_CONTACT_CARD);
               launchQuickContact();
             }
           });
diff --git a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
index db89cf3..835b448 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
@@ -18,16 +18,22 @@
 
 import android.content.ClipData;
 import android.content.Context;
+import android.provider.ContactsContract.PinnedPositions;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.View;
 import android.widget.ImageView;
-import com.android.contacts.common.ContactPhotoManager;
 import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
 import com.android.contacts.common.MoreContactUtils;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
 import com.android.contacts.common.list.ContactEntry;
 import com.android.contacts.common.list.ContactTileView;
 import com.android.dialer.app.R;
+import com.android.dialer.callintent.CallInitiationType;
+import com.android.dialer.callintent.CallSpecificAppData;
+import com.android.dialer.callintent.SpeedDialContactType;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
 
 /**
  * A light version of the {@link com.android.contacts.common.list.ContactTileView} that is used in
@@ -42,7 +48,6 @@
   // tile is long pressed.
   static final String DRAG_PHONE_FAVORITE_TILE = "PHONE_FAVORITE_TILE";
   private static final String TAG = PhoneFavoriteTileView.class.getSimpleName();
-  private static final boolean DEBUG = false;
   // These parameters instruct the photo manager to display the default image/letter at 70% of
   // its normal size, and vertically offset upwards 12% towards the top of the letter tile, to
   // make room for the contact name and number label at the bottom of the image.
@@ -55,6 +60,8 @@
   private View mShadowOverlay;
   /** Users' most frequent phone number. */
   private String mPhoneNumberString;
+  private boolean isPinned;
+  private boolean isStarred;
 
   public PhoneFavoriteTileView(Context context, AttributeSet attrs) {
     super(context, attrs);
@@ -83,6 +90,8 @@
     super.loadFromContact(entry);
     // Set phone number to null in case we're reusing the view.
     mPhoneNumberString = null;
+    isPinned = (entry.pinned != PinnedPositions.UNPINNED);
+    isStarred = entry.isFavorite;
     if (entry != null) {
       // Grab the phone-number to call directly. See {@link onClick()}.
       mPhoneNumberString = entry.phoneNumber;
@@ -113,16 +122,35 @@
         if (mListener == null) {
           return;
         }
+
+        CallSpecificAppData.Builder callSpecificAppData =
+            CallSpecificAppData.newBuilder()
+                .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
+                .setSpeedDialContactPosition(
+                    ((PhoneFavoriteListView) v.getParent()).getPositionForView(v));
+        if (isStarred) {
+          callSpecificAppData.addSpeedDialContactType(SpeedDialContactType.Type.STARRED_CONTACT);
+        } else {
+          callSpecificAppData.addSpeedDialContactType(SpeedDialContactType.Type.FREQUENT_CONTACT);
+        }
+        if (isPinned) {
+          callSpecificAppData.addSpeedDialContactType(SpeedDialContactType.Type.PINNED_CONTACT);
+        }
+
         if (TextUtils.isEmpty(mPhoneNumberString)) {
           // Copy "superclass" implementation
+          Logger.get(getContext())
+              .logInteraction(InteractionEvent.Type.SPEED_DIAL_CLICK_CONTACT_WITH_AMBIGUOUS_NUMBER);
           mListener.onContactSelected(
-              getLookupUri(), MoreContactUtils.getTargetRectFromView(PhoneFavoriteTileView.this));
+              getLookupUri(),
+              MoreContactUtils.getTargetRectFromView(PhoneFavoriteTileView.this),
+              callSpecificAppData.build());
         } else {
           // When you tap a frequently-called contact, you want to
           // call them at the number that you usually talk to them
           // at (i.e. the one displayed in the UI), regardless of
           // whether that's their default number.
-          mListener.onCallNumberDirectly(mPhoneNumberString);
+          mListener.onCallNumberDirectly(mPhoneNumberString, callSpecificAppData.build());
         }
       }
     };
@@ -133,7 +161,7 @@
     return new DefaultImageRequest(
         displayName,
         lookupKey,
-        ContactPhotoManager.TYPE_DEFAULT,
+        LetterTileDrawable.TYPE_DEFAULT,
         DEFAULT_IMAGE_LETTER_SCALE,
         DEFAULT_IMAGE_LETTER_OFFSET,
         false);
diff --git a/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java b/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java
index c692eca..ce85982 100644
--- a/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java
+++ b/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java
@@ -30,7 +30,6 @@
 import android.provider.ContactsContract.PinnedPositions;
 import android.support.annotation.VisibleForTesting;
 import android.text.TextUtils;
-import android.util.Log;
 import android.util.LongSparseArray;
 import android.view.View;
 import android.view.ViewGroup;
@@ -41,6 +40,11 @@
 import com.android.contacts.common.list.ContactTileView;
 import com.android.contacts.common.preference.ContactsPreferences;
 import com.android.dialer.app.R;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.lightbringer.Lightbringer;
+import com.android.dialer.lightbringer.LightbringerComponent;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
 import com.android.dialer.shortcuts.ShortcutRefresher;
 import com.google.common.collect.ComparisonChain;
 import java.util.ArrayList;
@@ -190,6 +194,14 @@
     // Track the length of {@link #mContactEntries} and compare to {@link #TILES_SOFT_LIMIT}.
     int counter = 0;
 
+    // Data for logging
+    int starredContactsCount = 0;
+    int pinnedContactsCount = 0;
+    int multipleNumbersContactsCount = 0;
+    int contactsWithPhotoCount = 0;
+    int contactsWithNameCount = 0;
+    int duoReachableContactsCount = 0;
+
     // The cursor should not be closed since this is invoked from a CursorLoader.
     if (cursor.moveToFirst()) {
       int starredColumn = cursor.getColumnIndexOrThrow(Contacts.STARRED);
@@ -262,6 +274,22 @@
         contact.pinned = pinned;
         mContactEntries.add(contact);
 
+        // Set counts for logging
+        if (isStarred) {
+          // mNumStarred might be larger than the number of visible starred contact,
+          // since it includes invisible ones (starred contact with no phone number).
+          starredContactsCount++;
+        }
+        if (pinned != PinnedPositions.UNPINNED) {
+          pinnedContactsCount++;
+        }
+        if (!TextUtils.isEmpty(name)) {
+          contactsWithNameCount++;
+        }
+        if (photoUri != null) {
+          contactsWithPhotoCount++;
+        }
+
         duplicates.put(id, contact);
 
         counter++;
@@ -274,6 +302,47 @@
 
     ShortcutRefresher.refresh(mContext, mContactEntries);
     notifyDataSetChanged();
+
+    Lightbringer lightbringer = LightbringerComponent.get(mContext).getLightbringer();
+    for (ContactEntry contact : mContactEntries) {
+      if (contact.phoneNumber == null) {
+        multipleNumbersContactsCount++;
+      } else if (lightbringer.isReachable(mContext, contact.phoneNumber)) {
+        duoReachableContactsCount++;
+      }
+    }
+
+    Logger.get(mContext)
+        .logSpeedDialContactComposition(
+            counter,
+            starredContactsCount,
+            pinnedContactsCount,
+            multipleNumbersContactsCount,
+            contactsWithPhotoCount,
+            contactsWithNameCount,
+            duoReachableContactsCount);
+    // Logs for manual testing
+    LogUtil.v("PhoneFavoritesTileAdapter.saveCursorToCache", "counter: %d", counter);
+    LogUtil.v(
+        "PhoneFavoritesTileAdapter.saveCursorToCache",
+        "starredContactsCount: %d",
+        starredContactsCount);
+    LogUtil.v(
+        "PhoneFavoritesTileAdapter.saveCursorToCache",
+        "pinnedContactsCount: %d",
+        pinnedContactsCount);
+    LogUtil.v(
+        "PhoneFavoritesTileAdapter.saveCursorToCache",
+        "multipleNumbersContactsCount: %d",
+        multipleNumbersContactsCount);
+    LogUtil.v(
+        "PhoneFavoritesTileAdapter.saveCursorToCache",
+        "contactsWithPhotoCount: %d",
+        contactsWithPhotoCount);
+    LogUtil.v(
+        "PhoneFavoritesTileAdapter.saveCursorToCache",
+        "contactsWithNameCount: %d",
+        contactsWithNameCount);
   }
 
   /** Iterates over the {@link Cursor} Returns position of the first NON Starred Contact */
@@ -347,7 +416,7 @@
   @Override
   public void notifyDataSetChanged() {
     if (DEBUG) {
-      Log.v(TAG, "notifyDataSetChanged");
+      LogUtil.v(TAG, "notifyDataSetChanged");
     }
     super.notifyDataSetChanged();
   }
@@ -355,7 +424,7 @@
   @Override
   public View getView(int position, View convertView, ViewGroup parent) {
     if (DEBUG) {
-      Log.v(TAG, "get view for " + String.valueOf(position));
+      LogUtil.v(TAG, "get view for " + position);
     }
 
     PhoneFavoriteTileView tileView = null;
@@ -455,8 +524,9 @@
           // update the database here with the new pinned positions
           try {
             mContext.getContentResolver().applyBatch(ContactsContract.AUTHORITY, operations);
+            Logger.get(mContext).logInteraction(InteractionEvent.Type.SPEED_DIAL_PIN_CONTACT);
           } catch (RemoteException | OperationApplicationException e) {
-            Log.e(TAG, "Exception thrown when pinning contacts", e);
+            LogUtil.e(TAG, "Exception thrown when pinning contacts", e);
           }
         }
       }
@@ -609,6 +679,7 @@
     if (mDraggedEntry != null) {
       unstarAndUnpinContact(mDraggedEntry.lookupUri);
       mAwaitingRemove = true;
+      Logger.get(mContext).logInteraction(InteractionEvent.Type.SPEED_DIAL_REMOVE_CONTACT);
     }
   }
 
diff --git a/java/com/android/dialer/app/list/RegularSearchFragment.java b/java/com/android/dialer/app/list/RegularSearchFragment.java
index 0289679..4f03203 100644
--- a/java/com/android/dialer/app/list/RegularSearchFragment.java
+++ b/java/com/android/dialer/app/list/RegularSearchFragment.java
@@ -25,12 +25,12 @@
 import com.android.contacts.common.list.ContactEntryListAdapter;
 import com.android.contacts.common.list.PinnedHeaderListView;
 import com.android.dialer.app.R;
-import com.android.dialer.app.widget.EmptyContentView;
-import com.android.dialer.app.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.phonenumbercache.CachedNumberLookupService;
 import com.android.dialer.phonenumbercache.PhoneNumberCache;
 import com.android.dialer.util.PermissionsUtil;
+import com.android.dialer.widget.EmptyContentView;
+import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 
 public class RegularSearchFragment extends SearchFragment
     implements OnEmptyViewActionButtonClickedListener,
diff --git a/java/com/android/dialer/app/list/RemoveView.java b/java/com/android/dialer/app/list/RemoveView.java
index 3b917db..1d566c5 100644
--- a/java/com/android/dialer/app/list/RemoveView.java
+++ b/java/com/android/dialer/app/list/RemoveView.java
@@ -41,7 +41,7 @@
   }
 
   public RemoveView(Context context, AttributeSet attrs) {
-    this(context, attrs, -1);
+    this(context, attrs, 0);
   }
 
   public RemoveView(Context context, AttributeSet attrs, int defStyle) {
diff --git a/java/com/android/dialer/app/list/SearchFragment.java b/java/com/android/dialer/app/list/SearchFragment.java
index fcf8236..7f2d176 100644
--- a/java/com/android/dialer/app/list/SearchFragment.java
+++ b/java/com/android/dialer/app/list/SearchFragment.java
@@ -34,19 +34,18 @@
 import android.widget.ListView;
 import android.widget.Space;
 import com.android.contacts.common.list.ContactEntryListAdapter;
-import com.android.contacts.common.list.ContactListItemView;
 import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
 import com.android.contacts.common.list.PhoneNumberPickerFragment;
 import com.android.dialer.animation.AnimUtils;
 import com.android.dialer.app.R;
 import com.android.dialer.app.dialpad.DialpadFragment.ErrorDialogFragment;
 import com.android.dialer.app.widget.DialpadSearchEmptyContentView;
-import com.android.dialer.app.widget.EmptyContentView;
 import com.android.dialer.callintent.CallSpecificAppData;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.util.DialerUtils;
 import com.android.dialer.util.IntentUtil;
 import com.android.dialer.util.PermissionsUtil;
+import com.android.dialer.widget.EmptyContentView;
 
 public class SearchFragment extends PhoneNumberPickerFragment {
 
@@ -80,7 +79,6 @@
     setQuickContactEnabled(true);
     setAdjustSelectionBoundsEnabled(false);
     setDarkTheme(false);
-    setPhotoPosition(ContactListItemView.getDefaultPhotoPosition(false /* opposite */));
     setUseCallableUri(true);
 
     try {
diff --git a/java/com/android/dialer/app/list/SmartDialSearchFragment.java b/java/com/android/dialer/app/list/SmartDialSearchFragment.java
index eb1508c..fc21c8b 100644
--- a/java/com/android/dialer/app/list/SmartDialSearchFragment.java
+++ b/java/com/android/dialer/app/list/SmartDialSearchFragment.java
@@ -29,11 +29,11 @@
 import com.android.contacts.common.list.ContactEntryListAdapter;
 import com.android.dialer.app.R;
 import com.android.dialer.app.dialpad.SmartDialCursorLoader;
-import com.android.dialer.app.widget.EmptyContentView;
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.database.DialerDatabaseHelper;
 import com.android.dialer.util.PermissionsUtil;
+import com.android.dialer.widget.EmptyContentView;
 
 /** Implements a fragment to load and display SmartDial search results. */
 public class SmartDialSearchFragment extends SearchFragment
diff --git a/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml b/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml
index ca93da0..7c6df94 100644
--- a/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml
+++ b/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml
@@ -19,7 +19,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.android.dialer.app">
 
-  <application>
+  <application android:theme="@style/Theme.AppCompat">
 
     <activity
       android:exported="false"
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.png
new file mode 100644
index 0000000..eeed895
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.png
new file mode 100644
index 0000000..b041a74
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.png
new file mode 100644
index 0000000..2c5ba8d
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.png
deleted file mode 100644
index 3a1a7a7..0000000
--- a/java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.png
new file mode 100644
index 0000000..f3b76be
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.png
deleted file mode 100644
index 74ccf14..0000000
--- a/java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.png
new file mode 100644
index 0000000..01a3bbe
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.png
deleted file mode 100644
index 0e24fa4..0000000
--- a/java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.png
new file mode 100644
index 0000000..2043279
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.png
deleted file mode 100644
index 9594619..0000000
--- a/java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.png
new file mode 100644
index 0000000..bfbe69e
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.png
deleted file mode 100644
index 395652c..0000000
--- a/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable/ic_search_phone.xml b/java/com/android/dialer/app/res/drawable/ic_search_phone.xml
deleted file mode 100644
index 5d449ee..0000000
--- a/java/com/android/dialer/app/res/drawable/ic_search_phone.xml
+++ /dev/null
@@ -1,20 +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.
--->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-  android:src="@drawable/ic_results_phone"
-  android:tint="@color/search_shortcut_icon_color"/>
diff --git a/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml b/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml
new file mode 100644
index 0000000..9687133
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:tint="?attr/colorControlNormal"
+    android:viewportHeight="30"
+    android:viewportWidth="30"
+    android:width="24dp">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M14.88,16.3h0L25,3.66a16.51,16.51 0,0 0,-20.3 0L14.88,16.3Z"/>
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M26.42,18.88a1.25,1.25 0,0 0,-0.89 -0.36,1.28 1.28,0 0,0 -0.87,0.35 14.26,14.26 0,0 1,-3.32 2.31,1.24 1.24,0 0,0 -0.7,1.12v3.87a18.27,18.27 0,0 1,-5.75 0.91,18.63 18.63,0 0,1 -5.75,-0.9v-3.87a1.26,1.26 0,0 0,-0.7 -1.12,14.73 14.73,0 0,1 -3.34,-2.31 1.23,1.23 0,0 0,-0.87 -0.35,1.25 1.25,0 0,0 -0.89,0.36L0.24,22a1.24,1.24 0,0 0,-0.36 0.89,1.23 1.23,0 0,0 0.37,0.87 21.26,21.26 0,0 0,29.26 0,1.27 1.27,0 0,0 0,-1.77Z"/>
+</vector>
\ No newline at end of file
diff --git a/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml b/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml
index 5f80680..59d1363 100644
--- a/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml
+++ b/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml
@@ -26,14 +26,14 @@
       android:layout_height="0dp"
       android:layout_weight="1"/>
     <ImageView
-      android:id="@+id/emptyListViewImage"
+      android:id="@+id/empty_list_view_image"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_gravity="center_horizontal"
       android:importantForAccessibility="no"/>
 
     <TextView
-      android:id="@+id/emptyListViewMessage"
+      android:id="@+id/empty_list_view_message"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:paddingTop="8dp"
@@ -45,7 +45,7 @@
       android:textSize="@dimen/empty_list_message_text_size"/>
 
     <TextView
-      android:id="@+id/emptyListViewAction"
+      android:id="@+id/empty_list_view_action"
       style="@style/TextActionStyle"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
diff --git a/java/com/android/dialer/app/res/layout/action_mode_close_button.xml b/java/com/android/dialer/app/res/layout/action_mode_close_button.xml
new file mode 100644
index 0000000..4cb85d4
--- /dev/null
+++ b/java/com/android/dialer/app/res/layout/action_mode_close_button.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/action_mode_close_button"
+    style="?attr/actionModeCloseButtonStyle"
+    android:layout_width="wrap_content"
+    android:layout_height="match_parent"
+    android:layout_marginEnd="16dip"
+    android:layout_marginRight="16dip"
+    android:paddingStart="8dp"
+    android:paddingLeft="8dp"
+    android:clickable="true"
+    android:contentDescription="@string/description_cancel_multi_select"
+    android:focusable="true"
+    android:src="@drawable/quantum_ic_close_white_24"/>
+
+
diff --git a/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml b/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml
index 17a4520..422c529 100644
--- a/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml
@@ -45,7 +45,7 @@
       android:cropToPadding="false"
       android:clipToPadding="false"/>
 
-    <com.android.dialer.app.widget.EmptyContentView
+    <com.android.dialer.widget.EmptyContentView
       android:id="@+id/empty_list_view"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
diff --git a/java/com/android/dialer/app/res/layout/call_log_fragment.xml b/java/com/android/dialer/app/res/layout/call_log_fragment.xml
index 64f7c10..8ed2d5b 100644
--- a/java/com/android/dialer/app/res/layout/call_log_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/call_log_fragment.xml
@@ -37,7 +37,7 @@
     android:background="@color/background_dialer_call_log"
     android:clipToPadding="false"/>
 
-  <com.android.dialer.app.widget.EmptyContentView
+  <com.android.dialer.widget.EmptyContentView
     android:id="@+id/empty_list_view"
     android:layout_width="match_parent"
     android:layout_height="0dp"
diff --git a/java/com/android/dialer/app/res/layout/call_log_list_item.xml b/java/com/android/dialer/app/res/layout/call_log_list_item.xml
index 0fbbb9d..4a3a836 100644
--- a/java/com/android/dialer/app/res/layout/call_log_list_item.xml
+++ b/java/com/android/dialer/app/res/layout/call_log_list_item.xml
@@ -80,7 +80,7 @@
               android:layout_width="@dimen/contact_photo_size"
               android:layout_height="@dimen/contact_photo_size"
               android:visibility="gone"
-              android:src="@drawable/quantum_ic_check_circle_googblue_24" />
+              android:src="@drawable/ic_check_mark_48dp" />
 
         </FrameLayout>
 
diff --git a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
index d3a5531..5046383 100644
--- a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
+++ b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
@@ -50,7 +50,7 @@
       <TextView
         android:id="@+id/call_action_text"
         style="@style/CallLogActionTextStyle"
-        android:text="@string/description_call_log_call_action"/>
+        android:text="@string/call"/>
 
       <TextView
         android:id="@+id/call_type_or_location_text"
@@ -135,7 +135,7 @@
 
     <ImageView
       style="@style/CallLogActionIconStyle"
-      android:src="@drawable/ic_call_and_share"/>
+      android:src="@drawable/ic_phone_attach"/>
 
     <TextView
       style="@style/CallLogActionTextStyle"
diff --git a/java/com/android/dialer/app/res/layout/dialpad_fragment.xml b/java/com/android/dialer/app/res/layout/dialpad_fragment.xml
index dd6dab7..9b95e1f 100644
--- a/java/com/android/dialer/app/res/layout/dialpad_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/dialpad_fragment.xml
@@ -21,42 +21,42 @@
     android:orientation="horizontal">
 
   <LinearLayout
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical">
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:orientation="vertical">
 
     <!-- spacer view -->
     <View
-      android:id="@+id/spacer"
-      android:layout_width="match_parent"
-      android:layout_height="0dp"
-      android:layout_weight="1"
-      android:background="#00000000"/>
+        android:id="@+id/spacer"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1"
+        android:background="#00000000"/>
     <!-- Dialpad shadow -->
     <View
-      android:layout_width="match_parent"
-      android:layout_height="@dimen/shadow_length"
-      android:background="@drawable/shadow_fade_up"/>
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/shadow_length"
+        android:background="@drawable/shadow_fade_up"/>
     <include layout="@layout/dialpad_view"/>
     <!-- "Dialpad chooser" UI, shown only when the user brings up the
              Dialer while a call is already in progress.
              When this UI is visible, the other Dialer elements
              (the textfield/button and the dialpad) are hidden. -->
     <ListView
-      android:id="@+id/dialpadChooser"
-      android:layout_width="match_parent"
-      android:layout_height="wrap_content"
-      android:background="@color/background_dialer_light"
-      android:visibility="gone"/>
+        android:id="@+id/dialpadChooser"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/background_dialer_light"
+        android:visibility="gone"/>
 
   </LinearLayout>
 
   <!-- Margin bottom and alignParentBottom don't work well together, so use a Space instead. -->
   <Space
-    android:id="@+id/dialpad_floating_action_button_margin_bottom"
-    android:layout_width="match_parent"
-    android:layout_height="@dimen/floating_action_button_margin_bottom"
-    android:layout_alignParentBottom="true"/>
+      android:id="@+id/dialpad_floating_action_button_margin_bottom"
+      android:layout_width="match_parent"
+      android:layout_height="@dimen/floating_action_button_margin_bottom"
+      android:layout_alignParentBottom="true"/>
 
   <android.support.design.widget.FloatingActionButton
       android:id="@+id/dialpad_floating_action_button"
@@ -64,8 +64,9 @@
       android:layout_height="@dimen/floating_action_button_height"
       android:layout_above="@id/dialpad_floating_action_button_margin_bottom"
       android:layout_centerHorizontal="true"
-      android:src="@drawable/quantum_ic_call_white_24"
       android:contentDescription="@string/description_dial_button"
-      app:elevation="@dimen/floating_action_button_translation_z"
-      app:backgroundTint="@color/dialpad_fab_green"/>
+      android:src="@drawable/quantum_ic_call_vd_theme_24"
+      app:backgroundTint="@color/dialpad_fab_green"
+      app:colorControlNormal="#ffffff"
+      app:elevation="@dimen/floating_action_button_translation_z"/>
 </view>
diff --git a/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml b/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml
index e245aac..1d20479 100644
--- a/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml
+++ b/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml
@@ -16,7 +16,7 @@
 
 <merge xmlns:android="http://schemas.android.com/apk/res/android">
   <ImageView
-    android:id="@+id/emptyListViewImage"
+    android:id="@+id/empty_list_view_image"
     android:layout_height="0dp"
     android:layout_weight="1"
     android:layout_width="match_parent"
@@ -24,7 +24,7 @@
     android:gravity="center_horizontal" />
 
   <TextView
-    android:id="@+id/emptyListViewMessage"
+    android:id="@+id/empty_list_view_message"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:gravity="center_horizontal|top"
@@ -36,7 +36,7 @@
     android:paddingBottom="8dp"/>
 
   <TextView
-    android:id="@+id/emptyListViewAction"
+    android:id="@+id/empty_list_view_action"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:gravity="center_horizontal"
diff --git a/java/com/android/dialer/app/res/layout/lists_fragment.xml b/java/com/android/dialer/app/res/layout/lists_fragment.xml
index 442b428..71867d7 100644
--- a/java/com/android/dialer/app/res/layout/lists_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/lists_fragment.xml
@@ -15,41 +15,41 @@
 -->
 
 <FrameLayout
-  xmlns:android="http://schemas.android.com/apk/res/android"
-  android:id="@+id/lists_frame"
-  android:layout_width="match_parent"
-  android:layout_height="match_parent"
-  android:animateLayoutChanges="true">
-
-  <LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/lists_frame"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:orientation="vertical">
+    android:animateLayoutChanges="true">
+
+  <LinearLayout
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:orientation="vertical">
 
     <!-- TODO: Apply background color to ActionBar instead of a FrameLayout. For now, this is
          the easiest way to preserve correct pane scrolling and searchbar collapse/expand
          behaviors. -->
     <FrameLayout
-      android:layout_width="match_parent"
-      android:layout_height="@dimen/action_bar_height_large"
-      android:background="@color/actionbar_background_color"
-      android:elevation="@dimen/tab_elevation"/>
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/action_bar_height_large"
+        android:background="@color/actionbar_background_color"
+        android:elevation="@dimen/tab_elevation"/>
 
     <com.android.contacts.common.list.ViewPagerTabs
-      android:id="@+id/lists_pager_header"
-      style="@style/DialtactsActionBarTabTextStyle"
-      android:layout_width="match_parent"
-      android:layout_height="@dimen/tab_height"
-      android:layout_gravity="top"
-      android:elevation="@dimen/tab_elevation"
-      android:orientation="horizontal"
-      android:textAllCaps="true"/>
+        android:id="@+id/lists_pager_header"
+        style="@style/DialtactsActionBarTabTextStyle"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/tab_height"
+        android:layout_gravity="top"
+        android:elevation="@dimen/tab_elevation"
+        android:orientation="horizontal"
+        android:textAllCaps="true"/>
 
-    <android.support.v4.view.ViewPager
-      android:id="@+id/lists_pager"
-      android:layout_width="match_parent"
-      android:layout_height="0dp"
-      android:layout_weight="1"/>
+    <com.android.dialer.app.list.DialerViewPager
+        android:id="@+id/lists_pager"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1"/>
 
   </LinearLayout>
 
@@ -58,41 +58,80 @@
        This is required since drag and drop event is only sent to views are visible when drag
        starts. -->
   <com.android.dialer.app.list.RemoveView
-    android:id="@+id/remove_view"
-    android:layout_width="match_parent"
-    android:layout_height="@dimen/tab_height"
-    android:layout_marginTop="@dimen/action_bar_height_large"
-    android:contentDescription="@string/remove_contact"
-    android:importantForAccessibility="no">
+      android:id="@+id/remove_view"
+      android:layout_width="match_parent"
+      android:layout_height="@dimen/tab_height"
+      android:layout_marginTop="@dimen/action_bar_height_large"
+      android:contentDescription="@string/remove_contact"
+      android:importantForAccessibility="no">
 
     <LinearLayout
-      android:id="@+id/remove_view_content"
-      android:layout_width="match_parent"
-      android:layout_height="match_parent"
-      android:background="@color/actionbar_background_color"
-      android:gravity="center"
-      android:orientation="horizontal"
-      android:visibility="gone">
+        android:id="@+id/remove_view_content"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/actionbar_background_color"
+        android:gravity="center"
+        android:orientation="horizontal"
+        android:visibility="gone">
 
       <ImageView
-        android:id="@+id/remove_view_icon"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="8dp"
-        android:layout_marginBottom="8dp"
-        android:src="@drawable/ic_remove"
-        android:tint="@color/remove_text_color"/>
+          android:id="@+id/remove_view_icon"
+          android:layout_width="wrap_content"
+          android:layout_height="wrap_content"
+          android:layout_marginTop="8dp"
+          android:layout_marginBottom="8dp"
+          android:src="@drawable/ic_remove"
+          android:tint="@color/remove_text_color"/>
 
       <TextView
-        android:id="@+id/remove_view_text"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/remove_contact"
-        android:textColor="@color/remove_text_color"
-        android:textSize="@dimen/remove_text_size"/>
+          android:id="@+id/remove_view_text"
+          android:layout_width="wrap_content"
+          android:layout_height="wrap_content"
+          android:text="@string/remove_contact"
+          android:textColor="@color/remove_text_color"
+          android:textSize="@dimen/remove_text_size"/>
 
     </LinearLayout>
 
   </com.android.dialer.app.list.RemoveView>
 
+  <FrameLayout
+      android:id="@+id/multi_select_view"
+      android:layout_width="match_parent"
+      android:layout_height="@dimen/tab_height"
+      android:layout_marginTop="@dimen/action_bar_height_large"
+      android:contentDescription="@string/remove_contact"
+      android:importantForAccessibility="no">
+
+    <LinearLayout
+        android:id="@+id/multi_select_select_all_view_content"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_gravity="center"
+        android:background="@color/actionbar_background_color"
+        android:orientation="horizontal"
+        android:visibility="gone">
+
+      <ImageView
+          android:id="@+id/select_all_view_icon"
+          android:layout_width="wrap_content"
+          android:layout_height="match_parent"
+          android:paddingLeft="12dp"
+          android:gravity="center_vertical"
+          android:src="@drawable/ic_empty_check_mark_white_24dp"/>
+      <TextView
+          android:id="@+id/select_all_view_text"
+          android:layout_width="wrap_content"
+          android:layout_height="match_parent"
+          android:paddingLeft="30dp"
+          android:gravity="center_vertical"
+          android:text="@string/select_all"
+          android:textAllCaps="true"
+          android:textStyle="bold"
+          android:textColor="@color/remove_text_color"
+          android:textSize="@dimen/remove_text_size"/>
+    </LinearLayout>
+
+  </FrameLayout>
+
 </FrameLayout>
diff --git a/java/com/android/dialer/app/res/layout/search_edittext.xml b/java/com/android/dialer/app/res/layout/search_edittext.xml
index c02512d..bb6a5f7 100644
--- a/java/com/android/dialer/app/res/layout/search_edittext.xml
+++ b/java/com/android/dialer/app/res/layout/search_edittext.xml
@@ -29,7 +29,7 @@
       android:padding="@dimen/search_box_search_icon_padding"
       android:importantForAccessibility="no"
       android:scaleType="center"
-      android:src="@drawable/quantum_ic_search_white_24"
+      android:src="@drawable/quantum_ic_search_vd_theme_24"
       android:tint="@color/searchbox_icon_tint"/>
 
     <TextView
diff --git a/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml b/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml
index c778c6b..3fa3be2 100644
--- a/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml
@@ -41,7 +41,7 @@
       android:numColumns="@integer/contact_tile_column_count_in_favorites"/>
   </FrameLayout>
 
-  <com.android.dialer.app.widget.EmptyContentView
+  <com.android.dialer.widget.EmptyContentView
     android:id="@+id/empty_list_view"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
diff --git a/java/com/android/dialer/app/res/values-af/strings.xml b/java/com/android/dialer/app/res/values-af/strings.xml
index 2eb462b..4f4c65b 100644
--- a/java/com/android/dialer/app/res/values-af/strings.xml
+++ b/java/com/android/dialer/app/res/values-af/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Keer terug na oproep wat besig is"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Voeg oproep by"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Inkomende oproepe"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Gaan tans grootmaathandelingmodus in"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Het grootmaathandelingmodus verlaat"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Het <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> gekies"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Het <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ontkies"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Speel stemboodskap"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Bekyk kontak <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Bel <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Stemboodskap"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Kanselleer grootmaathandelingmodus"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"stemboodskap"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"stemboodskappe"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nee"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vee geselekteerde <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> uit?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> gekies"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> om <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Laai tans van SIM-kaart af…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM-kaartkontakte"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Geen kontakte-program beskikbaar nie"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Stemsoektog is nie beskikbaar nie"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Kan nie \'n foonoproep maak nie want die Foon-program is gedeaktiveer."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Deursoek kontakte"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nuwe gemiste oproepe"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Daar is nog niemand op jou spoedbel nie"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Voeg \'n gunsteling by"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Jy het nog nie enige kontakte nie"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Voeg \'n kontak by"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Raak aan prent om al die nommers te sien of raak en hou om te herorganiseer"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Verwyder"</string>
+    <string name="select_all" msgid="408601760696146245">"Kies alles"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video-oproep"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Stuur \'n boodskap"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Oproepbesonderhede"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Geblokkeerde nommers"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is reeds geblokkeer."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Oproeprekeninge"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Skakel aan"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Stel toestemmings"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Skakel die kontaktetoestemming aan om spoedbel te aktiveer."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Skakel die foontoestemming aan om jou oproeprekord te sien."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Skakel die kontaktetoestemming aan om jou kontakte te sien."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Skakel die foontoestemming aan om na jou stemboodskapdiens te gaan."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Skakel die Kontakte-toestemmings aan om jou kontakte te deursoek."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Skakel die foontoestemming aan om \'n oproep te maak."</string>
diff --git a/java/com/android/dialer/app/res/values-am/strings.xml b/java/com/android/dialer/app/res/values-am/strings.xml
index 8230301..7f4a622 100644
--- a/java/com/android/dialer/app/res/values-am/strings.xml
+++ b/java/com/android/dialer/app/res/values-am/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"በመካሄድ ላይ ወዳለው ጥሪ ተመለስ"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ጥሪ ያክሉ"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ገቢ ጥሪዎች"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ወደ የጅምላ እርምጃ ሁነታ በመግባት ላይ"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ከጅምላ እርምጃ ሁነታ ለቀው ወጥተዋል"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ተመርጧል"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> አልተመረጠም"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"የድምፅ መልዕክት አጫውት"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"ዕውቂያ <xliff:g id="NAME">%1$s</xliff:g> ዕይ"</string>
     <string name="description_call" msgid="1532402285334775372">"ጥሪ <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"የድምፅ መልዕክት"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ሰከንድ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ደቂቃ <xliff:g id="SECONDS">%s</xliff:g> ሴከ"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"የጅምላ እርምጃ ሁነታ ይቅር"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"የድምፅ መልዕክት"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"የድምፅ መልዕክቶች"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"አዎ"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"አይ"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"የተመረጠው <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ይሰረዝ?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ተመርጠዋል"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g> ላይ"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"ከSIM ካርድ ላይ በመጫን ላይ..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"የSIM ካርድ ዕውቂያዎች"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"ምንም የእውቂያዎች መተግበሪያ አይገኝም"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"የድምጽ ፍለጋ አይገኝም"</string>
     <string name="call_not_available" msgid="7850148370757361155">"የስልክ መተግበሪያው ስለተሰናከለ የስልክ ጥሪ ማድረግ አይቻልም።"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ዕውቅያዎችን ፈልግ"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> አዲስ ያልተመለሱ ጥሪዎች"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"በፈጥኖ መደወያ ላይ ገና ማንም የለዎትም"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ተወዳጅ አክል"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"ገና ምንም እውቂያዎች የሉዎትም"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ዕውቂያ አክል"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"ሁሉንም ቁጥሮች ለማየት ምስል ይንኩ ወይም ዳግም ለመደርደር ነክተው ይያዙት"</string>
     <string name="remove_contact" msgid="2353580570488923668">"አስወግድ"</string>
+    <string name="select_all" msgid="408601760696146245">"ሁሉንም ምረጥ"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"የቪዲዮ ጥሪ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"መልእክት ላክ"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"የጥሪ ዝርዝሮች"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"የታገዱ ቁጥሮች"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ቀድሞውኑ ታግዷል።"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"የመደወያ መለያዎች"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"አብራ"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ፍቃዶችን አዋቅር"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"ፈጥኖ መደወያን ለማንቃት የእውቂያዎች ፍቃዱን ያብሩ።"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"የጥሪ ምዝግብ ማስታወአሽዎን ለማየት የስልክ ፍቃዱን ያብሩ።"</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"የእርስዎን እውቂያዎች ለማየት የእውቂያዎች ፍቃዱን ያብሩ።"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"የድምፅ መልዕክትዎን ለመድረስ የስልክ ፍቃዱን ያብሩ።"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"የእርስዎን እውቂያዎች ለመከታተል የእውቂያዎች ፍቃዶችን ያብሩ።"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ስልክ ለመደወል የስልክ ፍቃዱን ያብሩ።"</string>
diff --git a/java/com/android/dialer/app/res/values-ar/strings.xml b/java/com/android/dialer/app/res/values-ar/strings.xml
index e4dfb4d..3687d0b 100644
--- a/java/com/android/dialer/app/res/values-ar/strings.xml
+++ b/java/com/android/dialer/app/res/values-ar/strings.xml
@@ -89,6 +89,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"عودة إلى المكالمة الجارية"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"إضافة مكالمة"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"المكالمات الواردة"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"يتم الدخول إلى وضع الإجراء المجمَّع"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"تمت مغادرة وضع الإجراء المجمَّع"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"تم تحديد <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"تم إلغاء تحديد <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"تشغيل البريد الصوتي"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"عرض جهة الاتصال <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"الاتصال بـ <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,11 +107,13 @@
     <string name="voicemail" msgid="8899540969000957954">"البريد الصوتي"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ثانية"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> دقيقة <xliff:g id="SECONDS">%s</xliff:g> ثانية"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"إلغاء وضع الإجراءات المجمَّع"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"البريد الصوتي"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"رسائل البريد الصوتي"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"نعم"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"لا"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"حذف رسائل <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> المحددة؟"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"تم تحديد <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> في <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -120,7 +126,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"‏جارٍ التحميل من شريحة SIM…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"‏شريحة SIM وجهات الاتصال"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"لا يتوفر تطبيق لجهات الاتصال"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"البحث الصوتي غير متاح"</string>
     <string name="call_not_available" msgid="7850148370757361155">"يتعذر إجراء مكالمة هاتفية نظرًا لأنه تم تعطيل تطبيق الهاتف."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"البحث في جهات الاتصال"</string>
@@ -149,10 +154,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> من المكالمات الجديدة الفائتة"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"لم تتم إضافة أية جهة اتصال إلى قائمة الاتصال السريع حتى الآن"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"إضافة مفضلة"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"ليست لديك أية جهات اتصال حتى الآن"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"إضافة جهة اتصال"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"المس الصورة للاطلاع على جميع الأرقام أو المس مع الاستمرار لإعادة الترتيب"</string>
     <string name="remove_contact" msgid="2353580570488923668">"إزالة"</string>
+    <string name="select_all" msgid="408601760696146245">"تحديد الكل"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"مكالمة فيديو"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"إرسال رسالة"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"تفاصيل المكالمة"</string>
@@ -221,11 +225,9 @@
     <string name="block_list" msgid="4701585783411870782">"الأرقام المحظورة"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"تم حظر <xliff:g id="NUMBER">%1$s</xliff:g>."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"حسابات الاتصال"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"تشغيل"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"تعيين الأذونات"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"لتمكين الاتصال السريع، شغِّل إذن جهات الاتصال."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"للاطلاع على سجل المكالمات، شغِّل إذن الهاتف."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"للاطلاع على جهات الاتصال، شغِّل إذن جهات الاتصال."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"للوصول إلى البريد الصوتي، شغِّل إذن الهاتف."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"للبحث عن جهات الاتصال، عليك تشغيل أذونات جهات الاتصال."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"لإجراء مكالمة، شغِّل إذن الهاتف."</string>
diff --git a/java/com/android/dialer/app/res/values-az/strings.xml b/java/com/android/dialer/app/res/values-az/strings.xml
index 62bc117..b6681c9 100644
--- a/java/com/android/dialer/app/res/values-az/strings.xml
+++ b/java/com/android/dialer/app/res/values-az/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Davam edən zəngə qayıdın"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Zəng əlavə edin"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Gələn zənglər"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Toplu əməliyyat rejiminə daxil olunur"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Toplu əməliyyat rejimi tərk edilir"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> seçildi"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> seçilmədi"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Səsli məktubu oxudun"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> adlı kontakta baxın"</string>
     <string name="description_call" msgid="1532402285334775372">"Zəng <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Səsli poçt"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> san"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> dəq <xliff:g id="SECONDS">%s</xliff:g> san"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Qrup əməliyyatları rejimini ləğv edin"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"səsli e-məktub"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"səsli e-məktublar"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Bəli"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Xeyr"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Seçilmiş <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> silinsin?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> seçilib"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> tarixində <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM kartdan yüklənir..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM kart kontaktları"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Əlaqələr proqramı mövcud deyil"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Səsli axtarış mövcud deyil"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Telefon tətbiqi deaktiv edildiyinə görə telefon zəngi etmək mümkün deyil."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kontakt axtarın"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> yeni buraxılmış zəng"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Hələ sürətli zəng siyahınızda hec kim yoxdur"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Sevimlilərə əlavə edin"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Hələ heç bir kontaktınız yoxdur"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Kontakt əlavə edin"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Bütün nömrələri görmək üçün təsvirə toxunun və ya yenidən qaydaya salmaq üçün basıb saxlayın"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Yığışdır"</string>
+    <string name="select_all" msgid="408601760696146245">"Hamısını seçin"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video zəng"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Mesaj göndərin"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Zəng detalları"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Bloklanmış nömrələr"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> artıq bloklanıb."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Hesabların çağrılması"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktiv edin"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"İcazələri quraşdırın"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Sürətli yığımı aktivləşdirmək üçün, Kontakt icazələrini aktivləşdirin."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Çağrı jurnalınızı görmək üçün Telefon icazəsini aktivləşdirin."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktlarınızı görmək üçün Kontakt icazəsini aktivləşdirin."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Səsli poçta daxil olmaq üçün, Telefon icazəsini aktivləşdirin."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Kontaktlarınızı axtarmaq üçün, Kontakt icazələrini aktiv edin."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Zəng etmək üçün, Telefon icazəsini aktivləşdirin."</string>
diff --git a/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
index 9df7291..40c0886 100644
--- a/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
@@ -86,6 +86,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Vrati se na poziv koji je u toku"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj poziv"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Dolazni pozivi"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ulazite u režim grupnih radnji"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Izašli ste iz režima grupnih radnji"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Izabrano je <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Opozvan je izbor <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Puštanje govorne pošte"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Prikaži kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Pozovi <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -100,11 +104,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Govorna pošta"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Otkažite režim grupnih radnji"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"govornu poruku"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"govorne poruke"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Želite li da izbrišete izabranu(e) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Izabranih: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -117,7 +123,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Učitava se sa SIM kartice…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakti na SIM kartici"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Nema dostupne aplikacije za kontakte"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Glasovna pretraga nije dostupna"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Nije moguće uputiti telefonski poziv jer je aplikacija Telefon onemogućena."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pretraži kontakte"</string>
@@ -146,10 +151,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Nemate nijedan kontakt na brzom biranju"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj omiljen kontakt"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Još uvek nemate nijedan kontakt"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodaj kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Dodirnite sliku da biste videli sve brojeve ili dodirnite i zadržite da biste im promenili raspored"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Ukloni"</string>
+    <string name="select_all" msgid="408601760696146245">"Izaberi sve"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video poziv"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Pošalji poruku"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalji poziva"</string>
@@ -215,11 +219,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blokirani brojevi"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> je već blokiran."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Nalozi za pozivanje"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Uključi"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Podesi dozvole"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Da biste omogućili brzo biranje, uključite dozvolu za Kontakte."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Da biste videli evidenciju poziva, uključite dozvolu za Telefon."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Da biste videli kontakte, uključite dozvolu za Kontakte."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Da biste pristupili govornoj pošti, uključite dozvolu za Telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Da biste pretražili kontakte, uključite dozvole za Kontakte."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Da biste uputili poziv, uključite dozvolu za Telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-be/strings.xml b/java/com/android/dialer/app/res/values-be/strings.xml
index aac3df2..f2ad334 100644
--- a/java/com/android/dialer/app/res/values-be/strings.xml
+++ b/java/com/android/dialer/app/res/values-be/strings.xml
@@ -87,6 +87,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Звярнуцца да бягучага выкліку"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Дадаць выклік"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Уваходныя выклікі"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Уваход у рэжым групавога дзеяння"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Выхад з рэжыму групавога дзеяння"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Выбрана: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Выбар скасаваны: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Прайграць паведамленне галасавой пошты"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Прагледзець кантакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Выклікаць карыстальнiка <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Галасавая пошта"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> с"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> хв <xliff:g id="SECONDS">%s</xliff:g> с"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Скасаваць рэжым пакетных дзеянняў"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"галасавая пошта"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"галасавая пошта"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Так"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Выдаліць вылучанае: <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Выбрана: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> у <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Загрузка з SIM-карты..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Кантакты SIM-карты"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Праграмы для аперацый з кантактамі няма"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Галасавы пошук недаступны"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Немагчыма зрабіць выклік па тэлефоне, таму што праграма Тэлефон была адключана."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Пошук кантактаў"</string>
@@ -147,10 +152,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Новых прапушчаных выклікаў: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"У вас пакуль нікога няма на хуткім наборы"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Дадаць улюбёны"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"У вас пакуль няма ніякіх кантактаў"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Дадаць кантакт"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Дакраніцеся да відарыса, каб прагледзець усе нумары, або дакраніцеся і ўтрымлівайце, каб змяніць парадак"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Выдаліць"</string>
+    <string name="select_all" msgid="408601760696146245">"Выбраць усё"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Відэавыклік"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Адправiць паведамленне"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Падрабязнасці выкліку"</string>
@@ -217,11 +221,9 @@
     <string name="block_list" msgid="4701585783411870782">"Заблакіраваныя нумары"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ужо заблакіраваны."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Уліковыя запісы для выклікаў"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Уключыць"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Задаць дазволы"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Каб уключыць хуткі набор, уключыце дазвол для Кантактаў."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Каб прагледзець свой журнал выклікаў, уключыце дазволы Тэлефона."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Каб бачыць свае кантакты, уключыце дазвол для Кантактаў."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Каб атрымаць доступ да галасавой пошты, уключыце дазвол для Тэлефона."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Каб шукаць свае кантакты, уключыце дазвол для Кантактаў."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Каб зрабіць выклік, уключыце дазвол для Тэлефона."</string>
diff --git a/java/com/android/dialer/app/res/values-bg/strings.xml b/java/com/android/dialer/app/res/values-bg/strings.xml
index 7bab71f..8083f48 100644
--- a/java/com/android/dialer/app/res/values-bg/strings.xml
+++ b/java/com/android/dialer/app/res/values-bg/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Назад към текущото обаждане"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Добавяне на обаждане"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Вх. обаждания"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Влизате в режима на групови действия"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Излязохте от режима на групови действия"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Избрахте <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Премахнахте избора от <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Пускане на гласовата поща"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Преглед на контактa <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Обаждане на <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Гласова поща"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Анулиране на режима на групови действия"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"гласово съобщение"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"гласови съобщения"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Избрахте <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> – да се изтрие ли избраното?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Избрахте <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> в <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Зарежда се от SIM карта..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Контакти от SIM карта"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Няма налично приложение за контакти"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Гласовото търсене не е налице"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Не може да се осъществи телефонно обаждане, защото приложението Телефон е деактивирано."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Търсене в контактите"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> нови пропуснати обаждания"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Още нямате контакти за бързо набиране"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Добавяне на любим контакт"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Още нямате контакти"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Добавяне на контакт"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Докоснете изображението, за да видите всички номера, или го натиснете и задръжте за пренареждане"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Премахване"</string>
+    <string name="select_all" msgid="408601760696146245">"Избиране на всички"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Видеообаждане"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Изпращане на съобщение"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Подробности за обаждането"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Блокирани номера"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> вече е блокиран."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Профили за обаждане"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Включване"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Задаване на разрешенията"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"За да активирате бързото набиране, включете разрешението за Контакти."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"За да видите списъка с обажданията си, включете разрешението за Телефон."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"За да видите контактите си, включете разрешението за Контакти."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"За да осъществите достъп до гласовата си поща, включете разрешението за Телефон."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"За да търсите в контактите си, включете разрешенията за тях."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"За да извършите обаждане, включете разрешението за Телефон."</string>
diff --git a/java/com/android/dialer/app/res/values-bn/strings.xml b/java/com/android/dialer/app/res/values-bn/strings.xml
index 271247b..4d2d7cc 100644
--- a/java/com/android/dialer/app/res/values-bn/strings.xml
+++ b/java/com/android/dialer/app/res/values-bn/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"প্রগতিতে থাকা কলে প্রত্যাবর্তন"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"কল যোগ করুন"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ইনকামিং কলগুলি"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"বাল্ক অ্যাকশন মোডে প্রবেশ করা হচ্ছে"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"বাল্ক অ্যাকশন মোড ত্যাগ করুন"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> নির্বাচন করা হয়েছে"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> অনির্বাচন করা হয়েছে"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ভয়েসমেল প্লে করুন"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> পরিচিতি দেখুন"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> কে কল করুন"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"ভয়েসমেল"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> সেকেন্ড"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> মিনিট <xliff:g id="SECONDS">%s</xliff:g> সেকেন্ড"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ব্যাচ অ্যাকশন মোড বাতিল করুন"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ভয়েসমেল"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ভয়েসমেলগুলি"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"হ্যাঁ"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"না"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"নির্বাচিত <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> মুছে ফেলতে চান?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g>টি নির্বাচিত"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> তারিখে <xliff:g id="TIME">%2$s</xliff:g>\'টায়"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"সিম কার্ড থেকে লোড করা হচ্ছে…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"সিম কার্ডের পরিচিতিগুলি"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"কোনো পরিচিতি অ্যাপ্লিকেশান উপলব্ধ নয়"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"ভয়েস অনুসন্ধান অনুপলব্ধ"</string>
     <string name="call_not_available" msgid="7850148370757361155">"কোনো ফোন কল করা যাবে না কারণ ফোন অ্যাপ্লিকেশানটি অক্ষম করা হয়েছে৷"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"পরিচিতিগুলি খুঁজুন"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g>টি নতুন মিসড কল"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"আপনার স্পীড ডায়ালে এখনও পর্যন্ত কেউ নেই"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"একটি পছন্দসই যোগ করুন"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"আপনার এখনও পর্যন্ত কোনো পরিচিতি নেই"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"একটি পরিচিতি যোগ করুন"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"সমস্ত নম্বর দেখতে ছবিতে স্পর্শ করুন বা রেকর্ড করতে স্পর্শ করে ধরে রাখুন"</string>
     <string name="remove_contact" msgid="2353580570488923668">"সরান"</string>
+    <string name="select_all" msgid="408601760696146245">"সবগুলি নির্বাচন করুন"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ভিডিও কল"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"একটি বার্তা পাঠান"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"কলের বিশদ বিবরণ"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"ব্লক করা নাম্বারগুলি"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ইতিমধ্যেই অববোধ করা রয়েছে৷"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"কলিং অ্যাকাউন্টগুলি"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"চালু করুন"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"অনুমতিগুলি সেট করুন"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"স্পীড ডায়াল সক্ষম করতে, পরিচিতিগুলির অনুমতি চালু করুন।"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"আপনার কল লগ দেখতে, ফোনের অনুমতি চালু করুন।"</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"আপনার পরিচিতিগুলি দেখতে, পরিচিতিগুলির অনুমতি চালু করুন।"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"আপনার ভয়েসমেল অ্যাক্সেস করতে, ফোনের অনুমতি চালু করুন।"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"আপনার পরিচিতিগুলি অনুসন্ধান করতে, পরিচিতির অনুমতিগুলি চালু করুন।"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"একটি কল করতে, ফোনের অনুমতি চালু করুন।"</string>
diff --git a/java/com/android/dialer/app/res/values-bs/strings.xml b/java/com/android/dialer/app/res/values-bs/strings.xml
index 92c9c14..d834772 100644
--- a/java/com/android/dialer/app/res/values-bs/strings.xml
+++ b/java/com/android/dialer/app/res/values-bs/strings.xml
@@ -86,6 +86,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Povratak na poziv u toku"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj poziv"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Dolazni pozivi"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ulazak u način rada za skupnu radnju"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Napuštanje načina rada za skupnu radnju"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Odabrano <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Poništen odabir <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Pokretanje govorne pošte"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Prikaži kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Pozovi kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -100,11 +104,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Govorna pošta"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Otkaži način rada za grupnu radnju"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"poruka govorne pošte"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"poruke govorne pošte"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Izbrisati izabranu/e <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Odabrano <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -117,7 +123,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Učitavanje sa SIM kartice…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakti sa SIM kartice"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Nije dostupna nijedna aplikacija za kontakte"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Glasovna pretraga nije dostupna"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Nije moguće uputiti poziv jer je aplikacija Telefon onemogućena."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Traži kontakte"</string>
@@ -146,10 +151,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Broj novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Nemate nikog na brzom biranju"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj u favorite"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Još nemate nijedan kontakt"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodaj kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Dodirnite sliku da vidite sve brojeve ili dodirnite i držite da promijenite raspored."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Ukloni"</string>
+    <string name="select_all" msgid="408601760696146245">"Izaberi sve"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videopoziv"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Pošalji poruku"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalji o pozivu"</string>
@@ -215,11 +219,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blokirani brojevi"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> je već blokiran."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Računi za pozivanje"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Uključi"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Postavi dozvole"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Da omogućite brzo biranje, uključite dozvolu za Kontakte."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Da vidite popis poziva, uključite dozvolu za Telefon."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Da vidite kontakte, uključite dozvolu za Kontakte."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Da pristupite govornoj pošti,uključite dozvolu za telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Da pretražujete kontakte, uključite dozvole za Kontakte."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Da uputite poziv, uključite dozvolu za Telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-ca/strings.xml b/java/com/android/dialer/app/res/values-ca/strings.xml
index fa04dd9..7b12e0d 100644
--- a/java/com/android/dialer/app/res/values-ca/strings.xml
+++ b/java/com/android/dialer/app/res/values-ca/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Torna a la trucada en curs"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Afegeix una trucada"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Trucades entrants"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"S\'està accedint al mode d\'acció massiva"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"S\'ha sortit del mode d\'acció massiva"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"S\'ha seleccionat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"S\'ha desseleccionat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reprodueix el missatge de veu"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Visualitza el contacte <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Truca a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Bústia de veu"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel·la el mode d\'accions en lot"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"missatge de veu"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"missatges de veu"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sí"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vols suprimir l\'element o elements seleccionats (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> seleccionades"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> a les <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"S\'està carregant des de la targeta SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contactes de la targeta SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"No hi ha cap contacte disponible."</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"La cerca per veu no està disponible."</string>
     <string name="call_not_available" msgid="7850148370757361155">"No es pot fer una trucada telefònica perquè s\'ha desactivat l\'aplicació de telèfon."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Cerca als contactes"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> trucades perdudes noves"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Encara no tens cap contacte al marcatge ràpid"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Afegeix un preferit"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Encara no tens cap contacte"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Afegeix un contacte"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Toca la imatge per veure\'n tots els números o bé mantén-la premuda per canviar-ne l\'ordre"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Suprimeix"</string>
+    <string name="select_all" msgid="408601760696146245">"Selecciona-ho tot"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videotrucada"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Envia un missatge"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalls de la trucada"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Números bloquejats"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ja està bloquejat."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Comptes de trucades"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Activa"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Defineix els permisos"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Activa el permís Contactes per activar el marcatge ràpid."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Activa el permís Telèfon per veure el teu registre de trucades."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Activa el permís Contactes per veure els teus contactes."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Activa el permís Telèfon per accedir a la bústia de veu."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Per cercar els teus contactes, activa els permisos de Contactes."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Activa el permís Telèfon per fer una trucada."</string>
diff --git a/java/com/android/dialer/app/res/values-cs/strings.xml b/java/com/android/dialer/app/res/values-cs/strings.xml
index 5a3e429..bbcb358 100644
--- a/java/com/android/dialer/app/res/values-cs/strings.xml
+++ b/java/com/android/dialer/app/res/values-cs/strings.xml
@@ -87,6 +87,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Návrat k probíhajícímu hovoru"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Přidat hovor"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Příchozí volání"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Vstupování do režimu hromadných akcí"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Opustili jste režim hromadných akcí"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Položka <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> je vybrána"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Položka <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> není vybrána"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Přehrát hlasovou schránku"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Zobrazit kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Volat kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Hlasová schránka"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Zrušit režim hromadných akcí"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"vybranou hlasovou zprávu"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"vybrané hlasové zprávy"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ano"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Smazat <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Vybráno: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> v <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Načítání ze SIM karty..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakty na SIM kartě"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Není k dispozici žádná aplikace pro práci s kontakty."</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Hlasové vyhledávání není k dispozici."</string>
     <string name="call_not_available" msgid="7850148370757361155">"Telefonický hovor nelze uskutečnit, protože aplikace Telefon byla zakázána."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Vyhledat kontakty"</string>
@@ -147,10 +152,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Nové zmeškané hovory: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"V rychlém vytáčení zatím nemáte žádný kontakt."</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Přidat oblíbený kontakt"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Zatím nemáte žádné kontakty"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Přidat kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Klepnutím na obrázek zobrazíte všechna čísla. Podržením můžete změnit pořadí."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Odstranit"</string>
+    <string name="select_all" msgid="408601760696146245">"Vybrat všechny"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videohovor"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Odeslat zprávu"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Podrobnosti hovoru"</string>
@@ -217,11 +221,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blokovaná čísla"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je již blokováno."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Účty pro volání"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Zapnout"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nastavit oprávnění"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Chcete-li povolit rychlé vytáčení, aktivujte oprávnění Kontakty."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Chcete-li zobrazit seznam hovorů, aktivujte oprávnění Telefon."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Chcete-li zobrazit kontakty, aktivujte oprávnění Kontakty."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Chcete-li přejít do hlasové schránky, aktivujte oprávnění Telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Chcete-li vyhledat kontakty, zapněte oprávnění Kontakty."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Chcete-li uskutečnit hovor, aktivujte oprávnění Telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-da/strings.xml b/java/com/android/dialer/app/res/values-da/strings.xml
index 42aa663..31cf8e3 100644
--- a/java/com/android/dialer/app/res/values-da/strings.xml
+++ b/java/com/android/dialer/app/res/values-da/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Vend tilbage til igangværende opkald"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Tilføj opkald"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Indgående opkald"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Massehandlingstilstanden startes"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Massehandlingstilstanden blev afsluttet"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Vælg <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Fravælg <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Afspil telefonsvarerbesked"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Vis kontaktpersonen <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ring til <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Telefonsvarer"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annuller massehandlingstilstand"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talebesked"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talebeskeder"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nej"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vil du slette de valgte <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> er valgt"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Indlæser fra SIM-kort ..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakter på SIM-kort"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Der er ingen app til kontaktpersoner"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Talesøgning er ikke tilgængelig"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Det er ikke muligt at foretage et telefonopkald, fordi applikationen Telefon er deaktiveret."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Søg i kontakter"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nye ubesvarede opkald"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Der er endnu ingen kontaktpersoner i Hurtigopkald"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Angiv en kontaktperson som foretrukken"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Du har endnu ikke nogen kontaktpersoner"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Tilføj en kontaktperson"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Tryk på billedet for at se alle numre, eller tryk og hold nede på billedet for at omarrangere"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Fjern"</string>
+    <string name="select_all" msgid="408601760696146245">"Vælg alt"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoopkald"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Send en sms-besked"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Opkaldsinfo"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blokerede telefonnumre"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokeret."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Opkaldskonti"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivér"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Angiv tilladelser"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Slå tilladelsen Kontaktpersoner til for at aktivere hurtigopkald."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Slå tilladelsen Telefon til for at se din opkaldsliste."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Slå tilladelsen Kontaktpersoner til for at se dine kontaktpersoner."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Slå tilladelsen Telefon til for at få adgang til din telefonsvarer,"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Hvis du vil søge i dine kontaktpersoner, skal du slå tilladelserne Kontaktpersoner til."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Slå tilladelsen Telefon til for at foretage et opkald."</string>
diff --git a/java/com/android/dialer/app/res/values-de/strings.xml b/java/com/android/dialer/app/res/values-de/strings.xml
index 5653e0f..c1f6441 100644
--- a/java/com/android/dialer/app/res/values-de/strings.xml
+++ b/java/com/android/dialer/app/res/values-de/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Zurück zum aktuellen Anruf"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Anruf hinzufügen"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Eingehende Anrufe"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Es wird in den Modus für Bulk-Aktionen gewechselt"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Der Modus für Bulk-Aktionen wurde verlassen"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ausgewählt"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Auswahl für <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> aufgehoben"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Mailbox abhören"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Kontakt <xliff:g id="NAME">%1$s</xliff:g> anzeigen"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> anrufen"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Mailbox"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Modus für Batch-Aktionen abbrechen"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"Mailboxnachricht"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"Mailboxnachrichten"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nein"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ausgewählte <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> löschen?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ausgewählt"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> um <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Ladevorgang von SIM-Karte läuft..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakte auf SIM-Karte"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Keine Kontakte-App verfügbar"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Sprachsuche nicht verfügbar"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Es kann kein Anruf getätigt werden, da die App \"Telefon\" deaktiviert wurde."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"In Kontakten suchen"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> neue entgangene Anrufe"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Du hast für noch niemanden eine Kurzwahl festgelegt"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Favoriten hinzufügen"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Du hast noch keine Kontakte."</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Kontakt hinzufügen"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Tippe auf das Bild, um alle Nummern zu sehen, oder halte das Bild länger gedrückt, um sie neu anzuordnen"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Entfernen"</string>
+    <string name="select_all" msgid="408601760696146245">"Alle auswählen"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoanruf"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"SMS senden"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Anrufdetails"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blockierte Nummern"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ist bereits blockiert."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Anrufkonten"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivieren"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Berechtigungen festlegen"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Aktiviere die Berechtigung \"Kontakte\", um die Kurzwahlfunktion zu verwenden."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Aktiviere die Berechtigung \"Telefon\", um dein Anrufprotokoll abzurufen."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Aktiviere die Berechtigung \"Kontakte\", um deine Kontakte abzurufen."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Aktiviere die Berechtigung \"Telefon\", um auf deine Mailbox zuzugreifen."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Aktiviere die Berechtigungen \"Kontakte\", um deine Kontakte zu suchen."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Aktiviere die Berechtigung \"Telefon\", um einen Anruf zu tätigen."</string>
diff --git a/java/com/android/dialer/app/res/values-el/strings.xml b/java/com/android/dialer/app/res/values-el/strings.xml
index 847f60a..c4ba02d 100644
--- a/java/com/android/dialer/app/res/values-el/strings.xml
+++ b/java/com/android/dialer/app/res/values-el/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Επιστροφή στην κλήση που βρίσκεται σε εξέλιξη"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Προσθήκη κλήσης"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Εισερχόμενες κλήσεις"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Εισαγωγή στη λειτουργία μαζικών ενεργειών"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Αποχώρηση από τη λειτουργία μαζικών ενεργειών"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Έγινε επιλογή <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Καταργήθηκε η επιλογή <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Αναπαραγωγή μηνύματος αυτόματου τηλεφωνητή"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Προβολή επαφής <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Κλήση <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Αυτόματος τηλεφωνητής"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> δευτερόλεπτα"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> λεπτά <xliff:g id="SECONDS">%s</xliff:g> δευτερόλεπτα"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Ακύρωση λειτουργίας μαζικών ενεργειών"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"φωνητικού μηνύματος αυτόματου τηλεφωνητή"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"φωνητικών μηνυμάτων αυτόματου τηλεφωνητή"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ναι"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Όχι"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Διαγραφή επιλεγμ. <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>;"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Έχουν επιλεγεί <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> στις <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Φόρτωση από κάρτα SIM…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Επαφές στην κάρτα SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Δεν υπάρχουν διαθέσιμες εφαρμογές επαφών"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Η φωνητική αναζήτηση δεν είναι διαθέσιμη"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Δεν είναι δυνατή η πραγματοποίηση τηλεφωνικής κλήσης επειδή η εφαρμογή \"Τηλέφωνο\" έχει απενεργοποιηθεί."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Αναζήτηση επαφών"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> νέες αναπάντητες κλήσεις"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Δεν έχετε ορίσει ακόμη κάποια επαφή στις ταχείες κλήσεις"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Προσθέστε ένα αγαπημένο"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Δεν έχετε επαφές ακόμη"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Προσθήκη επαφής"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Αγγίξτε την εικόνα για να δείτε όλους τους αριθμούς ή αγγίξτε παρατεταμένα για αναδιάταξη"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Κατάργηση"</string>
+    <string name="select_all" msgid="408601760696146245">"Επιλογή όλων"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Βιντεοκλήση"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Αποστολή μηνύματος"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Λεπτομέρειες κλήσης"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Αποκλεισμένοι αριθμοί"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Ο αριθμός <xliff:g id="NUMBER">%1$s</xliff:g> αποκλείστηκε ήδη."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Λογαριασμοί κλήσης"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Ενεργοποίηση"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ορισμός αδειών"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Για να ενεργοποιήσετε την ταχεία κλήση, ενεργοποιήστε την άδεια επαφών."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Για να δείτε το αρχείο καταγραφής κλήσεών σας, ενεργοποιήστε την άδεια τηλεφώνου."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Για να δείτε τις επαφές σας, ενεργοποιήστε την άδεια επαφών."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Για να αποκτήσετε πρόσβαση στον τηλεφωνητή σας, ενεργοποιήστε την άδεια τηλεφώνου."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Για να κάνετε αναζήτηση στις επαφές σας, ενεργοποιήστε τις άδειες \"Επαφές\"."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Για να πραγματοποιήσετε μια κλήση, ενεργοποιήστε την άδεια τηλεφώνου."</string>
diff --git a/java/com/android/dialer/app/res/values-en-rAU/strings.xml b/java/com/android/dialer/app/res/values-en-rAU/strings.xml
index 28eea8b..cb7e912 100644
--- a/java/com/android/dialer/app/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rAU/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Return to call in progress"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Add call"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Incoming calls"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entering bulk action mode"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Left bulk action mode"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Selected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Unselected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Play voicemail"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel batch actions mode"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Delete selected <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selected"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Loading from SIM card…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM card contacts"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"No contacts app available"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Voice search not available"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Cannot make a phone call because the Phone application has been disabled."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Search contacts"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"No one is on your speed dial yet"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Add a favourite"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"You don\'t have any contacts yet"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Add a contact"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Touch image to see all numbers, or touch &amp; hold to re-arrange"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Remove"</string>
+    <string name="select_all" msgid="408601760696146245">"Select all"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video call"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Send a message"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Call details"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blocked numbers"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Calling accounts"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Turn on"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Set permissions"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"To enable speed dial, turn on the Contacts permission."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"To see your call log, turn on the Phone permission."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"To see your contacts, turn on the Contacts permission."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"To access your voicemail, turn on the Phone permission."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"To search your contacts, turn on the Contacts permissions."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"To place a call, turn on the Phone permission."</string>
diff --git a/java/com/android/dialer/app/res/values-en-rGB/strings.xml b/java/com/android/dialer/app/res/values-en-rGB/strings.xml
index 28eea8b..cb7e912 100644
--- a/java/com/android/dialer/app/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rGB/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Return to call in progress"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Add call"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Incoming calls"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entering bulk action mode"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Left bulk action mode"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Selected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Unselected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Play voicemail"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel batch actions mode"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Delete selected <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selected"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Loading from SIM card…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM card contacts"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"No contacts app available"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Voice search not available"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Cannot make a phone call because the Phone application has been disabled."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Search contacts"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"No one is on your speed dial yet"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Add a favourite"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"You don\'t have any contacts yet"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Add a contact"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Touch image to see all numbers, or touch &amp; hold to re-arrange"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Remove"</string>
+    <string name="select_all" msgid="408601760696146245">"Select all"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video call"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Send a message"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Call details"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blocked numbers"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Calling accounts"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Turn on"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Set permissions"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"To enable speed dial, turn on the Contacts permission."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"To see your call log, turn on the Phone permission."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"To see your contacts, turn on the Contacts permission."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"To access your voicemail, turn on the Phone permission."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"To search your contacts, turn on the Contacts permissions."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"To place a call, turn on the Phone permission."</string>
diff --git a/java/com/android/dialer/app/res/values-en-rIN/strings.xml b/java/com/android/dialer/app/res/values-en-rIN/strings.xml
index 28eea8b..cb7e912 100644
--- a/java/com/android/dialer/app/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rIN/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Return to call in progress"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Add call"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Incoming calls"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entering bulk action mode"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Left bulk action mode"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Selected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Unselected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Play voicemail"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel batch actions mode"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Delete selected <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selected"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Loading from SIM card…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM card contacts"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"No contacts app available"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Voice search not available"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Cannot make a phone call because the Phone application has been disabled."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Search contacts"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"No one is on your speed dial yet"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Add a favourite"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"You don\'t have any contacts yet"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Add a contact"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Touch image to see all numbers, or touch &amp; hold to re-arrange"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Remove"</string>
+    <string name="select_all" msgid="408601760696146245">"Select all"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video call"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Send a message"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Call details"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blocked numbers"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Calling accounts"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Turn on"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Set permissions"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"To enable speed dial, turn on the Contacts permission."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"To see your call log, turn on the Phone permission."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"To see your contacts, turn on the Contacts permission."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"To access your voicemail, turn on the Phone permission."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"To search your contacts, turn on the Contacts permissions."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"To place a call, turn on the Phone permission."</string>
diff --git a/java/com/android/dialer/app/res/values-es-rUS/strings.xml b/java/com/android/dialer/app/res/values-es-rUS/strings.xml
index 9d80bc9..79d607f 100644
--- a/java/com/android/dialer/app/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/app/res/values-es-rUS/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Regresar a la llamada en curso"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Agregar llamada"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Llamadas entrantes"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando al modo de acción masiva"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saliendo del modo de acción masiva"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Se seleccionó <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Se anuló la selección de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproducir mensaje de voz"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Llamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Correo de voz"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar el modo de acción masiva"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"el mensaje de voz"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"los mensajes de voz"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sí"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"¿Deseas borrar <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> que seleccionaste?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> seleccionada(s)"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"El <xliff:g id="DATE">%1$s</xliff:g> a la hora <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Cargando desde tarjeta SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contactos de tarjeta SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"No hay aplicaciones de contactos disponibles."</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Búsqueda por voz no disponible"</string>
     <string name="call_not_available" msgid="7850148370757361155">"No se pueden realizar llamadas porque se inhabilitó la aplicación Teléfono."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Buscar contactos"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> llamadas perdidas nuevas"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Aún no tienes contactos en la opción de marcado rápido"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Agregar un favorito"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Aún no tienes contactos"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Agregar un contacto"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Toca la imagen para ver todos los números o mantenla presionada para reorganizar"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Eliminar"</string>
+    <string name="select_all" msgid="408601760696146245">"Seleccionar todo"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videollamada"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar un mensaje"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalles de la llamada"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ya está bloqueado."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Cuentas telefónicas"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Activar"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Configurar permisos"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Para habilitar el marcado rápido, activa el permiso Contactos."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver el registro de llamadas, activa el permiso Teléfono."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver los contactos, activa el permiso Contactos."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acceder al buzón de voz, activa el permiso Teléfono."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Para buscar contactos, activa el permiso Contactos."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Para realizar una llamada, activa el permiso Teléfono."</string>
diff --git a/java/com/android/dialer/app/res/values-es/strings.xml b/java/com/android/dialer/app/res/values-es/strings.xml
index b7383d9..170edc8 100644
--- a/java/com/android/dialer/app/res/values-es/strings.xml
+++ b/java/com/android/dialer/app/res/values-es/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Volver a la llamada"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Añadir llamada"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Llamadas entrantes"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando en el modo de acción en bloque"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Se ha salido del modo de acción en bloque"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> seleccionado"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Selección de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> anulada"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproducir mensaje de voz"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Llamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Buzón de voz"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min y <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar el modo de acciones en lote"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mensaje de voz"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mensajes de voz"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sí"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"¿Eliminar la selección de <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Se han seleccionado <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> a las <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Cargando desde tarjeta SIM…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contactos de tarjeta SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"No hay aplicaciones de contactos disponibles"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"La búsqueda por voz no está disponible"</string>
     <string name="call_not_available" msgid="7850148370757361155">"No se puede hacer llamadas porque se ha inhabilitado la aplicación Teléfono."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Buscar contactos"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> llamadas perdidas nuevas"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Aún no tienes contactos en la función de marcación rápida"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Añadir un favorito"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Aún no tienes contactos"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Añadir un contacto"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Tocar la imagen para ver todos los números o mantenerla pulsada para cambiar el orden"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Eliminar"</string>
+    <string name="select_all" msgid="408601760696146245">"Seleccionar todo"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videollamada"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar un mensaje"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalles de la llamada"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ya está bloqueado."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Cuentas de llamadas"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Activar"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Establecer permisos"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Para habilitar la marcación rápida, activa el permiso la aplicación Contactos."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver el registro de llamadas, activa el permiso de la aplicación Teléfono."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver tus contactos, activa el permiso de la aplicación Contactos."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acceder al buzón de voz, activa el permiso de la aplicación Teléfono."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Para poder buscar tus contactos, activa los permisos de contactos."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Para hacer una llamada, activa el permiso de la aplicación Teléfono."</string>
diff --git a/java/com/android/dialer/app/res/values-et/strings.xml b/java/com/android/dialer/app/res/values-et/strings.xml
index d4e4faa..e32b104 100644
--- a/java/com/android/dialer/app/res/values-et/strings.xml
+++ b/java/com/android/dialer/app/res/values-et/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Tagasi käimasolevale kõnele"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Lisa kõne"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Sissetulevad kõned"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Sisenemine hulgitoimingute režiimi"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Lahkumine hulgitoimingute režiimist"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> on valitud"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> on valimata"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Esita kõnepostisõnum"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Kuva kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Helista kasutajale <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Kõnepost"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Mitme toimigu režiimi tühistamine"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"kõnepostisõnum"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"kõnepostisõnumid"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Jah"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ei"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Kas kustutada valitud kõnepostisõnumid <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> on valitud"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kell <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Laadimine SIM-kaardilt ..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM-kaardi kontaktid"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Kontaktide rakendus pole saadaval"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Häälotsing ei ole saadaval"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Helistada ei saa, sest telefonirakendus on keelatud."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Otsige kontakte"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> uus/uut vastamata kõne(t)"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Te pole veel kedagi kiirvalimisse lisanud"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Lisa lemmik"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Teil pole veel kontakte"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Lisa kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Puudutage kujutist kõigi numbrite nägemiseks või puudutage pikalt järjestuse muutmiseks"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Eemalda"</string>
+    <string name="select_all" msgid="408601760696146245">"Vali kõik"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videokõne"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Saada sõnum"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Kõne üksikasjad"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blokeeritud numbrid"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> on juba blokeeritud."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Helistamiskontod"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Lülita sisse"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Määra load"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Kiirvalimise lubamiseks lülitage sisse kontaktiluba."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Kõnelogi vaatamiseks lülitage sisse telefoniluba."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktide vaatamiseks lülitage sisse kontaktiluba."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Kõnepostile juurdepääsemiseks lülitage sisse telefoniluba."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Kontaktide otsimiseks lülitage sisse kontaktiload."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Helistamiseks lülitage sisse telefoniluba."</string>
diff --git a/java/com/android/dialer/app/res/values-eu/strings.xml b/java/com/android/dialer/app/res/values-eu/strings.xml
index 95f4621..57ef67d 100644
--- a/java/com/android/dialer/app/res/values-eu/strings.xml
+++ b/java/com/android/dialer/app/res/values-eu/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Itzuli abian den deira"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Gehitu deia"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Sarrerako deiak"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ekintzak multzoka gauzatzeko modua aktibatzen"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ekintzak multzoka gauzatzeko modua desaktibatu da"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> hautatu da"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> desautatu da"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Erreproduzitu erantzungailuko ahots-mezuak"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Ikusi <xliff:g id="NAME">%1$s</xliff:g> kontaktua"</string>
     <string name="description_call" msgid="1532402285334775372">"Deitu <xliff:g id="NAME">%1$s</xliff:g> erabiltzaileari"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Erantzungailua"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Utzi bertan behera ekintzak multzoka gauzatzeko modua"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ahots-mezua"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ahots-mezuak"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Bai"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ez"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Hautatutako <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ezabatu?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> hautatu dira"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> (<xliff:g id="TIME">%2$s</xliff:g>)"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM txarteletik kargatzen…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM txarteleko kontaktuak"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Ez dago kontaktuen aplikaziorik erabilgarri"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Ahozko bilaketa ez dago erabilgarri"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Ezin da telefono-deirik egin Telefonoa aplikazioa desgaitu egin delako."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Bilatu kontaktuetan"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> dei galdu berri"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Ez duzu inor markatze bizkorrean oraindik"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Gehitu gogokoak"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Ez duzu kontakturik oraindik"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Gehitu kontaktua"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Ukitu irudia zenbaki guztiak ikusteko, edo eduki ezazu sakatuta berrantolatzeko"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Kendu"</string>
+    <string name="select_all" msgid="408601760696146245">"Hautatu guztiak"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Bideo-deia"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Bidali mezua"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Deiaren xehetasunak"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blokeatutako zenbakiak"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> blokeatuta dago dagoeneko."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Deiak egiteko kontuak"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktibatu"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ezarri baimenak"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Markatze bizkorra gaitzeko, aktibatu Kontaktuak erabiltzeko baimena."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Deien erregistroa ikusteko, aktibatu Telefonoa erabiltzeko baimena."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktuak ikusteko, aktibatu Kontaktuak erabiltzeko baimena."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Erantzungailuan sartzeko, aktibatu Telefonoa erabiltzeko baimena."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Kontaktuak bilatzeko, aktibatu kontaktuak atzitzeko baimenak."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Deiak egiteko, aktibatu Telefonoa erabiltzeko baimena."</string>
diff --git a/java/com/android/dialer/app/res/values-fa/strings.xml b/java/com/android/dialer/app/res/values-fa/strings.xml
index 9c8c01b..eadb0dc 100644
--- a/java/com/android/dialer/app/res/values-fa/strings.xml
+++ b/java/com/android/dialer/app/res/values-fa/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"برگشت به تماس درحال انجام"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"افزودن تماس"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"تماس‌های ورودی"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"درحال ورود به حالت اقدام انبوه"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"خروج از حالت اقدام انبوه"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> انتخاب شد"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> از حالت انتخاب خارج شد"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"پخش پست صوتی"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"مشاهده مخاطب <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"تماس با <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"پست صوتی"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ثانیه"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> دقیقه <xliff:g id="SECONDS">%s</xliff:g> ثانیه"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"لغو حالت اقدام‌ دسته‌ای"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"پست صوتی"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"پست‌های صوتی"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"بله"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"نه"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> انتخاب‌شده حذف شود؟"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> مورد انتخاب شد"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ساعت <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"در حال بارگیری سیم کارت..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"مخاطبین سیم کارت"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"هیچ برنامه مخاطبی در دسترس نیست"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"جستجوی گفتاری در دسترس نیست"</string>
     <string name="call_not_available" msgid="7850148370757361155">"برقراری تماس تلفنی ممکن نیست، زیرا برنامه تلفن غیرفعال شده است."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"جستجوی مخاطبین"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> تماس‌ بی‌پاسخ جدید"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"هنوز کسی در فهرست شماره‌گیری سریع شما نیست"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"افزودن مورد دلخواه"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"هنوز هیچ مخاطبی ندارید"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"افزودن مخاطب"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"برای مشاهده همه شماره‌ها، تصویر را لمس کنید، یا برای ترتیب مجدد، لمس کنید و نگه‌دارید"</string>
     <string name="remove_contact" msgid="2353580570488923668">"حذف"</string>
+    <string name="select_all" msgid="408601760696146245">"انتخاب همه"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"تماس ویدئویی"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"ارسال پیام"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"جزئیات تماس"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"شماره‌های مسدود‌شده"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> درحال‌حاضر مسدود شده است."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"حساب‌های تماس"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"روشن کردن"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"تنظیم مجوزها"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"برای فعال کردن شماره‌گیری سریع، مجوز «مخاطبین» را روشن کنید."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"برای دیدن گزارش تماستان، مجوز «تلفن» را روشن کنید."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"برای دیدن مخاطبینتان، مجوز «مخاطبین» را روشن کنید."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"برای دسترسی به پست صوتی‌تان، مجوز «تلفن» را روشن کنید."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"برای جستجوی مخاطبینتان، مجوزهای مخاطبین را روشن کنید."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"برای برقراری تماس، مجوز «تلفن» را روشن کنید."</string>
diff --git a/java/com/android/dialer/app/res/values-fi/strings.xml b/java/com/android/dialer/app/res/values-fi/strings.xml
index c5a103d..9510959 100644
--- a/java/com/android/dialer/app/res/values-fi/strings.xml
+++ b/java/com/android/dialer/app/res/values-fi/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Palaa käynnissä olevaan puheluun"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Lisää puhelu"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Saapuvat puhelut"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Siirrytään joukkotoimintotilaan."</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Poistuttiin joukkotoimintotilasta."</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> valittiin."</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ei ole enää valittuna."</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Toista vastaajaviesti"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Näytä yhteystieto <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Soita: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Vastaaja"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Peruuta joukkotoimintotila."</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"vastaajaviesti"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"vastaajaviestit"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Kyllä"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ei"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Poistetaanko <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> valittu"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> klo <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>.<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Ladataan SIM-kortilta…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM-kortin yhteystiedot"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Ei käytettävissä olevaa yhteystietosovellusta"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Puhehaku ei ole käytettävissä"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Puhelua ei voi soittaa, koska Puhelin-sovellus on poistettu käytöstä."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Hae yhteystiedoista"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> uutta vastaamatonta puhelua"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Pikavalinnassa ei ole vielä yhtään yhteystietoa."</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Lisää suosikki"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Sinulla ei ole yhteystietoja."</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Lisää yhteystieto"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Katso kaikki numerot koskettamalla kuvaa tai järjestele tietoja koskettamalla kuvaa pitkään."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Poista"</string>
+    <string name="select_all" msgid="408601760696146245">"Valitse kaikki"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videopuhelu"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Lähetä viesti"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Puhelun tiedot"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Estetyt numerot"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> on jo estetty."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Puhelutilit"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Ota käyttöön"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Määritä käyttöoikeudet"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Jos haluat käyttää pikavalintaa, ota Yhteystiedot-käyttöoikeus käyttöön."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Jos haluat katsella puhelulokiasi, ota Puhelin-käyttöoikeus käyttöön."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Jos haluat katsella yhteystietojasi, ota Yhteystiedot-käyttöoikeus käyttöön."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Jos haluat käyttää puhelinvastaajaa, ota Puhelin-käyttöoikeus käyttöön."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Jos haluat hakea kontaktejasi, ota käyttöön kontaktien käyttöoikeudet."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Jos haluat soittaa puheluja, ota Puhelin-käyttöoikeus käyttöön."</string>
diff --git a/java/com/android/dialer/app/res/values-fr-rCA/strings.xml b/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
index d557d74..6aa285c 100644
--- a/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Reprendre l\'appel en cours"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Autre appel"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Appels entrants"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrée du mode d\'action groupée en cours…"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Mode d\'action groupée quitté"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Sélection : <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Désélection : <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Écouter le message vocal"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Afficher le contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Appeler <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Messagerie vocale"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min et <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annuler le mode d\'action par lots"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"message vocal"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"messages vocaux"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Oui"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Non"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Supprimer la sélection (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> sélection(s)"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> à <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Chargement depuis la carte SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contacts de carte SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Aucune application de gestion des contacts n\'est disponible"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Recherche vocale non disponible"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Rechercher des contacts"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nouveaux appels manqués"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Aucun contact ne figure dans vos numéros de composition abrégée"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ajouter un favori"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Vous n\'avez pas encore de contacts"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ajouter un contact"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Touchez l\'image pour afficher tous les numéros, ou maintenez le doigt dessus pour les réorganiser"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Supprimer"</string>
+    <string name="select_all" msgid="408601760696146245">"Tout sélectionner"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Appel vidéo"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Envoyer un message"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Détails de l\'appel"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Numéros bloqués"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Le numéro <xliff:g id="NUMBER">%1$s</xliff:g> est déjà bloqué."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Comptes d\'appel"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Activer"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Définir les autorisations"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Pour activer la composition abrégée, activez l\'autorisation Contacts."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Pour consulter votre journal d\'appels, activez l\'autorisation Téléphone."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Pour accéder à votre messagerie vocale, activez l\'autorisation Téléphone."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Pour rechercher vos contacts et les lieux à proximité, activez les autorisations Contacts."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Pour faire un appel, activez l\'autorisation Téléphone."</string>
diff --git a/java/com/android/dialer/app/res/values-fr/strings.xml b/java/com/android/dialer/app/res/values-fr/strings.xml
index d8a5939..f539d2e 100644
--- a/java/com/android/dialer/app/res/values-fr/strings.xml
+++ b/java/com/android/dialer/app/res/values-fr/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Reprendre l\'appel en cours"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Autre appel"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Appels entrants"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Activation du mode d\'action groupée"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Désactivation du mode d\'action groupée"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> sélectionné"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> désélectionné"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Écouter le message vocal"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Afficher le contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Appeler <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Messagerie vocale"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> secondes"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min et <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annuler le mode d\'actions groupées"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"message vocal"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"messages vocaux"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Oui"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Non"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Supprimer les messages vocaux sélectionnés (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>) ?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> sélectionnés"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> à <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Chargement depuis la carte SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contacts de carte SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Aucune application de gestion des contacts n\'est disponible."</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Recherche vocale non disponible"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Rech. des contacts"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Nouveaux appels manqués : <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Aucun contact pour la numérotation abrégée"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ajouter un favori"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Vous n\'avez pas encore de contacts."</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ajouter un contact"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Appuyer sur l\'image pour afficher tous les numéros, ou appuyer dessus de manière prolongée pour réorganiser ces derniers"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Supprimer"</string>
+    <string name="select_all" msgid="408601760696146245">"Tout sélectionner"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Appel vidéo"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Envoyer un message"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Informations sur l\'appel"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Numéros bloqués"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" est déjà bloqué."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Comptes téléphoniques"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Activer"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Définir les autorisations"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Pour activer la numérotation abrégée, activez l\'autorisation Contacts."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Pour consulter votre journal d\'appels, activez l\'autorisation Téléphone."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Pour accéder à votre messagerie vocale, activez l\'autorisation Téléphone."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Pour rechercher vos contacts, activez l\'autorisation Contacts."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Pour passer un appel, activez l\'autorisation Téléphone."</string>
diff --git a/java/com/android/dialer/app/res/values-gl/strings.xml b/java/com/android/dialer/app/res/values-gl/strings.xml
index 33b55a7..ca31c5e 100644
--- a/java/com/android/dialer/app/res/values-gl/strings.xml
+++ b/java/com/android/dialer/app/res/values-gl/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Volver á chamada en curso"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Engadir chamada"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Chamadas entrantes"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando no modo de acción masiva"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saíu do modo de acción masiva"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Seleccionouse: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Anulouse a selección de: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproducir correo de voz"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Chamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Correo de voz"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancela o modo de accións en lote"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"correo de voz"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"correos de voz"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Si"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Non"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Queres eliminar a selección (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Cantidade seleccionada: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ás <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Cargando da tarxeta SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contactos da tarxeta SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Non hai aplicacións de contactos dispoñibles"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Busca por voz non dispoñible"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Non se pode facer unha chamada telefónica porque se desactivou a aplicación de teléfono."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Buscar contactos"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> chamadas perdidas novas"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Aínda non tes ningún contacto na marcación directa"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Engade un favorito para a marcación directa"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Aínda non tes contactos"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Engade un contacto"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Toca a imaxe para ver todos os números ou mantena premida para reordenalos"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Eliminar"</string>
+    <string name="select_all" msgid="408601760696146245">"Seleccionar todos"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar unha mensaxe"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalles da chamada"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"O <xliff:g id="NUMBER">%1$s</xliff:g> xa está bloqueado."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Activar"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Establecer permisos"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Para activar a marcación rápida, activa o permiso de Contactos."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver o teu rexistro de chamadas, activa o permiso de Teléfono."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver os teus contactos, activa o permiso de Contactos."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acceder ao correo de voz, activa o permiso de Teléfono."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Para buscar os teus contactos, activa os permisos de Contactos."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Para facer unha chamada, activa o permiso de Teléfono."</string>
diff --git a/java/com/android/dialer/app/res/values-gu/strings.xml b/java/com/android/dialer/app/res/values-gu/strings.xml
index 1df1826..fbe4d0a 100644
--- a/java/com/android/dialer/app/res/values-gu/strings.xml
+++ b/java/com/android/dialer/app/res/values-gu/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"કૉલ પર પાછા આવવું પ્રગતિ પર છે"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"કૉલ ઉમેરો"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ઇનકમિંગ કૉલ્સ"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"બલ્ક ક્રિયા મોડમાં દાખલ થઈ રહ્યાં છે"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"બલ્ક ક્રિયા મોડ છોડી દીધો"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> પસંદ કર્યો"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> પસંદગીમાંથી દૂર કર્યો"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"વૉઇસમેઇલ ચલાવો"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> સંપર્ક જુઓ"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ને કૉલ કરો"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"વૉઇસમેઇલ"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> સેકંડ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> મિ <xliff:g id="SECONDS">%s</xliff:g> સે"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"બૅચ ક્રિયા મોડ રદ કરો"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"વૉઇસમેઇલ"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"વૉઇસમેઇલ"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"હા"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"નહીં"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"પસંદ કરેલ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ને કાઢી નાખીએ?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> પસંદ કરી"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> નાં રોજ <xliff:g id="TIME">%2$s</xliff:g> વાગ્યે"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM કાર્ડમાંથી લોડ કરી રહ્યું છે…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM કાર્ડ સંપર્કો"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"કોઈ સંપર્કો ઍપ્લિકેશન ઉપલબ્ધ નથી"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"વૉઇસ શોધ ઉપલબ્ધ નથી"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ફોન કૉલ કરી શકાતો નથી કારણ કે ફોન ઍપ્લિકેશન અક્ષમ કરવામાં આવી છે."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"સંપર્કો શોધો"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> નવા છૂટેલા કૉલ્સ"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"તમારા ઝડપી ડાયલ પર હજી સુધી કોઇ નથી"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"એક મનપસંદ ઉમેરો"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"તમે હજી સુધી કોઇપણ સંપર્કો ધરાવતાં નથી"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"સંપર્ક ઉમેરો"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"બધા નંબર્સ જોવા માટે છબી ટચ કરો અથવા પુનઃક્રમાંકિત કરવા માટે ટચ કરો અને પકડી રાખો"</string>
     <string name="remove_contact" msgid="2353580570488923668">"દૂર કરો"</string>
+    <string name="select_all" msgid="408601760696146245">"તમામ પસંદ કરો"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"વિડિઓ કૉલ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"એક સંદેશ મોકલો"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"કૉલની વિગતો"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"અવરોધિત નંબરો"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ને પહેલેથી અવરોધિત કરવામાં આવ્યો છે."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"કૉલિંગ એકાઉન્ટ્સ"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"ચાલુ કરો"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"પરવાનગીઓ સેટ કરો"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"ઝડપી ડાયલ સક્ષમ કરવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"તમારો કૉલ લૉગ જોવા માટે, ફોન પરવાનગી ચાલુ કરો."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"તમારા સંપર્કો જોવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"તમારી વૉઇસમેઇલને ઍક્સેસ કરવા માટે, ફોન પરવાનગી ચાલુ કરો."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"તમારા સંપર્કો શોધવા માટે, સંપર્કોની પરવાનગીઓ ચાલુ કરો."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"કૉલ કરવા માટે, ફોન પરવાનગી ચાલુ કરો."</string>
diff --git a/java/com/android/dialer/app/res/values-hi/strings.xml b/java/com/android/dialer/app/res/values-hi/strings.xml
index 84d2d97..c998e44 100644
--- a/java/com/android/dialer/app/res/values-hi/strings.xml
+++ b/java/com/android/dialer/app/res/values-hi/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"कॉल पर लौटना प्रगति पर है"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"कॉल जोड़ें"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"इनकमिंग कॉल"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"बल्क कार्रवाई मोड में प्रवेश कर रहे हैं"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"बल्क कार्रवाई मोड छोड़ा"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> को चुना गया"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> को नहीं चुना गया"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ध्‍वनिमेल चलाएं"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> संपर्क देखें"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> को कॉल करें"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"वॉयस मेल"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> सेकंड"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> मि. <xliff:g id="SECONDS">%s</xliff:g> से."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"बैच कार्रवाई मोड रद्द करें"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"वॉयसमेल"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"वॉयसमेल"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"हां"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"नहीं"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"क्या चुने गए <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> हटाना चाहते हैं?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> चयनित"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> को <xliff:g id="TIME">%2$s</xliff:g> बजे"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"सिम कार्ड से लोड हो रहा है…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"सिम कार्ड के संपर्क"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"कोई भी संपर्क ऐप उपलब्‍ध नहीं है"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"बोलकर खोजना उपलब्‍ध नहीं है"</string>
     <string name="call_not_available" msgid="7850148370757361155">"फ़ोन कॉल नहीं किया जा सकता क्योंकि फ़ोन ऐप्लिकेशन अक्षम कर दिया गया है."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"संपर्क खोजें"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g>  छूटे हुए नए कॉल"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"आपके स्‍पीड डायल पर अभी तक कोई भी नहीं है"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"कोई पसंदीदा जोड़ें"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"आपके पास अभी कोई भी संपर्क नहीं है"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"कोई संपर्क जोड़ें"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"सभी नंबर देखने के लिए चित्र को स्‍पर्श करें या पुन: क्रमित करने के लिए स्‍पर्श करके रखें"</string>
     <string name="remove_contact" msgid="2353580570488923668">"निकालें"</string>
+    <string name="select_all" msgid="408601760696146245">"सभी चुनें"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"वीडियो कॉल"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"संदेश भेजें"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"कॉल विवरण"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"अवरोधित नंबर"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> पहले से अवरोधित है."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"कॉलिंग खाते"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"चालू करें"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"अनुमतियां सेट करें"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"स्पीड डायल सक्षम करने के लिए, संपर्क अनुमति चालू करें."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"अपना कॉल लॉग देखने के लिए, फ़ोन अनुमति चालू करें."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"अपने संपर्क देखने के लिए, संपर्क अनुमति चालू करें."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"अपना वॉइसमेल ऐक्सेस करने के लिए, फ़ोन अनुमति चालू करें."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"अपने संपर्कों की खोज करने के लिए, संपर्क अनुमतियों को चालू करें."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"कॉल करने के लिए, फ़ोन अनुमति चालू करें."</string>
diff --git a/java/com/android/dialer/app/res/values-hr/strings.xml b/java/com/android/dialer/app/res/values-hr/strings.xml
index cd35353..5261cfb 100644
--- a/java/com/android/dialer/app/res/values-hr/strings.xml
+++ b/java/com/android/dialer/app/res/values-hr/strings.xml
@@ -86,6 +86,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Natrag na poziv u tijeku"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj poziv"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Dolazni pozivi"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ulazak u način skupne radnje"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Napuštanje načina skupne radnje"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Odabrano: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Poništen odabir: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reprodukcija govorne pošte"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Prikaz kontakta <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Nazovi <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -100,11 +104,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Govorna pošta"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Otkaži način skupnih radnji"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"poruka govorne pošte"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"poruke govorne pošte"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Želite li izbrisati odabranu poruku/e govorne pošte <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Odabrano: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>.<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -117,7 +123,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Učitavanje sa SIM kartice..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakti SIM kartice"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Nije dostupna nijedna aplikacija za kontakte"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Glasovno pretraživanje nije dostupno"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Telefoniranje nije moguće jer je aplikacija Telefon onemogućena."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pretraži kontakte"</string>
@@ -146,10 +151,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Broj novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Još nemate nikog na brzom biranju"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj omiljeni kontakt"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Još nemate nijedan kontakt"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodajte kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Dodirnite sliku da biste vidjeli sve brojeve ili dodirnite i zadržite da biste promijenili redoslijed"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Ukloni"</string>
+    <string name="select_all" msgid="408601760696146245">"Odaberi sve"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videopoziv"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Pošalji poruku"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Pojedinosti poziva"</string>
@@ -215,11 +219,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blokirani brojevi"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Broj <xliff:g id="NUMBER">%1$s</xliff:g> već je blokiran."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Pozivanje računa"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Uključi"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Postavi dopuštenja"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Da biste omogućili brzo biranje, uključite dopuštenje za kontakte."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Da biste vidjeli zapisnik poziva, uključite dopuštenje za telefon."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Da biste vidjeli svoje kontakte, uključite dopuštenje za kontakte."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Da biste pristupili govornoj pošti, uključite dopuštenje za telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Da biste pretraživali kontakte, uključite dopuštenja za kontakte."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Da biste nazvali nekog, uključite dopuštenje za telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-hu/strings.xml b/java/com/android/dialer/app/res/values-hu/strings.xml
index 2e64d74..452f0da 100644
--- a/java/com/android/dialer/app/res/values-hu/strings.xml
+++ b/java/com/android/dialer/app/res/values-hu/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Vissza a folyamatban lévő híváshoz"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Hívás hozzáadása"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Bejövő hívások"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Belépés tömeges műveleti módba"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Kilépett a tömeges műveleti módból"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Kijelölés: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Kijelölés megszüntetve: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Hangposta lejátszása"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> névjegyének megtekintése"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> hívása"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Hangposta"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> másodperc"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> perc <xliff:g id="SECONDS">%s</xliff:g> másodperc"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Köteges művelet mód leállítva"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"hangpostaüzenetet"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"hangpostaüzeneteket"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Igen"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nem"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Törli a kiválasztott <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> kiválasztva"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Betöltés a SIM kártyáról..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Névjegyek a SIM kártyán"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Nincs elérhető névjegyek alkalmazás"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"A hangalapú keresés nem érhető el"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Nem lehet telefonhívást kezdeményezni, mert a Telefon alkalmazást letiltották."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Keresés a névjegyek között"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> új nem fogadott hívás"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Még semelyik telefonszám sincs gyorshívón"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Kedvenc hozzáadása"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Még nem rendelkezik egyetlen névjeggyel sem"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Névjegy hozzáadása"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Koppintson a képre az összes szám megjelenítéséhez, vagy tartsa nyomva az átrendezéshez"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Eltávolítás"</string>
+    <string name="select_all" msgid="408601760696146245">"Az összes kijelölése"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videohívás"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Üzenet küldése"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Hívás adatai"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Letiltott számok"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"A következő szám már le van tiltva: <xliff:g id="NUMBER">%1$s</xliff:g>."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Telefonos fiókok"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Engedélyezés"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Engedélyek beállítása"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Gyorshívás engedélyezéséhez kapcsolja be a Névjegyek engedélyt."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"A hívásnapló megtekintéséhez kapcsolja be a Telefon engedélyt."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"A névjegyek megtekintéséhez kapcsolja be a Névjegyek engedélyt."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"A hangposta eléréséhez kapcsolja be a Telefon engedélyt."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"A névjegyek kereséséhez adja meg a Névjegyek engedélyeket."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Hívásindításhoz kapcsolja be a Telefon engedélyt."</string>
diff --git a/java/com/android/dialer/app/res/values-hy/strings.xml b/java/com/android/dialer/app/res/values-hy/strings.xml
index 6f3931c..97a84f2 100644
--- a/java/com/android/dialer/app/res/values-hy/strings.xml
+++ b/java/com/android/dialer/app/res/values-hy/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Վերադառնալ ընթացիկ զանգին"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ավելացնել զանգ"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Մուտքային զանգեր"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Մուտք զանգվածային գործողությունների ռեժին"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Դուք դուրս եկաք զանգվածային գործողությունների ռեժիմից"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Ընտրվեց՝ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Ապընտրվեց՝ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Նվագարկել ձայնային փոստը"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Դիտել <xliff:g id="NAME">%1$s</xliff:g> կոնտակտը"</string>
     <string name="description_call" msgid="1532402285334775372">"Զանգել <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Ձայնային փոստ"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> վրկ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> րոպե <xliff:g id="SECONDS">%s</xliff:g> վայրկյան"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Չեղարկել փաթեթային գործողությունների ռեժիմը"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ձայնային հաղորդագրություն"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ձայնային հաղորդագրություններ"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Այո"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ոչ"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ջնջե՞լ նշված <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ը"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Ընտրվել է՝ <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>-ին, ժամը <xliff:g id="TIME">%2$s</xliff:g>-ին"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM քարտը բեռնվում է..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM քարտի կոնտակտները"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Կոնտակտների հավելված չկա"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Ձայնային որոնումը հասանելի չէ"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Հնարավոր չէ զանգահարել, քանի որ Հեռախոս հավելվածն անջատված է:"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Կոնտակտների որոնում"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> նոր բաց թողնված զանգ"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Արագ համարահավաքման ցանկը դատարկ է"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ավելացնել կոնտակտ"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Դեռ կոնտակտներ չունեք"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ավելացնել կոնտակտ"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Բոլոր համարները տեսնելու համար հպեք պատկերին: Վերադասավորելու համար հպեք և պահեք:"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Հեռացնել"</string>
+    <string name="select_all" msgid="408601760696146245">"Ընտրել բոլորը"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Տեսազանգ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Ուղարկել հաղորդագրություն"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Զանգի մանրամասները"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Արգելափակված համարներ"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> համարն արդեն արգելափակված է:"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Հաշիվներ զանգերի համար"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Միացնել"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Թույլտվությունների սահմանում"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Արագ համարահավաքը թույլատրելու համար միացրեք Կոնտակտների թույլտվությունը:"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Ձեր զանգերի մատյանը տեսնելու համար միացրեք Հեռախոսի թույլտվությունը:"</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Ձեր կոնտակտները տեսնելու համար միացրեք Կոնտակտների թույլտվությունը:"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Ձայնային փոստն օգտագործելու համար միացրեք Հեռախոսի թույլտվությունը:"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Կոնտակտները որոնելու համար միացրեք Կոնտակտների թույլտվությունները:"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Զանգ կատարելու համար միացրեք Հեռախոսի թույլտվությունը:"</string>
diff --git a/java/com/android/dialer/app/res/values-in/strings.xml b/java/com/android/dialer/app/res/values-in/strings.xml
index c0de9b3..f309f92 100644
--- a/java/com/android/dialer/app/res/values-in/strings.xml
+++ b/java/com/android/dialer/app/res/values-in/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Kembali ke panggilan sedang berlangsung"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Tambahkan panggilan"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Panggilan masuk"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Masuk ke mode tindakan massal"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Keluar dari mode tindakan massal"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> dipilih"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> tidak dipilih"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Putar pesan suara"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Lihat kontak <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Telepon <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Kotak Pesan"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> dtk"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> mnt <xliff:g id="SECONDS">%s</xliff:g> dtk"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Membatalkan mode tindakan kelompok"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"pesan suara"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"pesan suara"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ya"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Tidak"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Hapus <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> yang dipilih?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> dipilih"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> pukul <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>.<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Memuat dari kartu SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontak pada kartu SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Aplikasi kontak tidak tersedia"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Penelusuran suara tidak tersedia"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Tidak dapat melakukan panggilan telepon karena aplikasi Telepon telah dinonaktifkan."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Telusuri kontak"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> panggilan tidak terjawab baru"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Daftar panggilan cepat masih kosong"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Tambahkan favorit"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Anda belum memiliki kontak"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Tambahkan kontak"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Sentuh foto untuk melihat semua nomor atau sentuh &amp; tahan untuk menyusun ulang"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Hapus"</string>
+    <string name="select_all" msgid="408601760696146245">"Pilih semua"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Panggilan video"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Kirim pesan"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detail panggilan"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Nomor yang diblokir"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> sudah diblokir."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Akun panggilan"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktifkan"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Setel izin"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Untuk mengaktifkan panggilan cepat, aktifkan izin Kontak."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Untuk melihat log panggilan, aktifkan izin Telepon."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Untuk melihat kontak, aktifkan izin Kontak."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Untuk mengakses pesan suara, aktifkan izin Telepon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Untuk menelusuri kontak, aktifkan izin Kontak."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Untuk melakukan panggilan, aktifkan izin Telepon."</string>
diff --git a/java/com/android/dialer/app/res/values-is/strings.xml b/java/com/android/dialer/app/res/values-is/strings.xml
index fdd6356..b291eae 100644
--- a/java/com/android/dialer/app/res/values-is/strings.xml
+++ b/java/com/android/dialer/app/res/values-is/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Fara aftur í símtal í gangi"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Bæta við símtali"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Móttekin símtöl"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Opnar fjöldaaðgerðastillingu"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Fjöldaaðgerðastillingu lokað"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Valdi <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Fjarlægði val á <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Spila talhólfsskilaboð"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Skoða tengiliðinn <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Hringja í <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Talhólf"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> mín. og <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Hætta við runuaðgerðastillingu"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talhólfsskilaboð"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talhólfsskilaboð"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Já"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nei"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Eyða völdum <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> valin"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Hleður af SIM-kortinu…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Tengiliðir á SIM-korti"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Ekkert tengiliðaforrit í boði"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Raddleit er ekki í boði"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Ekki er hægt að hringja vegna þess að forritið Sími hefur verið gert óvirkt."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Leita í tengiliðum"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ný ósvöruð símtöl"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Þú ert ekki með neinn í hraðvali enn sem komið er"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Bæta uppáhaldi við"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Þú ert ekki með neina tengiliði enn sem komið er"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Bæta tengilið við"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Snertu myndina til að sjá öll númer eða haltu henni inni til að endurraða"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Fjarlægja"</string>
+    <string name="select_all" msgid="408601760696146245">"Velja allt"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Myndsímtal"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Senda skilaboð"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Símtalsupplýsingar"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Númer á bannlista"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er nú þegar á bannlista."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Símtalareikningar"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Kveikja"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Stilla heimildir"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Kveiktu á tengiliðaheimildinni til að gera hraðval virkt."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Kveiktu á heimild símaforritsins til að sjá símtalaskrána þína."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Kveiktu á tengiliðaheimildinni til að sjá tengiliðina þína."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Kveiktu á heimild símaforritsins til að fá aðgang að talhólfinu þínu."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Kveiktu á heimildunum fyrir tengiliði til að leita að tengiliðum."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Kveiktu á heimild símaforritsins til að hringja símtal."</string>
diff --git a/java/com/android/dialer/app/res/values-it/strings.xml b/java/com/android/dialer/app/res/values-it/strings.xml
index 9bd8cd3..711ab26 100644
--- a/java/com/android/dialer/app/res/values-it/strings.xml
+++ b/java/com/android/dialer/app/res/values-it/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Torna alla chiamata in corso"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Aggiungi chiamata"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Chiamate in arrivo"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Attivazione della modalità di azione collettiva"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Disttivazione della modalità di azione collettiva"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selezionato"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> deselezionato"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Riproduci messaggio vocale"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Visualizza <xliff:g id="NAME">%1$s</xliff:g> contatto"</string>
     <string name="description_call" msgid="1532402285334775372">"Chiama <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Segreteria"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> secondi"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annulla modalità di azione collettiva"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"messaggio vocale"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"messaggi vocali"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sì"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Eliminare i <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> selezionati?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selezionate"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> alle ore <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Caricamento da SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contatti SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Nessuna app di contatti disponibile"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Ricerca vocale non disponibile"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Impossibile effettuare una telefonata perché l\'applicazione Telefono è stata disattivata."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Cerca contatti"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nuove chiamate perse"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Nessun preferito disponibile nella Composizione rapida"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Aggiungi un preferito"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Nessun contatto disponibile"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Aggiungi un contatto"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Tocca l\'immagine per visualizzare tutti i numeri oppure tieni premuto per cambiare l\'ordine"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Rimuovi"</string>
+    <string name="select_all" msgid="408601760696146245">"Seleziona tutto"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochiamata"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Invia un messaggio"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Dettagli chiamata"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Numeri bloccati"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> è già bloccato."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Account di chiamata"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Attiva"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Imposta autorizzazioni"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Per attivare la composizione rapida, attiva l\'autorizzazione Contatti."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Per accedere al registro chiamate, attiva l\'autorizzazione sul telefono."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Per accedere ai tuoi contatti, attiva l\'autorizzazione Contatti."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Per accedere alla segreteria, attiva l\'autorizzazione sul telefono."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Per cercare nei tuoi contatti, attiva le autorizzazioni Contatti."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Per fare una chiamata, attiva l\'autorizzazione sul telefono."</string>
diff --git a/java/com/android/dialer/app/res/values-iw/strings.xml b/java/com/android/dialer/app/res/values-iw/strings.xml
index bb115e2..bd2a05a 100644
--- a/java/com/android/dialer/app/res/values-iw/strings.xml
+++ b/java/com/android/dialer/app/res/values-iw/strings.xml
@@ -87,6 +87,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"חזור לשיחה פעילה"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"הוסף שיחה"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"שיחות נכנסות"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"עברת למצב של ביצוע פעולות בכמות גדולה"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"עזבת את המצב של ביצוע פעולות בכמות גדולה"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"בחרת את <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"ביטלת את הבחירה של <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"הפעל דואר קולי"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"הצג את איש הקשר <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"התקשר אל <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
     <string name="voicemail" msgid="8899540969000957954">"דואר קולי"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> שניות"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> דק\' <xliff:g id="SECONDS">%s</xliff:g> שנ\'"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ביטול המצב של ביצוע פעולות בכמות גדולה"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ההודעה הקולית"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ההודעות הקוליות"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"כן"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"לא"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"האם למחוק את <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> שבחרת?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> נבחרו"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ב-<xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"‏טוען מכרטיס SIM…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"‏אנשי קשר בכרטיס SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"אין אפליקציה זמינה עבור אנשי קשר"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"חיפוש קולי אינו זמין"</string>
     <string name="call_not_available" msgid="7850148370757361155">"לא ניתן לבצע שיחת טלפון מפני שאפליקציית הטלפון הושבתה."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"חפש אנשי קשר"</string>
@@ -147,10 +152,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> שיחות חדשות שלא נענו"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"עדיין לא הוגדר חיוג מהיר לאף איש קשר"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"הוסף פריט מועדף"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"עדיין אין לך אנשי קשר"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"הוסף איש קשר"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"גע בתמונה כדי להציג את כל המספרים או גע והחזק כדי לשנות את הסדר"</string>
     <string name="remove_contact" msgid="2353580570488923668">"הסר"</string>
+    <string name="select_all" msgid="408601760696146245">"בחירת הכל"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"שיחת וידאו"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"שלח הודעה"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"פרטי שיחה"</string>
@@ -217,11 +221,9 @@
     <string name="block_list" msgid="4701585783411870782">"מספרים חסומים"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> כבר חסום."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"חשבונות לביצוע שיחות"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"הפעל"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"הגדר הרשאות"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"כדי להפעיל חיוג מהיר, הפעל את ההרשאה \'אנשי קשר\'."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"כדי לראות את יומן השיחות, הפעל את ההרשאה \'טלפון\'."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"כדי להציג את אנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"כדי לגשת לדואר הקולי, הפעל את ההרשאה \'טלפון\'."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"כדי לחפש באנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"כדי להתקשר, הפעל את ההרשאה \'טלפון\'."</string>
diff --git a/java/com/android/dialer/app/res/values-ja/strings.xml b/java/com/android/dialer/app/res/values-ja/strings.xml
index 63b15cb..9ba40fb 100644
--- a/java/com/android/dialer/app/res/values-ja/strings.xml
+++ b/java/com/android/dialer/app/res/values-ja/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"通話に戻る"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"別の通話を追加"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"着信"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"一括操作モードを開始します"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"一括操作モードを終了しました"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> を選択しました"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> を選択解除しました"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ボイスメールを再生"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g>の連絡先を表示"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g>に発信"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"ボイスメール"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g>秒"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g>分<xliff:g id="SECONDS">%s</xliff:g>秒"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"一括操作モードをキャンセルします"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ボイスメール"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ボイスメール"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"はい"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"いいえ"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"選択した<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>を削除しますか？"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> 件選択済み"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>、<xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g> 分 <xliff:g id="SECONDS">%2$02d</xliff:g> 秒"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIMカードから読み取り中..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIMカードの連絡先"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"連絡先アプリがありません"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"音声検索を利用できません"</string>
     <string name="call_not_available" msgid="7850148370757361155">"電話アプリが無効になっているため発信できません。"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"連絡先を検索"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g>件の不在着信"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"クイックアクセスに登録済みの連絡先はまだありません"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"お気に入りを追加"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"連絡先はまだありません"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"連絡先を追加"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"画像をタップするとすべての番号が表示され、押し続けると番号を並べ替えることができます"</string>
     <string name="remove_contact" msgid="2353580570488923668">"削除"</string>
+    <string name="select_all" msgid="408601760696146245">"すべて選択"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ビデオハングアウト"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"メッセージを送信"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"通話の詳細"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"ブロックした番号"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g>は既にブロックしています。"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"通話アカウント"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"ONにする"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"権限を設定"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"クイックアクセスを有効にするには、連絡先権限をONにしてください。"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"通話履歴を表示するには、電話権限をONにしてください。"</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"連絡先を表示するには、連絡先権限をONにしてください。"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"ボイスメールにアクセスするには、電話権限をONにしてください。"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"連絡先を検索するには、連絡先権限をONにしてください。"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"電話をかけるには、電話権限をONにしてください。"</string>
diff --git a/java/com/android/dialer/app/res/values-ka/strings.xml b/java/com/android/dialer/app/res/values-ka/strings.xml
index ae89505..dbb48f4 100644
--- a/java/com/android/dialer/app/res/values-ka/strings.xml
+++ b/java/com/android/dialer/app/res/values-ka/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"მიმდინარე ზარზე დაბრუნება"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ზარის დამატება"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"შემომავალი ზარები"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"მიმდინარეობს ერთიანი ქმედების რეჟიმში შესვლა"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ერთიანი ქმედების რეჟიმიდან გამოხვედით"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"არჩეულია <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ის არჩევა გაუქმდა"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ხმოვანი ფოსტის ჩართვა"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"კონტაქტის <xliff:g id="NAME">%1$s</xliff:g> ნახვა"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g>-თან დარეკვა"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"ხმოვანი ფოსტა"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> წმ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> მინ <xliff:g id="SECONDS">%s</xliff:g> წამ"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ერთიანი ქმედების რეჟიმის გაუქმება"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ხმოვანი ფოსტა"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ხმოვანი ფოსტა"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"დიახ"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"არა"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"გსურთ, წაშალოთ არჩეული <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"არჩეულია <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"იტვირთება SIM ბარათიდან…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM ბარათის კონტაქტები"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"კონტაქტების აპლიკაცია არ არის ხელმისაწვდომი"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"ხმოვანი ძიება არ არის ხელმისაწვდომი"</string>
     <string name="call_not_available" msgid="7850148370757361155">"სატელეფონო ზარის განხორციელება ვერ ხერხდება, ვინაიდან ტელეფონის აპლიკაცია გაუქმებულია."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"კონტაქტებში ძიება"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ახალი გაცდენილი ზარი"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"სწრაფი აკრეფისთვის რჩეულები ჯერ არ გყავთ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"რჩეული კონტაქტის დამატება"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"კონტაქტები ჯერ არ გაქვთ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"კონტაქტის დამატება"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"ყველა ნომრის სანახავად შეეხეთ სურათს ან შეეხეთ და დააყოვნეთ მიმდევრობის შესაცვლელად"</string>
     <string name="remove_contact" msgid="2353580570488923668">"ამოშლა"</string>
+    <string name="select_all" msgid="408601760696146245">"ყველას არჩევა"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ვიდეო ზარი"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"შეტყობინების გაგზავნა"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"ზარის მონაცემები"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"დაბლოკილი ნომრები"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> უკვე დაბლოკილია."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"ანგარიშების გამოძახება"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"ჩართვა"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ნებართვების დაყენება"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"სწრაფი აკრეფის გასააქტიურებლად, ჩართეთ კონტაქტების ნებართვა."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"ზარების ჟურნალის სანახავად, ჩართეთ ტელეფონის ნებართვა."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"კონტაქტების სანახავად, ჩართეთ კონტაქტების ნებართვა."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"ხმოვან ფოსტაზე წვდომისთვის, ჩართეთ ტელეფონის ნებართვა."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"თქვენი კონტაქტების მოსაძებნად ჩართეთ კონტაქტების ნებართვები."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ზარის განსახორციელებლად, ჩართეთ ტელეფონის ნებართვა."</string>
diff --git a/java/com/android/dialer/app/res/values-kk/strings.xml b/java/com/android/dialer/app/res/values-kk/strings.xml
index ba42386..8dfe531 100644
--- a/java/com/android/dialer/app/res/values-kk/strings.xml
+++ b/java/com/android/dialer/app/res/values-kk/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Қосылып тұрған қоңырауға оралу"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Қоңырау қосу"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Келген қоңыраулар"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Жаппай әрекет режиміне өту"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Жаппай әрекет режиімінен шығу"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> таңдалды"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> таңдауы алынды"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Дауыс-хабарды ойнату"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> контактісін көру"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> нөміріне қоңырау шалу"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Дауыстық пошта"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Топтама әрекеттер режимін жабу"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"дауыстық хабар"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"дауыстық хабарлар"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Иә"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Жоқ"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Таңдалған <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> хабарларын жою қажет пе?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> таңдалды"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID (ұялы жабдық анықтағыш)"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM картасынан жүктеу…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM картасының контактілері"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Контактілер қолданбасы қол жетімді емес"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Дауыс арқылы іздеу қол жетімді емес"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Телефон қоңырауын шалу мүмкін емес, өйткені «Телефон» қолданбасы өшірілген."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Контактілерді іздеу"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> жаңа қабылданбаған қоңыраулар"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Жылдам теруде әлі ешкім жоқ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Таңдаулыны қосу"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Әлі ешқандай контактілер жоқ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Контакт қосу"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Барлық нөмірлерді көру үшін кескінді түртіңіз, ал ретін өзгерту үшін түртіп, ұстап тұрыңыз"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Алып тастау"</string>
+    <string name="select_all" msgid="408601760696146245">"Барлығын таңдау"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Бейне қоңырау"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Хабар жіберу"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Қоңырау мәліметтері"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Бөгелген нөмірлер"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгеліп қойылған."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Қоңырау шалу есептік жазбалары"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Қосу"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Рұқсаттар орнату"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Жылдам теруді қосу үшін \"Контактілер\" рұқсатын қосыңыз."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Қоңыраулар журналы көру үшін \"Телефон\" рұқсатын қосыңыз."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Контактілерді көру үшін \"Контактілер\" рұқсатын қосыңыз."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Дауыс поштасына қатынасу үшін \"Телефон\" рұқсатын қосыңыз."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Контактілерді іздеу үшін \"Контактілер\" рұқсаттарын қосыңыз."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Қоңырауды шалу үшін \"Телефон\" рұқсатын қосыңыз."</string>
diff --git a/java/com/android/dialer/app/res/values-km/strings.xml b/java/com/android/dialer/app/res/values-km/strings.xml
index bdc91cf..ed0db05 100644
--- a/java/com/android/dialer/app/res/values-km/strings.xml
+++ b/java/com/android/dialer/app/res/values-km/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"កំពុង​ត្រឡប់​ទៅកាន់​ការ​ហៅ"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"បន្ថែម​ការ​ហៅ"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ការ​ហៅ​ចូល"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ចូល​មុខងារ​សកម្មភាព​ច្រើន"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"បាន​ចាកចេញ​ពី​មុខងារ​សកម្មភាព​ច្រើន"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"បាន​ជ្រើសរើស <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"បាន​ដក​ការជ្រើសរើស <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ចាក់​សារ​ជា​សំឡេង"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"មើល​ទំ​នាក់ទំនង <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"ហៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"សារ​ជា​សំឡេង"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> វិនាទី"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> នាទី <xliff:g id="SECONDS">%s</xliff:g> វិនាទី"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"បោះបង់​មុខងារ​សកម្មភាព​ជា​ក្រុម"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"សារ​ជា​សំឡេង"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"សារ​ជា​សំឡេង"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"បាទ/ចាស"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ទេ"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"លុប <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ដែល​បាន​ជ្រើសរើស?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"បាន​ជ្រើសរើស <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> នៅម៉ោង <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"កំពុង​ផ្ទុក​ពី​ស៊ីម​កាត..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"ទំនាក់ទំនង​នៅ​ក្នុង​ស៊ីម​កាត"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"មិនមានកម្មវិធីទំនាក់ទំនងទេ"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"ការស្វែងរកជាសម្លេងមិនមានទេ"</string>
     <string name="call_not_available" msgid="7850148370757361155">"មិន​អាច​ហៅ​បាន​ទេ​ ព្រោះ​កម្មវិធី​ទូរស័ព្ទ​ត្រូវ​បាន​បិទ។"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"រក​ទំនាក់ទំនង"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"ខកខាន​ទទួល​ថ្មី <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"គ្មាននរណាម្នាក់នៅក្នុងការហៅរហ័សរបស់អ្នកនៅឡើយទេ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"បញ្ចូលសំណព្វ"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"អ្នកមិនទាន់មានទំនាក់ទំនងនៅឡើយទេ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"បន្ថែមទំនាក់ទំនង"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"ប៉ះរូបភាពដើម្បីមើលលេខទាំងអស់ ឬប៉ះ &amp; សង្កត់ឲ្យជាប់ដើម្បីតម្រៀបឡើងវិញ"</string>
     <string name="remove_contact" msgid="2353580570488923668">"លុបចេញ"</string>
+    <string name="select_all" msgid="408601760696146245">"ជ្រើសរើស​​ទាំងអស់"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ហៅជាវីដេអូ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"ផ្ញើសារ"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"ព័ត៌មានលម្អិតអំពីការហៅ"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"លេខបានរារាំង"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ត្រូវបានទប់ស្កាត់រួចហើយ"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"គណនីហៅទូរសព្ទ"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"បើក"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"កំណត់សិទ្ធិអនុញ្ញាត"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"ដើម្បីបើកដំណើរការហៅរហ័ស សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"ដើម្បីមើលកំណត់ហេតុហៅទូរស័ព្ទរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"ដើម្បីមើលទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"ដើម្បីចូលដំណើរការសារជាសំឡេងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"ដើម្បីស្វែងរកទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតទំនាក់ទំនង។"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ដើម្បីធ្វើការហៅទូរស័ព្ទ សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string>
diff --git a/java/com/android/dialer/app/res/values-kn/strings.xml b/java/com/android/dialer/app/res/values-kn/strings.xml
index dae544d..932bc40 100644
--- a/java/com/android/dialer/app/res/values-kn/strings.xml
+++ b/java/com/android/dialer/app/res/values-kn/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ಪ್ರತ್ಯತ್ತರ ಕರೆಯು ಪ್ರಗತಿಯಲ್ಲಿದೆ"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ಕರೆಯನ್ನು ಸೇರಿಸಿ"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ಒಳಬರುವ ಕರೆಗಳು"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ದೊಡ್ಡ ಪ್ರಮಾಣದ ಕ್ರಿಯೆಯ ಮೋಡ್‌ಗೆ ಪ್ರವೇಶಿಸಲಾಗುತ್ತಿದೆ"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ದೊಡ್ಡ ಪ್ರಮಾಣದ ಕ್ರಿಯೆಯ ಮೋಡ್ ತೊರೆಯಲಾಗಿದೆ"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ಆಯ್ಕೆಯನ್ನು ರದ್ದುಮಾಡಲಾಗಿದೆ"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ಧ್ವನಿಮೇಲ್‌ ಪ್ಲೇ ಮಾಡಿ"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> ಸಂಪರ್ಕ ವೀಕ್ಷಿಸಿ"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ಕರೆ ಮಾಡಿ"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"ಧ್ವನಿಮೇಲ್"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ಸೆಕೆಂ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ನಿಮಿ <xliff:g id="SECONDS">%s</xliff:g> ಸೆಕೆಂ"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ಬ್ಯಾಚ್ ಕ್ರಿಯೆಗಳ ಮೋಡ್ ಅನ್ನು ರದ್ದುಮಾಡಿ"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ಧ್ವನಿಮೇಲ್"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ಧ್ವನಿಮೇಲ್‌ಗಳು"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ಹೌದು"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ಇಲ್ಲ"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ಆಯ್ಕೆ ಮಾಡಲಾದ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ಅನ್ನು ಅಳಿಸುವುದೇ?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ರಂದು <xliff:g id="TIME">%2$s</xliff:g> ಗಂಟೆಗೆ"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"ಸಿಮ್‌ ಕಾರ್ಡ್‌ನಿಂದ ಲೋಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"ಸಿಮ್‌ ಕಾರ್ಡ್‌ ಸಂಪರ್ಕಗಳು"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"ಯಾವುದೇ ಸಂಪರ್ಕಗಳ ಅಪ್ಲಿಕೇಶನ್‌ ಲಭ್ಯವಿಲ್ಲ"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"ಧ್ವನಿ ಹುಡುಕಾಟ ಲಭ್ಯವಿಲ್ಲ"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ಫೋನ್ ಅಪ್ಲಿಕೇಶನ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿರುವುದರಿಂದ ಫೋನ್ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಿ"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ಹೊಸ ಮಿಸ್ಡ್‌ ಕರೆಗಳು"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"ನಿಮ್ಮ ತ್ವರಿತ ಡಯಲ್‌ನಲ್ಲಿ ಇದುವರೆಗೆ ಯಾರೂ ಇಲ್ಲ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ಮೆಚ್ಚಿನದನ್ನು ಸೇರಿಸಿ"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"ನೀವು ಇನ್ನೂ ಯಾವುದೇ ಸಂಪರ್ಕಗಳನ್ನು ಹೊಂದಿಲ್ಲ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"ಎಲ್ಲಾ ಸಂಖ್ಯೆಗಳನ್ನು ನೋಡಲು ಚಿತ್ರವನ್ನು ಸ್ಪರ್ಶಿಸಿ ಅಥವಾ ಮರುಕ್ರಮಗೊಳಿಸಲು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹೋಲ್ಡ್‌‌ ಮಾಡಿ"</string>
     <string name="remove_contact" msgid="2353580570488923668">"ತೆಗೆದುಹಾಕು"</string>
+    <string name="select_all" msgid="408601760696146245">"ಎಲ್ಲವನ್ನೂ ಆಯ್ಕೆ ಮಾಡಿ"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ವೀಡಿಯೊ ಕರೆ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"ಕರೆಯ ವಿವರಗಳು"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"ನಿರ್ಬಂಧಿಸಲಾದ ಸಂಖ್ಯೆಗಳು"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ಈಗಾಗಲೇ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"ಕರೆ ಮಾಡುವ ಖಾತೆಗಳು"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"ಆನ್‌ ಮಾಡಿ"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿಸು"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"ವೇಗ ಡಯಲ್ ಸಕ್ರಿಯಗೊಳಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"ನಿಮ್ಮ ಕರೆಯ ಲಾಗ್ ಅನ್ನು ವೀಕ್ಷಿಸಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"ನಿಮ್ಮ ಧ್ವನಿಮೇಲ್ ಪ್ರವೇಶಿಸಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಗಳನ್ನು ಆನ್ ಮಾಡಿ."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ಕರೆ ಮಾಡಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
diff --git a/java/com/android/dialer/app/res/values-ko/strings.xml b/java/com/android/dialer/app/res/values-ko/strings.xml
index 1850b6c..de6b93c 100644
--- a/java/com/android/dialer/app/res/values-ko/strings.xml
+++ b/java/com/android/dialer/app/res/values-ko/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"진행 중인 통화로 돌아가기"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"통화 추가"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"수신전화"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"일괄 작업 모드 시작 중"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"일괄 작업 모드 종료됨"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> 선택됨"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> 선택 취소됨"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"음성사서함 재생"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g>님의 연락처 보기"</string>
     <string name="description_call" msgid="1532402285334775372">"전화걸기: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"음성사서함"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g>초"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g>분 <xliff:g id="SECONDS">%s</xliff:g>초"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"일괄 작업 모드 취소"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"음성사서함"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"음성사서함"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"예"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"아니요"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"선택한 <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>을(를) 삭제하시겠습니까?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g>개 선택됨"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>분 <xliff:g id="SECONDS">%2$02d</xliff:g>초"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM 카드에서 로딩 중..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM 카드 주소록"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"사용할 수 있는 주소록 앱이 없습니다."</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"음성검색이 지원되지 않습니다."</string>
     <string name="call_not_available" msgid="7850148370757361155">"전화 애플리케이션을 사용 중지했으므로 전화를 걸 수 없습니다."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"주소록 검색"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"새로운 부재중 전화 <xliff:g id="NUMBER">%s</xliff:g>건"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"아직 단축 다이얼이 설정된 연락처가 없습니다."</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"단축 다이얼 추가"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"아직 연락처가 없습니다."</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"연락처 추가"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"이미지를 터치하여 모든 번호를 확인하거나 길게 터치하여 재정렬합니다."</string>
     <string name="remove_contact" msgid="2353580570488923668">"삭제"</string>
+    <string name="select_all" msgid="408601760696146245">"모두 선택"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"화상 통화"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"메시지 보내기"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"통화 세부정보"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"차단된 번호"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g>번은 이미 차단되었습니다."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"통화 계정"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"사용"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"권한 설정"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"단축번호를 사용하려면 주소록 권한을 사용하도록 설정하세요."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"통화 기록을 보려면 전화 권한을 사용하도록 설정하세요."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"주소록을 보려면 주소록 권한을 사용하도록 설정하세요."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"음성사서함에 액세스하려면 전화 권한을 사용하도록 설정하세요."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"주소록을 검색하려면 주소록 권한을 사용하도록 설정하세요."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"전화를 걸려면 전화 권한을 사용하도록 설정하세요."</string>
diff --git a/java/com/android/dialer/app/res/values-ky/strings.xml b/java/com/android/dialer/app/res/values-ky/strings.xml
index 9e80e29..ac9a617 100644
--- a/java/com/android/dialer/app/res/values-ky/strings.xml
+++ b/java/com/android/dialer/app/res/values-ky/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Токтотулган чалууга кайтуу"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Чалууну кошуу"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Кирүүчү чалуулар"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Жапырт аракет режимине кирдиңиз"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Жапырт аракет режиминен чыктыңыз"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> объект тандалды"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> объект тандоодон чыгарылды"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Үнкатты угуу"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Байланышты кароо <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Чалуу <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Үн почтасы"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мүн. <xliff:g id="SECONDS">%s</xliff:g> сек."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Жапырт аракет режимин жокко чыгаруу"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"үн почтасы"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"үн почталары"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ооба"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Жок"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Тандалган <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> жок кылынсынбы?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> тандалды"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> саат <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM картадан жүктөлүүдө..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM картадагы байланыштар"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Жеткиликтүү байланыштар колдонмосу жок"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Үн менен издөө жеткиликтүү эмес"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Телефон колдонмосу өчүрүлгөндүктөн, чалуу мүмкүн болбой жатат."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Байланыштарды издөө"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> жаңы өткөзүлгөн чалуу"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Азырынча тез териле турган номерлер жок"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Сүйүктүү номер кошуу"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Азырынча бир дагы байланышыңыз жок"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Байланыш кошуу"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Бардык номерлерди көрүү үчүн, сүрөткө тийип коюңуз же коё бербей басып туруп иретин өзгөртсөңүз болот."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Алып салуу"</string>
+    <string name="select_all" msgid="408601760696146245">"Баарын тандоо"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Видео чалуу"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Билдирүү жөнөтүү"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Чалуунун чоо-жайы"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Бөгөттөлгөн номерлер"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> мурунтан эле бөгөттөлгөн."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Чалуу каттоо эсептери"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Күйгүзүү"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Уруксаттарды берүү"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Тез терүүнү иштетүү үчүн, \"Байланыштар\" колдонмосуна уруксат бериңиз."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Чалуулар таржымалыңызды көрүү үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Байланыштар тизмесин көрүү үчүн, \"Байланыштар\" колдонмосуна уруксат бериңиз."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Үн почтаңызга кирүү үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Байланыштарыңызды издөө үчүн, Байланыштарга уруксатты күйгүзүңүз."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Чалуу үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string>
diff --git a/java/com/android/dialer/app/res/values-lo/strings.xml b/java/com/android/dialer/app/res/values-lo/strings.xml
index 8284e8d..2a82973 100644
--- a/java/com/android/dialer/app/res/values-lo/strings.xml
+++ b/java/com/android/dialer/app/res/values-lo/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ກັບໄປການໂທທີ່ກຳລັງດຳເນີນຢູ່"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ເພີ່ມການໂທ"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ສາຍໂທເຂົ້າ"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ກຳລັງເຂົ້າໂໝດຄຳສັ່ງຈຳນວນຫຼາຍ"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ອອກຈາກໂໝດຄຳສັ່ງຈຳນວນຫຼາຍແລ້ວ"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"ເລືອກ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ແລ້ວ"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"ເຊົາເລືອກ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ແລ້ວ"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ເປີດຂໍ້ຄວາມສຽງ"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"ເບິ່ງລາຍຊື່ຜູ່ຕິດຕໍ່ <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"ໂທຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"ຂໍ້ຄວາມສຽງ"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ວິນາທີ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ນ​ທ <xliff:g id="SECONDS">%s</xliff:g> ວິ"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ຍົກເລີກໂໝດຄຳສັ່ງເປັນຊຸດ"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ຂໍ້ຄວາມສຽງ"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ຂໍ້ຄວາມສຽງ"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ແມ່ນແລ້ວ"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ບໍ່"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ລຶບ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ທີ່ເລືອກອອກໄປບໍ?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"ເລືອກ <xliff:g id="NUMBER">%1$s</xliff:g> ລາຍການແລ້ວ"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ເວລາ <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"ກຳລັງໂຫລດຈາກ SIM card..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"ລາຍຊື່ຜູ່ຕິດຕໍ່ SIM card"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"ບໍ່​ມີ​ແອັບຯ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ຢູ່"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"ບໍ່​ມີ​ການ​ຊອກ​ຫາ​ດ້ວຍ​ສຽງ​ຢູ່"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ບໍ່​ສາ​ມາດ​ໂທ​ໄດ​້​ເນື່ອງ​ຈາກ​ແອັບ​ພ​ລິ​ເຄ​ຊັນ​ໂທ​ລະ​ສັບ​ຖືກ​ປິດ​ການ​ນຳ​ໃຊ້​ໄວ້."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ຊອກຫາລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ສາຍທີ່ບໍ່ໄດ້ຮັບໃໝ່"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"ບໍ່​ມີ​ຜູ້​ໃດ​ຢູ່​ໃນ​ການ​ໂທ​ດ່ວນ​ຂອງ​ທ່ານ​ເທື່ອ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ເພີ່ມ​ລາຍ​ການ​ທີ່​ມັກ"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"ທ່ານ​ບໍ່​ມີ​ລາຍ​ຊື່​ໃດ​ເທື່ອ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ເພີ່ມ​ລາຍ​ຊື່"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"ແຕະຮູບເພື່ອເບິ່ງເບີໂທທັງໝົດ ຫຼື ແຕະຄ້າງໄວ້ເພື່ອຈັດລຳດັບໃໝ່"</string>
     <string name="remove_contact" msgid="2353580570488923668">"​ລຶບ​ອອກ"</string>
+    <string name="select_all" msgid="408601760696146245">"ເລືອກທັງໝົດ"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"​ໂທ​ດ້ວຍ​ວິ​ດີ​ໂອ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"ສົ່ງຂໍ້ຄວາມ"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"ລາຍລະອຽດ​ການໂທ"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"ເບີໂທລະສັບທີ່ບລັອກໄວ້"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ຖືກ​ບ​ລັອກ​ແລ້ວ."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"ບັນ​ຊີ​ໂທ"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"ເປີດ​"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ຕັ້ງ​ການ​ອະ​ນຸ​ຍາດ"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"ເພື່ອ​ເປີດ​ໃຊ້​ງານ​ການໂທດ່ວນ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ລາຍ​ຊື່."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"ເພື່ອ​ເບິ່ງ​ບັນ​ທຶກ​ການ​ໂທ​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"ເພື່ອ​ເບິ່ງ​ລາຍ​ຊື່​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ລາຍ​ຊື່"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"ເພື່ອ​ເຂົ້າ​ຫາ​ຂໍ້​ຄວາມ​ສຽງ​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"ເພື່ອຄົ້ນຫາລາຍາຊື່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ເພື່ອ​ເຮັດການໂທ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ."</string>
diff --git a/java/com/android/dialer/app/res/values-lt/strings.xml b/java/com/android/dialer/app/res/values-lt/strings.xml
index a346d5d..367c928 100644
--- a/java/com/android/dialer/app/res/values-lt/strings.xml
+++ b/java/com/android/dialer/app/res/values-lt/strings.xml
@@ -87,6 +87,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Grįžti prie vykdomo skambučio"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Pridėti skambutį"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Gaunami skambučiai"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Įjungiamas masinių veiksmų režimas"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Masinių veiksmų režimas išjungtas"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Pasirinkta: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Pasirinkimas atšauktas: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Paleisti balso pašto pranešimus"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Žiūrėti kontaktą <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Skambinti <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Balso paštas"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Atšaukti masinių veiksmų režimą"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"balso pašto praneš."</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"balso pašto praneš."</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Taip"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ištrinti pasir. <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Pasirinkta: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Įkeliama iš SIM kortelės..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM kortelės adresatai"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Nepasiekiama jokia kontaktų programa"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Paieška balsu nepasiekiama"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Negalima skambinti telefonu, nes Telefono programa išjungta."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Ieškoti adresatų"</string>
@@ -147,10 +152,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Naujų praleistų skambučių: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Dar nieko neįtraukėte į sparčiojo rinkimo sąrašą"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Pridėti mėgstamiausią"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Dar neturite kontaktų"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Pridėti kontaktą"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Palieskite vaizdą, kad peržiūrėtumėte visus numerius, arba palieskite ir palaikykite, kad pertvarkytumėte"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Pašalinti"</string>
+    <string name="select_all" msgid="408601760696146245">"Pasirinkti viską"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Vaizdo skambutis"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Siųsti pranešimą"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Išsami skambučio informacija"</string>
@@ -217,11 +221,9 @@
     <string name="block_list" msgid="4701585783411870782">"Užblokuoti numeriai"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> jau užblokuotas."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Skambinimo paskyros"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Įjungti"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nustatyti leidimus"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Jei norite įgalinti spartųjį rinkimą, įjunkite Kontaktų programos leidimą."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Jei norite peržiūrėti skambučių žurnalą, įjunkite Telefono programos leidimą."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Jei norite peržiūrėti kontaktus, įjunkite Kontaktų programos leidimą."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Jei norite pasiekti balso paštą, įjunkite Telefono programos leidimą."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Kad galėtumėte ieškoti kontaktų, įjunkite Kontaktų leidimus."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Jei norite paskambinti, įjunkite Telefono programos leidimą."</string>
diff --git a/java/com/android/dialer/app/res/values-lv/strings.xml b/java/com/android/dialer/app/res/values-lv/strings.xml
index 808d7bf..2713b91 100644
--- a/java/com/android/dialer/app/res/values-lv/strings.xml
+++ b/java/com/android/dialer/app/res/values-lv/strings.xml
@@ -86,6 +86,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Atgriezties pie pašreizējā zvana"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Pievienot zvanu"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Ienākošie zvani"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Tiek atvērts lielapjoma darbību režīms"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Tika aizvērts lielapjoma darbību režīms"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Atlasīt: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Noņemt atlasi: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Atskaņot balss pasta ziņojumu"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Skatīt kontaktpersonu <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Zvanīt: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -100,11 +104,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Balss pasts"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Iziet no grupas darbību režīma"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"balss pasta ziņojums"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"balss pasta ziņojumi"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Jā"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nē"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vai dzēst atlasi: <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Atlasīti: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> plkst. <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -117,7 +123,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Notiek ielāde no SIM kartes..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontaktpersonas SIM kartē"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Nav pieejama neviena kontaktpersonu lietotne."</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Meklēšana ar balsi nav pieejama."</string>
     <string name="call_not_available" msgid="7850148370757361155">"Nevar veikt tālruņa zvanu, jo lietojumprogramma Tālrunis tika atspējota."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Meklēt kontaktpersonas"</string>
@@ -146,10 +151,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Jauni neatbildēti zvani: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Ātro zvanu sarakstā vēl nav nevienas kontaktpersonas."</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Pievienot izlasei"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Jums vēl nav nevienas kontaktpersonas."</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Pievienot kontaktpersonu"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Pieskarieties attēlam, lai skatītu visus numurus, vai pieskarieties attēlam un turiet to, lai veiktu pārkārtošanu."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Noņemt"</string>
+    <string name="select_all" msgid="408601760696146245">"Atlasīt visu"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videozvans"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Sūtīt ziņojumu"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Informācija par zvanu"</string>
@@ -215,11 +219,9 @@
     <string name="block_list" msgid="4701585783411870782">"Bloķētie numuri"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> jau ir bloķēts."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Zvanu konti"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Ieslēgt"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Iestatīt atļaujas"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Lai iespējotu ātros zvanus, ieslēdziet atļauju Kontaktpersonas."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Lai skatītu zvanu žurnālu, ieslēdziet atļauju Tālrunis."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Lai skatītu kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Lai piekļūtu balss pastam, ieslēdziet atļauju Tālrunis."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Lai meklētu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Lai veiktu zvanu, ieslēdziet atļauju Tālrunis."</string>
diff --git a/java/com/android/dialer/app/res/values-mk/strings.xml b/java/com/android/dialer/app/res/values-mk/strings.xml
index 6d2e533..09725a6 100644
--- a/java/com/android/dialer/app/res/values-mk/strings.xml
+++ b/java/com/android/dialer/app/res/values-mk/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Врати се на повик во тек"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Додај повик"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Дојдовни повици"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Влегувате во режим на групно дејство"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Излеговте од режим на групно дејство"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Избрано е <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Поништен е изборот на <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Преслушај говорна пошта"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Прикажи контакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Повикај <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Говорна пошта"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин. <xliff:g id="SECONDS">%s</xliff:g> сек."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Откажи го режимот на групни дејства"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"говорна пошта"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"говорни пораки"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Да се избришат избраните <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Избрани се <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> во <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Вчитување од SIM картичка..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Контакти од SIM картичка"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Не е достапна апликација за контакти"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Гласовното пребарување не е достапно"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Не може да се воспостави телефонски повик, бидејќи апликацијата Телефон е оневозможена."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Пребарај контакти"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> нови пропуштени повици"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Сè уште немате никого на брзо бирање"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Додај омилено"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Сè уште немате контакти"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Додај контакт"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Допрете ја сликата за да ги видите сите броеви или допрете и држете за промена на редоследот"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Отстрани"</string>
+    <string name="select_all" msgid="408601760696146245">"Изберете ги сите"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Видеоповик"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Испрати порака"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Детали на повик"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Блокирани броеви"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> веќе е блокиран."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Сметки за повикување"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Вклучи"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Постави дозволи"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"За да овозможите брзо бирање, вклучете ја дозволата за контакти."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"За да ја видите евиденцијата на повици, вклучете ја дозволата за телефон."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"За да ги видите контактите, вклучете ја дозволата за контакти."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"За да пристапите кон говорната пошта, вклучете ја дозволата за телефон."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"За да ги пребарувате контактите, вклучете ги дозволите за контакти."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"За да воспоставите повик, вклучете ја дозволата за телефон."</string>
diff --git a/java/com/android/dialer/app/res/values-ml/strings.xml b/java/com/android/dialer/app/res/values-ml/strings.xml
index 91accf4..7655dbe 100644
--- a/java/com/android/dialer/app/res/values-ml/strings.xml
+++ b/java/com/android/dialer/app/res/values-ml/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"വിളിച്ചുകൊണ്ടിരിക്കുന്ന കോളിലേക്ക് മടങ്ങുക"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"കോൾ ചേർക്കുക"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ഇൻകമിംഗ് കോളുകൾ"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ബൾക്ക് പ്രവർത്തന മോഡിലേക്ക് പ്രവേശിക്കുന്നു"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ബൾക്ക് പ്രവർത്തന മോഡ് വിട്ടു"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> തിരഞ്ഞെടുത്തു"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> തിരഞ്ഞെടുത്തത് മാറ്റി"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"വോയ്‌സ്‌മെയിൽ പ്ലേ ചെയ്യുക"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> എന്ന കോൺടാക്റ്റ് കാണുക"</string>
     <string name="description_call" msgid="1532402285334775372">"വിളിക്കുക <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"വോയ്‌സ്‌മെയിൽ"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> സെക്കൻഡ്"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> മി. <xliff:g id="SECONDS">%s</xliff:g> സെ."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"\'ബാച്ച് പ്രവർത്തനങ്ങൾ\' മോഡ് റദ്ദാക്കുക"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"വോയ്‌സ്‌മെയിൽ"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"വോയ്‌സ്മെയിലുകൾ"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"അതെ"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ഇല്ല"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"തിരഞ്ഞെടുത്ത <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ഇല്ലാതാക്കണോ?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> എണ്ണം തിരഞ്ഞെടുത്തു"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>-ന്"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"സിം കാർഡിൽ നിന്നും ലോഡുചെയ്യുന്നു…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"സിം കാർഡ് കോൺടാക്റ്റുകൾ"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"കോൺടാക്റ്റ് അപ്ലിക്കേഷനൊന്നും ലഭ്യമല്ല"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"വോയ്‌സ് തിരയൽ ലഭ്യമല്ല"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ഫോൺ അപ്ലിക്കേഷൻ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നതിനാൽ ഫോൺ കോൾ ചെയ്യാനാകില്ല."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"കോണ്‍‌ടാക്റ്റുകള്‍ തിരയുക"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> പുതിയ മിസ്‌ഡ് കോളുകൾ"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"ഇതുവരെ ആരും നിങ്ങളുടെ സ്പീഡ് ഡയലിൽ ഇല്ല"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"പ്രിയപ്പെട്ടത് ചേർക്കുക"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"നിങ്ങൾക്ക് ഇതുവരെയും കോൺടാക്റ്റുകൾ ഒന്നുമില്ല."</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ഒരു കോണ്‍ടാക്റ്റ് ചേര്‍ക്കുക"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"എല്ലാ നമ്പറുകളും കാണാൻ ചിത്രം സ്‌പർശിക്കുക അല്ലെങ്കിൽ വീണ്ടും ക്രമീകരിക്കാൻ സ്‌പർശിച്ച് പിടിക്കുക"</string>
     <string name="remove_contact" msgid="2353580570488923668">"നീക്കംചെയ്യുക"</string>
+    <string name="select_all" msgid="408601760696146245">"എല്ലാം തിരഞ്ഞെടുക്കുക"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"വീഡിയോ കോള്‍"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"ഒരു സന്ദേശം അയയ്‌ക്കുക"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"കോൾ വിശദാംശങ്ങൾ"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"ബ്ലോക്കുചെയ്ത നമ്പറുകൾ"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"ഇതിനകം തന്നെ <xliff:g id="NUMBER">%1$s</xliff:g> ബ്ലോക്കുചെയ്തിരിക്കുന്നു"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"കോളിംഗ് അക്കൗണ്ട്"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"ഓണാക്കുക"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"അനുമതികൾ സജ്ജമാക്കുക"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"സ്പീഡ് ഡയൽ പ്രവർത്തനക്ഷമാക്കുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"നിങ്ങളുടെ കോൾ ലോഗ് കാണുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ കാണുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"നിങ്ങളുടെ വോയ്‌സ്‌മെയിൽ ആക്സസ് ചെയ്യുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ തിരയുന്നതിന് കോൺടാക്റ്റുകൾക്കുള്ള അനുമതികൾ ഓണാക്കുക."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"കോൾ വിളിക്കുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string>
diff --git a/java/com/android/dialer/app/res/values-mn/strings.xml b/java/com/android/dialer/app/res/values-mn/strings.xml
index a07a826..29bd8af 100644
--- a/java/com/android/dialer/app/res/values-mn/strings.xml
+++ b/java/com/android/dialer/app/res/values-mn/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Үргэлжилж буй дуудлага руу буцах"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Дуудлага нэмэх"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Ирж буй дуудлага"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Багц үйлдлийн горимд орж байна"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Багц үйлдлийн горимоос гарсан"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> сонгосон"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> сонголтыг болиулсан"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Дуут шууданг тоглуулах"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> харилцагчийг харах"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> руу залгах"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Дуут шуудан"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> минут <xliff:g id="SECONDS">%s</xliff:g> секунд"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Багц үйлдлийн горимыг цуцлах"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"дуут шуудан"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"дуут шуудан"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Тийм"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Үгүй"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Сонгосон <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>-г устгах уу?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> сонгосон"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>-д"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM картаас уншиж байна…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM картны харилцагчид"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Ямар ч харилцагчдын апликейшн байхгүй байна."</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Дуут хайлт хийх боломжгүй байна"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Утас аппликешныг идэвхгүйжүүлсэн тул утасны дуудлага хийх боломжгүй."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Харилцагчдаас хайх"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> шинэ аваагүй дуудлага"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Таны яаралтай залгах тохиргоон дээр одоогоор харилцагч байхгүй байна"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Таалагдсан хэсэгт нэмэх"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Танд одоогоор харилцагч байхгүй байна"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Харилцагч нэмэх"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Бүх дугаарыг харахын тулд зурганд хүрнэ үү эсвэл жагсаалтыг өөрчлөхийн тулд удаан дарна уу."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Хасах"</string>
+    <string name="select_all" msgid="408601760696146245">"Бүгдийг сонгох"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Видео дуудлага"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Зурвас илгээх"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Дуудлагын мэдээлэл"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Блоклосон дугаар"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g>-г аль хэдийн блоклосон байна."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Дуудах бүртгэл"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Идэвхжүүлэх"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Зөвшөөрөл тохируулах"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Яаралтай дуудлагыг идэвхжүүлэхийн тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Дуудлагын жагсаалтыг харахын тулд утасны зөвшөөрлийг идэвхжүүлнэ үү."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Харилцагчдаа харахын тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Дуут шууданд хандахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Харилцагчаа хайхын тулд, Харилцагчийн жагсаалтын зөвшөөрлийг идэвхжүүлнэ үү."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Залгахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү."</string>
diff --git a/java/com/android/dialer/app/res/values-mr/strings.xml b/java/com/android/dialer/app/res/values-mr/strings.xml
index 5aca7a5..ee21291 100644
--- a/java/com/android/dialer/app/res/values-mr/strings.xml
+++ b/java/com/android/dialer/app/res/values-mr/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"चालू असलेल्या कॉलवर परत जा"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"कॉल जोडा"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"येणारे कॉल"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"मोठ्या प्रमाणात क्रिया मोडमध्ये प्रवेश करीत आहे"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"मोठ्या प्रमाणात क्रिया मोड सोडत आहे"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> निवडले"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ची निवड रद्द केली"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"व्हॉइसमेल प्ले करा"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> संपर्क पहा"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ला कॉल  करा"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"व्हॉइसमेल"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> सेकंद"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> मिनिट <xliff:g id="SECONDS">%s</xliff:g> सेकंद"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"बॅच क्रिया मोड रद्द करा"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"व्हॉइसमेल"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"व्हॉइसमेल"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"होय"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"नाही"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"निवडलेले <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> हटवायचेे?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> निवडले"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> रोजी <xliff:g id="TIME">%2$s</xliff:g> वाजता"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"सिम कार्ड मधून लोड करीत आहे..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"सिम कार्ड संपर्क"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"कोणताही संपर्क अॅप उपलब्ध नाही"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"व्हॉइस शोध उपलब्ध नाही"</string>
     <string name="call_not_available" msgid="7850148370757361155">"फोन अनुप्रयोग अक्षम केला गेला असल्याने फोन कॉल करणे शक्य नाही."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"संपर्क शोधा"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> नवीन सुटलेले कॉल"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"अद्याप आपल्‍या स्पीड डायलवर कोणीही नाही"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"एक आवडते जोडा"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"आपल्‍याकडे अद्याप कोणतेही संपर्क नाहीत"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"एक संपर्क जोडा"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"सर्व नंबर पाहण्यासाठी प्रतिमेस स्पर्श करा किंवा पुन्हा क्रम लावण्यासाठी स्पर्श करा आणि धरून ठेवा"</string>
     <string name="remove_contact" msgid="2353580570488923668">"काढा"</string>
+    <string name="select_all" msgid="408601760696146245">"सर्व निवडा"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"व्हिडिओ कॉल"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"एक संदेश पाठवा"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"कॉल तपशील"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"अवरोधित केलेले नंबर"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> आधीच अवरोधित केलेला आहे."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"कॉल करण्याची खाती"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"चालू करा"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"परवानग्या सेट करा"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"स्पीड डायल सक्षम करण्‍यासाठी, संपर्क परवानगी चालू करा."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"आपला कॉल लॉग पाहण्‍यासाठी, फोन परवानगी चालू करा."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"आपले संपर्क पाहण्‍यासाठी, संपर्क परवानगी चालू करा."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"आपल्‍या व्हॉइसमेलमध्‍ये प्रवेश करण्‍यासाठी, फोन परवानगी चालू करा."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"आपले संपर्क शोधण्‍यासाठी, संपर्क परवानग्या चालू करा."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"कॉल करण्यासाठी, फोन परवानगी चालू करा."</string>
diff --git a/java/com/android/dialer/app/res/values-ms/strings.xml b/java/com/android/dialer/app/res/values-ms/strings.xml
index 9dbe541..dbb0213 100644
--- a/java/com/android/dialer/app/res/values-ms/strings.xml
+++ b/java/com/android/dialer/app/res/values-ms/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Kembali ke panggilan yang sedang berlangsung"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Tambah panggilan"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Panggilan masuk"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Memasuki mod tindakan pukal"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Meninggalkan mod tindakan pukal"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> dipilih"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> dinyahpilih"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Mainkan mel suara"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Lihat kenalan <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Panggil <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Mel suara"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> saat"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> saat"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Batalkan mod tindakan kelompok"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mel suara"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mel suara"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ya"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Tidak"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Padam <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> yang dipilih?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> dipilih"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> pada <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Memuatkan dari kad SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kenalan kad SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Tiada apl kenalan tersedia"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Carian suara tidak tersedia"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Tidak boleh membuat panggilan telefon kerana aplikasi Telefon telah dilumpuhkan."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Cari dalam kenalan"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> panggilan terlepas baharu"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Belum ada sesiapa pada dail pantas anda"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Tambahkan kegemaran"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Anda belum mempunyai sebarang kenalan"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Tambahkan kenalan"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Sentuh imej untuk melihat semua nombor atau sentuh &amp; tahan untuk menyusun semula"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Alih keluar"</string>
+    <string name="select_all" msgid="408601760696146245">"Pilih semua"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Panggilan video"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Hantar mesej"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Butiran panggilan"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Nombor yang disekat"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> sudah disekat."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Akaun panggilan"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Hidupkan"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Tetapkan kebenaran"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Untuk mendayakan dail laju, hidupkan kebenaran Kenalan."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Untuk melihat log panggilan anda, hidupkan kebenaran Telefon."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Untuk melihat kenalan anda, hidupkan kebenaran Kenalan."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Untuk mengakses mel suara anda, hidupkan kebenaran Telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Untuk mencari kenalan anda, hidupkan kebenaran Kenalan."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Untuk membuat panggilan, hidupkan kebenaran Telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-my/strings.xml b/java/com/android/dialer/app/res/values-my/strings.xml
index 2b51b20..eecfeb2 100644
--- a/java/com/android/dialer/app/res/values-my/strings.xml
+++ b/java/com/android/dialer/app/res/values-my/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ဖုန်းပြန်ခေါ်မှု ပြုလုပ်နေစဉ်"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ဖုန်းခေါ်မှု ထပ်ထည့်ပါ"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"အဝင်ခေါ်ဆိုမှုများ"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်မုဒ်ကို ထည့်သွင်းခြင်း"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်မုဒ်မှ ထွက်လိုက်သည်"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"ရွေးချယ်ထားသော <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"မရွေးချယ်ထားသော <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"အသံပို့စာ နားထောင်ရန်"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> လိပ်စာကြည့်ရန်"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ကိုခေါ်ပါ"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"အသံစာပို့စနစ်"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> စက္ကန့်"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> မိနစ် <xliff:g id="SECONDS">%s</xliff:g> စက္ကန့်"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်များမုဒ်ကိ ပယ်ဖျက်ရန်"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"အသံမေးလ်"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"အသံမေးလ်များ"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ရွေးထားသော <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ကို ဖျက်လိုပါသလား။"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ကို ရွေးချယ်ထားသည်"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g> ၌"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEIDနံပါတ်"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"ဆင်းမ်ကဒ်မှ ဖွင့်နေပါသည်..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"ဆင်းမ်ကဒ်မှ အဆက်အသွယ်များ"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"အဆက်အသွယ်များ app မရှိ"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"အသံဖြင့် ရှာဖွေမှု မရှိ"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ဖုန်း အပလီကေးရှင်းကို ပိတ်ထား၍ ဖုန်း ခေါ်ဆိုမှု မပြုလုပ်နိုင်ခဲ့ပါ။"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"အဆက်အသွယ်များရှာပါ"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"လွတ်သွားသောဖုန်း <xliff:g id="NUMBER">%s</xliff:g> ခါ"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"သင်၏အမြန်ခေါ်စာရင်းတွင် မည်သူမျှ မရှိသေးပါ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"အနှစ်သက်ဆုံးတစ်ခု ထည့်ရန်"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"သင့်တွင် မည်သည့်အဆက်အသွယ်မျှ မရှိသေးပါ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"အဆက်အသွယ်တစ်ယောက် ထည့်မည်"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"နံပါတ်အားလုံးကိုကြည့်ရန် ပုံကိုထိပါ (သို့) ပြန်စီရန် ထိပြီးဖိထားပါ"</string>
     <string name="remove_contact" msgid="2353580570488923668">"ဖယ်ရှာခြင်း"</string>
+    <string name="select_all" msgid="408601760696146245">"အားလုံးကို ရွေးချယ်ပါ"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ဗီဒီယို ခေါ်ဆိုမှု"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"စာ တစ်စောင် ပို့ပါ"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"ဖုန်းခေါ်မှု အသေးစိတ်အချက်အလက်"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"ပိတ်ထားသည့် နံပါတ်များ"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> အားပိတ်ဆို့ထားပြီးပါပြီ။"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"ခေါ်ဆိုသော အကောင့်များ"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"ဖွင့်ထားရန်"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ခွင့်ပြုချက်များ သတ်မှတ်မည်"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"မြန်နှုန်းမြင့်ဖုန်းခေါ်ဆိုမှုကို ဖွင့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"ခေါ်ဆိုမှုမှတ်တမ်းကို ကြည့်ရန်၊ ဖုန်းခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"အဆက်အသွယ်များကိုကြည့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"အသံမေးလ်ကိုအသုံးပြုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"သင့်အဆက်အသွယ်များကို ရှာဖွေရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်များကို ဖွင့်ပါ။"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ဖုန်းခေါ်ဆိုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။"</string>
diff --git a/java/com/android/dialer/app/res/values-nb/strings.xml b/java/com/android/dialer/app/res/values-nb/strings.xml
index d92edc6..bda4915 100644
--- a/java/com/android/dialer/app/res/values-nb/strings.xml
+++ b/java/com/android/dialer/app/res/values-nb/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Gå tilbake til aktiv samtale"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Legg til en samtale"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Innkommende samtaler"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Starter massehandlingsmodus"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Massehandlingsmodus er avsluttet"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Du har valgt <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Du har valgt bort <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Spill av talemelding"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Se kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Telefonsvarer"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Avbryt massehandlinsmodus"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talepost"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talepost"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nei"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Slett markert <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> er valgt"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Henter fra SIM-kort…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakter på SIM-kort"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Ingen kontaktapper er tilgjengelige"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Talesøk er ikke tilgjengelig"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Kan ikke ringe fordi Telefon-appen er deaktivert."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Søk i kontakter"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nye tapte anrop"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Du har ingen på hurtigoppringning ennå"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Legg til en favoritt"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Du har ingen kontakter ennå"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Legg til en kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Trykk på bildet for å se alle numrene, eller trykk og hold for å omorganisere"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Fjern"</string>
+    <string name="select_all" msgid="408601760696146245">"Velg alle"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoanrop"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Send en melding"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Samtaleinformasjon"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blokkerte numre"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokkert."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Ringekontoer"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Slå på"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Angi tillatelser"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"For å slå på hurtigoppringning, slå på Kontakter-tillatelsen."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"For å se samtaleloggen din, slå på Telefon-tillatelsen."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"For å se kontaktene dine, slå på Kontakter-tillatelsen."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"For å få tilgang til talepostkassen, slå på Telefon-tillatelsen."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"For å søke i kontaktene dine, slå på tillatelser for Kontakter."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"For å ringe, slå på Telefon-tillatelsen."</string>
diff --git a/java/com/android/dialer/app/res/values-ne/strings.xml b/java/com/android/dialer/app/res/values-ne/strings.xml
index 90a3016..8262a31 100644
--- a/java/com/android/dialer/app/res/values-ne/strings.xml
+++ b/java/com/android/dialer/app/res/values-ne/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"हुदै गरेको कलमा फर्कनुहोस्"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"कल थप्नुहोस्"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"आगमन कलहरू"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"बल्क कारबाही सम्बन्धी मोडमा प्रवेश गर्दै"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"बल्क कारबाही सम्बन्धी मोड छोडियो"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> चयन गरियो"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> चयन हटाइयो"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"भ्वाइसमेल बजाउनुहोस्"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> सम्पर्क हेर्नुहोस्"</string>
     <string name="description_call" msgid="1532402285334775372">"कल <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"भ्वाइसमेल"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> सेकेन्ड"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> मिनेट <xliff:g id="SECONDS">%s</xliff:g> सकेन्ड"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ब्याच सम्बन्धी कारबाहीको मोडलाई रद्द गर्नुहोस्"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"भ्वाइस मेल"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"भ्वाइस मेलहरू"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"हो"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"होइन"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"चयन गरिएका <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> लाई मेटाउने हो?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> चयन गरियो"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> मा <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM कार्डबाट लोड हुँदै"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM कार्ड सम्पर्कहरू"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"कुनै पनि सम्पर्क अनुप्रयोग उपलब्ध छैन"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"आवाज खोजी उपलब्ध छैन"</string>
     <string name="call_not_available" msgid="7850148370757361155">"फोन अनुप्रयोग असक्षम गरिएकोले फोन गर्न सकिँदैन।"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"सम्पर्कहरू खोज्नुहोस्"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> नयाँ छुटेका कलहरु"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"तपाईँको स्पिड डायलमा अझसम्म कोही छैन"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"एक मनपर्ने थप्नुहोस्"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"तपाईँसँग अझसम्म कुनै सम्पर्कहरू छैनन्"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"एउटा सम्पर्क थप्नुहोस्"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"सबै नम्बरहरू हेर्न छविलाई छुनुहोस् वा पुन:क्रमबद्ध गर्न छोइराख्नुहोस्"</string>
     <string name="remove_contact" msgid="2353580570488923668">"हटाउँनुहोस्"</string>
+    <string name="select_all" msgid="408601760696146245">"सबैलाई चयन गर्नुहोस्"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"भिडियो कल"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"सन्देश पठाउनुहोस्"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"कल विवरणहरु"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"रोकिएका नम्बरहरू"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> पहिले नै रोकिएको छ।"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"खाता कलिङ"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"सक्रिय पार्नुहोस्"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"अनुमतिहरू सेट गर्नुहोस्"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"तीव्र डायल सक्षम गर्न, सम्पर्क अनुमति सक्षम गर्नुहोस्।"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"आफ्नो कल लग हेर्न, फोन अनुमति सक्रिय गर्नुहोस्।"</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"आफ्नो सम्पर्क हेर्न सम्पर्क अनुमति सक्रिय गर्नुहोस्।"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"आफ्नो भ्वाइस मेल पहुँच गर्न, फोन अनुमति सक्रिय गर्नुहोस्"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"तपाईँको सम्पर्कहरू खोज गर्न सम्पर्क अनुमतिहरू सक्रिय गर्नुहोस्।"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"कल गर्न फोन अनुमति सक्रिय गर्नुहोस्।"</string>
diff --git a/java/com/android/dialer/app/res/values-nl/strings.xml b/java/com/android/dialer/app/res/values-nl/strings.xml
index 5f41b80..eed412d 100644
--- a/java/com/android/dialer/app/res/values-nl/strings.xml
+++ b/java/com/android/dialer/app/res/values-nl/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Terug naar actief gesprek"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Oproep toevoegen"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Inkomende oproepen"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Modus voor bulkacties openen"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Modus voor bulkacties verlaten"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> geselecteerd"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Selectie van <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> opgeheven"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Voicemail afspelen"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Contact <xliff:g id="NAME">%1$s</xliff:g> bekijken"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> bellen"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sec."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Modus voor batchacties annuleren"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nee"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Geselecteerde <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> verwijderen?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> geselecteerd"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> om <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Laden vanaf SIM-kaart..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contacten op SIM-kaart"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Geen app voor contacten beschikbaar"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Gesproken zoekopdracht niet beschikbaar"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Kan niet bellen omdat de Telefoon-app is uitgeschakeld."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Contacten zoeken"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nieuwe gemiste oproepen"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Er staat nog niemand in je snelkeuzelijst"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Een favoriet toevoegen"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Je hebt nog geen contacten"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Contact toevoegen"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Tik op de afbeelding om alle nummers te bekijken of tik op de afbeelding en houd vast om opnieuw te rangschikken"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Verwijderen"</string>
+    <string name="select_all" msgid="408601760696146245">"Alles selecteren"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videogesprek"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Een bericht verzenden"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Oproepdetails"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Geblokkeerde nummers"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is al geblokkeerd."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Oproepaccounts"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Inschakelen"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Toestemmingen instellen"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Als je de snelkeuzefunctie wilt inschakelen, schakel je de machtiging voor Contacten in."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Als je je gesprekkenlijst wilt bekijken, schakel je de machtiging voor Telefoon in."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Als je je contacten wilt bekijken, schakel je de machtiging voor Contacten in."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Als je je voicemail wilt beluisteren, schakel je de machtiging voor Telefoon in."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Als je naar contacten wilt zoeken, schakel je de contacttoestemming in."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Als je iemand wilt bellen, schakel je de machtiging voor Telefoon in."</string>
diff --git a/java/com/android/dialer/app/res/values-no/strings.xml b/java/com/android/dialer/app/res/values-no/strings.xml
index d92edc6..bda4915 100644
--- a/java/com/android/dialer/app/res/values-no/strings.xml
+++ b/java/com/android/dialer/app/res/values-no/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Gå tilbake til aktiv samtale"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Legg til en samtale"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Innkommende samtaler"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Starter massehandlingsmodus"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Massehandlingsmodus er avsluttet"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Du har valgt <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Du har valgt bort <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Spill av talemelding"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Se kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Telefonsvarer"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Avbryt massehandlinsmodus"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talepost"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talepost"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nei"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Slett markert <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> er valgt"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Henter fra SIM-kort…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakter på SIM-kort"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Ingen kontaktapper er tilgjengelige"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Talesøk er ikke tilgjengelig"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Kan ikke ringe fordi Telefon-appen er deaktivert."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Søk i kontakter"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nye tapte anrop"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Du har ingen på hurtigoppringning ennå"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Legg til en favoritt"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Du har ingen kontakter ennå"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Legg til en kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Trykk på bildet for å se alle numrene, eller trykk og hold for å omorganisere"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Fjern"</string>
+    <string name="select_all" msgid="408601760696146245">"Velg alle"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoanrop"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Send en melding"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Samtaleinformasjon"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blokkerte numre"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokkert."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Ringekontoer"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Slå på"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Angi tillatelser"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"For å slå på hurtigoppringning, slå på Kontakter-tillatelsen."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"For å se samtaleloggen din, slå på Telefon-tillatelsen."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"For å se kontaktene dine, slå på Kontakter-tillatelsen."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"For å få tilgang til talepostkassen, slå på Telefon-tillatelsen."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"For å søke i kontaktene dine, slå på tillatelser for Kontakter."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"For å ringe, slå på Telefon-tillatelsen."</string>
diff --git a/java/com/android/dialer/app/res/values-pa/strings.xml b/java/com/android/dialer/app/res/values-pa/strings.xml
index 76d4b9b..8e65407 100644
--- a/java/com/android/dialer/app/res/values-pa/strings.xml
+++ b/java/com/android/dialer/app/res/values-pa/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ਪ੍ਰਗਤੀ ਵਿੱਚ ਕਾਲ ਤੇ ਵਾਪਸ ਜਾਓ"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ਕਾਲ ਜੋੜੋ"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ਇਨਕਮਿੰਗ ਕਾਲਾਂ"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ਬਲਕ ਕਾਰਵਾਈ ਮੋਡ ਵਿੱਚ ਦਾਖਲ ਹੋਇਆ ਜਾ ਰਿਹਾ ਹੈ"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ਬਲਕ ਕਾਰਵਾਈ ਮੋਡ ਨੂੰ ਛੱਡਿਆ"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ਨੂੰ ਚੁਣਿਆ ਗਿਆ"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ਨੂੰ ਅਣ-ਚੁਣਿਆ ਕੀਤਾ ਗਿਆ"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"ਵੌਇਸਮੇਲ ਪਲੇ ਕਰੋ"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"ਸੰਪਰਕ <xliff:g id="NAME">%1$s</xliff:g> ਦੇਖੋ"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ਨੂੰ ਕਾਲ ਕਰੋ"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"ਵੌਇਸਮੇਲ"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ਸਕਿੰਟ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ਮਿੰਟ <xliff:g id="SECONDS">%s</xliff:g> ਸਕਿੰਟ"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ਬੈਚ ਕਾਰਵਾਈਆਂ ਮੋਡ ਨੂੰ ਰੱਦ ਕਰੋ"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ਵੌਇਸਮੇਲ"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ਵੌਇਸਮੇਲਾਂ"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ਹਾਂ"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ਨਹੀਂ"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ਕੀ ਚੁਣੀ(ਆਂ) ਹੋਈ(ਆਂ) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ਨੂੰ ਚੁਣਿਆ ਗਿਆ"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ਨੂੰ <xliff:g id="TIME">%2$s</xliff:g> ਵਜੇ"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM ਕਾਰਡ ਵਿੱਚੋਂ ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM ਕਾਰਡ ਸੰਪਰਕ"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"ਕੋਈ ਸੰਪਰਕ ਐਪ ਉਪਲਬਧ ਨਹੀਂ"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"ਵੌਇਸ ਖੋਜ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ਇੱਕ ਫੋਨ ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ ਕਿਉਂਕਿ ਫੋਨ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ।"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ਸੰਪਰਕ ਖੋਜੋ"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ਨਵੀਆਂ ਮਿਸਡ ਕਾਲਾਂ"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"ਅਜੇ ਤੁਹਾਡੇ ਸਪੀਡ ਡਾਇਲ \'ਤੇ ਕੋਈ ਵੀ ਵਿਅਕਤੀ ਨਹੀਂ ਹੈ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ਕੋਈ ਮਨਪਸੰਦ ਸ਼ਾਮਲ ਕਰੋ"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"ਤੁਹਾਡੇ ਕੋਲ ਅਜੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ।"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ਕੋਈ ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"ਸਾਰੇ ਨੰਬਰਾਂ ਨੂੰ ਵੇਖਣ ਲਈ ਚਿਤਰ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ ਜਾਂ ਦੁਬਾਰਾ ਕ੍ਰਮਬੱਧ ਕਰਨ ਲਈ ਸਪਰਸ਼ ਕਰੋ ਅਤੇ ਦਬਾਈ ਰੱਖੋ"</string>
     <string name="remove_contact" msgid="2353580570488923668">"ਹਟਾਓ"</string>
+    <string name="select_all" msgid="408601760696146245">"ਸਭ ਚੁਣੋ"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ਵੀਡੀਓ ਕਾਲ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"ਇੱਕ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"ਕਾਲ ਵੇਰਵੇ"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"ਬਲੌਕ ਕੀਤੇ ਗਏ ਨੰਬਰ"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ਪਹਿਲਾਂ ਹੀ ਬਲੌਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"ਕਾਲਿੰਗ ਖਾਤੇ"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"ਚਾਲੂ ਕਰੋ"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ਅਨੁਮਤੀਆਂ ਸੈੱਟ ਕਰੋ"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"ਸਪੀਡ ਡਾਇਲ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਲਈ, ਸੰਪਰਕ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"ਆਪਣਾ ਕਾਲ ਲੌਗ ਵੇਖਣ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਸੰਪਰਕ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"ਆਪਣੀ ਵੌਇਸਮੇਲ ਐਕਸੈਸ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਦੀ ਖੋਜ ਕਰਨ ਲਈ,, ਸੰਪਰਕ ਅਨੁਮਤੀਆਂ ਨੂੰ ਚਾਲੂ ਕਰੋ।"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ਕਾਲ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
diff --git a/java/com/android/dialer/app/res/values-pl/strings.xml b/java/com/android/dialer/app/res/values-pl/strings.xml
index 76adfe5..8f57a82 100644
--- a/java/com/android/dialer/app/res/values-pl/strings.xml
+++ b/java/com/android/dialer/app/res/values-pl/strings.xml
@@ -87,6 +87,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Wróć do aktywnego połączenia"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj połączenie"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Połączenia przychodzące"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Włączono tryb działań zbiorczych"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Wyłączono tryb działań zbiorczych"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Wybrano: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Anulowano wybór: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Odtwórz pocztę głosową"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Wyświetl kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Zadzwoń do: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Poczta głosowa"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Anuluj tryb działań zbiorczych"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"wiadomości głosowe"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"wiadomości głosowe"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Tak"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nie"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Usunąć wybrane <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Wybrane: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> o <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
     <string name="meid" msgid="3333779521535224028">"Numer MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Wczytuję z karty SIM…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakty z karty SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Nie jest dostępna aplikacja do obsługi kontaktów"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Wyszukiwanie głosowe jest niedostępne"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Nie można zadzwonić, ponieważ aplikacja Telefon została wyłączona."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Przeszukuj kontakty"</string>
@@ -147,10 +152,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Nowe nieodebrane połączenia: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Lista szybkiego wybierania jest pusta"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj do ulubionych"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Nie masz jeszcze żadnych kontaktów"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodaj kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Kliknij obraz, by zobaczyć wszystkie numery, lub kliknij go i przytrzymaj, by zmienić kolejność"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Usuń"</string>
+    <string name="select_all" msgid="408601760696146245">"Zaznacz wszystkie"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Rozmowa wideo"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Wyślij wiadomość"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Szczegóły połączenia"</string>
@@ -217,11 +221,9 @@
     <string name="block_list" msgid="4701585783411870782">"Zablokowane numery"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Numer <xliff:g id="NUMBER">%1$s</xliff:g> jest już zablokowany."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Konta telefoniczne"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Włącz"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ustaw uprawnienia"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Aby włączyć szybkie wybieranie, włącz uprawnienie Kontakty."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Aby zobaczyć swój rejestr połączeń, włącz uprawnienie Telefon."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Aby zobaczyć swoje kontakty, włącz uprawnienie Kontakty."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Aby uzyskać dostęp do poczty głosowej, włącz uprawnienie Telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Aby wyszukać kontakty, włącz uprawnienia Kontakty."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Aby nawiązać połączenie, włącz uprawnienie Telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-pt-rBR/strings.xml b/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
index 780ca07..eb61923 100644
--- a/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Retornar para a chamada em espera"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ad. cham."</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Chamadas recebidas"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando no modo de ação em massa"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saindo do modo de ação em massa"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selecionado"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> não selecionado"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproduzir mensagem de voz"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Visualizar contato <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ligar para <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Correio de voz"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> m <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar modo de ações em lote"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"correio de voz"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"correios de voz"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sim"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Não"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Excluir a seleção de <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Itens selecionados: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Carregando do cartão SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contatos do cartão SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Nenhum app de contatos disponível"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"A pesquisa por voz não está disponível"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Não é possível fazer uma chamada porque o app Telefone foi desativado."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pesquisar contatos"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> novas chamadas perdidas"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Ainda não há ninguém na sua discagem rápida"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adicionar favorito"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Você ainda não tem contatos"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adicionar um contato"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Toque na imagem para ver todos os números ou toque e segure para reordenar"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Remover"</string>
+    <string name="select_all" msgid="408601760696146245">"Selecionar tudo"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar uma mensagem"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalhes da chamada"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"O número <xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Ativar"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Definir permissões"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Para ativar a discagem rápida, ative a permissão para o app Contatos."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver seu registro de chamadas, ative a permissão para o app Telefone."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver seus contatos, ative a permissão para o app Contatos."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acessar seu correio de voz, ative a permissão para o app Telefone."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Para pesquisar seus contatos, ative as permissões para \"Contatos\"."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Para fazer uma chamada, ative a permissão para o app Telefone."</string>
diff --git a/java/com/android/dialer/app/res/values-pt-rPT/strings.xml b/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
index 95fa75c..493f846 100644
--- a/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Voltar à chamada em curso"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Adicionar chamada"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Chamadas recebidas"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"A entrar no modo de ação em massa…"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saiu do modo de ação em massa"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selecionado"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> não selecionado"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproduzir mensagem de correio de voz"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Ver o contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ligar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Correio de voz"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> seg."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar modo de ações em lote"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mensagem de correio de voz"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mensagens de correio de voz"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sim"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Não"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Pretende eliminar a(s) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> selecionada(s)?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selecionada(s)"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"A carregar a partir do cartão SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contactos no cartão SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Não existe nenhuma aplicação de contactos disponível"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Pesquisa por voz não disponível"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Não é possível efetuar uma chamada porque a aplicação Telefone foi desativada."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pesquisar contactos"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> chamadas não atendidas novas"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Ainda não tem ninguém na marcação rápida"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adicionar um favorito"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Ainda não tem nenhum contacto"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adicionar um contacto"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Toque na imagem para ver todos os números ou toque sem soltar para reordenar"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Remover"</string>
+    <string name="select_all" msgid="408601760696146245">"Selecionar tudo"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar uma mensagem"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalhes da chamada"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Ativar"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Definir autorizações"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Para ativar a marcação rápida, ative a autorização Contactos."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver o registo de chamadas, ative a autorização Telemóvel."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver os seus contactos, ative a autorização Contactos."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Para aceder ao correio de voz, ative a autorização Telemóvel."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Para pesquisar os seus contactos, ative as autorizações Contactos."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Para efetuar uma chamada, ative a autorização Telemóvel."</string>
diff --git a/java/com/android/dialer/app/res/values-pt/strings.xml b/java/com/android/dialer/app/res/values-pt/strings.xml
index 780ca07..eb61923 100644
--- a/java/com/android/dialer/app/res/values-pt/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Retornar para a chamada em espera"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ad. cham."</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Chamadas recebidas"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando no modo de ação em massa"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saindo do modo de ação em massa"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selecionado"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> não selecionado"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Reproduzir mensagem de voz"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Visualizar contato <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ligar para <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Correio de voz"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> m <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar modo de ações em lote"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"correio de voz"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"correios de voz"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sim"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Não"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Excluir a seleção de <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Itens selecionados: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Carregando do cartão SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Contatos do cartão SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Nenhum app de contatos disponível"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"A pesquisa por voz não está disponível"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Não é possível fazer uma chamada porque o app Telefone foi desativado."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pesquisar contatos"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> novas chamadas perdidas"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Ainda não há ninguém na sua discagem rápida"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adicionar favorito"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Você ainda não tem contatos"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adicionar um contato"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Toque na imagem para ver todos os números ou toque e segure para reordenar"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Remover"</string>
+    <string name="select_all" msgid="408601760696146245">"Selecionar tudo"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar uma mensagem"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detalhes da chamada"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"O número <xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Ativar"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Definir permissões"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Para ativar a discagem rápida, ative a permissão para o app Contatos."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Para ver seu registro de chamadas, ative a permissão para o app Telefone."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver seus contatos, ative a permissão para o app Contatos."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Para acessar seu correio de voz, ative a permissão para o app Telefone."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Para pesquisar seus contatos, ative as permissões para \"Contatos\"."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Para fazer uma chamada, ative a permissão para o app Telefone."</string>
diff --git a/java/com/android/dialer/app/res/values-ro/strings.xml b/java/com/android/dialer/app/res/values-ro/strings.xml
index 725ff4a..93d0188 100644
--- a/java/com/android/dialer/app/res/values-ro/strings.xml
+++ b/java/com/android/dialer/app/res/values-ro/strings.xml
@@ -86,6 +86,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Reveniți la apelul în curs"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Adăugați un apel"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Apeluri de intrare"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Se intră în modul acțiune în bloc"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ați ieșit din modul acțiune în bloc"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"S-a selectat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"S-a deselectat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Redați mesajul vocal"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Afișați persoana din agendă <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Apelați <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -100,11 +104,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Mesagerie vocală"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> secunde"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sec."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Anulați modul de acțiuni în lot"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mesagerie vocală"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mesaje vocale"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nu"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ștergeți cele <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> selectate?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selectate"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> la <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -117,7 +123,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Se încarcă de pe cardul SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Persoanele din agendă de pe cardul SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Nu este disponibilă nicio aplicație pentru agendă"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Căutarea vocală nu este disponibilă"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Nu se poate efectua un apel telefonic, deoarece aplicația Telefon a fost dezactivată."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Căutați în Agendă"</string>
@@ -146,10 +151,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> apeluri nepreluate noi"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Nicio persoană de contact setată pentru apelarea rapidă"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adăugați o persoană de contact preferată"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Nu aveți încă persoane de contact"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adăugați o persoană de contact"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Atingeți imaginea pentru a vedea toate numerele sau atingeți lung pentru reordonare"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Eliminați"</string>
+    <string name="select_all" msgid="408601760696146245">"Selectați tot"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Apel video"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Trimiteți un mesaj"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detaliile apelului"</string>
@@ -215,11 +219,9 @@
     <string name="block_list" msgid="4701585783411870782">"Numere blocate"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> este deja blocat."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Conturi pentru apelare"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Activați"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Setați permisiunile"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Pentru a activa apelarea rapidă, activați permisiunea Agendă."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Pentru a vedea jurnalul de apeluri, activați permisiunea Telefon."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Pentru a vedea persoanele de contact, activați permisiunea Agendă."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Pentru a accesa mesageria vocală, activați permisiunea Telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Pentru a căuta în persoanele de contact, activați permisiunea Agendă."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Pentru a apela, activați permisiunea Telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-ru/strings.xml b/java/com/android/dialer/app/res/values-ru/strings.xml
index 557832b..54278c4 100644
--- a/java/com/android/dialer/app/res/values-ru/strings.xml
+++ b/java/com/android/dialer/app/res/values-ru/strings.xml
@@ -87,6 +87,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Вернуться к текущему вызову"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Добавить вызов"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Входящие вызовы"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Вы вошли в режим массового действия"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Вы вышли из режима массового действия"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Выбран объект <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Выбор объекта <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> отменен"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Прослушать голосовую почту"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Просмотреть данные: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Вызов: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Голосовая почта"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин. <xliff:g id="SECONDS">%s</xliff:g> сек."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Отмена режима массового действия"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"голосовое сообщение"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"голосовые сообщения"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Нет"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Удалить <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Выбрано: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> в <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Загрузка с SIM-карты…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Контакты на SIM-карте"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Нет приложения для работы с контактами"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Голосовой поиск недоступен"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Нельзя совершать телефонные звонки, поскольку приложение \"Телефон\" отключено."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Поиск в контактах"</string>
@@ -147,10 +152,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Пропущенных вызовов: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Нет номеров для быстрого набора"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Настроить быстрый набор"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Нет контактов"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Добавить контакт"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Коснитесь изображения, чтобы увидеть все номера, или нажмите и удерживайте, чтобы изменить порядок"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Удалить"</string>
+    <string name="select_all" msgid="408601760696146245">"Выбрать все"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Видеовстреча"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Отправить сообщение"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Сведения о вызове"</string>
@@ -217,11 +221,9 @@
     <string name="block_list" msgid="4701585783411870782">"Заблокированные номера"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> уже заблокирован."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Аккаунты для звонков"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Включить"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Задать разрешения"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Чтобы настроить быстрый набор, предоставьте приложению разрешение \"Контакты\"."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Чтобы открыть список вызовов, предоставьте приложению разрешение \"Телефон\"."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Чтобы открыть список контактов, предоставьте приложению разрешение \"Контакты\"."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Чтобы получить доступ к голосовой почте, предоставьте приложению разрешение \"Телефон\"."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Для поиска контактов включите разрешение \"Контакты\"."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Чтобы позвонить, предоставьте приложению разрешение \"Телефон\"."</string>
diff --git a/java/com/android/dialer/app/res/values-si/strings.xml b/java/com/android/dialer/app/res/values-si/strings.xml
index 329d89e..6363457 100644
--- a/java/com/android/dialer/app/res/values-si/strings.xml
+++ b/java/com/android/dialer/app/res/values-si/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"පවතින ඇමතුමට නැවත යන්න"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"ඇමතුමක් එක් කරන්න"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"එන ඇමතුම්"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"තොග ක්‍රියා ප්‍රකාරය ඇතුළු කරමින්"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"තොග ක්‍රියා ප්‍රකාරය හැර යන ලදී"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> තෝරා ගන්නා ලදී"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> තෝරා ගැනීම ඉවත් කරන ලදී"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"හඬ තැපෑල ධාවනය කිරීම"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> සම්බන්ධතාවය බලන්න"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> අමතන්න"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"හඬ තැපෑල"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"තත් <xliff:g id="SECONDS">%s</xliff:g>"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"මිනි <xliff:g id="MINUTES">%s</xliff:g> තත් <xliff:g id="SECONDS">%s</xliff:g>"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"කාණ්ඩ ක්‍රියා ප්‍රකාරය අවලංගු කරන්න"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"හඬ තැපෑල"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"හඬ තැපැල්"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ඔව්"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"නැත"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"තෝරා ගත් <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> මකන්නද?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> තෝරා ගන්නා ලදි"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> දින <xliff:g id="TIME">%2$s</xliff:g>ට"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM පතෙන් පූරණය කරමින්…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM පත් සම්බන්ධතා"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"සබඳතා යෙදුමක් ලබාගත නොහැකිය"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"හඬ සෙවුම ලබාගත නොහැකිය"</string>
     <string name="call_not_available" msgid="7850148370757361155">"දුරකථන යෙදුම අබල කර ඇති නිසා දුරකථන ඇමතුම ලබාගැනීම කළ නොහැක."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"සම්බන්ධතා සෙවීම"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"නව මඟ හැරුණු ඇමතුම් <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"ඔබගේ වේග ඩයල් එකේ තවමත් කවුරුවත් නැහැ"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ප්‍රියතම ලෙස එක් කරන්න"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"ඔබ තවමත් සම්බන්ධතා නැහැ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"සම්බන්ධතාවයක් එක් කරන්න"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"සියලු අංක බැලීමට රූපය ස්පර්ශ කරන්න නැතහොත් නැවත අනුපිළිවෙළට සැකසීමට ස්පර්ශ කර අල්ලාගෙන සිටින්න"</string>
     <string name="remove_contact" msgid="2353580570488923668">"ඉවත් කරන්න"</string>
+    <string name="select_all" msgid="408601760696146245">"සියල්ල තෝරන්න"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"වීඩියෝ ඇමතුම"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"පණිවිඩයක් යවන්න"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"ඇමතුම් විස්තර"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"අවහිර කළ අංක"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> දැනටමත් අවහිර කර ඇත."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"ගිණුම් ඇමතීම"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"ක්‍රියාත්මක කරන්න"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"අවසර සකසන්න"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"වේග ඩයල් කිරීම සබල කිරීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"ඔබේ ඇමතුම් ලොගය බැලීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"ඔබේ සම්බන්ධතා බැලීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"ඔබේ හඬ තැපෑල වෙත ප්‍රවේශ වීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"ඔබේ සම්බන්ධතා සෙවීමට, සම්බන්ධතා අවසර ක්‍රියාත්මක කරන්න."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"ඇමතුමක් ලබා ගැනීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න."</string>
diff --git a/java/com/android/dialer/app/res/values-sk/strings.xml b/java/com/android/dialer/app/res/values-sk/strings.xml
index 60b63d5..f7bf423 100644
--- a/java/com/android/dialer/app/res/values-sk/strings.xml
+++ b/java/com/android/dialer/app/res/values-sk/strings.xml
@@ -87,6 +87,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Návrat k prebiehajúcemu hovoru"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Pridať hovor"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Prichádzajúce hovory"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Vstupuje sa do režimu hromadných akcií"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Odišli ste z režimu hromadných akcií"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Položka <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> bola vybraná"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Výber položky <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> bol zrušený"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Prehrať hlasovú správu"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Zobraziť kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Zavolať kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Hlasová schránka"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Zrušiť režim hromadných akcií"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"hlasová správa"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"hlasové správy"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Áno"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nie"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Chcete odstrániť vybraté položky (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Vybraté: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> o <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Prebieha načítavanie z SIM karty..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakty na SIM karte"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Nie je k dispozícii žiadna aplikácia na kontakty"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Hlasové vyhľadávanie nie je k dispozícii"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Nie je možné volať, pretože aplikácia Telefón bola deaktivovaná."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Hľadať v kontaktoch"</string>
@@ -147,10 +152,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Nové zmeškané hovory: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"V rýchlej voľbe zatiaľ nemáte žiadny kontakt"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Pridať obľúbený kontakt"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Zatiaľ nemáte žiadne kontakty"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Pridať kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Klepnutím na obrázok môžete zobraziť všetky čísla. Pridržaním obrázka môžete zmeniť poradie."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Odstrániť"</string>
+    <string name="select_all" msgid="408601760696146245">"Vybrať všetko"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videohovor"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Odoslať správu"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Podrobnosti hovoru"</string>
@@ -217,11 +221,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blokované čísla"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je už blokované."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Telefónne účty"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Zapnúť"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nastaviť povolenia"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Ak chcete aktivovať rýchlu voľbu, zapnite povolenie Kontakty."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Ak si chcete zobraziť denník hovorov, zapnite povolenie Telefón."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Ak si chcete zobraziť kontakty, zapnite povolenie Kontakty."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Ak chcete používať hlasovú schránku, zapnite povolenie Telefón."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Ak chcete hľadať kontakty, zapnite povolenie Kontakty."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Ak chcete volať, zapnite povolenie Telefón."</string>
diff --git a/java/com/android/dialer/app/res/values-sl/strings.xml b/java/com/android/dialer/app/res/values-sl/strings.xml
index b46b99a..d3c57dd 100644
--- a/java/com/android/dialer/app/res/values-sl/strings.xml
+++ b/java/com/android/dialer/app/res/values-sl/strings.xml
@@ -87,6 +87,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Nazaj na klic, ki poteka"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj klic"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Dohodni klici"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Prehod v način množičnega dejanja"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Prehod iz načina množičnega dejanja"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Izbrano: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Preklican izbor: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Predvajanje sporočil glasovne pošte"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Ogled stika <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Pokliči <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Glasovna pošta"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Prekliči način množičnega dejanja"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"sporočilo v odzivniku"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"sporočila v odzivniku"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Želite izbrisati <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Št. izbranih: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ob <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Nalaganje s kartice SIM ..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Stiki na kartici SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Ni aplikacije za stike"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Glasovno iskanje ni na voljo"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Ni mogoče opraviti telefonskega klica, ker je aplikacija Telefon onemogočena."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Iskanje stikov"</string>
@@ -147,10 +152,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Št. novih zgrešenih klicev: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Na seznamu za hitro klicanje nimate še nikogar"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodajte priljubljenega"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Nimate še stikov"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodajte stik"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Dotaknite se slike, da prikažete vse številke, ali pa se je dotaknite in pridržite, da spremenite vrstni red."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Odstrani"</string>
+    <string name="select_all" msgid="408601760696146245">"Izberi vse"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videoklic"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Pošljite sporočilo"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Podrobnosti klica"</string>
@@ -217,11 +221,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blokirane številke"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Telefonska številka <xliff:g id="NUMBER">%1$s</xliff:g> je že blokirana."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Računi za klicanje"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Vklop"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nastavi dovoljenja"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Če želite omogočiti hitro klicanje, vklopite dovoljenje za stike."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Če si želite ogledati dnevnik klicev, vklopite dovoljenje za telefon."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Če si želite ogledati stike, vklopite dovoljenje za stike."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Če želite dostopati do sporočil v odzivniku, vklopite dovoljenje za telefon."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Če želite iskati po stikih, vklopite dovoljenje za stike."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Če želite klicati, vklopite dovoljenje za telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-sq/strings.xml b/java/com/android/dialer/app/res/values-sq/strings.xml
index 6a274fc..8470445 100644
--- a/java/com/android/dialer/app/res/values-sq/strings.xml
+++ b/java/com/android/dialer/app/res/values-sq/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Kthehu te telefonata"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Shto një telefonatë"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Telefonatat hyrëse"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Po hyn në modalitetin e veprimit në masë"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"U largove nga modaliteti i veprimit në masë"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"U zgjodh <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Zgjedhja e <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> u anulua"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Luaj postën zanore"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Shiko kontaktin <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Telefono <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Posta zanore"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sekonda"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. e <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Anulo modalitetin e veprimeve në grup"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"posta zanore"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"postat zanore"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Po"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Jo"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Të fshihen <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> të zgjedhura?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> të zgjedhura"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> në <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Po ngarkon nga karta SIM…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontaktet e kartës SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Nuk mund të përdoret asnjë aplikacion për kontaktet"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Kërkimi me zë nuk mundësohet"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Telefonata nuk mund të bëhet sepse aplikacioni \"Telefoni\" është i çaktivizuar."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kërko për kontakte"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> telefonata të reja të humbura"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Askush nuk është ende në thirrjen tënde të shpejtuar"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Shto një të preferuar"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Nuk ke ende kontakte"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Shto një kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Prek imazhin për të parë të gjithë numrat ose mbaje të shtypur për ta pozicionuar përsëri"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Hiq"</string>
+    <string name="select_all" msgid="408601760696146245">"Zgjidh të gjitha"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Telefonatë me video"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Dërgo një mesazh"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Detajet e telefonatës"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Numrat e bllokuar"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> është i bllokuar tashmë."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Llogaritë e telefonatave"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivizo"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Cakto lejet"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Për të aktivizuar thirrjen e shpejtuar, aktivizo lejen e Kontakteve."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Për të parë evidencën e telefonatave, aktivizo lejen e Telefonit."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Për të parë kontaktet, aktivizo lejen e Kontakteve."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Për të pasur qasje në postën zanore, aktivizo lejen e Telefonit."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Për të kërkuar kontaktet, aktivizo lejet e Kontakteve"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Për të kryer një telefonatë, aktivizo lejen e Telefonit."</string>
diff --git a/java/com/android/dialer/app/res/values-sr/strings.xml b/java/com/android/dialer/app/res/values-sr/strings.xml
index 0def958..6cf7a7c 100644
--- a/java/com/android/dialer/app/res/values-sr/strings.xml
+++ b/java/com/android/dialer/app/res/values-sr/strings.xml
@@ -86,6 +86,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Врати се на позив који је у току"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Додај позив"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Долазни позиви"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Улазите у режим групних радњи"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Изашли сте из режима групних радњи"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Изабрано је <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Опозван је избор <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Пуштање говорне поште"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Прикажи контакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Позови <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -100,11 +104,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Говорна пошта"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Откажите режим групних радњи"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"говорну поруку"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"говорне поруке"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Желите ли да избришете изабрану(е) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Изабраних: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> у <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -117,7 +123,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Учитава се са SIM картице…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Контакти на SIM картици"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Нема доступне апликације за контакте"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Гласовна претрага није доступна"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Није могуће упутити телефонски позив јер је апликација Телефон онемогућена."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Претражи контакте"</string>
@@ -146,10 +151,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Нових пропуштених позива: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Немате ниједан контакт на брзом бирању"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Додај омиљен контакт"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Још увек немате ниједан контакт"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Додај контакт"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Додирните слику да бисте видели све бројеве или додирните и задржите да бисте им променили распоред"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Уклони"</string>
+    <string name="select_all" msgid="408601760696146245">"Изабери све"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Видео позив"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Пошаљи поруку"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Детаљи позива"</string>
@@ -215,11 +219,9 @@
     <string name="block_list" msgid="4701585783411870782">"Блокирани бројеви"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> је већ блокиран."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Налози за позивање"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Укључи"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Подеси дозволе"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Да бисте омогућили брзо бирање, укључите дозволу за Контакте."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Да бисте видели евиденцију позива, укључите дозволу за Телефон."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Да бисте видели контакте, укључите дозволу за Контакте."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Да бисте приступили говорној пошти, укључите дозволу за Телефон."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Да бисте претражили контакте, укључите дозволе за Контакте."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Да бисте упутили позив, укључите дозволу за Телефон."</string>
diff --git a/java/com/android/dialer/app/res/values-sv/strings.xml b/java/com/android/dialer/app/res/values-sv/strings.xml
index 75aa731..71ef3e5 100644
--- a/java/com/android/dialer/app/res/values-sv/strings.xml
+++ b/java/com/android/dialer/app/res/values-sv/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Återvänd till pågående samtal"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Lägg t. samt."</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Inkommande samtal"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Öppnar läget för massåtgärd"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Stängde läget för massåtgärd"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Markerade <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Avmarkerade <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Spela upp röstmeddelande"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Visa kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Röstbrevlåda"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sekund"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Avbryt läget för massåtgärd"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"röstbrevlåda"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"röstmeddelanden"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nej"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vill du radera markerade <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> har markerats"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Läser in från SIM-kort…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Kontakter från SIM-kort"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Det finns inga appar för kontakter"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Röstsökning är inte tillgänglig"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Det går inte att ringa eftersom appen Telefon har inaktiverats."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Sök efter kontakter"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nya missade samtal"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Du har ingen kontakt som snabbval ännu"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Lägg till en favorit"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Du har inga kontakter ännu"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Lägg till en kontakt"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Tryck på bilden för att visa alla nummer eller tryck länge för att ändra ordningen"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Ta bort"</string>
+    <string name="select_all" msgid="408601760696146245">"Markera alla"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Videosamtal"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Skicka ett meddelande"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Samtalsinfo"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Blockerade nummer"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> är redan blockerat."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Konton för samtal"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivera"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ange behörigheter"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Du måste aktivera behörigheten Kontakter för att kunna använda snabbuppringning."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Du måste aktivera behörigheten Telefon för att kunna visa samtalsloggen."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Du måste aktivera behörigheten Kontakter för att kunna visa kontakterna."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Du måste aktivera behörigheten Telefon för att kunna komma åt röstmeddelanden."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Aktivera behörigheter för Kontakter om du vill söka bland kontakterna."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Du måste aktivera behörigheten Telefon för att kunna ringa."</string>
diff --git a/java/com/android/dialer/app/res/values-sw/strings.xml b/java/com/android/dialer/app/res/values-sw/strings.xml
index d3b8392..9cbdd3e 100644
--- a/java/com/android/dialer/app/res/values-sw/strings.xml
+++ b/java/com/android/dialer/app/res/values-sw/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Rudi kwa simu inayoendelea"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ongeza simu"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Simu zinazoingia"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Unaingia katika hali ya kutekeleza vitendo vingi"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Umeondoka katika hali ya kutekeleza vitendo vingi"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Umeteua <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Umebatilisha uteuzi wa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Sikiliza ujumbe wa sauti"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Angalia anwani <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Pigia <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Ujumbe wa sauti"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"Sekunde <xliff:g id="SECONDS">%s</xliff:g>"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"Dak <xliff:g id="MINUTES">%s</xliff:g> sek <xliff:g id="SECONDS">%s</xliff:g>"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Ghairi hali ya kutekeleza vitendo vingi"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ujumbe wa sauti"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ujumbe wa sauti"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ndiyo"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Hapana"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Je, ungependa kufuta <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> uliochagua?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> zimechaguliwa"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> saa <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Inapakia kutoka SIM kadi..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Anwani za SIM kadi"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Hakuna programu za mawasiliano zinazopatikana"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Kutafuta kwa kutamka hakupatikani"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Haiwezi kupiga simu kwa sababu programu ya Simu imezimwa."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Tafuta anwani"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Simu <xliff:g id="NUMBER">%s</xliff:g> za karibuni ambazo hazikujibiwa"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Hakuna mtu aliye katika orodha yako ya watu unaowasiliana nao zaidi"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ongeza anwani unazopenda zaidi"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Bado huna anwani zozote"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ongeza anwani"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Gusa picha ili uone nambari zote ama uguse na kushikilia ili upange upya"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Ondoa"</string>
+    <string name="select_all" msgid="408601760696146245">"Chagua zote"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Hangout ya Video"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Tuma SMS"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Maelezo ya simu"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Nambari zilizozuiwa"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> tayari imezuiwa."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Akaunti za simu"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Washa"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Weka ruhusa"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Ili kuwasha kipengele cha unaowasiliana nao zaidi, washa ruhusa ya Anwani."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Ili uone rekodi yako ya nambari za simu, washa ruhusa ya Simu."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Ili uone anwani zako, washa ruhusa ya Anwani."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Ili ufikie ujumbe wako wa sauti, washa ruhusa ya Simu."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Ili utafute anwani zako, washa ruhusa za Anwani."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Ili upige simu, washa ruhusa ya Simu."</string>
diff --git a/java/com/android/dialer/app/res/values-ta/strings.xml b/java/com/android/dialer/app/res/values-ta/strings.xml
index afb852b..a91088c 100644
--- a/java/com/android/dialer/app/res/values-ta/strings.xml
+++ b/java/com/android/dialer/app/res/values-ta/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"செயலிலுள்ள அழைப்பிற்குத் திரும்பு"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"அழைப்பைச் சேர்"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"உள்வரும் அழைப்புகள்"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"மொத்தச் செயல் பயன்முறையில் நுழைகிறீர்கள்"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"மொத்தச் செயல் பயன்முறையிலிருந்து வெளியேறிவிட்டீர்கள்"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"தேர்ந்தெடுத்த <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"தேர்வுநீக்கிய <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"குரலஞ்சலை இயக்கு"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> தொடர்பைக் காட்டு"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ஐ அழை"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"குரலஞ்சல்"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> வி"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> நிமிடம் <xliff:g id="SECONDS">%s</xliff:g> வினாடி"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"தொகுப்புச் செயல்கள் பயன்முறையை ரத்துசெய்யும்"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"குரலஞ்சல்"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"குரலஞ்சல்கள்"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ஆம்"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"வேண்டாம்"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"தேர்ந்தெடுத்த <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ஐ நீக்கவா?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> தேர்ந்தெடுக்கப்பட்டன"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> அன்று <xliff:g id="TIME">%2$s</xliff:g> மணிக்கு"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"சிம் கார்டிலிருந்து ஏற்றுகிறது…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"சிம் கார்டின் தொடர்புகள்"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"தொடர்புகள் பயன்பாடு எதுவுமில்லை"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"குரல் தேடல் இல்லை"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Phone பயன்பாடு முடக்கப்பட்டுள்ளதால், ஃபோன் அழைப்பைச் செய்ய முடியாது."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"தொடர்புகளைத் தேடு"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> புதிய தவறிய அழைப்புகள்"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"இன்னும் விரைவு டயலில் யாரையும் சேர்க்கவில்லை"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"முக்கியமானவர்களைச் சேர்"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"இதுவரை எந்தத் தொடர்புகளும் இல்லை"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ஒரு தொடர்பைச் சேர்க்கவும்"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"எல்லா எண்களையும் பார்க்க, படத்தைத் தொடவும் அல்லது மறுவரிசைப்படுத்த, தொட்டுப் பிடித்திருக்கவும்"</string>
     <string name="remove_contact" msgid="2353580570488923668">"அகற்று"</string>
+    <string name="select_all" msgid="408601760696146245">"அனைத்தையும் தேர்ந்தெடு"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"வீடியோ அழைப்பு"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"செய்தி அனுப்பவும்"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"அழைப்பு விவரங்கள்"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"தடுக்கப்பட்ட எண்கள்"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ஏற்கனவே தடுக்கப்பட்டுள்ளது."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"அழைப்பு கணக்குகள்"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"இயக்கு"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"அனுமதிகளை அமை"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"விரைவு டயலை இயக்க, தொடர்புகள் அனுமதியை இயக்கவும்."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"அழைப்புப் பதிவைப் பார்க்க, ஃபோன் அனுமதியை இயக்கவும்."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"தொடர்புகளைப் பார்க்க, தொடர்புகள் அனுமதியை இயக்கவும்."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"குரலஞ்சலை அணுக, ஃபோன் அனுமதியை இயக்கவும்."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"தொடர்புகளைத் தேட, தொடர்புகள் அனுமதிகளை இயக்கவும்."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"அழைக்க, ஃபோன் அனுமதியை இயக்கவும்."</string>
diff --git a/java/com/android/dialer/app/res/values-te/strings.xml b/java/com/android/dialer/app/res/values-te/strings.xml
index ffc046f..aecc1c4 100644
--- a/java/com/android/dialer/app/res/values-te/strings.xml
+++ b/java/com/android/dialer/app/res/values-te/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ప్రోగ్రెస్‌లో ఉన్న కాల్‌కు వెళ్లు"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"కాల్‌ను జోడించు"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"ఇన్‌కమింగ్ కాల్‌లు"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"బల్క్ చర్య మోడ్‌లోకి ప్రవేశిస్తున్నారు"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"బల్క్ చర్య మోడ్ నుండి నిష్క్రమించారు"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ఎంచుకోబడింది"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ఎంపిక తీసివేయబడింది"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"వాయిస్ మెయిల్ ప్లే చేయండి"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> పరిచయాన్ని వీక్షించండి"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g>కు కాల్ చేయి"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"వాయిస్ మెయిల్"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> సెక"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> నిమి <xliff:g id="SECONDS">%s</xliff:g> సెక"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"సమూహ చర్యల మోడ్‌ను రద్దు చేస్తుంది"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"వాయిస్ మెయిల్"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"వాయిస్ మెయిల్‌లు"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"అవును"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"వద్దు"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ఎంచుకున్న <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ను తొలగించాలా?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ఎంచుకోబడ్డాయి"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>కి"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"సిమ్ కార్డు నుండి లోడ్ చేస్తోంది…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"సిమ్ కార్డు పరిచయాలు"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"పరిచయాల అనువర్తనం ఏదీ అందుబాటులో లేదు"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"వాయిస్ శోధన అందుబాటులో లేదు"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ఫోన్ అనువర్తనం నిలిపివేయబడినందున ఫోన్ కాల్ చేయలేరు."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"పరిచయాలను శోధించు"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> కొత్త సమాధానం ఇవ్వని కాల్‌లు"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"మీ స్పీడ్ డయల్‌లో ఇంకా ఎవరూ లేరు"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ఇష్టమైన వారిని జోడించండి"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"మీకు ఇప్పటికీ పరిచయాలేవీ లేవు"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"పరిచయాన్ని జోడించండి"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"అన్ని నంబర్‌లను చూడటానికి చిత్రాన్ని తాకండి లేదా క్రమం మార్చడానికి తాకి, కాసేపు అలాగే ఉంచండి"</string>
     <string name="remove_contact" msgid="2353580570488923668">"తీసివేయి"</string>
+    <string name="select_all" msgid="408601760696146245">"అన్నీ ఎంచుకోండి"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"వీడియో కాల్"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"సందేశాన్ని పంపు"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"కాల్ వివరాలు"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"బ్లాక్ చేయబడిన నంబర్‌లు"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ఇప్పటికే బ్లాక్ చేయబడింది."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"కాల్ చేసే ఖాతాలు"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"ఆన్ చేయి"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"అనుమతులను సెట్ చేయి"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"స్పీడ్ డయల్‌ను ప్రారంభించడానికి, పరిచయాల అనుమతిని ఆన్ చేయండి."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"మీ కాల్ లాగ్‌ను చూడటానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"మీ పరిచయాలను చూడటానికి, పరిచయాల అనుమతిని ఆన్ చేయండి."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"మీ వాయిస్ మెయిల్‌ను ప్రాప్యత చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"మీ పరిచయాలను శోధించడానికి, పరిచయాల అనుమతులను ఆన్ చేయండి."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"కాల్ చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string>
diff --git a/java/com/android/dialer/app/res/values-th/strings.xml b/java/com/android/dialer/app/res/values-th/strings.xml
index 13916a5..58507b4 100644
--- a/java/com/android/dialer/app/res/values-th/strings.xml
+++ b/java/com/android/dialer/app/res/values-th/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"กลับไปคุยสายต่อ"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"เพิ่มการโทร"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"สายโทรเข้า"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"กำลังเข้าสู่โหมดการดำเนินการแบบกลุ่ม"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ออกจากโหมดการทำงานแบบกลุ่มแล้ว"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"เลือก <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> แล้ว"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"ยกเลิกการเลือก <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> แล้ว"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"เล่นข้อความเสียง"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"ดูรายชื่อติดต่อ <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"โทรหา <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"ข้อความเสียง"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> วินาที"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> นาที <xliff:g id="SECONDS">%s</xliff:g> วินาที"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"ยกเลิกโหมดการทำงานแบบกลุ่ม"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ข้อความเสียง"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ข้อความเสียง"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ใช่"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ไม่"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ลบ<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ที่เลือกหรือไม่"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"เลือกไว้ <xliff:g id="NUMBER">%1$s</xliff:g> รายการ"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"วันที่ <xliff:g id="DATE">%1$s</xliff:g> เวลา <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"กำลังโหลดจากซิมการ์ด…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"รายชื่อบนซิมการ์ด"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"ไม่มีแอปรายชื่อติดต่อที่พร้อมใช้งาน"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"การค้นหาด้วยเสียงไม่พร้อมใช้งาน"</string>
     <string name="call_not_available" msgid="7850148370757361155">"ไม่สามารถโทรศัพท์ได้เนื่องจากแอปพลิเคชันโทรศัพท์ถูกปิดใช้งาน"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"ค้นหารายชื่อติดต่อ"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"สายที่ไม่ได้รับใหม่ <xliff:g id="NUMBER">%s</xliff:g> สาย"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"ยังไม่ได้กำหนดผู้ใดในการโทรด่วน"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"เพิ่มรายการโปรด"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"คุณยังไม่มีรายชื่อติดต่อ"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"เพิ่มรายชื่อติดต่อ"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"แตะรูปภาพเพื่อดูหมายเลขทั้งหมด หรือแตะค้างไว้เพื่อจัดเรียงใหม่"</string>
     <string name="remove_contact" msgid="2353580570488923668">"ลบ"</string>
+    <string name="select_all" msgid="408601760696146245">"เลือกทั้งหมด"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"แฮงเอาท์วิดีโอ"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"ส่งข้อความ"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"รายละเอียดการโทร"</string>
@@ -201,7 +205,7 @@
     <string name="voicemail_settings_label" msgid="4594299554519920570">"ข้อความเสียง"</string>
     <string name="voicemail_settings_select_sim_title" msgid="129296966967476845">"เลือกซิมสำหรับการตั้งค่าข้อความเสียง"</string>
     <string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"การบล็อกสายเรียกเข้าปิดชั่วคราว"</string>
-    <string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้คุณลักษณะนี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง"</string>
+    <string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้ฟีเจอร์นี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง"</string>
     <string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"นำเข้าหมายเลข"</string>
     <string name="blocked_call_settings_import_description" msgid="1819412052545228965">"ก่อนหน้านี้คุณได้ทำเครื่องหมายว่าให้ส่งผู้โทรบางคนไปยังข้อความเสียงโดยอัตโนมัติผ่านแอปอื่นๆ"</string>
     <string name="blocked_call_settings_view_numbers_button" msgid="3332727948554356704">"ดูหมายเลข"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"หมายเลขที่ถูกบล็อก"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ถูกบล็อกอยู่แล้ว"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"บัญชีการโทร"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"เปิด"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"ตั้งค่าสิทธิ์"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"หากต้องการเปิดใช้การโทรด่วน ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"หากต้องการดูประวัติการโทร ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"หากต้องการดูรายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"หากต้องการเข้าถึงข้อความเสียง ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"หากต้องการค้นหารายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"หากต้องการโทรออก ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string>
diff --git a/java/com/android/dialer/app/res/values-tl/strings.xml b/java/com/android/dialer/app/res/values-tl/strings.xml
index cc44cb5..9a8157f 100644
--- a/java/com/android/dialer/app/res/values-tl/strings.xml
+++ b/java/com/android/dialer/app/res/values-tl/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Bumalik sa kasalukuyang tawag"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Mag-add: tawag"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Mga paparating na tawag"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Pumapasok sa bulk action mode"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Umalis sa bulk action mode"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Napili <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Inalis sa pagkakapili <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"I-play ang voicemail"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Tingnan ang contact na si <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Tawagan si <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Kanselahin ang batch actions mode"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mga voicemail"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Oo"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Hindi"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"I-delete ang napiling <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ang napili"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ng <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Naglo-load mula sa SIM card…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Mga contact sa SIM card"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Walang available na app ng mga contact"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Hindi available ang paghahanap gamit ang boses"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Hindi makagawa ng tawag sa telepono dahil naka-disable ang application na Telepono."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Maghanap ng mga contact"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> (na) bagong hindi nasagot na tawag"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Wala pang tao sa iyong speed dial"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Magdagdag ng paborito"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Wala ka pang sinumang mga contact"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Magdagdag ng contact"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Pindutin ang larawan upang makita ang lahat ng numero o pindutin nang matagal upang ayusing muli"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Alisin"</string>
+    <string name="select_all" msgid="408601760696146245">"Piliin lahat"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Mag-video call"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Magpadala ng mensahe"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Mga detalye ng tawag"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Mga naka-block na numero"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Naka-block na ang <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Account sa pagtawag"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"I-on"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Magtakda ng mga pahintulot"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Upang i-enable ang speed dial, i-on ang pahintulot ng Mga Contact."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Upang makita ang iyong log ng tawag, i-on ang pahintulot ng Telepono."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Upang makita ang iyong mga contact, i-on ang pahintulot ng Mga Contact."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Upang ma-access ang iyong voicemail, i-on ang pahintulot ng Telepono."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Upang hanapin ang iyong mga contact, i-on ang mga pahintulot sa Mga Contact."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Upang tumawag, i-on ang pahintulot ng Telepono."</string>
diff --git a/java/com/android/dialer/app/res/values-tr/strings.xml b/java/com/android/dialer/app/res/values-tr/strings.xml
index 2f6f704..17bd664 100644
--- a/java/com/android/dialer/app/res/values-tr/strings.xml
+++ b/java/com/android/dialer/app/res/values-tr/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Çağrıya dön"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Çağrı ekle"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Gelen çağrılar"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Toplu işlem moduna giriliyor"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Toplu işlem modundan çıkıldı"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Seçildi: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Seçimi kaldırıldı: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Sesli mesajı oynat"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Kişiyi görüntüle: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Ara: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Sesli Mesaj"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sn."</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> dk. <xliff:g id="SECONDS">%s</xliff:g> sn."</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Toplu işlemler modu iptal edilir"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"sesli mesaj"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"sesli mesajlar"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Evet"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Hayır"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Seçili <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> silinsin mi?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> öğe seçildi"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM karttan yükleniyor..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM kart kişileri"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Kullanılabilir rehber uygulaması yok"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Sesli arama kullanılamaz"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Telefon uygulaması devre dışı bırakıldığından telefon edilemiyor."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kişilerde ara"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> yeni cevapsız çağrı"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Hızlı arama listenizde henüz kimse yok"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Favori ekle"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Henüz kayıtlı kişi yok"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Kişi ekle"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Tüm numaraları görmek için resme dokunun veya yeniden sıralamak için dokunup basılı tutun"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Kaldır"</string>
+    <string name="select_all" msgid="408601760696146245">"Tümünü seç"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video görüşmesi"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"İleti gönder"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Çağrı ayrıntıları"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Engellenen numaralar"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefon zaten engellendi."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Çağrı hesapları"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Aç"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"İzinleri ayarla"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Hızlı aramayı etkinleştirmek için Kişiler iznini açın."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Çağrı günlüğünüzü görmek için Telefon iznini açın."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Kişilerinizi görmek için Kişiler iznini açın."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Sesli mesajınıza erişmek için Telefon iznini açın."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Kişilerinizde arama yapmak için Kişiler izinlerini açın."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Telefon etmek için Telefon iznini açın."</string>
diff --git a/java/com/android/dialer/app/res/values-uk/strings.xml b/java/com/android/dialer/app/res/values-uk/strings.xml
index 9a79012..a020a1f 100644
--- a/java/com/android/dialer/app/res/values-uk/strings.xml
+++ b/java/com/android/dialer/app/res/values-uk/strings.xml
@@ -87,6 +87,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Повернутися до поточного виклику"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Додати виклик"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Вхідні виклики"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Перехід у режим масових дій"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ви вийшли з режиму масових дій"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Вибрано користувача <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Скасовано вибір користувача <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Відтворити голосову пошту"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Переглянути контакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Набрати <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Голосова пошта"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> с"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> хв <xliff:g id="SECONDS">%s</xliff:g> с"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Скасувати режим масових дій"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"голосова пошта"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"голосова пошта"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Так"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ні"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Видалити вибране (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Вибрано <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> о <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Завантаж. із SIM-карти…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Контакти SIM-карти"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Немає додатка з контактами"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Голосовий пошук недоступний"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Не вдається здійснити дзвінок, оскільки додаток Телефон вимкнено."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Пошук контактів"</string>
@@ -147,10 +152,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"Нових пропущених дзвінків: <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Немає номерів для швидкого набору"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Додати номер"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Ще немає контактів"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Додати контакт"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Торкніться зображення, щоб побачити всі номери, або натисніть і утримуйте, щоб змінити порядок."</string>
     <string name="remove_contact" msgid="2353580570488923668">"Видалити"</string>
+    <string name="select_all" msgid="408601760696146245">"Вибрати все"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Відеодзвінок"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Надіслати повідомлення"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Деталі виклику"</string>
@@ -217,11 +221,9 @@
     <string name="block_list" msgid="4701585783411870782">"Заблоковані номери"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> уже заблоковано."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Обл. записи для дзвінків"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Увімкнути"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Налаштувати дозволи"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Щоб активувати швидкий набір, увімкніть дозвіл \"Контакти\"."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Щоб переглянути журнал викликів, увімкніть дозвіл \"Телефон\"."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Щоб переглянути контакти, увімкніть дозвіл \"Контакти\"."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Щоб користуватися голосовою поштою, увімкніть дозвіл \"Телефон\"."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Щоб шукати контакти, увімкніть дозвіл \"Контакти\"."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Щоб зателефонувати, увімкніть дозвіл \"Телефон\"."</string>
diff --git a/java/com/android/dialer/app/res/values-ur/strings.xml b/java/com/android/dialer/app/res/values-ur/strings.xml
index 2519871..d696bd5 100644
--- a/java/com/android/dialer/app/res/values-ur/strings.xml
+++ b/java/com/android/dialer/app/res/values-ur/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"جاری کال پر واپس لوٹیں"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"کال شامل کریں"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"آنے والی کالیں"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"بلک کاروائی موڈ میں داخل ہو رہا ہے"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"بلک کاروائی موڈ چھوڑ دیا"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"منتخب کردہ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"غیر منتخب کردہ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"صوتی میل چلائیں"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"رابطہ <xliff:g id="NAME">%1$s</xliff:g> دیکھیں"</string>
     <string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> کو کال کریں"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"صوتی میل"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> سیکنڈ"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> منٹ <xliff:g id="SECONDS">%s</xliff:g> سیکنڈ"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"بیچ کاروائی موڈ منسوخ کریں"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"صوتی میل"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"صوتی میلز"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ہاں"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"نہیں"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"منتخب کردہ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> حذف کریں؟"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> منتخب کردہ"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> بوقت <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"‏SIM کارڈ سے لوڈ ہو رہا ہے…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"‏SIM کارڈ کے رابطے"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"رابطوں کی کوئی ایپ دستیاب نہیں ہے"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"صوتی تلاش دستیاب نہیں ہے"</string>
     <string name="call_not_available" msgid="7850148370757361155">"فون کال نہیں کی جا سکتی ہے کیونکہ فون ایپلیکیشن کو غیر فعال کر دیا گیا ہے۔"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"رابطے تلاش کریں"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> نئی چھوٹی ہوئی کالیں"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"آپ کے اسپیڈ ڈائل پر ابھی تک کوئی نہیں ہے"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ایک پسندیدہ شامل کریں"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"آپ کے پاس ابھی تک کوئی رابطے نہیں ہیں"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ایک رابطہ شامل کریں"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"سبھی نمبرز دیکھنے کیلئے تصویر ٹچ کریں یا دوبارہ ترتیب دینے کیلئے ٹچ کریں اور پکڑے رہیں"</string>
     <string name="remove_contact" msgid="2353580570488923668">"ہٹائیں"</string>
+    <string name="select_all" msgid="408601760696146245">"سبھی کو منتخب کریں"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"ویڈیو کال"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"پیغام بھیجیں"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"کال کی تفصیلات"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"مسدود کردہ نمبرز"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> پہلے ہی مسدود ہے۔"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"کالنگ اکاؤنٹس"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"آن کریں"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"اجازتیں طے کریں"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"اسپیڈ ڈائل کو فعال کرنے کیلئے رابطوں کی اجازت آن کریں۔"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"اپنا کال لاگ دیکھنے کیلئے فون کی اجازت آن کریں۔"</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"اپنے رابطے دیکھنے کیلئے رابطوں کی اجازت آن کریں۔"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"اپنی صوتی میل تک رسائی کیلئے فون کی اجازت آن کریں۔"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"اپنے رابطوں کو تلاش کرنے کیلئے رابطوں کی اجازتیں آن کریں۔"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"کال کرنے کیلئے فون کی اجازت آن کریں۔"</string>
diff --git a/java/com/android/dialer/app/res/values-uz/strings.xml b/java/com/android/dialer/app/res/values-uz/strings.xml
index 705cae7..aa645bf 100644
--- a/java/com/android/dialer/app/res/values-uz/strings.xml
+++ b/java/com/android/dialer/app/res/values-uz/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Amaldagi chaqiruvga qaytish"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Chaqiruv qo‘shish"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Kiruvchi qo‘ng‘iroqlar"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Yoppasiga bajariladigan amallar rejimiga o‘tilmoqda"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Yoppasiga bajariladigan amallar rejimidan chiqib ketildi"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> tanlandi"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> tanlovi bekor qilindi"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Ovozli xabarni eshitish"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> kontaktini ko‘rish"</string>
     <string name="description_call" msgid="1532402285334775372">"Qo‘ng‘iroq: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Ovozli pochta"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> soniya"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> daq <xliff:g id="SECONDS">%s</xliff:g> son"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Yoppasiga bajariladigan amallar rejimini bekor qilish"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ovozli xabar"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ovozli xabarlar"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ha"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Yo‘q"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Tanlangan <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> o‘chirib tashlansinmi?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Tanlandi: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM kartadan yuklanmoqda…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM karta kontaktlari"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Hech qanday kontakt ilovasi yo‘q"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Ovozli qidiruv mavjud emas"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Telefon ilovasi o‘chirib qo‘yilgani sababli telefon qo‘ng‘iroqlarini amalga oshirib bo‘lmaydi."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kontaktlar ichidan qidirish"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ta javobsiz chaqiruv"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Tezkor terish uchun hech kim yo‘q"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Tezkor raqam terishni sozlang"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Sizda hali hech qanday kontakt yo‘q"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Yangi kontakt qo‘shing"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Barcha raqamlarni ko‘rish uchun rasm ustiga bosing yoki joyini o‘zgartirish uchun rasmni bosib turing."</string>
     <string name="remove_contact" msgid="2353580570488923668">"O‘chirish"</string>
+    <string name="select_all" msgid="408601760696146245">"Hammasini tanlash"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Video qo‘ng‘iroq"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Xabar yuborish"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Chaqiruv tafsilotlari"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Bloklangan raqamlar"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami allaqachon bloklangan."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Chaqiruv uchun hisoblar"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Yoqish"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ruxsatnomalarni sozlash"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Tezkor raqam terish uchun “Kontaktlar” ruxsatnomasini yoqing."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Qo‘ng‘iroqlaringiz ro‘yxatini ko‘rish uchun “Telefon” ruxsatnomasini yoqing."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktlaringizni ko‘rish uchun “Kontaktlar” ruxsatnomasini yoqing."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Ovozli pochtaga kirish uchun “Telefon” ruxsatnomasini yoqing."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Kontaktlarni qidirish uchun “Kontaktlar” ruxsatnomasini yoqing."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Qo‘ng‘iroq qilish uchun “Telefon” ruxsatnomasini yoqing."</string>
diff --git a/java/com/android/dialer/app/res/values-vi/strings.xml b/java/com/android/dialer/app/res/values-vi/strings.xml
index 5a60e0a..dda7c15 100644
--- a/java/com/android/dialer/app/res/values-vi/strings.xml
+++ b/java/com/android/dialer/app/res/values-vi/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Quay lại cuộc gọi đang thực hiện"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Thêm cuộc gọi"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Cuộc gọi đến"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Truy cập chế độ tác vụ hàng loạt"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Đã rời khỏi chế độ tác vụ hàng loạt"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Đã chọn <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Đã bỏ chọn <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Phát thư thoại"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Xem thông tin liên hệ của <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Gọi <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Thư thoại"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> giây"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> phút <xliff:g id="SECONDS">%s</xliff:g> giây"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Hủy chế độ tác vụ hàng loạt"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"thư thoại"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"thư thoại"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Có"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Không"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Xóa <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> đã chọn?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Đã chọn <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> lúc <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Đang tải từ thẻ SIM…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Danh bạ trên thẻ SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Không có ứng dụng danh bạ"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Không có tính năng tìm kiếm bằng giọng nói"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Không thể thực hiện cuộc gọi điện thoại vì ứng dụng Điện thoại đã bị tắt."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Tìm kiếm trong danh bạ"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> cuộc gọi nhỡ mới"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Chưa có ai trong danh bạ quay số nhanh của bạn"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Thêm liên hệ quay số nhanh yêu thích"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Bạn chưa có bất kỳ liên hệ nào"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Thêm liên hệ"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Chạm vào hình ảnh để xem tất cả các số hoặc chạm và giữ để sắp xếp lại"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Xóa"</string>
+    <string name="select_all" msgid="408601760696146245">"Chọn tất cả"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Cuộc gọi điện video"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Gửi tin nhắn"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Chi tiết cuộc gọi"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Số bị chặn"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> đã bị chặn."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Tài khoản gọi"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Bật"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Đặt quyền"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Để bật quay số nhanh, bật quyền đối với Danh bạ."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Để xem nhật ký cuộc gọi của bạn, bật quyền đối với Điện thoại."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Để xem danh bạ của bạn, bật quyền đối với Danh bạ."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Để truy cập thư thoại của bạn, bật quyền đối với Điện thoại."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Để tìm kiếm liên hệ của bạn, hãy bật quyền đối với Danh bạ."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Để thực hiện cuộc gọi, bật quyền đối với Điện thoại."</string>
diff --git a/java/com/android/dialer/app/res/values-zh-rCN/strings.xml b/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
index 98abc39..672614e 100644
--- a/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"返回正在进行的通话"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"添加通话"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"来电"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"正在进入批量操作模式"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"已退出批量操作模式"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"已选择 <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"已取消选择 <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"播放语音邮件"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"查看联系人<xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"呼叫<xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"语音信箱"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> 分钟 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"取消批量操作模式"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"语音邮件"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"语音邮件"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"是"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"否"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"要删除所选的<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>吗？"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"已选择 <xliff:g id="NUMBER">%1$s</xliff:g> 封"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"正从 SIM 卡中加载..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM卡联系人"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"没有可用的通讯录应用"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"无法使用语音搜索"</string>
     <string name="call_not_available" msgid="7850148370757361155">"“电话”应用已被停用，因此无法拨打电话。"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"搜索联系人"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g>个新的未接电话"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"尚未给任何联系人设定快速拨号"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"添加常用联系人"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"您还没有任何联系人"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"添加联系人"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"触摸图片可查看所有号码，触摸并按住可重新排序"</string>
     <string name="remove_contact" msgid="2353580570488923668">"移除"</string>
+    <string name="select_all" msgid="408601760696146245">"全选"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"视频通话"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"发送短信"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"通话详情"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"已屏蔽的号码"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> 已被屏蔽。"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"通话帐号"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"开启"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"设置权限"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"要启用快速拨号功能，请开启“通讯录”权限。"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"要查看您的通话记录，请开启“电话”权限。"</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"要查看您的联系人，请开启“通讯录”权限。"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"要使用您的语音信箱，请开启“电话”权限。"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"要搜索您的联系人，请开启“通讯录”权限。"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"要拨打电话，请开启“电话”权限。"</string>
diff --git a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
index 2a96ce0..f3dc44b 100644
--- a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"返回進行中的通話"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"新增通話"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"來電"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"正在進入大量操作模式"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"已離開大量操作模式"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"已選取<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"已取消選取<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"播放語音留言"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"查看聯絡人<xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"打電話給<xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"留言"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> 分 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"取消批量操作模式"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"留言"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"留言"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"是"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"否"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"要刪除所選的<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>嗎？"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"已選取 <xliff:g id="NUMBER">%1$s</xliff:g> 個"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"正在從 SIM 卡載入..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM 卡聯絡人"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"沒有可用的聯絡人應用程式"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"無法使用語音搜尋"</string>
     <string name="call_not_available" msgid="7850148370757361155">"由於「電話」應用程式已停用，因此無法打電話。"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"搜尋聯絡人"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> 個新的未接來電"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"快速撥號名單中沒有聯絡人"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"新增常用聯絡人"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"暫時沒有聯絡人"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"新增聯絡人"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"輕觸圖片以查看所有電話號碼，或輕觸並按住圖片以重新排序"</string>
     <string name="remove_contact" msgid="2353580570488923668">"移除"</string>
+    <string name="select_all" msgid="408601760696146245">"全選"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"視像通話"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"傳送訊息"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"通話詳情"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"已封鎖的號碼"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"已封鎖 <xliff:g id="NUMBER">%1$s</xliff:g>。"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"通話帳戶"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"開放權限"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"設定權限"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"如要啟用快速撥號功能，請開放「通訊錄」權限。"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"如要查看通話記錄，請開放「手機」權限。"</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"如要查看聯絡人，請開放「通訊錄」權限。"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"如要存取留言信箱，請開放「手機」權限。"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"如要搜尋聯絡人，請開啟「通訊錄」權限。"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"如要撥打電話，請開放「手機」權限。"</string>
diff --git a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
index 9174521..473955c 100644
--- a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"返回進行中的通話"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"新增通話"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"來電"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"已進入大量操作模式"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"已離開大量操作模式"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"已選取：<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"已取消選取：<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"播放語音留言"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"查看聯絡人<xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"撥電話給<xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"語音留言"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> 分 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"取消批次操作模式"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"語音留言"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"語音留言"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"是"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"否"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"要刪除選取的<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>嗎？"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"已選取 <xliff:g id="NUMBER">%1$s</xliff:g> 個"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"從  SIM 卡讀取中…"</string>
     <string name="simContacts_title" msgid="7961069730386378887">"SIM 卡聯絡人"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"沒有可用的聯絡人應用程式"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"無法使用語音搜尋"</string>
     <string name="call_not_available" msgid="7850148370757361155">"「電話」應用程式已遭停用，因此無法撥打電話。"</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"搜尋聯絡人"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> 通新的未接來電"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"您的快速撥號功能尚未設定任何聯絡人"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"新增常用聯絡人"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"您尚未加入任何聯絡人"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"新增聯絡人"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"輕觸圖片即可查看所有號碼，按住則可重新排序"</string>
     <string name="remove_contact" msgid="2353580570488923668">"移除"</string>
+    <string name="select_all" msgid="408601760696146245">"全選"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"視訊通話"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"傳送簡訊"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"通話詳細資料"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"已封鎖的號碼"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> 已在封鎖清單中。"</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"通話帳戶"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"開啟"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"設定權限"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"如要啟用快速撥號，請開啟「聯絡人」存取權限。"</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"如要查看您的通話紀錄，請開啟「電話」存取權限。"</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"如要查看您的聯絡人，請開啟「聯絡人」存取權限。"</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"如要存取您的語音信箱，請開啟「電話」存取權限。"</string>
     <string name="permission_no_search" msgid="2424710404207193826">"如要搜尋您的聯絡人，請開啟「聯絡人」存取權限。"</string>
     <string name="permission_place_call" msgid="8686908130349369423">"如要撥打電話，請開啟「電話」存取權限。"</string>
diff --git a/java/com/android/dialer/app/res/values-zu/strings.xml b/java/com/android/dialer/app/res/values-zu/strings.xml
index 9c8a6b8..93843aa 100644
--- a/java/com/android/dialer/app/res/values-zu/strings.xml
+++ b/java/com/android/dialer/app/res/values-zu/strings.xml
@@ -85,6 +85,10 @@
     <string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Buyela kukholi eqhubekayo"</string>
     <string name="dialer_addAnotherCall" msgid="3132945651710234674">"Yengeza ikholi"</string>
     <string name="actionIncomingCall" msgid="891346596090030558">"Amakholi angenayo"</string>
+    <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Kungenwa kumodi yesenzo senqwaba"</string>
+    <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ishiye imodi yesenzo senqwaba"</string>
+    <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Kukhethwe i-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+    <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Akukhethiwe i-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
     <string name="description_call_log_play_button" msgid="2349845005022431438">"Dlala i-imeyli yezwi"</string>
     <string name="description_view_contact" msgid="3940984937384372665">"Bheka oxhumana naye <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="description_call" msgid="1532402285334775372">"Shayela <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
     <string name="voicemail" msgid="8899540969000957954">"Ivoyisimeyili"</string>
     <string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> isekhondi"</string>
     <string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> amaminithi <xliff:g id="SECONDS">%s</xliff:g> amasekhondi"</string>
+    <string name="description_cancel_multi_select" msgid="3930475950253360461">"Khansela imodi lezenzo zeqoqo"</string>
     <string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ivoyisimeyili"</string>
     <string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ama-meyli ezwi"</string>
     <string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yebo"</string>
     <string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Cha"</string>
     <string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Susa okukhethiwe <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+    <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Engu-<xliff:g id="NUMBER">%1$s</xliff:g> ekhethiwe"</string>
     <string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
     <string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ngo-<xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
     <string name="meid" msgid="3333779521535224028">"I-MEID"</string>
     <string name="simContacts_emptyLoading" msgid="6205424276735652071">"Ilayisha kusuka ekhadini le-SIM..."</string>
     <string name="simContacts_title" msgid="7961069730386378887">"Othintana nabo bekhadi le-SIM"</string>
-    <string name="add_contact_not_available" msgid="7065884447935173347">"Alukho uhlelo lokusebenza loxhumana nabo olutholakalayo"</string>
     <string name="voice_search_not_available" msgid="6546240433719732905">"Usesho lwezwi alutholakali"</string>
     <string name="call_not_available" msgid="7850148370757361155">"Ayikwazi ukwenza ikholi yefoni ngoba uhlelo lokusebenza lwefoni likhutshaziwe."</string>
     <string name="dialer_hint_find_contact" msgid="2023214799381149808">"Sesha othintana nabo"</string>
@@ -145,10 +150,9 @@
     <string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> amakholi amasha owaphuthelwe"</string>
     <string name="speed_dial_empty" msgid="3346406399966039505">"Akekho umuntu osekudayeleni kwakho okusheshayo okwamanje"</string>
     <string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Engeza intandokazi"</string>
-    <string name="all_contacts_empty" msgid="243071567853617177">"Awunabo oxhumana nabo okwamanje"</string>
-    <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Engeza oxhumana naye"</string>
     <string name="contact_tooltip" msgid="8871614660967439999">"Thinta isithombe ukuze ubone zonke izinombolo noma thinta bese ubambe ukuze uhlele kabusha"</string>
     <string name="remove_contact" msgid="2353580570488923668">"Susa"</string>
+    <string name="select_all" msgid="408601760696146245">"Khetha konke"</string>
     <string name="call_log_action_video_call" msgid="7565549950343850819">"Ikholi yevidiyo"</string>
     <string name="call_log_action_send_message" msgid="6948727362660115554">"Thumela umlayezo"</string>
     <string name="call_log_action_details" msgid="2091370737371449501">"Imininingwane yekholi"</string>
@@ -213,11 +217,9 @@
     <string name="block_list" msgid="4701585783411870782">"Izinombolo ezivinjiwe"</string>
     <string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> isivinjiwe kakade."</string>
     <string name="phone_account_settings_label" msgid="8372485478006965920">"Ama-akhawunti wokushaya"</string>
-    <string name="permission_single_turn_on" msgid="8014796118294187894">"Vula"</string>
     <string name="permission_multiple_turn_on" msgid="5679888820253829400">"Setha izimvume"</string>
     <string name="permission_no_speeddial" msgid="8487215628510596753">"Nika amandla ukudayela okusheshayo, vula imvume yoxhumana nabo."</string>
     <string name="permission_no_calllog" msgid="4053705651238775784">"Ukuze ubone irekhodi lakho lamakholi, vuma imvume yefoni."</string>
-    <string name="permission_no_contacts" msgid="8995025765862026771">"Ukuze ubone oxhumana nabo, vula imvume yoxhumana nabo."</string>
     <string name="permission_no_voicemail" msgid="1908142679289209291">"Ukuze ufinyelele ivoyisimeyili, vula imvume yefoni."</string>
     <string name="permission_no_search" msgid="2424710404207193826">"Ukuze useshe oxhumana nabo, vula izimvume zoxhumana nabo."</string>
     <string name="permission_place_call" msgid="8686908130349369423">"Ukuze ubeke ikholi, vula imvume yefoni."</string>
diff --git a/java/com/android/dialer/app/res/values/colors.xml b/java/com/android/dialer/app/res/values/colors.xml
index cf6b926..2f6d87b 100644
--- a/java/com/android/dialer/app/res/values/colors.xml
+++ b/java/com/android/dialer/app/res/values/colors.xml
@@ -52,8 +52,6 @@
   <!-- Colour of voicemail progress bar to the left of position indicator. -->
   <color name="voicemail_playback_seek_bar_already_played">@color/dialer_theme_color</color>
 
-  <!-- Background color of new dialer activity -->
-  <color name="background_dialer_light">#fafafa</color>
   <!-- Background color for search results and call details -->
   <color name="background_dialer_results">#f9f9f9</color>
   <color name="background_dialer_call_log">@color/background_dialer_light</color>
@@ -69,8 +67,6 @@
   <!-- Undo dialogue color -->
   <color name="undo_dialogue_text_color">#4d4d4d</color>
 
-  <color name="empty_list_text_color">#b2b2b2</color>
-
   <color name="remove_text_color">#ffffff</color>
 
   <!-- Text color for the "Remove" text when a contact is dragged on top of the remove view -->
diff --git a/java/com/android/dialer/app/res/values/dimens.xml b/java/com/android/dialer/app/res/values/dimens.xml
index 7da29c7..57c43eb 100644
--- a/java/com/android/dialer/app/res/values/dimens.xml
+++ b/java/com/android/dialer/app/res/values/dimens.xml
@@ -105,9 +105,6 @@
   <!-- Length of dialpad's shadows in dialer. -->
   <dimen name="shadow_length">10dp</dimen>
 
-  <dimen name="empty_list_message_top_padding">20dp</dimen>
-  <dimen name="empty_list_message_text_size">16sp</dimen>
-
   <!-- Dimensions for individual preference cards -->
   <dimen name="preference_padding_top">16dp</dimen>
   <dimen name="preference_padding_bottom">16dp</dimen>
diff --git a/java/com/android/dialer/app/res/values/strings.xml b/java/com/android/dialer/app/res/values/strings.xml
index 9e1fdeb..6110601 100644
--- a/java/com/android/dialer/app/res/values/strings.xml
+++ b/java/com/android/dialer/app/res/values/strings.xml
@@ -279,6 +279,34 @@
   <!-- Description for incoming calls going to voice mail vs. not -->
   <string name="actionIncomingCall">Incoming calls</string>
 
+  <!-- String describing the user entering bulk action mode.
+
+    Note: AccessibilityServices use this attribute to announce what the view represents.
+          This is especially valuable for views without textual representation like ImageView.
+-->
+  <string name="description_entering_bulk_action_mode">Entering bulk action mode</string>
+
+  <!-- String describing the user leaving bulk action mode.
+
+    Note: AccessibilityServices use this attribute to announce what the view represents.
+          This is especially valuable for views without textual representation like ImageView.
+-->
+  <string name="description_leaving_bulk_action_mode">Left bulk action mode</string>
+
+  <!-- String describing the button to select an entry for bulk action.
+
+      Note: AccessibilityServices use this attribute to announce what the view represents.
+            This is especially valuable for views without textual representation like ImageView.
+  -->
+  <string name="description_selecting_bulk_action_mode">Selected <xliff:g id="nameOrNumber">%1$s</xliff:g></string>
+
+  <!-- String describing the button to unselect an entry for bulk action.
+
+      Note: AccessibilityServices use this attribute to announce what the view represents.
+            This is especially valuable for views without textual representation like ImageView.
+  -->
+  <string name="description_unselecting_bulk_action_mode">Unselected <xliff:g id="nameOrNumber">%1$s</xliff:g></string>
+
   <!-- String describing the icon in the call log used to play a voicemail.
 
       Note: AccessibilityServices use this attribute to announce what the view represents.
@@ -362,12 +390,19 @@
   <!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
   <string name="callDetailsDurationFormat"><xliff:g example="42" id="minutes">%s</xliff:g> min <xliff:g example="28" id="seconds">%s</xliff:g> sec</string>
 
+  <!-- String describing the cancel button in multi select.
+       Note: AccessibilityServices uses this attribute to announce what the view represents.
+       [CHAR LIMIT=NONE] -->
+  <string name="description_cancel_multi_select">Cancel batch actions mode</string>
+
   <string name="voicemailMultiSelectVoicemail">voicemail</string>
   <string name="voicemailMultiSelectVoicemails">voicemails</string>
   <string name="voicemailMultiSelectDeleteConfirm">Yes</string>
   <string name="voicemailMultiSelectDeleteCancel">No</string>
   <string name="voicemailMultiSelectDialogTitle">Delete selected <xliff:g id="voicemailorvoicemails">%1$s</xliff:g>?</string>
 
+  <string name="voicemailMultiSelectActionBarTitle"><xliff:g id="number">%1$s</xliff:g> selected</string>
+
   <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
        explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
        current day -->
@@ -411,9 +446,6 @@
   <!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
   <string name="simContacts_title">SIM card contacts</string>
 
-  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
-  <string name="add_contact_not_available">No contacts app available</string>
-
   <!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
   <string name="voice_search_not_available">Voice search not available</string>
 
@@ -514,12 +546,6 @@
   <!-- Shown as an action when there are no speed dial favorites -->
   <string name="speed_dial_empty_add_favorite_action">Add a favorite</string>
 
-  <!-- Shown when there are no contacts in the all contacts list. -->
-  <string name="all_contacts_empty">You don\'t have any contacts yet</string>
-
-  <!-- Shown as an action when the all contacts list is empty -->
-  <string name="all_contacts_empty_add_contact_action">Add a contact</string>
-
   <!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
        card can be tapped to bring up a list of all numbers, or long pressed to start reordering
        [CHAR LIMIT=NONE]
@@ -529,6 +555,9 @@
   <!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
   <string name="remove_contact">Remove</string>
 
+  <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
+  <string name="select_all">Select all</string>
+
   <!-- Button text for the "video call" displayed underneath an entry in the call log.
        Tapping causes a video call to be placed to the caller represented by the call log entry.
        [CHAR LIMIT=30] -->
@@ -554,7 +583,7 @@
         Call <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
     </string>
 
-  <!-- String describing an incoming missed call entry in the call log.
+    <!-- String describing an incoming missed call entry in the call log.
        Note: AccessibilityServices uses this attribute to announce what the view represents.
        [CHAR LIMIT=NONE] -->
   <string name="description_incoming_missed_call">Missed call from <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>, <xliff:g example="Mobile" id="typeOrLocation">^2</xliff:g>, <xliff:g example="2 min ago" id="timeOfCall">^3</xliff:g>, <xliff:g example="on SIM 1" id="phoneAccount">^4</xliff:g>.</string>
@@ -841,9 +870,6 @@
   <!-- Internal key for DTMF tone length preference. -->
   <string name="dtmf_tone_length_preference_key" translatable="false">button_dtmf_settings</string>
 
-  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
-  <string name="permission_single_turn_on">Turn on</string>
-
   <!--  The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
   <string name="permission_multiple_turn_on">Set permissions</string>
 
@@ -853,9 +879,6 @@
   <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
   <string name="permission_no_calllog">To see your call log, turn on the Phone permission.</string>
 
-  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
-  <string name="permission_no_contacts">To see your contacts, turn on the Contacts permission.</string>
-
   <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
   <string name="permission_no_voicemail">To access your voicemail, turn on the Phone permission.</string>
 
diff --git a/java/com/android/dialer/app/res/values/styles.xml b/java/com/android/dialer/app/res/values/styles.xml
index 7adf7ca..592f06d 100644
--- a/java/com/android/dialer/app/res/values/styles.xml
+++ b/java/com/android/dialer/app/res/values/styles.xml
@@ -25,13 +25,15 @@
     <item name="windowActionModeOverlay">true</item>
     <item name="android:actionBarStyle">@style/DialtactsActionBarStyle</item>
     <item name="actionBarStyle">@style/DialtactsActionBarStyle</item>
+    <item name="actionModeStyle">@style/ActionModeStyle</item>
+    <item name="android:actionModeStyle">@style/ActionModeStyle</item>
+
 
     <item name="android:windowContentOverlay">@null</item>
     <item name="android:overlapAnchor">true</item>
-    <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
+    <item name="android:homeAsUpIndicator">@drawable/quantum_ic_arrow_back_vd_theme_24</item>
 
     <item name="android:listViewStyle">@style/ListViewStyle</item>
-    <item name="section_header_background">@drawable/list_title_holo</item>
     <item name="list_section_header_height">32dip</item>
     <item name="list_item_padding_top">7dp</item>
     <item name="list_item_padding_right">24dp</item>
@@ -66,7 +68,7 @@
     <item name="android:textAppearanceButton">@style/DialerButtonTextStyle</item>
 
     <!-- Video call icon -->
-    <item name="list_item_video_call_icon_size">32dip</item>
+    <item name="list_item_video_call_icon_size">48dip</item>
     <item name="list_item_video_call_icon_margin">8dip</item>
 
     <item name="dialpad_style">@style/Dialpad.Light</item>
@@ -129,6 +131,12 @@
     <item name="contentInsetStart">@dimen/actionbar_contentInsetStart</item>
   </style>
 
+  <style name="ActionModeStyle" parent="Widget.AppCompat.ActionMode">
+    <item name="android:background">@color/actionbar_background_color</item>
+    <item name="background">@color/actionbar_background_color</item>
+    <item name="closeItemLayout">@layout/action_mode_close_button</item>
+  </style>
+
   <style name="DialtactsActionBarWithoutTitleStyle" parent="DialtactsActionBarStyle">
     <!-- Styles that require AppCompat compatibility, remember to update both sets -->
     <item name="android:displayOptions"></item>
diff --git a/java/com/android/dialer/app/res/xml/sound_settings.xml b/java/com/android/dialer/app/res/xml/sound_settings.xml
index 796ed2e..d9afb74 100644
--- a/java/com/android/dialer/app/res/xml/sound_settings.xml
+++ b/java/com/android/dialer/app/res/xml/sound_settings.xml
@@ -25,13 +25,13 @@
     android:ringtoneType="ringtone"
     android:title="@string/ringtone_title"/>
 
-  <CheckBoxPreference
+  <SwitchPreference
     android:defaultValue="false"
     android:key="@string/vibrate_on_preference_key"
     android:persistent="false"
     android:title="@string/vibrate_on_ring_title"/>
 
-  <CheckBoxPreference
+  <SwitchPreference
     android:defaultValue="true"
     android:key="@string/play_dtmf_preference_key"
     android:persistent="false"
diff --git a/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java b/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java
index 2c46438..e8e4256 100644
--- a/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java
+++ b/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java
@@ -18,7 +18,6 @@
 import android.content.res.Configuration;
 import android.os.Bundle;
 import android.preference.PreferenceActivity;
-import android.support.v7.app.ActionBar;
 import android.support.v7.app.AppCompatDelegate;
 import android.support.v7.widget.Toolbar;
 import android.view.MenuInflater;
@@ -49,10 +48,6 @@
     getDelegate().onPostCreate(savedInstanceState);
   }
 
-  public ActionBar getSupportActionBar() {
-    return getDelegate().getSupportActionBar();
-  }
-
   public void setSupportActionBar(Toolbar toolbar) {
     getDelegate().setSupportActionBar(toolbar);
   }
diff --git a/java/com/android/dialer/app/settings/DialerSettingsActivity.java b/java/com/android/dialer/app/settings/DialerSettingsActivity.java
index f1c270c..6036c85 100644
--- a/java/com/android/dialer/app/settings/DialerSettingsActivity.java
+++ b/java/com/android/dialer/app/settings/DialerSettingsActivity.java
@@ -36,7 +36,6 @@
 import com.android.dialer.app.R;
 import com.android.dialer.blocking.FilteredNumberCompat;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.compat.CompatUtils;
 import com.android.dialer.proguard.UsedByReflection;
 import com.android.voicemail.VoicemailClient;
 import com.android.voicemail.VoicemailComponent;
@@ -83,14 +82,12 @@
     soundSettingsHeader.id = R.id.settings_header_sounds_and_vibration;
     target.add(soundSettingsHeader);
 
-    if (CompatUtils.isMarshmallowCompatible()) {
-      Header quickResponseSettingsHeader = new Header();
-      Intent quickResponseSettingsIntent =
-          new Intent(TelecomManager.ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS);
-      quickResponseSettingsHeader.titleRes = R.string.respond_via_sms_setting_title;
-      quickResponseSettingsHeader.intent = quickResponseSettingsIntent;
-      target.add(quickResponseSettingsHeader);
-    }
+    Header quickResponseSettingsHeader = new Header();
+    Intent quickResponseSettingsIntent =
+        new Intent(TelecomManager.ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS);
+    quickResponseSettingsHeader.titleRes = R.string.respond_via_sms_setting_title;
+    quickResponseSettingsHeader.intent = quickResponseSettingsIntent;
+    target.add(quickResponseSettingsHeader);
 
     TelephonyManager telephonyManager =
         (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
diff --git a/java/com/android/dialer/app/settings/SoundSettingsFragment.java b/java/com/android/dialer/app/settings/SoundSettingsFragment.java
index 83ce453..dcfb7a5 100644
--- a/java/com/android/dialer/app/settings/SoundSettingsFragment.java
+++ b/java/com/android/dialer/app/settings/SoundSettingsFragment.java
@@ -23,11 +23,11 @@
 import android.os.Handler;
 import android.os.Message;
 import android.os.Vibrator;
-import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceScreen;
+import android.preference.SwitchPreference;
 import android.provider.Settings;
 import android.telephony.CarrierConfigManager;
 import android.telephony.TelephonyManager;
@@ -68,8 +68,8 @@
           updateRingtonePreferenceSummary();
         }
       };
-  private CheckBoxPreference mVibrateWhenRinging;
-  private CheckBoxPreference mPlayDtmfTone;
+  private SwitchPreference mVibrateWhenRinging;
+  private SwitchPreference mPlayDtmfTone;
   private ListPreference mDtmfToneLength;
 
   @Override
@@ -87,9 +87,9 @@
 
     mRingtonePreference = findPreference(context.getString(R.string.ringtone_preference_key));
     mVibrateWhenRinging =
-        (CheckBoxPreference) findPreference(context.getString(R.string.vibrate_on_preference_key));
+        (SwitchPreference) findPreference(context.getString(R.string.vibrate_on_preference_key));
     mPlayDtmfTone =
-        (CheckBoxPreference) findPreference(context.getString(R.string.play_dtmf_preference_key));
+        (SwitchPreference) findPreference(context.getString(R.string.play_dtmf_preference_key));
     mDtmfToneLength =
         (ListPreference)
             findPreference(context.getString(R.string.dtmf_tone_length_preference_key));
diff --git a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
index 9d07ec5..ffbae71 100644
--- a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
+++ b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
@@ -43,6 +43,15 @@
 
   private static final String LEGACY_VOICEMAIL_COUNT = "legacy_voicemail_count";
 
+  /**
+   * Hidden extra for {@link TelephonyManager#ACTION_SHOW_VOICEMAIL_NOTIFICATION} for whether the
+   * notification is just a refresh or for a new voicemail. The phone should not play a ringtone or
+   * vibrate during a refresh if the notification is already showing.
+   *
+   * <p>TODO(b/62202833): make public
+   */
+  private static final String EXTRA_IS_REFRESH = "is_refresh";
+
   @Override
   public void onReceive(Context context, Intent intent) {
     LogUtil.i(
@@ -51,7 +60,6 @@
 
     PhoneAccountHandle phoneAccountHandle =
         Assert.isNotNull(intent.getParcelableExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE));
-
     int count = intent.getIntExtra(TelephonyManager.EXTRA_NOTIFICATION_COUNT, -1);
 
     if (!hasVoicemailCountChanged(context, phoneAccountHandle, count)) {
@@ -97,7 +105,8 @@
             count,
             voicemailNumber,
             callVoicemailIntent,
-            voicemailSettingIntent);
+            voicemailSettingIntent,
+            intent.getBooleanExtra(EXTRA_IS_REFRESH, false));
   }
 
   private static boolean hasVoicemailCountChanged(
diff --git a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
index ea48c83..686e3e8 100644
--- a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
+++ b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
@@ -548,7 +548,9 @@
     mView.setClipPosition(mPosition, mDuration.get());
     mView.enableUiElements();
     mView.setSuccess();
-    mMediaPlayer.seekTo(mPosition);
+    if (!mp.isPlaying()) {
+      mMediaPlayer.seekTo(mPosition);
+    }
 
     if (mIsPlaying) {
       resumePlayback();
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml
index bc9c463..fb1b186 100644
--- a/java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml
+++ b/java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml
@@ -55,7 +55,7 @@
     <string name="voicemail_action_set_pin" msgid="958510049866316228">"पिन सेट करें"</string>
     <string name="voicemail_action_retry" msgid="4450307484541052511">"पुन: प्रयास करें"</string>
     <string name="voicemail_action_turn_archive_on" msgid="6008444955560830591">"चालू करें"</string>
-    <string name="voicemail_action_dimiss" msgid="6018415798136796966">"नहीं धन्यवाद"</string>
+    <string name="voicemail_action_dimiss" msgid="6018415798136796966">"रहने दें"</string>
     <string name="voicemail_action_sync" msgid="5139315923415392787">"समन्वयित करें"</string>
     <string name="voicemail_action_call_voicemail" msgid="6701710720535556395">"वॉइसमेल को कॉल करें"</string>
     <string name="voicemail_action_call_customer_support" msgid="7698973007656462748">"ग्राहक सहायता को कॉल करें"</string>
diff --git a/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java b/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java
index 85fd5ec..5846b1f 100644
--- a/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java
+++ b/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java
@@ -21,6 +21,7 @@
 import android.widget.LinearLayout;
 import com.android.dialer.app.R;
 import com.android.dialer.util.OrientationUtil;
+import com.android.dialer.widget.EmptyContentView;
 
 /** Empty content view to be shown when dialpad is visible. */
 public class DialpadSearchEmptyContentView extends EmptyContentView {
diff --git a/java/com/android/dialer/app/widget/SearchEditTextLayout.java b/java/com/android/dialer/app/widget/SearchEditTextLayout.java
index f83c482..d67fd9e 100644
--- a/java/com/android/dialer/app/widget/SearchEditTextLayout.java
+++ b/java/com/android/dialer/app/widget/SearchEditTextLayout.java
@@ -52,7 +52,6 @@
   private View mVoiceSearchButtonView;
   private View mOverflowButtonView;
   private View mBackButtonView;
-  private View mExpandedSearchBox;
   private View mClearButtonView;
 
   private ValueAnimator mAnimator;
@@ -90,20 +89,27 @@
     mVoiceSearchButtonView = findViewById(R.id.voice_search_button);
     mOverflowButtonView = findViewById(R.id.dialtacts_options_menu_button);
     mBackButtonView = findViewById(R.id.search_back_button);
-    mExpandedSearchBox = findViewById(R.id.search_box_expanded);
+    mBackButtonView
+        .getResources()
+        .getDrawable(R.drawable.quantum_ic_arrow_back_vd_theme_24)
+        .setAutoMirrored(true);
     mClearButtonView = findViewById(R.id.search_close_button);
 
-    // Convert a long click into a click to expand the search box, and then long click on the
-    // search view. This accelerates the long-press scenario for copy/paste.
+    // Convert a long click into a click to expand the search box. Touch events are also
+    // forwarded to the searchView. This accelerates the long-press scenario for copy/paste.
     mCollapsed.setOnLongClickListener(
         new OnLongClickListener() {
           @Override
           public boolean onLongClick(View view) {
             mCollapsed.performClick();
-            mSearchView.performLongClick();
             return false;
           }
         });
+    mCollapsed.setOnTouchListener(
+        (v, event) -> {
+          mSearchView.onTouchEvent(event);
+          return false;
+        });
 
     mSearchView.setOnFocusChangeListener(
         new OnFocusChangeListener() {
@@ -212,7 +218,7 @@
       AnimUtils.crossFadeViews(mExpanded, mCollapsed, ANIMATION_DURATION);
       mAnimator = ValueAnimator.ofFloat(EXPAND_MARGIN_FRACTION_START, 0f);
       setMargins(EXPAND_MARGIN_FRACTION_START);
-      prepareAnimator(true);
+      prepareAnimator();
     } else {
       mExpanded.setVisibility(View.VISIBLE);
       mExpanded.setAlpha(1);
@@ -241,7 +247,7 @@
     if (animate) {
       AnimUtils.crossFadeViews(mCollapsed, mExpanded, ANIMATION_DURATION);
       mAnimator = ValueAnimator.ofFloat(0f, 1f);
-      prepareAnimator(false);
+      prepareAnimator();
     } else {
       mCollapsed.setVisibility(View.VISIBLE);
       mCollapsed.setAlpha(1);
@@ -279,7 +285,7 @@
     }
   }
 
-  private void prepareAnimator(final boolean expand) {
+  private void prepareAnimator() {
     if (mAnimator != null) {
       mAnimator.cancel();
     }
diff --git a/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java b/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java
index 595401c..bc0b39b 100644
--- a/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java
+++ b/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java
@@ -18,6 +18,7 @@
 
 import com.android.dialer.binary.basecomponent.BaseDialerRootComponent;
 import com.android.dialer.calllog.CallLogModule;
+import com.android.dialer.common.concurrent.DialerExecutorModule;
 import com.android.dialer.enrichedcall.stub.StubEnrichedCallModule;
 import com.android.dialer.inject.ContextModule;
 import com.android.dialer.lightbringer.stub.StubLightbringerModule;
@@ -34,6 +35,7 @@
   modules = {
     CallLogModule.class,
     ContextModule.class,
+    DialerExecutorModule.class,
     SimulatorModule.class,
     StubCallLocationModule.class,
     StubEnrichedCallModule.class,
diff --git a/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java b/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java
index 2deb7fd..6e6ae4b 100644
--- a/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java
+++ b/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java
@@ -17,6 +17,8 @@
 package com.android.dialer.binary.basecomponent;
 
 import com.android.dialer.calllog.CallLogComponent;
+import com.android.dialer.calllog.database.CallLogDatabaseComponent;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.enrichedcall.EnrichedCallComponent;
 import com.android.dialer.lightbringer.LightbringerComponent;
 import com.android.dialer.simulator.SimulatorComponent;
@@ -31,6 +33,8 @@
 public interface BaseDialerRootComponent
     extends CallLocationComponent.HasComponent,
         CallLogComponent.HasComponent,
+        CallLogDatabaseComponent.HasComponent,
+        DialerExecutorComponent.HasComponent,
         EnrichedCallComponent.HasComponent,
         MapsComponent.HasComponent,
         SimulatorComponent.HasComponent,
diff --git a/java/com/android/dialer/binary/common/DialerApplication.java b/java/com/android/dialer/binary/common/DialerApplication.java
index a4c2e7d..5037883 100644
--- a/java/com/android/dialer/binary/common/DialerApplication.java
+++ b/java/com/android/dialer/binary/common/DialerApplication.java
@@ -55,8 +55,9 @@
 
   private void enableStrictMode() {
     StrictMode.setThreadPolicy(
-        new StrictMode.ThreadPolicy.Builder().detectAll().penaltyDeath().build());
-    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyDeath().build());
+        new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().penaltyDeath().build());
+    StrictMode.setVmPolicy(
+        new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().penaltyDeath().build());
   }
 
   /**
diff --git a/java/com/android/dialer/callcomposer/AndroidManifest.xml b/java/com/android/dialer/callcomposer/AndroidManifest.xml
index 369db6f..cce7110 100644
--- a/java/com/android/dialer/callcomposer/AndroidManifest.xml
+++ b/java/com/android/dialer/callcomposer/AndroidManifest.xml
@@ -17,7 +17,7 @@
   xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.android.dialer.callcomposer">
 
-  <application>
+  <application android:theme="@style/Theme.AppCompat">
     <activity
       android:name="com.android.dialer.callcomposer.CallComposerActivity"
       android:exported="true"
diff --git a/java/com/android/dialer/callcomposer/CallComposerActivity.java b/java/com/android/dialer/callcomposer/CallComposerActivity.java
index 074fc6d..bc20c73 100644
--- a/java/com/android/dialer/callcomposer/CallComposerActivity.java
+++ b/java/com/android/dialer/callcomposer/CallComposerActivity.java
@@ -37,10 +37,8 @@
 import android.util.Base64;
 import android.view.View;
 import android.view.View.OnClickListener;
-import android.view.View.OnLayoutChangeListener;
 import android.view.ViewAnimationUtils;
 import android.view.ViewGroup;
-import android.view.WindowManager.LayoutParams;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
@@ -56,6 +54,7 @@
 import com.android.dialer.common.UiUtil;
 import com.android.dialer.common.concurrent.DialerExecutors;
 import com.android.dialer.constants.Constants;
+import com.android.dialer.dialercontact.DialerContact;
 import com.android.dialer.enrichedcall.EnrichedCallComponent;
 import com.android.dialer.enrichedcall.EnrichedCallManager;
 import com.android.dialer.enrichedcall.EnrichedCallManager.State;
@@ -86,7 +85,6 @@
     implements OnClickListener,
         OnPageChangeListener,
         CallComposerListener,
-        OnLayoutChangeListener,
         EnrichedCallManager.StateChangedListener {
 
   public static final String KEY_CONTACT_NAME = "contact_name";
@@ -102,7 +100,7 @@
   private static final String VIEW_PAGER_STATE_KEY = "view_pager_state_key";
   private static final String SESSION_ID_KEY = "session_id_key";
 
-  private CallComposerContact contact;
+  private DialerContact contact;
   private Long sessionId = Session.NO_SESSION_ID;
 
   private TextView nameView;
@@ -126,10 +124,9 @@
   private boolean shouldAnimateEntrance = true;
   private boolean inFullscreenMode;
   private boolean isSendAndCallHidingOrHidden = true;
-  private boolean layoutChanged;
   private int currentIndex;
 
-  public static Intent newIntent(Context context, CallComposerContact contact) {
+  public static Intent newIntent(Context context, DialerContact contact) {
     Intent intent = new Intent(context, CallComposerActivity.class);
     ProtoParsers.put(intent, ARG_CALL_COMPOSER_CONTACT, contact);
     return intent;
@@ -140,19 +137,19 @@
     super.onCreate(savedInstanceState);
     setContentView(R.layout.call_composer_activity);
 
-    nameView = (TextView) findViewById(R.id.contact_name);
-    numberView = (TextView) findViewById(R.id.phone_number);
-    contactPhoto = (QuickContactBadge) findViewById(R.id.contact_photo);
-    cameraIcon = (ImageView) findViewById(R.id.call_composer_camera);
-    galleryIcon = (ImageView) findViewById(R.id.call_composer_photo);
-    messageIcon = (ImageView) findViewById(R.id.call_composer_message);
-    contactContainer = (RelativeLayout) findViewById(R.id.contact_bar);
-    pager = (ViewPager) findViewById(R.id.call_composer_view_pager);
-    background = (FrameLayout) findViewById(R.id.background);
-    windowContainer = (LinearLayout) findViewById(R.id.call_composer_container);
-    toolbar = (DialerToolbar) findViewById(R.id.toolbar);
+    nameView = findViewById(R.id.contact_name);
+    numberView = findViewById(R.id.phone_number);
+    contactPhoto = findViewById(R.id.contact_photo);
+    cameraIcon = findViewById(R.id.call_composer_camera);
+    galleryIcon = findViewById(R.id.call_composer_photo);
+    messageIcon = findViewById(R.id.call_composer_message);
+    contactContainer = findViewById(R.id.contact_bar);
+    pager = findViewById(R.id.call_composer_view_pager);
+    background = findViewById(R.id.background);
+    windowContainer = findViewById(R.id.call_composer_container);
+    toolbar = findViewById(R.id.toolbar);
     sendAndCall = findViewById(R.id.send_and_call_button);
-    sendAndCallText = (TextView) findViewById(R.id.send_and_call_text);
+    sendAndCallText = findViewById(R.id.send_and_call_text);
 
     interpolator = new FastOutSlowInInterpolator();
     adapter =
@@ -162,7 +159,6 @@
     pager.setAdapter(adapter);
     pager.addOnPageChangeListener(this);
 
-    background.addOnLayoutChangeListener(this);
     cameraIcon.setOnClickListener(this);
     galleryIcon.setOnClickListener(this);
     messageIcon.setOnClickListener(this);
@@ -178,11 +174,6 @@
       onPageSelected(currentIndex);
     }
 
-    int adjustMode =
-        isLandscapeLayout()
-            ? LayoutParams.SOFT_INPUT_ADJUST_PAN
-            : LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
-    getWindow().setSoftInputMode(adjustMode);
     // Since we can't animate the views until they are ready to be drawn, we use this listener to
     // track that and animate the call compose UI as soon as it's ready.
     ViewUtil.doOnPreDraw(
@@ -264,7 +255,7 @@
     } else if (view == sendAndCall) {
       sendAndCall();
     } else {
-      Assert.fail();
+      throw Assert.createIllegalStateFailException("View on click not implemented: " + view);
     }
   }
 
@@ -340,11 +331,7 @@
 
   private boolean sessionReady() {
     Session session = getEnrichedCallManager().getSession(sessionId);
-    if (session == null) {
-      return false;
-    }
-
-    return session.getState() == EnrichedCallManager.STATE_STARTED;
+    return session != null && session.getState() == EnrichedCallManager.STATE_STARTED;
   }
 
   private void placeRCSCall(MultimediaData.Builder builder) {
@@ -424,28 +411,6 @@
     animateSendAndCall(fragment.shouldHide());
   }
 
-  // To detect when the keyboard changes.
-  @Override
-  public void onLayoutChange(
-      View view,
-      int left,
-      int top,
-      int right,
-      int bottom,
-      int oldLeft,
-      int oldTop,
-      int oldRight,
-      int oldBottom) {
-    // To prevent infinite layout change loops
-    if (layoutChanged) {
-      layoutChanged = false;
-      return;
-    }
-
-    layoutChanged = true;
-    showFullscreen(contactContainer.getTop() < 0 || inFullscreenMode);
-  }
-
   /**
    * Reads arguments from the fragment arguments and populates the necessary instance variables.
    * Copied from {@link com.android.contacts.common.dialog.CallSubjectDialog}.
@@ -456,14 +421,14 @@
       byte[] bytes =
           Base64.decode(intent.getStringExtra(ARG_CALL_COMPOSER_CONTACT_BASE64), Base64.DEFAULT);
       try {
-        contact = CallComposerContact.parseFrom(bytes);
+        contact = DialerContact.parseFrom(bytes);
       } catch (InvalidProtocolBufferException e) {
         throw Assert.createAssertionFailException(e.toString());
       }
     } else {
       contact =
           ProtoParsers.getTrusted(
-              intent, ARG_CALL_COMPOSER_CONTACT, CallComposerContact.getDefaultInstance());
+              intent, ARG_CALL_COMPOSER_CONTACT, DialerContact.getDefaultInstance());
     }
     updateContactInfo();
   }
diff --git a/java/com/android/dialer/callcomposer/CameraComposerFragment.java b/java/com/android/dialer/callcomposer/CameraComposerFragment.java
index f65207f..ecdc258 100644
--- a/java/com/android/dialer/callcomposer/CameraComposerFragment.java
+++ b/java/com/android/dialer/callcomposer/CameraComposerFragment.java
@@ -17,13 +17,14 @@
 package com.android.dialer.callcomposer;
 
 import android.Manifest;
-import android.Manifest.permission;
 import android.content.Intent;
+import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Animatable;
 import android.hardware.Camera.CameraInfo;
 import android.net.Uri;
 import android.os.Bundle;
+import android.preference.PreferenceManager;
 import android.provider.Settings;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
@@ -56,6 +57,7 @@
 public class CameraComposerFragment extends CallComposerFragment
     implements CameraManagerListener, OnClickListener, CameraManager.MediaCallback {
 
+  private static final String CAMERA_PRIVACY_PREF = "camera_privacy_permission";
   private static final String CAMERA_DIRECTION_KEY = "camera_direction";
   private static final String CAMERA_URI_KEY = "camera_key";
 
@@ -107,7 +109,8 @@
     capture.setOnClickListener(this);
     cancel.setOnClickListener(this);
 
-    if (!PermissionsUtil.hasPermission(getContext(), permission.CAMERA)) {
+
+    if (!PermissionsUtil.hasCameraPermissions(getContext())) {
       LogUtil.i("CameraComposerFragment.onCreateView", "Permission view shown.");
       Logger.get(getContext()).logImpression(DialerImpression.Type.CAMERA_PERMISSION_DISPLAYED);
       ImageView permissionImage = (ImageView) permissionView.findViewById(R.id.permission_icon);
@@ -131,6 +134,12 @@
   }
 
   private void setupCamera() {
+    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+    if (!preferences.getBoolean(CAMERA_PRIVACY_PREF, false)) {
+      Toast.makeText(getContext(), getString(R.string.camera_privacy_text), Toast.LENGTH_LONG)
+          .show();
+      preferences.edit().putBoolean(CAMERA_PRIVACY_PREF, true).apply();
+    }
     CameraManager.get().setListener(this);
     preview.setShown();
     CameraManager.get().setRenderOverlay(focus);
diff --git a/java/com/android/dialer/callcomposer/GalleryCursorLoader.java b/java/com/android/dialer/callcomposer/GalleryCursorLoader.java
index f9990e1..39d6a4a 100644
--- a/java/com/android/dialer/callcomposer/GalleryCursorLoader.java
+++ b/java/com/android/dialer/callcomposer/GalleryCursorLoader.java
@@ -28,7 +28,7 @@
 public class GalleryCursorLoader extends CursorLoader {
   public static final String MEDIA_SCANNER_VOLUME_EXTERNAL = "external";
   public static final String[] ACCEPTABLE_IMAGE_TYPES =
-      new String[] {"image/jpeg", "image/jpg", "image/png", "image/gif", "image/webp"};
+      new String[] {"image/jpeg", "image/jpg", "image/png", "image/webp"};
 
   private static final Uri STORAGE_URI = Files.getContentUri(MEDIA_SCANNER_VOLUME_EXTERNAL);
   private static final String SORT_ORDER = Media.DATE_MODIFIED + " DESC";
@@ -47,7 +47,7 @@
   @SuppressLint("DefaultLocale")
   private static String createSelection() {
     return String.format(
-        "mime_type IN ('image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp')"
+        "mime_type IN ('image/jpeg', 'image/jpg', 'image/png', 'image/webp')"
             + " AND media_type in (%d)",
         FileColumns.MEDIA_TYPE_IMAGE);
   }
diff --git a/java/com/android/dialer/callcomposer/MessageComposerFragment.java b/java/com/android/dialer/callcomposer/MessageComposerFragment.java
index 2a342bb..392f6e7 100644
--- a/java/com/android/dialer/callcomposer/MessageComposerFragment.java
+++ b/java/com/android/dialer/callcomposer/MessageComposerFragment.java
@@ -24,11 +24,8 @@
 import android.text.TextWatcher;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
-import android.view.MotionEvent;
 import android.view.View;
 import android.view.View.OnClickListener;
-import android.view.View.OnLongClickListener;
-import android.view.View.OnTouchListener;
 import android.view.ViewGroup;
 import android.widget.EditText;
 import android.widget.TextView;
@@ -36,17 +33,12 @@
 
 /** Fragment used to compose call with message fragment. */
 public class MessageComposerFragment extends CallComposerFragment
-    implements OnClickListener,
-        TextWatcher,
-        OnTouchListener,
-        OnLongClickListener,
-        OnEditorActionListener {
+    implements OnClickListener, TextWatcher, OnEditorActionListener {
   private static final String CHAR_LIMIT_KEY = "char_limit";
 
   public static final int NO_CHAR_LIMIT = -1;
 
   private EditText customMessage;
-  private boolean isLongClick = false;
   private int charLimit;
 
   public static MessageComposerFragment newInstance(int charLimit) {
@@ -73,8 +65,6 @@
     customMessage = (EditText) view.findViewById(R.id.custom_message);
 
     urgent.setOnClickListener(this);
-    customMessage.setOnTouchListener(this);
-    customMessage.setOnLongClickListener(this);
     customMessage.addTextChangedListener(this);
     customMessage.setOnEditorActionListener(this);
     if (charLimit != NO_CHAR_LIMIT) {
@@ -118,30 +108,6 @@
     getListener().composeCall(this);
   }
 
-  /**
-   * EditTexts take two clicks to dispatch an onClick() event, so instead we add an onTouchListener
-   * to listen for them. The caveat to this is that it also requires listening for onLongClicks to
-   * distinguish whether a MotionEvent came from a click or a long click.
-   */
-  @Override
-  public boolean onTouch(View view, MotionEvent event) {
-    if (event.getAction() == MotionEvent.ACTION_UP) {
-      if (isLongClick) {
-        isLongClick = false;
-      } else {
-        getListener().showFullscreen(true);
-      }
-    }
-    view.performClick();
-    return false;
-  }
-
-  @Override
-  public boolean onLongClick(View v) {
-    isLongClick = true;
-    return false;
-  }
-
   @Override
   public boolean shouldHide() {
     return TextUtils.isEmpty(getMessage());
diff --git a/java/com/android/dialer/callcomposer/camera/CameraManager.java b/java/com/android/dialer/callcomposer/camera/CameraManager.java
index 4cc08ba..977f063 100644
--- a/java/com/android/dialer/callcomposer/camera/CameraManager.java
+++ b/java/com/android/dialer/callcomposer/camera/CameraManager.java
@@ -522,6 +522,7 @@
     switch (windowManager.getDefaultDisplay().getRotation()) {
       case Surface.ROTATION_0:
         degrees = 0;
+        mCamera.setDisplayOrientation(90);
         break;
       case Surface.ROTATION_90:
         degrees = 90;
@@ -531,31 +532,22 @@
         break;
       case Surface.ROTATION_270:
         degrees = 270;
+        mCamera.setDisplayOrientation(180);
         break;
       default:
         throw Assert.createAssertionFailException("");
     }
 
-    // The display orientation of the camera (this controls the preview image).
-    int orientation;
-
     // The clockwise rotation angle relative to the orientation of the camera. This affects
     // pictures returned by the camera in Camera.PictureCallback.
-    int rotation;
     if (mCameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
-      orientation = (mCameraInfo.orientation + degrees) % 360;
-      rotation = orientation;
-      // compensate the mirror but only for orientation
-      orientation = (360 - orientation) % 360;
+      mRotation = (mCameraInfo.orientation + degrees) % 360;
     } else { // back-facing
-      orientation = (mCameraInfo.orientation - degrees + 360) % 360;
-      rotation = orientation;
+      mRotation = (mCameraInfo.orientation - degrees + 360) % 360;
     }
-    mRotation = rotation;
     try {
-      mCamera.setDisplayOrientation(orientation);
       final Camera.Parameters params = mCamera.getParameters();
-      params.setRotation(rotation);
+      params.setRotation(mRotation);
       mCamera.setParameters(params);
     } catch (final RuntimeException e) {
       LogUtil.e(
@@ -589,7 +581,6 @@
         mOrientationHandler.disable();
         mOrientationHandler = null;
       }
-      //      releaseMediaRecorder(true /* cleanupFile */);
       mFocusOverlayManager.onPreviewStopped();
       return;
     }
diff --git a/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java b/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
index 31751e5..b5542ab 100644
--- a/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
+++ b/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
@@ -20,13 +20,11 @@
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
-import android.graphics.Canvas;
 import android.graphics.Matrix;
 import android.net.Uri;
 import android.os.Build.VERSION_CODES;
 import android.support.v4.content.FileProvider;
 import com.android.dialer.callcomposer.camera.exif.ExifInterface;
-import com.android.dialer.callcomposer.camera.exif.ExifTag;
 import com.android.dialer.callcomposer.util.BitmapResizer;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.concurrent.FallibleAsyncTask;
@@ -71,13 +69,7 @@
     File outputFile = DialerUtils.createShareableFile(mContext);
 
     try (OutputStream outputStream = new FileOutputStream(outputFile)) {
-      if (mHeightPercent != 1.0f) {
-        writeClippedBitmap(outputStream);
-      } else {
-        Bitmap bitmap = BitmapFactory.decodeByteArray(mBytes, 0, mBytes.length);
-        bitmap = BitmapResizer.resizeForEnrichedCalling(bitmap);
-        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, outputStream);
-      }
+      writeClippedBitmap(outputStream);
     }
 
     return FileProvider.getUriForFile(
@@ -105,10 +97,12 @@
     } catch (final IOException e) {
       // Couldn't get exif tags, not the end of the world
     }
+
     Bitmap bitmap = BitmapFactory.decodeByteArray(mBytes, 0, mBytes.length);
     final int clippedWidth;
     final int clippedHeight;
-    if (ExifInterface.getOrientationParams(orientation).invertDimensions) {
+    boolean invert = ExifInterface.getOrientationParams(orientation).invertDimensions;
+    if (invert) {
       Assert.checkState(mWidth == bitmap.getHeight());
       Assert.checkState(mHeight == bitmap.getWidth());
       clippedWidth = (int) (mHeight * mHeightPercent);
@@ -119,24 +113,22 @@
       clippedWidth = mWidth;
       clippedHeight = (int) (mHeight * mHeightPercent);
     }
-    final int offsetTop = (bitmap.getHeight() - clippedHeight) / 2;
-    final int offsetLeft = (bitmap.getWidth() - clippedWidth) / 2;
+
+    int offsetTop = (bitmap.getHeight() - clippedHeight) / 2;
+    int offsetLeft = (bitmap.getWidth() - clippedWidth) / 2;
     mWidth = clippedWidth;
     mHeight = clippedHeight;
+
+    Matrix matrix = new Matrix();
+    matrix.postRotate(invert ? 90 : 0);
+
     Bitmap clippedBitmap =
-        Bitmap.createBitmap(clippedWidth, clippedHeight, Bitmap.Config.ARGB_8888);
-    clippedBitmap.setDensity(bitmap.getDensity());
-    final Canvas clippedBitmapCanvas = new Canvas(clippedBitmap);
-    final Matrix matrix = new Matrix();
-    matrix.postTranslate(-offsetLeft, -offsetTop);
-    clippedBitmapCanvas.drawBitmap(bitmap, matrix, null /* paint */);
-    clippedBitmapCanvas.save();
+        Bitmap.createBitmap(
+            bitmap, offsetLeft, offsetTop, clippedWidth, clippedHeight, matrix, true);
     clippedBitmap = BitmapResizer.resizeForEnrichedCalling(clippedBitmap);
-    // EXIF data can take a big chunk of the file size and is often cleared by the
-    // carrier, only store orientation since that's critical
-    final ExifTag orientationTag = exifInterface.getTag(ExifInterface.TAG_ORIENTATION);
+    // EXIF data can take a big chunk of the file size and we've already manually rotated our image,
+    // so remove all of the exif data.
     exifInterface.clearExif();
-    exifInterface.setTag(orientationTag);
     exifInterface.writeExif(clippedBitmap, outputStream);
 
     clippedBitmap.recycle();
diff --git a/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml b/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml
index c3f1102..14703a4 100644
--- a/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml
+++ b/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml
@@ -15,11 +15,11 @@
   ~ limitations under the License
   -->
 <FrameLayout
-  xmlns:android="http://schemas.android.com/apk/res/android"
-  android:id="@+id/background"
-  android:layout_width="match_parent"
-  android:layout_height="match_parent"
-  android:background="@color/call_composer_background_color">
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/background"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/call_composer_background_color">
 
   <LinearLayout
     android:id="@+id/call_composer_container"
@@ -87,7 +87,7 @@
         android:layout_height="@dimen/call_composer_media_bar_height"
         android:orientation="horizontal"
         android:gravity="center_horizontal"
-        android:background="@color/dialer_secondary_color"
+        android:background="@color/dialer_theme_color_dark"
         android:clickable="true">
 
       <ImageView
diff --git a/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml b/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml
index 77c7a58..1556247 100644
--- a/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml
+++ b/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml
@@ -70,7 +70,7 @@
       android:background="@color/background_dialer_white"
       android:textCursorDrawable="@drawable/searchedittext_custom_cursor"
       android:layout_toStartOf="@+id/remaining_characters"
-      android:inputType="textShortMessage"
+      android:inputType="textShortMessage|textCapSentences"
       android:imeOptions="flagNoExtractUi|actionSend"/>
 
     <TextView
diff --git a/java/com/android/dialer/callcomposer/res/values-ca/strings.xml b/java/com/android/dialer/callcomposer/res/values-ca/strings.xml
index 4fa52ad..1a57f87 100644
--- a/java/com/android/dialer/callcomposer/res/values-ca/strings.xml
+++ b/java/com/android/dialer/callcomposer/res/values-ca/strings.xml
@@ -28,6 +28,6 @@
     <string name="camera_switch_to_still_mode" msgid="1881982437979592567">"Fes una foto"</string>
     <string name="camera_media_failure" msgid="8979549551450965882">"No s\'ha pogut carregar la imatge de la càmera"</string>
     <string name="allow" msgid="8637148297403066623">"Permet"</string>
-    <string name="camera_permission_text" msgid="7863231776480341614">"Per fer una foto, dóna accés a la càmera"</string>
-    <string name="gallery_permission_text" msgid="4102566850658919346">"Per compartir una imatge, dóna accés al contingut multimèdia"</string>
+    <string name="camera_permission_text" msgid="7863231776480341614">"Per fer una foto, dona accés a la càmera"</string>
+    <string name="gallery_permission_text" msgid="4102566850658919346">"Per compartir una imatge, dona accés al contingut multimèdia"</string>
 </resources>
diff --git a/java/com/android/dialer/callcomposer/res/values/styles.xml b/java/com/android/dialer/callcomposer/res/values/styles.xml
index 29ac4dd..16e7fb6 100644
--- a/java/com/android/dialer/callcomposer/res/values/styles.xml
+++ b/java/com/android/dialer/callcomposer/res/values/styles.xml
@@ -15,7 +15,7 @@
   ~ limitations under the License
   -->
 <resources>
-  <style name="Theme.AppCompat.CallComposer" parent="Theme.AppCompat.NoActionBar">
+  <style name="Theme.AppCompat.CallComposer" parent="DialerThemeBase.NoActionBar">
     <item name="android:colorPrimaryDark">@color/dialer_theme_color_dark</item>
     <item name="android:windowBackground">@android:color/transparent</item>
     <item name="android:colorBackgroundCacheHint">@null</item>
diff --git a/java/com/android/dialer/calldetails/AndroidManifest.xml b/java/com/android/dialer/calldetails/AndroidManifest.xml
index adaac40..fd887c4 100644
--- a/java/com/android/dialer/calldetails/AndroidManifest.xml
+++ b/java/com/android/dialer/calldetails/AndroidManifest.xml
@@ -16,11 +16,11 @@
 <manifest
   xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.android.dialer.calldetails">
-  <application>
+  <application android:theme="@style/Theme.AppCompat">
     <activity
       android:label="@string/call_details"
       android:name="com.android.dialer.calldetails.CallDetailsActivity"
-      android:theme="@style/Theme.AppCompat.Light.NoActionBar">
+      android:theme="@style/DialerThemeBase.NoActionBar">
       <intent-filter>
         <action android:name="android.intent.action.VIEW"/>
         <category android:name="android.intent.category.DEFAULT"/>
diff --git a/java/com/android/dialer/calldetails/CallDetailsActivity.java b/java/com/android/dialer/calldetails/CallDetailsActivity.java
index 7eab951..4d5853f 100644
--- a/java/com/android/dialer/calldetails/CallDetailsActivity.java
+++ b/java/com/android/dialer/calldetails/CallDetailsActivity.java
@@ -29,12 +29,13 @@
 import android.support.v7.widget.Toolbar;
 import android.support.v7.widget.Toolbar.OnMenuItemClickListener;
 import android.view.MenuItem;
-import com.android.dialer.callcomposer.CallComposerContact;
 import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.concurrent.AsyncTaskExecutors;
+import com.android.dialer.dialercontact.DialerContact;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
+import com.android.dialer.postcall.PostCall;
 import com.android.dialer.protos.ProtoParsers;
 import java.util.List;
 
@@ -48,7 +49,7 @@
   private List<CallDetailsEntry> entries;
 
   public static Intent newInstance(
-      Context context, @NonNull CallDetailsEntries details, @NonNull CallComposerContact contact) {
+      Context context, @NonNull CallDetailsEntries details, @NonNull DialerContact contact) {
     Assert.isNotNull(details);
     Assert.isNotNull(contact);
 
@@ -70,14 +71,20 @@
   }
 
   @Override
+  protected void onResume() {
+    super.onResume();
+    PostCall.promptUserForMessageIfNecessary(this, findViewById(R.id.recycler_view));
+  }
+
+  @Override
   protected void onNewIntent(Intent intent) {
     super.onNewIntent(intent);
     onHandleIntent(intent);
   }
 
   private void onHandleIntent(Intent intent) {
-    CallComposerContact contact =
-        ProtoParsers.getTrusted(intent, EXTRA_CONTACT, CallComposerContact.getDefaultInstance());
+    DialerContact contact =
+        ProtoParsers.getTrusted(intent, EXTRA_CONTACT, DialerContact.getDefaultInstance());
     entries =
         ProtoParsers.getTrusted(
                 intent, EXTRA_CALL_DETAILS_ENTRIES, CallDetailsEntries.getDefaultInstance())
diff --git a/java/com/android/dialer/calldetails/CallDetailsAdapter.java b/java/com/android/dialer/calldetails/CallDetailsAdapter.java
index 7250779..d2fdbb4 100644
--- a/java/com/android/dialer/calldetails/CallDetailsAdapter.java
+++ b/java/com/android/dialer/calldetails/CallDetailsAdapter.java
@@ -22,26 +22,26 @@
 import android.support.v7.widget.RecyclerView.ViewHolder;
 import android.view.LayoutInflater;
 import android.view.ViewGroup;
-import com.android.dialer.callcomposer.CallComposerContact;
 import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry;
 import com.android.dialer.calllogutils.CallTypeHelper;
 import com.android.dialer.common.Assert;
+import com.android.dialer.dialercontact.DialerContact;
 import java.util.List;
 
 /** Adapter for RecyclerView in {@link CallDetailsActivity}. */
-public class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
+final class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
 
   private static final int HEADER_VIEW_TYPE = 1;
   private static final int CALL_ENTRY_VIEW_TYPE = 2;
   private static final int FOOTER_VIEW_TYPE = 3;
 
-  private final CallComposerContact contact;
+  private final DialerContact contact;
   private final List<CallDetailsEntry> callDetailsEntries;
   private final CallTypeHelper callTypeHelper;
 
-  public CallDetailsAdapter(
+  CallDetailsAdapter(
       Context context,
-      @NonNull CallComposerContact contact,
+      @NonNull DialerContact contact,
       @NonNull List<CallDetailsEntry> callDetailsEntries) {
     this.contact = Assert.isNotNull(contact);
     this.callDetailsEntries = callDetailsEntries;
@@ -62,8 +62,8 @@
         return new CallDetailsFooterViewHolder(
             inflater.inflate(R.layout.call_details_footer, parent, false));
       default:
-        Assert.fail("No ViewHolder available for viewType: " + viewType);
-        return null;
+        throw Assert.createIllegalStateFailException(
+            "No ViewHolder available for viewType: " + viewType);
     }
   }
 
diff --git a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
index 4d9aacf..1ddd2e7 100644
--- a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
+++ b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
@@ -25,11 +25,12 @@
 import android.widget.QuickContactBadge;
 import android.widget.TextView;
 import com.android.contacts.common.ContactPhotoManager;
-import com.android.dialer.callcomposer.CallComposerContact;
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallIntentBuilder;
 import com.android.dialer.common.Assert;
+import com.android.dialer.dialercontact.DialerContact;
 import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.InteractionEvent;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.util.DialerUtils;
 
@@ -43,20 +44,24 @@
   private final QuickContactBadge contactPhoto;
   private final Context context;
 
-  private CallComposerContact contact;
+  private DialerContact contact;
 
   CallDetailsHeaderViewHolder(View container) {
     super(container);
     context = container.getContext();
     callBackButton = container.findViewById(R.id.call_back_button);
-    nameView = (TextView) container.findViewById(R.id.contact_name);
-    numberView = (TextView) container.findViewById(R.id.phone_number);
-    contactPhoto = (QuickContactBadge) container.findViewById(R.id.quick_contact_photo);
+    nameView = container.findViewById(R.id.contact_name);
+    numberView = container.findViewById(R.id.phone_number);
+    contactPhoto = container.findViewById(R.id.quick_contact_photo);
+
     callBackButton.setOnClickListener(this);
+    Logger.get(context)
+        .logQuickContactOnTouch(
+            contactPhoto, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CALL_DETAILS, true);
   }
 
   /** Populates the contact info fields based on the current contact information. */
-  void updateContactInfo(CallComposerContact contact) {
+  void updateContactInfo(DialerContact contact) {
     this.contact = contact;
     ContactPhotoManager.getInstance(context)
         .loadDialerThumbnailOrPhoto(
@@ -98,7 +103,7 @@
           view.getContext(),
           new CallIntentBuilder(contact.getNumber(), CallInitiationType.Type.CALL_DETAILS).build());
     } else {
-      Assert.fail("View OnClickListener not implemented: " + view);
+      throw Assert.createIllegalStateFailException("View OnClickListener not implemented: " + view);
     }
   }
 }
diff --git a/java/com/android/dialer/calldetails/res/layout/contact_container.xml b/java/com/android/dialer/calldetails/res/layout/contact_container.xml
index bb89b36..d8d6e4e 100644
--- a/java/com/android/dialer/calldetails/res/layout/contact_container.xml
+++ b/java/com/android/dialer/calldetails/res/layout/contact_container.xml
@@ -56,6 +56,8 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginStart="@dimen/photo_text_margin"
+        android:ellipsize="end"
+        android:maxLines="1"
         style="@style/SecondaryText"/>
   </LinearLayout>
 
@@ -66,8 +68,8 @@
       android:layout_alignParentEnd="true"
       android:layout_centerVertical="true"
       android:background="?android:attr/selectableItemBackgroundBorderless"
-      android:contentDescription="@string/description_call_log_call_action"
+      android:contentDescription="@string/call"
       android:scaleType="center"
       android:src="@drawable/quantum_ic_call_white_24"
       android:tint="@color/secondary_text_color"/>
-</RelativeLayout>
+</RelativeLayout>
\ No newline at end of file
diff --git a/java/com/android/dialer/calldetails/res/values-af/strings.xml b/java/com/android/dialer/calldetails/res/values-af/strings.xml
index 86bef4b..74fbcd0 100644
--- a/java/com/android/dialer/calldetails/res/values-af/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-af/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Vee uit"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopieer nommer"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Wysig nommer voordat jy bel"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Bel"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Het \'n foto gestuur"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Het \'n foto ontvang"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-am/strings.xml b/java/com/android/dialer/calldetails/res/values-am/strings.xml
index 2a23945..4deaceb 100644
--- a/java/com/android/dialer/calldetails/res/values-am/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-am/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"ሰርዝ"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"ቁጥር ቅዳ"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ከመደወል በፊት ቁጥር አርትዕ ያድርጉ"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"ጥሪ"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"አንድ ፎቶ ተልኳል"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"አንድ ፎቶ ደርሷል"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ar/strings.xml b/java/com/android/dialer/calldetails/res/values-ar/strings.xml
index 6b0d8a7..11a80e9 100644
--- a/java/com/android/dialer/calldetails/res/values-ar/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ar/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"حذف"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"نسخ الرقم"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"تعديل الرقم قبل الاتصال"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"الاتصال"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"تم إرسال صورة"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"تم تلقي صورة"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-az/strings.xml b/java/com/android/dialer/calldetails/res/values-az/strings.xml
index 479837c..6710966 100644
--- a/java/com/android/dialer/calldetails/res/values-az/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-az/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Silin"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Nömrəni kopyalayın"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Zəng etmədən öncə nömrəyə düzəliş edin"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Zəng edin"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Foto göndərildi"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Foto alındı"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml
index 01141ff..a08c4ed 100644
--- a/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Izbriši"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiraj broj"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Izmenite broj pre poziva"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Pozovi"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Slika je poslata"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Slika je primljena"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-be/strings.xml b/java/com/android/dialer/calldetails/res/values-be/strings.xml
index 683f29b..3997fb2 100644
--- a/java/com/android/dialer/calldetails/res/values-be/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-be/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Выдаліць"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Скапіраваць нумар"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Рэдагаваць нумар перад выклікам"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Выклік"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Адпраўлена фота"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Атрымана фота"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-bg/strings.xml b/java/com/android/dialer/calldetails/res/values-bg/strings.xml
index 9cd70e2..2354517 100644
--- a/java/com/android/dialer/calldetails/res/values-bg/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-bg/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Изтриване"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Копиране на номера"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Редактиране на номера преди обаждане"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Обаждане"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Изпратена бе снимка"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Получена бе снимка"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-bn/strings.xml b/java/com/android/dialer/calldetails/res/values-bn/strings.xml
index 148f61a..0667152 100644
--- a/java/com/android/dialer/calldetails/res/values-bn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-bn/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"মুছুন"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"নম্বর কপি করুন"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"কল করার আগে নম্বর সম্পাদন করুন"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"কল করুন"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"একটি ফটো পাঠিয়েছেন"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"একটি ফটো পেয়েছেন"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-bs/strings.xml b/java/com/android/dialer/calldetails/res/values-bs/strings.xml
index 6f164b2..305a413 100644
--- a/java/com/android/dialer/calldetails/res/values-bs/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-bs/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Izbriši"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiraj broj"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Uredi broj prije poziva"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Poziv"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Fotografija poslana"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Fotografija primljena"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ca/strings.xml b/java/com/android/dialer/calldetails/res/values-ca/strings.xml
index 0e33e60..6d5092e 100644
--- a/java/com/android/dialer/calldetails/res/values-ca/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ca/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Suprimeix"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copia el número"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Edita el número abans de trucar"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Truca"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"S\'ha enviat una foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"S\'ha rebut una foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"<xliff:g id="MESSAGE">%1$s</xliff:g>"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-cs/strings.xml b/java/com/android/dialer/calldetails/res/values-cs/strings.xml
index 9747ee1..bec5bab 100644
--- a/java/com/android/dialer/calldetails/res/values-cs/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-cs/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Smazat"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopírovat číslo"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Před voláním upravit číslo"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Zavolat"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Byla poslána fotka"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Byla přijata fotka"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-da/strings.xml b/java/com/android/dialer/calldetails/res/values-da/strings.xml
index 41bc252..cfc4ad1 100644
--- a/java/com/android/dialer/calldetails/res/values-da/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-da/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Slet"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiér nummer"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Rediger nummer før opkald"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring op"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Der blev sendt et billede"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Der blev modtaget et billede"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-de/strings.xml b/java/com/android/dialer/calldetails/res/values-de/strings.xml
index 014666b..6443924 100644
--- a/java/com/android/dialer/calldetails/res/values-de/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-de/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Löschen"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Nummer kopieren"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Nummer vor Anruf bearbeiten"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Anrufen"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Hat ein Foto gesendet"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Hat ein Foto empfangen"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-el/strings.xml b/java/com/android/dialer/calldetails/res/values-el/strings.xml
index 6b51fc7..04c850e 100644
--- a/java/com/android/dialer/calldetails/res/values-el/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-el/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Διαγραφή"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Αντιγραφή αριθμού"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Επεξεργασία αριθμού πριν από την κλήση"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Κλήση"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Έγινε αποστολή φωτογραφίας"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Έγινε λήψη φωτογραφίας"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml b/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml
index 2d5210e..5f4f559 100644
--- a/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Delete"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copy number"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Edit number before call"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Call"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Sent a photo"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Received a photo"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml b/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml
index 2d5210e..5f4f559 100644
--- a/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Delete"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copy number"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Edit number before call"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Call"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Sent a photo"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Received a photo"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml b/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml
index 2d5210e..5f4f559 100644
--- a/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Delete"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copy number"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Edit number before call"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Call"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Sent a photo"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Received a photo"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml b/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml
index d9db282..8986534 100644
--- a/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Borrar"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de llamar"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Llamar"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Enviaste una foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Recibiste una foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-es/strings.xml b/java/com/android/dialer/calldetails/res/values-es/strings.xml
index e72e898..ad581b4 100644
--- a/java/com/android/dialer/calldetails/res/values-es/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-es/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Eliminar"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de llamar"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Llamar"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Se ha enviado una foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Se ha recibido una foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-et/strings.xml b/java/com/android/dialer/calldetails/res/values-et/strings.xml
index 496459d..9190b28 100644
--- a/java/com/android/dialer/calldetails/res/values-et/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-et/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Kustuta"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopeeri number"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Muuda numbrit enne helistamist"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Kõne"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Saatis foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Sai foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-eu/strings.xml b/java/com/android/dialer/calldetails/res/values-eu/strings.xml
index 913082f..a8c48cf 100644
--- a/java/com/android/dialer/calldetails/res/values-eu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-eu/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Ezabatu"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiatu zenbakia"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Editatu zenbakia deitu aurretik"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Deia"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Argazki bat bidali duzu"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Argazki bat jaso duzu"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-fa/strings.xml b/java/com/android/dialer/calldetails/res/values-fa/strings.xml
index cad85a2..d02591b 100644
--- a/java/com/android/dialer/calldetails/res/values-fa/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fa/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"حذف"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"کپی کردن شماره"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ویرایش شماره قبل از تماس"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"تماس"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"عکسی ارسال کرد"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"عکسی دریافت کرد"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-fi/strings.xml b/java/com/android/dialer/calldetails/res/values-fi/strings.xml
index c16110d..3b409ed 100644
--- a/java/com/android/dialer/calldetails/res/values-fi/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fi/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Poista"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopioi numero"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Muokkaa numeroa ennen puhelua"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Soita"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Lähetetty kuva"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Vastaanotettu kuva"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml b/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml
index 676861f..7b88bdd 100644
--- a/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Supprimer"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copier le numéro"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Modifier le numéro avant de passer l\'appel"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Appeler"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Photo envoyée"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Photo reçue"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"« <xliff:g id="MESSAGE">%1$s</xliff:g> »"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-fr/strings.xml b/java/com/android/dialer/calldetails/res/values-fr/strings.xml
index 606cb10..8319a2c 100644
--- a/java/com/android/dialer/calldetails/res/values-fr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fr/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Supprimer"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copier le numéro"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Modifier le numéro avant d\'appeler"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Appeler"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Envoi d\'une photo"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Réception d\'une photo"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-gl/strings.xml b/java/com/android/dialer/calldetails/res/values-gl/strings.xml
index aa5ff14..f7aa166 100644
--- a/java/com/android/dialer/calldetails/res/values-gl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-gl/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Eliminar"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de chamar"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Chamar"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Enviouse unha foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Recibiuse unha foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-gu/strings.xml b/java/com/android/dialer/calldetails/res/values-gu/strings.xml
index ccb8755..03e402e 100644
--- a/java/com/android/dialer/calldetails/res/values-gu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-gu/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"કાઢી નાખો"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"નંબર કૉપિ કરો"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"કૉલ કરતાં પહેલાં નંબર સંપાદિત કરો"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"કૉલ કરો"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"એક ફોટો મોકલ્યો"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"એક ફોટો પ્રાપ્ત કર્યો"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-hi/strings.xml b/java/com/android/dialer/calldetails/res/values-hi/strings.xml
index 517fbe5..3e46920 100644
--- a/java/com/android/dialer/calldetails/res/values-hi/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hi/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"हटाएं"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"नंबर कॉपी करें"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"कॉल करने से पहले नंबर संपादित करें"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"कॉल करें"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"फ़ोटो भेजी गई"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"फ़ोटो मिली"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-hr/strings.xml b/java/com/android/dialer/calldetails/res/values-hr/strings.xml
index 687a65e..c1cc360 100644
--- a/java/com/android/dialer/calldetails/res/values-hr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hr/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Brisanje"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiranje broja"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Uređivanje broja prije poziva"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Poziv"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Šalje fotografiju"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Prima fotografiju"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-hu/strings.xml b/java/com/android/dialer/calldetails/res/values-hu/strings.xml
index 66863e8..298c10e 100644
--- a/java/com/android/dialer/calldetails/res/values-hu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hu/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Törlés"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Szám másolása"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Szám szerkesztése hívás előtt"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefonhívás"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Küldött egy fotót"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Kapott egy fotót"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-hy/strings.xml b/java/com/android/dialer/calldetails/res/values-hy/strings.xml
index a1e84e9..ab44622 100644
--- a/java/com/android/dialer/calldetails/res/values-hy/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hy/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Ջնջել"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Պատճենել համարը"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Փոփոխել համարը զանգելուց առաջ"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Զանգ"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Ուղարկվել է լուսանկար"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Ստացվել է լուսանկար"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-in/strings.xml b/java/com/android/dialer/calldetails/res/values-in/strings.xml
index ba58ba0..68ced55 100644
--- a/java/com/android/dialer/calldetails/res/values-in/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-in/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Hapus"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Salin nomor"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Edit nomor sebelum menelepon"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Telepon"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Mengirim foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Menerima foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-is/strings.xml b/java/com/android/dialer/calldetails/res/values-is/strings.xml
index 0770814..667ebd6 100644
--- a/java/com/android/dialer/calldetails/res/values-is/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-is/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Eyða"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Afrita númer"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Breyta númeri áður en hringt er"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Hringja"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Sendi mynd"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Tók á móti mynd"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-it/strings.xml b/java/com/android/dialer/calldetails/res/values-it/strings.xml
index 97af251..4f159d5 100644
--- a/java/com/android/dialer/calldetails/res/values-it/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-it/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Elimina"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copia numero"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Modifica numero prima di chiamare"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Chiama"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Foto inviata"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Foto ricevuta"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-iw/strings.xml b/java/com/android/dialer/calldetails/res/values-iw/strings.xml
index 329eded..87c6fed 100644
--- a/java/com/android/dialer/calldetails/res/values-iw/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-iw/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"מחק"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"העתק את המספר"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ערוך את המספר לפני השיחה"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"התקשר"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"נשלחה תמונה"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"התקבלה תמונה"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ja/strings.xml b/java/com/android/dialer/calldetails/res/values-ja/strings.xml
index 7aef345..d3a15d4 100644
--- a/java/com/android/dialer/calldetails/res/values-ja/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ja/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"削除"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"電話番号をコピー"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"発信前に電話番号を編集"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"発信"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"写真を送信しました"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"写真を受信しました"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"「<xliff:g id="MESSAGE">%1$s</xliff:g>」"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ka/strings.xml b/java/com/android/dialer/calldetails/res/values-ka/strings.xml
index 1cd7bc2..66f1928 100644
--- a/java/com/android/dialer/calldetails/res/values-ka/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ka/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"წაშლა"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"ნომრის კოპირება"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ნომრის რედაქტირება დარეკვამდე"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"დარეკვა"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ფოტო გაიგზავნა"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"მიღებულია ფოტო"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-kk/strings.xml b/java/com/android/dialer/calldetails/res/values-kk/strings.xml
index 1923cf7..c3903e1 100644
--- a/java/com/android/dialer/calldetails/res/values-kk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-kk/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Жою"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Нөмірді көшіру"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Нөмірді қоңырау шалуға дейін өзгерту"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Қоңырау шалу"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Сурет жіберілді"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Сурет қабылданды"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-km/strings.xml b/java/com/android/dialer/calldetails/res/values-km/strings.xml
index e047279..240e28a 100644
--- a/java/com/android/dialer/calldetails/res/values-km/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-km/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"លុប"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"ថតចម្លងលេខទូរសព្ទ"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"កែ​លេខ​ មុន​ពេល​ហៅទូរសព្ទ"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"ហៅទូរសព្ទ"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"បានផ្ញើរូបថត"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"បាន​ទទួល​រូបថត"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-kn/strings.xml b/java/com/android/dialer/calldetails/res/values-kn/strings.xml
index 66c0d63..a833ffc 100644
--- a/java/com/android/dialer/calldetails/res/values-kn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-kn/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"ಅಳಿಸಿ"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"ಸಂಖ್ಯೆಯನ್ನು ನಕಲಿಸಿ"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ಕರೆ ಮಾಡುವ ಮೊದಲು ಸಂಖ್ಯೆಯನ್ನು ಎಡಿಟ್ ಮಾಡಿ"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"ಕರೆಮಾಡಿ"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ಫೋಟೋ ಕಳುಹಿಸಲಾಗಿದೆ"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ಫೋಟೋ ಸ್ವೀಕರಿಸಲಾಗಿದೆ"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ko/strings.xml b/java/com/android/dialer/calldetails/res/values-ko/strings.xml
index 35c5038..700c360 100644
--- a/java/com/android/dialer/calldetails/res/values-ko/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ko/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"삭제"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"전화번호 복사"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"통화하기 전에 번호 수정"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"전화걸기"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"사진 전송됨"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"사진 수신됨"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\'<xliff:g id="MESSAGE">%1$s</xliff:g>\'"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ky/strings.xml b/java/com/android/dialer/calldetails/res/values-ky/strings.xml
index fe37b33..08546c8 100644
--- a/java/com/android/dialer/calldetails/res/values-ky/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ky/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Жок кылуу"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Номерди көчүрүү"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Чалуудан мурун номерди түзөтүү"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Чалуу"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Сүрөт жөнөтүлдү"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Сүрөт алынды"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-lo/strings.xml b/java/com/android/dialer/calldetails/res/values-lo/strings.xml
index 85b636a..8f099e8 100644
--- a/java/com/android/dialer/calldetails/res/values-lo/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-lo/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"​ລຶບ"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"ສຳເນົາເບີໂທ"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ແກ້ໄຂເບີກ່ອນໂທ"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"ໂທ"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ສົ່ງຮູບພາບ"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ໄດ້ຮັບຮູບພາບແລ້ວ"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-lt/strings.xml b/java/com/android/dialer/calldetails/res/values-lt/strings.xml
index 9c8ad7b..62d89f5 100644
--- a/java/com/android/dialer/calldetails/res/values-lt/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-lt/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Ištrinti"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopijuoti numerį"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Redaguoti numerį prieš skambinant"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Skambinti"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Išsiuntė nuotrauką"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Gavo nuotrauką"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-lv/strings.xml b/java/com/android/dialer/calldetails/res/values-lv/strings.xml
index d878393..3625649 100644
--- a/java/com/android/dialer/calldetails/res/values-lv/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-lv/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Dzēst"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopēt numuru"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Rediģēt numuru pirms zvanīšanas"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Zvanīt"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Nosūtīja fotoattēlu"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Saņēma fotoattēlu"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"“<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-mk/strings.xml b/java/com/android/dialer/calldetails/res/values-mk/strings.xml
index 9388ae0..6d1fd71 100644
--- a/java/com/android/dialer/calldetails/res/values-mk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-mk/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Избриши"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Копирај го бројот"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Измени го бројот пред повикот"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Повикај"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Испрати фотографија"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Прими фотографија"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ml/strings.xml b/java/com/android/dialer/calldetails/res/values-ml/strings.xml
index d296911..fbafb88 100644
--- a/java/com/android/dialer/calldetails/res/values-ml/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ml/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"ഇല്ലാതാക്കുക"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"നമ്പർ പകർത്തുക"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"കോൾ ചെയ്യുന്നതിന് മുമ്പായി നമ്പർ എഡിറ്റുചെയ്യുക"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"കോള്‍ ചെയ്യുക"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ഒരു ഫോട്ടോ അയച്ചു"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ഒരു ഫോട്ടോ ലഭിച്ചു"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-mn/strings.xml b/java/com/android/dialer/calldetails/res/values-mn/strings.xml
index cb264e0..10b5d96 100644
--- a/java/com/android/dialer/calldetails/res/values-mn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-mn/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Устгах"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Дугаар хуулах"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Залгахын өмнө дугаар засах"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Залгах"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Зураг илгээсэн"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Зураг хүлээн авсан"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-mr/strings.xml b/java/com/android/dialer/calldetails/res/values-mr/strings.xml
index 5c31e36..5644664 100644
--- a/java/com/android/dialer/calldetails/res/values-mr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-mr/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"हटवा"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"नंबर कॉपी करा"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"कॉल करण्यापूर्वी नंबर संपादित करा"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"कॉल करा"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"एक फोटो पाठविला"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"एक फोटो प्राप्त झाला"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ms/strings.xml b/java/com/android/dialer/calldetails/res/values-ms/strings.xml
index da17d6e..157198d 100644
--- a/java/com/android/dialer/calldetails/res/values-ms/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ms/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Padam"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Salin nombor"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Edit nombor sebelum panggilan"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Panggil"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Menghantar foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Foto diterima"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-my/strings.xml b/java/com/android/dialer/calldetails/res/values-my/strings.xml
index 75508d8..bf3f90b 100644
--- a/java/com/android/dialer/calldetails/res/values-my/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-my/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"ဖျက်ရန်"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"နံပါတ်ကိုကူးယူရန်"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"မခေါ်ဆိုမီ နံပါတ်ကိုပြင်ဆင်ရန်"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"ခေါ်ဆိုရန်"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ဓာတ်ပုံ ပို့လိုက်သည်"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ဓာတ်ပုံ လက်ခံရရှိသည်"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-nb/strings.xml b/java/com/android/dialer/calldetails/res/values-nb/strings.xml
index 022025f..609c8af 100644
--- a/java/com/android/dialer/calldetails/res/values-nb/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-nb/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Slett"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiér nummeret"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Rediger nummeret før du ringer"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Et bilde ble sendt"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Et bilde ble mottatt"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ne/strings.xml b/java/com/android/dialer/calldetails/res/values-ne/strings.xml
index 8fe355b..6b60967 100644
--- a/java/com/android/dialer/calldetails/res/values-ne/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ne/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"मेट्नुहोस्"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"नम्बर प्रतिलिपि गर्नुहोस्"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"कल गर्नु अघि नम्बर सम्पादन गर्नुहोस्"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"कल"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"एउटा तस्बिर पठाइयो"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"एउटा तस्बिर प्राप्त भयो"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-nl/strings.xml b/java/com/android/dialer/calldetails/res/values-nl/strings.xml
index 71657b8..f5efb1a 100644
--- a/java/com/android/dialer/calldetails/res/values-nl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-nl/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Verwijderen"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Nummer kopiëren"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Nummer bewerken vóór bellen"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Bellen"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Foto verzonden"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Foto ontvangen"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\'<xliff:g id="MESSAGE">%1$s</xliff:g>\'"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-no/strings.xml b/java/com/android/dialer/calldetails/res/values-no/strings.xml
index 022025f..609c8af 100644
--- a/java/com/android/dialer/calldetails/res/values-no/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-no/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Slett"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiér nummeret"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Rediger nummeret før du ringer"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Et bilde ble sendt"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Et bilde ble mottatt"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pa/strings.xml b/java/com/android/dialer/calldetails/res/values-pa/strings.xml
index d4f1759..8a9ec1f 100644
--- a/java/com/android/dialer/calldetails/res/values-pa/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pa/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"ਮਿਟਾਓ"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"ਨੰਬਰ ਕਾਪੀ ਕਰੋ"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ਕਾਲ ਤੋਂ ਪਹਿਲਾਂ ਨੰਬਰ ਸੰਪਾਦਿਤ ਕਰੋ"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"ਕਾਲ ਕਰੋ"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ਇੱਕ ਫ਼ੋਟੋ ਭੇਜੀ ਗਈ"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ਇੱਕ ਫ਼ੋਟੋ ਪ੍ਰਾਪਤ ਹੋਈ"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pl/strings.xml b/java/com/android/dialer/calldetails/res/values-pl/strings.xml
index 9644600..1a342b0 100644
--- a/java/com/android/dialer/calldetails/res/values-pl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pl/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Usuń"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiuj numer"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Edytuj numer, zanim zadzwonisz"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Zadzwoń"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Wysłano zdjęcie"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Odebrano zdjęcie"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml b/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml
index 467973d..7abc8be 100644
--- a/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Excluir"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de ligar"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Ligar"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Enviou uma foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Recebeu uma foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml b/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml
index cfbbc02..5e6dae8 100644
--- a/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Eliminar"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Editar o número antes de efetuar a chamada"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefonar"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Enviou uma foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Recebeu uma foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pt/strings.xml b/java/com/android/dialer/calldetails/res/values-pt/strings.xml
index 467973d..7abc8be 100644
--- a/java/com/android/dialer/calldetails/res/values-pt/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pt/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Excluir"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de ligar"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Ligar"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Enviou uma foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Recebeu uma foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ro/strings.xml b/java/com/android/dialer/calldetails/res/values-ro/strings.xml
index e9281ae..3a6447b 100644
--- a/java/com/android/dialer/calldetails/res/values-ro/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ro/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Ștergeți"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Copiați numărul"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Modificați numărul înainte de apelare"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Apelați"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"A fost trimisă o fotografie."</string>
     <string name="received_a_photo" msgid="3528953225576480505">"A fost primită o fotografie."</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ru/strings.xml b/java/com/android/dialer/calldetails/res/values-ru/strings.xml
index bf981e2..b071dc6 100644
--- a/java/com/android/dialer/calldetails/res/values-ru/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ru/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Удалить"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Скопировать номер"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Изменить номер перед вызовом"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Позвонить"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Отправлена фотография"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Получена фотография"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-si/strings.xml b/java/com/android/dialer/calldetails/res/values-si/strings.xml
index 5fdca0d..999183b 100644
--- a/java/com/android/dialer/calldetails/res/values-si/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-si/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"මකන්න"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"අංකය පිටපත් කරන්න"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"ඇමතුමට පෙර අංකය සංස්කරණය කරන්න"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"අමතන්න"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ඡායාරූපයක් යැවිණි"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ඡායාරූපයක් ලැබිණි"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sk/strings.xml b/java/com/android/dialer/calldetails/res/values-sk/strings.xml
index db04787..57b90cf 100644
--- a/java/com/android/dialer/calldetails/res/values-sk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sk/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Odstrániť"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopírovať číslo"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Pred volaním upraviť číslo"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Volať"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Bola odoslaná fotka"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Bola prijatá fotka"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sl/strings.xml b/java/com/android/dialer/calldetails/res/values-sl/strings.xml
index 98975f4..83ffcbb 100644
--- a/java/com/android/dialer/calldetails/res/values-sl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sl/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Izbriši"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiraj številko"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Pred klicanjem uredi številko"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Pokliči"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Poslana fotografija"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Prejeta fotografija"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"»<xliff:g id="MESSAGE">%1$s</xliff:g>«"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sq/strings.xml b/java/com/android/dialer/calldetails/res/values-sq/strings.xml
index dd9915d..d05770f 100644
--- a/java/com/android/dialer/calldetails/res/values-sq/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sq/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Fshi"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopjo numrin"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Redakto numrin para telefonatës"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefono"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"U dërgua një fotografi"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"U mor një fotografi"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sr/strings.xml b/java/com/android/dialer/calldetails/res/values-sr/strings.xml
index 7f4005d..a1294df 100644
--- a/java/com/android/dialer/calldetails/res/values-sr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sr/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Избриши"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Копирај број"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Измените број пре позива"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Позови"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Слика је послата"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Слика је примљена"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sv/strings.xml b/java/com/android/dialer/calldetails/res/values-sv/strings.xml
index 3967b4f..9b2e25e 100644
--- a/java/com/android/dialer/calldetails/res/values-sv/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sv/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Radera"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopiera nummer"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Redigera nummer före samtal"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Skickade ett foto"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Tog emot ett foto"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"<xliff:g id="MESSAGE">%1$s</xliff:g>"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sw/strings.xml b/java/com/android/dialer/calldetails/res/values-sw/strings.xml
index e5df823..b767337 100644
--- a/java/com/android/dialer/calldetails/res/values-sw/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sw/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Futa"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Nakili nambari"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Hariri nambari kabla ya kupiga"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Piga simu"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Picha imetumwa"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Picha imepokelewa"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ta/strings.xml b/java/com/android/dialer/calldetails/res/values-ta/strings.xml
index 840ad87..51ff04f 100644
--- a/java/com/android/dialer/calldetails/res/values-ta/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ta/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"நீக்கு"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"எண்ணை நகலெடு"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"அழைப்பதற்கு முன் எண்ணைத் திருத்து"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"அழை"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"படம் அனுப்பப்பட்டது"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"படம் பெறப்பட்டது"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-te/strings.xml b/java/com/android/dialer/calldetails/res/values-te/strings.xml
index 3054444..1d44e55 100644
--- a/java/com/android/dialer/calldetails/res/values-te/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-te/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"తొలగించు"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"నంబర్‌ను కాపీ చేయి"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"కాల్ చేసే ముందు నంబర్‌ను సవరించు"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"కాల్ చేయి"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ఫోటో పంపబడింది"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ఫోటో స్వీకరించబడింది"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-th/strings.xml b/java/com/android/dialer/calldetails/res/values-th/strings.xml
index c565eba..3fe88f9 100644
--- a/java/com/android/dialer/calldetails/res/values-th/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-th/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"ลบ"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"คัดลอกหมายเลข"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"แก้ไขหมายเลขก่อนโทร"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"โทร"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ส่งรูปภาพแล้ว"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ได้รับรูปภาพแล้ว"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-tl/strings.xml b/java/com/android/dialer/calldetails/res/values-tl/strings.xml
index 81c148e..91fb3be 100644
--- a/java/com/android/dialer/calldetails/res/values-tl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-tl/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"I-delete"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopyahin ang numero"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"I-edit ang numero bago tumawag"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Tumawag"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Nagpadala ng larawan"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Nakatanggap ng larawan"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-tr/strings.xml b/java/com/android/dialer/calldetails/res/values-tr/strings.xml
index ade4018..f84d0b3 100644
--- a/java/com/android/dialer/calldetails/res/values-tr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-tr/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Sil"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Numarayı kopyala"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Telefon etmeden önce numarayı düzenleyin"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefon eder"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Bir fotoğraf gönderildi"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Bir fotoğraf alındı"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-uk/strings.xml b/java/com/android/dialer/calldetails/res/values-uk/strings.xml
index 6538d66..bf6e0ac 100644
--- a/java/com/android/dialer/calldetails/res/values-uk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-uk/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Видалити"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Копіювати номер"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Редагувати номер перед дзвінком"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Виклик"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Надіслано фотографію"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Отримано фотографію"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ur/strings.xml b/java/com/android/dialer/calldetails/res/values-ur/strings.xml
index 90c3a59..5a22869 100644
--- a/java/com/android/dialer/calldetails/res/values-ur/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ur/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"حذف کریں"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"نمبر کاپی کریں"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"کال کرنے سے پہلے نمبر میں ترمیم کریں"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"کال"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"ایک تصویر بھیجی"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"ایک تصویر موصول ہوئی"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-uz/strings.xml b/java/com/android/dialer/calldetails/res/values-uz/strings.xml
index 7b443ca..890b7ae 100644
--- a/java/com/android/dialer/calldetails/res/values-uz/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-uz/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"O‘chirib tashlash"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Raqamni nusxalash"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Qo‘ng‘iroq qilishdan oldin raqamni tahrirlash"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Qo‘ng‘iroq qilish"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Rasm yuborildi"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Rasm qabul qilindi"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"“<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-vi/strings.xml b/java/com/android/dialer/calldetails/res/values-vi/strings.xml
index 7a95021..b589632 100644
--- a/java/com/android/dialer/calldetails/res/values-vi/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-vi/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Xóa"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Sao chép số"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Chỉnh sửa số trước khi gọi"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Gọi"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Đã gửi một ảnh"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Đã nhận một ảnh"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml b/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml
index aad695a..7b8b972 100644
--- a/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"删除"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"复制号码"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"拨打电话之前修改号码"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"拨打电话"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"发送了一张照片"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"收到了一张照片"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"“<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml b/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml
index eb5b606..8771098 100644
--- a/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"刪除"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"複製號碼"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"在撥打前編輯號碼"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"通話"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"已傳送相片"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"已收到相片"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"「<xliff:g id="MESSAGE">%1$s</xliff:g>」"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml b/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml
index fd426c0..73aba80 100644
--- a/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"刪除"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"複製號碼"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"撥打電話前編輯號碼"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"撥號"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"傳送了 1 張相片"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"收到了 1 張相片"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"「<xliff:g id="MESSAGE">%1$s</xliff:g>」"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-zu/strings.xml b/java/com/android/dialer/calldetails/res/values-zu/strings.xml
index d41d1f5..94040ce 100644
--- a/java/com/android/dialer/calldetails/res/values-zu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-zu/strings.xml
@@ -21,7 +21,6 @@
     <string name="delete" msgid="2141020674108406737">"Susa"</string>
     <string name="call_details_copy_number" msgid="4265479408878990796">"Kopisha inombolo"</string>
     <string name="call_details_edit_number" msgid="8718476514903513624">"Hlela inombolo ngaphambi kokushaya ucingo"</string>
-    <string name="description_call_log_call_action" msgid="1421313064764221900">"Shaya"</string>
     <string name="sent_a_photo" msgid="3978670717462979502">"Uthumele isithombe"</string>
     <string name="received_a_photo" msgid="3528953225576480505">"Uthole isithombe"</string>
     <string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values/dimens.xml b/java/com/android/dialer/calldetails/res/values/dimens.xml
index f85d02f..91bf70e 100644
--- a/java/com/android/dialer/calldetails/res/values/dimens.xml
+++ b/java/com/android/dialer/calldetails/res/values/dimens.xml
@@ -15,8 +15,6 @@
   ~ limitations under the License
   -->
 <resources>
-  <dimen name="call_details_primary_text_size">16sp</dimen>
-  <dimen name="call_details_secondary_text_size">14sp</dimen>
   <dimen name="call_details_top_margin">6dp</dimen>
 
   <!-- contact container -->
diff --git a/java/com/android/dialer/calldetails/res/values/strings.xml b/java/com/android/dialer/calldetails/res/values/strings.xml
index 4471605..6b3b179 100644
--- a/java/com/android/dialer/calldetails/res/values/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values/strings.xml
@@ -27,10 +27,6 @@
   <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
   <string name="call_details_edit_number">Edit number before call</string>
 
-  <!-- String describing the phone icon on a call log list item. When tapped, it will place a
-       call to the number represented by that call log entry. [CHAR LIMIT=NONE]-->
-  <string name="description_call_log_call_action">Call</string>
-
   <!-- String shown when the call details show a image that was sent -->
   <string name="sent_a_photo">Sent a photo</string>
 
diff --git a/java/com/android/dialer/calldetails/res/values/styles.xml b/java/com/android/dialer/calldetails/res/values/styles.xml
index 4fffe1a..1a2b529 100644
--- a/java/com/android/dialer/calldetails/res/values/styles.xml
+++ b/java/com/android/dialer/calldetails/res/values/styles.xml
@@ -15,24 +15,6 @@
   ~ limitations under the License
   -->
 <resources>
-  <style name="PrimaryText">
-    <item name="android:textColor">#DE000000</item>
-    <item name="android:textSize">@dimen/call_details_primary_text_size</item>
-    <item name="android:maxLines">1</item>
-  </style>
-
-  <style name="SecondaryText">
-    <item name="android:textColor">#8A000000</item>
-    <item name="android:textSize">@dimen/call_details_secondary_text_size</item>
-    <item name="android:maxLines">1</item>
-  </style>
-
-  <style name="ECText">
-    <item name="android:textColor">#8A000000</item>
-    <item name="android:textSize">@dimen/call_details_ec_text_size</item>
-    <item name="android:maxLines">1</item>
-  </style>
-
   <style name="CallDetailsActionItemStyle">
     <item name="android:foreground">?android:attr/selectableItemBackground</item>
     <item name="android:clickable">true</item>
diff --git a/java/com/android/dialer/callintent/call_specific_app_data.proto b/java/com/android/dialer/callintent/call_specific_app_data.proto
index 20ffc1f..c62006d 100644
--- a/java/com/android/dialer/callintent/call_specific_app_data.proto
+++ b/java/com/android/dialer/callintent/call_specific_app_data.proto
@@ -7,6 +7,7 @@
 package com.android.dialer.callintent;
 
 import "java/com/android/dialer/callintent/call_initiation_type.proto";
+import "java/com/android/dialer/callintent/speed_dial_contact_type.proto";
 
 // Miscellaneous data that's included in a new outgoing call initiated by
 // Dialer. The system will pass this data to the InCallUi which can use it
@@ -17,4 +18,7 @@
   optional int32 position_of_selected_search_result = 2;
 
   optional int32 characters_in_search_string = 3;
+
+  repeated SpeedDialContactType.Type speed_dial_contact_type = 4;
+  optional int32 speed_dial_contact_position = 5;
 }
diff --git a/java/com/android/dialer/callintent/speed_dial_contact_type.proto b/java/com/android/dialer/callintent/speed_dial_contact_type.proto
new file mode 100644
index 0000000..d352f45
--- /dev/null
+++ b/java/com/android/dialer/callintent/speed_dial_contact_type.proto
@@ -0,0 +1,18 @@
+syntax = "proto2";
+
+option java_package = "com.android.dialer.callintent";
+option java_multiple_files = true;
+
+package com.android.dialer.callintent;
+option optimize_for = LITE_RUNTIME;
+
+// The type of speed call contact (favorites). Applies to initiation type
+// SPEED_DIAL only.
+message SpeedDialContactType {
+  enum Type {
+    UNDEFINED = 0;
+    PINNED_CONTACT = 1;
+    STARRED_CONTACT = 2;
+    FREQUENT_CONTACT = 3;
+  }
+}
diff --git a/java/com/android/dialer/calllog/CallLogComponent.java b/java/com/android/dialer/calllog/CallLogComponent.java
index 5cdd2b4..c7db2a1 100644
--- a/java/com/android/dialer/calllog/CallLogComponent.java
+++ b/java/com/android/dialer/calllog/CallLogComponent.java
@@ -25,6 +25,8 @@
 
   public abstract CallLogFramework callLogFramework();
 
+  public abstract RefreshAnnotatedCallLogWorker getRefreshAnnotatedCallLogWorker();
+
   public static CallLogComponent get(Context context) {
     return ((HasComponent) ((HasRootComponent) context.getApplicationContext()).component())
         .callLogComponent();
diff --git a/java/com/android/dialer/calllog/CallLogFramework.java b/java/com/android/dialer/calllog/CallLogFramework.java
index 508413b..55ef15b 100644
--- a/java/com/android/dialer/calllog/CallLogFramework.java
+++ b/java/com/android/dialer/calllog/CallLogFramework.java
@@ -22,6 +22,7 @@
 import android.support.annotation.MainThread;
 import android.support.annotation.Nullable;
 import com.android.dialer.calllog.datasources.CallLogDataSource;
+import com.android.dialer.calllog.datasources.DataSources;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
@@ -38,7 +39,6 @@
 public final class CallLogFramework implements CallLogDataSource.ContentObserverCallbacks {
 
   static final String PREF_FORCE_REBUILD = "callLogFrameworkForceRebuild";
-  static final String PREF_LAST_REBUILD_TIMESTAMP_MILLIS = "callLogFrameworkLastRebuild";
 
   private final DataSources dataSources;
 
@@ -58,6 +58,7 @@
     LogUtil.enterBlock("CallLogFramework.registerContentObservers");
 
     if (!isNewCallLogEnabled(appContext)) {
+      LogUtil.i("CallLogFramework.registerContentObservers", "new call log not enabled");
       return;
     }
 
diff --git a/java/com/android/dialer/calllog/CallLogModule.java b/java/com/android/dialer/calllog/CallLogModule.java
index d7473a7..2f2f16d 100644
--- a/java/com/android/dialer/calllog/CallLogModule.java
+++ b/java/com/android/dialer/calllog/CallLogModule.java
@@ -17,11 +17,9 @@
 package com.android.dialer.calllog;
 
 import com.android.dialer.calllog.datasources.CallLogDataSource;
+import com.android.dialer.calllog.datasources.DataSources;
 import com.android.dialer.calllog.datasources.contacts.ContactsDataSource;
 import com.android.dialer.calllog.datasources.systemcalllog.SystemCallLogDataSource;
-import com.android.dialer.common.concurrent.DefaultDialerExecutorFactory;
-import com.android.dialer.common.concurrent.DialerExecutorFactory;
-import dagger.Binds;
 import dagger.Module;
 import dagger.Provides;
 import java.util.Arrays;
@@ -32,10 +30,6 @@
 @Module
 public abstract class CallLogModule {
 
-  @Binds
-  abstract DialerExecutorFactory bindDialerExecutorFactory(
-      DefaultDialerExecutorFactory defaultDialerExecutorFactory);
-
   @Provides
   static DataSources provideCallLogDataSources(
       SystemCallLogDataSource systemCallLogDataSource, ContactsDataSource contactsDataSource) {
diff --git a/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java b/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
index f9f0c99..d25ec5e 100644
--- a/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
+++ b/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
@@ -18,14 +18,16 @@
 
 import android.annotation.TargetApi;
 import android.content.Context;
+import android.content.OperationApplicationException;
 import android.content.SharedPreferences;
-import android.database.sqlite.SQLiteDatabase;
 import android.os.Build;
+import android.os.RemoteException;
 import android.preference.PreferenceManager;
 import android.support.annotation.WorkerThread;
-import com.android.dialer.calllog.database.AnnotatedCallLog;
-import com.android.dialer.calllog.database.CallLogMutations;
+import com.android.dialer.calllog.database.CallLogDatabaseComponent;
 import com.android.dialer.calllog.datasources.CallLogDataSource;
+import com.android.dialer.calllog.datasources.CallLogMutations;
+import com.android.dialer.calllog.datasources.DataSources;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.DialerExecutor.Worker;
@@ -34,75 +36,65 @@
 /**
  * Worker which brings the annotated call log up to date, if necessary.
  *
- * <p>Accepts a boolean which indicates if the dirty check should be skipped, and returns true if
- * the annotated call log was updated.
+ * <p>Accepts a boolean which indicates if the dirty check should be skipped.
  */
-public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Boolean> {
+public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Void> {
 
   private final Context appContext;
   private final DataSources dataSources;
 
   @Inject
-  public RefreshAnnotatedCallLogWorker(Context appContext, DataSources dataSources) {
+  RefreshAnnotatedCallLogWorker(Context appContext, DataSources dataSources) {
     this.appContext = appContext;
     this.dataSources = dataSources;
   }
 
   @Override
-  public Boolean doInBackground(Boolean skipDirtyCheck) {
-    LogUtil.enterBlock("RefreshAnnotatedCallLogWorker.doInBackgroundFallible");
+  public Void doInBackground(Boolean skipDirtyCheck)
+      throws RemoteException, OperationApplicationException {
+    LogUtil.enterBlock("RefreshAnnotatedCallLogWorker.doInBackground");
 
     long startTime = System.currentTimeMillis();
-    boolean annotatedCallLogUpdated = checkDirtyAndRebuildIfNecessary(appContext, skipDirtyCheck);
+    checkDirtyAndRebuildIfNecessary(appContext, skipDirtyCheck);
     LogUtil.i(
-        "RefreshAnnotatedCallLogWorker.doInBackgroundFallible",
-        "updated? %s, took %dms",
-        annotatedCallLogUpdated,
+        "RefreshAnnotatedCallLogWorker.doInBackground",
+        "took %dms",
         System.currentTimeMillis() - startTime);
-    return annotatedCallLogUpdated;
+    return null;
   }
 
   @WorkerThread
-  private boolean checkDirtyAndRebuildIfNecessary(Context appContext, boolean skipDirtyCheck) {
+  private void checkDirtyAndRebuildIfNecessary(Context appContext, boolean skipDirtyCheck)
+      throws RemoteException, OperationApplicationException {
     Assert.isWorkerThread();
 
     long startTime = System.currentTimeMillis();
 
     SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext);
-    long lastRebuildTimeMillis =
-        sharedPreferences.getLong(CallLogFramework.PREF_LAST_REBUILD_TIMESTAMP_MILLIS, 0);
-    if (lastRebuildTimeMillis == 0) {
-      LogUtil.i(
-          "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
-          "annotated call log has never been built, marking it dirty");
-    }
+    // Default to true. If the pref doesn't exist, the annotated call log hasn't been created and
+    // we just skip isDirty checks and force a rebuild.
     boolean forceRebuildPrefValue =
-        sharedPreferences.getBoolean(CallLogFramework.PREF_FORCE_REBUILD, false);
+        sharedPreferences.getBoolean(CallLogFramework.PREF_FORCE_REBUILD, true);
     if (forceRebuildPrefValue) {
       LogUtil.i(
           "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
-          "call log has been marked dirty");
+          "annotated call log has been marked dirty or does not exist");
     }
 
-    boolean isDirty =
-        lastRebuildTimeMillis == 0
-            || skipDirtyCheck
-            || forceRebuildPrefValue
-            || isDirty(appContext);
+    boolean isDirty = skipDirtyCheck || forceRebuildPrefValue || isDirty(appContext);
+
     LogUtil.i(
         "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
         "isDirty took: %dms",
         System.currentTimeMillis() - startTime);
     if (isDirty) {
       startTime = System.currentTimeMillis();
-      rebuild(appContext, lastRebuildTimeMillis);
+      rebuild(appContext);
       LogUtil.i(
           "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
           "rebuild took: %dms",
           System.currentTimeMillis() - startTime);
-      return true; // Annotated call log was updated.
     }
-    return false; // Annotated call log was not updated.
   }
 
   @WorkerThread
@@ -129,51 +121,48 @@
 
   @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
   @WorkerThread
-  private void rebuild(Context appContext, long lastRebuildTimeMillis) {
+  private void rebuild(Context appContext) throws RemoteException, OperationApplicationException {
     Assert.isWorkerThread();
 
-    // TODO: Start a transaction?
-    try (SQLiteDatabase database = AnnotatedCallLog.getWritableDatabase(appContext)) {
+    CallLogMutations mutations = new CallLogMutations();
 
-      CallLogMutations mutations = new CallLogMutations();
+    // System call log data source must go first!
+    CallLogDataSource systemCallLogDataSource = dataSources.getSystemCallLogDataSource();
+    String dataSourceName = getName(systemCallLogDataSource);
+    LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "filling %s", dataSourceName);
+    long startTime = System.currentTimeMillis();
+    systemCallLogDataSource.fill(appContext, mutations);
+    LogUtil.i(
+        "RefreshAnnotatedCallLogWorker.rebuild",
+        "%s.fill took: %dms",
+        dataSourceName,
+        System.currentTimeMillis() - startTime);
 
-      // System call log data source must go first!
-      CallLogDataSource systemCallLogDataSource = dataSources.getSystemCallLogDataSource();
-      String dataSourceName = getName(systemCallLogDataSource);
+    for (CallLogDataSource dataSource : dataSources.getDataSourcesExcludingSystemCallLog()) {
+      dataSourceName = getName(dataSource);
       LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "filling %s", dataSourceName);
-      long startTime = System.currentTimeMillis();
-      systemCallLogDataSource.fill(appContext, database, lastRebuildTimeMillis, mutations);
+      startTime = System.currentTimeMillis();
+      dataSource.fill(appContext, mutations);
       LogUtil.i(
-          "RefreshAnnotatedCallLogWorker.rebuild",
+          "CallLogFramework.rebuild",
           "%s.fill took: %dms",
           dataSourceName,
           System.currentTimeMillis() - startTime);
-
-      for (CallLogDataSource dataSource : dataSources.getDataSourcesExcludingSystemCallLog()) {
-        dataSourceName = getName(dataSource);
-        LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "filling %s", dataSourceName);
-        startTime = System.currentTimeMillis();
-        dataSource.fill(appContext, database, lastRebuildTimeMillis, mutations);
-        LogUtil.i(
-            "CallLogFramework.rebuild",
-            "%s.fill took: %dms",
-            dataSourceName,
-            System.currentTimeMillis() - startTime);
-      }
-      LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "applying mutations to database");
-      startTime = System.currentTimeMillis();
-      mutations.applyToDatabase(database);
-      LogUtil.i(
-          "RefreshAnnotatedCallLogWorker.rebuild",
-          "applyToDatabase took: %dms",
-          System.currentTimeMillis() - startTime);
     }
+    LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "applying mutations to database");
+    startTime = System.currentTimeMillis();
+    CallLogDatabaseComponent.get(appContext)
+        .mutationApplier()
+        .applyToDatabase(mutations, appContext);
+    LogUtil.i(
+        "RefreshAnnotatedCallLogWorker.rebuild",
+        "applyToDatabase took: %dms",
+        System.currentTimeMillis() - startTime);
 
     SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext);
     sharedPreferences
         .edit()
         .putBoolean(CallLogFramework.PREF_FORCE_REBUILD, false)
-        .putLong(CallLogFramework.PREF_LAST_REBUILD_TIMESTAMP_MILLIS, System.currentTimeMillis())
         .commit();
   }
 
diff --git a/java/com/android/dialer/calllog/database/AndroidManifest.xml b/java/com/android/dialer/calllog/database/AndroidManifest.xml
new file mode 100644
index 0000000..396a6d9
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/AndroidManifest.xml
@@ -0,0 +1,28 @@
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~      http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.dialer.calllog.database">
+
+  <application>
+
+    <provider
+        android:authorities="com.android.dialer.annotatedcalllog"
+        android:exported="false"
+        android:multiprocess="false"
+        android:name=".AnnotatedCallLogContentProvider"/>
+
+  </application>
+</manifest>
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLog.java b/java/com/android/dialer/calllog/database/AnnotatedCallLog.java
deleted file mode 100644
index 7dca44a..0000000
--- a/java/com/android/dialer/calllog/database/AnnotatedCallLog.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.calllog.database;
-
-import android.content.Context;
-import android.database.sqlite.SQLiteDatabase;
-import android.support.annotation.WorkerThread;
-import com.android.dialer.common.Assert;
-
-/** Static methods and constants for interacting with the annotated call log table. */
-public final class AnnotatedCallLog {
-
-  private static final String DATABASE_NAME = "annotated_call_log.db";
-
-  public static final String TABLE_NAME = "AnnotatedCallLog";
-
-  /** Column names for the annotated call log table. */
-  public static final class Columns {
-    public static final String ID = "_id";
-    public static final String TIMESTAMP = "timestamp";
-    public static final String CONTACT_NAME = "contact_name";
-  }
-
-  private AnnotatedCallLog() {}
-
-  @WorkerThread
-  public static SQLiteDatabase getWritableDatabase(Context appContext) {
-    Assert.isWorkerThread();
-
-    return new AnnotatedCallLogDatabaseHelper(appContext, DATABASE_NAME).getWritableDatabase();
-  }
-
-  @WorkerThread
-  public static SQLiteDatabase getReadableDatabase(Context appContext) {
-    Assert.isWorkerThread();
-
-    return new AnnotatedCallLogDatabaseHelper(appContext, DATABASE_NAME).getReadableDatabase();
-  }
-}
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java
new file mode 100644
index 0000000..a9c0d36
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java
@@ -0,0 +1,310 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.calllog.database;
+
+import android.annotation.TargetApi;
+import android.content.ContentProvider;
+import android.content.ContentProviderOperation;
+import android.content.ContentProviderResult;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.OperationApplicationException;
+import android.content.UriMatcher;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteQueryBuilder;
+import android.net.Uri;
+import android.os.Build;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+import java.util.ArrayList;
+
+/** {@link ContentProvider} for the annotated call log. */
+public class AnnotatedCallLogContentProvider extends ContentProvider {
+
+  private static final int ANNOTATED_CALL_LOG_TABLE_CODE = 1;
+  private static final int ANNOTATED_CALL_LOG_TABLE_ID_CODE = 2;
+  private static final int COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE = 3;
+
+  private static final UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
+
+  static {
+    uriMatcher.addURI(
+        AnnotatedCallLogContract.AUTHORITY, AnnotatedCallLog.TABLE, ANNOTATED_CALL_LOG_TABLE_CODE);
+    uriMatcher.addURI(
+        AnnotatedCallLogContract.AUTHORITY,
+        AnnotatedCallLog.TABLE + "/#",
+        ANNOTATED_CALL_LOG_TABLE_ID_CODE);
+    uriMatcher.addURI(
+        AnnotatedCallLogContract.AUTHORITY,
+        CoalescedAnnotatedCallLog.TABLE,
+        COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE);
+  }
+
+  private AnnotatedCallLogDatabaseHelper databaseHelper;
+  private Coalescer coalescer;
+
+  private final ThreadLocal<Boolean> applyingBatch = new ThreadLocal<>();
+
+  /** Ensures that only a single notification is generated from {@link #applyBatch(ArrayList)}. */
+  private boolean isApplyingBatch() {
+    return applyingBatch.get() != null && applyingBatch.get();
+  }
+
+  @Override
+  public boolean onCreate() {
+    databaseHelper = new AnnotatedCallLogDatabaseHelper(getContext());
+    coalescer = CallLogDatabaseComponent.get(getContext()).coalescer();
+    return true;
+  }
+
+  @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
+  @Nullable
+  @Override
+  public Cursor query(
+      @NonNull Uri uri,
+      @Nullable String[] projection,
+      @Nullable String selection,
+      @Nullable String[] selectionArgs,
+      @Nullable String sortOrder) {
+    SQLiteDatabase db = databaseHelper.getReadableDatabase();
+    SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
+    queryBuilder.setTables(AnnotatedCallLog.TABLE);
+    int match = uriMatcher.match(uri);
+    switch (match) {
+      case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
+        queryBuilder.appendWhere(AnnotatedCallLog._ID + "=" + ContentUris.parseId(uri));
+        // fall through
+      case ANNOTATED_CALL_LOG_TABLE_CODE:
+        Cursor cursor =
+            queryBuilder.query(db, projection, selection, selectionArgs, null, null, sortOrder);
+        if (cursor != null) {
+          cursor.setNotificationUri(
+              getContext().getContentResolver(), AnnotatedCallLog.CONTENT_URI);
+        } else {
+          LogUtil.w("AnnotatedCallLogContentProvider.query", "cursor was null");
+        }
+        return cursor;
+      case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
+        Assert.checkArgument(projection == null, "projection not supported for coalesced call log");
+        Assert.checkArgument(selection == null, "selection not supported for coalesced call log");
+        Assert.checkArgument(
+            selectionArgs == null, "selection args not supported for coalesced call log");
+        Assert.checkArgument(sortOrder == null, "sort order not supported for coalesced call log");
+        try (Cursor allAnnotatedCallLogRows =
+            queryBuilder.query(
+                db, null, null, null, null, null, AnnotatedCallLog.TIMESTAMP + " DESC")) {
+          Cursor coalescedRows = coalescer.coalesce(allAnnotatedCallLogRows);
+          coalescedRows.setNotificationUri(
+              getContext().getContentResolver(), CoalescedAnnotatedCallLog.CONTENT_URI);
+          return coalescedRows;
+        }
+      default:
+        throw new IllegalArgumentException("Unknown uri: " + uri);
+    }
+  }
+
+  @Nullable
+  @Override
+  public String getType(@NonNull Uri uri) {
+    return AnnotatedCallLog.CONTENT_ITEM_TYPE;
+  }
+
+  @Nullable
+  @Override
+  public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
+    // Javadoc states values is not nullable, even though it is annotated as such (b/38123194)!
+    Assert.checkArgument(values != null);
+
+    SQLiteDatabase database = databaseHelper.getWritableDatabase();
+    int match = uriMatcher.match(uri);
+    switch (match) {
+      case ANNOTATED_CALL_LOG_TABLE_CODE:
+        Assert.checkArgument(
+            values.get(AnnotatedCallLog._ID) != null, "You must specify an _ID when inserting");
+        break;
+      case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
+        Long idFromUri = ContentUris.parseId(uri);
+        Long idFromValues = values.getAsLong(AnnotatedCallLog._ID);
+        Assert.checkArgument(
+            idFromValues == null || idFromValues.equals(idFromUri),
+            "_ID from values %d does not match ID from URI: %s",
+            idFromValues,
+            uri);
+        if (idFromValues == null) {
+          values.put(AnnotatedCallLog._ID, idFromUri);
+        }
+        break;
+      case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
+        throw new UnsupportedOperationException("coalesced call log does not support inserting");
+      default:
+        throw new IllegalArgumentException("Unknown uri: " + uri);
+    }
+    long id = database.insert(AnnotatedCallLog.TABLE, null, values);
+    if (id < 0) {
+      LogUtil.w(
+          "AnnotatedCallLogContentProvider.insert",
+          "error inserting row with id: %d",
+          values.get(AnnotatedCallLog._ID));
+      return null;
+    }
+    Uri insertedUri = ContentUris.withAppendedId(AnnotatedCallLog.CONTENT_URI, id);
+    if (!isApplyingBatch()) {
+      notifyChange(insertedUri);
+    }
+    return insertedUri;
+  }
+
+  @Override
+  public int delete(
+      @NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
+    SQLiteDatabase database = databaseHelper.getWritableDatabase();
+    final int match = uriMatcher.match(uri);
+    switch (match) {
+      case ANNOTATED_CALL_LOG_TABLE_CODE:
+        break;
+      case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
+        Assert.checkArgument(selection == null, "Do not specify selection when deleting by ID");
+        Assert.checkArgument(
+            selectionArgs == null, "Do not specify selection args when deleting by ID");
+        long id = ContentUris.parseId(uri);
+        Assert.checkArgument(id != -1, "error parsing id from uri %s", uri);
+        selection = getSelectionWithId(id);
+        break;
+      case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
+        throw new UnsupportedOperationException("coalesced call log does not support deleting");
+      default:
+        throw new IllegalArgumentException("Unknown uri: " + uri);
+    }
+    int rows = database.delete(AnnotatedCallLog.TABLE, selection, selectionArgs);
+    if (rows > 0) {
+      if (!isApplyingBatch()) {
+        notifyChange(uri);
+      }
+    } else {
+      LogUtil.w("AnnotatedCallLogContentProvider.delete", "no rows deleted");
+    }
+    return rows;
+  }
+
+  @Override
+  public int update(
+      @NonNull Uri uri,
+      @Nullable ContentValues values,
+      @Nullable String selection,
+      @Nullable String[] selectionArgs) {
+    // Javadoc states values is not nullable, even though it is annotated as such (b/38123194)!
+    Assert.checkArgument(values != null);
+
+    SQLiteDatabase database = databaseHelper.getWritableDatabase();
+    int match = uriMatcher.match(uri);
+    switch (match) {
+      case ANNOTATED_CALL_LOG_TABLE_CODE:
+        break;
+      case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
+        Assert.checkArgument(
+            !values.containsKey(AnnotatedCallLog._ID), "Do not specify _ID when updating by ID");
+        Assert.checkArgument(selection == null, "Do not specify selection when updating by ID");
+        Assert.checkArgument(
+            selectionArgs == null, "Do not specify selection args when updating by ID");
+        selection = getSelectionWithId(ContentUris.parseId(uri));
+        break;
+      case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
+        throw new UnsupportedOperationException("coalesced call log does not support updating");
+      default:
+        throw new IllegalArgumentException("Unknown uri: " + uri);
+    }
+    int rows = database.update(AnnotatedCallLog.TABLE, values, selection, selectionArgs);
+    if (rows > 0) {
+      if (!isApplyingBatch()) {
+        notifyChange(uri);
+      }
+    } else {
+      LogUtil.w("AnnotatedCallLogContentProvider.update", "no rows updated");
+    }
+    return rows;
+  }
+
+  /**
+   * {@inheritDoc}
+   *
+   * <p>Note: When applyBatch is used with the AnnotatedCallLog, only a single notification for the
+   * content URI is generated, not individual notifications for each affected URI.
+   */
+  @NonNull
+  @Override
+  public ContentProviderResult[] applyBatch(@NonNull ArrayList<ContentProviderOperation> operations)
+      throws OperationApplicationException {
+    ContentProviderResult[] results = new ContentProviderResult[operations.size()];
+    if (operations.isEmpty()) {
+      return results;
+    }
+
+    SQLiteDatabase database = databaseHelper.getWritableDatabase();
+    try {
+      applyingBatch.set(true);
+      database.beginTransaction();
+      for (int i = 0; i < operations.size(); i++) {
+        ContentProviderOperation operation = operations.get(i);
+        int match = uriMatcher.match(operation.getUri());
+        switch (match) {
+          case ANNOTATED_CALL_LOG_TABLE_CODE:
+          case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
+            // These are allowed values, continue.
+            break;
+          case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
+            throw new UnsupportedOperationException(
+                "coalesced call log does not support applyBatch");
+          default:
+            throw new IllegalArgumentException("Unknown uri: " + operation.getUri());
+        }
+        ContentProviderResult result = operation.apply(this, results, i);
+        if (operations.get(i).isInsert()) {
+          if (result.uri == null) {
+            throw new OperationApplicationException("error inserting row");
+          }
+        } else if (result.count == 0) {
+          throw new OperationApplicationException("error updating or deleting rows");
+        }
+        results[i] = result;
+      }
+      database.setTransactionSuccessful();
+    } finally {
+      applyingBatch.set(false);
+      database.endTransaction();
+    }
+    notifyChange(AnnotatedCallLog.CONTENT_URI);
+    return results;
+  }
+
+  private String getSelectionWithId(long id) {
+    return AnnotatedCallLog._ID + "=" + id;
+  }
+
+  private void notifyChange(Uri uri) {
+    getContext().getContentResolver().notifyChange(uri, null);
+    // Any time the annotated call log changes, we need to also notify observers of the
+    // CoalescedAnnotatedCallLog, since that is just a massaged in-memory view of the real annotated
+    // call log table.
+    getContext().getContentResolver().notifyChange(CoalescedAnnotatedCallLog.CONTENT_URI, null);
+  }
+}
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
index 7b28e55..3cca639 100644
--- a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
+++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
@@ -16,28 +16,25 @@
 
 package com.android.dialer.calllog.database;
 
-import static com.android.dialer.calllog.database.AnnotatedCallLog.Columns.CONTACT_NAME;
-import static com.android.dialer.calllog.database.AnnotatedCallLog.Columns.ID;
-import static com.android.dialer.calllog.database.AnnotatedCallLog.Columns.TIMESTAMP;
-
 import android.content.Context;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteOpenHelper;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
 import com.android.dialer.common.LogUtil;
 
 /** {@link SQLiteOpenHelper} for the AnnotatedCallLog database. */
 class AnnotatedCallLogDatabaseHelper extends SQLiteOpenHelper {
 
-  AnnotatedCallLogDatabaseHelper(Context appContext, String databaseName) {
-    super(appContext, databaseName, null, 1);
+  AnnotatedCallLogDatabaseHelper(Context appContext) {
+    super(appContext, "annotated_call_log.db", null, 1);
   }
 
   private static final String CREATE_SQL =
       new StringBuilder()
-          .append("create table if not exists " + AnnotatedCallLog.TABLE_NAME + " (")
-          .append(ID + " integer primary key, ")
-          .append(TIMESTAMP + " integer, ")
-          .append(CONTACT_NAME + " string")
+          .append("create table if not exists " + AnnotatedCallLog.TABLE + " (")
+          .append(AnnotatedCallLog._ID + " integer primary key, ")
+          .append(AnnotatedCallLog.TIMESTAMP + " integer, ")
+          .append(AnnotatedCallLog.CONTACT_NAME + " string")
           .append(");")
           .toString();
 
diff --git a/java/com/android/dialer/calllog/database/CallLogDatabaseComponent.java b/java/com/android/dialer/calllog/database/CallLogDatabaseComponent.java
new file mode 100644
index 0000000..ede4691
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/CallLogDatabaseComponent.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.calllog.database;
+
+import android.content.Context;
+import com.android.dialer.inject.HasRootComponent;
+import dagger.Subcomponent;
+
+/** Dagger component for database package. */
+@Subcomponent
+public abstract class CallLogDatabaseComponent {
+
+  public abstract Coalescer coalescer();
+
+  public abstract MutationApplier mutationApplier();
+
+  public static CallLogDatabaseComponent get(Context context) {
+    return ((CallLogDatabaseComponent.HasComponent)
+            ((HasRootComponent) context.getApplicationContext()).component())
+        .callLogDatabaseComponent();
+  }
+
+  /** Used to refer to the root application component. */
+  public interface HasComponent {
+    CallLogDatabaseComponent callLogDatabaseComponent();
+  }
+}
diff --git a/java/com/android/dialer/calllog/database/CallLogMutations.java b/java/com/android/dialer/calllog/database/CallLogMutations.java
deleted file mode 100644
index ec020c6..0000000
--- a/java/com/android/dialer/calllog/database/CallLogMutations.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.calllog.database;
-
-import android.content.ContentValues;
-import android.database.sqlite.SQLiteDatabase;
-import android.support.annotation.WorkerThread;
-import android.util.ArrayMap;
-import android.util.ArraySet;
-import com.android.dialer.common.Assert;
-
-/** A collection of mutations to the annotated call log. */
-public final class CallLogMutations {
-
-  private final ArrayMap<Integer, ContentValues> inserts = new ArrayMap<>();
-  private final ArrayMap<Integer, ContentValues> updates = new ArrayMap<>();
-  private final ArraySet<Integer> deletes = new ArraySet<>();
-
-  /** @param contentValues an entire row not including the ID */
-  public void insert(int id, ContentValues contentValues) {
-    inserts.put(id, contentValues);
-  }
-
-  /** @param contentValues the specific columns to update, not including the ID. */
-  public void update(int id, ContentValues contentValues) {
-    // TODO: Consider merging automatically.
-    updates.put(id, contentValues);
-  }
-
-  public void delete(int id) {
-    deletes.add(id);
-  }
-
-  public boolean isEmpty() {
-    return inserts.isEmpty() && updates.isEmpty() && deletes.isEmpty();
-  }
-
-  @WorkerThread
-  public void applyToDatabase(SQLiteDatabase writableDatabase) {
-    Assert.isWorkerThread();
-
-    // TODO: Implementation.
-  }
-}
diff --git a/java/com/android/dialer/calllog/database/Coalescer.java b/java/com/android/dialer/calllog/database/Coalescer.java
new file mode 100644
index 0000000..e3dfb7e
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/Coalescer.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.calllog.database;
+
+import android.content.ContentValues;
+import android.database.Cursor;
+import android.database.DatabaseUtils;
+import android.database.MatrixCursor;
+import android.support.annotation.NonNull;
+import android.support.annotation.WorkerThread;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
+import com.android.dialer.calllog.datasources.CallLogDataSource;
+import com.android.dialer.calllog.datasources.DataSources;
+import com.android.dialer.common.Assert;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import javax.inject.Inject;
+
+/**
+ * Coalesces call log rows by combining some adjacent rows.
+ *
+ * <p>Applies the business which logic which determines which adjacent rows should be coalasced, and
+ * then delegates to each data source to determine how individual columns should be aggregated.
+ */
+public class Coalescer {
+
+  private final DataSources dataSources;
+
+  @Inject
+  Coalescer(DataSources dataSources) {
+    this.dataSources = dataSources;
+  }
+
+  /**
+   * Reads the entire {@link AnnotatedCallLog} database into memory from the provided {@code
+   * allAnnotatedCallLog} parameter and then builds and returns a new {@link MatrixCursor} which is
+   * the result of combining adjacent rows which should be collapsed for display purposes.
+   *
+   * @param allAnnotatedCallLogRowsSortedByTimestampDesc all {@link AnnotatedCallLog} rows, sorted
+   *     by timestamp descending
+   * @return a new {@link MatrixCursor} containing the {@link CoalescedAnnotatedCallLog} rows to
+   *     display
+   */
+  @WorkerThread
+  @NonNull
+  Cursor coalesce(@NonNull Cursor allAnnotatedCallLogRowsSortedByTimestampDesc) {
+    Assert.isWorkerThread();
+
+    // Note: This method relies on rowsShouldBeCombined to determine which rows should be combined,
+    // but delegates to data sources to actually aggregate column values.
+
+    MatrixCursor allCoalescedRowsMatrixCursor =
+        new MatrixCursor(
+            CoalescedAnnotatedCallLog.ALL_COLUMNS,
+            Assert.isNotNull(allAnnotatedCallLogRowsSortedByTimestampDesc).getCount());
+
+    if (allAnnotatedCallLogRowsSortedByTimestampDesc.moveToFirst()) {
+      int coalescedRowId = 0;
+
+      List<ContentValues> currentRowGroup = new ArrayList<>();
+
+      do {
+        ContentValues currentRow = new ContentValues();
+        DatabaseUtils.cursorRowToContentValues(
+            allAnnotatedCallLogRowsSortedByTimestampDesc, currentRow);
+
+        if (currentRowGroup.isEmpty()) {
+          currentRowGroup.add(currentRow);
+          continue;
+        }
+
+        ContentValues previousRow = currentRowGroup.get(currentRowGroup.size() - 1);
+
+        if (!rowsShouldBeCombined(previousRow, currentRow)) {
+          ContentValues coalescedRow = coalesceRowsForAllDataSources(currentRowGroup);
+          coalescedRow.put(CoalescedAnnotatedCallLog.NUMBER_CALLS, currentRowGroup.size());
+          addContentValuesToMatrixCursor(
+              coalescedRow, allCoalescedRowsMatrixCursor, coalescedRowId++);
+          currentRowGroup.clear();
+        }
+        currentRowGroup.add(currentRow);
+      } while (allAnnotatedCallLogRowsSortedByTimestampDesc.moveToNext());
+
+      // Deal with leftover rows.
+      ContentValues coalescedRow = coalesceRowsForAllDataSources(currentRowGroup);
+      coalescedRow.put(CoalescedAnnotatedCallLog.NUMBER_CALLS, currentRowGroup.size());
+      addContentValuesToMatrixCursor(coalescedRow, allCoalescedRowsMatrixCursor, coalescedRowId);
+    }
+    return allCoalescedRowsMatrixCursor;
+  }
+
+  /**
+   * @param row1 a row from {@link AnnotatedCallLog}
+   * @param row2 a row from {@link AnnotatedCallLog}
+   */
+  private static boolean rowsShouldBeCombined(ContentValues row1, ContentValues row2) {
+    // TODO: Real implementation.
+    return row1.get(AnnotatedCallLog.TIMESTAMP).equals(row2.get(AnnotatedCallLog.TIMESTAMP));
+  }
+
+  /**
+   * Delegates to data sources to aggregate individual columns to create a new coalesced row.
+   *
+   * @param individualRows {@link AnnotatedCallLog} rows sorted by timestamp descending
+   * @return a {@link CoalescedAnnotatedCallLog} row
+   */
+  private ContentValues coalesceRowsForAllDataSources(List<ContentValues> individualRows) {
+    ContentValues coalescedValues = new ContentValues();
+    for (CallLogDataSource dataSource : dataSources.getDataSourcesIncludingSystemCallLog()) {
+      coalescedValues.putAll(dataSource.coalesce(individualRows));
+    }
+    return coalescedValues;
+  }
+
+  /**
+   * @param contentValues a {@link CoalescedAnnotatedCallLog} row
+   * @param matrixCursor represents {@link CoalescedAnnotatedCallLog}
+   */
+  private static void addContentValuesToMatrixCursor(
+      ContentValues contentValues, MatrixCursor matrixCursor, int rowId) {
+    MatrixCursor.RowBuilder rowBuilder = matrixCursor.newRow();
+    rowBuilder.add(CoalescedAnnotatedCallLog._ID, rowId);
+    for (Map.Entry<String, Object> entry : contentValues.valueSet()) {
+      rowBuilder.add(entry.getKey(), entry.getValue());
+    }
+  }
+}
diff --git a/java/com/android/dialer/calllog/database/MutationApplier.java b/java/com/android/dialer/calllog/database/MutationApplier.java
new file mode 100644
index 0000000..21c8a50
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/MutationApplier.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.calllog.database;
+
+import android.content.ContentProviderOperation;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.OperationApplicationException;
+import android.os.RemoteException;
+import android.support.annotation.WorkerThread;
+import android.text.TextUtils;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
+import com.android.dialer.calllog.datasources.CallLogMutations;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Map.Entry;
+import javax.inject.Inject;
+
+/** Applies {@link CallLogMutations} to the annotated call log. */
+public class MutationApplier {
+
+  @Inject
+  MutationApplier() {}
+
+  /** Applies the provided {@link CallLogMutations} to the annotated call log. */
+  @WorkerThread
+  public void applyToDatabase(CallLogMutations mutations, Context appContext)
+      throws RemoteException, OperationApplicationException {
+    Assert.isWorkerThread();
+
+    if (mutations.isEmpty()) {
+      return;
+    }
+
+    ArrayList<ContentProviderOperation> operations = new ArrayList<>();
+
+    if (!mutations.getInserts().isEmpty()) {
+      LogUtil.i(
+          "CallLogMutations.applyToDatabase", "inserting %d rows", mutations.getInserts().size());
+      for (Entry<Long, ContentValues> entry : mutations.getInserts().entrySet()) {
+        long id = entry.getKey();
+        ContentValues contentValues = entry.getValue();
+        operations.add(
+            ContentProviderOperation.newInsert(
+                    ContentUris.withAppendedId(AnnotatedCallLog.CONTENT_URI, id))
+                .withValues(contentValues)
+                .build());
+      }
+    }
+
+    if (!mutations.getUpdates().isEmpty()) {
+      LogUtil.i(
+          "CallLogMutations.applyToDatabase", "updating %d rows", mutations.getUpdates().size());
+      for (Entry<Long, ContentValues> entry : mutations.getUpdates().entrySet()) {
+        long id = entry.getKey();
+        ContentValues contentValues = entry.getValue();
+        operations.add(
+            ContentProviderOperation.newUpdate(
+                    ContentUris.withAppendedId(AnnotatedCallLog.CONTENT_URI, id))
+                .withValues(contentValues)
+                .build());
+      }
+    }
+
+    if (!mutations.getDeletes().isEmpty()) {
+      LogUtil.i(
+          "CallLogMutations.applyToDatabase", "deleting %d rows", mutations.getDeletes().size());
+      String[] questionMarks = new String[mutations.getDeletes().size()];
+      Arrays.fill(questionMarks, "?");
+
+      String whereClause =
+          (AnnotatedCallLog._ID + " in (") + TextUtils.join(",", questionMarks) + ")";
+
+      String[] whereArgs = new String[mutations.getDeletes().size()];
+      int i = 0;
+      for (long id : mutations.getDeletes()) {
+        whereArgs[i++] = String.valueOf(id);
+      }
+
+      operations.add(
+          ContentProviderOperation.newDelete(AnnotatedCallLog.CONTENT_URI)
+              .withSelection(whereClause, whereArgs)
+              .build());
+    }
+
+    appContext.getContentResolver().applyBatch(AnnotatedCallLogContract.AUTHORITY, operations);
+  }
+}
diff --git a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
new file mode 100644
index 0000000..8b3b0a8
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.calllog.database.contract;
+
+import android.net.Uri;
+import android.provider.BaseColumns;
+import com.android.dialer.constants.Constants;
+import java.util.Arrays;
+
+/** Contract for the AnnotatedCallLog content provider. */
+public class AnnotatedCallLogContract {
+  public static final String AUTHORITY = Constants.get().getAnnotatedCallLogProviderAuthority();
+
+  public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY);
+
+  /**
+   * Columns shared by {@link AnnotatedCallLog} and {@link CoalescedAnnotatedCallLog}.
+   *
+   * <p>When adding columns be sure to update {@link #ALL_COMMON_COLUMNS}.
+   */
+  interface CommonColumns extends BaseColumns {
+
+    /**
+     * Timestamp of the entry, in milliseconds.
+     *
+     * <p>Type: INTEGER (long)
+     */
+    String TIMESTAMP = "timestamp";
+
+    /**
+     * Name to display for the entry.
+     *
+     * <p>Type: TEXT
+     */
+    String CONTACT_NAME = "contact_name";
+
+    String[] ALL_COMMON_COLUMNS = new String[] {_ID, TIMESTAMP, CONTACT_NAME};
+  }
+
+  /**
+   * AnnotatedCallLog table.
+   *
+   * <p>This contains all of the non-coalesced call log entries.
+   */
+  public static final class AnnotatedCallLog implements CommonColumns {
+
+    public static final String TABLE = "AnnotatedCallLog";
+
+    /** The content URI for this table. */
+    public static final Uri CONTENT_URI =
+        Uri.withAppendedPath(AnnotatedCallLogContract.CONTENT_URI, TABLE);
+
+    /** The MIME type of a {@link android.content.ContentProvider#getType(Uri)} single entry. */
+    public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/annotated_call_log";
+  }
+
+  /**
+   * Coalesced view of the AnnotatedCallLog table.
+   *
+   * <p>This is an in-memory view of the {@link AnnotatedCallLog} with some adjacent entries
+   * collapsed.
+   *
+   * <p>When adding columns be sure to update {@link #COLUMNS_ONLY_IN_COALESCED_CALL_LOG}.
+   */
+  public static final class CoalescedAnnotatedCallLog implements CommonColumns {
+
+    public static final String TABLE = "CoalescedAnnotatedCallLog";
+
+    /** The content URI for this table. */
+    public static final Uri CONTENT_URI =
+        Uri.withAppendedPath(AnnotatedCallLogContract.CONTENT_URI, TABLE);
+
+    /** The MIME type of a {@link android.content.ContentProvider#getType(Uri)} single entry. */
+    public static final String CONTENT_ITEM_TYPE =
+        "vnd.android.cursor.item/coalesced_annotated_call_log";
+
+    /**
+     * Number of AnnotatedCallLog rows represented by this CoalescedAnnotatedCallLog row.
+     *
+     * <p>Type: INTEGER
+     */
+    public static final String NUMBER_CALLS = "number_calls";
+
+    /**
+     * Columns that are only in the {@link CoalescedAnnotatedCallLog} but not the {@link
+     * AnnotatedCallLog}.
+     */
+    private static final String[] COLUMNS_ONLY_IN_COALESCED_CALL_LOG = new String[] {NUMBER_CALLS};
+
+    /** All columns in the {@link CoalescedAnnotatedCallLog}. */
+    public static final String[] ALL_COLUMNS =
+        concat(ALL_COMMON_COLUMNS, COLUMNS_ONLY_IN_COALESCED_CALL_LOG);
+  }
+
+  private static String[] concat(String[] first, String[] second) {
+    String[] result = Arrays.copyOf(first, first.length + second.length);
+    System.arraycopy(second, 0, result, first.length, second.length);
+    return result;
+  }
+}
diff --git a/java/com/android/dialer/calllog/datasources/CallLogDataSource.java b/java/com/android/dialer/calllog/datasources/CallLogDataSource.java
index 13d0b84..3fff3ba 100644
--- a/java/com/android/dialer/calllog/datasources/CallLogDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/CallLogDataSource.java
@@ -16,13 +16,39 @@
 
 package com.android.dialer.calllog.datasources;
 
+import android.content.ContentValues;
 import android.content.Context;
-import android.database.sqlite.SQLiteDatabase;
 import android.support.annotation.MainThread;
 import android.support.annotation.WorkerThread;
-import com.android.dialer.calllog.database.CallLogMutations;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract;
+import java.util.List;
 
-/** A source of data for one or more columns in the annotated call log. */
+/**
+ * A source of data for one or more columns in the annotated call log.
+ *
+ * <p>Data sources have three lifecycle operations, which are always called on the same thread and
+ * in the same order for a particular "checkDirtyAndRebuild" cycle. However, not all operations are
+ * always invoked.
+ *
+ * <ol>
+ *   <li>{@link #isDirty(Context)}: Invoked only if the framework doesn't yet know if a rebuild is
+ *       necessary.
+ *   <li>{@link #fill(Context, CallLogMutations)}: Invoked only if the framework determined a
+ *       rebuild is necessary.
+ *   <li>{@link #onSuccessfulFill(Context)}: Invoked if and only if fill was previously called and
+ *       the mutations provided by the previous fill operation succeeded in being applied.
+ * </ol>
+ *
+ * <p>Because {@link #isDirty(Context)} is not always invoked, {@link #fill(Context,
+ * CallLogMutations)} shouldn't rely on any state saved during {@link #isDirty(Context)}. It
+ * <em>is</em> safe to assume that {@link #onSuccessfulFill(Context)} refers to the previous fill
+ * operation.
+ *
+ * <p>The same data source objects may be reused across multiple checkDirtyAndRebuild cycles, so
+ * implementors should take care to clear any internal state at the start of a new cycle.
+ *
+ * <p>{@link #coalesce(List)} may be called from any worker thread at any time.
+ */
 public interface CallLogDataSource {
 
   /**
@@ -35,6 +61,8 @@
    * <p>Most implementations of this method will rely on some sort of last modified timestamp. If it
    * is impossible for a data source to be modified without the dialer application being notified,
    * this method may immediately return false.
+   *
+   * @see CallLogDataSource class doc for complete lifecyle information
    */
   @WorkerThread
   boolean isDirty(Context appContext);
@@ -43,16 +71,39 @@
    * Computes the set of mutations necessary to update the annotated call log with respect to this
    * data source.
    *
+   * @see CallLogDataSource class doc for complete lifecyle information
    * @param mutations the set of mutations which this method should contribute to. Note that it may
    *     contain inserts from the system call log, and these inserts should be modified by each data
    *     source.
    */
   @WorkerThread
-  void fill(
-      Context appContext,
-      SQLiteDatabase readableDatabase,
-      long lastRebuildTimeMillis,
-      CallLogMutations mutations);
+  void fill(Context appContext, CallLogMutations mutations);
+
+  /**
+   * Called after database mutations have been applied to all data sources. This is useful for
+   * saving state such as the timestamp of the last row processed in an underlying database. Note
+   * that all mutations across all data sources are applied in a single transaction.
+   *
+   * @see CallLogDataSource class doc for complete lifecyle information
+   */
+  @WorkerThread
+  void onSuccessfulFill(Context appContext);
+
+  /**
+   * Combines raw annotated call log rows into a single coalesced row.
+   *
+   * <p>May be called by any worker thread at any time so implementations should take care to be
+   * threadsafe. (Ideally no state should be required to implement this.)
+   *
+   * @param individualRowsSortedByTimestampDesc group of fully populated rows from {@link
+   *     AnnotatedCallLogContract.AnnotatedCallLog} which need to be combined for display purposes.
+   *     This method should not modify this list.
+   * @return a partial {@link AnnotatedCallLogContract.CoalescedAnnotatedCallLog} row containing
+   *     only columns which this data source is responsible for, which is the result of aggregating
+   *     {@code individualRowsSortedByTimestampDesc}.
+   */
+  @WorkerThread
+  ContentValues coalesce(List<ContentValues> individualRowsSortedByTimestampDesc);
 
   @MainThread
   void registerContentObservers(
diff --git a/java/com/android/dialer/calllog/datasources/CallLogMutations.java b/java/com/android/dialer/calllog/datasources/CallLogMutations.java
new file mode 100644
index 0000000..148601d
--- /dev/null
+++ b/java/com/android/dialer/calllog/datasources/CallLogMutations.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.calllog.datasources;
+
+import android.content.ContentValues;
+import android.util.ArrayMap;
+import android.util.ArraySet;
+import com.android.dialer.common.Assert;
+
+/** A collection of mutations to the annotated call log. */
+public final class CallLogMutations {
+
+  private final ArrayMap<Long, ContentValues> inserts = new ArrayMap<>();
+  private final ArrayMap<Long, ContentValues> updates = new ArrayMap<>();
+  private final ArraySet<Long> deletes = new ArraySet<>();
+
+  /**
+   * @param contentValues an entire row not including the ID
+   * @throws IllegalStateException if this {@link CallLogMutations} already contains an insert,
+   *     update, or delete with the provided id
+   */
+  public void insert(long id, ContentValues contentValues) {
+    Assert.checkArgument(!inserts.containsKey(id), "Can't insert row already scheduled for insert");
+    Assert.checkArgument(!updates.containsKey(id), "Can't insert row scheduled for update");
+    Assert.checkArgument(!deletes.contains(id), "Can't insert row scheduled for delete");
+
+    inserts.put(id, contentValues);
+  }
+
+  /**
+   * Stores a database update using the provided ID and content values. If this {@link
+   * CallLogMutations} object already contains an update with the specified ID, the existing content
+   * values are merged with the provided ones, with the provided ones overwriting the existing ones
+   * for values with the same key.
+   *
+   * @param contentValues the specific columns to update, not including the ID.
+   * @throws IllegalStateException if this {@link CallLogMutations} already contains an insert or
+   *     delete with the provided id
+   */
+  public void update(long id, ContentValues contentValues) {
+    Assert.checkArgument(!inserts.containsKey(id), "Can't update row scheduled for insert");
+    Assert.checkArgument(!deletes.contains(id), "Can't delete row scheduled for delete");
+
+    ContentValues existingContentValues = updates.get(id);
+    if (existingContentValues != null) {
+      existingContentValues.putAll(contentValues);
+    } else {
+      updates.put(id, contentValues);
+    }
+  }
+
+  /**
+   * @throws IllegalStateException if this {@link CallLogMutations} already contains an insert,
+   *     update, or delete with the provided id
+   */
+  public void delete(long id) {
+    Assert.checkArgument(!inserts.containsKey(id), "Can't delete row scheduled for insert");
+    Assert.checkArgument(!updates.containsKey(id), "Can't delete row scheduled for update");
+    Assert.checkArgument(!deletes.contains(id), "Can't delete row already scheduled for delete");
+
+    deletes.add(id);
+  }
+
+  public boolean isEmpty() {
+    return inserts.isEmpty() && updates.isEmpty() && deletes.isEmpty();
+  }
+
+  /**
+   * Get the pending inserts.
+   *
+   * @return the pending inserts where the key is the annotated call log database ID and the values
+   *     are values to be inserted (not including the ID)
+   */
+  public ArrayMap<Long, ContentValues> getInserts() {
+    return inserts;
+  }
+
+  /**
+   * Get the pending updates.
+   *
+   * @return the pending updates where the key is the annotated call log database ID and the values
+   *     are values to be updated (not including the ID)
+   */
+  public ArrayMap<Long, ContentValues> getUpdates() {
+    return updates;
+  }
+
+  /**
+   * Get the pending deletes.
+   *
+   * @return the annotated call log database IDs corresponding to the rows to be deleted
+   */
+  public ArraySet<Long> getDeletes() {
+    return deletes;
+  }
+}
diff --git a/java/com/android/dialer/calllog/DataSources.java b/java/com/android/dialer/calllog/datasources/DataSources.java
similarity index 88%
rename from java/com/android/dialer/calllog/DataSources.java
rename to java/com/android/dialer/calllog/datasources/DataSources.java
index 21d1901..911ca3f 100644
--- a/java/com/android/dialer/calllog/DataSources.java
+++ b/java/com/android/dialer/calllog/datasources/DataSources.java
@@ -14,14 +14,13 @@
  * limitations under the License
  */
 
-package com.android.dialer.calllog;
+package com.android.dialer.calllog.datasources;
 
-import com.android.dialer.calllog.datasources.CallLogDataSource;
 import com.android.dialer.calllog.datasources.systemcalllog.SystemCallLogDataSource;
 import java.util.List;
 
 /** Immutable lists of data sources used to populate the annotated call log. */
-interface DataSources {
+public interface DataSources {
 
   SystemCallLogDataSource getSystemCallLogDataSource();
 
diff --git a/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java b/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
index 355940f..e9538da 100644
--- a/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
@@ -16,13 +16,16 @@
 
 package com.android.dialer.calllog.datasources.contacts;
 
+import android.content.ContentValues;
 import android.content.Context;
-import android.database.sqlite.SQLiteDatabase;
 import android.support.annotation.MainThread;
 import android.support.annotation.WorkerThread;
-import com.android.dialer.calllog.database.CallLogMutations;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
 import com.android.dialer.calllog.datasources.CallLogDataSource;
+import com.android.dialer.calllog.datasources.CallLogMutations;
+import com.android.dialer.calllog.datasources.util.RowCombiner;
 import com.android.dialer.common.Assert;
+import java.util.List;
 import javax.inject.Inject;
 
 /** Responsible for maintaining the contacts related columns in the annotated call log. */
@@ -44,13 +47,24 @@
   @Override
   public void fill(
       Context appContext,
-      SQLiteDatabase readableDatabase,
-      long lastRebuildTimeMillis,
       CallLogMutations mutations) {
     Assert.isWorkerThread();
     // TODO: Implementation.
   }
 
+  @Override
+  public void onSuccessfulFill(Context appContext) {
+    // TODO: Implementation.
+  }
+
+  @Override
+  public ContentValues coalesce(List<ContentValues> individualRowsSortedByTimestampDesc) {
+    // TODO: Implementation.
+    return new RowCombiner(individualRowsSortedByTimestampDesc)
+        .useSingleValueString(AnnotatedCallLog.CONTACT_NAME)
+        .combine();
+  }
+
   @MainThread
   @Override
   public void registerContentObservers(
diff --git a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
index ea6663f..be2df60 100644
--- a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
@@ -16,28 +16,49 @@
 
 package com.android.dialer.calllog.datasources.systemcalllog;
 
+import android.Manifest.permission;
+import android.annotation.TargetApi;
+import android.content.ContentValues;
 import android.content.Context;
 import android.database.ContentObserver;
-import android.database.sqlite.SQLiteDatabase;
+import android.database.Cursor;
 import android.net.Uri;
+import android.os.Build;
 import android.os.Handler;
+import android.preference.PreferenceManager;
 import android.provider.CallLog;
+import android.provider.CallLog.Calls;
 import android.support.annotation.MainThread;
+import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
 import android.support.annotation.WorkerThread;
-import com.android.dialer.calllog.database.CallLogMutations;
+import android.text.TextUtils;
+import android.util.ArraySet;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
 import com.android.dialer.calllog.datasources.CallLogDataSource;
+import com.android.dialer.calllog.datasources.CallLogMutations;
+import com.android.dialer.calllog.datasources.util.RowCombiner;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.ThreadUtil;
 import com.android.dialer.util.PermissionsUtil;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
 import javax.inject.Inject;
 
 /**
  * Responsible for defining the rows in the annotated call log and maintaining the columns in it
  * which are derived from the system call log.
  */
+@SuppressWarnings("MissingPermission")
 public class SystemCallLogDataSource implements CallLogDataSource {
 
+  @VisibleForTesting
+  static final String PREF_LAST_TIMESTAMP_PROCESSED = "systemCallLogLastTimestampProcessed";
+
+  @Nullable private Long lastTimestampProcessed;
+
   @Inject
   public SystemCallLogDataSource() {}
 
@@ -47,6 +68,8 @@
       Context appContext, ContentObserverCallbacks contentObserverCallbacks) {
     Assert.isMainThread();
 
+    LogUtil.enterBlock("SystemCallLogDataSource.registerContentObservers");
+
     if (!PermissionsUtil.hasCallLogReadPermissions(appContext)) {
       LogUtil.i("SystemCallLogDataSource.registerContentObservers", "no call log permissions");
       return;
@@ -77,17 +100,185 @@
 
   @WorkerThread
   @Override
-  public void fill(
-      Context appContext,
-      SQLiteDatabase readableDatabase,
-      long lastRebuildTimeMillis,
-      CallLogMutations mutations) {
+  public void fill(Context appContext, CallLogMutations mutations) {
     Assert.isWorkerThread();
 
-    // This data source should always run first so the mutations should always be empty.
-    Assert.checkState(mutations.isEmpty());
+    lastTimestampProcessed = null;
 
-    // TODO: Implementation.
+    if (!PermissionsUtil.hasPermission(appContext, permission.READ_CALL_LOG)) {
+      LogUtil.i("SystemCallLogDataSource.fill", "no call log permissions");
+      return;
+    }
+
+    // This data source should always run first so the mutations should always be empty.
+    Assert.checkArgument(mutations.isEmpty());
+
+    Set<Long> annotatedCallLogIds = getAnnotatedCallLogIds(appContext);
+
+    LogUtil.i(
+        "SystemCallLogDataSource.fill",
+        "found %d existing annotated call log ids",
+        annotatedCallLogIds.size());
+
+    handleInsertsAndUpdates(appContext, mutations, annotatedCallLogIds);
+    handleDeletes(appContext, annotatedCallLogIds, mutations);
+  }
+
+  @WorkerThread
+  @Override
+  public void onSuccessfulFill(Context appContext) {
+    // If a fill operation was a no-op, lastTimestampProcessed could still be null.
+    if (lastTimestampProcessed != null) {
+      PreferenceManager.getDefaultSharedPreferences(appContext)
+          .edit()
+          .putLong(PREF_LAST_TIMESTAMP_PROCESSED, lastTimestampProcessed)
+          .commit();
+    }
+  }
+
+  @Override
+  public ContentValues coalesce(List<ContentValues> individualRowsSortedByTimestampDesc) {
+    // TODO: Complete implementation.
+    return new RowCombiner(individualRowsSortedByTimestampDesc)
+        .useMostRecentLong(AnnotatedCallLog.TIMESTAMP)
+        .combine();
+  }
+
+  @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
+  private void handleInsertsAndUpdates(
+      Context appContext, CallLogMutations mutations, Set<Long> existingAnnotatedCallLogIds) {
+    long previousTimestampProcessed =
+        PreferenceManager.getDefaultSharedPreferences(appContext)
+            .getLong(PREF_LAST_TIMESTAMP_PROCESSED, 0L);
+
+    try (Cursor cursor =
+        appContext
+            .getContentResolver()
+            .query(
+                Calls.CONTENT_URI, // Excludes voicemail
+                new String[] {Calls._ID, Calls.DATE, Calls.LAST_MODIFIED},
+                Calls.LAST_MODIFIED + " > ?",
+                new String[] {String.valueOf(previousTimestampProcessed)},
+                Calls.LAST_MODIFIED + " DESC LIMIT 1000")) {
+
+      if (cursor == null) {
+        LogUtil.e("SystemCallLogDataSource.handleInsertsAndUpdates", "null cursor");
+        return;
+      }
+
+      LogUtil.i(
+          "SystemCallLogDataSource.handleInsertsAndUpdates",
+          "found %d entries to insert/update",
+          cursor.getCount());
+
+      if (cursor.moveToFirst()) {
+        int idColumn = cursor.getColumnIndexOrThrow(Calls._ID);
+        int dateColumn = cursor.getColumnIndexOrThrow(Calls.DATE);
+        int lastModifiedColumn = cursor.getColumnIndexOrThrow(Calls.LAST_MODIFIED);
+
+        // The cursor orders by LAST_MODIFIED DESC, so the first result is the most recent timestamp
+        // processed.
+        lastTimestampProcessed = cursor.getLong(lastModifiedColumn);
+        do {
+          long id = cursor.getLong(idColumn);
+          long date = cursor.getLong(dateColumn);
+
+          ContentValues contentValues = new ContentValues();
+          contentValues.put(AnnotatedCallLog.TIMESTAMP, date);
+
+          if (existingAnnotatedCallLogIds.contains(id)) {
+            mutations.update(id, contentValues);
+          } else {
+            mutations.insert(id, contentValues);
+          }
+        } while (cursor.moveToNext());
+      } // else no new results, do nothing.
+    }
+  }
+
+  private static void handleDeletes(
+      Context appContext, Set<Long> existingAnnotatedCallLogIds, CallLogMutations mutations) {
+    Set<Long> systemCallLogIds =
+        getIdsFromSystemCallLogThatMatch(appContext, existingAnnotatedCallLogIds);
+    LogUtil.i(
+        "SystemCallLogDataSource.handleDeletes",
+        "found %d entries in system call log",
+        systemCallLogIds.size());
+    Set<Long> idsInAnnotatedCallLogNoLongerInSystemCallLog = new ArraySet<>();
+    idsInAnnotatedCallLogNoLongerInSystemCallLog.addAll(existingAnnotatedCallLogIds);
+    idsInAnnotatedCallLogNoLongerInSystemCallLog.removeAll(systemCallLogIds);
+
+    LogUtil.i(
+        "SystemCallLogDataSource.handleDeletes",
+        "found %d call log entries to remove",
+        idsInAnnotatedCallLogNoLongerInSystemCallLog.size());
+
+    for (long id : idsInAnnotatedCallLogNoLongerInSystemCallLog) {
+      mutations.delete(id);
+    }
+  }
+
+  @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
+  private static Set<Long> getAnnotatedCallLogIds(Context appContext) {
+    ArraySet<Long> ids = new ArraySet<>();
+
+    try (Cursor cursor =
+        appContext
+            .getContentResolver()
+            .query(
+                AnnotatedCallLog.CONTENT_URI,
+                new String[] {AnnotatedCallLog._ID},
+                null,
+                null,
+                null)) {
+
+      if (cursor == null) {
+        LogUtil.e("SystemCallLogDataSource.getAnnotatedCallLogIds", "null cursor");
+        return ids;
+      }
+
+      if (cursor.moveToFirst()) {
+        int idColumn = cursor.getColumnIndexOrThrow(AnnotatedCallLog._ID);
+        do {
+          ids.add(cursor.getLong(idColumn));
+        } while (cursor.moveToNext());
+      }
+    }
+    return ids;
+  }
+
+  @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
+  private static Set<Long> getIdsFromSystemCallLogThatMatch(
+      Context appContext, Set<Long> matchingIds) {
+    ArraySet<Long> ids = new ArraySet<>();
+
+    String[] questionMarks = new String[matchingIds.size()];
+    Arrays.fill(questionMarks, "?");
+    String whereClause = (Calls._ID + " in (") + TextUtils.join(",", questionMarks) + ")";
+    String[] whereArgs = new String[matchingIds.size()];
+    int i = 0;
+    for (long id : matchingIds) {
+      whereArgs[i++] = String.valueOf(id);
+    }
+
+    try (Cursor cursor =
+        appContext
+            .getContentResolver()
+            .query(Calls.CONTENT_URI, new String[] {Calls._ID}, whereClause, whereArgs, null)) {
+
+      if (cursor == null) {
+        LogUtil.e("SystemCallLogDataSource.getIdsFromSystemCallLog", "null cursor");
+        return ids;
+      }
+
+      if (cursor.moveToFirst()) {
+        int idColumn = cursor.getColumnIndexOrThrow(Calls._ID);
+        do {
+          ids.add(cursor.getLong(idColumn));
+        } while (cursor.moveToNext());
+      }
+      return ids;
+    }
   }
 
   private static class CallLogObserver extends ContentObserver {
diff --git a/java/com/android/dialer/calllog/datasources/util/RowCombiner.java b/java/com/android/dialer/calllog/datasources/util/RowCombiner.java
new file mode 100644
index 0000000..0c7be1e
--- /dev/null
+++ b/java/com/android/dialer/calllog/datasources/util/RowCombiner.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.calllog.datasources.util;
+
+import android.content.ContentValues;
+import com.android.dialer.common.Assert;
+import java.util.Iterator;
+import java.util.List;
+
+/** Convenience class for aggregating row values. */
+public class RowCombiner {
+  private final List<ContentValues> individualRowsSortedByTimestampDesc;
+  private final ContentValues combinedRow = new ContentValues();
+
+  public RowCombiner(List<ContentValues> individualRowsSortedByTimestampDesc) {
+    Assert.checkArgument(!individualRowsSortedByTimestampDesc.isEmpty());
+    this.individualRowsSortedByTimestampDesc = individualRowsSortedByTimestampDesc;
+  }
+
+  /** Use the most recent value for the specified column. */
+  public RowCombiner useMostRecentLong(String columnName) {
+    combinedRow.put(columnName, individualRowsSortedByTimestampDesc.get(0).getAsLong(columnName));
+    return this;
+  }
+
+  /** Asserts that all column values for the given column name are the same, and uses it. */
+  public RowCombiner useSingleValueString(String columnName) {
+    Iterator<ContentValues> iterator = individualRowsSortedByTimestampDesc.iterator();
+    String singleValue = iterator.next().getAsString(columnName);
+    while (iterator.hasNext()) {
+      Assert.checkState(iterator.next().getAsString(columnName).equals(singleValue));
+    }
+    combinedRow.put(columnName, singleValue);
+    return this;
+  }
+
+  public ContentValues combine() {
+    return combinedRow;
+  }
+}
diff --git a/java/com/android/dialer/calllog/testing/FakeCallLogApplication.java b/java/com/android/dialer/calllog/testing/FakeCallLogApplication.java
new file mode 100644
index 0000000..cb22405
--- /dev/null
+++ b/java/com/android/dialer/calllog/testing/FakeCallLogApplication.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.calllog.testing;
+
+import android.app.Application;
+import com.android.dialer.calllog.CallLogModule;
+import com.android.dialer.calllog.database.CallLogDatabaseComponent;
+import com.android.dialer.inject.HasRootComponent;
+import dagger.Component;
+import javax.inject.Singleton;
+
+/**
+ * Fake application for call log robolectric tests which uses all real bindings but doesn't require
+ * tests to depend on and use all of DialerApplication.
+ */
+public final class FakeCallLogApplication extends Application implements HasRootComponent {
+
+  @Override
+  public Object component() {
+    return DaggerFakeCallLogApplication_FakeComponent.create();
+  }
+
+  @Singleton
+  @Component(modules = CallLogModule.class)
+  interface FakeComponent extends CallLogDatabaseComponent.HasComponent {}
+}
diff --git a/java/com/android/dialer/calllog/ui/AndroidManifest.xml b/java/com/android/dialer/calllog/ui/AndroidManifest.xml
index 2281677..eaf71ab 100644
--- a/java/com/android/dialer/calllog/ui/AndroidManifest.xml
+++ b/java/com/android/dialer/calllog/ui/AndroidManifest.xml
@@ -13,4 +13,4 @@
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License
  -->
-<manifest package="com.android.dialer.calllog"/>
+<manifest package="com.android.dialer.calllog.ui"/>
diff --git a/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java b/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java
deleted file mode 100644
index cd8622e..0000000
--- a/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.calllog.ui;
-
-import android.annotation.TargetApi;
-import android.content.Context;
-import android.content.CursorLoader;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.os.Build;
-import com.android.dialer.calllog.database.AnnotatedCallLog;
-import com.android.dialer.calllog.database.AnnotatedCallLog.Columns;
-
-/** CursorLoader which reads the annotated call log. */
-class AnnotatedCallLogCursorLoader extends CursorLoader {
-
-  AnnotatedCallLogCursorLoader(Context context) {
-    super(context);
-  }
-
-  @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
-  @Override
-  public Cursor loadInBackground() {
-    try (SQLiteDatabase readableDatabase = AnnotatedCallLog.getReadableDatabase(getContext())) {
-      return readableDatabase.rawQuery(
-          "SELECT * FROM "
-              + AnnotatedCallLog.TABLE_NAME
-              + " ORDER BY "
-              + Columns.TIMESTAMP
-              + " DESC",
-          null /* selectionArgs */);
-    }
-  }
-}
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java b/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java
new file mode 100644
index 0000000..f9ab21c
--- /dev/null
+++ b/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.calllog.ui;
+
+import android.database.Cursor;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
+
+/** {@link RecyclerView.Adapter} for the new call log fragment. */
+final class NewCallLogAdapter extends RecyclerView.Adapter<NewCallLogViewHolder> {
+
+  private final Cursor cursor;
+  private final int timestampIndex;
+
+  NewCallLogAdapter(Cursor cursor) {
+    this.cursor = cursor;
+    timestampIndex = cursor.getColumnIndexOrThrow(CoalescedAnnotatedCallLog.TIMESTAMP);
+  }
+
+  @Override
+  public NewCallLogViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
+    return new NewCallLogViewHolder(
+        LayoutInflater.from(viewGroup.getContext())
+            .inflate(R.layout.new_call_log_entry, viewGroup, false));
+  }
+
+  @Override
+  public void onBindViewHolder(NewCallLogViewHolder viewHolder, int position) {
+    cursor.moveToPosition(position);
+    long timestamp = cursor.getLong(timestampIndex);
+    viewHolder.bind(timestamp);
+  }
+
+  @Override
+  public int getItemCount() {
+    return cursor.getCount();
+  }
+}
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogFragment.java b/java/com/android/dialer/calllog/ui/NewCallLogFragment.java
index b8f2b13..89ed52f 100644
--- a/java/com/android/dialer/calllog/ui/NewCallLogFragment.java
+++ b/java/com/android/dialer/calllog/ui/NewCallLogFragment.java
@@ -17,30 +17,30 @@
 
 import android.app.Fragment;
 import android.app.LoaderManager.LoaderCallbacks;
-import android.content.Context;
+import android.content.CursorLoader;
 import android.content.Loader;
 import android.database.Cursor;
 import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.CursorAdapter;
-import android.widget.ListView;
-import android.widget.SimpleCursorAdapter;
-import android.widget.TextView;
 import com.android.dialer.calllog.CallLogComponent;
 import com.android.dialer.calllog.CallLogFramework;
 import com.android.dialer.calllog.CallLogFramework.CallLogUi;
-import com.android.dialer.calllog.database.AnnotatedCallLog.Columns;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
 import com.android.dialer.common.LogUtil;
-import java.text.SimpleDateFormat;
-import java.util.Locale;
+import com.android.dialer.common.concurrent.DialerExecutor;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
+import com.android.dialer.common.concurrent.DialerExecutorFactory;
 
 /** The "new" call log fragment implementation, which is built on top of the annotated call log. */
 public final class NewCallLogFragment extends Fragment
     implements CallLogUi, LoaderCallbacks<Cursor> {
 
-  private CursorAdapter cursorAdapter;
+  private DialerExecutor<Boolean> refreshAnnotatedCallLogTask;
+  private RecyclerView recyclerView;
 
   public NewCallLogFragment() {
     LogUtil.enterBlock("NewCallLogFragment.NewCallLogFragment");
@@ -52,8 +52,27 @@
 
     LogUtil.enterBlock("NewCallLogFragment.onCreate");
 
-    CallLogFramework callLogFramework = CallLogComponent.get(getContext()).callLogFramework();
+    CallLogComponent component = CallLogComponent.get(getContext());
+    CallLogFramework callLogFramework = component.callLogFramework();
     callLogFramework.attachUi(this);
+
+    DialerExecutorFactory dialerExecutorFactory =
+        DialerExecutorComponent.get(getContext()).dialerExecutorFactory();
+
+    refreshAnnotatedCallLogTask =
+        dialerExecutorFactory
+            .createUiTaskBuilder(
+                getFragmentManager(),
+                "NewCallLogFragment.refreshAnnotatedCallLog",
+                component.getRefreshAnnotatedCallLogWorker())
+            .build();
+  }
+
+  @Override
+  public void onStart() {
+    super.onStart();
+
+    LogUtil.enterBlock("NewCallLogFragment.onStart");
   }
 
   @Override
@@ -64,6 +83,9 @@
 
     CallLogFramework callLogFramework = CallLogComponent.get(getContext()).callLogFramework();
     callLogFramework.attachUi(this);
+
+    // TODO: Consider doing this when fragment becomes visible.
+    checkAnnotatedCallLogDirtyAndRefreshIfNecessary();
   }
 
   @Override
@@ -82,57 +104,44 @@
     LogUtil.enterBlock("NewCallLogFragment.onCreateView");
 
     View view = inflater.inflate(R.layout.new_call_log_fragment, container, false);
-    ListView listView = (ListView) view.findViewById(R.id.list);
+    recyclerView = view.findViewById(R.id.new_call_log_recycler_view);
 
-    this.cursorAdapter =
-        new MyCursorAdapter(
-            getContext(),
-            R.layout.new_call_log_entry,
-            null /* cursor */,
-            new String[] {Columns.TIMESTAMP, Columns.CONTACT_NAME},
-            new int[] {R.id.timestamp, R.id.contact_name},
-            0);
-    listView.setAdapter(cursorAdapter);
-
-    getLoaderManager().initLoader(0, null, this);
+    getLoaderManager().restartLoader(0, null, this);
 
     return view;
   }
 
+  private void checkAnnotatedCallLogDirtyAndRefreshIfNecessary() {
+    LogUtil.enterBlock("NewCallLogFragment.checkAnnotatedCallLogDirtyAndRefreshIfNecessary");
+    refreshAnnotatedCallLogTask.executeSerial(false /* skipDirtyCheck */);
+  }
+
   @Override
   public void invalidateUi() {
     LogUtil.enterBlock("NewCallLogFragment.invalidateUi");
-    // TODO: Implementation.
+    refreshAnnotatedCallLogTask.executeSerial(true /* skipDirtyCheck */);
   }
 
   @Override
   public Loader<Cursor> onCreateLoader(int id, Bundle args) {
-    // TODO: This is sort of weird, do we need to implement a content provider?
-    return new AnnotatedCallLogCursorLoader(getContext());
+    LogUtil.enterBlock("NewCallLogFragment.onCreateLoader");
+    // CoalescedAnnotatedCallLog requires that all params be null.
+    return new CursorLoader(
+        getContext(), CoalescedAnnotatedCallLog.CONTENT_URI, null, null, null, null);
   }
 
   @Override
   public void onLoadFinished(Loader<Cursor> loader, Cursor newCursor) {
-    cursorAdapter.swapCursor(newCursor);
+    LogUtil.enterBlock("NewCallLogFragment.onLoadFinished");
+
+    // TODO: Handle empty cursor by showing empty view.
+    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
+    recyclerView.setAdapter(new NewCallLogAdapter(newCursor));
   }
 
   @Override
   public void onLoaderReset(Loader<Cursor> loader) {
-    cursorAdapter.swapCursor(null);
-  }
-
-  private static class MyCursorAdapter extends SimpleCursorAdapter {
-
-    MyCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags) {
-      super(context, layout, c, from, to, flags);
-    }
-
-    @Override
-    public void setViewText(TextView view, String text) {
-      if (view.getId() == R.id.timestamp) {
-        text = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US).format(Long.valueOf(text));
-      }
-      view.setText(text);
-    }
+    LogUtil.enterBlock("NewCallLogFragment.onLoaderReset");
+    recyclerView.setAdapter(null);
   }
 }
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
new file mode 100644
index 0000000..4c459e1
--- /dev/null
+++ b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.calllog.ui;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.TextView;
+import java.text.SimpleDateFormat;
+import java.util.Locale;
+
+/** {@link RecyclerView.ViewHolder} for the new call log. */
+final class NewCallLogViewHolder extends RecyclerView.ViewHolder {
+
+  // TODO: Format correctly using current locale.
+  private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US);
+
+  private final TextView contactNameView;
+  private final TextView timestampView;
+
+  NewCallLogViewHolder(View view) {
+    super(view);
+    contactNameView = view.findViewById(R.id.contact_name);
+    timestampView = view.findViewById(R.id.timestamp);
+  }
+
+  void bind(long timestamp) {
+    contactNameView.setText("Contact Name Placeholder");
+    timestampView.setText(dateFormat.format(timestamp));
+  }
+}
diff --git a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
index ee3efd0..99797fa 100644
--- a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
+++ b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
@@ -18,16 +18,20 @@
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="horizontal">
-
-  <TextView
-      android:id="@+id/timestamp"
-      android:layout_width="wrap_content"
-      android:layout_height="wrap_content"/>
+    android:layout_height="wrap_content"
+    android:padding="8dp"
+    android:orientation="vertical">
 
   <TextView
       android:id="@+id/contact_name"
       android:layout_width="wrap_content"
-      android:layout_height="wrap_content"/>
+      android:layout_height="wrap_content"
+      style="@style/PrimaryText"/>
+
+  <TextView
+      android:id="@+id/timestamp"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      style="@style/SecondaryText"/>
+
 </LinearLayout>
\ No newline at end of file
diff --git a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml
index 433dbdd..e1d8410 100644
--- a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml
+++ b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml
@@ -15,8 +15,9 @@
   ~ limitations under the License
   -->
 
-<ListView
+<android.support.v7.widget.RecyclerView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/list"
+    android:id="@+id/new_call_log_recycler_view"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"/>
+    android:layout_height="match_parent"
+    android:background="@color/background_dialer_light"/>
diff --git a/java/com/android/dialer/common/Assert.java b/java/com/android/dialer/common/Assert.java
index 189d209..943e1dd 100644
--- a/java/com/android/dialer/common/Assert.java
+++ b/java/com/android/dialer/common/Assert.java
@@ -30,10 +30,6 @@
     Assert.areThreadAssertsEnabled = areThreadAssertsEnabled;
   }
 
-  public static boolean areThreadAssertsEnabled() {
-    return areThreadAssertsEnabled;
-  }
-
   /**
    * Called when a truly exceptional case occurs.
    *
diff --git a/java/com/android/dialer/common/concurrent/DialerExecutorComponent.java b/java/com/android/dialer/common/concurrent/DialerExecutorComponent.java
new file mode 100644
index 0000000..2503325
--- /dev/null
+++ b/java/com/android/dialer/common/concurrent/DialerExecutorComponent.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.common.concurrent;
+
+import android.content.Context;
+import com.android.dialer.inject.HasRootComponent;
+import dagger.Subcomponent;
+
+/** Dagger component which provides a {@link DialerExecutorFactory}. */
+@Subcomponent
+public abstract class DialerExecutorComponent {
+
+  public abstract DialerExecutorFactory dialerExecutorFactory();
+
+  public static DialerExecutorComponent get(Context context) {
+    return ((DialerExecutorComponent.HasComponent)
+            ((HasRootComponent) context.getApplicationContext()).component())
+        .dialerExecutorComponent();
+  }
+
+  /** Used to refer to the root application component. */
+  public interface HasComponent {
+    DialerExecutorComponent dialerExecutorComponent();
+  }
+}
diff --git a/java/com/android/incallui/calllocation/impl/TrafficStatsTags.java b/java/com/android/dialer/common/concurrent/DialerExecutorModule.java
similarity index 60%
copy from java/com/android/incallui/calllocation/impl/TrafficStatsTags.java
copy to java/com/android/dialer/common/concurrent/DialerExecutorModule.java
index 02cc2e0..281f88c 100644
--- a/java/com/android/incallui/calllocation/impl/TrafficStatsTags.java
+++ b/java/com/android/dialer/common/concurrent/DialerExecutorModule.java
@@ -13,17 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License
  */
+package com.android.dialer.common.concurrent;
 
-package com.android.incallui.calllocation.impl;
+import dagger.Binds;
+import dagger.Module;
 
-/** Constants used for logging */
-public class TrafficStatsTags {
+/** Module which binds the production {@link DialerExecutorFactory}. */
+@Module
+public abstract class DialerExecutorModule {
 
-  /**
-   * Must be greater than {@link com.android.contacts.common.util.TrafficStatsTags#TAG_MAX}, to
-   * respect the namespace of the tags in ContactsCommon.
-   */
-  public static final int DOWNLOAD_LOCATION_MAP_TAG = 0xd000;
-
-  public static final int REVERSE_GEOCODE_TAG = 0xd001;
+  @Binds
+  abstract DialerExecutorFactory bindDialerExecutorFactory(
+      DefaultDialerExecutorFactory defaultDialerExecutorFactory);
 }
diff --git a/java/com/android/dialer/compat/CompatUtils.java b/java/com/android/dialer/compat/CompatUtils.java
index 673cb70..351c89a 100644
--- a/java/com/android/dialer/compat/CompatUtils.java
+++ b/java/com/android/dialer/compat/CompatUtils.java
@@ -16,15 +16,9 @@
 package com.android.dialer.compat;
 
 import android.os.Build;
-import android.support.annotation.Nullable;
-import android.text.TextUtils;
-import android.util.Log;
-import java.lang.reflect.InvocationTargetException;
 
 public final class CompatUtils {
 
-  private static final String TAG = CompatUtils.class.getSimpleName();
-
   /** PrioritizedMimeType is added in API level 23. */
   public static boolean hasPrioritizedMimeType() {
     return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M;
@@ -70,153 +64,4 @@
   public static boolean isCallSubjectCompatible() {
     return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP) >= Build.VERSION_CODES.M;
   }
-
-  /**
-   * Determines if this version is compatible with a default dialer. Can also force the version to
-   * be lower through {@link SdkVersionOverride}.
-   *
-   * @return {@code true} if default dialer is a feature on this device, {@code false} otherwise.
-   */
-  public static boolean isDefaultDialerCompatible() {
-    return isMarshmallowCompatible();
-  }
-
-  /**
-   * Determines if this version is compatible with Lollipop Mr1-specific APIs. Can also force the
-   * version to be lower through SdkVersionOverride.
-   *
-   * @return {@code true} if runtime sdk is compatible with Lollipop MR1, {@code false} otherwise.
-   */
-  public static boolean isLollipopMr1Compatible() {
-    return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP_MR1)
-        >= Build.VERSION_CODES.LOLLIPOP_MR1;
-  }
-
-  /**
-   * Determines if this version is compatible with Marshmallow-specific APIs. Can also force the
-   * version to be lower through SdkVersionOverride.
-   *
-   * @return {@code true} if runtime sdk is compatible with Marshmallow, {@code false} otherwise.
-   */
-  public static boolean isMarshmallowCompatible() {
-    return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP) >= Build.VERSION_CODES.M;
-  }
-
-  /**
-   * Determines if the given class is available. Can be used to check if system apis exist at
-   * runtime.
-   *
-   * @param className the name of the class to look for.
-   * @return {@code true} if the given class is available, {@code false} otherwise or if className
-   *     is empty.
-   */
-  public static boolean isClassAvailable(@Nullable String className) {
-    if (TextUtils.isEmpty(className)) {
-      return false;
-    }
-    try {
-      Class.forName(className);
-      return true;
-    } catch (ClassNotFoundException e) {
-      return false;
-    } catch (Throwable t) {
-      Log.e(
-          TAG,
-          "Unexpected exception when checking if class:" + className + " exists at " + "runtime",
-          t);
-      return false;
-    }
-  }
-
-  /**
-   * Determines if the given class's method is available to call. Can be used to check if system
-   * apis exist at runtime.
-   *
-   * @param className the name of the class to look for
-   * @param methodName the name of the method to look for
-   * @param parameterTypes the needed parameter types for the method to look for
-   * @return {@code true} if the given class is available, {@code false} otherwise or if className
-   *     or methodName are empty.
-   */
-  public static boolean isMethodAvailable(
-      @Nullable String className, @Nullable String methodName, Class<?>... parameterTypes) {
-    if (TextUtils.isEmpty(className) || TextUtils.isEmpty(methodName)) {
-      return false;
-    }
-
-    try {
-      Class.forName(className).getMethod(methodName, parameterTypes);
-      return true;
-    } catch (ClassNotFoundException | NoSuchMethodException e) {
-      Log.v(TAG, "Could not find method: " + className + "#" + methodName);
-      return false;
-    } catch (Throwable t) {
-      Log.e(
-          TAG,
-          "Unexpected exception when checking if method: "
-              + className
-              + "#"
-              + methodName
-              + " exists at runtime",
-          t);
-      return false;
-    }
-  }
-
-  /**
-   * Invokes a given class's method using reflection. Can be used to call system apis that exist at
-   * runtime but not in the SDK.
-   *
-   * @param instance The instance of the class to invoke the method on.
-   * @param methodName The name of the method to invoke.
-   * @param parameterTypes The needed parameter types for the method.
-   * @param parameters The parameter values to pass into the method.
-   * @return The result of the invocation or {@code null} if instance or methodName are empty, or if
-   *     the reflection fails.
-   */
-  @Nullable
-  public static Object invokeMethod(
-      @Nullable Object instance,
-      @Nullable String methodName,
-      Class<?>[] parameterTypes,
-      Object[] parameters) {
-    if (instance == null || TextUtils.isEmpty(methodName)) {
-      return null;
-    }
-
-    String className = instance.getClass().getName();
-    try {
-      return Class.forName(className)
-          .getMethod(methodName, parameterTypes)
-          .invoke(instance, parameters);
-    } catch (ClassNotFoundException
-        | NoSuchMethodException
-        | IllegalArgumentException
-        | IllegalAccessException
-        | InvocationTargetException e) {
-      Log.v(TAG, "Could not invoke method: " + className + "#" + methodName);
-      return null;
-    } catch (Throwable t) {
-      Log.e(
-          TAG,
-          "Unexpected exception when invoking method: "
-              + className
-              + "#"
-              + methodName
-              + " at runtime",
-          t);
-      return null;
-    }
-  }
-
-  /**
-   * Determines if this version is compatible with Lollipop-specific APIs. Can also force the
-   * version to be lower through SdkVersionOverride.
-   *
-   * @return {@code true} if call subject is a feature on this device, {@code false} otherwise.
-   */
-  public static boolean isLollipopCompatible() {
-    return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.LOLLIPOP)
-        >= Build.VERSION_CODES.LOLLIPOP;
-  }
 }
diff --git a/java/com/android/dialer/constants/Constants.java b/java/com/android/dialer/constants/Constants.java
index d92c0bc..076393e 100644
--- a/java/com/android/dialer/constants/Constants.java
+++ b/java/com/android/dialer/constants/Constants.java
@@ -53,5 +53,8 @@
   @NonNull
   public abstract String getFileProviderAuthority();
 
+  @NonNull
+  public abstract String getAnnotatedCallLogProviderAuthority();
+
   protected Constants() {}
 }
diff --git a/java/com/android/dialer/constants/ScheduledJobIds.java b/java/com/android/dialer/constants/ScheduledJobIds.java
index 2fed4ef..a54adc7 100644
--- a/java/com/android/dialer/constants/ScheduledJobIds.java
+++ b/java/com/android/dialer/constants/ScheduledJobIds.java
@@ -32,6 +32,7 @@
   public static final int VVM_TASK_SCHEDULER_JOB = 200;
   public static final int VVM_STATUS_CHECK_JOB = 201;
   public static final int VVM_DEVICE_PROVISIONED_JOB = 202;
+  public static final int VVM_TRANSCRIPTION_JOB = 203;
 
   public static final int VOIP_REGISTRATION = 300;
 
diff --git a/java/com/android/incallui/calllocation/impl/TrafficStatsTags.java b/java/com/android/dialer/constants/TrafficStatsTags.java
similarity index 61%
rename from java/com/android/incallui/calllocation/impl/TrafficStatsTags.java
rename to java/com/android/dialer/constants/TrafficStatsTags.java
index 02cc2e0..4e61404 100644
--- a/java/com/android/incallui/calllocation/impl/TrafficStatsTags.java
+++ b/java/com/android/dialer/constants/TrafficStatsTags.java
@@ -11,19 +11,18 @@
  * 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
+ * limitations under the License.
  */
 
-package com.android.incallui.calllocation.impl;
+package com.android.dialer.constants;
 
-/** Constants used for logging */
+/** Registry of tags for {@link android.net.TrafficStats#setThreadStatsTag(int)} */
 public class TrafficStatsTags {
-
-  /**
-   * Must be greater than {@link com.android.contacts.common.util.TrafficStatsTags#TAG_MAX}, to
-   * respect the namespace of the tags in ContactsCommon.
-   */
+  public static final int CONTACT_PHOTO_DOWNLOAD_TAG = 0x0001;
+  public static final int NEARBY_PLACES_TAG = 0xaaaa;
+  public static final int REVERSE_LOOKUP_CONTACT_TAG = 0xbaaa;
+  public static final int REVERSE_LOOKUP_IMAGE_TAG = 0xbaab;
   public static final int DOWNLOAD_LOCATION_MAP_TAG = 0xd000;
-
   public static final int REVERSE_GEOCODE_TAG = 0xd001;
+  public static final int VISUAL_VOICEMAIL_TAG = 0xd002;
 }
diff --git a/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java b/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java
index 6b78b98..1111732 100644
--- a/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java
+++ b/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java
@@ -34,4 +34,10 @@
   public String getFileProviderAuthority() {
     return "com.android.dialer.files";
   }
+
+  @NonNull
+  @Override
+  public String getAnnotatedCallLogProviderAuthority() {
+    return "com.android.dialer.annotatedcalllog";
+  }
 }
diff --git a/java/com/android/dialer/contactactions/AndroidManifest.xml b/java/com/android/dialer/contactactions/AndroidManifest.xml
new file mode 100644
index 0000000..a64066e
--- /dev/null
+++ b/java/com/android/dialer/contactactions/AndroidManifest.xml
@@ -0,0 +1,16 @@
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~      http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<manifest package="com.android.dialer.contactactions"/>
diff --git a/java/com/android/dialer/contactactions/ContactActionBottomSheet.java b/java/com/android/dialer/contactactions/ContactActionBottomSheet.java
new file mode 100644
index 0000000..4718ff0
--- /dev/null
+++ b/java/com/android/dialer/contactactions/ContactActionBottomSheet.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.contactactions;
+
+import android.content.Context;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.design.widget.BottomSheetDialog;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import com.android.contacts.common.ContactPhotoManager;
+import com.android.dialer.common.Assert;
+import com.android.dialer.dialercontact.DialerContact;
+import java.util.List;
+
+/**
+ * {@link BottomSheetDialog} used for building a list of contact actions in a bottom sheet menu.
+ *
+ * <p>{@link #show(Context, DialerContact, List)} should be used to create and display the menu.
+ * Modules are built using {@link ContactActionModule} and some defaults are provided by {@link
+ * IntentModule} and {@link DividerModule}.
+ */
+public class ContactActionBottomSheet extends BottomSheetDialog implements OnClickListener {
+
+  private final List<ContactActionModule> modules;
+  private final DialerContact contact;
+
+  private ContactActionBottomSheet(
+      Context context, DialerContact contact, List<ContactActionModule> modules) {
+    super(context);
+    this.modules = modules;
+    this.contact = contact;
+    setContentView(LayoutInflater.from(context).inflate(R.layout.sheet_layout, null));
+  }
+
+  public static ContactActionBottomSheet show(
+      Context context, DialerContact contact, List<ContactActionModule> modules) {
+    ContactActionBottomSheet sheet = new ContactActionBottomSheet(context, contact, modules);
+    sheet.show();
+    return sheet;
+  }
+
+  @Override
+  protected void onCreate(Bundle bundle) {
+    super.onCreate(bundle);
+    LinearLayout container = Assert.isNotNull(findViewById(R.id.action_container));
+    container.addView(getContactView(container));
+
+    for (ContactActionModule module : modules) {
+      if (module instanceof DividerModule) {
+        container.addView(getDividerView(container));
+      } else {
+        container.addView(getModuleView(container, module));
+      }
+    }
+  }
+
+  // TODO: add on click action to contact.
+  private View getContactView(ViewGroup container) {
+    LayoutInflater inflater = LayoutInflater.from(getContext());
+    View contactView = inflater.inflate(R.layout.contact_layout, container, false);
+
+    ContactPhotoManager.getInstance(getContext())
+        .loadDialerThumbnailOrPhoto(
+            contactView.findViewById(R.id.quick_contact_photo),
+            contact.hasContactUri() ? Uri.parse(contact.getContactUri()) : null,
+            contact.getPhotoId(),
+            contact.hasPhotoUri() ? Uri.parse(contact.getPhotoUri()) : null,
+            contact.getNameOrNumber(),
+            contact.getContactType());
+
+    TextView nameView = contactView.findViewById(R.id.contact_name);
+    TextView numberView = contactView.findViewById(R.id.phone_number);
+
+    nameView.setText(contact.getNameOrNumber());
+    if (!TextUtils.isEmpty(contact.getDisplayNumber())) {
+      numberView.setVisibility(View.VISIBLE);
+      String secondaryInfo =
+          TextUtils.isEmpty(contact.getNumberLabel())
+              ? contact.getDisplayNumber()
+              : getContext()
+                  .getString(
+                      com.android.contacts.common.R.string.call_subject_type_and_number,
+                      contact.getNumberLabel(),
+                      contact.getDisplayNumber());
+      numberView.setText(secondaryInfo);
+    } else {
+      numberView.setVisibility(View.GONE);
+      numberView.setText(null);
+    }
+    return contactView;
+  }
+
+  private View getDividerView(ViewGroup container) {
+    LayoutInflater inflater = LayoutInflater.from(getContext());
+    return inflater.inflate(R.layout.divider_layout, container, false);
+  }
+
+  private View getModuleView(ViewGroup container, ContactActionModule module) {
+    LayoutInflater inflater = LayoutInflater.from(getContext());
+    View moduleView = inflater.inflate(R.layout.module_layout, container, false);
+    ((TextView) moduleView.findViewById(R.id.module_text)).setText(module.getStringId());
+    ((ImageView) moduleView.findViewById(R.id.module_image))
+        .setImageResource(module.getDrawableId());
+    moduleView.setOnClickListener(this);
+    moduleView.setTag(module);
+    return moduleView;
+  }
+
+  @Override
+  public void onClick(View view) {
+    if (((ContactActionModule) view.getTag()).onClick()) {
+      dismiss();
+    }
+  }
+}
diff --git a/java/com/android/dialer/contactactions/ContactActionModule.java b/java/com/android/dialer/contactactions/ContactActionModule.java
new file mode 100644
index 0000000..8089edc
--- /dev/null
+++ b/java/com/android/dialer/contactactions/ContactActionModule.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.contactactions;
+
+import android.support.annotation.DrawableRes;
+import android.support.annotation.StringRes;
+
+/**
+ * Modules used to build {@link ContactActionBottomSheet}.
+ *
+ * <p>Contacts as they relate to this class should be thought of as any entity that an action can be
+ * performed on like unknown/restricted contacts, along with saved and non-saved contacts.
+ */
+public interface ContactActionModule {
+
+  @StringRes
+  int getStringId();
+
+  @DrawableRes
+  int getDrawableId();
+
+  /** @return true if the bottom sheet should close, false otherwise */
+  boolean onClick();
+}
diff --git a/java/com/android/dialer/contactactions/DividerModule.java b/java/com/android/dialer/contactactions/DividerModule.java
new file mode 100644
index 0000000..aabd160
--- /dev/null
+++ b/java/com/android/dialer/contactactions/DividerModule.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.contactactions;
+
+import com.android.dialer.common.Assert;
+
+/**
+ * A module that inserts a grey line divider into {@link ContactActionModule}. Layout it provided in
+ * R.layout.divider_layout.xml
+ */
+public final class DividerModule implements ContactActionModule {
+
+  @Override
+  public int getStringId() {
+    throw Assert.createUnsupportedOperationFailException();
+  }
+
+  @Override
+  public int getDrawableId() {
+    throw Assert.createUnsupportedOperationFailException();
+  }
+
+  @Override
+  public boolean onClick() {
+    throw Assert.createUnsupportedOperationFailException();
+  }
+}
diff --git a/java/com/android/dialer/contactactions/IntentModule.java b/java/com/android/dialer/contactactions/IntentModule.java
new file mode 100644
index 0000000..201f521
--- /dev/null
+++ b/java/com/android/dialer/contactactions/IntentModule.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.contactactions;
+
+import android.content.Context;
+import android.content.Intent;
+import android.support.annotation.DrawableRes;
+import android.support.annotation.StringRes;
+import com.android.dialer.callintent.CallInitiationType.Type;
+import com.android.dialer.callintent.CallIntentBuilder;
+
+/**
+ * {@link ContactActionModule} useful for making easy to build modules based on starting an intent.
+ */
+public class IntentModule implements ContactActionModule {
+
+  private final Context context;
+  private final Intent intent;
+  private final @StringRes int text;
+  private final @DrawableRes int image;
+
+  public IntentModule(Context context, Intent intent, @StringRes int text, @DrawableRes int image) {
+    this.context = context;
+    this.intent = intent;
+    this.text = text;
+    this.image = image;
+  }
+
+  @Override
+  public int getStringId() {
+    return text;
+  }
+
+  @Override
+  public int getDrawableId() {
+    return image;
+  }
+
+  @Override
+  public boolean onClick() {
+    context.startActivity(intent);
+    return true;
+  }
+
+  public static IntentModule newCallModule(Context context, String number, Type initiationType) {
+    return new IntentModule(
+        context,
+        new CallIntentBuilder(number, initiationType).build(),
+        R.string.call,
+        R.drawable.quantum_ic_call_white_24);
+  }
+
+  public static IntentModule newVideoCallModule(
+      Context context, String number, Type initiationType) {
+    return new IntentModule(
+        context,
+        new CallIntentBuilder(number, initiationType).setIsVideoCall(true).build(),
+        R.string.video_call,
+        R.drawable.quantum_ic_videocam_white_24);
+  }
+}
diff --git a/java/com/android/dialer/contactactions/res/layout/contact_layout.xml b/java/com/android/dialer/contactactions/res/layout/contact_layout.xml
new file mode 100644
index 0000000..bf32971
--- /dev/null
+++ b/java/com/android/dialer/contactactions/res/layout/contact_layout.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~      http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="horizontal"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:layout_marginTop="8dp"
+    android:layout_marginBottom="12dp"
+    android:layout_marginEnd="8dp">
+
+  <QuickContactBadge
+      android:id="@+id/quick_contact_photo"
+      android:layout_width="@dimen/contact_actions_image_size"
+      android:layout_height="@dimen/contact_actions_image_size"
+      android:layout_marginStart="@dimen/contact_actions_image_margin"
+      android:layout_marginEnd="@dimen/contact_actions_image_margin"
+      android:padding="4dp"
+      android:focusable="true"/>
+
+  <LinearLayout
+      android:orientation="vertical"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:gravity="center_vertical">
+
+    <TextView
+        android:id="@+id/contact_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        style="@style/PrimaryText"/>
+
+    <TextView
+        android:id="@+id/phone_number"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="2dp"
+        style="@style/SecondaryText"/>
+  </LinearLayout>
+</LinearLayout>
\ No newline at end of file
diff --git a/java/com/android/dialer/contactactions/res/layout/divider_layout.xml b/java/com/android/dialer/contactactions/res/layout/divider_layout.xml
new file mode 100644
index 0000000..fdee50e
--- /dev/null
+++ b/java/com/android/dialer/contactactions/res/layout/divider_layout.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~      http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<View
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="1dp"
+    android:layout_marginTop="8dp"
+    android:layout_marginBottom="8dp"
+    android:background="#12000000"/>
diff --git a/java/com/android/dialer/contactactions/res/layout/module_layout.xml b/java/com/android/dialer/contactactions/res/layout/module_layout.xml
new file mode 100644
index 0000000..9aee679
--- /dev/null
+++ b/java/com/android/dialer/contactactions/res/layout/module_layout.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~      http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/module_container"
+    android:orientation="horizontal"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="?android:attr/selectableItemBackground">
+
+  <ImageView
+      android:id="@+id/module_image"
+      android:layout_width="@dimen/contact_actions_image_size"
+      android:layout_height="@dimen/contact_actions_image_size"
+      android:layout_marginStart="@dimen/contact_actions_image_margin"
+      android:layout_marginEnd="@dimen/contact_actions_image_margin"
+      android:tint="@color/dialer_secondary_text_color"
+      android:scaleType="center"/>
+
+  <TextView
+      android:id="@+id/module_text"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_gravity="center_vertical"
+      style="@style/PrimaryText"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/java/com/android/dialer/contactactions/res/layout/sheet_layout.xml b/java/com/android/dialer/contactactions/res/layout/sheet_layout.xml
new file mode 100644
index 0000000..6984367
--- /dev/null
+++ b/java/com/android/dialer/contactactions/res/layout/sheet_layout.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~      http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/action_container"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:paddingTop="4dp"
+    android:paddingBottom="8dp"/>
diff --git a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml b/java/com/android/dialer/contactactions/res/values/dimens.xml
similarity index 75%
copy from java/com/android/incallui/res/drawable/img_conference_automirrored.xml
copy to java/com/android/dialer/contactactions/res/values/dimens.xml
index 78b2876..47bf804 100644
--- a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml
+++ b/java/com/android/dialer/contactactions/res/values/dimens.xml
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2017 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -15,7 +14,7 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-  android:autoMirrored="true"
-  android:src="@drawable/img_conference"/>
\ No newline at end of file
+<resources>
+  <dimen name="contact_actions_image_size">48dp</dimen>
+  <dimen name="contact_actions_image_margin">12dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/contactsfragment/ContactViewHolder.java b/java/com/android/dialer/contactsfragment/ContactViewHolder.java
index 5df106d..586e22a 100644
--- a/java/com/android/dialer/contactsfragment/ContactViewHolder.java
+++ b/java/com/android/dialer/contactsfragment/ContactViewHolder.java
@@ -16,6 +16,7 @@
 
 package com.android.dialer.contactsfragment;
 
+import android.content.Context;
 import android.net.Uri;
 import android.provider.ContactsContract.QuickContact;
 import android.support.v7.widget.RecyclerView;
@@ -25,6 +26,8 @@
 import android.widget.QuickContactBadge;
 import android.widget.TextView;
 import com.android.dialer.common.Assert;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
 
 /** View holder for a contact. */
 final class ContactViewHolder extends RecyclerView.ViewHolder implements OnClickListener {
@@ -32,12 +35,14 @@
   private final TextView header;
   private final TextView name;
   private final QuickContactBadge photo;
+  private final Context context;
 
   private String headerText;
   private Uri contactUri;
 
   public ContactViewHolder(View itemView) {
     super(itemView);
+    context = itemView.getContext();
     itemView.findViewById(R.id.click_target).setOnClickListener(this);
     header = (TextView) itemView.findViewById(R.id.header);
     name = (TextView) itemView.findViewById(R.id.contact_name);
@@ -60,6 +65,10 @@
     name.setText(displayName);
     header.setText(headerText);
     header.setVisibility(showHeader ? View.VISIBLE : View.INVISIBLE);
+
+    Logger.get(context)
+        .logQuickContactOnTouch(
+            photo, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CONTACTS_FRAGMENT_BADGE, true);
   }
 
   public QuickContactBadge getPhoto() {
@@ -76,6 +85,8 @@
 
   @Override
   public void onClick(View v) {
+    Logger.get(context)
+        .logInteraction(InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CONTACTS_FRAGMENT_ITEM);
     QuickContact.showQuickContact(
         photo.getContext(), photo, contactUri, QuickContact.MODE_LARGE, null /* excludeMimes */);
   }
diff --git a/java/com/android/dialer/contactsfragment/ContactsAdapter.java b/java/com/android/dialer/contactsfragment/ContactsAdapter.java
index 4692eff..309e034 100644
--- a/java/com/android/dialer/contactsfragment/ContactsAdapter.java
+++ b/java/com/android/dialer/contactsfragment/ContactsAdapter.java
@@ -23,10 +23,10 @@
 import android.support.v4.util.ArrayMap;
 import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
+import android.view.View;
 import android.view.ViewGroup;
-import android.widget.TextView;
 import com.android.contacts.common.ContactPhotoManager;
-import com.android.dialer.common.Assert;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
 
 /** List adapter for the union of all contacts associated with every account on the device. */
 final class ContactsAdapter extends RecyclerView.Adapter<ContactViewHolder> {
@@ -70,7 +70,7 @@
             getPhotoId(cursor),
             getPhotoUri(cursor),
             name,
-            0);
+            LetterTileDrawable.TYPE_DEFAULT);
 
     String photoDescription =
         context.getString(com.android.contacts.common.R.string.description_quick_contact_for, name);
@@ -79,17 +79,23 @@
     // Always show the view holder's header if it's the first item in the list. Otherwise, compare
     // it to the previous element and only show the anchored header if the row elements fall into
     // the same sublists.
-    if (position == 0) {
-      contactViewHolder.bind(header, name, contactUri, true);
-    } else {
-      boolean showHeader = !header.equals(getHeaderString(position - 1));
-      contactViewHolder.bind(header, name, contactUri, showHeader);
-    }
+    boolean showHeader = position == 0 || !header.equals(getHeaderString(position - 1));
+    contactViewHolder.bind(header, name, contactUri, showHeader);
+  }
+
+  @Override
+  public void onViewRecycled(ContactViewHolder contactViewHolder) {
+    super.onViewRecycled(contactViewHolder);
+    holderMap.remove(contactViewHolder);
   }
 
   public void refreshHeaders() {
     for (ContactViewHolder holder : holderMap.keySet()) {
-      onBindViewHolder(holder, holderMap.get(holder));
+      int position = holderMap.get(holder);
+      boolean showHeader =
+          position == 0 || !getHeaderString(position).equals(getHeaderString(position - 1));
+      int visibility = showHeader ? View.VISIBLE : View.INVISIBLE;
+      holder.getHeaderView().setVisibility(visibility);
     }
   }
 
@@ -98,27 +104,6 @@
     return cursor == null ? 0 : cursor.getCount();
   }
 
-  public String getHeader(int position) {
-    return getHolderAt(position).getHeader();
-  }
-
-  public TextView getHeaderView(int position) {
-    return getHolderAt(position).getHeaderView();
-  }
-
-  public void setHeaderVisibility(int position, int visibility) {
-    getHolderAt(position).getHeaderView().setVisibility(visibility);
-  }
-
-  private ContactViewHolder getHolderAt(int position) {
-    for (ContactViewHolder holder : holderMap.keySet()) {
-      if (holderMap.get(holder) == position) {
-        return holder;
-      }
-    }
-    throw Assert.createIllegalStateFailException("No holder for position: " + position);
-  }
-
   private static String getDisplayName(Cursor cursor) {
     return cursor.getString(ContactsCursorLoader.CONTACT_DISPLAY_NAME);
   }
@@ -138,7 +123,7 @@
     return Contacts.getLookupUri(contactId, lookupKey);
   }
 
-  private String getHeaderString(int position) {
+  public String getHeaderString(int position) {
     int index = -1;
     int sum = 0;
     while (sum <= position) {
diff --git a/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java b/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java
index 6d4d210..2bb540a 100644
--- a/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java
+++ b/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java
@@ -29,7 +29,7 @@
   public static final int CONTACT_PHOTO_URI = 3;
   public static final int CONTACT_LOOKUP_KEY = 4;
 
-  public static final String[] CONTACTS_PROJECTION =
+  public static final String[] CONTACTS_PROJECTION_DISPLAY_NAME_PRIMARY =
       new String[] {
         Contacts._ID, // 0
         Contacts.DISPLAY_NAME_PRIMARY, // 1
@@ -38,16 +38,35 @@
         Contacts.LOOKUP_KEY, // 4
       };
 
-  public ContactsCursorLoader(Context context) {
+  public static final String[] CONTACTS_PROJECTION_DISPLAY_NAME_ALTERNATIVE =
+      new String[] {
+        Contacts._ID, // 0
+        Contacts.DISPLAY_NAME_ALTERNATIVE, // 1
+        Contacts.PHOTO_ID, // 2
+        Contacts.PHOTO_THUMBNAIL_URI, // 3
+        Contacts.LOOKUP_KEY, // 4
+      };
+
+  private ContactsCursorLoader(Context context, String[] contactProjection, String sortKey) {
     super(
         context,
         Contacts.CONTENT_URI
             .buildUpon()
             .appendQueryParameter(Contacts.EXTRA_ADDRESS_BOOK_INDEX, "true")
             .build(),
-        CONTACTS_PROJECTION,
+        contactProjection,
         null,
         null,
-        Contacts.SORT_KEY_PRIMARY + " ASC");
+        sortKey + " ASC");
+  }
+
+  public static ContactsCursorLoader createInstanceDisplayNamePrimary(
+      Context context, String sortKey) {
+    return new ContactsCursorLoader(context, CONTACTS_PROJECTION_DISPLAY_NAME_PRIMARY, sortKey);
+  }
+
+  public static ContactsCursorLoader createInstanceDisplayNameAlternative(
+      Context context, String sortKey) {
+    return new ContactsCursorLoader(context, CONTACTS_PROJECTION_DISPLAY_NAME_ALTERNATIVE, sortKey);
   }
 }
diff --git a/java/com/android/dialer/contactsfragment/ContactsFragment.java b/java/com/android/dialer/contactsfragment/ContactsFragment.java
index ea662fc..a996a4f 100644
--- a/java/com/android/dialer/contactsfragment/ContactsFragment.java
+++ b/java/com/android/dialer/contactsfragment/ContactsFragment.java
@@ -16,63 +16,125 @@
 
 package com.android.dialer.contactsfragment;
 
+import android.Manifest.permission;
 import android.app.Fragment;
 import android.app.LoaderManager.LoaderCallbacks;
 import android.content.Loader;
+import android.content.pm.PackageManager;
 import android.database.Cursor;
 import android.os.Bundle;
+import android.provider.ContactsContract.Contacts;
 import android.support.annotation.Nullable;
+import android.support.v13.app.FragmentCompat;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.RecyclerView.Recycler;
+import android.support.v7.widget.RecyclerView.State;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnScrollChangeListener;
 import android.view.ViewGroup;
 import android.widget.TextView;
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.dialer.common.Assert;
+import com.android.dialer.util.DialerUtils;
+import com.android.dialer.util.IntentUtil;
 import com.android.dialer.util.PermissionsUtil;
+import com.android.dialer.widget.EmptyContentView;
+import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
 
 /** Fragment containing a list of all contacts. */
 public class ContactsFragment extends Fragment
-    implements LoaderCallbacks<Cursor>, OnScrollChangeListener {
+    implements LoaderCallbacks<Cursor>,
+        OnScrollChangeListener,
+        OnEmptyViewActionButtonClickedListener {
 
+  public static final int READ_CONTACTS_PERMISSION_REQUEST_CODE = 1;
+
+  private FastScroller fastScroller;
   private TextView anchoredHeader;
   private RecyclerView recyclerView;
   private LinearLayoutManager manager;
   private ContactsAdapter adapter;
+  private EmptyContentView emptyContentView;
+
+  private ContactsPreferences contactsPrefs;
+
+  private final ContactsPreferences.ChangeListener preferencesChangeListener =
+      () -> getLoaderManager().restartLoader(0, null, this);
+
+  @Override
+  public void onCreate(Bundle savedState) {
+    super.onCreate(savedState);
+    contactsPrefs = new ContactsPreferences(getContext());
+    contactsPrefs.registerChangeListener(preferencesChangeListener);
+  }
 
   @Nullable
   @Override
   public View onCreateView(
       LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
     View view = inflater.inflate(R.layout.fragment_contacts, container, false);
+    fastScroller = (FastScroller) view.findViewById(R.id.fast_scroller);
     anchoredHeader = (TextView) view.findViewById(R.id.header);
-    manager = new LinearLayoutManager(getContext());
-
-    // TODO: Handle contacts permission denied view
-    // TODO: Handle 0 contacts layout
     recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
-    recyclerView.setLayoutManager(manager);
-    getLoaderManager().initLoader(0, null, this);
+
+    emptyContentView = (EmptyContentView) view.findViewById(R.id.empty_list_view);
+    emptyContentView.setImage(R.drawable.empty_contacts);
+    emptyContentView.setActionClickedListener(this);
 
     if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
       getLoaderManager().initLoader(0, null, this);
+    } else {
+      emptyContentView.setDescription(R.string.permission_no_contacts);
+      emptyContentView.setActionLabel(R.string.permission_single_turn_on);
+      emptyContentView.setVisibility(View.VISIBLE);
     }
 
     return view;
   }
 
+  /** @return a loader according to sort order and display order. */
   @Override
   public Loader<Cursor> onCreateLoader(int id, Bundle args) {
-    return new ContactsCursorLoader(getContext());
+    boolean sortOrderPrimary =
+        (contactsPrefs.getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY);
+    boolean displayOrderPrimary =
+        (contactsPrefs.getDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+
+    String sortKey = sortOrderPrimary ? Contacts.SORT_KEY_PRIMARY : Contacts.SORT_KEY_ALTERNATIVE;
+    return displayOrderPrimary
+        ? ContactsCursorLoader.createInstanceDisplayNamePrimary(getContext(), sortKey)
+        : ContactsCursorLoader.createInstanceDisplayNameAlternative(getContext(), sortKey);
   }
 
   @Override
   public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
-    // TODO setup fast scroller.
-    adapter = new ContactsAdapter(getContext(), cursor);
-    recyclerView.setAdapter(adapter);
-    if (adapter.getItemCount() > 1) {
-      recyclerView.setOnScrollChangeListener(this);
+    if (cursor.getCount() == 0) {
+      emptyContentView.setDescription(R.string.all_contacts_empty);
+      emptyContentView.setActionLabel(R.string.all_contacts_empty_add_contact_action);
+      emptyContentView.setVisibility(View.VISIBLE);
+    } else {
+      emptyContentView.setVisibility(View.GONE);
+      adapter = new ContactsAdapter(getContext(), cursor);
+      manager =
+          new LinearLayoutManager(getContext()) {
+            @Override
+            public void onLayoutChildren(Recycler recycler, State state) {
+              super.onLayoutChildren(recycler, state);
+              int itemsShown = findLastVisibleItemPosition() - findFirstVisibleItemPosition() + 1;
+              if (adapter.getItemCount() > itemsShown) {
+                fastScroller.setVisibility(View.VISIBLE);
+                recyclerView.setOnScrollChangeListener(ContactsFragment.this);
+              } else {
+                fastScroller.setVisibility(View.GONE);
+              }
+            }
+          };
+
+      recyclerView.setLayoutManager(manager);
+      recyclerView.setAdapter(adapter);
+      fastScroller.setup(adapter, manager);
     }
   }
 
@@ -81,6 +143,7 @@
     recyclerView.setAdapter(null);
     recyclerView.setOnScrollChangeListener(null);
     adapter = null;
+    contactsPrefs.unregisterChangeListener();
   }
 
   /*
@@ -95,8 +158,10 @@
    */
   @Override
   public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
+    fastScroller.updateContainerAndScrollBarPosition(recyclerView);
     int firstVisibleItem = manager.findFirstVisibleItemPosition();
     int firstCompletelyVisible = manager.findFirstCompletelyVisibleItemPosition();
+    String anchoredHeaderString = adapter.getHeaderString(firstCompletelyVisible);
 
     // If the user swipes to the top of the list very quickly, there is some strange behavior
     // between this method updating headers and adapter#onBindViewHolder updating headers.
@@ -104,15 +169,46 @@
     if (firstVisibleItem == firstCompletelyVisible && firstVisibleItem == 0) {
       adapter.refreshHeaders();
       anchoredHeader.setVisibility(View.INVISIBLE);
+    } else if (adapter.getHeaderString(firstVisibleItem).equals(anchoredHeaderString)) {
+      anchoredHeader.setText(anchoredHeaderString);
+      anchoredHeader.setVisibility(View.VISIBLE);
+      getContactHolder(firstVisibleItem).getHeaderView().setVisibility(View.INVISIBLE);
+      getContactHolder(firstCompletelyVisible).getHeaderView().setVisibility(View.INVISIBLE);
     } else {
-      boolean showAnchor =
-          adapter.getHeader(firstVisibleItem).equals(adapter.getHeader(firstCompletelyVisible));
-      anchoredHeader.setText(adapter.getHeader(firstCompletelyVisible));
-      anchoredHeader.setVisibility(showAnchor ? View.VISIBLE : View.INVISIBLE);
+      anchoredHeader.setVisibility(View.INVISIBLE);
+      getContactHolder(firstVisibleItem).getHeaderView().setVisibility(View.VISIBLE);
+      getContactHolder(firstCompletelyVisible).getHeaderView().setVisibility(View.VISIBLE);
+    }
+  }
 
-      int rowHeaderVisibility = showAnchor ? View.INVISIBLE : View.VISIBLE;
-      adapter.setHeaderVisibility(firstVisibleItem, rowHeaderVisibility);
-      adapter.setHeaderVisibility(firstCompletelyVisible, rowHeaderVisibility);
+  private ContactViewHolder getContactHolder(int position) {
+    return ((ContactViewHolder) recyclerView.findViewHolderForAdapterPosition(position));
+  }
+
+  @Override
+  public void onEmptyViewActionButtonClicked() {
+    if (emptyContentView.getActionLabel() == R.string.permission_single_turn_on) {
+      FragmentCompat.requestPermissions(
+          this, new String[] {permission.READ_CONTACTS}, READ_CONTACTS_PERMISSION_REQUEST_CODE);
+    } else if (emptyContentView.getActionLabel()
+        == R.string.all_contacts_empty_add_contact_action) {
+      // Add new contact
+      DialerUtils.startActivityWithErrorToast(
+          getContext(), IntentUtil.getNewContactIntent(), R.string.add_contact_not_available);
+    } else {
+      throw Assert.createIllegalStateFailException("Invalid empty content view action label.");
+    }
+  }
+
+  @Override
+  public void onRequestPermissionsResult(
+      int requestCode, String[] permissions, int[] grantResults) {
+    if (requestCode == READ_CONTACTS_PERMISSION_REQUEST_CODE) {
+      if (grantResults.length >= 1 && PackageManager.PERMISSION_GRANTED == grantResults[0]) {
+        // Force a refresh of the data since we were missing the permission before this.
+        emptyContentView.setVisibility(View.GONE);
+        getLoaderManager().initLoader(0, null, this);
+      }
     }
   }
 }
diff --git a/java/com/android/dialer/contactsfragment/FastScroller.java b/java/com/android/dialer/contactsfragment/FastScroller.java
new file mode 100644
index 0000000..980032c
--- /dev/null
+++ b/java/com/android/dialer/contactsfragment/FastScroller.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.contactsfragment;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+/** Widget to add fast scrolling to {@link ContactsFragment}. */
+public class FastScroller extends RelativeLayout {
+
+  private final int touchTargetWidth;
+
+  private ContactsAdapter adapter;
+  private LinearLayoutManager layoutManager;
+
+  private TextView container;
+  private View scrollBar;
+
+  private boolean dragStarted;
+
+  public FastScroller(Context context, AttributeSet attrs) {
+    super(context, attrs);
+    touchTargetWidth =
+        context.getResources().getDimensionPixelSize(R.dimen.fast_scroller_touch_target_width);
+  }
+
+  @Override
+  protected void onFinishInflate() {
+    super.onFinishInflate();
+    container = (TextView) findViewById(R.id.fast_scroller_container);
+    scrollBar = findViewById(R.id.fast_scroller_scroll_bar);
+  }
+
+  void setup(ContactsAdapter adapter, LinearLayoutManager layoutManager) {
+    this.adapter = adapter;
+    this.layoutManager = layoutManager;
+  }
+
+  @Override
+  public boolean onTouchEvent(@NonNull MotionEvent event) {
+    // Don't override if touch event isn't within desired touch target and dragging hasn't started.
+    if (!dragStarted && getWidth() - touchTargetWidth - event.getX() > 0) {
+      return super.onTouchEvent(event);
+    }
+
+    switch (event.getAction()) {
+      case MotionEvent.ACTION_DOWN:
+        dragStarted = true;
+        container.setVisibility(VISIBLE);
+        scrollBar.setSelected(true);
+        // fall through
+      case MotionEvent.ACTION_MOVE:
+        setContainerAndScrollBarPosition(event.getY());
+        setRecyclerViewPosition(event.getY());
+        return true;
+      case MotionEvent.ACTION_UP:
+      case MotionEvent.ACTION_CANCEL:
+        dragStarted = false;
+        container.setVisibility(INVISIBLE);
+        scrollBar.setSelected(false);
+        return true;
+    }
+    return super.onTouchEvent(event);
+  }
+
+  private void setRecyclerViewPosition(float y) {
+    final int itemCount = adapter.getItemCount();
+    float scrolledPosition = getScrolledPercentage(y) * (float) itemCount;
+    int targetPos = getValueInRange(0, itemCount - 1, (int) scrolledPosition);
+    layoutManager.scrollToPositionWithOffset(targetPos, 0);
+    container.setText(adapter.getHeaderString(targetPos));
+  }
+
+  // Returns a float in range [0, 1] which represents the position of the scroller.
+  private float getScrolledPercentage(float y) {
+    if (scrollBar.getY() == 0) {
+      return 0f;
+    } else if (scrollBar.getY() + scrollBar.getHeight() >= getHeight()) {
+      return 1f;
+    } else {
+      return y / (float) getHeight();
+    }
+  }
+
+  private int getValueInRange(int min, int max, int value) {
+    int minimum = Math.max(min, value);
+    return Math.min(minimum, max);
+  }
+
+  void updateContainerAndScrollBarPosition(RecyclerView recyclerView) {
+    if (!scrollBar.isSelected()) {
+      int verticalScrollOffset = recyclerView.computeVerticalScrollOffset();
+      int verticalScrollRange = recyclerView.computeVerticalScrollRange();
+      float proportion = (float) verticalScrollOffset / ((float) verticalScrollRange - getHeight());
+      setContainerAndScrollBarPosition(getHeight() * proportion);
+    }
+  }
+
+  private void setContainerAndScrollBarPosition(float y) {
+    int scrollBarHeight = scrollBar.getHeight();
+    int containerHeight = container.getHeight();
+    scrollBar.setY(
+        getValueInRange(0, getHeight() - scrollBarHeight, (int) (y - scrollBarHeight / 2)));
+    container.setY(
+        getValueInRange(
+            0, getHeight() - containerHeight - scrollBarHeight / 2, (int) (y - containerHeight)));
+  }
+}
diff --git a/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml b/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml
new file mode 100644
index 0000000..a7b2277
--- /dev/null
+++ b/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~      http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+  <solid android:color="@color/dialer_theme_color"/>
+  <size
+      android:height="@dimen/fast_scroller_container_size"
+      android:width="@dimen/fast_scroller_container_size"/>
+  <corners
+      android:topLeftRadius="@dimen/fast_scroller_container_corner_radius"
+      android:topRightRadius="@dimen/fast_scroller_container_corner_radius"
+      android:bottomLeftRadius="@dimen/fast_scroller_bottom_left_corner_radius"
+      android:bottomRightRadius="@dimen/fast_scroller_bottom_right_corner_radius"/>
+</shape>
\ No newline at end of file
diff --git a/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml b/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml
new file mode 100644
index 0000000..a3e0c25
--- /dev/null
+++ b/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~      http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+  <item android:state_selected="true">
+    <shape android:shape="rectangle">
+      <solid android:color="@color/dialer_theme_color"/>
+      <size android:height="32dp" android:width="4dp"/>
+      <corners android:radius="2dp"/>
+    </shape>
+  </item>
+  <item>
+    <shape android:shape="rectangle">
+      <solid android:color="@color/dialer_secondary_text_color"/>
+      <size android:height="32dp" android:width="4dp"/>
+      <corners android:radius="2dp"/>
+    </shape>
+  </item>
+</selector>
\ No newline at end of file
diff --git a/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml b/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml
index af87c7f..9e829fe 100644
--- a/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml
+++ b/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml
@@ -43,11 +43,13 @@
 
     <TextView
         android:id="@+id/contact_name"
-        android:layout_width="match_parent"
+        android:layout_width="wrap_content"
         android:layout_height="match_parent"
         android:paddingStart="@dimen/text_padding_start"
         android:paddingEnd="@dimen/text_padding_end"
-        android:gravity="center_vertical|start"
+        android:maxLines="1"
+        android:ellipsize="end"
+        android:gravity="center_vertical"
         android:textSize="@dimen/text_size"
         android:textColor="@color/dialer_primary_text_color"
         android:fontFamily="sans-serif"/>
diff --git a/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml b/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml
index 67b490f..7cbc4f0 100644
--- a/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml
+++ b/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml
@@ -23,8 +23,46 @@
       android:id="@+id/recycler_view"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
-      android:background="@color/background_dialer_white"/>
+      android:background="@color/background_dialer_light"/>
+
+  <!-- Scrollbars are always on the right side of the screen. Layouts should use Rights/Left instead
+       of Start/End -->
+  <com.android.dialer.contactsfragment.FastScroller
+      android:id="@+id/fast_scroller"
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:layout_marginTop="8dp"
+      android:layout_marginBottom="8dp"
+      android:clipChildren="false">
+
+    <TextView
+        android:id="@+id/fast_scroller_container"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_toLeftOf="@+id/fast_scroller_scroll_bar"
+        android:gravity="center"
+        android:textSize="48sp"
+        android:textColor="@color/background_dialer_white"
+        android:visibility="gone"
+        android:background="@drawable/fast_scroller_container_background"/>
+
+    <ImageView
+        android:id="@+id/fast_scroller_scroll_bar"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="8dp"
+        android:layout_alignParentRight="true"
+        android:paddingRight="16dp"
+        android:src="@drawable/fast_scroller_scroll_bar" />
+  </com.android.dialer.contactsfragment.FastScroller>
 
   <!-- Anchored header view -->
   <include layout="@layout/header"/>
+
+  <com.android.dialer.widget.EmptyContentView
+      android:id="@+id/empty_list_view"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_gravity="center"
+      android:visibility="gone"/>
 </FrameLayout>
diff --git a/java/com/android/dialer/contactsfragment/res/values/dimens.xml b/java/com/android/dialer/contactsfragment/res/values/dimens.xml
index 00d7c6d..f120014 100644
--- a/java/com/android/dialer/contactsfragment/res/values/dimens.xml
+++ b/java/com/android/dialer/contactsfragment/res/values/dimens.xml
@@ -25,4 +25,11 @@
   <dimen name="text_padding_start">16dp</dimen>
   <dimen name="text_padding_end">8dp</dimen>
   <dimen name="text_size">16sp</dimen>
-</resources>
+
+  <dimen name="fast_scroller_touch_target_width">20dp</dimen>
+
+  <dimen name="fast_scroller_container_size">88dp</dimen>
+  <dimen name="fast_scroller_container_corner_radius">44dp</dimen>
+  <dimen name="fast_scroller_bottom_right_corner_radius">0px</dimen>
+  <dimen name="fast_scroller_bottom_left_corner_radius">44dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/database/DialerDatabaseHelper.java b/java/com/android/dialer/database/DialerDatabaseHelper.java
index 3488142..6dd7cf4 100644
--- a/java/com/android/dialer/database/DialerDatabaseHelper.java
+++ b/java/com/android/dialer/database/DialerDatabaseHelper.java
@@ -34,6 +34,7 @@
 import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.Directory;
 import android.support.annotation.VisibleForTesting;
+import android.support.annotation.WorkerThread;
 import android.text.TextUtils;
 import com.android.contacts.common.R;
 import com.android.contacts.common.util.StopWatch;
@@ -46,7 +47,6 @@
 import java.util.HashSet;
 import java.util.Objects;
 import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * Database helper for smart dial. Designed as a singleton to make sure there is only one access
@@ -77,8 +77,6 @@
   private static final int MAX_ENTRIES = 20;
 
   private final Context mContext;
-  private final Object mLock = new Object();
-  private final AtomicBoolean mInUpdate = new AtomicBoolean(false);
   private boolean mIsTestInstance = false;
 
   protected DialerDatabaseHelper(Context context, String databaseName, int dbVersion) {
@@ -596,218 +594,212 @@
    * accordingly. It also queries the deleted contact database to remove newly deleted contacts
    * since last update.
    */
-  public void updateSmartDialDatabase() {
+  @WorkerThread
+  public synchronized void updateSmartDialDatabase() {
     LogUtil.enterBlock("DialerDatabaseHelper.updateSmartDialDatabase");
 
     final SQLiteDatabase db = getWritableDatabase();
 
-    synchronized (mLock) {
-      LogUtil.v("DialerDatabaseHelper.updateSmartDialDatabase", "starting to update database");
-      final StopWatch stopWatch = DEBUG ? StopWatch.start("Updating databases") : null;
+    LogUtil.v("DialerDatabaseHelper.updateSmartDialDatabase", "starting to update database");
+    final StopWatch stopWatch = DEBUG ? StopWatch.start("Updating databases") : null;
 
-      /** Gets the last update time on the database. */
-      final SharedPreferences databaseLastUpdateSharedPref =
-          mContext.getSharedPreferences(DATABASE_LAST_CREATED_SHARED_PREF, Context.MODE_PRIVATE);
-      final String lastUpdateMillis =
-          String.valueOf(databaseLastUpdateSharedPref.getLong(LAST_UPDATED_MILLIS, 0));
+    /** Gets the last update time on the database. */
+    final SharedPreferences databaseLastUpdateSharedPref =
+        mContext.getSharedPreferences(DATABASE_LAST_CREATED_SHARED_PREF, Context.MODE_PRIVATE);
+    final String lastUpdateMillis =
+        String.valueOf(databaseLastUpdateSharedPref.getLong(LAST_UPDATED_MILLIS, 0));
 
-      LogUtil.v(
-          "DialerDatabaseHelper.updateSmartDialDatabase", "last updated at " + lastUpdateMillis);
+    LogUtil.v(
+        "DialerDatabaseHelper.updateSmartDialDatabase", "last updated at " + lastUpdateMillis);
 
-      /** Sets the time after querying the database as the current update time. */
-      final Long currentMillis = System.currentTimeMillis();
+    /** Sets the time after querying the database as the current update time. */
+    final Long currentMillis = System.currentTimeMillis();
 
-      if (DEBUG) {
-        stopWatch.lap("Queried the Contacts database");
-      }
+    if (DEBUG) {
+      stopWatch.lap("Queried the Contacts database");
+    }
 
-      /** Prevents the app from reading the dialer database when updating. */
-      mInUpdate.getAndSet(true);
+    /** Removes contacts that have been deleted. */
+    removeDeletedContacts(db, getDeletedContactCursor(lastUpdateMillis));
+    removePotentiallyCorruptedContacts(db, lastUpdateMillis);
 
-      /** Removes contacts that have been deleted. */
-      removeDeletedContacts(db, getDeletedContactCursor(lastUpdateMillis));
-      removePotentiallyCorruptedContacts(db, lastUpdateMillis);
+    if (DEBUG) {
+      stopWatch.lap("Finished deleting deleted entries");
+    }
 
-      if (DEBUG) {
-        stopWatch.lap("Finished deleting deleted entries");
-      }
-
+    /**
+     * If the database did not exist before, jump through deletion as there is nothing to delete.
+     */
+    if (!lastUpdateMillis.equals("0")) {
       /**
-       * If the database did not exist before, jump through deletion as there is nothing to delete.
+       * Removes contacts that have been updated. Updated contact information will be inserted
+       * later. Note that this has to use a separate result set from updatePhoneCursor, since it is
+       * possible for a contact to be updated (e.g. phone number deleted), but have no results show
+       * up in updatedPhoneCursor (since all of its phone numbers have been deleted).
        */
-      if (!lastUpdateMillis.equals("0")) {
-        /**
-         * Removes contacts that have been updated. Updated contact information will be inserted
-         * later. Note that this has to use a separate result set from updatePhoneCursor, since it
-         * is possible for a contact to be updated (e.g. phone number deleted), but have no results
-         * show up in updatedPhoneCursor (since all of its phone numbers have been deleted).
-         */
-        final Cursor updatedContactCursor =
-            mContext
-                .getContentResolver()
-                .query(
-                    UpdatedContactQuery.URI,
-                    UpdatedContactQuery.PROJECTION,
-                    UpdatedContactQuery.SELECT_UPDATED_CLAUSE,
-                    new String[] {lastUpdateMillis},
-                    null);
-        if (updatedContactCursor == null) {
-          LogUtil.e(
-              "DialerDatabaseHelper.updateSmartDialDatabase",
-              "smartDial query received null for cursor");
-          return;
-        }
-        try {
-          removeUpdatedContacts(db, updatedContactCursor);
-        } finally {
-          updatedContactCursor.close();
-        }
-        if (DEBUG) {
-          stopWatch.lap("Finished deleting entries belonging to updated contacts");
-        }
-      }
-
-      /**
-       * Queries the contact database to get all phone numbers that have been updated since the last
-       * update time.
-       */
-      final Cursor updatedPhoneCursor =
+      final Cursor updatedContactCursor =
           mContext
               .getContentResolver()
               .query(
-                  PhoneQuery.URI,
-                  PhoneQuery.PROJECTION,
-                  PhoneQuery.SELECTION,
+                  UpdatedContactQuery.URI,
+                  UpdatedContactQuery.PROJECTION,
+                  UpdatedContactQuery.SELECT_UPDATED_CLAUSE,
                   new String[] {lastUpdateMillis},
                   null);
-      if (updatedPhoneCursor == null) {
+      if (updatedContactCursor == null) {
         LogUtil.e(
             "DialerDatabaseHelper.updateSmartDialDatabase",
             "smartDial query received null for cursor");
         return;
       }
-
       try {
-        /** Inserts recently updated phone numbers to the smartdial database. */
-        insertUpdatedContactsAndNumberPrefix(db, updatedPhoneCursor, currentMillis);
+        removeUpdatedContacts(db, updatedContactCursor);
+      } finally {
+        updatedContactCursor.close();
+      }
+      if (DEBUG) {
+        stopWatch.lap("Finished deleting entries belonging to updated contacts");
+      }
+    }
+
+    /**
+     * Queries the contact database to get all phone numbers that have been updated since the last
+     * update time.
+     */
+    final Cursor updatedPhoneCursor =
+        mContext
+            .getContentResolver()
+            .query(
+                PhoneQuery.URI,
+                PhoneQuery.PROJECTION,
+                PhoneQuery.SELECTION,
+                new String[] {lastUpdateMillis},
+                null);
+    if (updatedPhoneCursor == null) {
+      LogUtil.e(
+          "DialerDatabaseHelper.updateSmartDialDatabase",
+          "smartDial query received null for cursor");
+      return;
+    }
+
+    try {
+      /** Inserts recently updated phone numbers to the smartdial database. */
+      insertUpdatedContactsAndNumberPrefix(db, updatedPhoneCursor, currentMillis);
+      if (DEBUG) {
+        stopWatch.lap("Finished building the smart dial table");
+      }
+    } finally {
+      updatedPhoneCursor.close();
+    }
+
+    /**
+     * Gets a list of distinct contacts which have been updated, and adds the name prefixes of these
+     * contacts to the prefix table.
+     */
+    final Cursor nameCursor =
+        db.rawQuery(
+            "SELECT DISTINCT "
+                + SmartDialDbColumns.DISPLAY_NAME_PRIMARY
+                + ", "
+                + SmartDialDbColumns.CONTACT_ID
+                + " FROM "
+                + Tables.SMARTDIAL_TABLE
+                + " WHERE "
+                + SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME
+                + " = "
+                + currentMillis,
+            new String[] {});
+    if (nameCursor != null) {
+      try {
         if (DEBUG) {
-          stopWatch.lap("Finished building the smart dial table");
+          stopWatch.lap("Queried the smart dial table for contact names");
+        }
+
+        /** Inserts prefixes of names into the prefix table. */
+        insertNamePrefixes(db, nameCursor);
+        if (DEBUG) {
+          stopWatch.lap("Finished building the name prefix table");
         }
       } finally {
-        updatedPhoneCursor.close();
+        nameCursor.close();
       }
-
-      /**
-       * Gets a list of distinct contacts which have been updated, and adds the name prefixes of
-       * these contacts to the prefix table.
-       */
-      final Cursor nameCursor =
-          db.rawQuery(
-              "SELECT DISTINCT "
-                  + SmartDialDbColumns.DISPLAY_NAME_PRIMARY
-                  + ", "
-                  + SmartDialDbColumns.CONTACT_ID
-                  + " FROM "
-                  + Tables.SMARTDIAL_TABLE
-                  + " WHERE "
-                  + SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME
-                  + " = "
-                  + Long.toString(currentMillis),
-              new String[] {});
-      if (nameCursor != null) {
-        try {
-          if (DEBUG) {
-            stopWatch.lap("Queried the smart dial table for contact names");
-          }
-
-          /** Inserts prefixes of names into the prefix table. */
-          insertNamePrefixes(db, nameCursor);
-          if (DEBUG) {
-            stopWatch.lap("Finished building the name prefix table");
-          }
-        } finally {
-          nameCursor.close();
-        }
-      }
-
-      /** Creates index on contact_id for fast JOIN operation. */
-      db.execSQL(
-          "CREATE INDEX IF NOT EXISTS smartdial_contact_id_index ON "
-              + Tables.SMARTDIAL_TABLE
-              + " ("
-              + SmartDialDbColumns.CONTACT_ID
-              + ");");
-      /** Creates index on last_smartdial_update_time for fast SELECT operation. */
-      db.execSQL(
-          "CREATE INDEX IF NOT EXISTS smartdial_last_update_index ON "
-              + Tables.SMARTDIAL_TABLE
-              + " ("
-              + SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME
-              + ");");
-      /** Creates index on sorting fields for fast sort operation. */
-      db.execSQL(
-          "CREATE INDEX IF NOT EXISTS smartdial_sort_index ON "
-              + Tables.SMARTDIAL_TABLE
-              + " ("
-              + SmartDialDbColumns.STARRED
-              + ", "
-              + SmartDialDbColumns.IS_SUPER_PRIMARY
-              + ", "
-              + SmartDialDbColumns.LAST_TIME_USED
-              + ", "
-              + SmartDialDbColumns.TIMES_USED
-              + ", "
-              + SmartDialDbColumns.IN_VISIBLE_GROUP
-              + ", "
-              + SmartDialDbColumns.DISPLAY_NAME_PRIMARY
-              + ", "
-              + SmartDialDbColumns.CONTACT_ID
-              + ", "
-              + SmartDialDbColumns.IS_PRIMARY
-              + ");");
-      /** Creates index on prefix for fast SELECT operation. */
-      db.execSQL(
-          "CREATE INDEX IF NOT EXISTS nameprefix_index ON "
-              + Tables.PREFIX_TABLE
-              + " ("
-              + PrefixColumns.PREFIX
-              + ");");
-      /** Creates index on contact_id for fast JOIN operation. */
-      db.execSQL(
-          "CREATE INDEX IF NOT EXISTS nameprefix_contact_id_index ON "
-              + Tables.PREFIX_TABLE
-              + " ("
-              + PrefixColumns.CONTACT_ID
-              + ");");
-
-      if (DEBUG) {
-        stopWatch.lap(TAG + "Finished recreating index");
-      }
-
-      /** Updates the database index statistics. */
-      db.execSQL("ANALYZE " + Tables.SMARTDIAL_TABLE);
-      db.execSQL("ANALYZE " + Tables.PREFIX_TABLE);
-      db.execSQL("ANALYZE smartdial_contact_id_index");
-      db.execSQL("ANALYZE smartdial_last_update_index");
-      db.execSQL("ANALYZE nameprefix_index");
-      db.execSQL("ANALYZE nameprefix_contact_id_index");
-      if (DEBUG) {
-        stopWatch.stopAndLog(TAG + "Finished updating index stats", 0);
-      }
-
-      mInUpdate.getAndSet(false);
-
-      final SharedPreferences.Editor editor = databaseLastUpdateSharedPref.edit();
-      editor.putLong(LAST_UPDATED_MILLIS, currentMillis);
-      editor.apply();
-
-      LogUtil.i("DialerDatabaseHelper.updateSmartDialDatabase", "broadcasting smart dial update");
-
-      // Notify content observers that smart dial database has been updated.
-      Intent intent = new Intent(ACTION_SMART_DIAL_UPDATED);
-      intent.setPackage(mContext.getPackageName());
-      mContext.sendBroadcast(intent);
     }
+
+    /** Creates index on contact_id for fast JOIN operation. */
+    db.execSQL(
+        "CREATE INDEX IF NOT EXISTS smartdial_contact_id_index ON "
+            + Tables.SMARTDIAL_TABLE
+            + " ("
+            + SmartDialDbColumns.CONTACT_ID
+            + ");");
+    /** Creates index on last_smartdial_update_time for fast SELECT operation. */
+    db.execSQL(
+        "CREATE INDEX IF NOT EXISTS smartdial_last_update_index ON "
+            + Tables.SMARTDIAL_TABLE
+            + " ("
+            + SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME
+            + ");");
+    /** Creates index on sorting fields for fast sort operation. */
+    db.execSQL(
+        "CREATE INDEX IF NOT EXISTS smartdial_sort_index ON "
+            + Tables.SMARTDIAL_TABLE
+            + " ("
+            + SmartDialDbColumns.STARRED
+            + ", "
+            + SmartDialDbColumns.IS_SUPER_PRIMARY
+            + ", "
+            + SmartDialDbColumns.LAST_TIME_USED
+            + ", "
+            + SmartDialDbColumns.TIMES_USED
+            + ", "
+            + SmartDialDbColumns.IN_VISIBLE_GROUP
+            + ", "
+            + SmartDialDbColumns.DISPLAY_NAME_PRIMARY
+            + ", "
+            + SmartDialDbColumns.CONTACT_ID
+            + ", "
+            + SmartDialDbColumns.IS_PRIMARY
+            + ");");
+    /** Creates index on prefix for fast SELECT operation. */
+    db.execSQL(
+        "CREATE INDEX IF NOT EXISTS nameprefix_index ON "
+            + Tables.PREFIX_TABLE
+            + " ("
+            + PrefixColumns.PREFIX
+            + ");");
+    /** Creates index on contact_id for fast JOIN operation. */
+    db.execSQL(
+        "CREATE INDEX IF NOT EXISTS nameprefix_contact_id_index ON "
+            + Tables.PREFIX_TABLE
+            + " ("
+            + PrefixColumns.CONTACT_ID
+            + ");");
+
+    if (DEBUG) {
+      stopWatch.lap(TAG + "Finished recreating index");
+    }
+
+    /** Updates the database index statistics. */
+    db.execSQL("ANALYZE " + Tables.SMARTDIAL_TABLE);
+    db.execSQL("ANALYZE " + Tables.PREFIX_TABLE);
+    db.execSQL("ANALYZE smartdial_contact_id_index");
+    db.execSQL("ANALYZE smartdial_last_update_index");
+    db.execSQL("ANALYZE nameprefix_index");
+    db.execSQL("ANALYZE nameprefix_contact_id_index");
+    if (DEBUG) {
+      stopWatch.stopAndLog(TAG + "Finished updating index stats", 0);
+    }
+
+    final SharedPreferences.Editor editor = databaseLastUpdateSharedPref.edit();
+    editor.putLong(LAST_UPDATED_MILLIS, currentMillis);
+    editor.apply();
+
+    LogUtil.i("DialerDatabaseHelper.updateSmartDialDatabase", "broadcasting smart dial update");
+
+    // Notify content observers that smart dial database has been updated.
+    Intent intent = new Intent(ACTION_SMART_DIAL_UPDATED);
+    intent.setPackage(mContext.getPackageName());
+    mContext.sendBroadcast(intent);
   }
 
   /**
@@ -817,12 +809,9 @@
    * @param query The prefix of a contact's dialpad index.
    * @return A list of top candidate contacts that will be suggested to user to match their input.
    */
-  public ArrayList<ContactNumber> getLooseMatches(String query, SmartDialNameMatcher nameMatcher) {
-    final boolean inUpdate = mInUpdate.get();
-    if (inUpdate) {
-      return new ArrayList<>();
-    }
-
+  @WorkerThread
+  public synchronized ArrayList<ContactNumber> getLooseMatches(
+      String query, SmartDialNameMatcher nameMatcher) {
     final SQLiteDatabase db = getReadableDatabase();
 
     /** Uses SQL query wildcard '%' to represent prefix matching. */
diff --git a/java/com/android/dialer/callcomposer/proto/call_composer_contact.proto b/java/com/android/dialer/dialercontact/dialer_contact.proto
similarity index 82%
rename from java/com/android/dialer/callcomposer/proto/call_composer_contact.proto
rename to java/com/android/dialer/dialercontact/dialer_contact.proto
index 99766aa..ee364c6 100644
--- a/java/com/android/dialer/callcomposer/proto/call_composer_contact.proto
+++ b/java/com/android/dialer/dialercontact/dialer_contact.proto
@@ -1,12 +1,12 @@
 syntax = "proto2";
 
-option java_package = "com.android.dialer.callcomposer";
+option java_package = "com.android.dialer.dialercontact";
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
 package com.android.dialer.callcomposer;
 
-message CallComposerContact {
+message DialerContact {
   optional fixed64 photo_id = 1;
   optional string photo_uri = 2;
   optional string contact_uri = 3;
diff --git a/java/com/android/dialer/dialpadview/res/values/dimens.xml b/java/com/android/dialer/dialpadview/res/values/dimens.xml
index 210c816..7277364 100644
--- a/java/com/android/dialer/dialpadview/res/values/dimens.xml
+++ b/java/com/android/dialer/dialpadview/res/values/dimens.xml
@@ -16,7 +16,7 @@
 
 <resources>
   <!-- Text dimensions for dialpad keys -->
-  <dimen name="dialpad_key_numbers_default_size">36sp</dimen>
+  <dimen name="dialpad_key_numbers_default_size">36dp</dimen>
   <dimen name="dialpad_key_letters_size">12sp</dimen>
   <dimen name="dialpad_key_pound_size">23sp</dimen>
   <dimen name="dialpad_key_star_size">36sp</dimen>
diff --git a/java/com/android/dialer/interactions/PhoneNumberInteraction.java b/java/com/android/dialer/interactions/PhoneNumberInteraction.java
index 52f9d20..ef468a9 100644
--- a/java/com/android/dialer/interactions/PhoneNumberInteraction.java
+++ b/java/com/android/dialer/interactions/PhoneNumberInteraction.java
@@ -54,11 +54,14 @@
 import com.android.contacts.common.Collapser.Collapsible;
 import com.android.contacts.common.MoreContactUtils;
 import com.android.contacts.common.util.ContactDisplayUtils;
+import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallIntentBuilder;
 import com.android.dialer.callintent.CallIntentParser;
 import com.android.dialer.callintent.CallSpecificAppData;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
 import com.android.dialer.util.DialerUtils;
 import com.android.dialer.util.TransactionSafeActivity;
 import java.lang.annotation.Retention;
@@ -543,6 +546,12 @@
         final PhoneItem phoneItem = mPhoneList.get(which);
         final CheckBox checkBox = (CheckBox) alertDialog.findViewById(R.id.setPrimary);
         if (checkBox.isChecked()) {
+          if (mCallSpecificAppData.getCallInitiationType() == CallInitiationType.Type.SPEED_DIAL) {
+            Logger.get(getContext())
+                .logInteraction(
+                    InteractionEvent.Type.SPEED_DIAL_SET_DEFAULT_NUMBER_FOR_AMBIGUOUS_CONTACT);
+          }
+
           // Request to mark the data as primary in the background.
           final Intent serviceIntent =
               ContactUpdateService.createSetSuperPrimaryIntent(activity, phoneItem.id);
diff --git a/java/com/android/dialer/location/CountryDetector.java b/java/com/android/dialer/location/CountryDetector.java
index a90febf..c4bed14 100644
--- a/java/com/android/dialer/location/CountryDetector.java
+++ b/java/com/android/dialer/location/CountryDetector.java
@@ -33,8 +33,8 @@
 import android.text.TextUtils;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.common.concurrent.DialerExecutors;
 import com.android.dialer.common.concurrent.DialerExecutor.Worker;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
 import com.android.dialer.util.PermissionsUtil;
 import java.util.List;
 import java.util.Locale;
@@ -216,7 +216,9 @@
 
   private static void processLocationUpdate(
       Context appContext, Geocoder geocoder, Location location) {
-    DialerExecutors.createNonUiTaskBuilder(new GeocodeCountryWorker(geocoder))
+    DialerExecutorComponent.get(appContext)
+        .dialerExecutorFactory()
+        .createNonUiTaskBuilder(new GeocodeCountryWorker(geocoder))
         .onSuccess(
             country -> {
               if (country == null) {
diff --git a/java/com/android/dialer/logging/LoggingBindings.java b/java/com/android/dialer/logging/LoggingBindings.java
index 526cb20..4a98d9e 100644
--- a/java/com/android/dialer/logging/LoggingBindings.java
+++ b/java/com/android/dialer/logging/LoggingBindings.java
@@ -14,8 +14,8 @@
 
 package com.android.dialer.logging;
 
-
 import android.app.Activity;
+import android.widget.QuickContactBadge;
 
 /** Allows the container application to gather analytics. */
 public interface LoggingBindings {
@@ -62,6 +62,22 @@
    */
   void logScreenView(com.android.dialer.logging.ScreenEvent.Type screenEvent, Activity activity);
 
+  /** Logs the composition of contact tiles in the speed dial tab. */
+  void logSpeedDialContactComposition(
+      int counter,
+      int starredContactsCount,
+      int pinnedContactsCount,
+      int multipleNumbersContactsCount,
+      int contactsWithPhotoCount,
+      int contactsWithNameCount,
+      int duoReachableContactCount);
+
   /** Logs a hit event to the analytics server. */
   void sendHitEventAnalytics(String category, String action, String label, long value);
+
+  /** Logs where a quick contact badge is clicked */
+  void logQuickContactOnTouch(
+      QuickContactBadge quickContact,
+      InteractionEvent.Type interactionEvent,
+      boolean shouldPerformClick);
 }
diff --git a/java/com/android/dialer/logging/LoggingBindingsStub.java b/java/com/android/dialer/logging/LoggingBindingsStub.java
index f7ca6ec..dd3b8ac 100644
--- a/java/com/android/dialer/logging/LoggingBindingsStub.java
+++ b/java/com/android/dialer/logging/LoggingBindingsStub.java
@@ -15,6 +15,7 @@
 package com.android.dialer.logging;
 
 import android.app.Activity;
+import android.widget.QuickContactBadge;
 
 /** Default implementation for logging bindings. */
 public class LoggingBindingsStub implements LoggingBindings {
@@ -36,5 +37,21 @@
   public void logScreenView(ScreenEvent.Type screenEvent, Activity activity) {}
 
   @Override
+  public void logSpeedDialContactComposition(
+      int counter,
+      int starredContactsCount,
+      int pinnedContactsCount,
+      int multipleNumbersContactsCount,
+      int contactsWithPhotoCount,
+      int contactsWithNameCount,
+      int duoReachableContactsCount) {}
+
+  @Override
   public void sendHitEventAnalytics(String category, String action, String label, long value) {}
+
+  @Override
+  public void logQuickContactOnTouch(
+      QuickContactBadge quickContact,
+      InteractionEvent.Type interactionEvent,
+      boolean shouldPerformClick) {}
 }
diff --git a/java/com/android/dialer/logging/contact_lookup_result.proto b/java/com/android/dialer/logging/contact_lookup_result.proto
index 835d7d7..c9624af 100644
--- a/java/com/android/dialer/logging/contact_lookup_result.proto
+++ b/java/com/android/dialer/logging/contact_lookup_result.proto
@@ -5,6 +5,7 @@
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
+
 message ContactLookupResult {
   // The different results of a contact lookup done using a phone number.
   enum Type {
diff --git a/java/com/android/dialer/logging/contact_source.proto b/java/com/android/dialer/logging/contact_source.proto
index 470cf8b..ffd32de 100644
--- a/java/com/android/dialer/logging/contact_source.proto
+++ b/java/com/android/dialer/logging/contact_source.proto
@@ -5,6 +5,7 @@
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
+
 message ContactSource {
   // Applies only to reports made from call history. If we have contact
   // information for the phone number, this field indicates its source.
diff --git a/java/com/android/dialer/logging/dialer_impression.proto b/java/com/android/dialer/logging/dialer_impression.proto
index 5416146..1d8c828 100644
--- a/java/com/android/dialer/logging/dialer_impression.proto
+++ b/java/com/android/dialer/logging/dialer_impression.proto
@@ -5,11 +5,12 @@
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
+
 message DialerImpression {
   // Event enums to be used for Impression Logging in Dialer.
   // It's perfectly acceptable for this enum to be large
   // Values should be from 1000 to 100000.
-  // Next Tag:1191
+  // Next Tag:1196
   enum Type {
 
     UNKNOWN_AOSP_EVENT_TYPE = 1000;
@@ -386,5 +387,21 @@
     VVM_STATUS_CHECK_REACTIVATION = 1189;
 
     VVM_ARCHIVE_AUTO_DELETE_FAILED_DUE_TO_FAILED_QUOTA_CHECK = 1190;
+
+    // User pressed the speaker phone button on the return-to-call bubble
+    BUBBLE_TURN_ON_SPEAKERPHONE = 1191;
+    // User pressed the speaker phone button again on the return-to-call bubble
+    BUBBLE_TURN_ON_WIRED_OR_EARPIECE = 1192;
+    // User muted the call from the return-to-call bubble
+    BUBBLE_MUTE_CALL = 1193;
+    // User unmuted the call from the return-to-call bubble
+    BUBBLE_UNMUTE_CALL = 1194;
+    // User ended the call from the return-to-call bubble
+    BUBBLE_END_CALL = 1195;
+
+    LIGHTBRINGER_VIDEO_REQUESTED_FROM_SEARCH = 1196;
+    LIGHTBRINGER_VIDEO_REQUESTED_FROM_CALL_LOG = 1197;
+    IMS_VIDEO_REQUESTED_FROM_SEARCH = 1198;
+    IMS_VIDEO_REQUESTED_FROM_CALL_LOG = 1199;
   }
 }
diff --git a/java/com/android/dialer/logging/interaction_event.proto b/java/com/android/dialer/logging/interaction_event.proto
index b9af1b7..89cf46f 100644
--- a/java/com/android/dialer/logging/interaction_event.proto
+++ b/java/com/android/dialer/logging/interaction_event.proto
@@ -5,7 +5,9 @@
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
+
 message InteractionEvent {
+  // Next Tag: 38
   enum Type {
 
     UNKNOWN = 0;
@@ -41,5 +43,23 @@
 
     // The user unblocked a number then undid the unblock
     UNDO_UNBLOCK_NUMBER = 24;
+
+    // Actions in speed dial
+    SPEED_DIAL_PIN_CONTACT = 25;
+    SPEED_DIAL_REMOVE_CONTACT = 26;
+    SPEED_DIAL_OPEN_CONTACT_CARD = 27;
+    SPEED_DIAL_CLICK_CONTACT_WITH_AMBIGUOUS_NUMBER = 28;
+
+    SPEED_DIAL_SET_DEFAULT_NUMBER_FOR_AMBIGUOUS_CONTACT = 29;
+
+    // Open quick contact from where
+    OPEN_QUICK_CONTACT_FROM_CALL_LOG = 30;
+    OPEN_QUICK_CONTACT_FROM_CALL_DETAILS = 31;
+    OPEN_QUICK_CONTACT_FROM_ALL_CONTACTS_GENERAL = 32;
+    OPEN_QUICK_CONTACT_FROM_CONTACTS_FRAGMENT_BADGE = 33;
+    OPEN_QUICK_CONTACT_FROM_CONTACTS_FRAGMENT_ITEM = 34;
+    OPEN_QUICK_CONTACT_FROM_SEARCH = 35;
+    OPEN_QUICK_CONTACT_FROM_VOICEMAIL = 36;
+    OPEN_QUICK_CONTACT_FROM_CALL_HISTORY = 37;
   }
 }
diff --git a/java/com/android/dialer/logging/reporting_location.proto b/java/com/android/dialer/logging/reporting_location.proto
index 7286948..d436564 100644
--- a/java/com/android/dialer/logging/reporting_location.proto
+++ b/java/com/android/dialer/logging/reporting_location.proto
@@ -5,6 +5,7 @@
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
+
 message ReportingLocation {
   // Spam reporting location
   enum Type {
diff --git a/java/com/android/dialer/logging/screen_event.proto b/java/com/android/dialer/logging/screen_event.proto
index 2430bfd..ca62477 100644
--- a/java/com/android/dialer/logging/screen_event.proto
+++ b/java/com/android/dialer/logging/screen_event.proto
@@ -5,6 +5,7 @@
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
+
 message ScreenEvent {
   enum Type {
 
diff --git a/java/com/android/dialer/multimedia/MultimediaData.java b/java/com/android/dialer/multimedia/MultimediaData.java
index 22bb764..dee0cff 100644
--- a/java/com/android/dialer/multimedia/MultimediaData.java
+++ b/java/com/android/dialer/multimedia/MultimediaData.java
@@ -20,6 +20,7 @@
 import android.net.Uri;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.text.TextUtils;
 import com.android.dialer.common.LogUtil;
 import com.google.auto.value.AutoValue;
 
@@ -63,6 +64,11 @@
   /** Returns {@code true} if this data is marked as important. */
   public abstract boolean isImportant();
 
+  /** Returns true if this has image, text or location data. */
+  public boolean hasData() {
+    return hasImageData() || !TextUtils.isEmpty(getText()) || getLocation() != null;
+  }
+
   /** Returns the string form of this MultimediaData with no PII. */
   @Override
   public String toString() {
diff --git a/java/com/android/dialer/oem/CequintCallerIdManager.java b/java/com/android/dialer/oem/CequintCallerIdManager.java
index 095ee4e..806d553 100644
--- a/java/com/android/dialer/oem/CequintCallerIdManager.java
+++ b/java/com/android/dialer/oem/CequintCallerIdManager.java
@@ -18,7 +18,6 @@
 import android.annotation.TargetApi;
 import android.content.Context;
 import android.content.pm.PackageManager;
-import android.database.ContentObserver;
 import android.database.Cursor;
 import android.net.Uri;
 import android.os.Build.VERSION_CODES;
@@ -31,7 +30,6 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.util.PermissionsUtil;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -73,17 +71,12 @@
   private static final String IMAGE = "cid_pLogo";
   private static final String DISPLAY_NAME = "cid_pDisplayName";
 
-  // TODO: Revisit it and maybe remove it if it's not necessary.
-  private static final ConcurrentHashMap<String, CequintCallerIdContact> callLogCache =
-      new ConcurrentHashMap<>();
-  private static final ConcurrentHashMap<String, CequintCallerIdContact> incallIncomingCallCache =
-      new ConcurrentHashMap<>();
-  private static final ConcurrentHashMap<String, CequintCallerIdContact> incallOutgoingCallCache =
-      new ConcurrentHashMap<>();
-  private static boolean hasRegisteredContentObserver;
   private static boolean hasAlreadyCheckedCequintCallerIdPackage;
   private static boolean isCequintCallerIdEnabled;
 
+  // TODO: Revisit it and maybe remove it if it's not necessary.
+  private final ConcurrentHashMap<String, CequintCallerIdContact> callLogCache;
+
   /** Cequint caller id contact information. */
   public static class CequintCallerIdContact {
     public final String name;
@@ -117,9 +110,35 @@
     return isCequintCallerIdEnabled;
   }
 
+  public static CequintCallerIdManager createInstanceForCallLog() {
+    return new CequintCallerIdManager();
+  }
+
   @WorkerThread
   @Nullable
-  public static CequintCallerIdContact getCequintCallerIdContact(Context context, String number) {
+  public static CequintCallerIdContact getCequintCallerIdContactForInCall(
+      Context context, String number, String cnapName, boolean isIncoming) {
+    Assert.isWorkerThread();
+    LogUtil.d(
+        "CequintCallerIdManager.getCequintCallerIdContactForInCall",
+        "number: %s, cnapName: %s, isIncoming: %b",
+        LogUtil.sanitizePhoneNumber(number),
+        LogUtil.sanitizePii(cnapName),
+        isIncoming);
+    int flag = 0;
+    if (isIncoming) {
+      flag |= CALLER_ID_LOOKUP_INCOMING_CALL;
+      flag |= CALLER_ID_LOOKUP_SYSTEM_PROVIDED_CID;
+    } else {
+      flag |= CALLER_ID_LOOKUP_USER_PROVIDED_CID;
+    }
+    String[] flags = {cnapName, String.valueOf(flag)};
+    return lookup(context, CONTENT_URI_FOR_INCALL, number, flags);
+  }
+
+  @WorkerThread
+  @Nullable
+  public CequintCallerIdContact getCequintCallerIdContact(Context context, String number) {
     Assert.isWorkerThread();
     LogUtil.d(
         "CequintCallerIdManager.getCequintCallerIdContact",
@@ -142,43 +161,6 @@
 
   @WorkerThread
   @Nullable
-  public static CequintCallerIdContact getCequintCallerIdContactForInCall(
-      Context context, String number, String cnapName, boolean isIncoming) {
-    Assert.isWorkerThread();
-    LogUtil.d(
-        "CequintCallerIdManager.getCequintCallerIdContactForInCall",
-        "number: %s, cnapName: %s, isIncoming: %b",
-        LogUtil.sanitizePhoneNumber(number),
-        LogUtil.sanitizePii(cnapName),
-        isIncoming);
-    registerContentObserver(context);
-    if (isIncoming && incallIncomingCallCache.containsKey(number)) {
-      return incallIncomingCallCache.get(number);
-    } else if (!isIncoming && incallOutgoingCallCache.containsKey(number)) {
-      return incallOutgoingCallCache.get(number);
-    }
-    int flag = 0;
-    if (isIncoming) {
-      flag |= CALLER_ID_LOOKUP_INCOMING_CALL;
-      flag |= CALLER_ID_LOOKUP_SYSTEM_PROVIDED_CID;
-    } else {
-      flag |= CALLER_ID_LOOKUP_USER_PROVIDED_CID;
-    }
-    String[] flags = {cnapName, String.valueOf(flag)};
-    CequintCallerIdContact cequintCallerIdContact =
-        lookup(context, CONTENT_URI_FOR_INCALL, number, flags);
-    if (cequintCallerIdContact != null) {
-      if (isIncoming) {
-        incallIncomingCallCache.put(number, cequintCallerIdContact);
-      } else {
-        incallOutgoingCallCache.put(number, cequintCallerIdContact);
-      }
-    }
-    return cequintCallerIdContact;
-  }
-
-  @WorkerThread
-  @Nullable
   private static CequintCallerIdContact lookup(
       Context context, Uri uri, @NonNull String number, String[] flags) {
     Assert.isWorkerThread();
@@ -285,33 +267,7 @@
     return geoDescription;
   }
 
-  private static synchronized void registerContentObserver(Context context) {
-    if (!PermissionsUtil.hasCequintPermissions(context)) {
-      LogUtil.i("CequintCallerIdManager.registerContentObserver", "no cequint permissions");
-      return;
-    }
-
-    if (hasRegisteredContentObserver) {
-      return;
-    }
-    ContentObserver contentObserver =
-        new ContentObserver(null) {
-          @Override
-          public void onChange(boolean selfChange) {
-            invalidateCache();
-          }
-        };
-
-    context
-        .getContentResolver()
-        .registerContentObserver(CONTENT_URI_FOR_INCALL, true, contentObserver);
-    hasRegisteredContentObserver = true;
+  private CequintCallerIdManager() {
+    callLogCache = new ConcurrentHashMap<>();
   }
-
-  private static void invalidateCache() {
-    incallIncomingCallCache.clear();
-    incallOutgoingCallCache.clear();
-  }
-
-  private CequintCallerIdManager() {}
 }
diff --git a/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java b/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java
index 9cf145b..79abff0 100644
--- a/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java
+++ b/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java
@@ -67,9 +67,7 @@
   }
 
   private MotorolaHiddenMenuKeySequence(Context context) {
-    featureHiddenMenuEnabled =
-        MotorolaUtils.isSpnMatched(context)
-            && context.getResources().getBoolean(R.bool.motorola_feature_hidden_menu);
+    featureHiddenMenuEnabled = MotorolaUtils.isSupportingHiddenMenu(context);
     // In case we do have a SPN from resource we need to match from service; otherwise we are
     // free to go
     if (featureHiddenMenuEnabled) {
diff --git a/java/com/android/dialer/oem/MotorolaUtils.java b/java/com/android/dialer/oem/MotorolaUtils.java
index db2b890..2c91e60 100644
--- a/java/com/android/dialer/oem/MotorolaUtils.java
+++ b/java/com/android/dialer/oem/MotorolaUtils.java
@@ -19,7 +19,10 @@
 import android.content.res.Resources;
 import android.telephony.TelephonyManager;
 import com.android.dialer.common.ConfigProviderBindings;
+import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.PackageUtils;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 
 /** Util class for Motorola OEM devices. */
 public class MotorolaUtils {
@@ -39,6 +42,8 @@
   // This is used to check if a Motorola device supports WiFi call feature, by checking if a certain
   // package is enabled.
   private static final String WIFI_CALL_PACKAGE_NAME = "com.motorola.sprintwfc";
+  // Thi is used to check if a Motorola device supports hidden menu feature.
+  private static final String HIDDEN_MENU_FEATURE = "com.motorola.software.sprint.hidden_menu";
 
   // Feature flag indicates it's a HD call, currently this is only used by Motorola system build.
   // TODO(b/35359461): Use reference to android.provider.CallLog once it's in new SDK.
@@ -64,6 +69,10 @@
     }
   }
 
+  static boolean isSupportingHiddenMenu(Context context) {
+    return context.getPackageManager().hasSystemFeature(HIDDEN_MENU_FEATURE);
+  }
+
   public static boolean shouldBlinkHdIconWhenConnectingCall(Context context) {
     return ConfigProviderBindings.get(context)
             .getBoolean(CONFIG_HD_CODEC_BLINKING_ICON_WHEN_CONNECTING_CALL_ENABLED, true)
@@ -102,6 +111,22 @@
     return MotorolaHiddenMenuKeySequence.handleCharSequence(context, input);
   }
 
+  public static boolean isWifiCallingAvailable(Context context) {
+    if (!isSupportingSprintWifiCall(context)) {
+      return false;
+    }
+    TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class);
+    try {
+      Method method = TelephonyManager.class.getMethod("isWifiCallingAvailable");
+      boolean isWifiCallingAvailable = (boolean) method.invoke(telephonyManager);
+      LogUtil.d("MotorolaUtils.isWifiCallingAvailable", "%b", isWifiCallingAvailable);
+      return isWifiCallingAvailable;
+    } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
+      LogUtil.e("MotorolaUtils.isWifiCallingAvailable", "", e);
+    }
+    return false;
+  }
+
   private static boolean isSupportingSprintHdCodec(Context context) {
     return isSpnMatched(context)
         && context.getResources().getBoolean(R.bool.motorola_sprint_hd_codec)
diff --git a/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml
index 7f63bee..ac33975 100644
--- a/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml
@@ -1,6 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
 <resources>
   <bool name="motorola_sprint_hd_codec">true</bool>
-  <bool name="motorola_feature_hidden_menu">true</bool>
   <string name="motorola_enabled_spn">Sprint</string>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml
index 39b72cd..c5cb0d1 100644
--- a/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml
@@ -1,5 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
 <resources>
   <bool name="motorola_sprint_hd_codec">true</bool>
-  <bool name="motorola_feature_hidden_menu">true</bool>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml
index 39b72cd..c5cb0d1 100644
--- a/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml
@@ -1,5 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
 <resources>
   <bool name="motorola_sprint_hd_codec">true</bool>
-  <bool name="motorola_feature_hidden_menu">true</bool>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml
index 39b72cd..c5cb0d1 100644
--- a/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml
@@ -1,5 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
 <resources>
   <bool name="motorola_sprint_hd_codec">true</bool>
-  <bool name="motorola_feature_hidden_menu">true</bool>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml
index 39b72cd..c5cb0d1 100644
--- a/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml
@@ -1,5 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
 <resources>
   <bool name="motorola_sprint_hd_codec">true</bool>
-  <bool name="motorola_feature_hidden_menu">true</bool>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml
index 39b72cd..c5cb0d1 100644
--- a/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml
@@ -1,5 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
 <resources>
   <bool name="motorola_sprint_hd_codec">true</bool>
-  <bool name="motorola_feature_hidden_menu">true</bool>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values/motorola_config.xml b/java/com/android/dialer/oem/res/values/motorola_config.xml
index f875d57..46e7a16 100644
--- a/java/com/android/dialer/oem/res/values/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values/motorola_config.xml
@@ -1,12 +1,25 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
 <resources>
   <!-- Flag to control if HD codec is supported by Sprint. -->
   <bool name="motorola_sprint_hd_codec">false</bool>
 
   <!-- Hidden menu configuration for Motorola. -->
-  <!-- Flag to control if the Hidden Menu sequence will be supported by Sprint. -->
-  <bool name="motorola_feature_hidden_menu">false</bool>
-
   <!-- This defines the specific key seuquence that will be catched in the SpecialCharSequenceMgr
        such as, ##OMADM# -->
   <string-array name="motorola_hidden_menu_key_sequence">
diff --git a/java/com/android/dialer/phonenumbercache/ContactInfo.java b/java/com/android/dialer/phonenumbercache/ContactInfo.java
index 5546553..aef7374 100644
--- a/java/com/android/dialer/phonenumbercache/ContactInfo.java
+++ b/java/com/android/dialer/phonenumbercache/ContactInfo.java
@@ -17,7 +17,7 @@
 package com.android.dialer.phonenumbercache;
 
 import android.net.Uri;
-import android.support.annotation.Nullable;
+import android.support.annotation.NonNull;
 import android.text.TextUtils;
 import com.android.contacts.common.ContactsUtils.UserType;
 import com.android.contacts.common.util.UriUtils;
@@ -59,7 +59,7 @@
   public boolean isBadData;
   public String objectId;
   public @UserType long userType;
-  public @Nullable ContactSource.Type sourceType = ContactSource.Type.UNKNOWN_SOURCE_TYPE;
+  public @NonNull ContactSource.Type sourceType = ContactSource.Type.UNKNOWN_SOURCE_TYPE;
   /**
    * True if local contact exists. This is only used for Cequint Caller ID so it won't overwrite
    * photo if local contact exists.
diff --git a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
index bd4ba97..c9e940e 100644
--- a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
+++ b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
@@ -601,13 +601,17 @@
    * will be updated if available.
    */
   @WorkerThread
-  public void updateFromCequintCallerId(ContactInfo info, String number) {
+  public void updateFromCequintCallerId(
+      @Nullable CequintCallerIdManager cequintCallerIdManager, ContactInfo info, String number) {
     Assert.isWorkerThread();
     if (!CequintCallerIdManager.isCequintCallerIdEnabled(mContext)) {
       return;
     }
+    if (cequintCallerIdManager == null) {
+      return;
+    }
     CequintCallerIdContact cequintCallerIdContact =
-        CequintCallerIdManager.getCequintCallerIdContact(mContext, number);
+        cequintCallerIdManager.getCequintCallerIdContact(mContext, number);
     if (cequintCallerIdContact == null) {
       return;
     }
diff --git a/java/com/android/dialer/postcall/AndroidManifest.xml b/java/com/android/dialer/postcall/AndroidManifest.xml
index 79ca5d5..22c77dd 100644
--- a/java/com/android/dialer/postcall/AndroidManifest.xml
+++ b/java/com/android/dialer/postcall/AndroidManifest.xml
@@ -21,7 +21,7 @@
     <activity
       android:name="com.android.dialer.postcall.PostCallActivity"
       android:exported="false"
-      android:theme="@style/Theme.AppCompat.NoActionBar"
+      android:theme="@style/DialerThemeBase.NoActionBar"
       android:windowSoftInputMode="adjustResize"
       android:screenOrientation="portrait"/>
   </application>
diff --git a/java/com/android/dialer/postcall/PostCall.java b/java/com/android/dialer/postcall/PostCall.java
index 586b473..7eb83b1 100644
--- a/java/com/android/dialer/postcall/PostCall.java
+++ b/java/com/android/dialer/postcall/PostCall.java
@@ -26,8 +26,6 @@
 import android.telephony.TelephonyManager;
 import android.view.View;
 import android.view.View.OnClickListener;
-import com.android.dialer.buildtype.BuildType;
-import com.android.dialer.common.Assert;
 import com.android.dialer.common.ConfigProvider;
 import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
@@ -203,19 +201,7 @@
   }
 
   private static boolean isEnabled(Context context) {
-    @BuildType.Type int type = BuildType.get();
-    switch (type) {
-      case BuildType.BUGFOOD:
-      case BuildType.DOGFOOD:
-      case BuildType.FISHFOOD:
-      case BuildType.TEST:
-        return ConfigProviderBindings.get(context).getBoolean("enable_post_call", true);
-      case BuildType.RELEASE:
-        return ConfigProviderBindings.get(context).getBoolean("enable_post_call_prod", true);
-      default:
-        Assert.fail();
-        return false;
-    }
+    return ConfigProviderBindings.get(context).getBoolean("enable_post_call_prod", true);
   }
 
   private static boolean isSimReady(Context context) {
diff --git a/java/com/android/dialer/protos/ProtoParsers.java b/java/com/android/dialer/protos/ProtoParsers.java
index b77c069..5a60799 100644
--- a/java/com/android/dialer/protos/ProtoParsers.java
+++ b/java/com/android/dialer/protos/ProtoParsers.java
@@ -18,13 +18,10 @@
 
 import android.content.Intent;
 import android.os.Bundle;
-import android.os.Parcel;
-import android.os.Parcelable;
+import android.support.annotation.NonNull;
 import com.android.dialer.common.Assert;
-import com.google.protobuf.CodedOutputStream;
 import com.google.protobuf.InvalidProtocolBufferException;
 import com.google.protobuf.MessageLite;
-import java.io.IOException;
 
 /** Useful methods for using Protocol Buffers with Android. */
 public final class ProtoParsers {
@@ -35,11 +32,8 @@
   @SuppressWarnings("unchecked") // We want to eventually optimize away parser classes, so cast
   public static <T extends MessageLite> T get(Bundle bundle, String key, T defaultInstance)
       throws InvalidProtocolBufferException {
-    // Class loaders are unique to each Class instance, so we need to specify how to decode
-    // the information again, even though we set the class loaders when serializing the data.
-    bundle.setClassLoader(ProtoParsers.class.getClassLoader());
-    InternalDontUse parcelable = bundle.getParcelable(key);
-    return (T) parcelable.getMessageUnsafe(defaultInstance.getDefaultInstanceForType());
+    byte[] bytes = bundle.getByteArray(key);
+    return (T) mergeFrom(bytes, defaultInstance.getDefaultInstanceForType());
   }
 
   /**
@@ -51,7 +45,7 @@
     try {
       return get(bundle, key, defaultInstance);
     } catch (InvalidProtocolBufferException e) {
-      throw new RuntimeException(e);
+      throw Assert.createIllegalStateFailException(e.toString());
     }
   }
 
@@ -68,121 +62,28 @@
    * Stores a proto in a Bundle, for later retrieval by {@link #get(Bundle, String, MessageLite)} or
    * {@link #getFromInstanceState(Bundle, String, MessageLite)}.
    */
-  public static void put(Bundle bundle, String key, MessageLite message) {
-    bundle.putParcelable(key, new InternalDontUse<>(null, message));
+  public static void put(
+      @NonNull Bundle bundle, @NonNull String key, @NonNull MessageLite message) {
+    Assert.checkState(message != null);
+    bundle.putByteArray(key, message.toByteArray());
   }
 
   /**
    * Stores a proto in an Intent, for later retrieval by {@link #get(Bundle, String, MessageLite)}.
    * Needs separate method because Intent has similar to but different API than Bundle.
    */
-  public static void put(Intent intent, String key, MessageLite message) {
-    intent.putExtra(key, new InternalDontUse<>(null, message));
-  }
-
-  /** Returns a {@linkplain Parcelable} representation of this protobuf message. */
-  public static <T extends MessageLite> ParcelableProto<T> asParcelable(T message) {
-    return new InternalDontUse<>(null, message);
-  }
-
-  /**
-   * A protobuf message that can be stored in a {@link Parcel}.
-   *
-   * <p><b>Note:</b> This <code>Parcelable</code> can only be used in single app. Attempting to send
-   * it to another app through an <code>Intent</code> will result in an exception due to Proguard
-   * obfusation when the target application attempts to load the <code>ParcelableProto</code> class.
-   */
-  public interface ParcelableProto<T extends MessageLite> extends Parcelable {
-    /**
-     * @throws IllegalStateException if the parceled data does not correspond to the defaultInstance
-     *     type.
-     */
-    T getMessage(T defaultInstance);
-  }
-
-  /** Public because of Parcelable requirements. Do not use. */
-  public static final class InternalDontUse<T extends MessageLite> implements ParcelableProto<T> {
-    /* One of these two fields is always populated - since the bytes field never escapes this
-     * object, there is no risk of concurrent modification by multiple threads, and volatile
-     * is sufficient to be thread-safe. */
-    private volatile byte[] bytes;
-    private volatile T message;
-
-    /**
-     * Ideally, we would have type safety here. However, a static field {@link Creator} is required
-     * by {@link Parcelable}. Static fields are inherently not type safe, since only 1 exists per
-     * class (rather than 1 per type).
-     */
-    public static final Parcelable.Creator<InternalDontUse<?>> CREATOR =
-        new Creator<InternalDontUse<?>>() {
-          @Override
-          public InternalDontUse<?> createFromParcel(Parcel parcel) {
-            int serializedSize = parcel.readInt();
-            byte[] array = new byte[serializedSize];
-            parcel.readByteArray(array);
-            return new InternalDontUse<>(array, null);
-          }
-
-          @Override
-          public InternalDontUse<?>[] newArray(int i) {
-            return new InternalDontUse[i];
-          }
-        };
-
-    private InternalDontUse(byte[] bytes, T message) {
-      Assert.checkArgument(bytes != null || message != null, "Must have a message or bytes");
-      this.bytes = bytes;
-      this.message = message;
-    }
-
-    @Override
-    public int describeContents() {
-      return 0;
-    }
-
-    @Override
-    public void writeToParcel(Parcel parcel, int i) {
-      if (bytes == null) {
-        final byte[] flatArray = new byte[message.getSerializedSize()];
-        try {
-          message.writeTo(CodedOutputStream.newInstance(flatArray));
-          bytes = flatArray;
-        } catch (IOException impossible) {
-          throw new AssertionError(impossible);
-        }
-      }
-      parcel.writeInt(bytes.length);
-      parcel.writeByteArray(bytes);
-    }
-
-    @Override
-    public T getMessage(T defaultInstance) {
-      try {
-        // The proto should never be invalid if it came from our application, so if it is, throw.
-        return getMessageUnsafe(defaultInstance);
-      } catch (InvalidProtocolBufferException e) {
-        throw new IllegalStateException(e);
-      }
-    }
-
-    @SuppressWarnings("unchecked") // We're being deserialized, so there's no real type safety
-    T getMessageUnsafe(T defaultInstance) throws InvalidProtocolBufferException {
-      // There's a risk that we'll double-parse the bytes, but that's OK, because it'll end up
-      // as the same immutable object anyway.
-      if (message == null) {
-        message = (T) defaultInstance.toBuilder().mergeFrom(bytes).build();
-      }
-      return message;
-    }
+  public static void put(@NonNull Intent intent, @NonNull String key, MessageLite message) {
+    Assert.checkState(message != null);
+    intent.putExtra(key, message.toByteArray());
   }
 
   /** Parses a proto, throwing parser errors as runtime exceptions. */
   @SuppressWarnings("unchecked") // We want to eventually optimize away parser classes
-  public static <T extends MessageLite> T mergeFrom(byte[] bytes, T defaultInstance) {
+  private static <T extends MessageLite> T mergeFrom(byte[] bytes, T defaultInstance) {
     try {
       return (T) defaultInstance.toBuilder().mergeFrom(bytes).build();
     } catch (InvalidProtocolBufferException e) {
-      throw new RuntimeException(e);
+      throw Assert.createIllegalStateFailException(e.toString());
     }
   }
 }
diff --git a/java/com/android/dialer/searchfragment/AndroidManifest.xml b/java/com/android/dialer/searchfragment/AndroidManifest.xml
new file mode 100644
index 0000000..88ce67c
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/AndroidManifest.xml
@@ -0,0 +1,16 @@
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~      http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<manifest  package="com.android.dialer.searchfragment"/>
\ No newline at end of file
diff --git a/java/com/android/dialer/searchfragment/NewSearchFragment.java b/java/com/android/dialer/searchfragment/NewSearchFragment.java
new file mode 100644
index 0000000..e7283d0
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/NewSearchFragment.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.searchfragment;
+
+import android.app.Fragment;
+import android.app.LoaderManager.LoaderCallbacks;
+import android.content.Loader;
+import android.database.Cursor;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+/** Fragment used for searching contacts. */
+public final class NewSearchFragment extends Fragment implements LoaderCallbacks<Cursor> {
+
+  private RecyclerView recyclerView;
+  private SearchAdapter adapter;
+  private String query;
+
+  @Nullable
+  @Override
+  public View onCreateView(
+      LayoutInflater inflater, @Nullable ViewGroup parent, @Nullable Bundle bundle) {
+    getLoaderManager().initLoader(0, null, this);
+    View view = inflater.inflate(R.layout.fragment_search, parent, false);
+    recyclerView = view.findViewById(R.id.recycler_view);
+    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
+
+    getLoaderManager().initLoader(0, null, this);
+    return view;
+  }
+
+  @Override
+  public Loader<Cursor> onCreateLoader(int id, Bundle bundle) {
+    // TODO add more loaders
+    return new SearchContactsCursorLoader(getContext());
+  }
+
+  @Override
+  public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
+    if (adapter == null) {
+      adapter = new SearchAdapter(getContext());
+    }
+    if (loader instanceof SearchContactsCursorLoader) {
+      adapter.setContactsCursor(new SearchContactCursor(cursor, query));
+    }
+    recyclerView.setAdapter(adapter);
+  }
+
+  @Override
+  public void onLoaderReset(Loader<Cursor> loader) {
+    if (adapter != null) {
+      adapter.clear();
+      adapter = null;
+    }
+    recyclerView.setAdapter(null);
+  }
+
+  public void setQuery(String query) {
+    this.query = query;
+    if (adapter != null) {
+      adapter.setQuery(query);
+    }
+  }
+}
diff --git a/java/com/android/dialer/searchfragment/QueryUtil.java b/java/com/android/dialer/searchfragment/QueryUtil.java
new file mode 100644
index 0000000..a3f44ab
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/QueryUtil.java
@@ -0,0 +1,269 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.searchfragment;
+
+import android.graphics.Typeface;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.telephony.PhoneNumberUtils;
+import android.text.SpannableString;
+import android.text.Spanned;
+import android.text.TextUtils;
+import android.text.style.StyleSpan;
+import java.util.regex.Pattern;
+
+/** Contains utility methods for comparing and filtering strings with search queries. */
+final class QueryUtil {
+
+  /** Matches strings with "-", "(", ")", 2-9 of at least length one. */
+  static final Pattern T9_PATTERN = Pattern.compile("[\\-()2-9]+");
+
+  /**
+   * Compares a name and query and returns a {@link CharSequence} with bolded characters.
+   *
+   * <p>Some example:
+   *
+   * <ul>
+   *   <li>"query" would bold "John [query] Smith"
+   *   <li>"222" would bold "[AAA] Mom"
+   *   <li>"222" would bold "[A]llen [A]lex [A]aron"
+   * </ul>
+   *
+   * @param query containing any characters
+   * @param name of a contact/string that query will compare to
+   * @return name with query bolded if query can be found in the name.
+   */
+  static CharSequence getNameWithQueryBolded(@Nullable String query, @NonNull String name) {
+    if (TextUtils.isEmpty(query)) {
+      return name;
+    }
+
+    int index = -1;
+    int numberOfBoldedCharacters = 0;
+
+    if (nameMatchesT9Query(query, name)) {
+      // Bold the characters that match the t9 query
+      index = indexOfQueryNonDigitsIgnored(query, getT9Representation(name));
+      if (index == -1) {
+        return getNameWithInitialsBolded(query, name);
+      }
+      numberOfBoldedCharacters = query.length();
+
+      for (int i = 0; i < query.length(); i++) {
+        char c = query.charAt(i);
+        if (!Character.isDigit(c)) {
+          numberOfBoldedCharacters--;
+        }
+      }
+
+      for (int i = 0; i < index + numberOfBoldedCharacters; i++) {
+        if (!Character.isLetterOrDigit(name.charAt(i))) {
+          if (i < index) {
+            index++;
+          } else {
+            numberOfBoldedCharacters++;
+          }
+        }
+      }
+    }
+
+    if (index == -1) {
+      // Bold the query as an exact match in the name
+      index = name.toLowerCase().indexOf(query);
+      numberOfBoldedCharacters = query.length();
+    }
+
+    return index == -1 ? name : getBoldedString(name, index, numberOfBoldedCharacters);
+  }
+
+  private static CharSequence getNameWithInitialsBolded(String query, String name) {
+    SpannableString boldedInitials = new SpannableString(name);
+    name = name.toLowerCase();
+    int initialsBolded = 0;
+    int nameIndex = -1;
+
+    while (++nameIndex < name.length() && initialsBolded < query.length()) {
+      if ((nameIndex == 0 || name.charAt(nameIndex - 1) == ' ')
+          && getDigit(name.charAt(nameIndex)) == query.charAt(initialsBolded)) {
+        boldedInitials.setSpan(
+            new StyleSpan(Typeface.BOLD),
+            nameIndex,
+            nameIndex + 1,
+            Spanned.SPAN_INCLUSIVE_INCLUSIVE);
+        initialsBolded++;
+      }
+    }
+    return boldedInitials;
+  }
+
+  /**
+   * Compares a number and a query and returns a {@link CharSequence} with bolded characters.
+   *
+   * <ul>
+   *   <li>"123" would bold "(650)34[1-23]24"
+   *   <li>"123" would bold "+1([123])111-2222
+   * </ul>
+   *
+   * @param query containing only numbers and phone number related characters "(", ")", "-", "+"
+   * @param number phone number of a contact that the query will compare to.
+   * @return number with query bolded if query can be found in the number.
+   */
+  static CharSequence getNumberWithQueryBolded(@Nullable String query, @NonNull String number) {
+    if (TextUtils.isEmpty(query) || !numberMatchesNumberQuery(query, number)) {
+      return number;
+    }
+
+    int index = indexOfQueryNonDigitsIgnored(query, number);
+    int boldedCharacters = query.length();
+
+    for (char c : query.toCharArray()) {
+      if (!Character.isDigit(c)) {
+        boldedCharacters--;
+      }
+    }
+
+    for (int i = 0; i < index + boldedCharacters; i++) {
+      if (!Character.isDigit(number.charAt(i))) {
+        if (i <= index) {
+          index++;
+        } else {
+          boldedCharacters++;
+        }
+      }
+    }
+    return getBoldedString(number, index, boldedCharacters);
+  }
+
+  private static SpannableString getBoldedString(String s, int index, int numBolded) {
+    SpannableString span = new SpannableString(s);
+    span.setSpan(
+        new StyleSpan(Typeface.BOLD), index, index + numBolded, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+    return span;
+  }
+
+  /**
+   * @return true if the query is of T9 format and the name's T9 representation belongs to the
+   *     query; false otherwise.
+   */
+  static boolean nameMatchesT9Query(String query, String name) {
+    if (!T9_PATTERN.matcher(query).matches()) {
+      return false;
+    }
+
+    // Substring
+    if (indexOfQueryNonDigitsIgnored(query, getT9Representation(name)) != -1) {
+      return true;
+    }
+
+    // Check matches initials
+    // TODO investigate faster implementation
+    query = digitsOnly(query);
+    int queryIndex = 0;
+
+    String[] names = name.toLowerCase().split("\\s");
+    for (int i = 0; i < names.length && queryIndex < query.length(); i++) {
+      if (TextUtils.isEmpty(names[i])) {
+        continue;
+      }
+
+      if (getDigit(names[i].charAt(0)) == query.charAt(queryIndex)) {
+        queryIndex++;
+      }
+    }
+
+    return queryIndex == query.length();
+  }
+
+  /** @return true if the number belongs to the query. */
+  static boolean numberMatchesNumberQuery(String query, String number) {
+    return PhoneNumberUtils.isGlobalPhoneNumber(query)
+        && indexOfQueryNonDigitsIgnored(query, number) != -1;
+  }
+
+  /**
+   * Checks if query is contained in number while ignoring all characters in both that are not
+   * digits (i.e. {@link Character#isDigit(char)} returns false).
+   *
+   * @return index where query is found with all non-digits removed, -1 if it's not found.
+   */
+  private static int indexOfQueryNonDigitsIgnored(@NonNull String query, @NonNull String number) {
+    return digitsOnly(number).indexOf(digitsOnly(query));
+  }
+
+  // Returns string with letters replaced with their T9 representation.
+  private static String getT9Representation(String s) {
+    StringBuilder builder = new StringBuilder(s.length());
+    for (char c : s.toLowerCase().toCharArray()) {
+      builder.append(getDigit(c));
+    }
+    return builder.toString();
+  }
+
+  /** @return String s with only digits recognized by Character#isDigit() remaining */
+  static String digitsOnly(String s) {
+    StringBuilder sb = new StringBuilder();
+    for (int i = 0; i < s.length(); i++) {
+      char c = s.charAt(i);
+      if (Character.isDigit(c)) {
+        sb.append(c);
+      }
+    }
+    return sb.toString();
+  }
+
+  // Returns the T9 representation of a lower case character, otherwise returns the character.
+  private static char getDigit(char c) {
+    switch (c) {
+      case 'a':
+      case 'b':
+      case 'c':
+        return '2';
+      case 'd':
+      case 'e':
+      case 'f':
+        return '3';
+      case 'g':
+      case 'h':
+      case 'i':
+        return '4';
+      case 'j':
+      case 'k':
+      case 'l':
+        return '5';
+      case 'm':
+      case 'n':
+      case 'o':
+        return '6';
+      case 'p':
+      case 'q':
+      case 'r':
+      case 's':
+        return '7';
+      case 't':
+      case 'u':
+      case 'v':
+        return '8';
+      case 'w':
+      case 'x':
+      case 'y':
+      case 'z':
+        return '9';
+      default:
+        return c;
+    }
+  }
+}
diff --git a/java/com/android/dialer/searchfragment/README.md b/java/com/android/dialer/searchfragment/README.md
new file mode 100644
index 0000000..b3b9135
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/README.md
@@ -0,0 +1,62 @@
+# Dialer Search Ui
+
+searchfragment/ contains all code relevant to loading, rendering and filtering
+search results in both dialpad search and regular search.
+
+## Loading
+
+### On Device Contacts
+
+On device contacts loading happens in SearchContactsCursorLoader. It is used in
+conjunction with NewSearchFragment and Loader Callbacks to return a cursor from
+cp2 containing all of the relevant info needed to rendering.
+
+### Business Search
+
+// TODO(calderwoodra)
+
+### Google Directory Search
+
+// TODO(calderwoodra)
+
+## Rendering
+
+NewSearchFragment, SearchAdapter, SearchContactViewHolder and
+SearchCursorManager are used to render contact information. The fragment's
+recyclerview, adapter and viewholder work as expected like a normal recyclerview
+paradigm.
+
+The are three things to note about rendering:
+
+*   There are three data sources rendered: On device contacts, business search
+    results and google directory results.
+*   SearchContactsCursorLoader returns its cursor from cp2 and we filter/wrap it
+    with SearchContactCursor to render useful results (see below).
+*   SearchCursorManager is used to coalesce all three data sources to help with
+    determining row count, row type and returning the correct data source for
+    each position.
+
+## Filtering
+
+On device contacts are filtered using SearchContactCursor. We wrap the cursor
+returned from SearchContactsCursorLoader in NewSearchFragment#onLoadFinished in
+order to abstract away the filtering logic from the recyclerview adapter and
+viewholders.
+
+SearchContactCursor applies filtering in SearchContactCursor#filter to remove
+duplicate phone numbers returned from cp2 and phone numbers that do not match
+the given search query.
+
+Filtering methods used are:
+
+*   T9/dialpad search methods
+    *   Initial match (957 matches [W]illiam [J]ohn [S]mith)
+    *   Number + name match (1800946 matches [1800-Win]-A-Prize)
+*   Numeric/dialpad search methods
+    *   Simple number match (510333 matches [510-333]-7596)
+    *   Country-code agnostic matching for E164 normalized numbers (9177 matches
+        +65[9177]6930)
+    *   Country-code agnostic matching (510333 matches 1-[510-333]-7596)
+    *   Area-code agnostic matching (333 matches 510-[333]-7596)
+*   Name/keyboard search methods:
+    *   Simple name match (564 matches [Joh]n)
diff --git a/java/com/android/dialer/searchfragment/SearchAdapter.java b/java/com/android/dialer/searchfragment/SearchAdapter.java
new file mode 100644
index 0000000..8f52415
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/SearchAdapter.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.searchfragment;
+
+import android.content.Context;
+import android.database.Cursor;
+import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.RecyclerView.ViewHolder;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+import com.android.dialer.common.Assert;
+import com.android.dialer.searchfragment.SearchCursorManager.RowType;
+
+/** RecyclerView adapter for {@link NewSearchFragment}. */
+class SearchAdapter extends RecyclerView.Adapter<ViewHolder> {
+
+  private final SearchCursorManager searchCursorManager;
+  private final Context context;
+
+  private String query;
+
+  SearchAdapter(Context context) {
+    searchCursorManager = new SearchCursorManager();
+    this.context = context;
+  }
+
+  // TODO: fill in the rest of the view holders.
+  @Override
+  public ViewHolder onCreateViewHolder(ViewGroup root, int position) {
+    @RowType int rowType = searchCursorManager.getRowType(position);
+    switch (rowType) {
+      case RowType.CONTACT_ROW:
+        return new SearchContactViewHolder(
+            LayoutInflater.from(context).inflate(R.layout.search_contact_row, root, false));
+      case RowType.DIRECTORY_HEADER:
+      case RowType.DIRECTORY_ROW:
+      case RowType.INVALID:
+      case RowType.NEARBY_PLACES_HEADER:
+      case RowType.NEARBY_PLACES_ROW:
+        return null;
+      default:
+        throw Assert.createIllegalStateFailException("Invalid RowType: " + rowType);
+    }
+  }
+
+  @Override
+  public void onBindViewHolder(ViewHolder holder, int position) {
+    Cursor cursor = searchCursorManager.getCursor(position);
+    ((SearchContactViewHolder) holder).bind(cursor, query);
+  }
+
+  void setContactsCursor(Cursor cursor) {
+    searchCursorManager.setContactsCursor(cursor);
+  }
+
+  void clear() {
+    searchCursorManager.clear();
+  }
+
+  @Override
+  public int getItemCount() {
+    return searchCursorManager.getCount();
+  }
+
+  public void setQuery(String query) {
+    this.query = query;
+    searchCursorManager.setQuery(query);
+    notifyDataSetChanged();
+  }
+}
diff --git a/java/com/android/dialer/searchfragment/SearchContactCursor.java b/java/com/android/dialer/searchfragment/SearchContactCursor.java
new file mode 100644
index 0000000..5006e1a
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/SearchContactCursor.java
@@ -0,0 +1,390 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.searchfragment;
+
+import android.content.ContentResolver;
+import android.database.CharArrayBuffer;
+import android.database.ContentObserver;
+import android.database.Cursor;
+import android.database.DataSetObserver;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.annotation.IntDef;
+import android.support.annotation.Nullable;
+import android.text.TextUtils;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Wrapper for a cursor returned by {@link SearchContactsCursorLoader}.
+ *
+ * <p>This cursor removes duplicate phone numbers associated with the same contact and can filter
+ * contacts based on a query by calling {@link #filter(String)}.
+ */
+final class SearchContactCursor implements Cursor {
+
+  private final Cursor cursor;
+  // List of cursor ids that are valid for displaying after filtering.
+  private final List<Integer> queryFilteredPositions = new ArrayList<>();
+
+  private int currentPosition = 0;
+
+  @Retention(RetentionPolicy.SOURCE)
+  @IntDef({
+    Qualification.NUMBERS_ARE_NOT_DUPLICATES,
+    Qualification.NEW_NUMBER_IS_MORE_QUALIFIED,
+    Qualification.CURRENT_MORE_QUALIFIED
+  })
+  private @interface Qualification {
+    /** Numbers are not duplicates (i.e. neither is more qualified than the other). */
+    int NUMBERS_ARE_NOT_DUPLICATES = 0;
+    /** Number are duplicates and new number is more qualified than the existing number. */
+    int NEW_NUMBER_IS_MORE_QUALIFIED = 1;
+    /** Numbers are duplicates but current/existing number is more qualified than new number. */
+    int CURRENT_MORE_QUALIFIED = 2;
+  }
+
+  /**
+   * @param cursor with projection {@link SearchContactsCursorLoader#PHONE_PROJECTION}.
+   * @param query to filter cursor results.
+   */
+  SearchContactCursor(Cursor cursor, @Nullable String query) {
+    // TODO investigate copying this into a MatrixCursor and holding in memory
+    this.cursor = cursor;
+    filter(query);
+  }
+
+  /**
+   * Filters out contacts that do not match the query.
+   *
+   * <p>The query can have at least 1 of 3 forms:
+   *
+   * <ul>
+   *   <li>A phone number
+   *   <li>A T9 representation of a name (matches {@link QueryUtil#T9_PATTERN}).
+   *   <li>A name
+   * </ul>
+   *
+   * <p>A contact is considered a match if:
+   *
+   * <ul>
+   *   <li>Its phone number contains the phone number query
+   *   <li>Its name represented in T9 contains the T9 query
+   *   <li>Its name contains the query
+   * </ul>
+   */
+  void filter(@Nullable String query) {
+    if (query == null) {
+      query = "";
+    }
+    queryFilteredPositions.clear();
+
+    // On some devices, contacts have multiple rows with identical phone numbers. These numbers are
+    // considered duplicates. Since the order might not be guaranteed, we compare all of the numbers
+    // and hold onto the most qualified one as the one we want to display to the user.
+    // See #getQualification for details on how qualification is determined.
+    int previousMostQualifiedPosition = 0;
+    String previousName = "";
+    String previousMostQualifiedNumber = "";
+
+    query = query.toLowerCase();
+    cursor.moveToPosition(-1);
+
+    while (cursor.moveToNext()) {
+      int position = cursor.getPosition();
+      String currentNumber = cursor.getString(SearchContactsCursorLoader.PHONE_NUMBER);
+      String currentName = cursor.getString(SearchContactsCursorLoader.PHONE_DISPLAY_NAME);
+
+      if (!previousName.equals(currentName)) {
+        previousName = currentName;
+        previousMostQualifiedNumber = currentNumber;
+        previousMostQualifiedPosition = position;
+      } else {
+        // Since the contact name is the same, check if this number is a duplicate
+        switch (getQualification(currentNumber, previousMostQualifiedNumber)) {
+          case Qualification.CURRENT_MORE_QUALIFIED:
+            // Number is a less qualified duplicate, ignore it.
+            continue;
+          case Qualification.NEW_NUMBER_IS_MORE_QUALIFIED:
+            // If number wasn't filtered out before, remove it and add it's more qualified version.
+            if (queryFilteredPositions.contains(previousMostQualifiedPosition)) {
+              queryFilteredPositions.remove(previousMostQualifiedPosition);
+              queryFilteredPositions.add(position);
+            }
+            previousMostQualifiedNumber = currentNumber;
+            previousMostQualifiedPosition = position;
+            continue;
+          case Qualification.NUMBERS_ARE_NOT_DUPLICATES:
+          default:
+            previousMostQualifiedNumber = currentNumber;
+            previousMostQualifiedPosition = position;
+        }
+      }
+
+      if (TextUtils.isEmpty(query)
+          || QueryUtil.nameMatchesT9Query(query, previousName)
+          || QueryUtil.numberMatchesNumberQuery(query, previousMostQualifiedNumber)
+          || previousName.contains(query)) {
+        queryFilteredPositions.add(previousMostQualifiedPosition);
+      }
+    }
+    currentPosition = 0;
+    cursor.moveToFirst();
+  }
+
+  /**
+   * @param number that may or may not be more qualified than the existing most qualified number
+   * @param mostQualifiedNumber currently most qualified number associated with same contact
+   * @return {@link Qualification} where the more qualified number is the number with the most
+   *     digits. If the digits are the same, the number with the most formatting is more qualified.
+   */
+  private @Qualification int getQualification(String number, String mostQualifiedNumber) {
+    // Ignore formatting
+    String numberDigits = QueryUtil.digitsOnly(number);
+    String qualifiedNumberDigits = QueryUtil.digitsOnly(mostQualifiedNumber);
+
+    // If the numbers are identical, return version with more formatting
+    if (qualifiedNumberDigits.equals(numberDigits)) {
+      if (mostQualifiedNumber.length() >= number.length()) {
+        return Qualification.CURRENT_MORE_QUALIFIED;
+      } else {
+        return Qualification.NEW_NUMBER_IS_MORE_QUALIFIED;
+      }
+    }
+
+    // If one number is a suffix of another, then return the longer one.
+    // If they are equal, then return the current most qualified number.
+    if (qualifiedNumberDigits.endsWith(numberDigits)) {
+      return Qualification.CURRENT_MORE_QUALIFIED;
+    }
+    if (numberDigits.endsWith(qualifiedNumberDigits)) {
+      return Qualification.NEW_NUMBER_IS_MORE_QUALIFIED;
+    }
+    return Qualification.NUMBERS_ARE_NOT_DUPLICATES;
+  }
+
+  @Override
+  public boolean moveToPosition(int position) {
+    currentPosition = position;
+    return currentPosition < getCount()
+        && cursor.moveToPosition(queryFilteredPositions.get(currentPosition));
+  }
+
+  @Override
+  public boolean move(int offset) {
+    currentPosition += offset;
+    return moveToPosition(currentPosition);
+  }
+
+  @Override
+  public int getCount() {
+    return queryFilteredPositions.size();
+  }
+
+  @Override
+  public boolean isFirst() {
+    return currentPosition == 0;
+  }
+
+  @Override
+  public boolean isLast() {
+    return currentPosition == getCount() - 1;
+  }
+
+  @Override
+  public int getPosition() {
+    return currentPosition;
+  }
+
+  @Override
+  public boolean moveToFirst() {
+    return moveToPosition(0);
+  }
+
+  @Override
+  public boolean moveToLast() {
+    return moveToPosition(getCount() - 1);
+  }
+
+  @Override
+  public boolean moveToNext() {
+    return moveToPosition(++currentPosition);
+  }
+
+  @Override
+  public boolean moveToPrevious() {
+    return moveToPosition(--currentPosition);
+  }
+
+  // Methods below simply call the corresponding method in cursor.
+  @Override
+  public boolean isBeforeFirst() {
+    return cursor.isBeforeFirst();
+  }
+
+  @Override
+  public boolean isAfterLast() {
+    return cursor.isAfterLast();
+  }
+
+  @Override
+  public int getColumnIndex(String columnName) {
+    return cursor.getColumnIndex(columnName);
+  }
+
+  @Override
+  public int getColumnIndexOrThrow(String columnName) {
+    return cursor.getColumnIndexOrThrow(columnName);
+  }
+
+  @Override
+  public String getColumnName(int columnIndex) {
+    return cursor.getColumnName(columnIndex);
+  }
+
+  @Override
+  public String[] getColumnNames() {
+    return cursor.getColumnNames();
+  }
+
+  @Override
+  public int getColumnCount() {
+    return cursor.getColumnCount();
+  }
+
+  @Override
+  public byte[] getBlob(int columnIndex) {
+    return cursor.getBlob(columnIndex);
+  }
+
+  @Override
+  public String getString(int columnIndex) {
+    return cursor.getString(columnIndex);
+  }
+
+  @Override
+  public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) {
+    cursor.copyStringToBuffer(columnIndex, buffer);
+  }
+
+  @Override
+  public short getShort(int columnIndex) {
+    return cursor.getShort(columnIndex);
+  }
+
+  @Override
+  public int getInt(int columnIndex) {
+    return cursor.getInt(columnIndex);
+  }
+
+  @Override
+  public long getLong(int columnIndex) {
+    return cursor.getLong(columnIndex);
+  }
+
+  @Override
+  public float getFloat(int columnIndex) {
+    return cursor.getFloat(columnIndex);
+  }
+
+  @Override
+  public double getDouble(int columnIndex) {
+    return cursor.getDouble(columnIndex);
+  }
+
+  @Override
+  public int getType(int columnIndex) {
+    return cursor.getType(columnIndex);
+  }
+
+  @Override
+  public boolean isNull(int columnIndex) {
+    return cursor.isNull(columnIndex);
+  }
+
+  @Override
+  public void deactivate() {
+    cursor.deactivate();
+  }
+
+  @Override
+  public boolean requery() {
+    return cursor.requery();
+  }
+
+  @Override
+  public void close() {
+    cursor.close();
+  }
+
+  @Override
+  public boolean isClosed() {
+    return cursor.isClosed();
+  }
+
+  @Override
+  public void registerContentObserver(ContentObserver observer) {
+    cursor.registerContentObserver(observer);
+  }
+
+  @Override
+  public void unregisterContentObserver(ContentObserver observer) {
+    cursor.unregisterContentObserver(observer);
+  }
+
+  @Override
+  public void registerDataSetObserver(DataSetObserver observer) {
+    cursor.registerDataSetObserver(observer);
+  }
+
+  @Override
+  public void unregisterDataSetObserver(DataSetObserver observer) {
+    cursor.unregisterDataSetObserver(observer);
+  }
+
+  @Override
+  public void setNotificationUri(ContentResolver cr, Uri uri) {
+    cursor.setNotificationUri(cr, uri);
+  }
+
+  @Override
+  public Uri getNotificationUri() {
+    return cursor.getNotificationUri();
+  }
+
+  @Override
+  public boolean getWantsAllOnMoveCalls() {
+    return cursor.getWantsAllOnMoveCalls();
+  }
+
+  @Override
+  public void setExtras(Bundle extras) {
+    cursor.setExtras(extras);
+  }
+
+  @Override
+  public Bundle getExtras() {
+    return cursor.getExtras();
+  }
+
+  @Override
+  public Bundle respond(Bundle extras) {
+    return cursor.respond(extras);
+  }
+}
diff --git a/java/com/android/dialer/searchfragment/SearchContactViewHolder.java b/java/com/android/dialer/searchfragment/SearchContactViewHolder.java
new file mode 100644
index 0000000..4ac6af3
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/SearchContactViewHolder.java
@@ -0,0 +1,203 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.searchfragment;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.Contacts;
+import android.support.annotation.IntDef;
+import android.support.v7.widget.RecyclerView.ViewHolder;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.ImageView;
+import android.widget.QuickContactBadge;
+import android.widget.TextView;
+import com.android.contacts.common.ContactPhotoManager;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
+import com.android.dialer.callintent.CallInitiationType.Type;
+import com.android.dialer.callintent.CallIntentBuilder;
+import com.android.dialer.common.Assert;
+import com.android.dialer.telecom.TelecomUtil;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/** ViewHolder for a contact row in {@link NewSearchFragment}. */
+final class SearchContactViewHolder extends ViewHolder implements OnClickListener {
+
+  /** IntDef for the different types of actions that can be shown. */
+  @Retention(RetentionPolicy.SOURCE)
+  @IntDef({
+    SearchContactViewHolder.CallToAction.NONE,
+    SearchContactViewHolder.CallToAction.VIDEO_CALL,
+    SearchContactViewHolder.CallToAction.SHARE_AND_CALL
+  })
+  @interface CallToAction {
+    int NONE = 0;
+    int VIDEO_CALL = 1;
+    int SHARE_AND_CALL = 2;
+  }
+
+  private final QuickContactBadge photo;
+  private final TextView nameOrNumberView;
+  private final TextView numberView;
+  private final ImageView callToActionView;
+  private final Context context;
+
+  private String number;
+  private @CallToAction int currentAction;
+
+  SearchContactViewHolder(View view) {
+    super(view);
+    view.setOnClickListener(this);
+    photo = view.findViewById(R.id.photo);
+    nameOrNumberView = view.findViewById(R.id.primary);
+    numberView = view.findViewById(R.id.secondary);
+    callToActionView = view.findViewById(R.id.call_to_action);
+    context = view.getContext();
+  }
+
+  /**
+   * Binds the ViewHolder with a cursor from {@link SearchContactsCursorLoader} with the data found
+   * at the cursors set position.
+   */
+  void bind(Cursor cursor, String query) {
+    number = cursor.getString(SearchContactsCursorLoader.PHONE_NUMBER);
+    String name = cursor.getString(SearchContactsCursorLoader.PHONE_DISPLAY_NAME);
+    String label = getLabel(context.getResources(), cursor);
+    String secondaryInfo =
+        TextUtils.isEmpty(label)
+            ? number
+            : context.getString(R.string.call_subject_type_and_number, label, number);
+
+    nameOrNumberView.setText(QueryUtil.getNameWithQueryBolded(query, name));
+    numberView.setText(QueryUtil.getNumberWithQueryBolded(query, secondaryInfo));
+    setCallToAction(cursor);
+
+    if (shouldShowPhoto(cursor, name)) {
+      nameOrNumberView.setVisibility(View.VISIBLE);
+      photo.setVisibility(View.VISIBLE);
+      photo.setContentDescription(context.getString(R.string.description_quick_contact_for, name));
+      String photoUri = cursor.getString(SearchContactsCursorLoader.PHONE_PHOTO_URI);
+      ContactPhotoManager.getInstance(context)
+          .loadDialerThumbnailOrPhoto(
+              photo,
+              getContactUri(cursor),
+              cursor.getLong(SearchContactsCursorLoader.PHONE_PHOTO_ID),
+              photoUri == null ? null : Uri.parse(photoUri),
+              name,
+              LetterTileDrawable.TYPE_DEFAULT);
+    } else {
+      nameOrNumberView.setVisibility(View.GONE);
+      photo.setVisibility(View.INVISIBLE);
+    }
+  }
+
+  private boolean shouldShowPhoto(Cursor cursor, String currentName) {
+    int currentPosition = cursor.getPosition();
+    if (currentPosition == 0) {
+      return true;
+    } else {
+      cursor.moveToPosition(currentPosition - 1);
+      String previousName = cursor.getString(SearchContactsCursorLoader.PHONE_DISPLAY_NAME);
+      cursor.moveToPosition(currentPosition);
+      return !currentName.equals(previousName);
+    }
+  }
+
+  private static Uri getContactUri(Cursor cursor) {
+    long contactId = cursor.getLong(SearchContactsCursorLoader.PHONE_ID);
+    String lookupKey = cursor.getString(SearchContactsCursorLoader.PHONE_LOOKUP_KEY);
+    return Contacts.getLookupUri(contactId, lookupKey);
+  }
+
+  // TODO: handle CNAP and cequint types.
+  // TODO: unify this into a utility method with CallLogAdapter#getNumberType
+  private static String getLabel(Resources resources, Cursor cursor) {
+    int numberType = cursor.getInt(SearchContactsCursorLoader.PHONE_TYPE);
+    String numberLabel = cursor.getString(SearchContactsCursorLoader.PHONE_LABEL);
+
+    // Returns empty label instead of "custom" if the custom label is empty.
+    if (numberType == Phone.TYPE_CUSTOM && TextUtils.isEmpty(numberLabel)) {
+      return "";
+    }
+    return (String) Phone.getTypeLabel(resources, numberType, numberLabel);
+  }
+
+  private void setCallToAction(Cursor cursor) {
+    currentAction = getCallToAction(cursor);
+    switch (currentAction) {
+      case CallToAction.NONE:
+        callToActionView.setVisibility(View.GONE);
+        callToActionView.setOnClickListener(null);
+        break;
+      case CallToAction.SHARE_AND_CALL:
+        callToActionView.setVisibility(View.VISIBLE);
+        callToActionView.setImageDrawable(context.getDrawable(R.drawable.ic_phone_attach));
+        callToActionView.setOnClickListener(this);
+        break;
+      case CallToAction.VIDEO_CALL:
+        callToActionView.setVisibility(View.VISIBLE);
+        callToActionView.setImageDrawable(
+            context.getDrawable(R.drawable.quantum_ic_videocam_white_24));
+        callToActionView.setOnClickListener(this);
+        break;
+      default:
+        throw Assert.createIllegalStateFailException(
+            "Invalid Call to action type: " + currentAction);
+    }
+  }
+
+  private static @CallToAction int getCallToAction(Cursor cursor) {
+    int carrierPresence = cursor.getInt(SearchContactsCursorLoader.PHONE_CARRIER_PRESENCE);
+    if ((carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) == 1) {
+      return CallToAction.VIDEO_CALL;
+    }
+
+    // TODO: enriched calling
+    return CallToAction.NONE;
+  }
+
+  @Override
+  public void onClick(View view) {
+    if (view == callToActionView) {
+      switch (currentAction) {
+        case CallToAction.SHARE_AND_CALL:
+          callToActionView.setVisibility(View.VISIBLE);
+          callToActionView.setImageDrawable(context.getDrawable(R.drawable.ic_phone_attach));
+          // TODO: open call composer.
+          break;
+        case CallToAction.VIDEO_CALL:
+          callToActionView.setVisibility(View.VISIBLE);
+          callToActionView.setImageDrawable(
+              context.getDrawable(R.drawable.quantum_ic_videocam_white_24));
+          // TODO: place a video call
+          break;
+        case CallToAction.NONE:
+        default:
+          throw Assert.createIllegalStateFailException(
+              "Invalid Call to action type: " + currentAction);
+      }
+    } else {
+      // TODO: set the correct call initiation type.
+      TelecomUtil.placeCall(context, new CallIntentBuilder(number, Type.REGULAR_SEARCH).build());
+    }
+  }
+}
diff --git a/java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java b/java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java
new file mode 100644
index 0000000..309dfff
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.searchfragment;
+
+import android.content.Context;
+import android.content.CursorLoader;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+
+/** Cursor Loader for {@link NewSearchFragment}. */
+final class SearchContactsCursorLoader extends CursorLoader {
+
+  public static final int PHONE_ID = 0;
+  public static final int PHONE_TYPE = 1;
+  public static final int PHONE_LABEL = 2;
+  public static final int PHONE_NUMBER = 3;
+  public static final int PHONE_DISPLAY_NAME = 4;
+  public static final int PHONE_PHOTO_ID = 5;
+  public static final int PHONE_PHOTO_URI = 6;
+  public static final int PHONE_LOOKUP_KEY = 7;
+  public static final int PHONE_CARRIER_PRESENCE = 8;
+
+  @SuppressWarnings("unused")
+  public static final int PHONE_SOFT_KEY = 9;
+
+  static final String[] PHONE_PROJECTION =
+      new String[] {
+        Phone._ID, // 0
+        Phone.TYPE, // 1
+        Phone.LABEL, // 2
+        Phone.NUMBER, // 3
+        Phone.DISPLAY_NAME_PRIMARY, // 4
+        Phone.PHOTO_ID, // 5
+        Phone.PHOTO_THUMBNAIL_URI, // 6
+        Phone.LOOKUP_KEY, // 7
+        Phone.CARRIER_PRESENCE, // 8
+        Phone.SORT_KEY_PRIMARY // 9
+      };
+
+  SearchContactsCursorLoader(Context context) {
+    super(
+        context, Phone.CONTENT_URI, PHONE_PROJECTION, null, null, Phone.SORT_KEY_PRIMARY + " ASC");
+  }
+}
diff --git a/java/com/android/dialer/searchfragment/SearchCursorManager.java b/java/com/android/dialer/searchfragment/SearchCursorManager.java
new file mode 100644
index 0000000..64c4fc1
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/SearchCursorManager.java
@@ -0,0 +1,229 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.searchfragment;
+
+import android.database.Cursor;
+import android.support.annotation.IntDef;
+import com.android.dialer.common.Assert;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Manages all of the cursors needed for {@link SearchAdapter}.
+ *
+ * <p>This class accepts three cursors:
+ *
+ * <ul>
+ *   <li>A contacts cursor {@link #setContactsCursor(Cursor)}
+ *   <li>A google search results cursor {@link #setNearbyPlacesCursor(Cursor)}
+ *   <li>A work directory cursor {@link #setCorpDirectoryCursor(Cursor)}
+ * </ul>
+ *
+ * <p>The key purpose of this class is to compose three aforementioned cursors together to function
+ * as one cursor. The key methods needed to utilize this class as a cursor are:
+ *
+ * <ul>
+ *   <li>{@link #getCursor(int)}
+ *   <li>{@link #getCount()}
+ *   <li>{@link #getRowType(int)}
+ * </ul>
+ */
+final class SearchCursorManager {
+
+  /** IntDef for the different types of rows that can be shown when searching. */
+  @Retention(RetentionPolicy.SOURCE)
+  @IntDef({
+    SearchCursorManager.RowType.INVALID,
+    SearchCursorManager.RowType.CONTACT_ROW,
+    SearchCursorManager.RowType.NEARBY_PLACES_HEADER,
+    SearchCursorManager.RowType.NEARBY_PLACES_ROW,
+    SearchCursorManager.RowType.DIRECTORY_HEADER,
+    SearchCursorManager.RowType.DIRECTORY_ROW
+  })
+  @interface RowType {
+    int INVALID = 0;
+    /** A row containing contact information for contacts stored locally on device. */
+    int CONTACT_ROW = 1;
+    /** Header to mark the end of contact rows and start of nearby places rows. */
+    int NEARBY_PLACES_HEADER = 2;
+    /** A row containing nearby places information/search results. */
+    int NEARBY_PLACES_ROW = 3;
+    /** Header to mark the end of the previous row set and start of directory rows. */
+    int DIRECTORY_HEADER = 4;
+    /** A row containing contact information for contacts stored externally in corp directories. */
+    int DIRECTORY_ROW = 5;
+  }
+
+  private Cursor contactsCursor = null;
+  private Cursor nearbyPlacesCursor = null;
+  private Cursor corpDirectoryCursor = null;
+
+  void setContactsCursor(Cursor cursor) {
+    if (cursor != null && cursor.getCount() > 0) {
+      contactsCursor = cursor;
+    } else {
+      contactsCursor = null;
+    }
+  }
+
+  void setNearbyPlacesCursor(Cursor cursor) {
+    if (cursor != null && cursor.getCount() > 0) {
+      nearbyPlacesCursor = cursor;
+    } else {
+      nearbyPlacesCursor = null;
+    }
+  }
+
+  void setCorpDirectoryCursor(Cursor cursor) {
+    if (cursor != null && cursor.getCount() > 0) {
+      corpDirectoryCursor = cursor;
+    } else {
+      corpDirectoryCursor = null;
+    }
+  }
+
+  void setQuery(String query) {
+    if (contactsCursor != null) {
+      ((SearchContactCursor) contactsCursor).filter(query);
+    }
+  }
+
+  /** @return the sum of counts of all cursors, including headers. */
+  int getCount() {
+    int count = 0;
+    if (contactsCursor != null) {
+      count += contactsCursor.getCount();
+    }
+
+    if (nearbyPlacesCursor != null) {
+      count++; // header
+      count += nearbyPlacesCursor.getCount();
+    }
+
+    if (corpDirectoryCursor != null) {
+      count++; // header
+      count += corpDirectoryCursor.getCount();
+    }
+
+    return count;
+  }
+
+  @RowType
+  int getRowType(int position) {
+    if (contactsCursor != null) {
+      position -= contactsCursor.getCount();
+
+      if (position < 0) {
+        return SearchCursorManager.RowType.CONTACT_ROW;
+      }
+    }
+
+    if (nearbyPlacesCursor != null) {
+      if (position == 0) {
+        return SearchCursorManager.RowType.NEARBY_PLACES_HEADER;
+      } else {
+        position--; // header
+      }
+
+      position -= nearbyPlacesCursor.getCount();
+
+      if (position < 0) {
+        return SearchCursorManager.RowType.NEARBY_PLACES_ROW;
+      }
+    }
+
+    if (corpDirectoryCursor != null) {
+      if (position == 0) {
+        return SearchCursorManager.RowType.DIRECTORY_HEADER;
+      } else {
+        position--; // header
+      }
+
+      position -= corpDirectoryCursor.getCount();
+
+      if (position < 0) {
+        return SearchCursorManager.RowType.DIRECTORY_ROW;
+      }
+    }
+
+    throw Assert.createIllegalStateFailException("No valid row type.");
+  }
+
+  /**
+   * Gets cursor corresponding to position in coelesced list of search cursors. Callers should
+   * ensure that {@link #getRowType(int)} doesn't correspond to header position, otherwise an
+   * exception will be thrown.
+   *
+   * @param position in coalecsed list of search cursors
+   * @return Cursor moved to position specific to passed in position.
+   */
+  Cursor getCursor(int position) {
+    if (contactsCursor != null) {
+      int count = contactsCursor.getCount();
+
+      if (position - count < 0) {
+        contactsCursor.moveToPosition(position);
+        return contactsCursor;
+      }
+      position -= count;
+    }
+
+    if (nearbyPlacesCursor != null) {
+      Assert.checkArgument(position != 0, "No valid cursor, position is nearby places header.");
+      position--; // header
+      int count = nearbyPlacesCursor.getCount();
+
+      if (position - count < 0) {
+        nearbyPlacesCursor.moveToPosition(position);
+        return nearbyPlacesCursor;
+      }
+      position -= count;
+    }
+
+    if (corpDirectoryCursor != null) {
+      Assert.checkArgument(position != 0, "No valid cursor, position is directory search header.");
+      position--; // header
+      int count = corpDirectoryCursor.getCount();
+
+      if (position - count < 0) {
+        corpDirectoryCursor.moveToPosition(position);
+        return corpDirectoryCursor;
+      }
+      position -= count;
+    }
+
+    throw Assert.createIllegalStateFailException("No valid cursor.");
+  }
+
+  /** removes all cursors. */
+  void clear() {
+    if (contactsCursor != null) {
+      contactsCursor.close();
+      contactsCursor = null;
+    }
+
+    if (nearbyPlacesCursor != null) {
+      nearbyPlacesCursor.close();
+      nearbyPlacesCursor = null;
+    }
+
+    if (corpDirectoryCursor != null) {
+      corpDirectoryCursor.close();
+      corpDirectoryCursor = null;
+    }
+  }
+}
diff --git a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml b/java/com/android/dialer/searchfragment/res/layout/fragment_search.xml
similarity index 68%
copy from java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
copy to java/com/android/dialer/searchfragment/res/layout/fragment_search.xml
index ecf704e..06f2348 100644
--- a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
+++ b/java/com/android/dialer/searchfragment/res/layout/fragment_search.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2017 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -14,7 +14,8 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:autoMirrored="true"
-    android:src="@drawable/quantum_ic_arrow_back_white_24"
-    android:tint="@color/actionbar_icon_color"/>
\ No newline at end of file
+<android.support.v7.widget.RecyclerView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/recycler_view"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"/>
diff --git a/java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml b/java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml
new file mode 100644
index 0000000..efeca0e
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="horizontal"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/search_row_height"
+    android:paddingStart="16dp"
+    android:paddingEnd="16dp"
+    android:background="?android:attr/selectableItemBackground">
+
+  <QuickContactBadge
+      android:id="@+id/photo"
+      android:layout_width="@dimen/search_row_height"
+      android:layout_height="@dimen/search_row_height"
+      android:padding="@dimen/search_photo_padding"
+      android:clickable="false"/>
+
+  <LinearLayout
+      android:orientation="vertical"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_toEndOf="@+id/photo"
+      android:layout_toStartOf="@+id/call_to_action"
+      android:layout_centerVertical="true">
+
+    <TextView
+        android:id="@+id/primary"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingStart="@dimen/search_text_padding_start"
+        android:gravity="center_vertical|start"
+        android:textSize="@dimen/new_search_text_size"
+        android:textColor="@color/dialer_primary_text_color"
+        android:maxLines="1"
+        android:ellipsize="end"
+        android:fontFamily="sans-serif"/>
+
+    <TextView
+        android:id="@+id/secondary"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingStart="@dimen/search_text_padding_start"
+        android:gravity="center_vertical|start"
+        android:textSize="@dimen/new_search_text_size"
+        android:textColor="@color/dialer_primary_text_color"
+        android:maxLines="1"
+        android:ellipsize="end"
+        android:fontFamily="sans-serif"/>
+  </LinearLayout>
+
+  <ImageView
+      android:id="@+id/call_to_action"
+      android:layout_width="@dimen/search_row_height"
+      android:layout_height="@dimen/search_row_height"
+      android:layout_alignParentEnd="true"
+      android:padding="@dimen/call_to_action_padding"
+      android:tint="@color/secondary_text_color"
+      android:visibility="gone"
+      android:scaleType="center"/>
+</RelativeLayout>
\ No newline at end of file
diff --git a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml b/java/com/android/dialer/searchfragment/res/values/dimens.xml
similarity index 64%
copy from java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
copy to java/com/android/dialer/searchfragment/res/values/dimens.xml
index ecf704e..d5459dd 100644
--- a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
+++ b/java/com/android/dialer/searchfragment/res/values/dimens.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2017 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -14,7 +14,10 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:autoMirrored="true"
-    android:src="@drawable/quantum_ic_arrow_back_white_24"
-    android:tint="@color/actionbar_icon_color"/>
\ No newline at end of file
+<resources>
+  <dimen name="search_row_height">56dp</dimen>
+  <dimen name="search_photo_padding">8dp</dimen>
+  <dimen name="call_to_action_padding">8dp</dimen>
+  <dimen name="search_text_padding_start">16dp</dimen>
+  <dimen name="new_search_text_size">16sp</dimen>
+</resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/shortcuts/AndroidManifest.xml b/java/com/android/dialer/shortcuts/AndroidManifest.xml
index 7132051..15f7794 100644
--- a/java/com/android/dialer/shortcuts/AndroidManifest.xml
+++ b/java/com/android/dialer/shortcuts/AndroidManifest.xml
@@ -20,7 +20,7 @@
     android:minSdkVersion="23"
     android:targetSdkVersion="26"/>
 
-  <application>
+  <application android:theme="@style/Theme.AppCompat">
 
     <service
       android:exported="false"
diff --git a/java/com/android/dialer/telecom/TelecomUtil.java b/java/com/android/dialer/telecom/TelecomUtil.java
index 87ddda5..82b4383 100644
--- a/java/com/android/dialer/telecom/TelecomUtil.java
+++ b/java/com/android/dialer/telecom/TelecomUtil.java
@@ -38,12 +38,17 @@
  * perform the required check and return the fallback default if the permission is missing,
  * otherwise return the value from TelecomManager.
  */
-public class TelecomUtil {
+public abstract class TelecomUtil {
 
   private static final String TAG = "TelecomUtil";
   private static boolean sWarningLogged = false;
-  private static Boolean isDefaultDialerForTesting;
-  private static Boolean hasPermissionForTesting;
+
+  private static TelecomUtilImpl instance = new TelecomUtilImpl();
+
+  @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+  public static void setInstanceForTesting(TelecomUtilImpl instanceForTesting) {
+    instance = instanceForTesting;
+  }
 
   public static void showInCallScreen(Context context, boolean showDialpad) {
     if (hasReadPhoneStatePermission(context)) {
@@ -125,10 +130,7 @@
   }
 
   public static boolean isInCall(Context context) {
-    if (hasReadPhoneStatePermission(context)) {
-      return getTelecomManager(context).isInCall();
-    }
-    return false;
+    return instance.isInCall(context);
   }
 
   public static boolean isVoicemailNumber(
@@ -189,43 +191,47 @@
   }
 
   private static boolean hasPermission(Context context, String permission) {
-    if (hasPermissionForTesting != null) {
-      return hasPermissionForTesting;
-    }
-    return ContextCompat.checkSelfPermission(context, permission)
-        == PackageManager.PERMISSION_GRANTED;
-  }
-
-  public static boolean isDefaultDialer(Context context) {
-    if (isDefaultDialerForTesting != null) {
-      return isDefaultDialerForTesting;
-    }
-    final boolean result =
-        TextUtils.equals(
-            context.getPackageName(), getTelecomManager(context).getDefaultDialerPackage());
-    if (result) {
-      sWarningLogged = false;
-    } else {
-      if (!sWarningLogged) {
-        // Log only once to prevent spam.
-        LogUtil.w(TAG, "Dialer is not currently set to be default dialer");
-        sWarningLogged = true;
-      }
-    }
-    return result;
+    return instance.hasPermission(context, permission);
   }
 
   private static TelecomManager getTelecomManager(Context context) {
     return (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
   }
 
-  @VisibleForTesting(otherwise = VisibleForTesting.NONE)
-  public static void setIsDefaultDialerForTesting(Boolean defaultDialer) {
-    isDefaultDialerForTesting = defaultDialer;
+  public static boolean isDefaultDialer(Context context) {
+    return instance.isDefaultDialer(context);
   }
 
-  @VisibleForTesting(otherwise = VisibleForTesting.NONE)
-  public static void setHasPermissionForTesting(Boolean hasPermission) {
-    hasPermissionForTesting = hasPermission;
+  /** Contains an implementation for {@link TelecomUtil} methods */
+  @VisibleForTesting()
+  public static class TelecomUtilImpl {
+
+    public boolean isInCall(Context context) {
+      if (hasReadPhoneStatePermission(context)) {
+        return getTelecomManager(context).isInCall();
+      }
+      return false;
+    }
+
+    public boolean hasPermission(Context context, String permission) {
+      return ContextCompat.checkSelfPermission(context, permission)
+          == PackageManager.PERMISSION_GRANTED;
+    }
+
+    public boolean isDefaultDialer(Context context) {
+      final boolean result =
+          TextUtils.equals(
+              context.getPackageName(), getTelecomManager(context).getDefaultDialerPackage());
+      if (result) {
+        sWarningLogged = false;
+      } else {
+        if (!sWarningLogged) {
+          // Log only once to prevent spam.
+          LogUtil.w(TAG, "Dialer is not currently set to be default dialer");
+          sWarningLogged = true;
+        }
+      }
+      return result;
+    }
   }
 }
diff --git a/java/com/android/dialer/theme/res/values-af/strings.xml b/java/com/android/dialer/theme/res/values-af/strings.xml
index f263a81..17e6cea 100644
--- a/java/com/android/dialer/theme/res/values-af/strings.xml
+++ b/java/com/android/dialer/theme/res/values-af/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefoonhokkie"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Foon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratoestemming is geaktiveer"</string>
+    <string name="video_call" msgid="8914878391104612532">"Video-oproep"</string>
     <string name="call" msgid="3699617769606114168">"Bel"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-am/strings.xml b/java/com/android/dialer/theme/res/values-am/strings.xml
index 4f36244..5b0b2fd 100644
--- a/java/com/android/dialer/theme/res/values-am/strings.xml
+++ b/java/com/android/dialer/theme/res/values-am/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"የሕዝብ ስልክ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ስልክ"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"የካሜራ ፈቃድ ነቅቷል"</string>
+    <string name="video_call" msgid="8914878391104612532">"የቪዲዮ ጥሪ"</string>
     <string name="call" msgid="3699617769606114168">"ደውል"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ar/strings.xml b/java/com/android/dialer/theme/res/values-ar/strings.xml
index 951bde2..ea3468e 100644
--- a/java/com/android/dialer/theme/res/values-ar/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ar/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"هاتف يعمل بالعملة"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"الهاتف"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"تم تمكين إذن الكاميرا"</string>
+    <string name="video_call" msgid="8914878391104612532">"مكالمة فيديو"</string>
     <string name="call" msgid="3699617769606114168">"اتصال"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-az/strings.xml b/java/com/android/dialer/theme/res/values-az/strings.xml
index 08eaf33..91ead1b 100644
--- a/java/com/android/dialer/theme/res/values-az/strings.xml
+++ b/java/com/android/dialer/theme/res/values-az/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Taksofon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Kamera icazəsi aktiv edildi"</string>
+    <string name="video_call" msgid="8914878391104612532">"Video zəng"</string>
     <string name="call" msgid="3699617769606114168">"Zəng edin"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
index 01cdb47..a1e5965 100644
--- a/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefonska govornica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Omogućena je dozvola za kameru"</string>
+    <string name="video_call" msgid="8914878391104612532">"Uputi video poziv"</string>
     <string name="call" msgid="3699617769606114168">"Pozovi"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-be/strings.xml b/java/com/android/dialer/theme/res/values-be/strings.xml
index 49be019..881aa7f 100644
--- a/java/com/android/dialer/theme/res/values-be/strings.xml
+++ b/java/com/android/dialer/theme/res/values-be/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Таксафон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Тэлефон"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Уключаны дазвол на выкарыстанне камеры"</string>
+    <string name="video_call" msgid="8914878391104612532">"Відэавыклік"</string>
     <string name="call" msgid="3699617769606114168">"Выклікаць"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-bg/strings.xml b/java/com/android/dialer/theme/res/values-bg/strings.xml
index 87af9f0..debc238 100644
--- a/java/com/android/dialer/theme/res/values-bg/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bg/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Обществен телефон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Активирано бе разрешението за камерата"</string>
+    <string name="video_call" msgid="8914878391104612532">"Видеообаждане"</string>
     <string name="call" msgid="3699617769606114168">"Обаждане"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-bn/strings.xml b/java/com/android/dialer/theme/res/values-bn/strings.xml
index ab1c65b..806ee8e 100644
--- a/java/com/android/dialer/theme/res/values-bn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bn/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"পে ফোন"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ফোন"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"ক্যামেরার অনুমতি সক্ষম করা হয়েছে"</string>
+    <string name="video_call" msgid="8914878391104612532">"ভিডিও কল"</string>
     <string name="call" msgid="3699617769606114168">"কল করুন"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-bs/strings.xml b/java/com/android/dialer/theme/res/values-bs/strings.xml
index 01cdb47..bed71a2 100644
--- a/java/com/android/dialer/theme/res/values-bs/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bs/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefonska govornica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Dozvola za kameru je omogućena"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videopoziv"</string>
     <string name="call" msgid="3699617769606114168">"Pozovi"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ca/strings.xml b/java/com/android/dialer/theme/res/values-ca/strings.xml
index 1e21a1f..5140ca5 100644
--- a/java/com/android/dialer/theme/res/values-ca/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ca/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telèfon públic"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telèfon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"S\'ha activat el permís d\'accés a la càmera"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videotrucada"</string>
     <string name="call" msgid="3699617769606114168">"Truca"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-cs/strings.xml b/java/com/android/dialer/theme/res/values-cs/strings.xml
index ca7bad9..a951fe7 100644
--- a/java/com/android/dialer/theme/res/values-cs/strings.xml
+++ b/java/com/android/dialer/theme/res/values-cs/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefonní automat"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Byl povolen přístup k fotoaparátu"</string>
+    <string name="video_call" msgid="8914878391104612532">"Zahájit videohovor"</string>
     <string name="call" msgid="3699617769606114168">"Volat"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-da/strings.xml b/java/com/android/dialer/theme/res/values-da/strings.xml
index c606b28..54f1850 100644
--- a/java/com/android/dialer/theme/res/values-da/strings.xml
+++ b/java/com/android/dialer/theme/res/values-da/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Mønttelefon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Opkald"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratilladelse er aktiveret"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videoopkald"</string>
     <string name="call" msgid="3699617769606114168">"Ring op"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-de/strings.xml b/java/com/android/dialer/theme/res/values-de/strings.xml
index d214287..0c97581 100644
--- a/java/com/android/dialer/theme/res/values-de/strings.xml
+++ b/java/com/android/dialer/theme/res/values-de/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Münztelefon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Berechtigung für Kamera aktiviert"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videoanruf"</string>
     <string name="call" msgid="3699617769606114168">"Anrufen"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-el/strings.xml b/java/com/android/dialer/theme/res/values-el/strings.xml
index abe1d3f..1c34a69 100644
--- a/java/com/android/dialer/theme/res/values-el/strings.xml
+++ b/java/com/android/dialer/theme/res/values-el/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Τηλέφωνο με χρέωση"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Τηλέφωνο"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Το δικαίωμα χρήσης της κάμερας έχει ενεργοποιηθεί"</string>
+    <string name="video_call" msgid="8914878391104612532">"Βιντεοκλήση"</string>
     <string name="call" msgid="3699617769606114168">"Κλήση"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rAU/strings.xml b/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
index b086b4c..136d7df 100644
--- a/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Camera permission enabled"</string>
+    <string name="video_call" msgid="8914878391104612532">"Video call"</string>
     <string name="call" msgid="3699617769606114168">"Call"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rGB/strings.xml b/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
index b086b4c..136d7df 100644
--- a/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Camera permission enabled"</string>
+    <string name="video_call" msgid="8914878391104612532">"Video call"</string>
     <string name="call" msgid="3699617769606114168">"Call"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rIN/strings.xml b/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
index b086b4c..136d7df 100644
--- a/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Camera permission enabled"</string>
+    <string name="video_call" msgid="8914878391104612532">"Video call"</string>
     <string name="call" msgid="3699617769606114168">"Call"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-es-rUS/strings.xml b/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
index aee2d0a..90837b7 100644
--- a/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Se activó el permiso de la cámara"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videollamada"</string>
     <string name="call" msgid="3699617769606114168">"Llamar"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-es/strings.xml b/java/com/android/dialer/theme/res/values-es/strings.xml
index 343ac21..c2d3ee3 100644
--- a/java/com/android/dialer/theme/res/values-es/strings.xml
+++ b/java/com/android/dialer/theme/res/values-es/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Se ha habilitado el acceso a la cámara"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videollamada"</string>
     <string name="call" msgid="3699617769606114168">"Llamar"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-et/strings.xml b/java/com/android/dialer/theme/res/values-et/strings.xml
index 5b1e6c0..269fa64 100644
--- a/java/com/android/dialer/theme/res/values-et/strings.xml
+++ b/java/com/android/dialer/theme/res/values-et/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefoniautomaat"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Kaameraluba on antud"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videokõne"</string>
     <string name="call" msgid="3699617769606114168">"Helista"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-eu/strings.xml b/java/com/android/dialer/theme/res/values-eu/strings.xml
index dbb4f70..14345f0 100644
--- a/java/com/android/dialer/theme/res/values-eu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-eu/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefono publikoa"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefonoa"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Kamera atzitzeko baimena eman da"</string>
+    <string name="video_call" msgid="8914878391104612532">"Bideo-deia"</string>
     <string name="call" msgid="3699617769606114168">"Deitu"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-fa/strings.xml b/java/com/android/dialer/theme/res/values-fa/strings.xml
index 99bed5f..f751f34 100644
--- a/java/com/android/dialer/theme/res/values-fa/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fa/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="ID">%d</xliff:g> <xliff:g id="UNKNOWN">%s</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"تلفن عمومی"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"تلفن"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"مجوز دوربین فعال شد"</string>
+    <string name="video_call" msgid="8914878391104612532">"تماس ویدیویی"</string>
     <string name="call" msgid="3699617769606114168">"تماس"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-fi/strings.xml b/java/com/android/dialer/theme/res/values-fi/strings.xml
index a180be5..0c09d7f 100644
--- a/java/com/android/dialer/theme/res/values-fi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fi/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Maksupuhelin"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Puhelin"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameran käyttöoikeus myönnettiin"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videopuhelu"</string>
     <string name="call" msgid="3699617769606114168">"Soita"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml b/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
index 18a70bb..7d901ca 100644
--- a/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Cabine téléphonique"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Téléphone"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Autorisation d\'accès à l\'appareil photo activée"</string>
+    <string name="video_call" msgid="8914878391104612532">"Appel vidéo"</string>
     <string name="call" msgid="3699617769606114168">"Appeler"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-fr/strings.xml b/java/com/android/dialer/theme/res/values-fr/strings.xml
index 18a70bb..1c30ef1 100644
--- a/java/com/android/dialer/theme/res/values-fr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fr/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Cabine téléphonique"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Téléphone"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Autorisation d\'accès à l\'appareil photo accordée"</string>
+    <string name="video_call" msgid="8914878391104612532">"Appel vidéo"</string>
     <string name="call" msgid="3699617769606114168">"Appeler"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-gl/strings.xml b/java/com/android/dialer/theme/res/values-gl/strings.xml
index fbbad6c..083d395 100644
--- a/java/com/android/dialer/theme/res/values-gl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-gl/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Activouse o permiso de acceso á cámara"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videochamada"</string>
     <string name="call" msgid="3699617769606114168">"Chamar"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-gu/strings.xml b/java/com/android/dialer/theme/res/values-gu/strings.xml
index 9b38dcd..4baba69 100644
--- a/java/com/android/dialer/theme/res/values-gu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-gu/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"પેફોન"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ફોન"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"કૅમેરાની પરવાનગી સક્ષમ કરી"</string>
+    <string name="video_call" msgid="8914878391104612532">"વિડિઓ કૉલ"</string>
     <string name="call" msgid="3699617769606114168">"કૉલ કરો"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-hi/strings.xml b/java/com/android/dialer/theme/res/values-hi/strings.xml
index ee360b4..758be5d 100644
--- a/java/com/android/dialer/theme/res/values-hi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hi/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"पे-फ़ोन"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"फ़ोन"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"कैमरे की अनुमति सक्षम की गई"</string>
+    <string name="video_call" msgid="8914878391104612532">"वीडियो कॉल"</string>
     <string name="call" msgid="3699617769606114168">"कॉल करें"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-hr/strings.xml b/java/com/android/dialer/theme/res/values-hr/strings.xml
index 92e1956..89a5aee 100644
--- a/java/com/android/dialer/theme/res/values-hr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hr/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Javna telefonska govornica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Omogućen je pristup kameri"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videopoziv"</string>
     <string name="call" msgid="3699617769606114168">"Pozovi"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-hu/strings.xml b/java/com/android/dialer/theme/res/values-hu/strings.xml
index dfcc876..30051d4 100644
--- a/java/com/android/dialer/theme/res/values-hu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hu/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Nyilvános telefon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameraengedély megadva"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videohívás"</string>
     <string name="call" msgid="3699617769606114168">"Hívás"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-hy/strings.xml b/java/com/android/dialer/theme/res/values-hy/strings.xml
index 3b4e862..6577dab 100644
--- a/java/com/android/dialer/theme/res/values-hy/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hy/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Բջջային տերմինալ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Հեռախոս"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Տեսախցիկից օգտվելու թույլտվությունը տրամադրված է"</string>
+    <string name="video_call" msgid="8914878391104612532">"Տեսազանգ"</string>
     <string name="call" msgid="3699617769606114168">"Զանգել"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-in/strings.xml b/java/com/android/dialer/theme/res/values-in/strings.xml
index eda15a2..d2d72b8 100644
--- a/java/com/android/dialer/theme/res/values-in/strings.xml
+++ b/java/com/android/dialer/theme/res/values-in/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telepon Umum"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telepon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Izin kamera diaktifkan"</string>
+    <string name="video_call" msgid="8914878391104612532">"Video call"</string>
     <string name="call" msgid="3699617769606114168">"Telepon"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-is/strings.xml b/java/com/android/dialer/theme/res/values-is/strings.xml
index cda7fc8..ff3faf8 100644
--- a/java/com/android/dialer/theme/res/values-is/strings.xml
+++ b/java/com/android/dialer/theme/res/values-is/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Símasjálfsali"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Sími"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Myndavélarheimild virk"</string>
+    <string name="video_call" msgid="8914878391104612532">"Hringja myndsímtal"</string>
     <string name="call" msgid="3699617769606114168">"Hringja"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-it/strings.xml b/java/com/android/dialer/theme/res/values-it/strings.xml
index fa2caa6..4b26288 100644
--- a/java/com/android/dialer/theme/res/values-it/strings.xml
+++ b/java/com/android/dialer/theme/res/values-it/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Cabina telefonica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefono"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Autorizzazioni della fotocamera attivate"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videochiamata"</string>
     <string name="call" msgid="3699617769606114168">"Chiama"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-iw/strings.xml b/java/com/android/dialer/theme/res/values-iw/strings.xml
index 18d87ea..09abf2e 100644
--- a/java/com/android/dialer/theme/res/values-iw/strings.xml
+++ b/java/com/android/dialer/theme/res/values-iw/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"טלפון ציבורי"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"טלפון"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"הרשאת הגישה למצלמה הופעלה"</string>
+    <string name="video_call" msgid="8914878391104612532">"שיחת וידאו"</string>
     <string name="call" msgid="3699617769606114168">"התקשר"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ja/strings.xml b/java/com/android/dialer/theme/res/values-ja/strings.xml
index 3921559..551d679 100644
--- a/java/com/android/dialer/theme/res/values-ja/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ja/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g>（<xliff:g id="ID">%d</xliff:g>）"</string>
     <string name="payphone" msgid="7106361320283710387">"公衆電話"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"カメラへのアクセスを自動で許可しました"</string>
+    <string name="video_call" msgid="8914878391104612532">"ビデオハングアウト"</string>
     <string name="call" msgid="3699617769606114168">"発信"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ka/strings.xml b/java/com/android/dialer/theme/res/values-ka/strings.xml
index 18e7cb3..ab22595 100644
--- a/java/com/android/dialer/theme/res/values-ka/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ka/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"გადახდის ტელეფონი"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ტელეფონი"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"კამერაზე წვდომის ნებართვა ჩართულია"</string>
+    <string name="video_call" msgid="8914878391104612532">"ვიდეოზარი"</string>
     <string name="call" msgid="3699617769606114168">"დარეკვა"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-kk/strings.xml b/java/com/android/dialer/theme/res/values-kk/strings.xml
index f9c62d3..d3a1b7b 100644
--- a/java/com/android/dialer/theme/res/values-kk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-kk/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Автомат-телефон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Камера рұқсаты қосылды"</string>
+    <string name="video_call" msgid="8914878391104612532">"Бейне қоңырау"</string>
     <string name="call" msgid="3699617769606114168">"Қоңырау шалу"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-km/strings.xml b/java/com/android/dialer/theme/res/values-km/strings.xml
index 7e375cf..900f1d6 100644
--- a/java/com/android/dialer/theme/res/values-km/strings.xml
+++ b/java/com/android/dialer/theme/res/values-km/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"ទូរស័ព្ទសាធារណៈ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ទូរស័ព្ទ"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"បានបើក​ការអនុញ្ញាត​កាមេរ៉ា"</string>
+    <string name="video_call" msgid="8914878391104612532">"ការ​ហៅវីដេអូ"</string>
     <string name="call" msgid="3699617769606114168">"ហៅ​ទូរសព្ទ"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-kn/strings.xml b/java/com/android/dialer/theme/res/values-kn/strings.xml
index 718fea0..ab9f816 100644
--- a/java/com/android/dialer/theme/res/values-kn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-kn/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"ಪೇಫೋನ್"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ಫೋನ್"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"ಕ್ಯಾಮರಾ ಅನುಮತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
+    <string name="video_call" msgid="8914878391104612532">"ವೀಡಿಯೊ ಕರೆ"</string>
     <string name="call" msgid="3699617769606114168">"ಕರೆಮಾಡಿ"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ko/strings.xml b/java/com/android/dialer/theme/res/values-ko/strings.xml
index 29f608c..b5ac556 100644
--- a/java/com/android/dialer/theme/res/values-ko/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ko/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"공중전화"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"휴대전화"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"카메라 권한 사용 가능"</string>
+    <string name="video_call" msgid="8914878391104612532">"화상 통화"</string>
     <string name="call" msgid="3699617769606114168">"전화"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ky/strings.xml b/java/com/android/dialer/theme/res/values-ky/strings.xml
index 905b8c5..0a9bec2 100644
--- a/java/com/android/dialer/theme/res/values-ky/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ky/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Таксофон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Камеранын уруксаты иштетилди"</string>
+    <string name="video_call" msgid="8914878391104612532">"Видео чалуу"</string>
     <string name="call" msgid="3699617769606114168">"Чалуу"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-lo/strings.xml b/java/com/android/dialer/theme/res/values-lo/strings.xml
index 6826a75..d33d43e 100644
--- a/java/com/android/dialer/theme/res/values-lo/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lo/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"ຕູ້​ໂທ​ລະ​ສັບ​ສາ​ທາ​ລະ​ນະ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ໂທລະສັບ"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"ເປີດໃຊ້ສິດອະນຸຍາດກ້ອງຖ່າຍຮູບແລ້ວ"</string>
+    <string name="video_call" msgid="8914878391104612532">"ໂທວິດີໂອ"</string>
     <string name="call" msgid="3699617769606114168">"ໂທ"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-lt/strings.xml b/java/com/android/dialer/theme/res/values-lt/strings.xml
index 43469a1..fdf31e2 100644
--- a/java/com/android/dialer/theme/res/values-lt/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lt/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="ID">%d</xliff:g> <xliff:g id="UNKNOWN">%s</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Taksofonas"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefonas"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Fotoaparato leidimas įgalintas"</string>
+    <string name="video_call" msgid="8914878391104612532">"Vaizdo skambutis"</string>
     <string name="call" msgid="3699617769606114168">"Skambinti"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-lv/strings.xml b/java/com/android/dialer/theme/res/values-lv/strings.xml
index f9a6dec..031c5bd 100644
--- a/java/com/android/dialer/theme/res/values-lv/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lv/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Maksas tālrunis"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Tālrunis"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameras atļauja iespējota"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videozvans"</string>
     <string name="call" msgid="3699617769606114168">"Zvanīt"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-mk/strings.xml b/java/com/android/dialer/theme/res/values-mk/strings.xml
index 1328edb..d89d12e 100644
--- a/java/com/android/dialer/theme/res/values-mk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mk/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Говорница"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Дозволата за камера е овозможена"</string>
+    <string name="video_call" msgid="8914878391104612532">"Воспоставете видеоповик"</string>
     <string name="call" msgid="3699617769606114168">"Повикајте"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ml/strings.xml b/java/com/android/dialer/theme/res/values-ml/strings.xml
index 03f9533..f02ceeb 100644
--- a/java/com/android/dialer/theme/res/values-ml/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ml/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"പണം നൽകി ഉപയോഗിക്കുന്ന ഫോൺ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ഫോണ്‍"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"ക്യാമറ അനുമതി നൽകി"</string>
+    <string name="video_call" msgid="8914878391104612532">"വീഡിയോ കോള്‍"</string>
     <string name="call" msgid="3699617769606114168">"വിളിക്കുക"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-mn/strings.xml b/java/com/android/dialer/theme/res/values-mn/strings.xml
index c47f083..7a07e5d 100644
--- a/java/com/android/dialer/theme/res/values-mn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mn/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Утас"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Камерын зөвшөөрөл идэвхжсэн"</string>
+    <string name="video_call" msgid="8914878391104612532">"Видео дуудлага"</string>
     <string name="call" msgid="3699617769606114168">"Залгах"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-mr/strings.xml b/java/com/android/dialer/theme/res/values-mr/strings.xml
index 41a9c96..eeb9afa 100644
--- a/java/com/android/dialer/theme/res/values-mr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mr/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"सार्वजनिक फोन"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"फोन"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"कॅमेरा परवानगी सक्षम केली"</string>
+    <string name="video_call" msgid="8914878391104612532">"व्हिडिओ कॉल"</string>
     <string name="call" msgid="3699617769606114168">"कॉल करा"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ms/strings.xml b/java/com/android/dialer/theme/res/values-ms/strings.xml
index b28fe26..2e424fd 100644
--- a/java/com/android/dialer/theme/res/values-ms/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ms/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefon Awam"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Kebenaran kamera didayakan"</string>
+    <string name="video_call" msgid="8914878391104612532">"Panggilan video"</string>
     <string name="call" msgid="3699617769606114168">"Panggil"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-my/strings.xml b/java/com/android/dialer/theme/res/values-my/strings.xml
index eb21b6e..97b871b 100644
--- a/java/com/android/dialer/theme/res/values-my/strings.xml
+++ b/java/com/android/dialer/theme/res/values-my/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"ငွေပေးရသည့်ဖုန်း"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ဖုန်း"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"ကင်မရာအသုံးပြုခွင့် ဖွင့်ထားပါသည်"</string>
+    <string name="video_call" msgid="8914878391104612532">"ဗီဒီယိုခေါ်ဆိုမှု"</string>
     <string name="call" msgid="3699617769606114168">"ခေါ်ဆိုရန်"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-nb/strings.xml b/java/com/android/dialer/theme/res/values-nb/strings.xml
index dcd9b17..7587b7e 100644
--- a/java/com/android/dialer/theme/res/values-nb/strings.xml
+++ b/java/com/android/dialer/theme/res/values-nb/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefonkiosk"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratillatelsen er aktivert"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videosamtale"</string>
     <string name="call" msgid="3699617769606114168">"Ring"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ne/strings.xml b/java/com/android/dialer/theme/res/values-ne/strings.xml
index 383ac2c..af1ad5e 100644
--- a/java/com/android/dialer/theme/res/values-ne/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ne/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"पेफोन"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"फोन"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"क्यामेरा सम्बन्धी अनुमतिहरूलाई सक्षम पारियो"</string>
+    <string name="video_call" msgid="8914878391104612532">"भिडियो कल"</string>
     <string name="call" msgid="3699617769606114168">"कल गर्नुहोस्"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-nl/strings.xml b/java/com/android/dialer/theme/res/values-nl/strings.xml
index 9635708..ab51c97 100644
--- a/java/com/android/dialer/theme/res/values-nl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-nl/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefooncel"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefoon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Camerarechten ingeschakeld"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videogesprek"</string>
     <string name="call" msgid="3699617769606114168">"Bellen"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-no/strings.xml b/java/com/android/dialer/theme/res/values-no/strings.xml
index dcd9b17..7587b7e 100644
--- a/java/com/android/dialer/theme/res/values-no/strings.xml
+++ b/java/com/android/dialer/theme/res/values-no/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefonkiosk"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratillatelsen er aktivert"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videosamtale"</string>
     <string name="call" msgid="3699617769606114168">"Ring"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pa/strings.xml b/java/com/android/dialer/theme/res/values-pa/strings.xml
index dc23b7a..8784bca 100644
--- a/java/com/android/dialer/theme/res/values-pa/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pa/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"ਪੇਫੋਨ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ਫੋਨ"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"ਕੈਮਰਾ ਇਜਾਜ਼ਤ ਨੂੰ ਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ"</string>
+    <string name="video_call" msgid="8914878391104612532">"ਵੀਡੀਓ ਕਾਲ"</string>
     <string name="call" msgid="3699617769606114168">"ਕਾਲ ਕਰੋ"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pl/strings.xml b/java/com/android/dialer/theme/res/values-pl/strings.xml
index 1ebaad2..246261e 100644
--- a/java/com/android/dialer/theme/res/values-pl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pl/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Automat telefoniczny"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Uprawnienia do korzystania z aparatu zostały włączone"</string>
+    <string name="video_call" msgid="8914878391104612532">"Rozmowa wideo"</string>
     <string name="call" msgid="3699617769606114168">"Zadzwoń"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml b/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
index 6caf87c..c1356d9 100644
--- a/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Permissão de câmera ativada"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videochamada"</string>
     <string name="call" msgid="3699617769606114168">"Ligar"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml b/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
index ef7c7d6..2b46e44 100644
--- a/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Autorização da câmara ativada"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videochamada"</string>
     <string name="call" msgid="3699617769606114168">"Telefonar"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-pt/strings.xml b/java/com/android/dialer/theme/res/values-pt/strings.xml
index 6caf87c..c1356d9 100644
--- a/java/com/android/dialer/theme/res/values-pt/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Permissão de câmera ativada"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videochamada"</string>
     <string name="call" msgid="3699617769606114168">"Ligar"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ro/strings.xml b/java/com/android/dialer/theme/res/values-ro/strings.xml
index 4d0c09b..8978e92 100644
--- a/java/com/android/dialer/theme/res/values-ro/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ro/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefon public"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Permisiunea pentru cameră a fost activată."</string>
+    <string name="video_call" msgid="8914878391104612532">"Apel video"</string>
     <string name="call" msgid="3699617769606114168">"Apelați"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ru/strings.xml b/java/com/android/dialer/theme/res/values-ru/strings.xml
index aeab136..a155052 100644
--- a/java/com/android/dialer/theme/res/values-ru/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ru/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Телефон-автомат"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Доступ к камере разрешен"</string>
+    <string name="video_call" msgid="8914878391104612532">"Видеовызов"</string>
     <string name="call" msgid="3699617769606114168">"Позвонить"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-si/strings.xml b/java/com/android/dialer/theme/res/values-si/strings.xml
index ba3bb05..424a112 100644
--- a/java/com/android/dialer/theme/res/values-si/strings.xml
+++ b/java/com/android/dialer/theme/res/values-si/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"පේෆෝනය"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"දුරකථනය"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"කැමරා අවසර සබල කර ඇත"</string>
+    <string name="video_call" msgid="8914878391104612532">"වීඩියෝ ඇමතුම"</string>
     <string name="call" msgid="3699617769606114168">"ඇමතුම"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sk/strings.xml b/java/com/android/dialer/theme/res/values-sk/strings.xml
index 6863463..411b85e 100644
--- a/java/com/android/dialer/theme/res/values-sk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sk/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefónny automat"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefón"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Povolenie pre fotoaparát je aktivované"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videohovor"</string>
     <string name="call" msgid="3699617769606114168">"Volať"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sl/strings.xml b/java/com/android/dialer/theme/res/values-sl/strings.xml
index 1b1776a..85a3e2b 100644
--- a/java/com/android/dialer/theme/res/values-sl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sl/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefonska govorilnica"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Dovoljenje za dostop do fotoaparata je omogočeno"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videoklic"</string>
     <string name="call" msgid="3699617769606114168">"Pokliči"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sq/strings.xml b/java/com/android/dialer/theme/res/values-sq/strings.xml
index 0d7084a..5cbd587 100644
--- a/java/com/android/dialer/theme/res/values-sq/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sq/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefon me pagesë"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefoni"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Leja e kamerës është aktivizuar"</string>
+    <string name="video_call" msgid="8914878391104612532">"Telefonatë me video"</string>
     <string name="call" msgid="3699617769606114168">"Telefono"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sr/strings.xml b/java/com/android/dialer/theme/res/values-sr/strings.xml
index a744e95..310da73 100644
--- a/java/com/android/dialer/theme/res/values-sr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sr/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Телефонска говорница"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Омогућена је дозвола за камеру"</string>
+    <string name="video_call" msgid="8914878391104612532">"Упути видео позив"</string>
     <string name="call" msgid="3699617769606114168">"Позови"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sv/strings.xml b/java/com/android/dialer/theme/res/values-sv/strings.xml
index f409807..af8e5f7 100644
--- a/java/com/android/dialer/theme/res/values-sv/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sv/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Telefonautomat"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Kamerabehörighet har aktiverats"</string>
+    <string name="video_call" msgid="8914878391104612532">"Videosamtal"</string>
     <string name="call" msgid="3699617769606114168">"Ring"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-sw/strings.xml b/java/com/android/dialer/theme/res/values-sw/strings.xml
index a2f9888..31615fe 100644
--- a/java/com/android/dialer/theme/res/values-sw/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sw/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Simu ya kulipia"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Simu"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Imewasha ruhusa ya kamera"</string>
+    <string name="video_call" msgid="8914878391104612532">"Simu ya video"</string>
     <string name="call" msgid="3699617769606114168">"Piga simu"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ta/strings.xml b/java/com/android/dialer/theme/res/values-ta/strings.xml
index a4f55f5..ab15f0b 100644
--- a/java/com/android/dialer/theme/res/values-ta/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ta/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"கட்டணத் தொலைபேசி"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"மொபைல்"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"கேமராவிற்கான அனுமதி இயக்கப்பட்டது"</string>
+    <string name="video_call" msgid="8914878391104612532">"வீடியோ அழைப்பு"</string>
     <string name="call" msgid="3699617769606114168">"அழை"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-te/strings.xml b/java/com/android/dialer/theme/res/values-te/strings.xml
index 59f00ca..4a6fca1 100644
--- a/java/com/android/dialer/theme/res/values-te/strings.xml
+++ b/java/com/android/dialer/theme/res/values-te/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"పే ఫోన్"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"ఫోన్"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"కెమెరా అనుమతిని ప్రారంభించాము"</string>
+    <string name="video_call" msgid="8914878391104612532">"వీడియో కాల్"</string>
     <string name="call" msgid="3699617769606114168">"కాల్ చేయి"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-th/strings.xml b/java/com/android/dialer/theme/res/values-th/strings.xml
index 3870b4d..51db053 100644
--- a/java/com/android/dialer/theme/res/values-th/strings.xml
+++ b/java/com/android/dialer/theme/res/values-th/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"โทรศัพท์สาธารณะ"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"โทรศัพท์"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"ให้สิทธิ์เข้าถึงกล้องถ่ายรูปแล้ว"</string>
+    <string name="video_call" msgid="8914878391104612532">"แฮงเอาท์วิดีโอ"</string>
     <string name="call" msgid="3699617769606114168">"โทร"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-tl/strings.xml b/java/com/android/dialer/theme/res/values-tl/strings.xml
index 8169278..97f69ec 100644
--- a/java/com/android/dialer/theme/res/values-tl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-tl/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Payphone"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telepono"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Na-enable ang pahintulot sa camera"</string>
+    <string name="video_call" msgid="8914878391104612532">"Mag-video call"</string>
     <string name="call" msgid="3699617769606114168">"Tawag"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-tr/strings.xml b/java/com/android/dialer/theme/res/values-tr/strings.xml
index c11cd13..b38f067 100644
--- a/java/com/android/dialer/theme/res/values-tr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-tr/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Ankesörlü telefon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Kamera izni etkinleştirildi"</string>
+    <string name="video_call" msgid="8914878391104612532">"Görüntülü görüşme"</string>
     <string name="call" msgid="3699617769606114168">"Telefon et"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-uk/strings.xml b/java/com/android/dialer/theme/res/values-uk/strings.xml
index c87fe89..f070277 100644
--- a/java/com/android/dialer/theme/res/values-uk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-uk/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Таксофон"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Камері надано дозвіл"</string>
+    <string name="video_call" msgid="8914878391104612532">"Відеодзвінок"</string>
     <string name="call" msgid="3699617769606114168">"Виклик"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-ur/strings.xml b/java/com/android/dialer/theme/res/values-ur/strings.xml
index abc0d6d..e9a4b44 100644
--- a/java/com/android/dialer/theme/res/values-ur/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ur/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"پے فون"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"فون"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"کیمرا کی اجازت فعال ہے"</string>
+    <string name="video_call" msgid="8914878391104612532">"ویڈیو کال"</string>
     <string name="call" msgid="3699617769606114168">"کال کریں"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-uz/strings.xml b/java/com/android/dialer/theme/res/values-uz/strings.xml
index 2889f3f..2bbaf20 100644
--- a/java/com/android/dialer/theme/res/values-uz/strings.xml
+++ b/java/com/android/dialer/theme/res/values-uz/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Taksofon"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Kameraga kirishga ruxsat berildi"</string>
+    <string name="video_call" msgid="8914878391104612532">"Video suhbat"</string>
     <string name="call" msgid="3699617769606114168">"Chaqirish"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-vi/strings.xml b/java/com/android/dialer/theme/res/values-vi/strings.xml
index b014516..fae3180 100644
--- a/java/com/android/dialer/theme/res/values-vi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-vi/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Điện thoại công cộng"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Điện thoại"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Đã bật quyền sử dụng máy ảnh"</string>
+    <string name="video_call" msgid="8914878391104612532">"Gọi điện video"</string>
     <string name="call" msgid="3699617769606114168">"Gọi"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml b/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
index baff752..2e60962 100644
--- a/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"公用电话"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"电话"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"已启用相机使用权限"</string>
+    <string name="video_call" msgid="8914878391104612532">"视频通话"</string>
     <string name="call" msgid="3699617769606114168">"拨打电话"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml b/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
index 8b26663..7b08024 100644
--- a/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"公共電話"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"已啟用相機權限"</string>
+    <string name="video_call" msgid="8914878391104612532">"視像通話"</string>
     <string name="call" msgid="3699617769606114168">"通話"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml b/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
index 24a5c10..57d7fe2 100644
--- a/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"公用電話"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"已啟用相機權限"</string>
+    <string name="video_call" msgid="8914878391104612532">"視訊通話"</string>
     <string name="call" msgid="3699617769606114168">"撥號"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values-zu/strings.xml b/java/com/android/dialer/theme/res/values-zu/strings.xml
index 96cd798..d0dd728 100644
--- a/java/com/android/dialer/theme/res/values-zu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zu/strings.xml
@@ -21,5 +21,7 @@
     <string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
     <string name="payphone" msgid="7106361320283710387">"Ucingo olufakwa imali"</string>
     <string name="launcherActivityLabel" msgid="9034868428899993166">"Ifoni"</string>
+    <string name="camera_privacy_text" msgid="1318954032109938588">"Imvume yekhamera inikwe amandla"</string>
+    <string name="video_call" msgid="8914878391104612532">"Ikholi yevidiyo"</string>
     <string name="call" msgid="3699617769606114168">"Shaya"</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values/strings.xml b/java/com/android/dialer/theme/res/values/strings.xml
index a14693f..af61d35 100644
--- a/java/com/android/dialer/theme/res/values/strings.xml
+++ b/java/com/android/dialer/theme/res/values/strings.xml
@@ -30,6 +30,12 @@
        used in the Launcher icon. -->
   <string name="launcherActivityLabel">Phone</string>
 
+  <!-- Text presented to the user explaining that we have enabled the camera permission automatically -->
+  <string name="camera_privacy_text">Camera permission enabled</string>
+
+  <!-- text on a button, Video call, as in to place a video call. -->
+  <string name="video_call">Video call</string>
+
   <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
   <string name="call">Call</string>
 </resources>
diff --git a/java/com/android/dialer/theme/res/values/themes.xml b/java/com/android/dialer/theme/res/values/themes.xml
index 0d0c45f..1246826 100644
--- a/java/com/android/dialer/theme/res/values/themes.xml
+++ b/java/com/android/dialer/theme/res/values/themes.xml
@@ -1,4 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
 <resources>
 
   <style name="DialerThemeBase" parent="@style/Theme.AppCompat.Light.DarkActionBar">
@@ -19,6 +34,20 @@
     <item name="actionBarSize">@dimen/action_bar_height</item>
   </style>
 
+  <!-- Should be kept in sync with the theme above (minus anything related to actionbars -->
+  <style name="DialerThemeBase.NoActionBar" parent="@style/Theme.AppCompat.Light.NoActionBar">
+    <item name="android:textColorPrimary">@color/dialer_primary_text_color</item>
+    <item name="android:textColorSecondary">@color/dialer_secondary_text_color</item>
+    <!-- This is used for title bar color in recents -->
+    <item name="android:colorPrimary">@color/titlebar_in_recents_background_color</item>
+    <item name="android:colorPrimaryDark">@color/dialer_theme_color_dark</item>
+    <item name="android:colorControlActivated">@color/dialer_theme_color</item>
+    <item name="android:colorButtonNormal">@color/dialer_theme_color</item>
+    <item name="android:colorAccent">@color/dialtacts_theme_color</item>
+    <item name="android:alertDialogTheme">@style/AlertDialogTheme</item>
+    <item name="android:textAppearanceButton">@style/DialerButtonTextStyle</item>
+  </style>
+
   <style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.NoActionBar">
     <item name="android:windowNoTitle">true</item>
     <item name="android:windowBackground">@android:color/transparent</item>
@@ -26,4 +55,18 @@
     <item name="android:windowIsTranslucent">true</item>
     <item name="android:windowAnimationStyle">@android:style/Animation</item>
   </style>
+
+  <style name="PrimaryText">
+    <item name="android:textColor">#DE000000</item>
+    <item name="android:textSize">16sp</item>
+    <item name="android:ellipsize">end</item>
+    <item name="android:maxLines">1</item>
+  </style>
+
+  <style name="SecondaryText">
+    <item name="android:textColor">#8A000000</item>
+    <item name="android:textSize">14sp</item>
+    <item name="android:ellipsize">end</item>
+    <item name="android:maxLines">1</item>
+  </style>
 </resources>
diff --git a/java/com/android/dialer/util/CallUtil.java b/java/com/android/dialer/util/CallUtil.java
index 81a4bb2..b6ab3b3 100644
--- a/java/com/android/dialer/util/CallUtil.java
+++ b/java/com/android/dialer/util/CallUtil.java
@@ -21,6 +21,7 @@
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
+import com.android.dialer.common.LogUtil;
 import com.android.dialer.compat.CompatUtils;
 import com.android.dialer.phonenumberutil.PhoneNumberHelper;
 import java.util.List;
@@ -40,6 +41,9 @@
    */
   public static final int VIDEO_CALLING_PRESENCE = 2;
 
+  private static boolean hasInitializedIsVideoEnabledState;
+  private static boolean cachedIsVideoEnabledState;
+
   /** Return Uri with an appropriate scheme, accepting both SIP and usual phone call numbers. */
   public static Uri getCallUri(String number) {
     if (PhoneNumberHelper.isUriNumber(number)) {
@@ -102,7 +106,23 @@
    *     false} otherwise.
    */
   public static boolean isVideoEnabled(Context context) {
-    return (getVideoCallingAvailability(context) & VIDEO_CALLING_ENABLED) != 0;
+    boolean isVideoEnabled = (getVideoCallingAvailability(context) & VIDEO_CALLING_ENABLED) != 0;
+
+    // Log everytime the video enabled state changes.
+    if (!hasInitializedIsVideoEnabledState) {
+      LogUtil.i("CallUtil.isVideoEnabled", "isVideoEnabled: " + isVideoEnabled);
+      hasInitializedIsVideoEnabledState = true;
+      cachedIsVideoEnabledState = isVideoEnabled;
+    } else if (cachedIsVideoEnabledState != isVideoEnabled) {
+      LogUtil.i(
+          "CallUtil.isVideoEnabled",
+          "isVideoEnabled changed from %b to %b",
+          cachedIsVideoEnabledState,
+          isVideoEnabled);
+      cachedIsVideoEnabledState = isVideoEnabled;
+    }
+
+    return true;
   }
 
   /**
diff --git a/java/com/android/dialer/util/PermissionsUtil.java b/java/com/android/dialer/util/PermissionsUtil.java
index 466e862..72a59ea 100644
--- a/java/com/android/dialer/util/PermissionsUtil.java
+++ b/java/com/android/dialer/util/PermissionsUtil.java
@@ -72,15 +72,15 @@
     return hasPermission(context, permission.WRITE_VOICEMAIL);
   }
 
-  public static boolean hasAddVoicemailPermissions(Context context) {
-    return hasPermission(context, permission.ADD_VOICEMAIL);
-  }
-
   public static boolean hasPermission(Context context, String permission) {
     return ContextCompat.checkSelfPermission(context, permission)
         == PackageManager.PERMISSION_GRANTED;
   }
 
+  public static boolean hasAddVoicemailPermissions(Context context) {
+    return hasPermission(context, permission.ADD_VOICEMAIL);
+  }
+
   /**
    * Checks {@link android.content.SharedPreferences} if a permission has been requested before.
    *
diff --git a/java/com/android/dialer/widget/DialerToolbar.java b/java/com/android/dialer/widget/DialerToolbar.java
index 9e10583..fe0e861 100644
--- a/java/com/android/dialer/widget/DialerToolbar.java
+++ b/java/com/android/dialer/widget/DialerToolbar.java
@@ -41,6 +41,11 @@
     setNavigationIcon(R.drawable.quantum_ic_close_white_24);
     setNavigationContentDescription(R.string.toolbar_close);
     setNavigationOnClickListener(v -> ((Activity) context).finish());
+    setPaddingRelative(
+        getPaddingStart(),
+        getPaddingTop(),
+        getResources().getDimensionPixelSize(R.dimen.toolbar_end_padding),
+        getPaddingBottom());
   }
 
   @Override
diff --git a/java/com/android/dialer/app/widget/EmptyContentView.java b/java/com/android/dialer/widget/EmptyContentView.java
similarity index 87%
rename from java/com/android/dialer/app/widget/EmptyContentView.java
rename to java/com/android/dialer/widget/EmptyContentView.java
index cfc8665..a76ab98 100644
--- a/java/com/android/dialer/app/widget/EmptyContentView.java
+++ b/java/com/android/dialer/widget/EmptyContentView.java
@@ -14,16 +14,16 @@
  * limitations under the License.
  */
 
-package com.android.dialer.app.widget;
+package com.android.dialer.widget;
 
 import android.content.Context;
+import android.support.annotation.StringRes;
 import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
-import com.android.dialer.app.R;
 
 public class EmptyContentView extends LinearLayout implements View.OnClickListener {
 
@@ -40,6 +40,8 @@
   private TextView mActionView;
   private OnEmptyViewActionButtonClickedListener mOnActionButtonClickedListener;
 
+  private @StringRes int actionLabel;
+
   public EmptyContentView(Context context) {
     this(context, null);
   }
@@ -58,9 +60,9 @@
 
     // Don't let touches fall through the empty view.
     setClickable(true);
-    mImageView = (ImageView) findViewById(R.id.emptyListViewImage);
-    mDescriptionView = (TextView) findViewById(R.id.emptyListViewMessage);
-    mActionView = (TextView) findViewById(R.id.emptyListViewAction);
+    mImageView = (ImageView) findViewById(R.id.empty_list_view_image);
+    mDescriptionView = (TextView) findViewById(R.id.empty_list_view_message);
+    mActionView = (TextView) findViewById(R.id.empty_list_view_action);
     mActionView.setOnClickListener(this);
   }
 
@@ -84,7 +86,8 @@
     }
   }
 
-  public void setActionLabel(int resourceId) {
+  public void setActionLabel(@StringRes int resourceId) {
+    actionLabel = resourceId;
     if (resourceId == NO_LABEL) {
       mActionView.setText(null);
       mActionView.setVisibility(View.GONE);
@@ -94,6 +97,10 @@
     }
   }
 
+  public @StringRes int getActionLabel() {
+    return actionLabel;
+  }
+
   public boolean isShowingContent() {
     return mImageView.getVisibility() == View.VISIBLE
         || mDescriptionView.getVisibility() == View.VISIBLE
@@ -117,5 +124,4 @@
         (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     inflater.inflate(R.layout.empty_content_view, this);
   }
-
 }
diff --git a/java/com/android/dialer/widget/MessageFragment.java b/java/com/android/dialer/widget/MessageFragment.java
index b136f47..615ad3b 100644
--- a/java/com/android/dialer/widget/MessageFragment.java
+++ b/java/com/android/dialer/widget/MessageFragment.java
@@ -23,6 +23,7 @@
 import android.text.InputFilter;
 import android.text.TextUtils;
 import android.text.TextWatcher;
+import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
@@ -31,11 +32,13 @@
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
+import android.widget.TextView.OnEditorActionListener;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.FragmentUtils;
 
 /** Fragment used to compose call with message fragment. */
-public class MessageFragment extends Fragment implements OnClickListener, TextWatcher {
+public class MessageFragment extends Fragment
+    implements OnClickListener, TextWatcher, OnEditorActionListener {
   private static final String CHAR_LIMIT_KEY = "char_limit";
   private static final String SHOW_SEND_ICON_KEY = "show_send_icon";
   private static final String MESSAGE_LIST_KEY = "message_list";
@@ -69,7 +72,7 @@
       LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
     View view = inflater.inflate(R.layout.fragment_message, container, false);
 
-    sendMessage = (ImageView) view.findViewById(R.id.send_message);
+    sendMessage = view.findViewById(R.id.send_message);
     sendMessageContainer = view.findViewById(R.id.count_and_send_container);
     if (getArguments().getBoolean(SHOW_SEND_ICON_KEY, false)) {
       sendMessage.setVisibility(View.VISIBLE);
@@ -77,18 +80,19 @@
       sendMessageContainer.setOnClickListener(this);
     }
 
-    customMessage = (EditText) view.findViewById(R.id.custom_message);
+    customMessage = view.findViewById(R.id.custom_message);
     customMessage.addTextChangedListener(this);
+    customMessage.setOnEditorActionListener(this);
     charLimit = getArguments().getInt(CHAR_LIMIT_KEY, NO_CHAR_LIMIT);
     if (charLimit != NO_CHAR_LIMIT) {
-      remainingChar = (TextView) view.findViewById(R.id.remaining_characters);
+      remainingChar = view.findViewById(R.id.remaining_characters);
       remainingChar.setVisibility(View.VISIBLE);
-      remainingChar = (TextView) view.findViewById(R.id.remaining_characters);
-      remainingChar.setText("" + charLimit);
+      remainingChar = view.findViewById(R.id.remaining_characters);
+      remainingChar.setText(Integer.toString(charLimit));
       customMessage.setFilters(new InputFilter[] {new InputFilter.LengthFilter(charLimit)});
     }
 
-    LinearLayout messageContainer = (LinearLayout) view.findViewById(R.id.message_container);
+    LinearLayout messageContainer = view.findViewById(R.id.message_container);
     for (String message : getArguments().getStringArray(MESSAGE_LIST_KEY)) {
       TextView textView = (TextView) inflater.inflate(R.layout.selectable_text_view, null);
       textView.setOnClickListener(this);
@@ -123,11 +127,20 @@
   @Override
   public void afterTextChanged(Editable s) {
     if (charLimit != NO_CHAR_LIMIT) {
-      remainingChar.setText("" + (charLimit - s.length()));
+      remainingChar.setText(Integer.toString(charLimit - s.length()));
     }
     getListener().onMessageFragmentAfterTextChange(s.toString());
   }
 
+  @Override
+  public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+    if (getMessage() == null) {
+      return false;
+    }
+    getListener().onMessageFragmentSendMessage(getMessage());
+    return true;
+  }
+
   private Listener getListener() {
     return FragmentUtils.getParentUnsafe(this, Listener.class);
   }
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/app/res/drawable-hdpi/empty_contacts.png
rename to java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-mdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/app/res/drawable-mdpi/empty_contacts.png
rename to java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xhdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/app/res/drawable-xhdpi/empty_contacts.png
rename to java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxhdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/app/res/drawable-xxhdpi/empty_contacts.png
rename to java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxxhdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/app/res/drawable-xxxhdpi/empty_contacts.png
rename to java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml b/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
index c4aac65..023b0ff 100644
--- a/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
+++ b/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
@@ -29,7 +29,9 @@
         android:gravity="top"
         android:textSize="@dimen/toolbar_title_text_size"
         android:textColor="@color/background_dialer_white"
-        android:fontFamily="sans-serif-medium"/>
+        android:fontFamily="sans-serif-medium"
+        android:maxLines="1"
+        android:ellipsize="end"/>
 
     <TextView
         android:id="@+id/subtitle"
@@ -37,6 +39,8 @@
         android:layout_height="wrap_content"
         android:textSize="@dimen/toolbar_subtitle_text_size"
         android:textColor="@color/background_dialer_white"
-        android:visibility="gone"/>
+        android:visibility="gone"
+        android:maxLines="1"
+        android:ellipsize="end"/>
   </LinearLayout>
 </merge>
\ No newline at end of file
diff --git a/java/com/android/dialer/app/res/layout/empty_content_view.xml b/java/com/android/dialer/widget/res/layout/empty_content_view.xml
similarity index 92%
rename from java/com/android/dialer/app/res/layout/empty_content_view.xml
rename to java/com/android/dialer/widget/res/layout/empty_content_view.xml
index 96a6a02..1777443 100644
--- a/java/com/android/dialer/app/res/layout/empty_content_view.xml
+++ b/java/com/android/dialer/widget/res/layout/empty_content_view.xml
@@ -16,13 +16,13 @@
 
 <merge xmlns:android="http://schemas.android.com/apk/res/android">
   <ImageView
-    android:id="@+id/emptyListViewImage"
+    android:id="@+id/empty_list_view_image"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:gravity="center_horizontal"/>
 
   <TextView
-    android:id="@+id/emptyListViewMessage"
+    android:id="@+id/empty_list_view_message"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:paddingTop="8dp"
@@ -34,7 +34,7 @@
     android:textSize="@dimen/empty_list_message_text_size"/>
 
   <TextView
-    android:id="@+id/emptyListViewAction"
+    android:id="@+id/empty_list_view_action"
     style="@style/TextActionStyle"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
diff --git a/java/com/android/dialer/widget/res/layout/fragment_message.xml b/java/com/android/dialer/widget/res/layout/fragment_message.xml
index e39e03a..5b0bab5 100644
--- a/java/com/android/dialer/widget/res/layout/fragment_message.xml
+++ b/java/com/android/dialer/widget/res/layout/fragment_message.xml
@@ -48,7 +48,9 @@
       android:textColorHint="@color/dialer_edit_text_hint_color"
       android:background="@color/background_dialer_white"
       android:textCursorDrawable="@drawable/searchedittext_custom_cursor"
-      android:layout_toStartOf="@+id/count_and_send_container"/>
+      android:layout_toStartOf="@+id/count_and_send_container"
+      android:inputType="textShortMessage|textCapSentences"
+      android:imeOptions="actionSend"/>
 
     <LinearLayout
       android:id="@+id/count_and_send_container"
diff --git a/java/com/android/dialer/widget/res/values-af/strings.xml b/java/com/android/dialer/widget/res/values-af/strings.xml
index 7c5e83a..122c843 100644
--- a/java/com/android/dialer/widget/res/values-af/strings.xml
+++ b/java/com/android/dialer/widget/res/values-af/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Skryf \'n gepasmaakte boodskap"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Maak toe"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Jy het nog nie enige kontakte nie"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Voeg \'n kontak by"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Skakel aan"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Skakel die kontaktetoestemming aan om jou kontakte te sien."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Geen kontakte-program beskikbaar nie"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-am/strings.xml b/java/com/android/dialer/widget/res/values-am/strings.xml
index f11b468..8a5353e 100644
--- a/java/com/android/dialer/widget/res/values-am/strings.xml
+++ b/java/com/android/dialer/widget/res/values-am/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"ብጁ መልዕክት ይጻፉ"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"ዝጋ"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"ገና ምንም እውቂያዎች የሉዎትም"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"እውቂያ ያክሉ"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"አብራ"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"የእርስዎን እውቂያዎች ለማየት፣ የእውቂያዎች ፍቃዱን ያብሩ።"</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"ምንም የእውቂያዎች መተግበሪያ አይገኝም"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ar/strings.xml b/java/com/android/dialer/widget/res/values-ar/strings.xml
index cb2e733..7947903 100644
--- a/java/com/android/dialer/widget/res/values-ar/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ar/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"كتابة رسالة مخصصة"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"إغلاق"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"ليست لديك أية جهات اتصال حتى الآن"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"إضافة جهة اتصال"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"تشغيل"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"للاطلاع على جهات الاتصال، شغِّل إذن جهات الاتصال."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"لا يتوفر تطبيق لجهات الاتصال"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-az/strings.xml b/java/com/android/dialer/widget/res/values-az/strings.xml
index 3860a58..7a1389a 100644
--- a/java/com/android/dialer/widget/res/values-az/strings.xml
+++ b/java/com/android/dialer/widget/res/values-az/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Fərdi mesaj yazın"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Bağlayın"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Hələ heç bir kontakt yoxdur"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakt əlavə edin"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktiv edin"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktları görmək üçün Kontakt icazəsini aktiv edin."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Kontakt tətbiqi əlçatan deyil"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml
index daefd90..46b29d2 100644
--- a/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Napišite prilagođenu poruku"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Zatvorite"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Još uvek nemate nijedan kontakt"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodaj kontakt"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Uključi"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Da biste videli kontakte, uključite dozvolu za Kontakte."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Nema dostupne aplikacije za kontakte"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-be/strings.xml b/java/com/android/dialer/widget/res/values-be/strings.xml
index 8786132..38c8a80 100644
--- a/java/com/android/dialer/widget/res/values-be/strings.xml
+++ b/java/com/android/dialer/widget/res/values-be/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Напісаць карыстальніцкае паведамленне"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Закрыць"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"У вас пакуль няма ніякіх кантактаў"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Дадаць кантакт"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Уключыць"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Каб бачыць свае кантакты, уключыце дазвол для Кантактаў."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Праграмы для аперацый з кантактамі няма"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-bg/strings.xml b/java/com/android/dialer/widget/res/values-bg/strings.xml
index 35e980c..00ce564 100644
--- a/java/com/android/dialer/widget/res/values-bg/strings.xml
+++ b/java/com/android/dialer/widget/res/values-bg/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Напишете свое съобщение"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Затваряне"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Още нямате контакти"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Добавяне на контакт"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Включване"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"За да видите контактите си, включете разрешението за Контакти."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Няма налично приложение за контакти"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-bn/strings.xml b/java/com/android/dialer/widget/res/values-bn/strings.xml
index 9e17071..96b75db 100644
--- a/java/com/android/dialer/widget/res/values-bn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-bn/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"একটি কাস্টম বার্তা লিখুন"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"বন্ধ করুন"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"আপনার এখনও পর্যন্ত কোনো পরিচিতি নেই"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"একটি পরিচিতি যোগ করুন"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"চালু করুন"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"আপনার পরিচিতিগুলি দেখতে, পরিচিতিগুলির অনুমতি চালু করুন।"</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"কোনো পরিচিতি অ্যাপ্লিকেশান উপলব্ধ নয়"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-bs/strings.xml b/java/com/android/dialer/widget/res/values-bs/strings.xml
index 0bc1a9c..df24ee1 100644
--- a/java/com/android/dialer/widget/res/values-bs/strings.xml
+++ b/java/com/android/dialer/widget/res/values-bs/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Napišite prilagođenu poruku"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Zatvori"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Još nemate nijedan kontakt"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodajte kontakt"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Uključi"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Da vidite kontakte, uključite dozvolu za Kontakte."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Nije dostupna nijedna aplikacija za kontakte"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ca/strings.xml b/java/com/android/dialer/widget/res/values-ca/strings.xml
index 8639300..f7bbaa7 100644
--- a/java/com/android/dialer/widget/res/values-ca/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ca/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Escriu un miss. personalitzat"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Tanca"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Encara no tens cap contacte"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Afegeix un contacte"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Activa"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Activa el permís Contactes per veure els teus contactes."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"No hi ha cap contacte disponible"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-cs/strings.xml b/java/com/android/dialer/widget/res/values-cs/strings.xml
index 829aab8..19e5d17 100644
--- a/java/com/android/dialer/widget/res/values-cs/strings.xml
+++ b/java/com/android/dialer/widget/res/values-cs/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Napište vlastní zprávu"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Zavřít"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Zatím nemáte žádné kontakty"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Přidat kontakt"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Povolit"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Pokud chcete zobrazit kontakty, povolte aplikaci přístup ke Kontaktům."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Není k dispozici žádná aplikace pro práci s kontakty"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-da/strings.xml b/java/com/android/dialer/widget/res/values-da/strings.xml
index 9381f36..67fb244 100644
--- a/java/com/android/dialer/widget/res/values-da/strings.xml
+++ b/java/com/android/dialer/widget/res/values-da/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Skriv en tilpasset besked"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Luk"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Du har endnu ikke nogen kontaktpersoner"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Tilføj en kontaktperson"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Slå til"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Slå tilladelsen Kontaktpersoner til for at se dine kontaktpersoner."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Der er ingen tilgængelig app til kontaktpersoner"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-de/strings.xml b/java/com/android/dialer/widget/res/values-de/strings.xml
index 949fe9e..14146d6 100644
--- a/java/com/android/dialer/widget/res/values-de/strings.xml
+++ b/java/com/android/dialer/widget/res/values-de/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Eigene Nachricht schreiben"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Schließen"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Du hast noch keine Kontakte"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakt hinzufügen"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktivieren"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Aktiviere die Berechtigung \"Kontakte\", um deine Kontakte abzurufen."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Keine Kontakte-App verfügbar"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-el/strings.xml b/java/com/android/dialer/widget/res/values-el/strings.xml
index 21e049b..0db6b26 100644
--- a/java/com/android/dialer/widget/res/values-el/strings.xml
+++ b/java/com/android/dialer/widget/res/values-el/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Γράψτε ένα προσαρμ. μήνυμα"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Κλείσιμο"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Δεν έχετε επαφές ακόμη"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Προσθήκη επαφής"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Ενεργοποίηση"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Για να δείτε τις επαφές σας, ενεργοποιήστε την άδεια πρόσβασης στις Επαφές."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Δεν υπάρχει διαθέσιμη εφαρμογή επαφών"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-en-rAU/strings.xml b/java/com/android/dialer/widget/res/values-en-rAU/strings.xml
index 7f22b46..a87cd28 100644
--- a/java/com/android/dialer/widget/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/widget/res/values-en-rAU/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Write a custom message"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Close"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"You don\'t have any contacts yet"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Add a contact"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Turn on"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"To see your contacts, turn on the Contacts permission."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"No contacts app available"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-en-rGB/strings.xml b/java/com/android/dialer/widget/res/values-en-rGB/strings.xml
index 7f22b46..a87cd28 100644
--- a/java/com/android/dialer/widget/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/widget/res/values-en-rGB/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Write a custom message"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Close"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"You don\'t have any contacts yet"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Add a contact"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Turn on"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"To see your contacts, turn on the Contacts permission."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"No contacts app available"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-en-rIN/strings.xml b/java/com/android/dialer/widget/res/values-en-rIN/strings.xml
index 7f22b46..a87cd28 100644
--- a/java/com/android/dialer/widget/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/widget/res/values-en-rIN/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Write a custom message"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Close"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"You don\'t have any contacts yet"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Add a contact"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Turn on"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"To see your contacts, turn on the Contacts permission."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"No contacts app available"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-es-rUS/strings.xml b/java/com/android/dialer/widget/res/values-es-rUS/strings.xml
index c7fbdaa..5ecc22b 100644
--- a/java/com/android/dialer/widget/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/widget/res/values-es-rUS/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Escribe tu propio mensaje"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Cerrar"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Aún no tienes contactos"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Agregar un contacto"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Activar"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver los contactos, activa el permiso Contactos."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"No hay ninguna app de contactos disponible"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-es/strings.xml b/java/com/android/dialer/widget/res/values-es/strings.xml
index 507e8af..e561d06 100644
--- a/java/com/android/dialer/widget/res/values-es/strings.xml
+++ b/java/com/android/dialer/widget/res/values-es/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Mensaje personalizado"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Cerrar"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Aún no tienes contactos"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Añadir un contacto"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Activar"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver tus contactos, activa el permiso de Contactos."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"No hay aplicaciones de contactos disponibles"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-et/strings.xml b/java/com/android/dialer/widget/res/values-et/strings.xml
index 71dab42..054b422 100644
--- a/java/com/android/dialer/widget/res/values-et/strings.xml
+++ b/java/com/android/dialer/widget/res/values-et/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Kirjutage kohandatud sõnum"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Sule"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Teil pole veel kontakte"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakti lisamine"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Lülita sisse"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktide vaatamiseks lülitage sisse kontaktide luba."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Kontaktide rakendus pole saadaval"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-eu/strings.xml b/java/com/android/dialer/widget/res/values-eu/strings.xml
index b8e4085..7d19192 100644
--- a/java/com/android/dialer/widget/res/values-eu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-eu/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Idatzi mezu bat"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Itxi"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Oraindik ez duzu kontakturik"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Gehitu kontaktu bat"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktibatu"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktuak ikusteko, aktibatu Kontaktuak atzitzeko baimena."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Ez dago kontaktu-aplikaziorik erabilgarri"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-fa/strings.xml b/java/com/android/dialer/widget/res/values-fa/strings.xml
index 0c3b1d4..5ed2313 100644
--- a/java/com/android/dialer/widget/res/values-fa/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fa/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"پیام سفارشی بنویسید"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"بستن"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"هنوز هیچ مخاطبی ندارید"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"افزودن مخاطب"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"فعال‌سازی"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"برای دیدن مخاطبینتان، مجوز «مخاطبین» را روشن کنید."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"هیچ برنامه مخاطبی در دسترس نیست"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-fi/strings.xml b/java/com/android/dialer/widget/res/values-fi/strings.xml
index e0e971c..1a15307 100644
--- a/java/com/android/dialer/widget/res/values-fi/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fi/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Kirjoita oma viesti"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Sulje"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Sinulla ei ole vielä yhteystietoja."</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Lisää yhteystieto."</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Ota käyttöön"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Jos haluat katsella yhteystietojasi, ota Yhteystiedot-käyttöoikeus käyttöön."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Yhteystietosovellusta ei ole käytettävissä."</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml b/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml
index 9776385..62e1f37 100644
--- a/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Rédiger message personnalisé"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Fermer"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Vous n\'avez pas encore de contacts"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ajouter un contact"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Activer"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Aucune application Contacts n\'est disponible"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-fr/strings.xml b/java/com/android/dialer/widget/res/values-fr/strings.xml
index fececd8..85a32b8 100644
--- a/java/com/android/dialer/widget/res/values-fr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fr/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Écrire mon propre message"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Fermer"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Vous n\'avez pas encore de contacts."</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ajouter un contact"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Activer"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Aucune application de gestion des contacts n\'est disponible"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-gl/strings.xml b/java/com/android/dialer/widget/res/values-gl/strings.xml
index 6a75681..8a9089f 100644
--- a/java/com/android/dialer/widget/res/values-gl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-gl/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Escribe unha mensaxe personalizada"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Pechar"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Aínda non tes ningún contacto"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Engadir un contacto"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Activar"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver os teus contactos, activa o permiso de Contactos."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Non hai ningunha aplicación de contactos dispoñible"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-gu/strings.xml b/java/com/android/dialer/widget/res/values-gu/strings.xml
index c2f8cf0..794245d 100644
--- a/java/com/android/dialer/widget/res/values-gu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-gu/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"એક કસ્ટમ સંદેશ લખો"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"બંધ કરો"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"તમે હજી સુધી કોઇપણ સંપર્કો ધરાવતાં નથી"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"સંપર્ક ઉમેરો"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"ચાલુ કરો"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"તમારા સંપર્કો જોવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"કોઈ સંપર્કો ઍપ્લિકેશન ઉપલબ્ધ નથી"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-hi/strings.xml b/java/com/android/dialer/widget/res/values-hi/strings.xml
index 63c94e7..5cdb8bb 100644
--- a/java/com/android/dialer/widget/res/values-hi/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hi/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"कोई कस्टम संदेश लिखें"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"बंद करें"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"आपके पास अभी कोई भी संपर्क नहीं है"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"कोई संपर्क जोड़ें"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"चालू करें"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"अपने संपर्क देखने के लिए, संपर्क अनुमति चालू करें."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"कोई भी संपर्क ऐप उपलब्‍ध नहीं है"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-hr/strings.xml b/java/com/android/dialer/widget/res/values-hr/strings.xml
index 28a58d4..9ded4d4 100644
--- a/java/com/android/dialer/widget/res/values-hr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hr/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Napišite prilagođenu poruku"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Zatvaranje"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Još nemate nijedan kontakt"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodavanje kontakta"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Uključi"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Da biste vidjeli svoje kontakte, uključite dopuštenje za kontakte."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Nije dostupna nijedna aplikacija za kontakte"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-hu/strings.xml b/java/com/android/dialer/widget/res/values-hu/strings.xml
index dcd2b36..92ae71d 100644
--- a/java/com/android/dialer/widget/res/values-hu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hu/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Egyéni üzenet írása"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Bezárás"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Még nem rendelkezik egyetlen névjeggyel sem"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Névjegy hozzáadása"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Bekapcsolás"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"A névjegyek megtekintéséhez kapcsolja be a Névjegyek engedélyt."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Nincs elérhető névjegykezelő alkalmazás"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-hy/strings.xml b/java/com/android/dialer/widget/res/values-hy/strings.xml
index 7b78bb2..ffa7132 100644
--- a/java/com/android/dialer/widget/res/values-hy/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hy/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Գրել տեքստն ինքնուրույն"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Փակել"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Դեռ կոնտակտներ չունեք"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ավելացնել կոնտակտ"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Միացնել"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Ձեր կոնտակտները տեսնելու համար միացրեք Կոնտակտների թույլտվությունը:"</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Կոնտակտների հավելված չկա"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-in/strings.xml b/java/com/android/dialer/widget/res/values-in/strings.xml
index b4b6550..69849ae 100644
--- a/java/com/android/dialer/widget/res/values-in/strings.xml
+++ b/java/com/android/dialer/widget/res/values-in/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Tulis pesan khusus"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Tutup"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Anda belum memiliki kontak"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Tambahkan kontak"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktifkan"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Untuk melihat kontak, aktifkan izin Kontak."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Aplikasi kontak tidak tersedia"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-is/strings.xml b/java/com/android/dialer/widget/res/values-is/strings.xml
index fd84419..98a1729 100644
--- a/java/com/android/dialer/widget/res/values-is/strings.xml
+++ b/java/com/android/dialer/widget/res/values-is/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Skrifa sérsniðin skilaboð"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Loka"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Þú ert ekki með neina tengiliði enn sem komið er"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Bæta tengilið við"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Kveikja"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Kveiktu á tengiliðaheimildinni til að sjá tengiliðina þína."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Ekkert tengiliðaforrit í boði"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-it/strings.xml b/java/com/android/dialer/widget/res/values-it/strings.xml
index 0af3fd2..1a6e6c1 100644
--- a/java/com/android/dialer/widget/res/values-it/strings.xml
+++ b/java/com/android/dialer/widget/res/values-it/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Scrivi un messaggio personalizzato"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Chiudi"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Nessun contatto disponibile"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Aggiungi un contatto"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Attiva"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Per accedere ai tuoi contatti, attiva l\'autorizzazione Contatti."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Nessuna app di contatti disponibile"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-iw/strings.xml b/java/com/android/dialer/widget/res/values-iw/strings.xml
index a485888..f2a732a 100644
--- a/java/com/android/dialer/widget/res/values-iw/strings.xml
+++ b/java/com/android/dialer/widget/res/values-iw/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"כתוב הודעה מותאמת אישית"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"סגירה"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"עדיין אין לך אנשי קשר"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"הוספה של איש קשר"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"הפעלה"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"עליך להפעיל את ההרשאה \'אנשי קשר\' כדי להציג את אנשי הקשר שלך."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"אין אף אפליקציה לניהול אנשי קשר"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ja/strings.xml b/java/com/android/dialer/widget/res/values-ja/strings.xml
index 9fd65a8..7994c62 100644
--- a/java/com/android/dialer/widget/res/values-ja/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ja/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"カスタム メッセージを入力"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"閉じる"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"連絡先はまだありません"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"連絡先を追加"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"ON にする"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"連絡先を表示するには、連絡先へのアクセスを許可する設定を ON にしてください。"</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"利用できる連絡先アプリがありません"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ka/strings.xml b/java/com/android/dialer/widget/res/values-ka/strings.xml
index 6dde044..865a66b 100644
--- a/java/com/android/dialer/widget/res/values-ka/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ka/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"დაწერეთ მორგებ. შეტყობინება"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"დახურვა"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"კონტაქტები ჯერ არ გაქვთ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"კონტაქტის დამატება"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"ჩართვა"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"კონტაქტების სანახავად ჩართეთ კონტაქტების ნებართვა."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"კონტაქტების აპი მიუწვდომელია"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-kk/strings.xml b/java/com/android/dialer/widget/res/values-kk/strings.xml
index 334d915..08856aa 100644
--- a/java/com/android/dialer/widget/res/values-kk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-kk/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Арнаулы хабар жазу"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Жабу"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Әлі ешқандай контактілер жоқ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Контакт қосу"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Қосу"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Контактілерді көру үшін \"Контактілер\" рұқсатын қосыңыз."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Контактілер қолданбасы қолжетімді емес"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-km/strings.xml b/java/com/android/dialer/widget/res/values-km/strings.xml
index d0f5633..c092332 100644
--- a/java/com/android/dialer/widget/res/values-km/strings.xml
+++ b/java/com/android/dialer/widget/res/values-km/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"សរសេរ​សារ​ផ្ទាល់ខ្លួន"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"បិទ"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"អ្នកមិនទាន់មានទំនាក់ទំនងនៅឡើយទេ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"បញ្ចូល​ទំនាក់ទំនង"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"បើក"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"ដើម្បីមើលទំនាក់ទំនងរបស់អ្នក សូមបើកការ​អនុញ្ញាតកម្មវិធីទំនាក់ទំនង។"</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"មិនមានកម្មវិធីទំនាក់ទំនងទេ"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-kn/strings.xml b/java/com/android/dialer/widget/res/values-kn/strings.xml
index 3535bfc..a502d08 100644
--- a/java/com/android/dialer/widget/res/values-kn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-kn/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"ಕಸ್ಟಮ್ ಸಂದೇಶವನ್ನು ಬರೆಯಿರಿ"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"ಮುಚ್ಚಿ"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"ನಿಮ್ಮ ಬಳಿ ಇನ್ನೂ ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"ಆನ್ ಮಾಡಿ"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"ಯಾವುದೇ ಸಂಪರ್ಕಗಳ ಅಪ್ಲಿಕೇಶನ್‌ ಲಭ್ಯವಿಲ್ಲ"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ko/strings.xml b/java/com/android/dialer/widget/res/values-ko/strings.xml
index 8c00cea..045dc54 100644
--- a/java/com/android/dialer/widget/res/values-ko/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ko/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"맞춤 메시지를 작성하세요."</string>
     <string name="toolbar_close" msgid="1081308076149879833">"닫기"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"아직 연락처가 없습니다."</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"연락처 추가"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"사용"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"연락처를 보려면 연락처에 액세스할 권한을 부여하세요."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"사용할 수 있는 연락처 앱이 없습니다."</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ky/strings.xml b/java/com/android/dialer/widget/res/values-ky/strings.xml
index 46ea851..7ef10e7 100644
--- a/java/com/android/dialer/widget/res/values-ky/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ky/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Башка билдирүүнү жазыңыз"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Жабуу"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Азырынча эч байланышыңыз жок"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Байланыш кошуу"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Күйгүзүү"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Байланыштарыңызды көрүү үчүн, \"Байланыштар\" уруксатын күйгүзүңүз."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Жеткиликтүү байланыштар колдонмосу жок"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-lo/strings.xml b/java/com/android/dialer/widget/res/values-lo/strings.xml
index 0db64a7..dc7ba44 100644
--- a/java/com/android/dialer/widget/res/values-lo/strings.xml
+++ b/java/com/android/dialer/widget/res/values-lo/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"ຂຽນຂໍ້ຄວາມດ້ວຍຕົນເອງ"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"ປິດ"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"ທ່ານຍັງບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່ເທື່ອ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ເພີ່ມລາຍຊື່"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"ເປີດໃຊ້"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"ເພື່ອເບິ່ງລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່ຜູ້ຕິດຕໍ່ກ່ອນ"</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"ບໍ່ມີແອັບລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ສາມາດໃຊ້ໄດ້"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-lt/strings.xml b/java/com/android/dialer/widget/res/values-lt/strings.xml
index a10b91e..be12520 100644
--- a/java/com/android/dialer/widget/res/values-lt/strings.xml
+++ b/java/com/android/dialer/widget/res/values-lt/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Parašykite tinkintą praneš."</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Uždaryti"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Dar neturite jokių kontaktų"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Pridėkite kontaktą"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Įjungti"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Jei norite peržiūrėti kontaktus, įjunkite Kontaktų leidimą."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Nepasiekiama jokia kontaktų programa"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-lv/strings.xml b/java/com/android/dialer/widget/res/values-lv/strings.xml
index 8ff0793..acefbae 100644
--- a/java/com/android/dialer/widget/res/values-lv/strings.xml
+++ b/java/com/android/dialer/widget/res/values-lv/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Rakstīt pielāgotu ziņojumu"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Aizvērt"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Jums vēl nav nevienas kontaktpersonas."</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Pievienot kontaktpersonu"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Ieslēgt"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Lai skatītu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Nav pieejama neviena kontaktpersonu lietotne."</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-mk/strings.xml b/java/com/android/dialer/widget/res/values-mk/strings.xml
index aa9be30..20b18e8 100644
--- a/java/com/android/dialer/widget/res/values-mk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-mk/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Напиши приспособена порака"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Затвори"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Сè уште немате контакти"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Додајте контакт"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Вклучи"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"За да ги видите контактите, вклучете ја дозволата за контакти."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Нема достапна апликација за контакти"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ml/strings.xml b/java/com/android/dialer/widget/res/values-ml/strings.xml
index b52ee40..a97a7d8 100644
--- a/java/com/android/dialer/widget/res/values-ml/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ml/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"ഒരു ഇ‌ഷ്‌ടാനുസൃത സന്ദേശം രചിക്കൂ"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"അടയ്‌ക്കുക"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"നിങ്ങൾക്ക് ഇതുവരെയും കോൺടാക്റ്റുകൾ ഒന്നുമില്ല."</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ഒരു കോണ്‍ടാക്റ്റ് ചേര്‍ക്കുക"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"ഓൺ ചെയ്യുക"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ കാണുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"കോൺടാക്റ്റ് അപ്ലിക്കേഷനൊന്നും ലഭ്യമല്ല"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-mn/strings.xml b/java/com/android/dialer/widget/res/values-mn/strings.xml
index 6bdad89..bbcfc7c 100644
--- a/java/com/android/dialer/widget/res/values-mn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-mn/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Тусгай зурвас бичих"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Хаах"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Танд одоогоор харилцагч байхгүй байна"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Харилцагч нэмэх"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Асаах"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Харилцагчдаа харахын тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Ямар ч харилцагчдын апликейшн байхгүй байна"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-mr/strings.xml b/java/com/android/dialer/widget/res/values-mr/strings.xml
index 5661fa8..38d913a 100644
--- a/java/com/android/dialer/widget/res/values-mr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-mr/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"एक सानुकूल संदेश लिहा"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"बंद करा"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"आपल्‍याकडे अद्याप कोणतेही संपर्क नाहीत"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"एक संपर्क जोडा"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"चालू करा"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"आपले संपर्क पाहण्‍यासाठी, संपर्क परवानगी चालू करा."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"कोणताही संपर्क अॅप उपलब्ध नाही"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ms/strings.xml b/java/com/android/dialer/widget/res/values-ms/strings.xml
index 8889ccc..bc67c67 100644
--- a/java/com/android/dialer/widget/res/values-ms/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ms/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Tulis mesej tersuai"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Tutup"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Anda belum mempunyai sebarang kenalan"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Tambahkan kenalan"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Hidupkan"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Untuk melihat kenalan anda, hidupkan kebenaran Kenalan."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Tiada apl kenalan yang tersedia"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-my/strings.xml b/java/com/android/dialer/widget/res/values-my/strings.xml
index 9a69f29..c8e783b 100644
--- a/java/com/android/dialer/widget/res/values-my/strings.xml
+++ b/java/com/android/dialer/widget/res/values-my/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"စိတ်ကြိုက် မက်ဆေ့ဂျ်တစ်ခု ရေးပါ"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"ပိတ်ရန်"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"သင့်တွင် မည်သည့်အဆက်အသွယ်မျှ မရှိသေးပါ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"အဆက်အသွယ်တစ်ယောက် ထည့်မည်"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"ဖွင့်ရန်"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"အဆက်အသွယ်များကိုကြည့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"အဆက်အသွယ်များ app မရှိပါ"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-nb/strings.xml b/java/com/android/dialer/widget/res/values-nb/strings.xml
index 100156b..822f07e 100644
--- a/java/com/android/dialer/widget/res/values-nb/strings.xml
+++ b/java/com/android/dialer/widget/res/values-nb/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Skriv egendefinert melding"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Lukk"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Du har ingen kontakter ennå"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Legg til en kontakt"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Slå på"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"For å se kontaktene dine må du slå på Kontakter-tillatelsen."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Ingen kontaktapper er tilgjengelige"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ne/strings.xml b/java/com/android/dialer/widget/res/values-ne/strings.xml
index abb8bb0..ebb31d5 100644
--- a/java/com/android/dialer/widget/res/values-ne/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ne/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"आफू अनुकूल सन्देश लेख्‍ने"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"बन्द गर्नुहोस्"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"अहिलेसम्म तपाईंसँग कुनै सम्पर्कहरू छैनन्"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"कुनै सम्पर्क थप्नुहोस्"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"सक्रिय गर्नुहोस्"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"आफ्ना सम्पर्कहरू हेर्न सम्पर्क सम्बन्धी अनुमतिलाई सक्रिय गर्नुहोस्।"</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"सम्पर्क सम्बन्धी कुनै अनुप्रयोग उपलब्ध छैन"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-nl/strings.xml b/java/com/android/dialer/widget/res/values-nl/strings.xml
index 5560288..cbc286b 100644
--- a/java/com/android/dialer/widget/res/values-nl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-nl/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Schrijf zelf een bericht"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Sluiten"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Je hebt nog geen contacten"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Een contact toevoegen"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Inschakelen"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Als je je contacten wilt bekijken, schakel je de machtiging voor Contacten in."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Geen app voor contacten beschikbaar"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-no/strings.xml b/java/com/android/dialer/widget/res/values-no/strings.xml
index 100156b..822f07e 100644
--- a/java/com/android/dialer/widget/res/values-no/strings.xml
+++ b/java/com/android/dialer/widget/res/values-no/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Skriv egendefinert melding"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Lukk"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Du har ingen kontakter ennå"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Legg til en kontakt"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Slå på"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"For å se kontaktene dine må du slå på Kontakter-tillatelsen."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Ingen kontaktapper er tilgjengelige"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-pa/strings.xml b/java/com/android/dialer/widget/res/values-pa/strings.xml
index 4c69c2c..06f191e 100644
--- a/java/com/android/dialer/widget/res/values-pa/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pa/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਸੰਦੇਸ਼ ਲਿਖੋ"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"ਬੰਦ ਕਰੋ"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"ਤੁਹਾਡੇ ਕੋਲ ਹਾਲੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ਕੋਈ ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"ਚਾਲੂ ਕਰੋ"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਸੰਪਰਕ ਇਜਾਜ਼ਤ ਚਾਲੂ ਕਰੋ।"</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"ਕੋਈ ਸੰਪਰਕ ਐਪ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-pl/strings.xml b/java/com/android/dialer/widget/res/values-pl/strings.xml
index cec7a40..5d62a07 100644
--- a/java/com/android/dialer/widget/res/values-pl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pl/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Wpisz wiadomość"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Zamknij"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Nie masz jeszcze żadnych kontaktów"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodaj kontakt"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Włącz"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Aby zobaczyć swoje kontakty, włącz uprawnienia Kontakty."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Nie jest dostępna żadna aplikacja do obsługi kontaktów"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml b/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml
index b15bfac..0afc0f1 100644
--- a/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Escreva sua mensagem"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Fechar"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Você ainda não tem contatos"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adicionar um contato"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Ativar"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver seus contatos, ative a permissão para o app Contatos."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Nenhum app de contatos disponível"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml b/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml
index ece2ef2..35f71a3 100644
--- a/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Escreva uma mensagem"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Fechar"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Ainda não tem nenhum contacto"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adicionar um contacto"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Ativar"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver os seus contactos, ative a autorização Contactos."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Não existe nenhuma aplicação de contactos disponível"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-pt/strings.xml b/java/com/android/dialer/widget/res/values-pt/strings.xml
index b15bfac..0afc0f1 100644
--- a/java/com/android/dialer/widget/res/values-pt/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pt/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Escreva sua mensagem"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Fechar"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Você ainda não tem contatos"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adicionar um contato"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Ativar"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver seus contatos, ative a permissão para o app Contatos."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Nenhum app de contatos disponível"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ro/strings.xml b/java/com/android/dialer/widget/res/values-ro/strings.xml
index 753b920..6c51d23 100644
--- a/java/com/android/dialer/widget/res/values-ro/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ro/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Scrieți mesaj personalizat"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Închideți"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Nu aveți încă persoane de contact."</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adăugați o persoană de contact"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Activați"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Pentru a vedea persoanele de contact, activați permisiunea pentru Agendă."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Nu este disponibilă nicio aplicație pentru agendă"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ru/strings.xml b/java/com/android/dialer/widget/res/values-ru/strings.xml
index bdebd3c..c36874d 100644
--- a/java/com/android/dialer/widget/res/values-ru/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ru/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Добавьте свой текст"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Закрыть"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Контактов нет"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Добавить контакт"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Предоставить разрешение"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Чтобы открыть список контактов, предоставьте приложению разрешение \"Контакты\"."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Нет приложения для работы с контактами"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-si/strings.xml b/java/com/android/dialer/widget/res/values-si/strings.xml
index 4988259..10eb7b5 100644
--- a/java/com/android/dialer/widget/res/values-si/strings.xml
+++ b/java/com/android/dialer/widget/res/values-si/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"අභිරුචි පණිවිඩයක් ලියන්න"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"වසන්න"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"ඔබට තවම කිසිදු සම්බන්ධතාවක් නැත"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"සම්බන්ධතාවක් එක් කරන්න"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"ක්‍රියාත්මක කරන්න"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"ඔබේ සම්බන්ධතා බැලීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"සබඳතා යෙදුම ලබා ගැනීමට නොහැකිය"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-sk/strings.xml b/java/com/android/dialer/widget/res/values-sk/strings.xml
index 5dc1bd5..56f7ceb 100644
--- a/java/com/android/dialer/widget/res/values-sk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sk/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Napíšte vlastnú správu"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Zavrieť"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Zatiaľ nemáte žiadne kontakty"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Pridať kontakt"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Zapnúť"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Ak si chcete zobraziť kontakty, zapnite povolenie Kontakty."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Nie je k dispozícii žiadna aplikácia na prácu s kontaktmi"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-sl/strings.xml b/java/com/android/dialer/widget/res/values-sl/strings.xml
index 0ba965b..52f0293 100644
--- a/java/com/android/dialer/widget/res/values-sl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sl/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Napišite sporočilo po meri"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Zapri"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Nimate še nobenega stika"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodaj stik"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Vklopi"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Če si želite ogledati stike, vklopite dovoljenje za stike."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Na voljo ni nobene aplikacije za stike"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-sq/strings.xml b/java/com/android/dialer/widget/res/values-sq/strings.xml
index 7f5e0f2..c7943df 100644
--- a/java/com/android/dialer/widget/res/values-sq/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sq/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Shkruaj mesazh të person."</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Mbyll"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Nuk ke ende kontakte"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Shto një kontakt"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktivizo"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Për të parë kontaktet, aktivizo lejen e Kontakteve."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Nuk ka asnjë aplikacion për kontaktet"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-sr/strings.xml b/java/com/android/dialer/widget/res/values-sr/strings.xml
index 446c273..00b9b4f 100644
--- a/java/com/android/dialer/widget/res/values-sr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sr/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Напишите прилагођену поруку"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Затворите"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Још увек немате ниједан контакт"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Додај контакт"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Укључи"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Да бисте видели контакте, укључите дозволу за Контакте."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Нема доступне апликације за контакте"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-sv/strings.xml b/java/com/android/dialer/widget/res/values-sv/strings.xml
index 7d2f44c..3593970 100644
--- a/java/com/android/dialer/widget/res/values-sv/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sv/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Skriv anpassat meddelande"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Stäng"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Du har inga kontakter ännu"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Lägg till en kontakt"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktivera"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Du måste aktivera behörigheten Kontakter för att visa kontakterna."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Det finns inga appar för kontakter"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-sw/strings.xml b/java/com/android/dialer/widget/res/values-sw/strings.xml
index d2c2a97..b089210 100644
--- a/java/com/android/dialer/widget/res/values-sw/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sw/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Andika ujumbe maalum"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Funga"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Bado huna anwani zozote"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ongeza anwani"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Washa"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Ili uone anwani zako, washa ruhusa ya Anwani."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Hakuna programu ya anwani iliyopatikana"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ta/strings.xml b/java/com/android/dialer/widget/res/values-ta/strings.xml
index 4061c16..83ca080 100644
--- a/java/com/android/dialer/widget/res/values-ta/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ta/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"தனிப்பயன் செய்தியை எழுதவும்"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"மூடு"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"இதுவரை தொடர்புகள் எதுவுமில்லை"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"தொடர்பைச் சேர்"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"இயக்கு"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"தொடர்புகளைப் பார்க்க, தொடர்புகள் அனுமதியை இயக்கவும்."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"தொடர்புகள் பயன்பாடு எதுவுமில்லை"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-te/strings.xml b/java/com/android/dialer/widget/res/values-te/strings.xml
index c2474b7..418cc3d 100644
--- a/java/com/android/dialer/widget/res/values-te/strings.xml
+++ b/java/com/android/dialer/widget/res/values-te/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"అనుకూల సందేశాన్ని వ్రాయండి"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"మూసివేయి"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"మీకు ఇప్పటికీ పరిచయాలేవీ లేవు"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"పరిచయాన్ని జోడించండి"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"ఆన్ చేయి"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"మీ పరిచయాలను చూడటానికి, పరిచయాల అనుమతిని ఆన్ చేయండి."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"పరిచయాల అనువర్తనం ఏదీ అందుబాటులో లేదు"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-th/strings.xml b/java/com/android/dialer/widget/res/values-th/strings.xml
index d450b4b..c556d1c 100644
--- a/java/com/android/dialer/widget/res/values-th/strings.xml
+++ b/java/com/android/dialer/widget/res/values-th/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"เขียนข้อความที่กำหนดเอง"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"ปิด"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"คุณยังไม่มีรายชื่อติดต่อ"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"เพิ่มรายชื่อติดต่อ"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"เปิด"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"หากต้องการดูรายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"ไม่มีแอปรายชื่อติดต่อที่พร้อมใช้งาน"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-tl/strings.xml b/java/com/android/dialer/widget/res/values-tl/strings.xml
index ee7c52f..be02d19 100644
--- a/java/com/android/dialer/widget/res/values-tl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-tl/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Sumulat ng custom na mensahe"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Isara"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Wala ka pang sinumang contact"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Magdagdag ng contact"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"I-on"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Upang makita ang iyong mga contact, i-on ang pahintulot ng Mga Contact."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Walang available na app ng mga contact"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-tr/strings.xml b/java/com/android/dialer/widget/res/values-tr/strings.xml
index 64e2ea5..90d5db6 100644
--- a/java/com/android/dialer/widget/res/values-tr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-tr/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Özel bir mesaj yazın"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Kapat"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Henüz hiç kişiniz yok"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kişi ekleyin"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Etkinleştir"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Kişilerinizi görmek için Kişiler iznini etkinleştirin."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Kullanılabilir kişi uygulaması yok"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-uk/strings.xml b/java/com/android/dialer/widget/res/values-uk/strings.xml
index f8d9bb8..cf5a7d1 100644
--- a/java/com/android/dialer/widget/res/values-uk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-uk/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Ваше власне повідомлення"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Закрити"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Ще немає контактів"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Додати контакт"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Увімкнути"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Щоб переглянути контакти, увімкніть дозвіл \"Контакти\"."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Немає додатка з контактами"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-ur/strings.xml b/java/com/android/dialer/widget/res/values-ur/strings.xml
index 6edeb5c..e5199af 100644
--- a/java/com/android/dialer/widget/res/values-ur/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ur/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"ایک حسب ضرورت پیغام لکھیں"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"بند کریں"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"آپ کے پاس ابھی تک کوئی رابطے نہیں ہیں"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ایک رابطہ شامل کریں"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"آن کریں"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"اپنے رابطے دیکھنے کیلئے رابطوں کی اجازت آن کریں۔"</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"رابطوں کی کوئی ایپ دستیاب نہیں ہے"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-uz/strings.xml b/java/com/android/dialer/widget/res/values-uz/strings.xml
index 434464a..eb0e0ad 100644
--- a/java/com/android/dialer/widget/res/values-uz/strings.xml
+++ b/java/com/android/dialer/widget/res/values-uz/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Boshqa xabar yozing"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Yopish"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Kontaktlar yo‘q"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakt qo‘shish"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Ruxsat berish"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktlar ro‘yxatini ko‘rish uchun ilovaga Kontaktlarga kirishga ruxsat bering."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Kontaktlarni ochadigan ilova yo‘q"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-vi/strings.xml b/java/com/android/dialer/widget/res/values-vi/strings.xml
index 1a30f7c..62e94b8 100644
--- a/java/com/android/dialer/widget/res/values-vi/strings.xml
+++ b/java/com/android/dialer/widget/res/values-vi/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Viết tin nhắn tùy chỉnh"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Đóng"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Bạn chưa có bất kỳ liên hệ nào"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Thêm liên hệ"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Bật"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Để xem danh bạ của bạn, bật quyền đối với Danh bạ."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Không có ứng dụng danh bạ"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml b/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml
index 7999723..063301a 100644
--- a/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"自行撰写信息"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"关闭"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"您还没有任何联系人"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"添加联系人"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"开启"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"要查看您的联系人，请开启“通讯录”权限。"</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"没有可用的通讯录应用"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml b/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml
index b0bfcc8..e2e69b7 100644
--- a/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"撰寫自訂訊息"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"關閉"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"您尚無任何聯絡人"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"新增聯絡人"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"開放"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"如要查看聯絡人，請開放「通訊錄」權限。"</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"沒有可用的聯絡人應用程式"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml b/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml
index b0bfcc8..85768af 100644
--- a/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"撰寫自訂訊息"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"關閉"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"你還沒有任何聯絡人"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"新增聯絡人"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"開啟"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"如要查看你的聯絡人，請開啟「聯絡人」存取權限。"</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"沒有可用的聯絡人應用程式"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values-zu/strings.xml b/java/com/android/dialer/widget/res/values-zu/strings.xml
index 074aa58..a3ba84a 100644
--- a/java/com/android/dialer/widget/res/values-zu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-zu/strings.xml
@@ -3,4 +3,9 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="custom_message_hint" msgid="2179012696339457461">"Bhala umlayezo wangokwezifiso"</string>
     <string name="toolbar_close" msgid="1081308076149879833">"Vala"</string>
+    <string name="all_contacts_empty" msgid="4260556610403994011">"Awunabo oxhumana nabo okwamanje"</string>
+    <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Engeza oxhumana naye"</string>
+    <string name="permission_single_turn_on" msgid="1306416016676232584">"Vula"</string>
+    <string name="permission_no_contacts" msgid="2388204904477299207">"Ukuze ubone oxhumana nabo, vula imvume yoxhumana nabo."</string>
+    <string name="add_contact_not_available" msgid="3083256438899321502">"Alukho uhlelo lokusebenza loxhumana nabo olutholakalayo"</string>
 </resources>
diff --git a/java/com/android/dialer/widget/res/values/colors.xml b/java/com/android/dialer/widget/res/values/colors.xml
new file mode 100644
index 0000000..c974609
--- /dev/null
+++ b/java/com/android/dialer/widget/res/values/colors.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <color name="empty_list_text_color">#b2b2b2</color>
+</resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/widget/res/values/dimens.xml b/java/com/android/dialer/widget/res/values/dimens.xml
index 20393a8..537ad7b 100644
--- a/java/com/android/dialer/widget/res/values/dimens.xml
+++ b/java/com/android/dialer/widget/res/values/dimens.xml
@@ -26,4 +26,9 @@
   <dimen name="toolbar_title_small_text_size">14sp</dimen>
   <dimen name="toolbar_subtitle_text_size">12sp</dimen>
   <dimen name="toolbar_elevation">4dp</dimen>
+  <dimen name="toolbar_end_padding">4dp</dimen>
+
+  <!-- Empty List -->
+  <dimen name="empty_list_message_top_padding">20dp</dimen>
+  <dimen name="empty_list_message_text_size">16sp</dimen>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/widget/res/values/strings.xml b/java/com/android/dialer/widget/res/values/strings.xml
index a5829bb..d6ea2e7 100644
--- a/java/com/android/dialer/widget/res/values/strings.xml
+++ b/java/com/android/dialer/widget/res/values/strings.xml
@@ -5,4 +5,19 @@
 
   <!-- Accessibility string for close/navigation icon in DialerToolbar -->
   <string name="toolbar_close">Close</string>
+
+  <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
+  <string name="all_contacts_empty">You don\'t have any contacts yet</string>
+
+  <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
+  <string name="all_contacts_empty_add_contact_action">Add a contact</string>
+
+  <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
+  <string name="permission_single_turn_on">Turn on</string>
+
+  <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
+  <string name="permission_no_contacts">To see your contacts, turn on the Contacts permission.</string>
+
+  <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
+  <string name="add_contact_not_available">No contacts app available</string>
 </resources>
\ No newline at end of file
diff --git a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml b/java/com/android/dialershared/bubble/AndroidManifest.xml
similarity index 65%
copy from java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
copy to java/com/android/dialershared/bubble/AndroidManifest.xml
index ecf704e..1a94aaf 100644
--- a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
+++ b/java/com/android/dialershared/bubble/AndroidManifest.xml
@@ -1,6 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2017 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -14,7 +13,10 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:autoMirrored="true"
-    android:src="@drawable/quantum_ic_arrow_back_white_24"
-    android:tint="@color/actionbar_icon_color"/>
\ No newline at end of file
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.dialershared.bubble">
+
+  <uses-sdk android:minSdkVersion="21"/>
+  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
+</manifest>
diff --git a/java/com/android/dialershared/bubble/Bubble.java b/java/com/android/dialershared/bubble/Bubble.java
new file mode 100644
index 0000000..3eb88aa
--- /dev/null
+++ b/java/com/android/dialershared/bubble/Bubble.java
@@ -0,0 +1,667 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialershared.bubble;
+
+import android.animation.Animator;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.animation.PropertyValuesHolder;
+import android.annotation.SuppressLint;
+import android.app.PendingIntent.CanceledException;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.ColorStateList;
+import android.graphics.PixelFormat;
+import android.graphics.drawable.RippleDrawable;
+import android.net.Uri;
+import android.os.Handler;
+import android.provider.Settings;
+import android.support.annotation.ColorInt;
+import android.support.annotation.IntDef;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
+import android.support.v4.graphics.ColorUtils;
+import android.support.v4.os.BuildCompat;
+import android.support.v4.view.animation.FastOutLinearInInterpolator;
+import android.support.v4.view.animation.LinearOutSlowInInterpolator;
+import android.transition.TransitionManager;
+import android.transition.TransitionValues;
+import android.view.ContextThemeWrapper;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewPropertyAnimator;
+import android.view.ViewTreeObserver.OnPreDrawListener;
+import android.view.WindowManager;
+import android.view.WindowManager.LayoutParams;
+import android.view.animation.AnticipateInterpolator;
+import android.view.animation.OvershootInterpolator;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.ViewAnimator;
+import com.android.dialershared.bubble.BubbleInfo.Action;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.List;
+
+/**
+ * Creates and manages a bubble window from information in a {@link BubbleInfo}. Before creating, be
+ * sure to check whether bubbles may be shown using {@link #canShowBubbles(Context)} and request
+ * permission if necessary ({@link #getRequestPermissionIntent(Context)} is provided for
+ * convenience)
+ */
+public class Bubble {
+
+  // How long text should show after showText(CharSequence) is called
+  private static final int SHOW_TEXT_DURATION_MILLIS = 3000;
+  // How long the new window should show before destroying the old one during resize operations.
+  // This ensures the new window has had time to draw first.
+  private static final int WINDOW_REDRAW_DELAY_MILLIS = 50;
+
+  private static Boolean canShowBubblesForTesting = null;
+
+  private final Context context;
+  private final WindowManager windowManager;
+
+  private LayoutParams windowParams;
+
+  // Initialized in factory method
+  @SuppressWarnings("NullableProblems")
+  @NonNull
+  private BubbleInfo currentInfo;
+
+  private boolean isShowing;
+  private boolean expanded;
+  private boolean textShowing;
+  private boolean hideAfterText;
+
+  private final Handler handler = new Handler();
+
+  private ViewHolder viewHolder;
+
+  @Retention(RetentionPolicy.SOURCE)
+  @IntDef({CollapseEnd.NOTHING, CollapseEnd.HIDE})
+  private @interface CollapseEnd {
+    int NOTHING = 0;
+    int HIDE = 1;
+  }
+
+  /**
+   * Determines whether bubbles can be shown based on permissions obtained. This should be checked
+   * before attempting to create a Bubble.
+   *
+   * @return true iff bubbles are able to be shown.
+   * @see Settings#canDrawOverlays(Context)
+   */
+  public static boolean canShowBubbles(@NonNull Context context) {
+    return canShowBubblesForTesting != null
+        ? canShowBubblesForTesting
+        : Settings.canDrawOverlays(context);
+  }
+
+  @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+  public static void setCanShowBubblesForTesting(boolean canShowBubbles) {
+    canShowBubblesForTesting = canShowBubbles;
+  }
+
+  /** Returns an Intent to request permission to show overlays */
+  @NonNull
+  public static Intent getRequestPermissionIntent(@NonNull Context context) {
+    return new Intent(
+        Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
+        new Uri.Builder().scheme("package").fragment(context.getPackageName()).build());
+  }
+
+  /** Creates instances of Bubble. The default implementation just calls the constructor. */
+  @VisibleForTesting
+  public interface BubbleFactory {
+    Bubble createBubble(@NonNull Context context);
+  }
+
+  private static BubbleFactory bubbleFactory = Bubble::new;
+
+  public static Bubble createBubble(@NonNull Context context, @NonNull BubbleInfo info) {
+    Bubble bubble = bubbleFactory.createBubble(context);
+    bubble.setBubbleInfo(info);
+    return bubble;
+  }
+
+  @VisibleForTesting
+  public static void setBubbleFactory(@NonNull BubbleFactory bubbleFactory) {
+    Bubble.bubbleFactory = bubbleFactory;
+  }
+
+  @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+  Bubble(@NonNull Context context) {
+    context = new ContextThemeWrapper(context, R.style.Theme_AppCompat);
+    this.context = context;
+    windowManager = context.getSystemService(WindowManager.class);
+
+    viewHolder = new ViewHolder(context);
+  }
+
+  /**
+   * Make the bubble visible. Will show a short entrance animation as it enters. If the bubble is
+   * already showing this method does nothing.
+   */
+  public void show() {
+    if (isShowing) {
+      return;
+    }
+
+    hideAfterText = false;
+
+    if (windowParams == null) {
+      // Apps targeting O+ must use TYPE_APPLICATION_OVERLAY, which is not available prior to O.
+      @SuppressWarnings("deprecation")
+      @SuppressLint("InlinedApi")
+      int type =
+          BuildCompat.isAtLeastO()
+              ? LayoutParams.TYPE_APPLICATION_OVERLAY
+              : LayoutParams.TYPE_PHONE;
+
+      windowParams =
+          new LayoutParams(
+              type,
+              LayoutParams.FLAG_NOT_TOUCH_MODAL
+                  | LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
+                  | LayoutParams.FLAG_NOT_FOCUSABLE,
+              PixelFormat.TRANSLUCENT);
+      windowParams.gravity = Gravity.TOP | Gravity.LEFT;
+      windowParams.x =
+          context.getResources().getDimensionPixelOffset(R.dimen.bubble_initial_offset_x);
+      windowParams.y =
+          context.getResources().getDimensionPixelOffset(R.dimen.bubble_initial_offset_y);
+      windowParams.height = LayoutParams.WRAP_CONTENT;
+      windowParams.width = LayoutParams.WRAP_CONTENT;
+    }
+
+    windowManager.addView(viewHolder.getRoot(), windowParams);
+    ObjectAnimator showAnimator =
+        ObjectAnimator.ofPropertyValuesHolder(
+            viewHolder.getPrimaryButton(),
+            PropertyValuesHolder.ofFloat(View.SCALE_X, 0, 1),
+            PropertyValuesHolder.ofFloat(View.SCALE_Y, 0, 1));
+    showAnimator.setInterpolator(new OvershootInterpolator());
+    showAnimator.start();
+    isShowing = true;
+  }
+
+  /**
+   * Hide the button if visible. Will run a short exit animation before hiding. If the bubble is
+   * currently showing text, will hide after the text is done displaying. If the bubble is not
+   * visible this method does nothing.
+   */
+  public void hide() {
+    if (!isShowing) {
+      return;
+    }
+
+    if (textShowing) {
+      hideAfterText = true;
+      return;
+    }
+
+    if (expanded) {
+      startCollapse(CollapseEnd.HIDE);
+      return;
+    }
+
+    viewHolder
+        .getPrimaryButton()
+        .animate()
+        .setInterpolator(new AnticipateInterpolator())
+        .scaleX(0)
+        .scaleY(0)
+        .withEndAction(
+            () -> {
+              windowManager.removeView(viewHolder.getRoot());
+              isShowing = false;
+            })
+        .start();
+  }
+
+  /** Returns whether the bubble is currently visible */
+  public boolean isShowing() {
+    return isShowing;
+  }
+
+  /**
+   * Set the info for this Bubble to display
+   *
+   * @param bubbleInfo the BubbleInfo to display in this Bubble.
+   */
+  public void setBubbleInfo(@NonNull BubbleInfo bubbleInfo) {
+    currentInfo = bubbleInfo;
+    update();
+  }
+
+  /**
+   * Update the state and behavior of actions.
+   *
+   * @param actions the new state of the bubble's actions
+   */
+  public void updateActions(@NonNull List<Action> actions) {
+    currentInfo = BubbleInfo.from(currentInfo).setActions(actions).build();
+    updateButtonStates();
+  }
+
+  /** Returns the currently displayed BubbleInfo */
+  public BubbleInfo getBubbleInfo() {
+    return currentInfo;
+  }
+
+  /**
+   * Display text in the main bubble. The bubble's drawer is not expandable while text is showing,
+   * and the drawer will be closed if already open.
+   *
+   * @param text the text to display to the user
+   */
+  public void showText(@NonNull CharSequence text) {
+    textShowing = true;
+    if (expanded) {
+      startCollapse(CollapseEnd.NOTHING);
+      doShowText(text);
+    } else {
+      // Need to transition from old bounds to new bounds manually
+      ChangeOnScreenBounds transition = new ChangeOnScreenBounds();
+      // Prepare and capture start values
+      TransitionValues startValues = new TransitionValues();
+      startValues.view = viewHolder.getPrimaryButton();
+      transition.addTarget(startValues.view);
+      transition.captureStartValues(startValues);
+
+      doResize(
+          () -> {
+            doShowText(text);
+            // Hide the text so we can animate it in
+            viewHolder.getPrimaryText().setAlpha(0);
+
+            ViewAnimator primaryButton = viewHolder.getPrimaryButton();
+            // Cancel the automatic transition scheduled in doShowText
+            TransitionManager.endTransitions((ViewGroup) primaryButton.getParent());
+            primaryButton
+                .getViewTreeObserver()
+                .addOnPreDrawListener(
+                    new OnPreDrawListener() {
+                      @Override
+                      public boolean onPreDraw() {
+                        primaryButton.getViewTreeObserver().removeOnPreDrawListener(this);
+
+                        // Prepare and capture end values
+                        TransitionValues endValues = new TransitionValues();
+                        endValues.view = primaryButton;
+                        transition.addTarget(endValues.view);
+                        transition.captureEndValues(endValues);
+
+                        // animate the primary button bounds change
+                        Animator bounds =
+                            transition.createAnimator(primaryButton, startValues, endValues);
+
+                        // Animate the text in
+                        Animator alpha =
+                            ObjectAnimator.ofFloat(viewHolder.getPrimaryText(), View.ALPHA, 1f);
+
+                        AnimatorSet set = new AnimatorSet();
+                        set.play(bounds).before(alpha);
+                        set.start();
+                        return false;
+                      }
+                    });
+          });
+    }
+    handler.removeCallbacks(null);
+    handler.postDelayed(
+        () -> {
+          textShowing = false;
+          if (hideAfterText) {
+            hide();
+          } else {
+            doResize(
+                () -> viewHolder.getPrimaryButton().setDisplayedChild(ViewHolder.CHILD_INDEX_ICON));
+          }
+        },
+        SHOW_TEXT_DURATION_MILLIS);
+  }
+
+  void onMoveStart() {
+    startCollapse(CollapseEnd.NOTHING);
+    viewHolder
+        .getPrimaryButton()
+        .animate()
+        .translationZ(
+            context.getResources().getDimensionPixelOffset(R.dimen.bubble_move_elevation_change));
+  }
+
+  void onMoveFinish() {
+    viewHolder.getPrimaryButton().animate().translationZ(0);
+  }
+
+  void primaryButtonClick() {
+    if (expanded || textShowing || currentInfo.getActions().isEmpty()) {
+      try {
+        currentInfo.getPrimaryAction().send();
+      } catch (CanceledException e) {
+        throw new RuntimeException(e);
+      }
+      return;
+    }
+
+    boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT;
+    doResize(
+        () -> {
+          onLeftRightSwitch(onRight);
+          viewHolder.getExpandedView().setVisibility(View.VISIBLE);
+        });
+    View expandedView = viewHolder.getExpandedView();
+    expandedView
+        .getViewTreeObserver()
+        .addOnPreDrawListener(
+            new OnPreDrawListener() {
+              @Override
+              public boolean onPreDraw() {
+                expandedView.getViewTreeObserver().removeOnPreDrawListener(this);
+                expandedView.setTranslationX(
+                    onRight ? expandedView.getWidth() : -expandedView.getWidth());
+                expandedView
+                    .animate()
+                    .setInterpolator(new LinearOutSlowInInterpolator())
+                    .translationX(0);
+                return false;
+              }
+            });
+    setFocused(true);
+    expanded = true;
+  }
+
+  void onLeftRightSwitch(boolean onRight) {
+    viewHolder
+        .getRoot()
+        .setLayoutDirection(onRight ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR);
+    View primaryContainer = viewHolder.getRoot().findViewById(R.id.bubble_primary_container);
+    ViewGroup.LayoutParams layoutParams = primaryContainer.getLayoutParams();
+    ((FrameLayout.LayoutParams) layoutParams).gravity = onRight ? Gravity.RIGHT : Gravity.LEFT;
+    primaryContainer.setLayoutParams(layoutParams);
+
+    viewHolder
+        .getExpandedView()
+        .setBackgroundResource(
+            onRight
+                ? R.drawable.bubble_background_pill_rtl
+                : R.drawable.bubble_background_pill_ltr);
+  }
+
+  LayoutParams getWindowParams() {
+    return windowParams;
+  }
+
+  View getRootView() {
+    return viewHolder.getRoot();
+  }
+
+  private void update() {
+    RippleDrawable backgroundRipple =
+        (RippleDrawable)
+            context.getResources().getDrawable(R.drawable.bubble_ripple_circle, context.getTheme());
+    int primaryTint =
+        ColorUtils.compositeColors(
+            context.getColor(R.color.bubble_primary_background_darken),
+            currentInfo.getPrimaryColor());
+    backgroundRipple.getDrawable(0).setTint(primaryTint);
+    viewHolder.getPrimaryButton().setBackground(backgroundRipple);
+
+    setBackgroundDrawable(viewHolder.getFirstButton(), primaryTint);
+    setBackgroundDrawable(viewHolder.getSecondButton(), primaryTint);
+    setBackgroundDrawable(viewHolder.getThirdButton(), primaryTint);
+
+    int numButtons = currentInfo.getActions().size();
+    viewHolder.getThirdButton().setVisibility(numButtons < 3 ? View.GONE : View.VISIBLE);
+    viewHolder.getSecondButton().setVisibility(numButtons < 2 ? View.GONE : View.VISIBLE);
+
+    viewHolder.getPrimaryIcon().setImageIcon(currentInfo.getPrimaryIcon());
+
+    viewHolder
+        .getExpandedView()
+        .setBackgroundTintList(ColorStateList.valueOf(currentInfo.getPrimaryColor()));
+
+    updateButtonStates();
+  }
+
+  private void setBackgroundDrawable(CheckableImageButton view, @ColorInt int color) {
+    RippleDrawable itemRipple =
+        (RippleDrawable)
+            context
+                .getResources()
+                .getDrawable(R.drawable.bubble_ripple_checkable_circle, context.getTheme());
+    itemRipple.getDrawable(0).setTint(color);
+    view.setBackground(itemRipple);
+  }
+
+  private void updateButtonStates() {
+    int numButtons = currentInfo.getActions().size();
+
+    if (numButtons >= 1) {
+      configureButton(currentInfo.getActions().get(0), viewHolder.getFirstButton());
+      if (numButtons >= 2) {
+        configureButton(currentInfo.getActions().get(1), viewHolder.getSecondButton());
+        if (numButtons >= 3) {
+          configureButton(currentInfo.getActions().get(2), viewHolder.getThirdButton());
+        }
+      }
+    }
+  }
+
+  private void doShowText(@NonNull CharSequence text) {
+    TransitionManager.beginDelayedTransition((ViewGroup) viewHolder.getPrimaryButton().getParent());
+    viewHolder.getPrimaryText().setText(text);
+    viewHolder.getPrimaryButton().setDisplayedChild(ViewHolder.CHILD_INDEX_TEXT);
+  }
+
+  private void configureButton(Action action, CheckableImageButton button) {
+    action
+        .getIcon()
+        .loadDrawableAsync(
+            context,
+            d -> {
+              button.setImageIcon(action.getIcon());
+              button.setContentDescription(action.getName());
+              button.setChecked(action.isChecked());
+              button.setEnabled(action.isEnabled());
+            },
+            handler);
+    button.setOnClickListener(v -> doAction(action));
+  }
+
+  private void doAction(Action action) {
+    try {
+      action.getAction().send();
+    } catch (CanceledException e) {
+      throw new RuntimeException(e);
+    }
+  }
+
+  private void doResize(@Nullable Runnable operation) {
+    // If we're resizing on the right side of the screen, there is an implicit move operation
+    // necessary. The WindowManager does not sync the move and resize operations, so serious jank
+    // would occur. To fix this, instead of resizing the window, we create a new one and destroy
+    // the old one. There is a short delay before destroying the old view to ensure the new one has
+    // had time to draw.
+    boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT;
+    ViewHolder oldViewHolder = viewHolder;
+    if (onRight) {
+      viewHolder = new ViewHolder(oldViewHolder.getRoot().getContext());
+      update();
+      viewHolder
+          .getPrimaryButton()
+          .setDisplayedChild(oldViewHolder.getPrimaryButton().getDisplayedChild());
+      viewHolder.getPrimaryText().setText(oldViewHolder.getPrimaryText().getText());
+    }
+
+    if (operation != null) {
+      operation.run();
+    }
+
+    if (onRight) {
+      swapViewHolders(oldViewHolder);
+    }
+  }
+
+  private void swapViewHolders(ViewHolder oldViewHolder) {
+    ViewGroup root = viewHolder.getRoot();
+    windowManager.addView(root, windowParams);
+    root.getViewTreeObserver()
+        .addOnPreDrawListener(
+            new OnPreDrawListener() {
+              @Override
+              public boolean onPreDraw() {
+                root.getViewTreeObserver().removeOnPreDrawListener(this);
+                // Wait a bit before removing the old view; make sure the new one has drawn over it.
+                handler.postDelayed(
+                    () -> windowManager.removeView(oldViewHolder.getRoot()),
+                    WINDOW_REDRAW_DELAY_MILLIS);
+                return true;
+              }
+            });
+  }
+
+  private ViewPropertyAnimator startCollapse(@CollapseEnd int collapseEndAction) {
+    setFocused(false);
+    boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT;
+    View expandedView = viewHolder.getExpandedView();
+    return expandedView
+        .animate()
+        .translationX(onRight ? expandedView.getWidth() : -expandedView.getWidth())
+        .setInterpolator(new FastOutLinearInInterpolator())
+        .withEndAction(
+            () -> {
+              expanded = false;
+              if (collapseEndAction == CollapseEnd.HIDE) {
+                hide();
+              } else if (!textShowing) {
+                // Don't swap the window while the user is moving it, even if we're on the right.
+                // The movement will help hide the jank of the resize.
+                boolean swapWindow = onRight && !viewHolder.isMoving();
+                if (swapWindow) {
+                  // We don't actually need to set the drawer to GONE since in the new window it
+                  // will already be GONE. Just do the resize operation.
+                  doResize(null);
+                } else {
+                  expandedView.setVisibility(View.GONE);
+                }
+              }
+            });
+  }
+
+  private void setFocused(boolean focused) {
+    if (focused) {
+      windowParams.flags &= ~LayoutParams.FLAG_NOT_FOCUSABLE;
+    } else {
+      windowParams.flags |= LayoutParams.FLAG_NOT_FOCUSABLE;
+    }
+    windowManager.updateViewLayout(getRootView(), windowParams);
+  }
+
+  private class ViewHolder {
+
+    public static final int CHILD_INDEX_ICON = 0;
+    public static final int CHILD_INDEX_TEXT = 1;
+
+    private final MoveHandler moveHandler;
+    private final WindowRoot root;
+    private final ViewAnimator primaryButton;
+    private final ImageView primaryIcon;
+    private final TextView primaryText;
+
+    private final CheckableImageButton firstButton;
+    private final CheckableImageButton secondButton;
+    private final CheckableImageButton thirdButton;
+    private final View expandedView;
+
+    public ViewHolder(Context context) {
+      // Window root is not in the layout file so that the inflater has a view to inflate into
+      this.root = new WindowRoot(context);
+      LayoutInflater inflater = LayoutInflater.from(root.getContext());
+      View contentView = inflater.inflate(R.layout.bubble_base, root, true);
+      expandedView = contentView.findViewById(R.id.bubble_expanded_layout);
+      primaryButton = contentView.findViewById(R.id.bubble_button_primary);
+      primaryIcon = contentView.findViewById(R.id.bubble_icon_primary);
+      primaryText = contentView.findViewById(R.id.bubble_text);
+
+      firstButton = contentView.findViewById(R.id.bubble_icon_first);
+      secondButton = contentView.findViewById(R.id.bubble_icon_second);
+      thirdButton = contentView.findViewById(R.id.bubble_icon_third);
+
+      root.setOnBackPressedListener(
+          () -> {
+            if (isShowing && expanded) {
+              startCollapse(CollapseEnd.NOTHING);
+              return true;
+            }
+            return false;
+          });
+      root.setOnTouchListener(
+          (v, event) -> {
+            if (expanded && event.getActionMasked() == MotionEvent.ACTION_OUTSIDE) {
+              startCollapse(CollapseEnd.NOTHING);
+              return true;
+            }
+            return false;
+          });
+      moveHandler = new MoveHandler(primaryButton, Bubble.this);
+    }
+
+    public ViewGroup getRoot() {
+      return root;
+    }
+
+    public ViewAnimator getPrimaryButton() {
+      return primaryButton;
+    }
+
+    public ImageView getPrimaryIcon() {
+      return primaryIcon;
+    }
+
+    public TextView getPrimaryText() {
+      return primaryText;
+    }
+
+    public CheckableImageButton getFirstButton() {
+      return firstButton;
+    }
+
+    public CheckableImageButton getSecondButton() {
+      return secondButton;
+    }
+
+    public CheckableImageButton getThirdButton() {
+      return thirdButton;
+    }
+
+    public View getExpandedView() {
+      return expandedView;
+    }
+
+    public boolean isMoving() {
+      return moveHandler.isMoving();
+    }
+  }
+}
diff --git a/java/com/android/dialershared/bubble/BubbleInfo.java b/java/com/android/dialershared/bubble/BubbleInfo.java
new file mode 100644
index 0000000..52417ae
--- /dev/null
+++ b/java/com/android/dialershared/bubble/BubbleInfo.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialershared.bubble;
+
+import android.app.PendingIntent;
+import android.graphics.drawable.Icon;
+import android.support.annotation.ColorInt;
+import android.support.annotation.NonNull;
+import com.google.auto.value.AutoValue;
+import java.util.Collections;
+import java.util.List;
+
+/** Info for displaying a {@link Bubble} */
+@AutoValue
+public abstract class BubbleInfo {
+  @ColorInt
+  public abstract int getPrimaryColor();
+
+  @NonNull
+  public abstract Icon getPrimaryIcon();
+
+  @NonNull
+  public abstract PendingIntent getPrimaryAction();
+
+  @NonNull
+  public abstract List<Action> getActions();
+
+  public static Builder builder() {
+    return new AutoValue_BubbleInfo.Builder().setActions(Collections.emptyList());
+  }
+
+  public static Builder from(@NonNull BubbleInfo bubbleInfo) {
+    return builder()
+        .setPrimaryAction(bubbleInfo.getPrimaryAction())
+        .setPrimaryColor(bubbleInfo.getPrimaryColor())
+        .setPrimaryIcon(bubbleInfo.getPrimaryIcon())
+        .setActions(bubbleInfo.getActions());
+  }
+
+  /** Builder for {@link BubbleInfo} */
+  @AutoValue.Builder
+  public abstract static class Builder {
+
+    public abstract Builder setPrimaryColor(@ColorInt int primaryColor);
+
+    public abstract Builder setPrimaryIcon(@NonNull Icon primaryIcon);
+
+    public abstract Builder setPrimaryAction(@NonNull PendingIntent primaryAction);
+
+    public abstract Builder setActions(List<Action> actions);
+
+    public abstract BubbleInfo build();
+  }
+
+  /** Represents actions to be shown in the bubble when expanded */
+  @AutoValue
+  public abstract static class Action {
+
+    @NonNull
+    public abstract Icon getIcon();
+
+    @NonNull
+    public abstract CharSequence getName();
+
+    @NonNull
+    public abstract PendingIntent getAction();
+
+    public abstract boolean isEnabled();
+
+    public abstract boolean isChecked();
+
+    public static Builder builder() {
+      return new AutoValue_BubbleInfo_Action.Builder().setEnabled(true).setChecked(false);
+    }
+
+    public static Builder from(@NonNull Action action) {
+      return builder()
+          .setAction(action.getAction())
+          .setChecked(action.isChecked())
+          .setEnabled(action.isEnabled())
+          .setName(action.getName())
+          .setIcon(action.getIcon());
+    }
+
+    /** Builder for {@link Action} */
+    @AutoValue.Builder
+    public abstract static class Builder {
+
+      public abstract Builder setIcon(@NonNull Icon icon);
+
+      public abstract Builder setName(@NonNull CharSequence name);
+
+      public abstract Builder setAction(@NonNull PendingIntent action);
+
+      public abstract Builder setEnabled(boolean enabled);
+
+      public abstract Builder setChecked(boolean checked);
+
+      public abstract Action build();
+    }
+  }
+}
diff --git a/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java b/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java
new file mode 100644
index 0000000..4da6a35
--- /dev/null
+++ b/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialershared.bubble;
+
+import android.animation.Animator;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.graphics.Path;
+import android.graphics.PointF;
+import android.graphics.Rect;
+import android.transition.Transition;
+import android.transition.TransitionValues;
+import android.util.Property;
+import android.view.View;
+import android.view.ViewGroup;
+
+/** Similar to {@link android.transition.ChangeBounds ChangeBounds} but works across windows */
+public class ChangeOnScreenBounds extends Transition {
+
+  private static final String PROPNAME_BOUNDS = "bubble:changeScreenBounds:bounds";
+  private static final String PROPNAME_SCREEN_X = "bubble:changeScreenBounds:screenX";
+  private static final String PROPNAME_SCREEN_Y = "bubble:changeScreenBounds:screenY";
+
+  private static final Property<ViewBounds, PointF> TOP_LEFT_PROPERTY =
+      new Property<ViewBounds, PointF>(PointF.class, "topLeft") {
+        @Override
+        public void set(ViewBounds viewBounds, PointF topLeft) {
+          viewBounds.setTopLeft(topLeft);
+        }
+
+        @Override
+        public PointF get(ViewBounds viewBounds) {
+          return null;
+        }
+      };
+
+  private static final Property<ViewBounds, PointF> BOTTOM_RIGHT_PROPERTY =
+      new Property<ViewBounds, PointF>(PointF.class, "bottomRight") {
+        @Override
+        public void set(ViewBounds viewBounds, PointF bottomRight) {
+          viewBounds.setBottomRight(bottomRight);
+        }
+
+        @Override
+        public PointF get(ViewBounds viewBounds) {
+          return null;
+        }
+      };
+  private final int[] tempLocation = new int[2];
+
+  @Override
+  public void captureStartValues(TransitionValues transitionValues) {
+    captureValues(transitionValues);
+  }
+
+  @Override
+  public void captureEndValues(TransitionValues transitionValues) {
+    captureValues(transitionValues);
+  }
+
+  private void captureValues(TransitionValues values) {
+    View view = values.view;
+
+    if (view.isLaidOut() || view.getWidth() != 0 || view.getHeight() != 0) {
+      values.values.put(
+          PROPNAME_BOUNDS,
+          new Rect(view.getLeft(), view.getTop(), view.getRight(), view.getBottom()));
+      values.view.getLocationOnScreen(tempLocation);
+      values.values.put(PROPNAME_SCREEN_X, tempLocation[0]);
+      values.values.put(PROPNAME_SCREEN_Y, tempLocation[1]);
+    }
+  }
+
+  @Override
+  public Animator createAnimator(
+      ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues) {
+    Rect startBounds = (Rect) startValues.values.get(PROPNAME_BOUNDS);
+
+    // Offset the startBounds by the difference in screen position
+    int startScreenX = (Integer) startValues.values.get(PROPNAME_SCREEN_X);
+    int startScreenY = (Integer) startValues.values.get(PROPNAME_SCREEN_Y);
+    int endScreenX = (Integer) endValues.values.get(PROPNAME_SCREEN_X);
+    int endScreenY = (Integer) endValues.values.get(PROPNAME_SCREEN_Y);
+    startBounds.offset(startScreenX - endScreenX, startScreenY - endScreenY);
+
+    Rect endBounds = (Rect) endValues.values.get(PROPNAME_BOUNDS);
+    final int startLeft = startBounds.left;
+    final int endLeft = endBounds.left;
+    final int startTop = startBounds.top;
+    final int endTop = endBounds.top;
+    final int startRight = startBounds.right;
+    final int endRight = endBounds.right;
+    final int startBottom = startBounds.bottom;
+    final int endBottom = endBounds.bottom;
+    ViewBounds viewBounds = new ViewBounds(endValues.view);
+    viewBounds.setTopLeft(new PointF(startLeft, startTop));
+    viewBounds.setBottomRight(new PointF(startRight, startBottom));
+
+    // Animate the top left and bottom right corners along a path
+    Path topLeftPath = getPathMotion().getPath(startLeft, startTop, endLeft, endTop);
+    ObjectAnimator topLeftAnimator =
+        ObjectAnimator.ofObject(viewBounds, TOP_LEFT_PROPERTY, null, topLeftPath);
+
+    Path bottomRightPath = getPathMotion().getPath(startRight, startBottom, endRight, endBottom);
+    ObjectAnimator bottomRightAnimator =
+        ObjectAnimator.ofObject(viewBounds, BOTTOM_RIGHT_PROPERTY, null, bottomRightPath);
+    AnimatorSet set = new AnimatorSet();
+    set.playTogether(topLeftAnimator, bottomRightAnimator);
+    return set;
+  }
+
+  private static class ViewBounds {
+    private int left;
+    private int top;
+    private int right;
+    private int bottom;
+    private final View view;
+    private int topLeftCalls;
+    private int bottomRightCalls;
+
+    public ViewBounds(View view) {
+      this.view = view;
+    }
+
+    public void setTopLeft(PointF topLeft) {
+      left = Math.round(topLeft.x);
+      top = Math.round(topLeft.y);
+      topLeftCalls++;
+      if (topLeftCalls == bottomRightCalls) {
+        updateLeftTopRightBottom();
+      }
+    }
+
+    public void setBottomRight(PointF bottomRight) {
+      right = Math.round(bottomRight.x);
+      bottom = Math.round(bottomRight.y);
+      bottomRightCalls++;
+      if (topLeftCalls == bottomRightCalls) {
+        updateLeftTopRightBottom();
+      }
+    }
+
+    private void updateLeftTopRightBottom() {
+      view.setLeft(left);
+      view.setTop(top);
+      view.setRight(right);
+      view.setBottom(bottom);
+      topLeftCalls = 0;
+      bottomRightCalls = 0;
+    }
+  }
+}
diff --git a/java/com/android/dialershared/bubble/CheckableImageButton.java b/java/com/android/dialershared/bubble/CheckableImageButton.java
new file mode 100644
index 0000000..7a5a432
--- /dev/null
+++ b/java/com/android/dialershared/bubble/CheckableImageButton.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialershared.bubble;
+
+import android.content.Context;
+import android.support.v4.view.AccessibilityDelegateCompat;
+import android.support.v4.view.ViewCompat;
+import android.support.v4.view.accessibility.AccessibilityEventCompat;
+import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
+import android.support.v7.widget.AppCompatImageButton;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.accessibility.AccessibilityEvent;
+import android.widget.Checkable;
+
+/**
+ * An {@link android.widget.ImageButton ImageButton} that implements {@link Checkable} and
+ * propagates the checkable state
+ */
+public class CheckableImageButton extends AppCompatImageButton implements Checkable {
+
+  // Copied without modification from AppCompat library
+
+  private static final int[] DRAWABLE_STATE_CHECKED = new int[] {android.R.attr.state_checked};
+
+  private boolean mChecked;
+
+  public CheckableImageButton(Context context) {
+    this(context, null);
+  }
+
+  public CheckableImageButton(Context context, AttributeSet attrs) {
+    this(context, attrs, android.R.attr.imageButtonStyle);
+  }
+
+  public CheckableImageButton(Context context, AttributeSet attrs, int defStyleAttr) {
+    super(context, attrs, defStyleAttr);
+
+    ViewCompat.setAccessibilityDelegate(
+        this,
+        new AccessibilityDelegateCompat() {
+          @Override
+          public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
+            super.onInitializeAccessibilityEvent(host, event);
+            event.setChecked(isChecked());
+          }
+
+          @Override
+          public void onInitializeAccessibilityNodeInfo(
+              View host, AccessibilityNodeInfoCompat info) {
+            super.onInitializeAccessibilityNodeInfo(host, info);
+            info.setCheckable(true);
+            info.setChecked(isChecked());
+          }
+        });
+  }
+
+  @Override
+  public void setChecked(boolean checked) {
+    if (mChecked != checked) {
+      mChecked = checked;
+      refreshDrawableState();
+      sendAccessibilityEvent(AccessibilityEventCompat.TYPE_WINDOW_CONTENT_CHANGED);
+    }
+  }
+
+  @Override
+  public boolean isChecked() {
+    return mChecked;
+  }
+
+  @Override
+  public void toggle() {
+    setChecked(!mChecked);
+  }
+
+  @Override
+  public int[] onCreateDrawableState(int extraSpace) {
+    if (mChecked) {
+      return mergeDrawableStates(
+          super.onCreateDrawableState(extraSpace + DRAWABLE_STATE_CHECKED.length),
+          DRAWABLE_STATE_CHECKED);
+    } else {
+      return super.onCreateDrawableState(extraSpace);
+    }
+  }
+}
diff --git a/java/com/android/dialershared/bubble/MoveHandler.java b/java/com/android/dialershared/bubble/MoveHandler.java
new file mode 100644
index 0000000..8a21cd7
--- /dev/null
+++ b/java/com/android/dialershared/bubble/MoveHandler.java
@@ -0,0 +1,250 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialershared.bubble;
+
+import android.content.Context;
+import android.graphics.Point;
+import android.support.animation.FloatPropertyCompat;
+import android.support.animation.SpringAnimation;
+import android.support.animation.SpringForce;
+import android.support.annotation.NonNull;
+import android.support.v4.math.MathUtils;
+import android.view.Gravity;
+import android.view.MotionEvent;
+import android.view.VelocityTracker;
+import android.view.View;
+import android.view.View.OnTouchListener;
+import android.view.ViewConfiguration;
+import android.view.WindowManager;
+import android.view.WindowManager.LayoutParams;
+import android.widget.Scroller;
+
+/** Handles touches and manages moving the bubble in response */
+class MoveHandler implements OnTouchListener {
+
+  // Amount the ViewConfiguration's minFlingVelocity will be scaled by for our own minVelocity
+  private static final int MIN_FLING_VELOCITY_FACTOR = 8;
+  // The friction multiplier to control how slippery the bubble is when flung
+  private static final float SCROLL_FRICTION_MULTIPLIER = 8f;
+
+  private final Context context;
+  private final WindowManager windowManager;
+  private final Bubble bubble;
+  private final int minX;
+  private final int minY;
+  private final int maxX;
+  private final int maxY;
+  private final int bubbleSize;
+  private final int shadowPaddingSize;
+  private final float touchSlopSquared;
+
+  private boolean isMoving;
+  private float firstX;
+  private float firstY;
+
+  private SpringAnimation moveXAnimation;
+  private SpringAnimation moveYAnimation;
+  private VelocityTracker velocityTracker;
+  private Scroller scroller;
+
+  // Handles the left/right gravity conversion and centering
+  private final FloatPropertyCompat<WindowManager.LayoutParams> xProperty =
+      new FloatPropertyCompat<LayoutParams>("xProperty") {
+        @Override
+        public float getValue(LayoutParams windowParams) {
+          int realX = windowParams.x;
+          realX = realX + bubbleSize / 2;
+          realX = realX + shadowPaddingSize;
+          if (relativeToRight(windowParams)) {
+            int displayWidth = context.getResources().getDisplayMetrics().widthPixels;
+            realX = displayWidth - realX;
+          }
+          return MathUtils.clamp(realX, minX, maxX);
+        }
+
+        @Override
+        public void setValue(LayoutParams windowParams, float value) {
+          int displayWidth = context.getResources().getDisplayMetrics().widthPixels;
+          boolean onRight = value > displayWidth / 2;
+          int centeringOffset = bubbleSize / 2 + shadowPaddingSize;
+          windowParams.x =
+              (int) (onRight ? (displayWidth - value - centeringOffset) : value - centeringOffset);
+          windowParams.gravity = Gravity.TOP | (onRight ? Gravity.RIGHT : Gravity.LEFT);
+          if (bubble.isShowing()) {
+            windowManager.updateViewLayout(bubble.getRootView(), windowParams);
+          }
+        }
+      };
+
+  private final FloatPropertyCompat<WindowManager.LayoutParams> yProperty =
+      new FloatPropertyCompat<LayoutParams>("yProperty") {
+        @Override
+        public float getValue(LayoutParams object) {
+          return MathUtils.clamp(object.y + bubbleSize + shadowPaddingSize, minY, maxY);
+        }
+
+        @Override
+        public void setValue(LayoutParams object, float value) {
+          object.y = (int) value - bubbleSize - shadowPaddingSize;
+          if (bubble.isShowing()) {
+            windowManager.updateViewLayout(bubble.getRootView(), object);
+          }
+        }
+      };
+
+  public MoveHandler(@NonNull View targetView, @NonNull Bubble bubble) {
+    this.bubble = bubble;
+    context = targetView.getContext();
+    windowManager = context.getSystemService(WindowManager.class);
+
+    bubbleSize = context.getResources().getDimensionPixelSize(R.dimen.bubble_size);
+    shadowPaddingSize =
+        context.getResources().getDimensionPixelOffset(R.dimen.bubble_shadow_padding_size);
+    minX =
+        context.getResources().getDimensionPixelOffset(R.dimen.bubble_safe_margin_x)
+            + bubbleSize / 2;
+    minY =
+        context.getResources().getDimensionPixelOffset(R.dimen.bubble_safe_margin_y)
+            + bubbleSize / 2;
+    maxX = context.getResources().getDisplayMetrics().widthPixels - minX;
+    maxY = context.getResources().getDisplayMetrics().heightPixels - minY;
+
+    // Squared because it will be compared against the square of the touch delta. This is more
+    // efficient than needing to take a square root.
+    touchSlopSquared = (float) Math.pow(ViewConfiguration.get(context).getScaledTouchSlop(), 2);
+
+    targetView.setOnTouchListener(this);
+  }
+
+  public boolean isMoving() {
+    return isMoving;
+  }
+
+  @Override
+  public boolean onTouch(View v, MotionEvent event) {
+    float eventX = event.getRawX();
+    float eventY = event.getRawY();
+    switch (event.getActionMasked()) {
+      case MotionEvent.ACTION_DOWN:
+        firstX = eventX;
+        firstY = eventY;
+        velocityTracker = VelocityTracker.obtain();
+        break;
+      case MotionEvent.ACTION_MOVE:
+        if (isMoving || hasExceededTouchSlop(event)) {
+          if (!isMoving) {
+            isMoving = true;
+            bubble.onMoveStart();
+          }
+
+          if (moveXAnimation == null) {
+            moveXAnimation = new SpringAnimation(bubble.getWindowParams(), xProperty);
+            moveXAnimation.setSpring(new SpringForce());
+            moveXAnimation.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY);
+          }
+          if (moveYAnimation == null) {
+            moveYAnimation = new SpringAnimation(bubble.getWindowParams(), yProperty);
+            moveYAnimation.setSpring(new SpringForce());
+            moveYAnimation.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY);
+          }
+
+          moveXAnimation.animateToFinalPosition(MathUtils.clamp(eventX, minX, maxX));
+          moveYAnimation.animateToFinalPosition(MathUtils.clamp(eventY, minY, maxY));
+        }
+
+        velocityTracker.addMovement(event);
+        break;
+      case MotionEvent.ACTION_UP:
+        if (isMoving) {
+          ViewConfiguration viewConfiguration = ViewConfiguration.get(context);
+          velocityTracker.computeCurrentVelocity(
+              1000, viewConfiguration.getScaledMaximumFlingVelocity());
+          float xVelocity = velocityTracker.getXVelocity();
+          float yVelocity = velocityTracker.getYVelocity();
+          boolean isFling = isFling(xVelocity, yVelocity);
+
+          if (isFling) {
+            Point target =
+                findTarget(
+                    xVelocity,
+                    yVelocity,
+                    (int) xProperty.getValue(bubble.getWindowParams()),
+                    (int) yProperty.getValue(bubble.getWindowParams()));
+
+            moveXAnimation.animateToFinalPosition(target.x);
+            moveYAnimation.animateToFinalPosition(target.y);
+          } else {
+            snapX();
+          }
+
+          bubble.onMoveFinish();
+        } else {
+          v.performClick();
+          bubble.primaryButtonClick();
+        }
+        isMoving = false;
+        break;
+    }
+    return true;
+  }
+
+  private Point findTarget(float xVelocity, float yVelocity, int startX, int startY) {
+    if (scroller == null) {
+      scroller = new Scroller(context);
+      scroller.setFriction(ViewConfiguration.getScrollFriction() * SCROLL_FRICTION_MULTIPLIER);
+    }
+
+    // Find where a fling would end vertically
+    scroller.fling(startX, startY, (int) xVelocity, (int) yVelocity, minX, maxX, minY, maxY);
+    int targetY = scroller.getFinalY();
+    scroller.abortAnimation();
+
+    // If the x component of the velocity is above the minimum fling velocity, use velocity to
+    // determine edge. Otherwise use its starting position
+    boolean pullRight = isFling(xVelocity, 0) ? xVelocity > 0 : isOnRightHalf(startX);
+    return new Point(pullRight ? maxX : minX, targetY);
+  }
+
+  private boolean isFling(float xVelocity, float yVelocity) {
+    int minFlingVelocity =
+        ViewConfiguration.get(context).getScaledMinimumFlingVelocity() * MIN_FLING_VELOCITY_FACTOR;
+    return getMagnitudeSquared(xVelocity, yVelocity) > minFlingVelocity * minFlingVelocity;
+  }
+
+  private boolean isOnRightHalf(float currentX) {
+    return currentX > (minX + maxX) / 2;
+  }
+
+  private void snapX() {
+    // Check if x value is closer to min or max
+    boolean pullRight = isOnRightHalf(xProperty.getValue(bubble.getWindowParams()));
+    moveXAnimation.animateToFinalPosition(pullRight ? maxX : minX);
+  }
+
+  private boolean relativeToRight(LayoutParams windowParams) {
+    return (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT;
+  }
+
+  private boolean hasExceededTouchSlop(MotionEvent event) {
+    return getMagnitudeSquared(event.getRawX() - firstX, event.getRawY() - firstY)
+        > touchSlopSquared;
+  }
+
+  private float getMagnitudeSquared(float deltaX, float deltaY) {
+    return deltaX * deltaX + deltaY * deltaY;
+  }
+}
diff --git a/java/com/android/dialershared/bubble/WindowRoot.java b/java/com/android/dialershared/bubble/WindowRoot.java
new file mode 100644
index 0000000..2c17666
--- /dev/null
+++ b/java/com/android/dialershared/bubble/WindowRoot.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialershared.bubble;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.view.KeyEvent;
+import android.widget.FrameLayout;
+
+/**
+ * ViewGroup that handles some overlay window concerns. Allows back button events to be listened for
+ * via an interface.
+ */
+public class WindowRoot extends FrameLayout {
+
+  private OnBackPressedListener backPressedListener;
+
+  /** Callback for when the back button is pressed while this window is in focus */
+  public interface OnBackPressedListener {
+    boolean onBackPressed();
+  }
+
+  public WindowRoot(@NonNull Context context) {
+    super(context);
+  }
+
+  public void setOnBackPressedListener(OnBackPressedListener listener) {
+    backPressedListener = listener;
+  }
+
+  @Override
+  public boolean dispatchKeyEvent(KeyEvent event) {
+    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && backPressedListener != null) {
+      if (event.getAction() == KeyEvent.ACTION_UP) {
+        return backPressedListener.onBackPressed();
+      }
+      return true;
+    }
+    return super.dispatchKeyEvent(event);
+  }
+}
diff --git a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml b/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml
similarity index 69%
rename from java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
rename to java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml
index ecf704e..f9416ab 100644
--- a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
+++ b/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2017 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -14,7 +14,8 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:autoMirrored="true"
-    android:src="@drawable/quantum_ic_arrow_back_white_24"
-    android:tint="@color/actionbar_icon_color"/>
\ No newline at end of file
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+  <item android:color="@android:color/white" android:state_checked="true"/>
+  <item android:color="@android:color/transparent"/>
+</selector>
diff --git a/java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml b/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
similarity index 70%
rename from java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml
rename to java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
index c2538cf..33ca1fd 100644
--- a/java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml
+++ b/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2017 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -14,7 +14,8 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-  android:autoMirrored="true"
-  android:src="@drawable/quantum_ic_person_add_white_24"
-  android:tint="@color/actionbar_icon_color"/>
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+  <item android:color="#80FFFFFF" android:state_enabled="false"/>
+  <item android:color="@android:color/white"/>
+</selector>
diff --git a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml
similarity index 67%
copy from java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
copy to java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml
index ecf704e..77c813a 100644
--- a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
+++ b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2017 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -14,7 +14,10 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:autoMirrored="true"
-    android:src="@drawable/quantum_ic_arrow_back_white_24"
-    android:tint="@color/actionbar_icon_color"/>
\ No newline at end of file
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+  <corners
+      android:bottomRightRadius="@dimen/bubble_size"
+      android:topRightRadius="@dimen/bubble_size"/>
+  <solid android:color="@android:color/white"/>
+</shape>
diff --git a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml
similarity index 67%
copy from java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
copy to java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml
index ecf704e..9e25421 100644
--- a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
+++ b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2017 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -14,7 +14,10 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:autoMirrored="true"
-    android:src="@drawable/quantum_ic_arrow_back_white_24"
-    android:tint="@color/actionbar_icon_color"/>
\ No newline at end of file
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+  <corners
+      android:bottomLeftRadius="@dimen/bubble_size"
+      android:topLeftRadius="@dimen/bubble_size"/>
+  <solid android:color="@android:color/white"/>
+</shape>
diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml
new file mode 100644
index 0000000..85e0b24
--- /dev/null
+++ b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="?android:colorControlHighlight">
+  <item>
+    <shape android:shape="oval">
+      <solid android:color="@color/bubble_checkable_mask"/>
+    </shape>
+  </item>
+  <item android:id="@android:id/mask">
+    <shape android:shape="oval">
+      <solid android:color="@android:color/white"/>
+    </shape>
+  </item>
+</ripple>
diff --git a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml
similarity index 64%
copy from java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
copy to java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml
index ecf704e..8d5cf0b 100644
--- a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
+++ b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2017 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -14,7 +14,13 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:autoMirrored="true"
-    android:src="@drawable/quantum_ic_arrow_back_white_24"
-    android:tint="@color/actionbar_icon_color"/>
\ No newline at end of file
+
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="?android:colorControlHighlight">
+  <item>
+    <shape>
+      <corners android:radius="@dimen/bubble_size"/>
+      <solid android:color="@android:color/white"/>
+    </shape>
+  </item>
+</ripple>
diff --git a/java/com/android/dialershared/bubble/res/layout/bubble_base.xml b/java/com/android/dialershared/bubble/res/layout/bubble_base.xml
new file mode 100644
index 0000000..3acd2af
--- /dev/null
+++ b/java/com/android/dialershared/bubble/res/layout/bubble_base.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    tools:theme="@style/Theme.AppCompat">
+  <FrameLayout
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginStart="48dp"
+      android:paddingTop="@dimen/bubble_shadow_padding_size"
+      android:paddingBottom="@dimen/bubble_shadow_padding_size"
+      android:paddingEnd="@dimen/bubble_shadow_padding_size"
+      android:background="@android:color/transparent">
+
+    <LinearLayout
+        android:id="@+id/bubble_expanded_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingStart="32dp"
+        android:paddingEnd="12dp"
+        android:background="@drawable/bubble_background_pill_ltr"
+        android:elevation="2dp"
+        android:layoutDirection="inherit"
+        android:orientation="horizontal"
+        android:visibility="gone"
+        tools:backgroundTint="#FF0000FF"
+        tools:visibility="visible">
+      <com.android.dialershared.bubble.CheckableImageButton
+          android:id="@+id/bubble_icon_first"
+          android:layout_width="@dimen/bubble_size"
+          android:layout_height="@dimen/bubble_size"
+          android:layout_marginStart="4dp"
+          android:padding="@dimen/bubble_icon_padding"
+          android:tint="@color/bubble_icon_tint_states"
+          android:tintMode="src_in"
+          tools:background="@drawable/bubble_ripple_checkable_circle"
+          tools:src="@android:drawable/ic_lock_idle_lock"/>
+      <com.android.dialershared.bubble.CheckableImageButton
+          android:id="@+id/bubble_icon_second"
+          android:layout_width="@dimen/bubble_size"
+          android:layout_height="@dimen/bubble_size"
+          android:layout_marginStart="4dp"
+          android:padding="@dimen/bubble_icon_padding"
+          android:tint="@color/bubble_icon_tint_states"
+          android:tintMode="src_in"
+          tools:background="@drawable/bubble_ripple_checkable_circle"
+          tools:src="@android:drawable/ic_input_add"/>
+      <com.android.dialershared.bubble.CheckableImageButton
+          android:id="@+id/bubble_icon_third"
+          android:layout_width="@dimen/bubble_size"
+          android:layout_height="@dimen/bubble_size"
+          android:layout_marginStart="4dp"
+          android:padding="@dimen/bubble_icon_padding"
+          android:tint="@color/bubble_icon_tint_states"
+          android:tintMode="src_in"
+          tools:background="@drawable/bubble_ripple_checkable_circle"
+          tools:src="@android:drawable/ic_menu_call"/>
+    </LinearLayout>
+  </FrameLayout>
+  <FrameLayout
+      android:id="@+id/bubble_primary_container"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_gravity="start"
+      android:animateLayoutChanges="true"
+      android:background="@android:color/transparent"
+      android:clipChildren="false"
+      android:clipToPadding="false">
+    <ViewAnimator
+        android:id="@+id/bubble_button_primary"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_margin="@dimen/bubble_shadow_padding_size"
+        android:background="@drawable/bubble_ripple_circle"
+        android:elevation="6dp"
+        android:measureAllChildren="false"
+        tools:backgroundTint="#FF0000AA">
+      <ImageView
+          android:id="@+id/bubble_icon_primary"
+          android:layout_width="@dimen/bubble_size"
+          android:layout_height="@dimen/bubble_size"
+          android:padding="@dimen/bubble_icon_padding"
+          android:tint="@android:color/white"
+          android:tintMode="src_in"
+          tools:src="@android:drawable/ic_btn_speak_now"/>
+      <TextView
+          android:id="@+id/bubble_text"
+          android:layout_width="wrap_content"
+          android:layout_height="@dimen/bubble_size"
+          android:paddingStart="@dimen/bubble_icon_padding"
+          android:paddingEnd="@dimen/bubble_icon_padding"
+          android:gravity="center"
+          android:minWidth="@dimen/bubble_size"
+          android:textAppearance="@style/TextAppearance.AppCompat"
+          tools:text="Call ended"/>
+    </ViewAnimator>
+  </FrameLayout>
+
+</FrameLayout>
diff --git a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml b/java/com/android/dialershared/bubble/res/values/colors.xml
similarity index 75%
copy from java/com/android/incallui/res/drawable/img_conference_automirrored.xml
copy to java/com/android/dialershared/bubble/res/values/colors.xml
index 78b2876..97545fa 100644
--- a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml
+++ b/java/com/android/dialershared/bubble/res/values/colors.xml
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2017 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -16,6 +15,6 @@
   ~ limitations under the License
   -->
 
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-  android:autoMirrored="true"
-  android:src="@drawable/img_conference"/>
\ No newline at end of file
+<resources>
+  <color name="bubble_primary_background_darken">#33000000</color>
+</resources>
diff --git a/java/com/android/dialershared/bubble/res/values/values.xml b/java/com/android/dialershared/bubble/res/values/values.xml
new file mode 100644
index 0000000..5b85e0d
--- /dev/null
+++ b/java/com/android/dialershared/bubble/res/values/values.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<resources>
+  <dimen name="bubble_safe_margin_x">0dp</dimen>
+  <dimen name="bubble_safe_margin_y">0dp</dimen>
+  <dimen name="bubble_initial_offset_x">0dp</dimen>
+  <dimen name="bubble_initial_offset_y">120dp</dimen>
+  <dimen name="bubble_size">64dp</dimen>
+  <dimen name="bubble_icon_padding">20dp</dimen>
+  <dimen name="bubble_move_elevation_change">4dp</dimen>
+  <dimen name="bubble_shadow_padding_size">16dp</dimen>
+</resources>
diff --git a/java/com/android/incallui/AndroidManifest.xml b/java/com/android/incallui/AndroidManifest.xml
index 8539bd0..703e5b5 100644
--- a/java/com/android/incallui/AndroidManifest.xml
+++ b/java/com/android/incallui/AndroidManifest.xml
@@ -15,11 +15,11 @@
   -->
 
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-  package="com.android.incallui">
+    package="com.android.incallui">
 
   <uses-sdk
-    android:minSdkVersion="23"
-    android:targetSdkVersion="26"/>
+      android:minSdkVersion="23"
+      android:targetSdkVersion="26"/>
 
   <uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
   <!-- We use this to disable the status bar buttons of home, back and recent
@@ -31,8 +31,8 @@
   <!-- Warning: setting the required boolean to true would prevent installation of Dialer on
        devices which do not support a camera. -->
   <uses-feature
-    android:name="android.hardware.camera.any"
-    android:required="false"/>
+      android:name="android.hardware.camera.any"
+      android:required="false"/>
 
   <!-- Testing location -->
   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
@@ -43,47 +43,49 @@
        Set taskAffinity for application is not working because it will be merged and the result is
   that all activities here still have same taskAffinity as activities under dialer. -->
   <application>
-    <meta-data android:name="android.telephony.hide_voicemail_settings_menu"
-      android:value="true"/>
+    <meta-data
+        android:name="android.telephony.hide_voicemail_settings_menu"
+        android:value="true"/>
+
     <activity
-      android:directBootAware="true"
-      android:excludeFromRecents="true"
-      android:exported="false"
-      android:label="@string/phoneAppLabel"
-      android:taskAffinity="com.android.incallui"
-      android:launchMode="singleInstance"
-      android:name="com.android.incallui.InCallActivity"
-      android:resizeableActivity="true"
-      android:screenOrientation="nosensor"
-      android:theme="@style/Theme.InCallScreen">
+        android:directBootAware="true"
+        android:excludeFromRecents="true"
+        android:exported="false"
+        android:label="@string/phoneAppLabel"
+        android:launchMode="singleInstance"
+        android:name="com.android.incallui.InCallActivity"
+        android:resizeableActivity="true"
+        android:screenOrientation="nosensor"
+        android:taskAffinity="com.android.incallui"
+        android:theme="@style/Theme.InCallScreen">
     </activity>
 
     <activity
-      android:directBootAware="true"
-      android:excludeFromRecents="true"
-      android:noHistory="true"
-      android:exported="false"
-      android:label="@string/manageConferenceLabel"
-      android:taskAffinity="com.android.incallui"
-      android:launchMode="singleTask"
-      android:name="com.android.incallui.ManageConferenceActivity"
-      android:resizeableActivity="true"
-      android:theme="@style/Theme.InCallScreen.ManageConference"/>
+        android:directBootAware="true"
+        android:excludeFromRecents="true"
+        android:exported="false"
+        android:label="@string/manageConferenceLabel"
+        android:launchMode="singleTask"
+        android:name="com.android.incallui.ManageConferenceActivity"
+        android:noHistory="true"
+        android:resizeableActivity="true"
+        android:taskAffinity="com.android.incallui"
+        android:theme="@style/Theme.InCallScreen.ManageConference"/>
 
     <service
-      android:directBootAware="true"
-      android:exported="true"
-      android:name="com.android.incallui.InCallServiceImpl"
-      android:permission="android.permission.BIND_INCALL_SERVICE">
+        android:directBootAware="true"
+        android:exported="true"
+        android:name="com.android.incallui.InCallServiceImpl"
+        android:permission="android.permission.BIND_INCALL_SERVICE">
       <meta-data
-        android:name="android.telecom.IN_CALL_SERVICE_UI"
-        android:value="true"/>
+          android:name="android.telecom.IN_CALL_SERVICE_UI"
+          android:value="true"/>
       <meta-data
-        android:name="android.telecom.IN_CALL_SERVICE_RINGING"
-        android:value="false"/>
+          android:name="android.telecom.IN_CALL_SERVICE_RINGING"
+          android:value="false"/>
       <meta-data
-        android:name="android.telecom.INCLUDE_EXTERNAL_CALLS"
-        android:value="true"/>
+          android:name="android.telecom.INCLUDE_EXTERNAL_CALLS"
+          android:value="true"/>
 
       <intent-filter>
         <action android:name="android.telecom.InCallService"/>
@@ -97,23 +99,35 @@
        excludeFromRecents="true"   -> Don't show in "recent apps" screen
        -->
     <activity
-      android:excludeFromRecents="true"
-      android:exported="false"
-      android:name="com.android.incallui.spam.SpamNotificationActivity"
-      android:noHistory="true"
-      android:taskAffinity=""
-      android:theme="@style/AfterCallNotificationTheme">
+        android:excludeFromRecents="true"
+        android:exported="false"
+        android:name="com.android.incallui.spam.SpamNotificationActivity"
+        android:noHistory="true"
+        android:taskAffinity=""
+        android:theme="@style/AfterCallNotificationTheme">
     </activity>
 
+    <activity
+        android:excludeFromRecents="true"
+        android:exported="false"
+        android:name=".AudioRouteSelectorActivity"
+        android:noHistory="true"
+        android:theme="@style/Theme.Incall.DialogHolder"
+        />
+
     <service
-      android:exported="false"
-      android:name="com.android.incallui.spam.SpamNotificationService"/>
+        android:exported="false"
+        android:name="com.android.incallui.spam.SpamNotificationService"/>
 
     <!-- BroadcastReceiver for receiving Intents from Notification mechanism. -->
     <receiver
-      android:directBootAware="true"
-      android:exported="false"
-      android:name="com.android.incallui.NotificationBroadcastReceiver"/>
+        android:directBootAware="true"
+        android:exported="false"
+        android:name="com.android.incallui.NotificationBroadcastReceiver"/>
+
+    <receiver
+        android:exported="false"
+        android:name=".ReturnToCallActionReceiver"/>
 
   </application>
 
diff --git a/java/com/android/incallui/AnswerScreenPresenter.java b/java/com/android/incallui/AnswerScreenPresenter.java
index ca34aa6..ddbe6cc 100644
--- a/java/com/android/incallui/AnswerScreenPresenter.java
+++ b/java/com/android/incallui/AnswerScreenPresenter.java
@@ -124,12 +124,29 @@
       LogUtil.i("AnswerScreenPresenter.onAnswerAndReleaseCall", "activeCall == null");
       onAnswer(false);
     } else {
+      activeCall.setReleasedByAnsweringSecondCall(true);
       activeCall.addListener(new AnswerOnDisconnected(activeCall));
       activeCall.disconnect();
     }
   }
 
   @Override
+  public void onAnswerAndReleaseButtonDisabled() {
+    DialerCall activeCall = CallList.getInstance().getActiveCall();
+    if (activeCall != null) {
+      activeCall.increaseSecondCallWithoutAnswerAndReleasedButtonTimes();
+    }
+  }
+
+  @Override
+  public void onAnswerAndReleaseButtonEnabled() {
+    DialerCall activeCall = CallList.getInstance().getActiveCall();
+    if (activeCall != null) {
+      activeCall.increaseAnswerAndReleaseButtonDisplayedTimes();
+    }
+  }
+
+  @Override
   public void onCannedTextResponsesLoaded(DialerCall call) {
     if (isSmsResponseAllowed(call)) {
       answerScreen.setTextResponses(call.getCannedSmsResponses());
@@ -183,6 +200,9 @@
 
     @Override
     public void onInternationalCallOnWifi() {}
+
+    @Override
+    public void onEnrichedCallSessionUpdate() {}
   }
 
   private boolean isSmsResponseAllowed(DialerCall call) {
diff --git a/java/com/android/incallui/AnswerScreenPresenterStub.java b/java/com/android/incallui/AnswerScreenPresenterStub.java
index 7bff329..d02a181 100644
--- a/java/com/android/incallui/AnswerScreenPresenterStub.java
+++ b/java/com/android/incallui/AnswerScreenPresenterStub.java
@@ -43,5 +43,11 @@
   public void onAnswerAndReleaseCall() {}
 
   @Override
+  public void onAnswerAndReleaseButtonEnabled() {}
+
+  @Override
+  public void onAnswerAndReleaseButtonDisabled() {}
+
+  @Override
   public void updateWindowBackgroundColor(@FloatRange(from = -1f, to = 1.0f) float progress) {}
 }
diff --git a/java/com/android/incallui/AudioRouteSelectorActivity.java b/java/com/android/incallui/AudioRouteSelectorActivity.java
new file mode 100644
index 0000000..dfd4d1a
--- /dev/null
+++ b/java/com/android/incallui/AudioRouteSelectorActivity.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.FragmentActivity;
+import com.android.incallui.audiomode.AudioModeProvider;
+import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment;
+import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment.AudioRouteSelectorPresenter;
+import com.android.incallui.call.TelecomAdapter;
+
+/** Simple activity that just shows the audio route selector fragment */
+public class AudioRouteSelectorActivity extends FragmentActivity
+    implements AudioRouteSelectorPresenter {
+
+  @Override
+  protected void onCreate(@Nullable Bundle bundle) {
+    super.onCreate(bundle);
+    AudioRouteSelectorDialogFragment.newInstance(AudioModeProvider.getInstance().getAudioState())
+        .show(getSupportFragmentManager(), null);
+  }
+
+  @Override
+  public void onAudioRouteSelected(int audioRoute) {
+    TelecomAdapter.getInstance().setAudioRoute(audioRoute);
+  }
+
+  @Override
+  public void onAudioRouteSelectorDismiss() {
+    finish();
+  }
+}
diff --git a/java/com/android/incallui/CallButtonPresenter.java b/java/com/android/incallui/CallButtonPresenter.java
index b0c3a99..f758a96 100644
--- a/java/com/android/incallui/CallButtonPresenter.java
+++ b/java/com/android/incallui/CallButtonPresenter.java
@@ -300,18 +300,7 @@
    */
   @Override
   public void switchCameraClicked(boolean useFrontFacingCamera) {
-    InCallCameraManager cameraManager = InCallPresenter.getInstance().getInCallCameraManager();
-    cameraManager.setUseFrontFacingCamera(useFrontFacingCamera);
-
-    String cameraId = cameraManager.getActiveCameraId();
-    if (cameraId != null) {
-      final int cameraDir =
-          cameraManager.isUsingFrontFacingCamera()
-              ? CameraDirection.CAMERA_DIRECTION_FRONT_FACING
-              : CameraDirection.CAMERA_DIRECTION_BACK_FACING;
-      mCall.setCameraDir(cameraDir);
-      mCall.getVideoTech().setCamera(cameraId);
-    }
+    updateCamera(useFrontFacingCamera);
   }
 
   @Override
@@ -345,8 +334,11 @@
             mCall.getTimeAddedMs());
 
     if (pause) {
+      mCall.getVideoTech().setCamera(null);
       mCall.getVideoTech().stopTransmission();
     } else {
+      updateCamera(
+          InCallPresenter.getInstance().getInCallCameraManager().isUsingFrontFacingCamera());
       mCall.getVideoTech().resumeTransmission();
     }
 
@@ -354,6 +346,21 @@
     mInCallButtonUi.enableButton(InCallButtonIds.BUTTON_PAUSE_VIDEO, false);
   }
 
+  private void updateCamera(boolean useFrontFacingCamera) {
+    InCallCameraManager cameraManager = InCallPresenter.getInstance().getInCallCameraManager();
+    cameraManager.setUseFrontFacingCamera(useFrontFacingCamera);
+
+    String cameraId = cameraManager.getActiveCameraId();
+    if (cameraId != null) {
+      final int cameraDir =
+          cameraManager.isUsingFrontFacingCamera()
+              ? CameraDirection.CAMERA_DIRECTION_FRONT_FACING
+              : CameraDirection.CAMERA_DIRECTION_BACK_FACING;
+      mCall.setCameraDir(cameraDir);
+      mCall.getVideoTech().setCamera(cameraId);
+    }
+  }
+
   private void updateUi(InCallState state, DialerCall call) {
     LogUtil.v("CallButtonPresenter", "updating call UI for call: ", call);
 
diff --git a/java/com/android/incallui/CallCardPresenter.java b/java/com/android/incallui/CallCardPresenter.java
index c2b99c1..cd06793 100644
--- a/java/com/android/incallui/CallCardPresenter.java
+++ b/java/com/android/incallui/CallCardPresenter.java
@@ -47,9 +47,6 @@
 import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.compat.ActivityCompat;
-import com.android.dialer.enrichedcall.EnrichedCallComponent;
-import com.android.dialer.enrichedcall.EnrichedCallManager;
-import com.android.dialer.enrichedcall.Session;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
 import com.android.dialer.multimedia.MultimediaData;
@@ -85,8 +82,7 @@
         InCallDetailsListener,
         InCallEventListener,
         InCallScreenDelegate,
-        DialerCallListener,
-        EnrichedCallManager.StateChangedListener {
+        DialerCallListener {
 
   /**
    * Amount of time to wait before sending an announcement via the accessibility manager. When the
@@ -376,6 +372,11 @@
   @Override
   public void onInternationalCallOnWifi() {}
 
+  @Override
+  public void onEnrichedCallSessionUpdate() {
+    updatePrimaryDisplayInfo();
+  }
+
   /** Handles a change to the child number by refreshing the primary call info. */
   @Override
   public void onDialerCallChildNumberChange() {
@@ -418,12 +419,6 @@
     updatePrimaryCallState();
   }
 
-  @Override
-  public void onEnrichedCallStateChanged() {
-    LogUtil.enterBlock("CallCardPresenter.onEnrichedCallStateChanged");
-    updatePrimaryDisplayInfo();
-  }
-
   private boolean shouldRefreshPrimaryInfo(boolean primaryChanged) {
     if (mPrimary == null) {
       return false;
@@ -475,7 +470,8 @@
                   mPrimary.getConnectTimeMillis(),
                   CallerInfoUtils.isVoiceMailNumber(mContext, mPrimary),
                   mPrimary.isRemotelyHeld(),
-                  isBusiness));
+                  isBusiness,
+                  supports2ndCallOnHold()));
 
       InCallActivity activity =
           (InCallActivity) (mInCallScreen.getInCallScreenFragment().getActivity());
@@ -505,6 +501,15 @@
         && !mIsFullscreen;
   }
 
+  private boolean supports2ndCallOnHold() {
+    DialerCall firstCall = CallList.getInstance().getActiveOrBackgroundCall();
+    DialerCall incomingCall = CallList.getInstance().getIncomingCall();
+    if (firstCall != null && incomingCall != null && firstCall != incomingCall) {
+      return incomingCall.can(Details.CAPABILITY_HOLD);
+    }
+    return true;
+  }
+
   @Override
   public void onCallStateButtonClicked() {
     Intent broadcastIntent = Bindings.get(mContext).getCallStateButtonBroadcastIntent(mContext);
@@ -666,26 +671,8 @@
     boolean hasWorkCallProperty = mPrimary.hasProperty(PROPERTY_ENTERPRISE_CALL);
 
     MultimediaData multimediaData = null;
-    if (mPrimary.getNumber() != null) {
-      EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
-
-      EnrichedCallManager.Filter filter;
-      if (mPrimary.isIncoming()) {
-        filter = manager.createIncomingCallComposerFilter();
-      } else {
-        filter = manager.createOutgoingCallComposerFilter();
-      }
-
-      Session enrichedCallSession =
-          manager.getSession(mPrimary.getUniqueCallId(), mPrimary.getNumber(), filter);
-
-      mPrimary.setEnrichedCallSession(enrichedCallSession);
-      mPrimary.setEnrichedCallCapabilities(manager.getCapabilities(mPrimary.getNumber()));
-
-      if (enrichedCallSession != null) {
-        enrichedCallSession.setUniqueDialerCallId(mPrimary.getUniqueCallId());
-        multimediaData = enrichedCallSession.getMultimediaData();
-      }
+    if (mPrimary.getEnrichedCallSession() != null) {
+      multimediaData = mPrimary.getEnrichedCallSession().getMultimediaData();
     }
 
     if (mPrimary.isConferenceCall()) {
@@ -696,7 +683,8 @@
       mInCallScreen.setPrimary(
           new PrimaryInfo(
               null /* number */,
-              getConferenceString(mPrimary),
+              CallerInfoUtils.getConferenceString(
+                  mContext, mPrimary.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)),
               false /* nameIsNumber */,
               null /* location */,
               null /* label */,
@@ -880,7 +868,8 @@
       mInCallScreen.setSecondary(
           new SecondaryInfo(
               true /* show */,
-              getConferenceString(mSecondary),
+              CallerInfoUtils.getConferenceString(
+                  mContext, mSecondary.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)),
               false /* nameIsNumber */,
               null /* label */,
               mSecondary.getCallProviderLabel(),
@@ -972,7 +961,7 @@
   }
 
   /** Gets the name to display for the call. */
-  String getNameForCall(ContactCacheEntry contactInfo) {
+  private String getNameForCall(ContactCacheEntry contactInfo) {
     String preferredName =
         ContactDisplayUtils.getPreferredDisplayName(
             contactInfo.namePrimary, contactInfo.nameAlternative, mContactsPreferences);
@@ -982,19 +971,6 @@
     return preferredName;
   }
 
-  /** Gets the number to display for a call. */
-  String getNumberForCall(ContactCacheEntry contactInfo) {
-    // If the name is empty, we use the number for the name...so don't show a second
-    // number in the number field
-    String preferredName =
-        ContactDisplayUtils.getPreferredDisplayName(
-            contactInfo.namePrimary, contactInfo.nameAlternative, mContactsPreferences);
-    if (TextUtils.isEmpty(preferredName)) {
-      return contactInfo.location;
-    }
-    return contactInfo.number;
-  }
-
   @Override
   public void onSecondaryInfoClicked() {
     if (mSecondary == null) {
@@ -1035,15 +1011,6 @@
     return mPrimary != null && mPrimary.getState() == DialerCall.State.ACTIVE;
   }
 
-  private String getConferenceString(DialerCall call) {
-    boolean isGenericConference = call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE);
-    LogUtil.v("CallCardPresenter.getConferenceString", "" + isGenericConference);
-
-    final int resId =
-        isGenericConference ? R.string.generic_conference_call_name : R.string.conference_call_name;
-    return mContext.getResources().getString(resId);
-  }
-
   private boolean shouldShowEndCallButton(DialerCall primary, int callState) {
     if (primary == null) {
       return false;
@@ -1063,7 +1030,6 @@
 
   @Override
   public void onInCallScreenResumed() {
-    EnrichedCallComponent.get(mContext).getEnrichedCallManager().registerStateChangedListener(this);
     updatePrimaryDisplayInfo();
 
     if (shouldSendAccessibilityEvent) {
@@ -1072,11 +1038,7 @@
   }
 
   @Override
-  public void onInCallScreenPaused() {
-    EnrichedCallComponent.get(mContext)
-        .getEnrichedCallManager()
-        .unregisterStateChangedListener(this);
-  }
+  public void onInCallScreenPaused() {}
 
   static boolean sendAccessibilityEvent(Context context, InCallScreen inCallScreen) {
     AccessibilityManager am =
diff --git a/java/com/android/incallui/CallerInfoUtils.java b/java/com/android/incallui/CallerInfoUtils.java
index 5644466..8f23107 100644
--- a/java/com/android/incallui/CallerInfoUtils.java
+++ b/java/com/android/incallui/CallerInfoUtils.java
@@ -282,4 +282,11 @@
         });
     loader.startLoading();
   }
+
+  /** @return conference name for conference call. */
+  public static String getConferenceString(Context context, boolean isGenericConference) {
+    final int resId =
+        isGenericConference ? R.string.generic_conference_call_name : R.string.conference_call_name;
+    return context.getResources().getString(resId);
+  }
 }
diff --git a/java/com/android/incallui/ContactInfoCache.java b/java/com/android/incallui/ContactInfoCache.java
index e45eb97..d7eea79 100644
--- a/java/com/android/incallui/ContactInfoCache.java
+++ b/java/com/android/incallui/ContactInfoCache.java
@@ -406,7 +406,7 @@
     } else {
       ContactCacheEntry initialCacheEntry =
           updateCallerInfoInCacheOnAnyThread(
-              callId, call.getNumberPresentation(), callerInfo, isIncoming, false, queryToken);
+              callId, call.getNumberPresentation(), callerInfo, false, queryToken);
       sendInfoNotifications(callId, initialCacheEntry);
     }
   }
@@ -416,7 +416,6 @@
       String callId,
       int numberPresentation,
       CallerInfo callerInfo,
-      boolean isIncoming,
       boolean didLocalLookup,
       CallerInfoQueryToken queryToken) {
     Log.d(
@@ -443,16 +442,7 @@
     Log.d(TAG, "Existing cacheEntry in hashMap " + existingCacheEntry);
 
     if (didLocalLookup) {
-      // Before issuing a request for more data from other services, we only check that the
-      // contact wasn't found in the local DB.  We don't check the if the cache entry already
-      // has a name because we allow overriding cnap data with data from other services.
-      if (!callerInfo.contactExists && mPhoneNumberService != null) {
-        Log.d(TAG, "Contact lookup. Local contacts miss, checking remote");
-        final PhoneNumberServiceListener listener =
-            new PhoneNumberServiceListener(callId, queryToken.mQueryId);
-        cacheEntry.hasPendingQuery = true;
-        mPhoneNumberService.getPhoneNumberInfo(cacheEntry.number, listener, listener, isIncoming);
-      } else if (cacheEntry.displayPhotoUri != null) {
+      if (cacheEntry.displayPhotoUri != null) {
         // When the difference between 2 numbers is only the prefix (e.g. + or IDD),
         // we will still trigger force query so that the number can be updated on
         // the calling screen. We need not query the image again if the previous
@@ -789,7 +779,7 @@
       maybeUpdateFromCequintCallerId(ci, cw.cnapName, mIsIncoming);
       long time = SystemClock.uptimeMillis() - start;
       Log.d(TAG, "Cequint Caller Id look up takes " + time + " ms.");
-      updateCallerInfoInCacheOnAnyThread(cw.callId, cw.numberPresentation, ci, mIsIncoming, true, mQueryToken);
+      updateCallerInfoInCacheOnAnyThread(cw.callId, cw.numberPresentation, ci, true, mQueryToken);
     }
 
     @Override
@@ -807,6 +797,16 @@
         clearCallbacks(callId);
         return;
       }
+      // Before issuing a request for more data from other services, we only check that the
+      // contact wasn't found in the local DB.  We don't check the if the cache entry already
+      // has a name because we allow overriding cnap data with data from other services.
+      if (!callerInfo.contactExists && mPhoneNumberService != null) {
+        Log.d(TAG, "Contact lookup. Local contacts miss, checking remote");
+        final PhoneNumberServiceListener listener =
+            new PhoneNumberServiceListener(callId, mQueryToken.mQueryId);
+        cacheEntry.hasPendingQuery = true;
+        mPhoneNumberService.getPhoneNumberInfo(cacheEntry.number, listener, listener, mIsIncoming);
+      }
       sendInfoNotifications(callId, cacheEntry);
       if (!cacheEntry.hasPendingQuery) {
         if (callerInfo.contactExists) {
@@ -870,6 +870,7 @@
         entry.shouldShowLocation = oldEntry.shouldShowLocation;
         // Contact specific ringtone is obtained from local lookup.
         entry.contactRingtoneUri = oldEntry.contactRingtoneUri;
+        entry.originalPhoneNumber = oldEntry.originalPhoneNumber;
       }
 
       // If no image and it's a business, switch to using the default business avatar.
diff --git a/java/com/android/incallui/ExternalCallNotifier.java b/java/com/android/incallui/ExternalCallNotifier.java
index 0c2493c..051392e 100644
--- a/java/com/android/incallui/ExternalCallNotifier.java
+++ b/java/com/android/incallui/ExternalCallNotifier.java
@@ -384,11 +384,10 @@
       ContactInfoCache.ContactCacheEntry contactInfo,
       android.telecom.Call call) {
 
-    if (call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE)
-        && !call.getDetails()
-            .hasProperty(android.telecom.Call.Details.PROPERTY_GENERIC_CONFERENCE)) {
-
-      return context.getResources().getString(R.string.conference_call_name);
+    if (call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE)) {
+      return CallerInfoUtils.getConferenceString(
+          context,
+          call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_GENERIC_CONFERENCE));
     }
 
     String preferredName =
diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java
index cc9a8e4..bda003c 100644
--- a/java/com/android/incallui/InCallActivity.java
+++ b/java/com/android/incallui/InCallActivity.java
@@ -694,13 +694,8 @@
     if (didShowInCallScreen) {
       return false;
     }
-    InCallScreen inCallScreen = getInCallScreen();
-    if (inCallScreen == null) {
-      inCallScreen = InCallBindings.createInCallScreen();
-      transaction.add(R.id.main, inCallScreen.getInCallScreenFragment(), TAG_IN_CALL_SCREEN);
-    } else {
-      transaction.show(inCallScreen.getInCallScreenFragment());
-    }
+    InCallScreen inCallScreen = InCallBindings.createInCallScreen();
+    transaction.add(R.id.main, inCallScreen.getInCallScreenFragment(), TAG_IN_CALL_SCREEN);
     Logger.get(this).logScreenView(ScreenEvent.Type.INCALL, this);
     didShowInCallScreen = true;
     return true;
@@ -712,7 +707,7 @@
     }
     InCallScreen inCallScreen = getInCallScreen();
     if (inCallScreen != null) {
-      transaction.hide(inCallScreen.getInCallScreenFragment());
+      transaction.remove(inCallScreen.getInCallScreenFragment());
     }
     didShowInCallScreen = false;
     return true;
diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java
index 2d6d83c..7c30001 100644
--- a/java/com/android/incallui/InCallPresenter.java
+++ b/java/com/android/incallui/InCallPresenter.java
@@ -695,7 +695,10 @@
     if (newState == InCallState.INCOMING
         && (waitingForAccountCall = callList.getWaitingForAccountCall()) != null) {
       waitingForAccountCall.disconnect();
-      mInCallActivity.dismissPendingDialogs();
+      // The InCallActivity might be destroyed or not started yet at this point.
+      if (isActivityStarted()) {
+        mInCallActivity.dismissPendingDialogs();
+      }
     }
 
     newState = startOrFinishUi(newState);
diff --git a/java/com/android/incallui/InCallServiceImpl.java b/java/com/android/incallui/InCallServiceImpl.java
index 4ab92a7..1653334 100644
--- a/java/com/android/incallui/InCallServiceImpl.java
+++ b/java/com/android/incallui/InCallServiceImpl.java
@@ -23,6 +23,7 @@
 import android.telecom.CallAudioState;
 import android.telecom.InCallService;
 import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.common.ConfigProviderBindings;
 import com.android.incallui.audiomode.AudioModeProvider;
 import com.android.incallui.call.CallList;
 import com.android.incallui.call.ExternalCallList;
@@ -36,6 +37,8 @@
  */
 public class InCallServiceImpl extends InCallService {
 
+  private ReturnToCallController returnToCallController;
+
   @Override
   public void onCallAudioStateChanged(CallAudioState audioState) {
     AudioModeProvider.getInstance().onAudioStateChanged(audioState);
@@ -79,6 +82,9 @@
     InCallPresenter.getInstance().onServiceBind();
     InCallPresenter.getInstance().maybeStartRevealAnimation(intent);
     TelecomAdapter.getInstance().setInCallService(this);
+    if (ConfigProviderBindings.get(this).getBoolean("enable_return_to_call_bubble", false)) {
+      returnToCallController = new ReturnToCallController(this);
+    }
 
     return super.onBind(intent);
   }
@@ -98,5 +104,9 @@
     // Tear down the InCall system
     TelecomAdapter.getInstance().clearInCallService();
     InCallPresenter.getInstance().tearDown();
+    if (returnToCallController != null) {
+      returnToCallController.tearDown();
+      returnToCallController = null;
+    }
   }
 }
diff --git a/java/com/android/incallui/ReturnToCallActionReceiver.java b/java/com/android/incallui/ReturnToCallActionReceiver.java
new file mode 100644
index 0000000..b645c15
--- /dev/null
+++ b/java/com/android/incallui/ReturnToCallActionReceiver.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.telecom.CallAudioState;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.Logger;
+import com.android.incallui.audiomode.AudioModeProvider;
+import com.android.incallui.call.CallList;
+import com.android.incallui.call.DialerCall;
+import com.android.incallui.call.TelecomAdapter;
+
+/** Handles clicks on the return-to-call bubble */
+public class ReturnToCallActionReceiver extends BroadcastReceiver {
+
+  public static final String ACTION_TOGGLE_SPEAKER = "toggleSpeaker";
+  public static final String ACTION_SHOW_AUDIO_ROUTE_SELECTOR = "showAudioRouteSelector";
+  public static final String ACTION_TOGGLE_MUTE = "toggleMute";
+  public static final String ACTION_END_CALL = "endCall";
+
+  @Override
+  public void onReceive(Context context, Intent intent) {
+    switch (intent.getAction()) {
+      case ACTION_TOGGLE_SPEAKER:
+        toggleSpeaker(context);
+        break;
+      case ACTION_SHOW_AUDIO_ROUTE_SELECTOR:
+        showAudioRouteSelector(context);
+        break;
+      case ACTION_TOGGLE_MUTE:
+        toggleMute(context);
+        break;
+      case ACTION_END_CALL:
+        endCall(context);
+        break;
+    }
+  }
+
+  private void toggleSpeaker(Context context) {
+    CallAudioState audioState = AudioModeProvider.getInstance().getAudioState();
+
+    if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH)
+        == CallAudioState.ROUTE_BLUETOOTH) {
+      LogUtil.w(
+          "ReturnToCallActionReceiver.toggleSpeaker",
+          "toggleSpeaker() called when bluetooth available."
+              + " Probably should have shown audio route selector");
+    }
+
+    DialerCall call = getCall();
+
+    int newRoute;
+    if (audioState.getRoute() == CallAudioState.ROUTE_SPEAKER) {
+      newRoute = CallAudioState.ROUTE_WIRED_OR_EARPIECE;
+      Logger.get(context)
+          .logCallImpression(
+              DialerImpression.Type.BUBBLE_TURN_ON_WIRED_OR_EARPIECE,
+              call != null ? call.getUniqueCallId() : "",
+              call != null ? call.getTimeAddedMs() : 0);
+    } else {
+      newRoute = CallAudioState.ROUTE_SPEAKER;
+      Logger.get(context)
+          .logCallImpression(
+              DialerImpression.Type.BUBBLE_TURN_ON_SPEAKERPHONE,
+              call != null ? call.getUniqueCallId() : "",
+              call != null ? call.getTimeAddedMs() : 0);
+    }
+    TelecomAdapter.getInstance().setAudioRoute(newRoute);
+  }
+
+  public void showAudioRouteSelector(Context context) {
+    context.startActivity(new Intent(context, AudioRouteSelectorActivity.class));
+  }
+
+  private void toggleMute(Context context) {
+    DialerCall call = getCall();
+    boolean shouldMute = !AudioModeProvider.getInstance().getAudioState().isMuted();
+    Logger.get(context)
+        .logCallImpression(
+            shouldMute
+                ? DialerImpression.Type.BUBBLE_MUTE_CALL
+                : DialerImpression.Type.BUBBLE_UNMUTE_CALL,
+            call != null ? call.getUniqueCallId() : "",
+            call != null ? call.getTimeAddedMs() : 0);
+    TelecomAdapter.getInstance().mute(shouldMute);
+  }
+
+  private void endCall(Context context) {
+    DialerCall call = getCall();
+
+    Logger.get(context)
+        .logCallImpression(
+            DialerImpression.Type.BUBBLE_END_CALL,
+            call != null ? call.getUniqueCallId() : "",
+            call != null ? call.getTimeAddedMs() : 0);
+    if (call != null) {
+      call.disconnect();
+    }
+  }
+
+  private DialerCall getCall() {
+    CallList callList = InCallPresenter.getInstance().getCallList();
+    if (callList != null) {
+      DialerCall call = callList.getOutgoingCall();
+      if (call == null) {
+        call = callList.getActiveOrBackgroundCall();
+      }
+      if (call != null) {
+        return call;
+      }
+    }
+    return null;
+  }
+}
diff --git a/java/com/android/incallui/ReturnToCallController.java b/java/com/android/incallui/ReturnToCallController.java
new file mode 100644
index 0000000..4cb6aaf
--- /dev/null
+++ b/java/com/android/incallui/ReturnToCallController.java
@@ -0,0 +1,204 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.drawable.Icon;
+import android.support.annotation.NonNull;
+import android.support.annotation.VisibleForTesting;
+import android.telecom.CallAudioState;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.telecom.TelecomUtil;
+import com.android.dialershared.bubble.Bubble;
+import com.android.dialershared.bubble.BubbleInfo;
+import com.android.dialershared.bubble.BubbleInfo.Action;
+import com.android.incallui.InCallPresenter.InCallUiListener;
+import com.android.incallui.audiomode.AudioModeProvider;
+import com.android.incallui.audiomode.AudioModeProvider.AudioModeListener;
+import com.android.incallui.call.CallList;
+import com.android.incallui.call.CallList.Listener;
+import com.android.incallui.call.DialerCall;
+import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo;
+import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo.IconSize;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Listens for events relevant to the return-to-call bubble and updates the bubble's state as
+ * necessary
+ */
+public class ReturnToCallController implements InCallUiListener, Listener, AudioModeListener {
+
+  private final Context context;
+
+  @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+  Bubble bubble;
+
+  private CallAudioState audioState;
+
+  private final PendingIntent toggleSpeaker;
+  private final PendingIntent showSpeakerSelect;
+  private final PendingIntent toggleMute;
+  private final PendingIntent endCall;
+
+  public ReturnToCallController(Context context) {
+    this.context = context;
+
+    toggleSpeaker = createActionIntent(ReturnToCallActionReceiver.ACTION_TOGGLE_SPEAKER);
+    showSpeakerSelect =
+        createActionIntent(ReturnToCallActionReceiver.ACTION_SHOW_AUDIO_ROUTE_SELECTOR);
+    toggleMute = createActionIntent(ReturnToCallActionReceiver.ACTION_TOGGLE_MUTE);
+    endCall = createActionIntent(ReturnToCallActionReceiver.ACTION_END_CALL);
+
+    InCallPresenter.getInstance().addInCallUiListener(this);
+    CallList.getInstance().addListener(this);
+    AudioModeProvider.getInstance().addListener(this);
+    audioState = AudioModeProvider.getInstance().getAudioState();
+  }
+
+  public void tearDown() {
+    InCallPresenter.getInstance().removeInCallUiListener(this);
+    CallList.getInstance().removeListener(this);
+    AudioModeProvider.getInstance().removeListener(this);
+  }
+
+  @Override
+  public void onUiShowing(boolean showing) {
+    if (showing) {
+      hide();
+    } else {
+      if (TelecomUtil.isInCall(context)) {
+        show();
+      }
+    }
+  }
+
+  private void hide() {
+    if (bubble != null) {
+      bubble.hide();
+    } else {
+      LogUtil.i("ReturnToCallController.hide", "hide() called without calling show()");
+    }
+  }
+
+  private void show() {
+    if (bubble == null) {
+      bubble = startNewBubble();
+    } else {
+      bubble.show();
+    }
+  }
+
+  private Bubble startNewBubble() {
+    if (!Bubble.canShowBubbles(context)) {
+      LogUtil.i("ReturnToCallController.startNewBubble", "can't show bubble, no permission");
+      return null;
+    }
+    Bubble returnToCallBubble = Bubble.createBubble(context, generateBubbleInfo());
+    returnToCallBubble.show();
+    return returnToCallBubble;
+  }
+
+  @Override
+  public void onIncomingCall(DialerCall call) {}
+
+  @Override
+  public void onUpgradeToVideo(DialerCall call) {}
+
+  @Override
+  public void onSessionModificationStateChange(DialerCall call) {}
+
+  @Override
+  public void onCallListChange(CallList callList) {}
+
+  @Override
+  public void onDisconnect(DialerCall call) {
+    if (bubble != null && bubble.isShowing()) {
+      bubble.showText(context.getText(R.string.incall_call_ended));
+    }
+
+    if (!TelecomUtil.isInCall(context)) {
+      hide();
+    }
+  }
+
+  @Override
+  public void onWiFiToLteHandover(DialerCall call) {}
+
+  @Override
+  public void onHandoverToWifiFailed(DialerCall call) {}
+
+  @Override
+  public void onInternationalCallOnWifi(@NonNull DialerCall call) {}
+
+  @Override
+  public void onAudioStateChanged(CallAudioState audioState) {
+    this.audioState = audioState;
+    if (bubble != null) {
+      bubble.updateActions(generateActions());
+    }
+  }
+
+  private BubbleInfo generateBubbleInfo() {
+    return BubbleInfo.builder()
+        .setPrimaryColor(context.getResources().getColor(R.color.dialer_theme_color, null))
+        .setPrimaryIcon(Icon.createWithResource(context, R.drawable.quantum_ic_call_white_24))
+        .setPrimaryAction(
+            PendingIntent.getActivity(
+                context, 0, InCallActivity.getIntent(context, false, false, false), 0))
+        .setActions(generateActions())
+        .build();
+  }
+
+  @NonNull
+  private List<Action> generateActions() {
+    List<Action> actions = new ArrayList<>();
+    SpeakerButtonInfo speakerButtonInfo = new SpeakerButtonInfo(audioState, IconSize.SIZE_24_DP);
+
+    actions.add(
+        Action.builder()
+            .setIcon(Icon.createWithResource(context, speakerButtonInfo.icon))
+            .setName(context.getText(speakerButtonInfo.label))
+            .setChecked(speakerButtonInfo.isChecked)
+            .setAction(speakerButtonInfo.checkable ? toggleSpeaker : showSpeakerSelect)
+            .build());
+
+    actions.add(
+        Action.builder()
+            .setIcon(Icon.createWithResource(context, R.drawable.quantum_ic_mic_off_white_24))
+            .setName(context.getText(R.string.incall_label_mute))
+            .setChecked(audioState.isMuted())
+            .setAction(toggleMute)
+            .build());
+    actions.add(
+        Action.builder()
+            .setIcon(Icon.createWithResource(context, R.drawable.quantum_ic_call_end_white_24))
+            .setName(context.getText(R.string.incall_label_end_call))
+            .setAction(endCall)
+            .build());
+    return actions;
+  }
+
+  @NonNull
+  private PendingIntent createActionIntent(String actionToggleSpeaker) {
+    Intent toggleSpeaker = new Intent(context, ReturnToCallActionReceiver.class);
+    toggleSpeaker.setAction(actionToggleSpeaker);
+    return PendingIntent.getBroadcast(context, 0, toggleSpeaker, 0);
+  }
+}
diff --git a/java/com/android/incallui/StatusBarNotifier.java b/java/com/android/incallui/StatusBarNotifier.java
index 165b30b..229f08c 100644
--- a/java/com/android/incallui/StatusBarNotifier.java
+++ b/java/com/android/incallui/StatusBarNotifier.java
@@ -62,11 +62,11 @@
 import com.android.contacts.common.ContactsUtils;
 import com.android.contacts.common.ContactsUtils.UserType;
 import com.android.contacts.common.lettertiles.LetterTileDrawable;
+import com.android.contacts.common.lettertiles.LetterTileDrawable.ContactType;
 import com.android.contacts.common.preference.ContactsPreferences;
 import com.android.contacts.common.util.BitmapUtil;
 import com.android.contacts.common.util.ContactDisplayUtils;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.enrichedcall.EnrichedCallComponent;
 import com.android.dialer.enrichedcall.EnrichedCallManager;
 import com.android.dialer.enrichedcall.Session;
 import com.android.dialer.multimedia.MultimediaData;
@@ -565,8 +565,9 @@
   @VisibleForTesting
   @Nullable
   String getContentTitle(ContactCacheEntry contactInfo, DialerCall call) {
-    if (call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) {
-      return mContext.getResources().getString(R.string.conference_call_name);
+    if (call.isConferenceCall()) {
+      return CallerInfoUtils.getConferenceString(
+          mContext, call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE));
     }
 
     String preferredName =
@@ -604,20 +605,16 @@
     if (contactInfo.photo == null) {
       int width = (int) resources.getDimension(android.R.dimen.notification_large_icon_width);
       int height = (int) resources.getDimension(android.R.dimen.notification_large_icon_height);
-      int contactType = LetterTileDrawable.TYPE_DEFAULT;
+      @ContactType
+      int contactType =
+          LetterTileDrawable.getContactTypeFromPrimitives(
+              CallerInfoUtils.isVoiceMailNumber(context, call),
+              call.isSpam(),
+              contactInfo.isBusiness,
+              call.getNumberPresentation(),
+              call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE));
       LetterTileDrawable lettertile = new LetterTileDrawable(resources);
 
-      // TODO: Deduplicate across Dialer. b/36195917
-      if (CallerInfoUtils.isVoiceMailNumber(context, call)) {
-        contactType = LetterTileDrawable.TYPE_VOICEMAIL;
-      } else if (contactInfo.isBusiness) {
-        contactType = LetterTileDrawable.TYPE_BUSINESS;
-      } else if (call.getNumberPresentation() == TelecomManager.PRESENTATION_RESTRICTED) {
-        contactType = LetterTileDrawable.TYPE_GENERIC_AVATAR;
-      } else if (call.isConferenceCall()
-          && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) {
-        contactType = LetterTileDrawable.TYPE_CONFERENCE;
-      }
       lettertile.setCanonicalDialerLetterTileDetails(
           contactInfo.namePrimary == null ? contactInfo.number : contactInfo.namePrimary,
           contactInfo.lookupKey,
@@ -694,20 +691,10 @@
     }
 
     if (isIncomingOrWaiting) {
-      EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
-      Session session = null;
-      if (call.getNumber() != null) {
-        session =
-            manager.getSession(
-                call.getUniqueCallId(),
-                call.getNumber(),
-                manager.createIncomingCallComposerFilter());
-      }
-
       if (call.isSpam()) {
         resId = R.string.notification_incoming_spam_call;
-      } else if (session != null) {
-        resId = getECIncomingCallText(session);
+      } else if (shouldShowEnrichedCallNotification(call.getEnrichedCallSession())) {
+        resId = getECIncomingCallText(call.getEnrichedCallSession());
       } else if (call.hasProperty(Details.PROPERTY_WIFI)) {
         resId = R.string.notification_incoming_call_wifi;
       } else {
@@ -731,6 +718,13 @@
     return mContext.getString(resId);
   }
 
+  private boolean shouldShowEnrichedCallNotification(Session session) {
+    if (session == null) {
+      return false;
+    }
+    return session.getMultimediaData().hasData() || session.getMultimediaData().isImportant();
+  }
+
   private int getECIncomingCallText(Session session) {
     int resId;
     MultimediaData data = session.getMultimediaData();
@@ -756,8 +750,10 @@
         } else {
           resId = R.string.important_notification_incoming_call_with_photo;
         }
-      } else {
+      } else if (hasSubject) {
         resId = R.string.important_notification_incoming_call_with_message;
+      } else {
+        resId = R.string.important_notification_incoming_call;
       }
       if (mContext.getString(resId).length() > 50) {
         resId = R.string.important_notification_incoming_call_attachments;
@@ -1005,6 +1001,9 @@
     @Override
     public void onInternationalCallOnWifi() {}
 
+    @Override
+    public void onEnrichedCallSessionUpdate() {}
+
     /**
      * Responds to changes in the session modification state for the call by dismissing the status
      * bar notification as required.
diff --git a/java/com/android/incallui/answer/impl/AnswerFragment.java b/java/com/android/incallui/answer/impl/AnswerFragment.java
index 1f0541c4..6be7930 100644
--- a/java/com/android/incallui/answer/impl/AnswerFragment.java
+++ b/java/com/android/incallui/answer/impl/AnswerFragment.java
@@ -427,8 +427,10 @@
 
     if (allowAnswerAndRelease()) {
       answerAndReleaseButton.setVisibility(View.VISIBLE);
+      answerScreenDelegate.onAnswerAndReleaseButtonEnabled();
     } else {
       answerAndReleaseButton.setVisibility(View.INVISIBLE);
+      answerScreenDelegate.onAnswerAndReleaseButtonDisabled();
     }
   }
 
@@ -930,7 +932,7 @@
         if (hasCallOnHold()) {
           getAnswerMethod()
               .setHintText(getText(R.string.call_incoming_default_label_answer_and_release_third));
-        } else {
+        } else if (primaryCallState.supportsCallOnHold) {
           getAnswerMethod()
               .setHintText(getText(R.string.call_incoming_default_label_answer_and_release_second));
         }
diff --git a/java/com/android/incallui/answer/impl/PillDrawable.java b/java/com/android/incallui/answer/impl/PillDrawable.java
deleted file mode 100644
index 57d84c4..0000000
--- a/java/com/android/incallui/answer/impl/PillDrawable.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.incallui.answer.impl;
-
-import android.graphics.Rect;
-import android.graphics.drawable.GradientDrawable;
-
-/** Draws a pill-shaped background */
-public class PillDrawable extends GradientDrawable {
-
-  public PillDrawable() {
-    super();
-    setShape(RECTANGLE);
-  }
-
-  @Override
-  protected void onBoundsChange(Rect r) {
-    super.onBoundsChange(r);
-    setCornerRadius(r.height() / 2);
-  }
-
-  @Override
-  public void setShape(int shape) {
-    if (shape != GradientDrawable.RECTANGLE) {
-      throw new UnsupportedOperationException("PillDrawable must be a rectangle");
-    }
-    super.setShape(shape);
-  }
-}
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml b/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml
index 9a49075..600115e 100644
--- a/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml
+++ b/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml
@@ -41,6 +41,7 @@
         android:layout_marginBottom="116dp"
         android:layout_gravity="center_horizontal"
         android:alpha="0"
+        android:gravity="center_horizontal"
         android:text="@string/call_incoming_will_disconnect"
         android:textColor="@color/blue_grey_100"
         android:textSize="16sp"
@@ -59,6 +60,7 @@
         android:layout_marginBottom="18dp"
         android:layout_gravity="center_horizontal"
         android:focusable="false"
+        android:gravity="center_horizontal"
         android:text="@string/call_incoming_swipe_to_answer"
         android:textAlignment="center"
         android:textAppearance="@style/Dialer.Incall.TextAppearance.Hint"/>
@@ -110,6 +112,7 @@
         android:layout_gravity="center_horizontal"
         android:alpha="0"
         android:focusable="false"
+        android:gravity="center_horizontal"
         android:text="@string/call_incoming_swipe_to_reject"
         android:textAppearance="@style/Dialer.Incall.TextAppearance.Hint"
         tools:alpha="1"/>
diff --git a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
index 77b45ec..9c33b5d 100644
--- a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
+++ b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
@@ -23,7 +23,6 @@
 import android.support.annotation.NonNull;
 import android.support.annotation.VisibleForTesting;
 import com.android.dialer.common.Assert;
-import com.android.dialer.common.ConfigProvider;
 import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.util.DialerUtils;
@@ -35,8 +34,9 @@
  */
 public class AnswerHintFactory {
 
-  private static final String CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY =
-      "answer_hint_answered_threshold";
+  @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+  static final String CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY = "answer_hint_answered_threshold";
+
   @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
   static final String CONFIG_ANSWER_HINT_WHITELISTED_DEVICES_KEY =
       "answer_hint_whitelisted_devices";
@@ -58,12 +58,7 @@
 
   @NonNull
   public AnswerHint create(Context context, long puckUpDuration, long puckUpDelay) {
-
-    if (shouldShowAnswerHint(
-        context,
-        ConfigProviderBindings.get(context),
-        DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context),
-        Build.PRODUCT)) {
+    if (shouldShowAnswerHint(context, Build.PRODUCT)) {
       return new DotAnswerHint(context, puckUpDuration, puckUpDelay);
     }
 
@@ -84,24 +79,23 @@
   }
 
   @VisibleForTesting
-  static boolean shouldShowAnswerHint(
-      Context context,
-      ConfigProvider configProvider,
-      SharedPreferences sharedPreferences,
-      String device) {
+  static boolean shouldShowAnswerHint(Context context, String device) {
     if (AccessibilityUtil.isTouchExplorationEnabled(context)) {
       return false;
     }
     // Devices that has the legacy dialer installed are whitelisted as they are likely to go through
     // a UX change during updates.
-    if (!isDeviceWhitelisted(device, configProvider)) {
+    if (!isDeviceWhitelisted(context, device)) {
       return false;
     }
 
     // If the user has gone through the process a few times we can assume they have learnt the
     // method.
-    int answeredCount = sharedPreferences.getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0);
-    long threshold = configProvider.getLong(CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY, 3);
+    int answeredCount =
+        DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context)
+            .getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0);
+    long threshold =
+        ConfigProviderBindings.get(context).getLong(CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY, 3);
     LogUtil.i(
         "AnswerHintFactory.shouldShowAnswerHint",
         "answerCount: %d, threshold: %d",
@@ -115,8 +109,8 @@
    * @param configProvider should provide a list of devices quoted with '/' concatenated to a
    *     string.
    */
-  private static boolean isDeviceWhitelisted(String device, ConfigProvider configProvider) {
-    return configProvider
+  private static boolean isDeviceWhitelisted(Context context, String device) {
+    return ConfigProviderBindings.get(context)
         .getString(CONFIG_ANSWER_HINT_WHITELISTED_DEVICES_KEY, DEFAULT_WHITELISTED_DEVICES_CSV)
         .contains("/" + device + "/");
   }
diff --git a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
index 21154ca..05358d8 100644
--- a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
+++ b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
@@ -24,7 +24,9 @@
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
 import com.android.dialer.util.DialerUtils;
+import com.android.incallui.answer.impl.hint.PawSecretCodeListener.PawType;
 
 /** Decrypt the event payload to be shown if in a specific time range and the key is received. */
 @TargetApi(VERSION_CODES.M)
@@ -40,10 +42,25 @@
     if (!preferences.getBoolean(PawSecretCodeListener.PAW_ENABLED_WITH_SECRET_CODE_KEY, false)) {
       return null;
     }
-    int drawableId = preferences.getInt(PawSecretCodeListener.PAW_DRAWABLE_ID_KEY, 0);
-    if (drawableId == 0) {
-      return null;
+    @PawType
+    int pawType =
+        preferences.getInt(PawSecretCodeListener.PAW_TYPE, PawSecretCodeListener.PAW_TYPE_INVALID);
+
+    if (pawType == PawSecretCodeListener.PAW_TYPE_INVALID) {
+      LogUtil.i("PawImageLoaderImpl.loadPayload", "paw type not found, rerolling");
+      PawSecretCodeListener.selectPawType(preferences);
+      pawType =
+          preferences.getInt(
+              PawSecretCodeListener.PAW_TYPE, PawSecretCodeListener.PAW_TYPE_INVALID);
     }
-    return context.getDrawable(drawableId);
+
+    switch (pawType) {
+      case PawSecretCodeListener.PAW_TYPE_CAT:
+        return context.getDrawable(R.drawable.cat_paw);
+      case PawSecretCodeListener.PAW_TYPE_DOG:
+        return context.getDrawable(R.drawable.dog_paw);
+      default:
+        throw Assert.createAssertionFailException("unknown paw type " + pawType);
+    }
   }
 }
diff --git a/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java b/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java
index a8737c3..3b4512c 100644
--- a/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java
+++ b/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java
@@ -20,7 +20,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
+import android.support.annotation.IntDef;
 import android.support.annotation.VisibleForTesting;
 import android.text.TextUtils;
 import android.widget.Toast;
@@ -29,6 +29,7 @@
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.logging.DialerImpression.Type;
 import com.android.dialer.logging.Logger;
+import com.android.dialer.util.DialerUtils;
 import java.util.Random;
 
 /**
@@ -40,7 +41,20 @@
   static final String CONFIG_PAW_SECRET_CODE = "paw_secret_code";
 
   public static final String PAW_ENABLED_WITH_SECRET_CODE_KEY = "paw_enabled_with_secret_code";
-  public static final String PAW_DRAWABLE_ID_KEY = "paw_drawable_id";
+
+  /** Which paw to show, must be {@link PawType} */
+  public static final String PAW_TYPE = "paw_type";
+
+  /** Resource id is not stable across app versions. Use {@link #PAW_TYPE} instead. */
+  @Deprecated public static final String PAW_DRAWABLE_ID_KEY = "paw_drawable_id";
+
+  /** Enum for all paws. */
+  @IntDef({PAW_TYPE_INVALID, PAW_TYPE_CAT, PAW_TYPE_DOG})
+  @interface PawType {}
+
+  public static final int PAW_TYPE_INVALID = 0;
+  public static final int PAW_TYPE_CAT = 1;
+  public static final int PAW_TYPE_DOG = 2;
 
   @Override
   public void onReceive(Context context, Intent intent) {
@@ -54,7 +68,8 @@
     if (!TextUtils.equals(secretCode, host)) {
       return;
     }
-    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
+    SharedPreferences preferences =
+        DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context);
     boolean wasEnabled = preferences.getBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, false);
     if (wasEnabled) {
       preferences.edit().putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, false).apply();
@@ -62,20 +77,24 @@
       Logger.get(context).logImpression(Type.EVENT_ANSWER_HINT_DEACTIVATED);
       LogUtil.i("PawSecretCodeListener.onReceive", "PawAnswerHint disabled");
     } else {
-      int drawableId;
-      if (new Random().nextBoolean()) {
-        drawableId = R.drawable.cat_paw;
-      } else {
-        drawableId = R.drawable.dog_paw;
-      }
-      preferences
-          .edit()
-          .putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, true)
-          .putInt(PAW_DRAWABLE_ID_KEY, drawableId)
-          .apply();
+      selectPawType(preferences);
       Toast.makeText(context, R.string.event_activated, Toast.LENGTH_SHORT).show();
       Logger.get(context).logImpression(Type.EVENT_ANSWER_HINT_ACTIVATED);
       LogUtil.i("PawSecretCodeListener.onReceive", "PawAnswerHint enabled");
     }
   }
+
+  public static void selectPawType(SharedPreferences preferences) {
+    @PawType int pawType;
+    if (new Random().nextBoolean()) {
+      pawType = PAW_TYPE_CAT;
+    } else {
+      pawType = PAW_TYPE_DOG;
+    }
+    preferences
+        .edit()
+        .putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, true)
+        .putInt(PAW_TYPE, pawType)
+        .apply();
+  }
 }
diff --git a/java/com/android/incallui/answer/impl/res/values-af/strings.xml b/java/com/android/incallui/answer/impl/res/values-af/strings.xml
index 82a8796..b155ee8 100644
--- a/java/com/android/incallui/answer/impl/res/values-af/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-af/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swiep vanaf ikoon om met boodskap af te wys"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Antwoord en beëindig die voortgesette oproep"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is af"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swiep op met twee vingers om te antwoord. Swiep af met twee vingers om af te wys."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Dringend"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Belangrik"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-am/strings.xml b/java/com/android/incallui/answer/impl/res/values-am/strings.xml
index 4086977..c27705f 100644
--- a/java/com/android/incallui/answer/impl/res/values-am/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-am/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"በመልዕክት ላለመቀበል ከአዶ ያንሸራቱ"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ይመልሱ እና በመካሄድ ላይ ያለ ጥሪን ይጨርሱ"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ቪዲዮ ጠፍቷል"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ለመመለስ በሁለት ጣት ወደ ላይ ያንሸራቱ። ላለመቀበል በሁለት ጣት ወደ ታች ያንሸራቱ።"</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"አስቸኳይ"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"አስፈላጊ"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ar/strings.xml b/java/com/android/incallui/answer/impl/res/values-ar/strings.xml
index fc29c16..e3f84ff 100644
--- a/java/com/android/incallui/answer/impl/res/values-ar/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ar/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"تمرير سريع من الرمز للرفض مع إرسال رسالة"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"الرد وإنهاء مكالمة جارية"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"الفيديو قيد إيقاف التشغيل"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"مرر بأصبعين لأعلى للرد. مرر بأصبعين لأسفل للرفض."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"عاجل"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"مهم"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-az/strings.xml b/java/com/android/incallui/answer/impl/res/values-az/strings.xml
index fff561d..5d113b4 100644
--- a/java/com/android/incallui/answer/impl/res/values-az/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-az/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Mesaj göndərərək imtina etmək üçün ikonadan sürüşdürün"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Cavab verin və gedən zəngi bitirin"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videoları deaktivdir"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Cavab vermək üçün iki barmaq ilə yuxarı sürüşdürün. İmtina etmək üçün iki barmaq ilə aşağı sürüşdürün."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Vacib"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Önəmli"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml
index 7b29bfa..3acc576 100644
--- a/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prevucite od ikone da biste odbili porukom"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Javite se i završite poziv koji je u toku"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera je isključena"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prevucite nagore pomoću dva prsta da biste odgovorili. Prevucite nadole pomoću dva prsta da biste odbili."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Važno"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-be/strings.xml b/java/com/android/incallui/answer/impl/res/values-be/strings.xml
index 228a80f..4f34150 100644
--- a/java/com/android/incallui/answer/impl/res/values-be/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-be/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Правядзіце ад значка, каб адхіліць, адправіўшы SMS"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Адказаць і скончыць бягучы выклік"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Відэа адключана"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Правядзіце двума пальцамі ўверх, каб адказаць; двума пальцамі ўніз – каб адхіліць."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Тэрмінова"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Важны"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-bg/strings.xml b/java/com/android/incallui/answer/impl/res/values-bg/strings.xml
index 4e9422f..54a5ab9 100644
--- a/java/com/android/incallui/answer/impl/res/values-bg/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-bg/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Прекарайте пръст от иконата, за да отхвърлите със съобщение"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Отговор и завършване на текущото обаждане"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видеото е изключено"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Прекарайте два пръста нагоре за отговаряне, надолу за отхвърляне."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Спешно"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Важно"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-bn/strings.xml b/java/com/android/incallui/answer/impl/res/values-bn/strings.xml
index 869f7b9..d2aa4c3 100644
--- a/java/com/android/incallui/answer/impl/res/values-bn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-bn/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"বার্তা সহ প্রত্যাখ্যান করতে আইকন থেকে সোয়াইপ করুন"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"উত্তর দিন এবং  চলছে এমন কল কেটে দিন"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ভিডিও বন্ধ আছে"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"উত্তর দিতে উপরের দিকে, প্রত্যাখ্যান করতে নিচের দিকে দুই আঙুল দিয়ে সোয়াইপ করুন৷"</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"জরুরি"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"গুরুত্বপূর্ণ"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-bs/strings.xml b/java/com/android/incallui/answer/impl/res/values-bs/strings.xml
index b36e178..e175887 100644
--- a/java/com/android/incallui/answer/impl/res/values-bs/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-bs/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prevucite preko ikone da odbijete porukom"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odgovorite na poziv i završite ga"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera je isključena"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prevucite pomoću dva prsta prema gore da odgovorite. Prevucite pomoću dva prsta prema dolje da odbijete."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Važno"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ca/strings.xml b/java/com/android/incallui/answer/impl/res/values-ca/strings.xml
index 13b3b32..538e0d3 100644
--- a/java/com/android/incallui/answer/impl/res/values-ca/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ca/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Llisca des de la icona per rebutjar la trucada amb un missatge"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Respon a la trucada i finalitza l\'actual"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"El vídeo està desactivat"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Llisca amb dos dits cap amunt per respondre a la trucada i cap avall per rebutjar-la."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-cs/strings.xml b/java/com/android/incallui/answer/impl/res/values-cs/strings.xml
index 6c69030..626409e 100644
--- a/java/com/android/incallui/answer/impl/res/values-cs/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-cs/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Přejetím prstem od ikony hovor odmítnete a pošlete zprávu"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Přijmout hovor a ukončit probíhající hovor"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je vypnuté"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Přejetím dvěma prsty nahoru hovor přijmete. Přejetím dvěma prsty dolů jej odmítnete."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Naléhavé"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Důležité"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-da/strings.xml b/java/com/android/incallui/answer/impl/res/values-da/strings.xml
index 3a87d44..3870891 100644
--- a/java/com/android/incallui/answer/impl/res/values-da/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-da/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Stryg fra ikonet for at afvise med en besked"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Besvar, og afslut det igangværende opkald"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er deaktiveret"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Stryg op med to fingre for at besvare. Stryg ned med to fingre for at afvise."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Vigtigt"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-de/strings.xml b/java/com/android/incallui/answer/impl/res/values-de/strings.xml
index f4356d2..ab3c33c 100644
--- a/java/com/android/incallui/answer/impl/res/values-de/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-de/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Zum Ablehnen mit Nachricht vom Symbol wegwischen"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Nimm den Anruf an und beende den aktuellen Anruf"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video deaktiviert"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Zum Annehmen mit zwei Fingern nach oben wischen. Zum Ablehnen mit zwei Fingern nach unten wischen."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Dringend"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Wichtig"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-el/strings.xml b/java/com/android/incallui/answer/impl/res/values-el/strings.xml
index 9c9a0f3..d847aac 100644
--- a/java/com/android/incallui/answer/impl/res/values-el/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-el/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Σύρετε από το εικονίδιο προς τα έξω για απόρριψη του μηνύματος"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Απάντηση και τερματισμός κλήσης σε εξέλιξη"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Το βίντεο είναι ανενεργό"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Σύρετε με δύο δάχτυλα, προς τα επάνω για απάντηση και προς τα κάτω για απόρριψη."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Επείγον"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Σημαντικό"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml
index fb8d156..fe6aa46 100644
--- a/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swipe from icon to decline with a message"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml
index fb8d156..fe6aa46 100644
--- a/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swipe from icon to decline with a message"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml
index fb8d156..fe6aa46 100644
--- a/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swipe from icon to decline with a message"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml b/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml
index 14928ee..60fcd01 100644
--- a/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Desliza desde el ícono para rechazar la llamada con un mensaje"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responder y finalizar la llamada en curso"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"El video está desactivado"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Desliza dos dedos hacia arriba para responder la llamada o hacia abajo para rechazarla."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-es/strings.xml b/java/com/android/incallui/answer/impl/res/values-es/strings.xml
index 972bbc5..7b2f19a 100644
--- a/java/com/android/incallui/answer/impl/res/values-es/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-es/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Desliza desde el icono para rechazar con mensaje"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responder a una llamada y finalizar otra en curso"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"El vídeo está desconectado"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Desliza dos dedos hacia arriba para responder o hacia abajo para rechazar la llamada."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-et/strings.xml b/java/com/android/incallui/answer/impl/res/values-et/strings.xml
index 9e303bb..b4632d1 100644
--- a/java/com/android/incallui/answer/impl/res/values-et/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-et/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Sõnumiga keeldumiseks pühkige ikoonilt eemale"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Vastake ja lõpetage käimasolev kõne"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video on välja lülitatud"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vastamiseks pühkige kahe sõrmega üles. Keeldumiseks pühkige kahe sõrmega alla."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Kiireloomuline"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Tähtis"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-eu/strings.xml b/java/com/android/incallui/answer/impl/res/values-eu/strings.xml
index a1f6d71..118a2c7 100644
--- a/java/com/android/incallui/answer/impl/res/values-eu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-eu/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Pasatu hatza ikonotik baztertzeko eta mezu bat bidaltzeko"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Erantzun eta amaitu uneko deia"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Desaktibatuta dago kamera"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Pasatu bi hatz gora erantzuteko; eta behera, baztertzeko."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Premiazkoa"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Garrantzitsua"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fa/strings.xml b/java/com/android/incallui/answer/impl/res/values-fa/strings.xml
index 28cf826..971b172 100644
--- a/java/com/android/incallui/answer/impl/res/values-fa/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fa/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"برای رد کردن با ارسال پیام، انگشتتان را تند از روی نماد بکشید"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"پاسخ دادن به تماس درحال انجام و پایان دادن به آن"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ویدیو خاموش است"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"برای پاسخ‌گویی، دو انگشتتان را تند به بالا بکشید و برای رد کردن به پایین بکشید."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"فوری"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"مهم"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fi/strings.xml b/java/com/android/incallui/answer/impl/res/values-fi/strings.xml
index 8b8eac9..7ae9a1f 100644
--- a/java/com/android/incallui/answer/impl/res/values-fi/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fi/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Hylkää ja kirjoita viesti pyyhkäisemällä kuvaketta."</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Vastaa puheluun ja lopeta nykyinen puhelu"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videokuva ei ole käytössä."</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vastaa pyyhkäisemällä ylös kahdella sormella. Hylkää pyyhkäisemällä alas kahdella sormella."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Kiireellinen"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Tärkeä"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml b/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml
index 9ea27b8..ce454b5 100644
--- a/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Balayez à partir de l\'icône pour refuser avec un message"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Répondre et mettre fin à l\'appel en cours"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"La vidéo est désactivée"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Balayez vers le haut avec deux doigts pour répondre. Balayez vers le bas avec deux doigts pour refuser."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fr/strings.xml b/java/com/android/incallui/answer/impl/res/values-fr/strings.xml
index 3aa3c12..7f77ed0 100644
--- a/java/com/android/incallui/answer/impl/res/values-fr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Appuyer sur l\'icône, puis balayer l\'écran pour refuser l\'appel en envoyant un message"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Répondre ou mettre fin à l\'appel en cours"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"La vidéo est désactivée."</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Balayez l\'écran avec deux doigts vers le haut pour répondre, ou vers le bas pour refuser l\'appel."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Importants"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-gl/strings.xml b/java/com/android/incallui/answer/impl/res/values-gl/strings.xml
index 16c0f69..07e0c51 100644
--- a/java/com/android/incallui/answer/impl/res/values-gl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-gl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Pasar o dedo desde a icona para rexeitar cunha mensaxe"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responde á chamada entrante e finaliza a chamada en curso"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desactivado"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Pasa dous dedos cara arriba para responder a chamada ou cara abaixo para rexeitala."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urxente"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-gu/strings.xml b/java/com/android/incallui/answer/impl/res/values-gu/strings.xml
index 3f99c71..845e9de 100644
--- a/java/com/android/incallui/answer/impl/res/values-gu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-gu/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"સંદેશ સાથે નકારવા માટે આઇકનથી સ્વાઇપ કરો"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"જવાબ આપો અને ચાલુ કૉલ સમાપ્ત કરો"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"વિડિઓ બંધ છે"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"જવાબ આપવા માટે બે આંગળી ઉપર સ્વાઇપ કરો. નકારવા માટે બે આંગળી નીચે સ્વાઇપ કરો."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"તાત્કાલિક"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"મહત્વપૂર્ણ"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hi/strings.xml b/java/com/android/incallui/answer/impl/res/values-hi/strings.xml
index f28505f..e8e3c75 100644
--- a/java/com/android/incallui/answer/impl/res/values-hi/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hi/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"संदेश के साथ अस्वीकार करने के लिए आइकन से स्वाइप करें"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"कॉल का जवाब दें और जारी कॉल समाप्त करें"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"वीडियो बंद है"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"जवाब देने के लिए दो अंगुलियों से ऊपर स्वाइप करें. अस्वीकार करने के लिए दो अंगुलियों से नीचे स्वाइप करें."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"बहुत ज़रूरी"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"महत्वपूर्ण"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hr/strings.xml b/java/com/android/incallui/answer/impl/res/values-hr/strings.xml
index 2807439..ffd0c9b 100644
--- a/java/com/android/incallui/answer/impl/res/values-hr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prijeđite prstom od ikone da biste odbili poruku"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odgovorite na poziv i prekinite poziv u tijeku"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videokamera je isključena"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prijeđite dvama prstima prema gore za odgovor, a dvama prstima prema dolje za odbijanje."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Važno"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hu/strings.xml b/java/com/android/incallui/answer/impl/res/values-hu/strings.xml
index d7dacbf..13ec7da 100644
--- a/java/com/android/incallui/answer/impl/res/values-hu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hu/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Csúsztassa el az ujját az ikonról az üzenettel való elutasításhoz"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Hívásfogadás és a folyamatban lévő hívás befejezése"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"A videokép ki van kapcsolva"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Csúsztassa felfelé két ujját a hívás fogadásához. Csúsztassa lefelé két ujját a hívás elutasításához."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Sürgős"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Fontos"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hy/strings.xml b/java/com/android/incallui/answer/impl/res/values-hy/strings.xml
index 4492833..7fb7ef4 100644
--- a/java/com/android/incallui/answer/impl/res/values-hy/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hy/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Զանգը մերժելու և հաղորդագրություն ուղարկելու համար պատկերակից մատով մի կողմ սահեցրեք"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Պատասխանել և ավարտել ընթացիկ զանգը"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Տեսախցիկն անջատած է"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Պատասխանելու համար երկու մատով սահեցրեք վերև, մերժելու համար՝ ներքև:"</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Շտապ"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Կարևոր"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-in/strings.xml b/java/com/android/incallui/answer/impl/res/values-in/strings.xml
index a1fd19f..48d71af 100644
--- a/java/com/android/incallui/answer/impl/res/values-in/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-in/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Gesek dari ikon untuk menolak dengan pesan"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Menjawab dan mengakhiri panggilan yang sedang berlangsung"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video nonaktif"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Geser ke atas dengan dua jari untuk menjawab. Geser ke bawah dengan dua jari untuk menolak."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Penting"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Penting"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-is/strings.xml b/java/com/android/incallui/answer/impl/res/values-is/strings.xml
index c4f9eb4..a92a411 100644
--- a/java/com/android/incallui/answer/impl/res/values-is/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-is/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Strjúktu frá tákninu til að hafna með skilaboðum"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svara og ljúka yfirstandandi símtali"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Slökkt á myndavél"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Strjúktu upp með tveimur fingrum til að svara. Strjúktu niður með tveimur fingrum til að hafna."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Áríðandi"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Mikilvægt"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-it/strings.xml b/java/com/android/incallui/answer/impl/res/values-it/strings.xml
index 70e9722..b29bca7 100644
--- a/java/com/android/incallui/answer/impl/res/values-it/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-it/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Fai scorrere dall\'icona per rifiutare e inviare un messaggio"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Rispondi e termina la chiamata in corso"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Il video è disattivato"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Fai scorrere con due dita verso l\'alto per rispondere e verso il basso per rifiutare."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-iw/strings.xml b/java/com/android/incallui/answer/impl/res/values-iw/strings.xml
index 08c02e3..6544e8f 100644
--- a/java/com/android/incallui/answer/impl/res/values-iw/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-iw/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"החלק מהסמל כדי לדחות עם הודעה"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"מענה וסיום שיחה"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"הווידאו מושבת"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"החלק עם שתי אצבעות למעלה כדי לענות או למטה כדי לדחות."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"דחופה"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"חשוב"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ja/strings.xml b/java/com/android/incallui/answer/impl/res/values-ja/strings.xml
index b7bd65b..83f8f09 100644
--- a/java/com/android/incallui/answer/impl/res/values-ja/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ja/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"アイコンをスワイプして着信を拒否し、メッセージを送信"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"通話に応答し、進行中の通話を終了"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ビデオ: OFF"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"応答するには 2 本の指で上にスワイプ、拒否するには 2 本の指で下にスワイプします。"</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"重要"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ka/strings.xml b/java/com/android/incallui/answer/impl/res/values-ka/strings.xml
index 6813067..4a1120c 100644
--- a/java/com/android/incallui/answer/impl/res/values-ka/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ka/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"გადაუსვით ხატულადან შეტყობინებით უარყოფისთვის"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"პასუხი და მიმდინარე ზარის დასრულება"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ვიდეო გამორთულია"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"საპასუხოდ გადაფურცლეთ ზემოთ ორი თითით. უარყოფისთვის გადაფურცლეთ ქვემოთ ორი თითით."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"სასწრაფო"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"მნიშვნელოვანი"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-kk/strings.xml b/java/com/android/incallui/answer/impl/res/values-kk/strings.xml
index 3d18633..69cf949 100644
--- a/java/com/android/incallui/answer/impl/res/values-kk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-kk/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Қабылдамай, жай хабар жіберу үшін, белгішеден әрі қарай сырғытыңыз"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Қоңырауға жауап беру және ағымдағы қоңырауды аяқтау"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Бейне өшірулі"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Жауап беру үшін екі саусақпен жоғары сырғытылады. Қабылдамау үшін екі саусақпен төмен сырғытылады."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Шұғыл"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Маңызды"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-km/strings.xml b/java/com/android/incallui/answer/impl/res/values-km/strings.xml
index 89f9031..db65a97 100644
--- a/java/com/android/incallui/answer/impl/res/values-km/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-km/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"អូស​ចេញ​ពី​រូបតំណាង​ដើម្បី​បដិសេធ​​ដោយ​មាន​សារ"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ឆ្លើយ និង​បញ្ចប់​ការ​ហៅ​ទូរសព្ទ​ដែល​កំពុង​ដំណើរការ"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"វីដេអូត្រូវបានបិទ"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"អូស​ម្រាម​ដៃ​ពីរ​ឡើងលើ​ ដើម្បី​ឆ្លើយ។ អូស​ម្រាមដៃ​ពីរ​ចុះ​ក្រោម​ ដើម្បី​បដិសេធ។"</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"បន្ទាន់"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"សំខាន់"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-kn/strings.xml b/java/com/android/incallui/answer/impl/res/values-kn/strings.xml
index f02a6b8..8426aef 100644
--- a/java/com/android/incallui/answer/impl/res/values-kn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-kn/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"ಸಂದೇಶದ ಜೊತೆಗೆ ನಿರಾಕರಿಸಲು ಐಕಾನ್‌ನಿಂದ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಕರೆಗೆ ಉತ್ತರಿಸಿ ಮತ್ತು ಅಂತ್ಯಗೊಳಿಸಿ"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ವೀಡಿಯೊ ಆಫ್ ಆಗಿದೆ"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ಉತ್ತರಿಸಲು ಎರಡು ಬೆರಳಿನಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ನಿರಾಕರಿಸಲು ಎರಡು ಬೆರಳಿನಿಂದ ಕೆಳಗೆ ಸ್ವೈಪ್ ಮಾಡಿ."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"ತುರ್ತು"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"ಪ್ರಮುಖ"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ko/strings.xml b/java/com/android/incallui/answer/impl/res/values-ko/strings.xml
index 850b440..6b6beff 100644
--- a/java/com/android/incallui/answer/impl/res/values-ko/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ko/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"메시지를 거부하려면 아이콘에서 스와이프하세요."</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"현재 통화를 종료하고 전화 받기"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"동영상이 꺼져 있습니다."</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"받으려면 두 손가락을 위로 스와이프하고 거부하려면 두 손가락을 아래로 스와이프하세요."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"긴급"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"중요"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ky/strings.xml b/java/com/android/incallui/answer/impl/res/values-ky/strings.xml
index dc08e84..6dd5a2d 100644
--- a/java/com/android/incallui/answer/impl/res/values-ky/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ky/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Чалууну билдирүү менен четке кагуу үчүн сүрөтчөнү сүрүңүз"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Чалууга жооп бериңиз же учурдагы чалууну аяктаңыз"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видео өчүк"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Жооп берүү үчүн экранды өйдө сүрүп, четке кагуу үчүн ылдый сүрүп коюңуз."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Шашылыш"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Маанилүү"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-lo/strings.xml b/java/com/android/incallui/answer/impl/res/values-lo/strings.xml
index 06ad00c..776c027 100644
--- a/java/com/android/incallui/answer/impl/res/values-lo/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-lo/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"ປັດຈາກໄອຄອນເພື່ອປະຕິເສດຂໍ້ຄວາມ"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ຮັບສາຍ ແລະ ວາງສາຍທີ່ກຳລັງໂທອອກ"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ວິດີໂອປິດຢູ່"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ປັດສອງນິ້ວຂຶ້ນເພື່ອຮັບສາຍ. ປັດສອງນິ້ວລົງເພື່ອປະຕິເສດ."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"ດ່ວນ"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"ສຳຄັນ"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-lt/strings.xml b/java/com/android/incallui/answer/impl/res/values-lt/strings.xml
index 3366e33..2ef70ea 100644
--- a/java/com/android/incallui/answer/impl/res/values-lt/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-lt/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Perbraukite iš piktogramos, kad atmestumėte išsiųsdami pranešimą"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atsakykite ir užbaikite vykstantį skambutį"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Vaizdas išjungtas"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Perbraukite dviem pirštais aukštyn, kad atsakytumėte. Perbraukite dviem pirštais žemyn, kad atmestumėte."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Skubus"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Svarbu"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-lv/strings.xml b/java/com/android/incallui/answer/impl/res/values-lv/strings.xml
index 49d1dc9..3fc754d 100644
--- a/java/com/android/incallui/answer/impl/res/values-lv/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-lv/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Lai noraidītu, izmantojot ziņojumu, velciet no ikonas"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atbildiet un beidziet notiekošo zvanu"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video ir izslēgts"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Ar diviem pirkstiem velciet augšup, lai atbildētu. Ar diviem pirkstiem velciet lejup, lai noraidītu."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Steidzams"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Svarīgs"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-mk/strings.xml b/java/com/android/incallui/answer/impl/res/values-mk/strings.xml
index c068f66..deeba45 100644
--- a/java/com/android/incallui/answer/impl/res/values-mk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-mk/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Повлечете од иконата за да одбиете со порака"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Одговорете и завршете го тековниот повик"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видеото е исклучено"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Повлечете нагоре со два прста за да одговорите. Повлечете надолу со два прста за да одбиете."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Итно"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Важно"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ml/strings.xml b/java/com/android/incallui/answer/impl/res/values-ml/strings.xml
index 8e1d492..d8ce90d 100644
--- a/java/com/android/incallui/answer/impl/res/values-ml/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ml/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"സന്ദേശമയച്ചുകൊണ്ട് നിരസിക്കാൻ ഐക്കണിൽ നിന്ന് സ്വൈപ്പുചെയ്യുക"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"മറുപടി നൽകുകയും നിലവിലുള്ള കോൾ അവസാനിപ്പിക്കുകയും ചെയ്യൂ"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"വീഡിയോ ഓഫാണ്"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"മറുപടി നൽകാൻ രണ്ടുവിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പുചെയ്യുക. നിരസിക്കാൻ രണ്ടുവിരലുകൾ ഉപയോഗിച്ച് താഴേക്ക് സ്വൈപ്പുചെയ്യുക."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"അടിയന്തിര പ്രാധാന്യം"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"പ്രധാനപ്പെട്ടവ"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-mn/strings.xml b/java/com/android/incallui/answer/impl/res/values-mn/strings.xml
index 4bdd912..aaa1621 100644
--- a/java/com/android/incallui/answer/impl/res/values-mn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-mn/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Зурвас явуулангаа татгалзах бол дүрснээс шударна уу"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Ирсэн дуудлагыг авч, одоогийн дуудлагыг таслах"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видео идэвхгүй байна"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Хариулах бол хоёр хуруугаар дээш шударна уу. Таслах бол хоёр хуруугаар доош шударна уу."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Яаралтай"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Чухал"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-mr/strings.xml b/java/com/android/incallui/answer/impl/res/values-mr/strings.xml
index 11c8268..eea662f 100644
--- a/java/com/android/incallui/answer/impl/res/values-mr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-mr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"संदेशासह नाकारण्यासाठी आयकॉनपासून स्वाइप करा"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"उत्तर द्या आणि सुरु असलेला कॉल बंद करा"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"व्हिडिओ बंद आहे"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"उत्तर देण्यासाठी दोन बोटांनी वर स्वाइप करा. नकार देण्यासाठी दोन बोटांनी खाली स्वाइप करा."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"त्वरित"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"महत्त्वाचे"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ms/strings.xml b/java/com/android/incallui/answer/impl/res/values-ms/strings.xml
index 36ede75..04b054e 100644
--- a/java/com/android/incallui/answer/impl/res/values-ms/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ms/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Leret dari ikon untuk menolak dengan mesej"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Jawab dan tamatkan panggilan yang sedang berlangsung"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video dimatikan"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Leret dua jari ke atas untuk menjawab. Leret dua jari ke bawah untuk menolak."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Segera"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Penting"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-my/strings.xml b/java/com/android/incallui/answer/impl/res/values-my/strings.xml
index 5ad7a82..f3d6a2e 100644
--- a/java/com/android/incallui/answer/impl/res/values-my/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-my/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"မက်ဆေ့ဂျ်ဖြင့်ငြင်းပယ်ရန် သင်္ကေတမှ ပွတ်ဆွဲပါ"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ဖြေကြားပြီး လက်ရှိခေါ်ဆိုမှုကို အပြီးသတ်ပါ"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ဗီဒီယို ပိတ်ထားပါသည်"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ဖြေကြားရန် လက်နှစ်ချောင်းဖြင့် အပေါ်သို့ ပွတ်ဆွဲပါ။ ငြင်းပယ်ရန် လက်နှစ်ချောင်းဖြင့် အောက်သို့ ပွတ်ဆွဲပါ။"</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"အရေးတကြီး"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"အရေးကြီး"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-nb/strings.xml b/java/com/android/incallui/answer/impl/res/values-nb/strings.xml
index b1c32be..42ff3d0 100644
--- a/java/com/android/incallui/answer/impl/res/values-nb/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-nb/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Sveip fra ikonet for å avslå med en melding"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svar, og avslutt samtalen som er i gang"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er av"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Sveip oppover med to fingre for å svare. Sveip nedover med to fingre for å avvise."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Viktig"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ne/strings.xml b/java/com/android/incallui/answer/impl/res/values-ne/strings.xml
index 40ef7b6..f0b8641 100644
--- a/java/com/android/incallui/answer/impl/res/values-ne/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ne/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"सन्देश सहित अस्वीकार गर्न आइकनबाट स्वाइप गर्नुहोस्"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"जवाफ फर्काउनुहोस् र जारी कललाई अन्त्य गर्नुहोस्"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"भिडियो निष्क्रिय छ"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"जवाफ दिन दुई औंलाले माथितिर स्वाइप गर्नुहोस्। अस्वीकार गर्न दुई औंलाले तलतिर स्वाइप गर्नुहोस्।"</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"जरुरी"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"महत्त्वपूर्ण"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-nl/strings.xml b/java/com/android/incallui/answer/impl/res/values-nl/strings.xml
index b2f619f..89c956a 100644
--- a/java/com/android/incallui/answer/impl/res/values-nl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-nl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Veeg vanaf pictogram om te weigeren met bericht"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Opnemen en actieve oproep beëindigen"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is uit"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Veeg met twee vingers omhoog om te beantwoorden. Veeg met twee vingers omlaag om te weigeren."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Belangrijk"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-no/strings.xml b/java/com/android/incallui/answer/impl/res/values-no/strings.xml
index b1c32be..42ff3d0 100644
--- a/java/com/android/incallui/answer/impl/res/values-no/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-no/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Sveip fra ikonet for å avslå med en melding"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svar, og avslutt samtalen som er i gang"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er av"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Sveip oppover med to fingre for å svare. Sveip nedover med to fingre for å avvise."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Viktig"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pa/strings.xml b/java/com/android/incallui/answer/impl/res/values-pa/strings.xml
index d2b1452..3772f29 100644
--- a/java/com/android/incallui/answer/impl/res/values-pa/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pa/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"ਸੁਨੇਹੇ ਦੇ ਨਾਲ ਅਸਵੀਕਾਰ ਕਰਨ ਲਈ ਚਿੰਨ੍ਹ ਤੋਂ ਸਵਾਈਪ ਕਰੋ"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ਜਵਾਬ ਦਿਓ ਅਤੇ ਜਾਰੀ ਕਾਲ ਨੂੰ ਸਮਾਪਤ ਕਰੋ"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ਵੀਡੀਓ ਬੰਦ ਹੈ"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ਜਵਾਬ ਦੇਣ ਲਈ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ। ਅਸਵੀਕਾਰ ਕਰਨ ਲਈ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਹੇਠਾਂ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।"</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"ਜ਼ਰੂਰੀ"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"ਮਹੱਤਵਪੂਰਨ"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pl/strings.xml b/java/com/android/incallui/answer/impl/res/values-pl/strings.xml
index b0c44e7..f6e1f1b 100644
--- a/java/com/android/incallui/answer/impl/res/values-pl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Przesuń palcem od ikony, aby odrzucić połączenie i wysłać wiadomość"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odbierz połączenie i zakończ trwającą rozmowę"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Wideo jest wyłączone"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Przesuń dwoma palcami w górę, aby odebrać. Przesuń dwoma palcami w dół, aby odrzucić."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Pilne"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Ważne"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml
index fe1c89d..1ed2451 100644
--- a/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Deslize a partir do ícone para recusar com uma mensagem"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e encerrar a chamada em andamento"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize com dois dedos para cima para atender. Deslize com dois dedos para baixo para recusar."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml
index 1a23a4a..f1e17a1 100644
--- a/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Deslize rapidamente a partir do ícone para recusar com uma mensagem"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e terminar uma chamada em curso"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize rapidamente com dois dedos para cima para responder. Deslize rapidamente com dois dedos para baixo para recusar."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pt/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt/strings.xml
index fe1c89d..1ed2451 100644
--- a/java/com/android/incallui/answer/impl/res/values-pt/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pt/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Deslize a partir do ícone para recusar com uma mensagem"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e encerrar a chamada em andamento"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize com dois dedos para cima para atender. Deslize com dois dedos para baixo para recusar."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ro/strings.xml b/java/com/android/incallui/answer/impl/res/values-ro/strings.xml
index 6c8bafa..0b1f4f4 100644
--- a/java/com/android/incallui/answer/impl/res/values-ro/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ro/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Glisați de pe pictogramă pentru a respinge cu un mesaj"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Răspundeți și încheiați apelul în curs"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Camera video este dezactivată."</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Glisați cu două degete în sus pentru a răspunde și în jos pentru a respinge."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ru/strings.xml b/java/com/android/incallui/answer/impl/res/values-ru/strings.xml
index 67ff06a..d1fdcf7 100644
--- a/java/com/android/incallui/answer/impl/res/values-ru/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ru/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Чтобы отклонить вызов и отправить SMS, проведите пальцем от значка"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Ответить и завершить текущий вызов"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Камера выключена"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Проведите двумя пальцами по экрану вверх, чтобы ответить, или вниз, чтобы отклонить вызов."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Срочно"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Важный звонок"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-si/strings.xml b/java/com/android/incallui/answer/impl/res/values-si/strings.xml
index ae3c080..99f4989 100644
--- a/java/com/android/incallui/answer/impl/res/values-si/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-si/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"පණිවිඩය සහිතව ප්‍රතික්ෂේප කිරීමට නිරූපකයේ සිට ස්වයිප් කරන්න"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"යන අැමතුමට පිළිතරු දී අවසන් කරන්න"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"වීඩියෝව ක්‍රියාවිරහිතයි"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"පිළිතුරු දීමට ඇඟිලි දෙකකින් ඉහළට ස්වයිප් කරන්න, ප්‍රතික්ෂේප කිරීමට ඇඟිලි දෙකකින් පහළට ස්වයිප් කරන්න."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"හදිසි"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"වැදගත්"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sk/strings.xml b/java/com/android/incallui/answer/impl/res/values-sk/strings.xml
index 179be7b..fa00ac4 100644
--- a/java/com/android/incallui/answer/impl/res/values-sk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sk/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prejdením prstom od ikony odmietnuť so správou"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Prijať hovor a ukončiť prebiehajúci hovor"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je vypnuté"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Ak chcete hovor prijať, prejdite dvomi prstami nahor. Ak ho chcete odmietnuť, prejdite dvomi prstami nadol."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Naliehavé"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Dôležité"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sl/strings.xml b/java/com/android/incallui/answer/impl/res/values-sl/strings.xml
index 5f658be..147a098 100644
--- a/java/com/android/incallui/answer/impl/res/values-sl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Povlecite z ikone, da klic zavrnete s sporočilom"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Sprejmi klic in končaj aktivni klic"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je izklopljen"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Z dvema prstoma povlecite navzgor, da sprejmete klic. Z dvema prstoma povlecite navzdol, da zavrnete klic."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Nujno"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Pomembno"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sq/strings.xml b/java/com/android/incallui/answer/impl/res/values-sq/strings.xml
index 1de60c9..e71691a 100644
--- a/java/com/android/incallui/answer/impl/res/values-sq/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sq/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Rrëshqit nga ikona për të refuzuar me mesazh"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Përgjigju dhe mbyll telefonatën në vazhdim"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videoja është joaktive"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Rrëshqit dy gishta lart për t\'u përgjigjur. Rrëshqit dy gishta poshtë për të refuzuar."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Urgjente"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"E rëndësishme"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sr/strings.xml b/java/com/android/incallui/answer/impl/res/values-sr/strings.xml
index 4d6ef56..c802b0e 100644
--- a/java/com/android/incallui/answer/impl/res/values-sr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Превуците од иконе да бисте одбили поруком"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Јавите се и завршите позив који је у току"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Камера је искључена"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Превуците нагоре помоћу два прста да бисте одговорили. Превуците надоле помоћу два прста да бисте одбили."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Хитно"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Важно"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sv/strings.xml b/java/com/android/incallui/answer/impl/res/values-sv/strings.xml
index e47b4e0..2265dc4 100644
--- a/java/com/android/incallui/answer/impl/res/values-sv/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sv/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Svep från ikonen för att avvisa med meddelande"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svara och avsluta pågående samtal"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video avstängd"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Dra två fingrar uppåt för att svara och två nedåt för att avvisa."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Brådskande"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Viktigt"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sw/strings.xml b/java/com/android/incallui/answer/impl/res/values-sw/strings.xml
index 1e58966..26e1b7a 100644
--- a/java/com/android/incallui/answer/impl/res/values-sw/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sw/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Telezesha kidole ukianzia kwenye aikoni ili utume ujumbe wa kukataa"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Jibu na ukate simu inayoendelea"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video imezimwa"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Telezesha juu kwa vidole viwili ili uijibu. Telezesha chini kwa vidole viwili ili uikate."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Dharura"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Muhimu"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ta/strings.xml b/java/com/android/incallui/answer/impl/res/values-ta/strings.xml
index 847936f..453781d 100644
--- a/java/com/android/incallui/answer/impl/res/values-ta/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ta/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"செய்தியுடன் நிராகரிக்க, ஐகானிலிருந்து ஸ்வைப் செய்யவும்"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"உள்வரும் அழைப்பிற்குப் பதிலளித்து, செயலில் உள்ள அழைப்பை முடிக்கும்"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"வீடியோ முடக்கப்பட்டுள்ளது"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"பதிலளிக்க, இரு விரல்களால் மேலே ஸ்வைப் செய்யவும். நிராகரிக்க, இரு விரல்களால் கீழே ஸ்வைப் செய்யவும்."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"அவசரம்"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"முக்கிய அழைப்பு"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-te/strings.xml b/java/com/android/incallui/answer/impl/res/values-te/strings.xml
index abc3902..e0e5087 100644
--- a/java/com/android/incallui/answer/impl/res/values-te/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-te/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"సందేశంతో తిరస్కరించడానికి చిహ్నం నుండి స్వైప్ చేయండి"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"సమాధానం ఇస్తుంది మరియు కొనసాగుతున్న కాల్‌ను ముగిస్తుంది"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"వీడియో ఆఫ్‌లో ఉంది"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"సమాధానం ఇవ్వడానికి రెండు వేళ్లతో పైకి స్వైప్ చేయండి. తిరస్కరించడానికి రెండు వేళ్లతో క్రిందికి స్వైప్ చేయండి."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"అత్యవసరం"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"ముఖ్యమైనది"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-th/strings.xml b/java/com/android/incallui/answer/impl/res/values-th/strings.xml
index 54069b3..695da74 100644
--- a/java/com/android/incallui/answer/impl/res/values-th/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-th/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"เลื่อนไอคอนเพื่อปฏิเสธสายด้วยข้อความ"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"รับและวางสาย"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"วิดีโอปิดอยู่"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ใช้สองนิ้วเลื่อนขึ้นเพื่อรับสายและเลื่อนลงเพื่อตัดสาย"</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"ด่วน"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"สำคัญ"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-tl/strings.xml b/java/com/android/incallui/answer/impl/res/values-tl/strings.xml
index 8f87b56..6128d6f 100644
--- a/java/com/android/incallui/answer/impl/res/values-tl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-tl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"I-swipe mula sa icon upang tanggihan gamit ang mensahe"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Sagutin at tapusin ang kasalukuyang tawag"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Naka-off ang video"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"I-swipe nang pataas gamit ang dalawang daliri upang sagutin. I-swipe nang pababa gamit ang dalawang daliri upang tanggihan."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Apurahan"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Mahalaga"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-tr/strings.xml b/java/com/android/incallui/answer/impl/res/values-tr/strings.xml
index 53f5eb9..87583c0 100644
--- a/java/com/android/incallui/answer/impl/res/values-tr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-tr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Mesajla reddetmek için, simgeden hızlıca kaydırın"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Bir çağrı cevaplanır ve devam eden çağrı sona erdirilir"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video kapalı"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Cevaplamak için iki parmağınızla hızlıca yukarı kaydırın. Reddetmek içinse iki parmağınızla hızlıca aşağı kaydırın."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Acil"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Önemli"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-uk/strings.xml b/java/com/android/incallui/answer/impl/res/values-uk/strings.xml
index a0332d3..76eb2b0 100644
--- a/java/com/android/incallui/answer/impl/res/values-uk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-uk/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Проведіть пальцем убік від значка, щоб відхилити з повідомленням"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Відповісти на виклик, завершивши поточний"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Відео вимкнено"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Проведіть двома пальцями вгору, щоб відповісти, або вниз, щоб відхилити дзвінок."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Терміново"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Важливо"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ur/strings.xml b/java/com/android/incallui/answer/impl/res/values-ur/strings.xml
index e1813cb..2a44e90 100644
--- a/java/com/android/incallui/answer/impl/res/values-ur/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ur/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"پیغام کے ساتھ رد کرنے کیلئے آئیکن سے سوائپ کریں"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"جواب دیں اور جاری کال ختم کریں"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"ویڈیو آف ہے"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"جواب دینے کیلئے دوانگلیوں کے ساتھ اوپر سوائپ کریں۔ مسترد کرنے کیلئے دو انگلیوں کے ساتھ نیچے سوائپ کریں۔"</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"ارجنٹ"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"اہم"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-uz/strings.xml b/java/com/android/incallui/answer/impl/res/values-uz/strings.xml
index b83abcc..f348a49 100644
--- a/java/com/android/incallui/answer/impl/res/values-uz/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-uz/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Qo‘ng‘iroqni SMS bilan rad etish uchun nishonchadan suring."</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Kiruvchi chaqiruvga javob berish va joriy qo‘ng‘iroqni tugatish"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera o‘chiq"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Chaqiruvga javob berish uchun ikki barmoq bilan tepaga, rad etish uchun ikki barmoq bilan pastga suring."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Juda muhim"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Muhim qo‘ng‘iroq"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-vi/strings.xml b/java/com/android/incallui/answer/impl/res/values-vi/strings.xml
index 94dd1c3..f4dfa5b 100644
--- a/java/com/android/incallui/answer/impl/res/values-vi/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-vi/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Vuốt từ biểu tượng để từ chối kèm thông báo"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Trả lời và kết thúc cuộc gọi đang diễn ra"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video đã tắt"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vuốt hai ngón tay lên để trả lời. Vuốt hai ngón tay xuống để từ chối."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Khẩn cấp"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Quan trọng"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml
index fc7ce64..9698aa0 100644
--- a/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"滑动图标即可拒接来电并发送信息"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接听并结束当前通话"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"摄像头处于关闭状态"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"双指向上滑动即可接听，向下滑动则可拒接。"</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"紧急"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"重要"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml
index 9795539..81a8815 100644
--- a/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"從圖示快速滑動即可透過訊息拒絕"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接聽及結束進行中的通話"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"視像已關閉"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"兩指向上滑動可接聽，向下滑動則可拒接。"</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"重要事項"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml
index f27e5ae..8f04992 100644
--- a/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"滑動圖示即可拒接來電並傳送簡訊"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接聽來電及結束進行中的通話"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"已關閉攝影機"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"用雙指向上滑動可接聽，向下滑動可拒接。"</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"重要"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zu/strings.xml b/java/com/android/incallui/answer/impl/res/values-zu/strings.xml
index 52f2400..23c988e 100644
--- a/java/com/android/incallui/answer/impl/res/values-zu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zu/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swayipha isithonjana ukuze wenqabe ngomlayezo"</string>
@@ -20,5 +36,5 @@
     <string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Phendula uphinde uqede ikholi eqhubekayo"</string>
     <string name="call_incoming_video_is_off" msgid="3216603035158629403">"Ividiyo ivaliwe"</string>
     <string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swayiphela iminwe emibili phezulu ukuze uphendule. Swayiphela iminwe emibili phansi ukuze wenqabe."</string>
-    <string name="call_incoming_important" msgid="4090408168895243702">"Okuphuthumayo"</string>
+    <string name="call_incoming_important" msgid="3762352743365137090">"Kubalulekile"</string>
 </resources>
diff --git a/java/com/android/incallui/answer/impl/res/values/strings.xml b/java/com/android/incallui/answer/impl/res/values/strings.xml
index 2359220..de5ee6e 100644
--- a/java/com/android/incallui/answer/impl/res/values/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values/strings.xml
@@ -1,4 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
 <resources>
   <string name="call_incoming_swipe_to_decline_with_message">Swipe from icon to decline with message</string>
   <string name="call_incoming_swipe_to_answer_video_as_audio">Swipe from icon to answer as an audio call</string>
@@ -26,5 +41,5 @@
   <!-- Voice prompt of swipe gesture when accessibility is turned on. -->
   <string description="The message announced to accessibility assistance on incoming call."
     name="a11y_incoming_call_swipe_gesture_prompt">Two finger swipe up to answer. Two finger swipe down to decline.</string>
-  <string name="call_incoming_important">Urgent</string>
+  <string name="call_incoming_important">Important</string>
 </resources>
diff --git a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java
index 9815981..10a3413 100644
--- a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java
+++ b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java
@@ -32,6 +32,10 @@
   void onReject();
 
   void onAnswerAndReleaseCall();
+
+  void onAnswerAndReleaseButtonEnabled();
+
+  void onAnswerAndReleaseButtonDisabled();
   /**
    * Sets the window background color based on foreground call's theme and the given progress. This
    * is called from the answer UI to animate the accept and reject action.
diff --git a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
index 24fbfc4..fe4ae9f 100644
--- a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
+++ b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
@@ -143,6 +143,9 @@
   public void onInternationalCallOnWifi() {}
 
   @Override
+  public void onEnrichedCallSessionUpdate() {}
+
+  @Override
   public void onDialerCallSessionModificationStateChange() {}
 
   @Override
diff --git a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
index c757477..c7a9d63 100644
--- a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
+++ b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
@@ -18,6 +18,7 @@
 
 import android.app.Dialog;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.content.res.ColorStateList;
 import android.graphics.PorterDuff.Mode;
 import android.os.Bundle;
@@ -41,6 +42,8 @@
   /** Called when an audio route is picked */
   public interface AudioRouteSelectorPresenter {
     void onAudioRouteSelected(int audioRoute);
+
+    void onAudioRouteSelectorDismiss();
   }
 
   public static AudioRouteSelectorDialogFragment newInstance(CallAudioState audioState) {
@@ -91,6 +94,14 @@
     return view;
   }
 
+  @Override
+  public void onDismiss(DialogInterface dialogInterface) {
+    super.onDismiss(dialogInterface);
+    FragmentUtils.getParentUnsafe(
+            AudioRouteSelectorDialogFragment.this, AudioRouteSelectorPresenter.class)
+        .onAudioRouteSelectorDismiss();
+  }
+
   private void initItem(TextView item, final int itemRoute, CallAudioState audioState) {
     int selectedColor = getResources().getColor(R.color.dialer_theme_color);
     if ((audioState.getSupportedRouteMask() & itemRoute) == 0) {
diff --git a/java/com/android/incallui/bindings/InCallUiBindings.java b/java/com/android/incallui/bindings/InCallUiBindings.java
index d3d3a8b..5c6aef4 100644
--- a/java/com/android/incallui/bindings/InCallUiBindings.java
+++ b/java/com/android/incallui/bindings/InCallUiBindings.java
@@ -19,7 +19,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.support.annotation.Nullable;
-import com.android.dialer.common.ConfigProvider;
 
 /** This interface allows the container application to customize the in call UI. */
 public interface InCallUiBindings {
@@ -37,12 +36,4 @@
    */
   @Nullable
   Intent getCallStateButtonBroadcastIntent(Context context);
-
-  @Nullable
-  DistanceHelper newDistanceHelper(Context context, DistanceHelper.Listener listener);
-
-  @Nullable
-  ContactUtils getContactUtilsInstance(Context context);
-
-  ConfigProvider getConfigProvider();
 }
diff --git a/java/com/android/incallui/bindings/InCallUiBindingsStub.java b/java/com/android/incallui/bindings/InCallUiBindingsStub.java
index 7b42fb3..3a005b0 100644
--- a/java/com/android/incallui/bindings/InCallUiBindingsStub.java
+++ b/java/com/android/incallui/bindings/InCallUiBindingsStub.java
@@ -19,11 +19,9 @@
 import android.content.Context;
 import android.content.Intent;
 import android.support.annotation.Nullable;
-import com.android.dialer.common.ConfigProvider;
 
 /** Default implementation for InCallUi bindings. */
 public class InCallUiBindingsStub implements InCallUiBindings {
-  private ConfigProvider configProvider;
 
   @Override
   @Nullable
@@ -42,40 +40,4 @@
   public Intent getCallStateButtonBroadcastIntent(Context context) {
     return null;
   }
-
-  @Override
-  @Nullable
-  public DistanceHelper newDistanceHelper(Context context, DistanceHelper.Listener listener) {
-    return null;
-  }
-
-  @Override
-  @Nullable
-  public ContactUtils getContactUtilsInstance(Context context) {
-    return null;
-  }
-
-  @Override
-  public ConfigProvider getConfigProvider() {
-    if (configProvider == null) {
-      configProvider =
-          new ConfigProvider() {
-            @Override
-            public String getString(String key, String defaultValue) {
-              return defaultValue;
-            }
-
-            @Override
-            public long getLong(String key, long defaultValue) {
-              return defaultValue;
-            }
-
-            @Override
-            public boolean getBoolean(String key, boolean defaultValue) {
-              return defaultValue;
-            }
-          };
-    }
-    return configProvider;
-  }
 }
diff --git a/java/com/android/incallui/call/CallList.java b/java/com/android/incallui/call/CallList.java
index 34f0cc0..3876ca6 100644
--- a/java/com/android/incallui/call/CallList.java
+++ b/java/com/android/incallui/call/CallList.java
@@ -32,6 +32,8 @@
 import com.android.dialer.blocking.FilteredNumbersUtil;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.enrichedcall.EnrichedCallComponent;
+import com.android.dialer.enrichedcall.EnrichedCallManager;
 import com.android.dialer.location.GeoUtil;
 import com.android.dialer.logging.DialerImpression;
 import com.android.dialer.logging.Logger;
@@ -117,6 +119,10 @@
         new DialerCall(context, this, telecomCall, latencyReport, true /* registerCallback */);
     logSecondIncomingCall(context, call);
 
+    EnrichedCallManager manager = EnrichedCallComponent.get(context).getEnrichedCallManager();
+    manager.registerCapabilitiesListener(call);
+    manager.registerStateChangedListener(call);
+
     final DialerCallListenerImpl dialerCallListener = new DialerCallListenerImpl(call);
     call.addListener(dialerCallListener);
     LogUtil.d("CallList.onCallAdded", "callState=" + call.getState());
@@ -278,6 +284,10 @@
       DialerCall call = mCallByTelecomCall.get(telecomCall);
       Assert.checkArgument(!call.isExternalCall());
 
+      EnrichedCallManager manager = EnrichedCallComponent.get(context).getEnrichedCallManager();
+      manager.unregisterCapabilitiesListener(call);
+      manager.unregisterStateChangedListener(call);
+
       // Don't log an already logged call. logCall() might be called multiple times
       // for the same call due to b/24109437.
       if (call.getLogState() != null && !call.getLogState().isLogged) {
@@ -793,6 +803,9 @@
     }
 
     @Override
+    public void onEnrichedCallSessionUpdate() {}
+
+    @Override
     public void onDialerCallSessionModificationStateChange() {
       for (Listener listener : mListeners) {
         listener.onSessionModificationStateChange(mCall);
diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java
index acedf41..12edb07 100644
--- a/java/com/android/incallui/call/DialerCall.java
+++ b/java/com/android/incallui/call/DialerCall.java
@@ -51,6 +51,10 @@
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.enrichedcall.EnrichedCallCapabilities;
 import com.android.dialer.enrichedcall.EnrichedCallComponent;
+import com.android.dialer.enrichedcall.EnrichedCallManager;
+import com.android.dialer.enrichedcall.EnrichedCallManager.CapabilitiesListener;
+import com.android.dialer.enrichedcall.EnrichedCallManager.Filter;
+import com.android.dialer.enrichedcall.EnrichedCallManager.StateChangedListener;
 import com.android.dialer.enrichedcall.Session;
 import com.android.dialer.lightbringer.LightbringerComponent;
 import com.android.dialer.logging.ContactLookupResult;
@@ -77,7 +81,7 @@
 import java.util.concurrent.TimeUnit;
 
 /** Describes a single call and its state. */
-public class DialerCall implements VideoTechListener {
+public class DialerCall implements VideoTechListener, StateChangedListener, CapabilitiesListener {
 
   public static final int CALL_HISTORY_STATUS_UNKNOWN = 0;
   public static final int CALL_HISTORY_STATUS_PRESENT = 1;
@@ -143,6 +147,12 @@
   private EnrichedCallCapabilities mEnrichedCallCapabilities;
   private Session mEnrichedCallSession;
 
+  private int answerAndReleaseButtonDisplayedTimes = 0;
+  private boolean releasedByAnsweringSecondCall = false;
+  // Times when a second call is received but AnswerAndRelease button is not shown
+  // since it's not supported.
+  private int secondCallWithoutAnswerAndReleasedButtonTimes = 0;
+
   public static String getNumberFromHandle(Uri handle) {
     return handle == null ? "" : handle.getSchemeSpecificPart();
   }
@@ -292,6 +302,8 @@
 
     mTimeAddedMs = System.currentTimeMillis();
     parseCallSpecificAppData();
+
+    updateEnrichedCallSession();
   }
 
   private static int translateState(int state) {
@@ -413,6 +425,12 @@
       for (DialerCallListener listener : mListeners) {
         listener.onDialerCallDisconnect();
       }
+      EnrichedCallComponent.get(mContext)
+          .getEnrichedCallManager()
+          .unregisterCapabilitiesListener(this);
+      EnrichedCallComponent.get(mContext)
+          .getEnrichedCallManager()
+          .unregisterCapabilitiesListener(this);
     } else {
       for (DialerCallListener listener : mListeners) {
         listener.onDialerCallUpdate();
@@ -960,6 +978,30 @@
     return mLatencyReport;
   }
 
+  public int getAnswerAndReleaseButtonDisplayedTimes() {
+    return answerAndReleaseButtonDisplayedTimes;
+  }
+
+  public void increaseAnswerAndReleaseButtonDisplayedTimes() {
+    answerAndReleaseButtonDisplayedTimes++;
+  }
+
+  public boolean getReleasedByAnsweringSecondCall() {
+    return releasedByAnsweringSecondCall;
+  }
+
+  public void setReleasedByAnsweringSecondCall(boolean releasedByAnsweringSecondCall) {
+    this.releasedByAnsweringSecondCall = releasedByAnsweringSecondCall;
+  }
+
+  public int getSecondCallWithoutAnswerAndReleasedButtonTimes() {
+    return secondCallWithoutAnswerAndReleasedButtonTimes;
+  }
+
+  public void increaseSecondCallWithoutAnswerAndReleasedButtonTimes() {
+    secondCallWithoutAnswerAndReleasedButtonTimes++;
+  }
+
   @Nullable
   public EnrichedCallCapabilities getEnrichedCallCapabilities() {
     return mEnrichedCallCapabilities;
@@ -1172,6 +1214,66 @@
     TelecomAdapter.getInstance().setAudioRoute(CallAudioState.ROUTE_SPEAKER);
   }
 
+  @Override
+  public void onCapabilitiesUpdated() {
+    if (getNumber() == null) {
+      return;
+    }
+    EnrichedCallCapabilities capabilities =
+        EnrichedCallComponent.get(mContext).getEnrichedCallManager().getCapabilities(getNumber());
+    if (capabilities != null) {
+      setEnrichedCallCapabilities(capabilities);
+      update();
+    }
+  }
+
+  @Override
+  public void onEnrichedCallStateChanged() {
+    updateEnrichedCallSession();
+  }
+
+  private void updateEnrichedCallSession() {
+    if (getNumber() == null) {
+      return;
+    }
+    if (getEnrichedCallSession() != null) {
+      // State changes to existing sessions are currently handled by the UI components (which have
+      // their own listeners). Someday instead we could remove those and just call update() here and
+      // have the usual onDialerCallUpdate update the UI.
+      dispatchOnEnrichedCallSessionUpdate();
+      return;
+    }
+
+    EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
+
+    Filter filter =
+        isIncoming()
+            ? manager.createIncomingCallComposerFilter()
+            : manager.createOutgoingCallComposerFilter();
+
+    Session session = manager.getSession(getUniqueCallId(), getNumber(), filter);
+    if (session == null) {
+      return;
+    }
+
+    session.setUniqueDialerCallId(getUniqueCallId());
+    setEnrichedCallSession(session);
+
+    LogUtil.i(
+        "DialerCall.updateEnrichedCallSession",
+        "setting session %d's dialer id to %s",
+        session.getSessionId(),
+        getUniqueCallId());
+
+    dispatchOnEnrichedCallSessionUpdate();
+  }
+
+  private void dispatchOnEnrichedCallSessionUpdate() {
+    for (DialerCallListener listener : mListeners) {
+      listener.onEnrichedCallSessionUpdate();
+    }
+  }
+
   /**
    * Specifies whether a number is in the call history or not. {@link #CALL_HISTORY_STATUS_UNKNOWN}
    * means there is no result.
@@ -1372,6 +1474,7 @@
 
       String phoneNumber = call.getNumber();
       phoneNumber = phoneNumber != null ? phoneNumber : "";
+      phoneNumber = phoneNumber.replaceAll("[^+0-9]", "");
 
       // Insert order here determines the priority of that video tech option
       videoTechs = new ArrayList<>();
diff --git a/java/com/android/incallui/call/DialerCallListener.java b/java/com/android/incallui/call/DialerCallListener.java
index ed321be..5d24a4d 100644
--- a/java/com/android/incallui/call/DialerCallListener.java
+++ b/java/com/android/incallui/call/DialerCallListener.java
@@ -36,4 +36,6 @@
   void onHandoverToWifiFailure();
 
   void onInternationalCallOnWifi();
+
+  void onEnrichedCallSessionUpdate();
 }
diff --git a/java/com/android/incallui/call/TelecomAdapter.java b/java/com/android/incallui/call/TelecomAdapter.java
index ebf4ecf..4fc9f81 100644
--- a/java/com/android/incallui/call/TelecomAdapter.java
+++ b/java/com/android/incallui/call/TelecomAdapter.java
@@ -20,12 +20,13 @@
 import android.content.Intent;
 import android.os.Looper;
 import android.support.annotation.MainThread;
+import android.support.annotation.VisibleForTesting;
 import android.telecom.InCallService;
 import com.android.dialer.common.LogUtil;
 import java.util.List;
 
 /** Wrapper around Telecom APIs. */
-public final class TelecomAdapter implements InCallServiceListener {
+public class TelecomAdapter implements InCallServiceListener {
 
   private static final String ADD_CALL_MODE_KEY = "add_call_mode";
 
@@ -45,6 +46,11 @@
     return sInstance;
   }
 
+  @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+  public static void setInstanceForTesting(TelecomAdapter telecomAdapter) {
+    sInstance = telecomAdapter;
+  }
+
   @Override
   public void setInCallService(InCallService inCallService) {
     mInCallService = inCallService;
diff --git a/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java b/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java
index 801b0d3..b093a1b 100644
--- a/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java
+++ b/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java
@@ -21,6 +21,7 @@
 import android.net.TrafficStats;
 import android.os.AsyncTask;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.constants.TrafficStatsTags;
 import com.android.incallui.calllocation.impl.LocationPresenter.LocationUi;
 import java.io.InputStream;
 import java.lang.ref.WeakReference;
diff --git a/java/com/android/incallui/calllocation/impl/LocationHelper.java b/java/com/android/incallui/calllocation/impl/LocationHelper.java
index 3a14789..99a759b 100644
--- a/java/com/android/incallui/calllocation/impl/LocationHelper.java
+++ b/java/com/android/incallui/calllocation/impl/LocationHelper.java
@@ -24,6 +24,7 @@
 import android.os.Handler;
 import android.support.annotation.IntDef;
 import android.support.annotation.MainThread;
+import android.support.v4.os.UserManagerCompat;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.util.PermissionsUtil;
@@ -87,6 +88,12 @@
       LogUtil.i("LocationHelper.canGetLocation", "location service is disabled.");
       return false;
     }
+
+    if (!UserManagerCompat.isUserUnlocked(context)) {
+      LogUtil.i("LocationHelper.canGetLocation", "location unavailable in FBE mode.");
+      return false;
+    }
+
     return true;
   }
 
diff --git a/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java b/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java
index eb5957b..060ec0b 100644
--- a/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java
+++ b/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java
@@ -20,6 +20,7 @@
 import android.net.TrafficStats;
 import android.os.AsyncTask;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.constants.TrafficStatsTags;
 import com.android.incallui.calllocation.impl.LocationPresenter.LocationUi;
 import java.lang.ref.WeakReference;
 import org.json.JSONArray;
diff --git a/java/com/android/incallui/commontheme/res/anim/blinking.xml b/java/com/android/incallui/commontheme/res/anim/blinking.xml
deleted file mode 100644
index 4b921c6..0000000
--- a/java/com/android/incallui/commontheme/res/anim/blinking.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<set xmlns:android="http://schemas.android.com/apk/res/android">
-  <alpha
-    android:duration="800"
-    android:fromAlpha="0.26"
-    android:interpolator="@android:anim/linear_interpolator"
-    android:repeatCount="infinite"
-    android:repeatMode="reverse"
-    android:toAlpha="0.6"/>
-</set>
\ No newline at end of file
diff --git a/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png
deleted file mode 100644
index 26f3fe0..0000000
--- a/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png
deleted file mode 100644
index 5b0a9d6..0000000
--- a/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png
deleted file mode 100644
index d595b19..0000000
--- a/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png
deleted file mode 100644
index fb7cf16..0000000
--- a/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png
deleted file mode 100644
index 4bb58d9..0000000
--- a/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/values-af/strings.xml b/java/com/android/incallui/commontheme/res/values-af/strings.xml
index 0dfdbc7..0721869 100644
--- a/java/com/android/incallui/commontheme/res/values-af/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-af/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Beëindig oproep"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video aan"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video af"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Verwissel video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Luidspreker"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Klank"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-am/strings.xml b/java/com/android/incallui/commontheme/res/values-am/strings.xml
index 3155c39..9d748e3 100644
--- a/java/com/android/incallui/commontheme/res/values-am/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-am/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"ጥሪ ጨርስ"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ቪዲዮ በርቷል"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ቪዲዮ ጠፍቷል"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ቪዲዮ አገላብጥ"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"የድምጽ ማጉያ"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"ድምፅ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ar/strings.xml b/java/com/android/incallui/commontheme/res/values-ar/strings.xml
index ecb3608..693bfc5 100644
--- a/java/com/android/incallui/commontheme/res/values-ar/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ar/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"إنهاء المكالمة"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"الفيديو قيد التشغيل"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"الفيديو ليس قيد التشغيل"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"تبديل الفيديو"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"مكبر الصوت"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"صوت"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-az/strings.xml b/java/com/android/incallui/commontheme/res/values-az/strings.xml
index d935a6c..a1d88ce 100644
--- a/java/com/android/incallui/commontheme/res/values-az/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-az/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Zəngi sonlandırın"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video aktivdir"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video deaktivdir"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Videonu dəyişdirin"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Dinamik"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Səs"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml
index 36430c4..05ae59c 100644
--- a/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Završi poziv"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Uključi video"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Isključi video"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zameni video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Zvučnik"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-be/strings.xml b/java/com/android/incallui/commontheme/res/values-be/strings.xml
index 9609a63..e772e27 100644
--- a/java/com/android/incallui/commontheme/res/values-be/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-be/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Завяршыць выклік"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Відэа ўкл."</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Відэа выкл."</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Пераключыць відэа"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Вонк.дынамік"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Гук"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-bg/strings.xml b/java/com/android/incallui/commontheme/res/values-bg/strings.xml
index 1a0f3e3..63364f8 100644
--- a/java/com/android/incallui/commontheme/res/values-bg/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-bg/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Край на обаждането"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Видеото е включено"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Видеото е изключено"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Размяна на видеото"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Високогов."</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-bn/strings.xml b/java/com/android/incallui/commontheme/res/values-bn/strings.xml
index ef2408f..9871ea4 100644
--- a/java/com/android/incallui/commontheme/res/values-bn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-bn/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"কল কেটে দিন"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ভিডিও চালু আছে"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ভিডিও বন্ধ আছে"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ভিডিও অদল বদল করুন"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"স্পিকার"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"শব্দ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-bs/strings.xml b/java/com/android/incallui/commontheme/res/values-bs/strings.xml
index bfaff98..76f991d 100644
--- a/java/com/android/incallui/commontheme/res/values-bs/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-bs/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Prekini poziv"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Kamera je uključena"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Kamera je isključena"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zamijeni kameru"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Zvučnik"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ca/strings.xml b/java/com/android/incallui/commontheme/res/values-ca/strings.xml
index 1b6ed44..832027d 100644
--- a/java/com/android/incallui/commontheme/res/values-ca/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ca/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalitza la trucada"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo activat"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desactivat"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Canvia de vídeo"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Altaveu"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"So"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-cs/strings.xml b/java/com/android/incallui/commontheme/res/values-cs/strings.xml
index 1f10d85..7afdcba 100644
--- a/java/com/android/incallui/commontheme/res/values-cs/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-cs/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Ukončit hovor"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Zapnuté video"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vypnuté video"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Přepnout video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Reproduktor"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-da/strings.xml b/java/com/android/incallui/commontheme/res/values-da/strings.xml
index 35d01e3..bd26e90 100644
--- a/java/com/android/incallui/commontheme/res/values-da/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-da/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Afslut opkald"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video til"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video fra"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Byt video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Højttaler"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Lyd"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-de/strings.xml b/java/com/android/incallui/commontheme/res/values-de/strings.xml
index 57a95b7..3fd10f0 100644
--- a/java/com/android/incallui/commontheme/res/values-de/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-de/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Anruf beenden"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video an"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video aus"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Video wechseln"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Lautsprecher"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Tonausgabe"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-el/strings.xml b/java/com/android/incallui/commontheme/res/values-el/strings.xml
index 6bb9edc..71c0be9 100644
--- a/java/com/android/incallui/commontheme/res/values-el/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-el/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Τερματισμός"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Εικόνα βίντεο ενεργοποιημένη"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Εικόνα βίντεο απενεργοποιημένη"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Εναλλαγή βίντεο"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Ηχείο"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Ήχος"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml
index 8133185..4869c3f 100644
--- a/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"End call"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video on"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video off"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Swap video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Sound"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml
index 8133185..4869c3f 100644
--- a/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"End call"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video on"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video off"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Swap video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Sound"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml
index 8133185..4869c3f 100644
--- a/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"End call"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video on"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video off"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Swap video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Sound"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml b/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml
index 45f2e2f..a9596d9 100644
--- a/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalizar llamada"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video activado"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video desactivado"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Intercambiar video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Altavoz"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Sonido"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-es/strings.xml b/java/com/android/incallui/commontheme/res/values-es/strings.xml
index 56c8b28..aa84c62 100644
--- a/java/com/android/incallui/commontheme/res/values-es/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-es/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalizar llamada"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo activado"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desactivado"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Cambiar de vídeo"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Altavoz"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Sonido"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-et/strings.xml b/java/com/android/incallui/commontheme/res/values-et/strings.xml
index 069f3b5..ae2e1ba 100644
--- a/java/com/android/incallui/commontheme/res/values-et/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-et/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Kõne lõpetamine"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video on sees"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video on väljas"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Video vahetamine"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Kõlar"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Heli"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-eu/strings.xml b/java/com/android/incallui/commontheme/res/values-eu/strings.xml
index bbcf5dc..0dd126c 100644
--- a/java/com/android/incallui/commontheme/res/values-eu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-eu/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Amaitu deia"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Aktibatuta dago bideoa"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Desaktibatuta dago bideoa"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Aldatu bideoa"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Bozgorailua"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Soinua"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-fa/strings.xml b/java/com/android/incallui/commontheme/res/values-fa/strings.xml
index ea967bb..1996ad4 100644
--- a/java/com/android/incallui/commontheme/res/values-fa/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fa/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"پایان تماس"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ویدئو فعال"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ویدئو غیرفعال"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"جابه‌جایی ویدئو"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"بلندگو"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"صدا"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-fi/strings.xml b/java/com/android/incallui/commontheme/res/values-fi/strings.xml
index f0da44f..5a57981 100644
--- a/java/com/android/incallui/commontheme/res/values-fi/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fi/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Päätä puhelu"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Videokuva käytössä"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Videokuva poissa käytöstä"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Vaihda videota"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Kaiutin"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Ääni"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml b/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml
index bf74dfb..a1db306 100644
--- a/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Mettre fin à l\'appel"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vidéo activée"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vidéo désactivée"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Permuter la vidéo"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Haut-parleur"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Son"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-fr/strings.xml b/java/com/android/incallui/commontheme/res/values-fr/strings.xml
index fb674a4..e169a3d 100644
--- a/java/com/android/incallui/commontheme/res/values-fr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Mettre fin à l\'appel"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vidéo activée"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vidéo désactivée"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Permuter la vidéo"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Haut-parleur"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Audio"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-gl/strings.xml b/java/com/android/incallui/commontheme/res/values-gl/strings.xml
index c7e2214..ba98a98 100644
--- a/java/com/android/incallui/commontheme/res/values-gl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-gl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalizar chamada"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo activado"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desactivado"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Alternar vídeo"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Altofalante"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Son"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-gu/strings.xml b/java/com/android/incallui/commontheme/res/values-gu/strings.xml
index 75584ea..194590c 100644
--- a/java/com/android/incallui/commontheme/res/values-gu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-gu/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"કૉલ સમાપ્ત કરો"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"વિડિઓ ચાલુ"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"વિડિઓ બંધ"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"વિડિઓ સ્વેપ કરો"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"સ્પીકર"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"ધ્વનિ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-hi/strings.xml b/java/com/android/incallui/commontheme/res/values-hi/strings.xml
index f7ea68a..207bbf2 100644
--- a/java/com/android/incallui/commontheme/res/values-hi/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hi/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"कॉल समाप्त करें"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"वीडियो चालू"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"वीडियो बंद"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"वीडियो स्वैप करें"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"स्‍पीकर"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"ध्वनि"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-hr/strings.xml b/java/com/android/incallui/commontheme/res/values-hr/strings.xml
index c30f397..c58ab85 100644
--- a/java/com/android/incallui/commontheme/res/values-hr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Prekid poziva"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Videopoziv uključen"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Videopoziv isključen"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zamijeni videopoziv"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Zvučnik"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-hu/strings.xml b/java/com/android/incallui/commontheme/res/values-hu/strings.xml
index 9ee2300..ba7fec7 100644
--- a/java/com/android/incallui/commontheme/res/values-hu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hu/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Hívás befejezése"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Videó be"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Videó ki"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Videó cseréje"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Hangszóró"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Hang"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-hy/strings.xml b/java/com/android/incallui/commontheme/res/values-hy/strings.xml
index 96a0cab..81262e4 100644
--- a/java/com/android/incallui/commontheme/res/values-hy/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hy/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Ավարտել զանգը"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Տեսախցիկը միացած է"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Տեսախցիկն անջատած է"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Փոխարկել խցիկը"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Բարձրախոս"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Ձայն"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-in/strings.xml b/java/com/android/incallui/commontheme/res/values-in/strings.xml
index 4536f5d..fb3fc56 100644
--- a/java/com/android/incallui/commontheme/res/values-in/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-in/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Akhiri panggilan"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video aktif"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video nonaktif"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Tukar Video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Suara"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-is/strings.xml b/java/com/android/incallui/commontheme/res/values-is/strings.xml
index 357f90e..438b143 100644
--- a/java/com/android/incallui/commontheme/res/values-is/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-is/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Ljúka símtali"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Kveikja á mynd"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Slökkva á mynd"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Skipta um mynd"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Hátalari"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Hljóð"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-it/strings.xml b/java/com/android/incallui/commontheme/res/values-it/strings.xml
index a63d314..b7c1d3f 100644
--- a/java/com/android/incallui/commontheme/res/values-it/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-it/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Termina chiamata"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video attivo"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video non attivo"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Scambia video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Altoparlante"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Suono"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-iw/strings.xml b/java/com/android/incallui/commontheme/res/values-iw/strings.xml
index 1e2b7f2..cbd6d75 100644
--- a/java/com/android/incallui/commontheme/res/values-iw/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-iw/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"סיים שיחה"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"הווידאו מופעל"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"הווידאו מושבת"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"החלף וידאו"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"רמקול"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"קול"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ja/strings.xml b/java/com/android/incallui/commontheme/res/values-ja/strings.xml
index 658b513..4ea9495 100644
--- a/java/com/android/incallui/commontheme/res/values-ja/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ja/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"通話を終了"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ビデオが ON になっています"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ビデオが OFF になっています"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ビデオを切り替える"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"スピーカー"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"音声"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ka/strings.xml b/java/com/android/incallui/commontheme/res/values-ka/strings.xml
index ffba7ce..3163476 100644
--- a/java/com/android/incallui/commontheme/res/values-ka/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ka/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"ზარის დასრულება"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ვიდეო ჩართულია"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ვიდეო გამორთულია"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ვიდეოს შენაცვლება"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"სპიკერი"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"ხმა"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-kk/strings.xml b/java/com/android/incallui/commontheme/res/values-kk/strings.xml
index ace83ec..23b3a2a 100644
--- a/java/com/android/incallui/commontheme/res/values-kk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-kk/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Қоңырауды аяқтау"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Бейне қосулы"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Бейне өшірулі"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Бейнені ауыстыру"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Динамик"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Дыбыс"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-km/strings.xml b/java/com/android/incallui/commontheme/res/values-km/strings.xml
index e28f120..55cfa0a 100644
--- a/java/com/android/incallui/commontheme/res/values-km/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-km/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"បញ្ចប់​ការ​ហៅ"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"បើក​វីដេអូ​"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"បិទ​វីដេអូ"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ប្ដូរ​វីដេអូ"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"ឧបករណ៍​បំពង​សំឡេង"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"សំឡេង"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-kn/strings.xml b/java/com/android/incallui/commontheme/res/values-kn/strings.xml
index 59186e0..685ef64 100644
--- a/java/com/android/incallui/commontheme/res/values-kn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-kn/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"ಕರೆ ಅಂತ್ಯಗೊಳಿಸಿ"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ವೀಡಿಯೊ ಆನ್"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ವೀಡಿಯೊ ಆಫ್"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ವೀಡಿಯೊ ಬದಲಾಯಿಸಿ"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"ಸ್ಪೀಕರ್‌"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"ಶಬ್ದ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ko/strings.xml b/java/com/android/incallui/commontheme/res/values-ko/strings.xml
index 0a0e3c9..088746d 100644
--- a/java/com/android/incallui/commontheme/res/values-ko/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ko/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"통화 종료"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"동영상 켜짐"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"동영상 꺼짐"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"동영상 전환"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"스피커"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"소리"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ky/strings.xml b/java/com/android/incallui/commontheme/res/values-ky/strings.xml
index ac697e4..5dd4d0c 100644
--- a/java/com/android/incallui/commontheme/res/values-ky/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ky/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Чалууну бүтүрүү"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Видео күйүк"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Видео өчүк"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Видеону иштетүү/өчүрүү"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Катуу сүйлөткүч"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Добуш"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-lo/strings.xml b/java/com/android/incallui/commontheme/res/values-lo/strings.xml
index da2050a..2f0b94b 100644
--- a/java/com/android/incallui/commontheme/res/values-lo/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-lo/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"ວາງສາຍ"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ວິດີໂອເປີດ"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ວິດີໂອປິດ"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ສະຫຼັບວິດີໂອ"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"ລຳໂພງ"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"ສຽງ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-lt/strings.xml b/java/com/android/incallui/commontheme/res/values-lt/strings.xml
index bda53d6..d0a5e0d 100644
--- a/java/com/android/incallui/commontheme/res/values-lt/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-lt/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Baigti skambutį"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vaizdas įjungtas"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vaizdas išjungtas"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Sukeisti vaizdą"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Garsiakalbis"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Garsas"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-lv/strings.xml b/java/com/android/incallui/commontheme/res/values-lv/strings.xml
index beaf35c..443ac5e 100644
--- a/java/com/android/incallui/commontheme/res/values-lv/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-lv/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Beigt zvanu"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video ieslēgts"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video izslēgts"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Mainīt video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Skaļrunis"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Skaņa"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-mk/strings.xml b/java/com/android/incallui/commontheme/res/values-mk/strings.xml
index 5b4f6d0..d9a339e 100644
--- a/java/com/android/incallui/commontheme/res/values-mk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-mk/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Завршете го повикот"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Видеото е вклучено"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Видеото е исклучено"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Заменете го видеото"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Звучник"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ml/strings.xml b/java/com/android/incallui/commontheme/res/values-ml/strings.xml
index 0242667..0f2d889 100644
--- a/java/com/android/incallui/commontheme/res/values-ml/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ml/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"കോള്‍ അവസാനിപ്പിക്കൂ"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"വീഡിയോ ഓണാണ്"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"വീഡിയോ ഓഫാണ്"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"വീഡിയോ സ്വാപ്പുചെയ്യുക"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"സ്പീക്കർ"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"ശബ്‌ദം"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-mn/strings.xml b/java/com/android/incallui/commontheme/res/values-mn/strings.xml
index cd286ed..3665fcf 100644
--- a/java/com/android/incallui/commontheme/res/values-mn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-mn/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Дуудлагыг таслах"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Видео идэвхтэй"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Видео идэвхгүй"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Видеог солих"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Чанга яригч"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Дуу"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-mr/strings.xml b/java/com/android/incallui/commontheme/res/values-mr/strings.xml
index 2c626ed..f749809 100644
--- a/java/com/android/incallui/commontheme/res/values-mr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-mr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"कॉल समाप्त करा"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"व्हिडिओ चालू"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"व्हिडिओ बंद"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"व्हिडिओ बदला"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"स्पीकर"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"ध्वनी"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ms/strings.xml b/java/com/android/incallui/commontheme/res/values-ms/strings.xml
index f6c358d..fb38fa9d 100644
--- a/java/com/android/incallui/commontheme/res/values-ms/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ms/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Tamatkan panggilan"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video dihidupkan"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video dimatikan"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Silih video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Pmbsr suara"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Bunyi"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-my/strings.xml b/java/com/android/incallui/commontheme/res/values-my/strings.xml
index 6b6614c..5b396be 100644
--- a/java/com/android/incallui/commontheme/res/values-my/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-my/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"ခေါ်ဆိုမှုအပြီးသတ်ရန်"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ဗီဒီယိုဖွင့်ထားသည်"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ဗီဒီယိုပိတ်ထားသည်"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ဗီဒီယိုဖလှယ်ရန်"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"စပီကာ"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"အသံ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-nb/strings.xml b/java/com/android/incallui/commontheme/res/values-nb/strings.xml
index 4974411..506b15e 100644
--- a/java/com/android/incallui/commontheme/res/values-nb/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-nb/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Avslutt samtalen"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video på"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video av"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Bytt video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Høyttaler"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Lyd"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ne/strings.xml b/java/com/android/incallui/commontheme/res/values-ne/strings.xml
index 5cd91b3..fa9d87f 100644
--- a/java/com/android/incallui/commontheme/res/values-ne/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ne/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"कल अन्त्य गर्नुहोस्"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"सक्रिय भिडियो"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"निष्क्रिय भिडियो"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"भिडियो साट्नुहोस्"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"स्पिकर"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"आवाज"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-nl/strings.xml b/java/com/android/incallui/commontheme/res/values-nl/strings.xml
index d33d600..192c47b 100644
--- a/java/com/android/incallui/commontheme/res/values-nl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-nl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Oproep beëindigen"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video aan"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video uit"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Video wisselen"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Luidspreker"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Geluid"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-no/strings.xml b/java/com/android/incallui/commontheme/res/values-no/strings.xml
index 4974411..506b15e 100644
--- a/java/com/android/incallui/commontheme/res/values-no/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-no/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Avslutt samtalen"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video på"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video av"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Bytt video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Høyttaler"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Lyd"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pa/strings.xml b/java/com/android/incallui/commontheme/res/values-pa/strings.xml
index 7e59e61..77ceb25 100644
--- a/java/com/android/incallui/commontheme/res/values-pa/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pa/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"ਕਾਲ ਸਮਾਪਤ ਕਰੋ"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ਵੀਡੀਓ ਚਾਲੂ"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ਵੀਡੀਓ ਬੰਦ"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ਵੀਡੀਓ ਦੀ ਅਦਲਾ ਬਦਲੀ ਕਰੋ"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"ਸਪੀਕਰ"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"ਧੁਨੀ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pl/strings.xml b/java/com/android/incallui/commontheme/res/values-pl/strings.xml
index 4ab1d24..d9b037e 100644
--- a/java/com/android/incallui/commontheme/res/values-pl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Zakończ połączenie"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Wideo włączone"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Wideo wyłączone"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Przełącz wideo"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Głośnik"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Dźwięk"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml b/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml
index 67f3674..2c1834e 100644
--- a/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Encerrar chamada"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo ativado"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desativado"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Trocar vídeo"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Alto-falante"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Som"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml b/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml
index 27c5649..f0c14d0 100644
--- a/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Terminar chamada"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo ativado"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desativado"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Alternar vídeo"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Altifalante"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Som"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pt/strings.xml b/java/com/android/incallui/commontheme/res/values-pt/strings.xml
index 67f3674..2c1834e 100644
--- a/java/com/android/incallui/commontheme/res/values-pt/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pt/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Encerrar chamada"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo ativado"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desativado"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Trocar vídeo"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Alto-falante"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Som"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ro/strings.xml b/java/com/android/incallui/commontheme/res/values-ro/strings.xml
index b7fec9a..f7c8f72 100644
--- a/java/com/android/incallui/commontheme/res/values-ro/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ro/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Încheiați apelul"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Imaginea video este activată"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Imaginea video este dezactivată"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Schimbați imaginea video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Difuzor"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Sunet"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ru/strings.xml b/java/com/android/incallui/commontheme/res/values-ru/strings.xml
index 5d1807f..1853ad2 100644
--- a/java/com/android/incallui/commontheme/res/values-ru/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ru/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Завершить вызов"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Камера включена"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Камера выключена"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Включить/выключить камеру"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Динамик"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-si/strings.xml b/java/com/android/incallui/commontheme/res/values-si/strings.xml
index 0a0f35c..ae13cc4 100644
--- a/java/com/android/incallui/commontheme/res/values-si/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-si/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"ඇමතුම අවසන් කරන්න"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"වීඩියෝව ක්‍රියාත්මකයි"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"වීඩියෝව ක්‍රියාවිරහිතයි"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"වීඩියෝව මාරු කරන්න"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"ස්පීකරය"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"හඬ"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sk/strings.xml b/java/com/android/incallui/commontheme/res/values-sk/strings.xml
index 97eabeb..cd9aa99 100644
--- a/java/com/android/incallui/commontheme/res/values-sk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sk/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Ukončiť hovor"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video je zapnuté"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video je vypnuté"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zameniť video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Reproduktor"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sl/strings.xml b/java/com/android/incallui/commontheme/res/values-sl/strings.xml
index 46cf2e8..0aa6e69 100644
--- a/java/com/android/incallui/commontheme/res/values-sl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Končaj klic"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Vklopi video"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Izklopi video"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Zamenjaj video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Zvočnik"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Zvok"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sq/strings.xml b/java/com/android/incallui/commontheme/res/values-sq/strings.xml
index 17ec081..b9c97d1 100644
--- a/java/com/android/incallui/commontheme/res/values-sq/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sq/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Mbylle telefonatën"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Videoja aktive"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Videoja joaktive"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Shkëmbe video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Altoparlanti"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Tingulli"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sr/strings.xml b/java/com/android/incallui/commontheme/res/values-sr/strings.xml
index 2928bc9..67586b7 100644
--- a/java/com/android/incallui/commontheme/res/values-sr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Заврши позив"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Укључи видео"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Искључи видео"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Замени видео"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Звучник"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sv/strings.xml b/java/com/android/incallui/commontheme/res/values-sv/strings.xml
index 17b5d37..957a2f8 100644
--- a/java/com/android/incallui/commontheme/res/values-sv/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sv/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Avsluta samtal"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video på"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video av"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Byt video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Högtalare"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Ljud"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sw/strings.xml b/java/com/android/incallui/commontheme/res/values-sw/strings.xml
index 165d576..8752c2d 100644
--- a/java/com/android/incallui/commontheme/res/values-sw/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sw/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Kata simu"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Washa video"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Zima video"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Badilisha video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Spika"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Sauti"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ta/strings.xml b/java/com/android/incallui/commontheme/res/values-ta/strings.xml
index fa2dfb2..69258d2 100644
--- a/java/com/android/incallui/commontheme/res/values-ta/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ta/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"அழைப்பைத் துண்டிக்கும்"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"வீடியோ இயக்கப்பட்டது"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"வீடியோ முடக்கப்பட்டது"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"வீடியோவிற்கு மாற்றும்"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"ஸ்பீக்கர்"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"ஒலி"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-te/strings.xml b/java/com/android/incallui/commontheme/res/values-te/strings.xml
index 3ce431c..9454e15 100644
--- a/java/com/android/incallui/commontheme/res/values-te/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-te/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"కాల్‌ను ముగిస్తుంది"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"వీడియో ఆన్‌లో ఉంది"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"వీడియో ఆఫ్‌లో ఉంది"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"వీడియోను మారుస్తుంది"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"స్పీకర్"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"ధ్వని"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-th/strings.xml b/java/com/android/incallui/commontheme/res/values-th/strings.xml
index 1fa145c..8235310 100644
--- a/java/com/android/incallui/commontheme/res/values-th/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-th/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"วางสาย"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"เปิดวิดีโอ"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ปิดวิดีโอ"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"สลับวิดีโอ"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"ลำโพง"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"เสียง"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-tl/strings.xml b/java/com/android/incallui/commontheme/res/values-tl/strings.xml
index a53e11c..f368e3a 100644
--- a/java/com/android/incallui/commontheme/res/values-tl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-tl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Tapusin ang tawag"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Naka-on ang video"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Naka-off ang video"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Pagpalitin ang video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Tunog"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-tr/strings.xml b/java/com/android/incallui/commontheme/res/values-tr/strings.xml
index 0955273..cbf5502 100644
--- a/java/com/android/incallui/commontheme/res/values-tr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-tr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Çağrıyı sonlandırın"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video açık"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video kapalı"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Videoyu değiştirin"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Hoparlör"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Ses"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-uk/strings.xml b/java/com/android/incallui/commontheme/res/values-uk/strings.xml
index e17e781..2bcd04c 100644
--- a/java/com/android/incallui/commontheme/res/values-uk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-uk/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Завершити виклик"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Відео ввімкнено"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Відео вимкнено"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Поміняти відео"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Динамік"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ur/strings.xml b/java/com/android/incallui/commontheme/res/values-ur/strings.xml
index 5082e9d..bd8cf68 100644
--- a/java/com/android/incallui/commontheme/res/values-ur/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ur/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"کال ختم کریں"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"ویڈیو آن ہے"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"ویڈیو آف ہے"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"ویڈیو کا تبادلہ کریں"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"اسپیکر"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"آواز"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-uz/strings.xml b/java/com/android/incallui/commontheme/res/values-uz/strings.xml
index d349d3f..9bc995d 100644
--- a/java/com/android/incallui/commontheme/res/values-uz/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-uz/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Qo‘ng‘iroqni tugatish"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Video yoniq"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Video o‘chiq"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Videoni yoqish/ochirish"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Karnay"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Tovush"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-vi/strings.xml b/java/com/android/incallui/commontheme/res/values-vi/strings.xml
index 3bd39ae..caf8f34 100644
--- a/java/com/android/incallui/commontheme/res/values-vi/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-vi/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Kết thúc cuộc gọi"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Bật video"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Tắt video"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Hoán đổi video"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Loa"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Âm báo"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml
index 0f57120..4d8bda6 100644
--- a/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"结束通话"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"视频已开启"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"视频已关闭"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"切换视频"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"免提"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"音频路径"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml
index a3809eb..175b3e6 100644
--- a/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"結束通話"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"視像已開啟"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"視像已關閉"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"切換視像"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"喇叭"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"音效"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml
index 983dddd..dee1b9c 100644
--- a/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"結束通話"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"開啟視訊畫面"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"關閉視訊畫面"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"切換視訊畫面"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"擴音"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"音訊"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values-zu/strings.xml b/java/com/android/incallui/commontheme/res/values-zu/strings.xml
index 2dd2c89..9535962 100644
--- a/java/com/android/incallui/commontheme/res/values-zu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-zu/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_content_description_end_call" msgid="8232796487777787200">"Qeda ikholi"</string>
@@ -15,4 +31,6 @@
     <string name="incall_content_description_video_on" msgid="899266487647420613">"Ividiyo ivuliwe"</string>
     <string name="incall_content_description_video_off" msgid="762985912616707076">"Ividiyo ivaliwe"</string>
     <string name="incall_content_description_swap_video" msgid="297943299827908998">"Shintsha ividiyo"</string>
+    <string name="incall_label_speaker" msgid="1814254833253409394">"Isipikha"</string>
+    <string name="incall_label_audio" msgid="5923781170533336820">"Umsindo"</string>
 </resources>
diff --git a/java/com/android/incallui/commontheme/res/values/strings.xml b/java/com/android/incallui/commontheme/res/values/strings.xml
index 6f346a3..94a8c90 100644
--- a/java/com/android/incallui/commontheme/res/values/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values/strings.xml
@@ -1,4 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
 <resources>
 
   <string name="incall_content_description_end_call">End call</string>
@@ -32,4 +47,11 @@
 
   <string name="incall_content_description_swap_video">Swap video</string>
 
+  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
+     [CHAR LIMIT=12] -->
+  <string name="incall_label_speaker">Speaker</string>
+  <!-- Button shown during a phone to switch the audio route.
+     [CHAR LIMIT=12] -->
+  <string name="incall_label_audio">Sound</string>
+
 </resources>
diff --git a/java/com/android/incallui/contactgrid/BottomRow.java b/java/com/android/incallui/contactgrid/BottomRow.java
index 228c786..d0ff192 100644
--- a/java/com/android/incallui/contactgrid/BottomRow.java
+++ b/java/com/android/incallui/contactgrid/BottomRow.java
@@ -22,7 +22,6 @@
 import android.text.BidiFormatter;
 import android.text.TextDirectionHeuristics;
 import android.text.TextUtils;
-import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
 import com.android.incallui.call.DialerCall.State;
 import com.android.incallui.incall.protocol.PrimaryCallState;
 import com.android.incallui.incall.protocol.PrimaryInfo;
@@ -137,7 +136,7 @@
   }
 
   private static CharSequence spanDisplayNumber(String displayNumber) {
-    return PhoneNumberUtilsCompat.createTtsSpannable(
+    return PhoneNumberUtils.createTtsSpannable(
         BidiFormatter.getInstance().unicodeWrap(displayNumber, TextDirectionHeuristics.LTR));
   }
 
diff --git a/java/com/android/incallui/contactgrid/ContactGridManager.java b/java/com/android/incallui/contactgrid/ContactGridManager.java
index 1322d58..502cc52 100644
--- a/java/com/android/incallui/contactgrid/ContactGridManager.java
+++ b/java/com/android/incallui/contactgrid/ContactGridManager.java
@@ -20,10 +20,8 @@
 import android.graphics.drawable.Animatable;
 import android.graphics.drawable.Drawable;
 import android.os.SystemClock;
-import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.v4.view.ViewCompat;
-import android.telecom.TelecomManager;
 import android.text.TextUtils;
 import android.view.View;
 import android.view.accessibility.AccessibilityEvent;
@@ -78,6 +76,7 @@
   private boolean hideAvatar;
   private boolean showAnonymousAvatar;
   private boolean middleRowVisible = true;
+  private boolean isTimerStarted;
 
   private PrimaryInfo primaryInfo = PrimaryInfo.createEmptyPrimaryInfo();
   private PrimaryCallState primaryCallState = PrimaryCallState.createEmptyPrimaryCallState();
@@ -105,6 +104,7 @@
 
     contactGridLayout = (View) contactNameTextView.getParent();
     letterTile = new LetterTileDrawable(context.getResources());
+    isTimerStarted = false;
   }
 
   public void show() {
@@ -213,7 +213,7 @@
    * </ul>
    */
   private void updateTopRow() {
-    TopRow.Info info = TopRow.getInfo(context, primaryCallState);
+    TopRow.Info info = TopRow.getInfo(context, primaryCallState, primaryInfo);
     if (TextUtils.isEmpty(info.label)) {
       // Use INVISIBLE here to prevent the rows below this one from moving up and down.
       statusTextView.setVisibility(View.INVISIBLE);
@@ -233,26 +233,6 @@
   }
 
   /**
-   * Returns the appropriate LetterTileDrawable.TYPE_ based on a given call state.
-   *
-   * <p>If no special state is detected, yields TYPE_DEFAULT.
-   */
-  private static @LetterTileDrawable.ContactType int getContactTypeForPrimaryCallState(
-      @NonNull PrimaryCallState callState, @NonNull PrimaryInfo primaryInfo) {
-    if (callState.isVoiceMailNumber) {
-      return LetterTileDrawable.TYPE_VOICEMAIL;
-    } else if (callState.isBusinessNumber) {
-      return LetterTileDrawable.TYPE_BUSINESS;
-    } else if (primaryInfo.numberPresentation == TelecomManager.PRESENTATION_RESTRICTED) {
-      return LetterTileDrawable.TYPE_GENERIC_AVATAR;
-    } else if (callState.isConference) {
-      return LetterTileDrawable.TYPE_CONFERENCE;
-    } else {
-      return LetterTileDrawable.TYPE_DEFAULT;
-    }
-  }
-
-  /**
    * Updates row 1. For example:
    *
    * <ul>
@@ -295,8 +275,12 @@
               primaryInfo.name,
               primaryInfo.contactInfoLookupKey,
               LetterTileDrawable.SHAPE_CIRCLE,
-              getContactTypeForPrimaryCallState(primaryCallState, primaryInfo));
-
+              LetterTileDrawable.getContactTypeFromPrimitives(
+                  primaryCallState.isVoiceMailNumber,
+                  primaryInfo.isSpam,
+                  primaryCallState.isBusinessNumber,
+                  primaryInfo.numberPresentation,
+                  primaryCallState.isConference));
           // By invalidating the avatarImageView we force a redraw of the letter tile.
           // This is required to properly display the updated letter tile iconography based on the
           // contact type, because the background drawable reference cached in the view, and the
@@ -363,15 +347,19 @@
     }
 
     if (info.isTimerVisible) {
-      bottomTextSwitcher.setDisplayedChild(1);
-      bottomTimerView.setBase(
-          primaryCallState.connectTimeMillis
-              - System.currentTimeMillis()
-              + SystemClock.elapsedRealtime());
-      bottomTimerView.start();
+      if (!isTimerStarted) {
+        bottomTextSwitcher.setDisplayedChild(1);
+        bottomTimerView.setBase(
+            primaryCallState.connectTimeMillis
+                - System.currentTimeMillis()
+                + SystemClock.elapsedRealtime());
+        bottomTimerView.start();
+        isTimerStarted = true;
+      }
     } else {
       bottomTextSwitcher.setDisplayedChild(0);
       bottomTimerView.stop();
+      isTimerStarted = false;
     }
   }
 }
diff --git a/java/com/android/incallui/contactgrid/TopRow.java b/java/com/android/incallui/contactgrid/TopRow.java
index 8c3d6b0..ab00357 100644
--- a/java/com/android/incallui/contactgrid/TopRow.java
+++ b/java/com/android/incallui/contactgrid/TopRow.java
@@ -19,10 +19,14 @@
 import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.support.annotation.Nullable;
+import android.telephony.PhoneNumberUtils;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
 import android.text.TextUtils;
 import com.android.dialer.common.Assert;
 import com.android.incallui.call.DialerCall.State;
 import com.android.incallui.incall.protocol.PrimaryCallState;
+import com.android.incallui.incall.protocol.PrimaryInfo;
 import com.android.incallui.videotech.utils.SessionModificationState;
 import com.android.incallui.videotech.utils.VideoUtils;
 
@@ -55,7 +59,7 @@
 
   private TopRow() {}
 
-  public static Info getInfo(Context context, PrimaryCallState state) {
+  public static Info getInfo(Context context, PrimaryCallState state, PrimaryInfo primaryInfo) {
     CharSequence label = null;
     Drawable icon = state.connectionIcon;
     boolean labelIsSingleLine = true;
@@ -73,6 +77,11 @@
         labelIsSingleLine = false;
       } else {
         label = getLabelForIncoming(context, state);
+        // Show phone number if it's not displayed in name (center row) or location field (bottom
+        // row).
+        if (shouldShowNumber(primaryInfo)) {
+          label = TextUtils.concat(label, " ", spanDisplayNumber(primaryInfo.number));
+        }
       }
     } else if (VideoUtils.hasSentVideoUpgradeRequest(state.sessionModificationState)
         || VideoUtils.hasReceivedVideoUpgradeRequest(state.sessionModificationState)) {
@@ -85,6 +94,8 @@
       label = getLabelForDialing(context, state);
     } else if (state.state == State.ACTIVE && state.isRemotelyHeld) {
       label = context.getString(R.string.incall_remotely_held);
+    } else if (state.state == State.ACTIVE && shouldShowNumber(primaryInfo)) {
+      label = spanDisplayNumber(primaryInfo.number);
     } else {
       // Video calling...
       // [Wi-Fi icon] Starbucks Wi-Fi
@@ -94,9 +105,27 @@
     return new Info(label, icon, labelIsSingleLine);
   }
 
+  private static CharSequence spanDisplayNumber(String displayNumber) {
+    return PhoneNumberUtils.createTtsSpannable(
+        BidiFormatter.getInstance().unicodeWrap(displayNumber, TextDirectionHeuristics.LTR));
+  }
+
+  private static boolean shouldShowNumber(PrimaryInfo primaryInfo) {
+    if (primaryInfo.nameIsNumber) {
+      return false;
+    }
+    if (primaryInfo.location == null) {
+      return false;
+    }
+    if (TextUtils.isEmpty(primaryInfo.number)) {
+      return false;
+    }
+    return true;
+  }
+
   private static CharSequence getLabelForIncoming(Context context, PrimaryCallState state) {
     if (state.isVideoCall) {
-      return getLabelForIncomingVideo(context, state.isWifi);
+      return getLabelForIncomingVideo(context, state.sessionModificationState, state.isWifi);
     } else if (state.isWifi && !TextUtils.isEmpty(state.connectionLabel)) {
       return state.connectionLabel;
     } else if (isAccount(state)) {
@@ -108,11 +137,20 @@
     }
   }
 
-  private static CharSequence getLabelForIncomingVideo(Context context, boolean isWifi) {
-    if (isWifi) {
-      return context.getString(R.string.contact_grid_incoming_wifi_video_call);
+  private static CharSequence getLabelForIncomingVideo(
+      Context context, @SessionModificationState int sessionModificationState, boolean isWifi) {
+    if (sessionModificationState == SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
+      if (isWifi) {
+        return context.getString(R.string.contact_grid_incoming_wifi_video_request);
+      } else {
+        return context.getString(R.string.contact_grid_incoming_video_request);
+      }
     } else {
-      return context.getString(R.string.contact_grid_incoming_video_call);
+      if (isWifi) {
+        return context.getString(R.string.contact_grid_incoming_wifi_video_call);
+      } else {
+        return context.getString(R.string.contact_grid_incoming_video_call);
+      }
     }
   }
 
@@ -154,7 +192,7 @@
       case SessionModificationState.UPGRADE_TO_VIDEO_REQUEST_TIMED_OUT:
         return context.getString(R.string.incall_video_call_request_timed_out);
       case SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST:
-        return getLabelForIncomingVideo(context, state.isWifi);
+        return getLabelForIncomingVideo(context, state.sessionModificationState, state.isWifi);
       case SessionModificationState.NO_REQUEST:
       default:
         Assert.fail();
diff --git a/java/com/android/incallui/contactgrid/res/values-af/strings.xml b/java/com/android/incallui/contactgrid/res/values-af/strings.xml
index 95ec39b..75a8bf3 100644
--- a/java/com/android/incallui/contactgrid/res/values-af/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-af/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Bel via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Hou aan"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video-oproep vanaf"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-video-oproep vanaf"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Versoekvorm vir video-opgradering"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Versoekvorm vir Wi-Fi-video-opgradering"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Oproep vanaf"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Werkoproep vanaf"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Inkomend via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-am/strings.xml b/java/com/android/incallui/contactgrid/res/values-am/strings.xml
index d8060c9..3d11f73 100644
--- a/java/com/android/incallui/contactgrid/res/values-am/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-am/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"በ<xliff:g id="PROVIDER_NAME">%s</xliff:g> በኩል በመደወል ላይ"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ያዝና ቆይ"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ቪዲዮ ጥሪ ከ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi ቪዲዮ ጥሪ ከ"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"የቪዲዮ ማሻሻል ጥያቄ ከ"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"የWi-Fi ቪዲዮ ማሻሻል ጥያቄ ከ"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ጥሪ ከ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"የሥራ ጥሪ ከ"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"በ<xliff:g id="PROVIDER_NAME">%s</xliff:g> በኩል የገባ"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ar/strings.xml b/java/com/android/incallui/contactgrid/res/values-ar/strings.xml
index 30fd32c..cddd1ec 100644
--- a/java/com/android/incallui/contactgrid/res/values-ar/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ar/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"الاتصال عبر <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"معلقة"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"مكالمة فيديو من"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"‏مكالمة فيديو عبر Wi-Fi من"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"طلب ترقية الفيديو من"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"‏طلب ترقية فيديو Wi-Fi من"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"اتصال من"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"مكالمة عمل من"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"واردة عبر <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-az/strings.xml b/java/com/android/incallui/contactgrid/res/values-az/strings.xml
index 4fe79ee..8c1993d 100644
--- a/java/com/android/incallui/contactgrid/res/values-az/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-az/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> vasitəsilə zəng edilir"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Gözləmədə"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video zəng edən"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video zəng edən"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video təkmilləşdirilməsi üçün təklif"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video təkmilləşdirilməsi üçün təklif"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Zəng edən"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"İş zəngi edən"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> vasitəsilə gələn"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml
index f1a938e..caa61bd 100644
--- a/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Pozivamo preko <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Na čekanju"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video poziv od"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video poziv od"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Zahtev za prelazak na video poziv od"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Zahtev za prelazak na video poziv preko Wi-Fi-ja od"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Poziv od"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Poslovni poziv od"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dolazni poziv preko <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-be/strings.xml b/java/com/android/incallui/contactgrid/res/values-be/strings.xml
index aec3a31..51f7ea9 100644
--- a/java/com/android/incallui/contactgrid/res/values-be/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-be/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Званкі праз <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"На ўтрыманні"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Відэавыклік ад"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Відэавыклік праз Wi-Fi ад"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Запыт на абнаўленне да відэавыкліка ад"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Запыт на абнаўленне да відэавыкліка па Wi-Fi ад"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Выклік ад"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Рабочы выклік ад"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Уваходны выклік праз <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-bg/strings.xml b/java/com/android/incallui/contactgrid/res/values-bg/strings.xml
index f162e4c..4e313d4 100644
--- a/java/com/android/incallui/contactgrid/res/values-bg/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-bg/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Обаждане чрез <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Задържано"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видеообаждане от"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Видеообаждане по Wi-Fi от"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Заявка за преминаване към видеообаждане от"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Заявка за преминаване към видеообаждане през Wi-Fi от"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Обаждане от"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Служебно обаждане от"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Входящо обаждане чрез <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-bn/strings.xml b/java/com/android/incallui/contactgrid/res/values-bn/strings.xml
index 6d3a50c..8fce2e4 100644
--- a/java/com/android/incallui/contactgrid/res/values-bn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-bn/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> এর মাধ্যমে কল করা হচ্ছে"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"হোল্ডে রয়েছে"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"এর থেকে আগত ভিডিও কল"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"এর থেকে আগত Wi-Fi ভিডিও কল"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"এর থেকে ভিডিও আপগ্রেড করার অনুরোধ"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"এর থেকে ওয়াই-ফাই ভিডিও আপগ্রেড করার অনুরোধ"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"এর থেকে আগত কল"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"এর থেকে আগত কর্মক্ষেত্রের কল"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> এর মাধ্যমে আগত কল"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-bs/strings.xml b/java/com/android/incallui/contactgrid/res/values-bs/strings.xml
index 2587992..0d4dfb3 100644
--- a/java/com/android/incallui/contactgrid/res/values-bs/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-bs/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Pozivanje putem mreže <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Na čekanju"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videopoziv od"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi videopoziv od"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Zahtjev za nadogradnju na videozapis od pozivaoca"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Zahtjev za nadogradnju na Wi-Fi videozapis od pozivaoca"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Poziv od"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Poslovni poziv od"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dolazni poziv putem <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ca/strings.xml b/java/com/android/incallui/contactgrid/res/values-ca/strings.xml
index 07598a2..b4aa2dd 100644
--- a/java/com/android/incallui/contactgrid/res/values-ca/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ca/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"S\'està trucant amb <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videotrucada de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videotrucada per Wi-Fi de"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Sol·licitud d\'actualització a videotrucada procedent de:"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Sol·licitud d\'actualització a videotrucada per Wi-Fi procedent de:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Trucada de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Trucada de feina de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Entrant via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-cs/strings.xml b/java/com/android/incallui/contactgrid/res/values-cs/strings.xml
index d27a028..b8698f0 100644
--- a/java/com/android/incallui/contactgrid/res/values-cs/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-cs/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Volání přes poskytovatele <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Podrženo"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Příchozí videohovor:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Příchozí videohovor přes Wi-Fi:"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Žádost o upgrade na videohovor od uživatele"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Žádost o upgrade na videohovor přes Wi-Fi od uživatele"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Příchozí hovor:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Příchozí pracovní hovor:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Příchozí hovor přes poskytovatele <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-da/strings.xml b/java/com/android/incallui/contactgrid/res/values-da/strings.xml
index 555a2ac..71a651f 100644
--- a/java/com/android/incallui/contactgrid/res/values-da/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-da/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"I venteposition"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoopkald fra"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videoopkald fra"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Anmodning om opgradering til et videoopkald fra"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Anmodning om opgradering til et Wi-Fi-videoopkald fra"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Opkald fra"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Arbejdsopkald fra"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Indgående opkald via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-de/strings.xml b/java/com/android/incallui/contactgrid/res/values-de/strings.xml
index 3d3838c..d69e0f6 100644
--- a/java/com/android/incallui/contactgrid/res/values-de/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-de/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Anruf über <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Anruf wird gehalten"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoanruf von"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"WLAN-Videoanruf von"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Anfrage für Upgrade auf Videoanruf von"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Anfrage für Upgrade auf Videoanruf über WLAN von"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Anruf von"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Geschäftlicher Anruf von"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Eingehender Anruf über <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-el/strings.xml b/java/com/android/incallui/contactgrid/res/values-el/strings.xml
index 337da7b..954e7b7 100644
--- a/java/com/android/incallui/contactgrid/res/values-el/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-el/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Κλήση μέσω <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Σε αναμονή"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Βιντεοκλήση από"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Βιντεοκλήση μέσω Wi-Fi από"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Αίτημα αναβάθμισης βίντεο από"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Αίτημα αναβάθμισης βίντεο Wi-Fi από"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Κλήση από"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Κλήση από το γραφείο από"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Εισερχόμενη κλήση μέσω <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml
index 3748db2..a1402ff 100644
--- a/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"On hold"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call from"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Call from"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml
index 3748db2..a1402ff 100644
--- a/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"On hold"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call from"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Call from"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml
index 3748db2..a1402ff 100644
--- a/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"On hold"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call from"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Call from"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml b/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml
index fa56849..abb2b01 100644
--- a/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Llamada por medio de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videollamada de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videollamada con Wi-Fi de"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Actualización a video solicitada por"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Actualización a video con Wi-Fi solicitada por"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Llamada de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Llamada laboral de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Entrante por medio de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-es/strings.xml b/java/com/android/incallui/contactgrid/res/values-es/strings.xml
index 1d57f9c..ef7c457 100644
--- a/java/com/android/incallui/contactgrid/res/values-es/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-es/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Llamada a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videollamada de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videollamada por Wi-Fi de"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitud de actualización de videollamada de"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitud de actualización de videollamada por Wi-Fi de"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Llamada de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Llamada de trabajo de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Recibida a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-et/strings.xml b/java/com/android/incallui/contactgrid/res/values-et/strings.xml
index 2d81062..b91f073 100644
--- a/java/com/android/incallui/contactgrid/res/values-et/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-et/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Kõne edastab <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Ootel"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videokõne kontaktilt"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"WiFi-videokõne kontaktilt"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video täiendamise taotlus:"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"WiFi kaudu video täiendamise taotlus:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Kõne kontaktilt"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Töökõne kontaktilt"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Sissetulev kõne teenusepakkuja <xliff:g id="PROVIDER_NAME">%s</xliff:g> kaudu"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-eu/strings.xml b/java/com/android/incallui/contactgrid/res/values-eu/strings.xml
index f08347b..ba7995a 100644
--- a/java/com/android/incallui/contactgrid/res/values-eu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-eu/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> bidez deitzen"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Zain"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Bideo-deia:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi bidezko bideo-deia:"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Bideo-dei bat egiteko eskaera bidali dizu erabiltzaile honek:"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi bidezko bideo-dei bat egiteko eskaera bidali dizu erabiltzaile honek:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Deia:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Laneko deia:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> bidez jasotzen"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-fa/strings.xml b/java/com/android/incallui/contactgrid/res/values-fa/strings.xml
index 0dfc0f4..40873ca 100644
--- a/java/com/android/incallui/contactgrid/res/values-fa/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fa/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"تماس از طریق <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"درانتظار"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"تماس ویدئویی از"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"‏تماس ویدئویی Wi-Fi از"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"درخواست ارتقای تماس ویدیویی از"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"‏در خواست ارتقای تماس ویدیویی Wi-Fi از"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"تماس از"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"تماس کاری از"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"تماس‌های ورودی ازطریق <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-fi/strings.xml b/java/com/android/incallui/contactgrid/res/values-fi/strings.xml
index 00503bf..241fef5 100644
--- a/java/com/android/incallui/contactgrid/res/values-fi/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fi/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Käytetään operaattoria <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Pidossa"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videopuhelu henkilöltä"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videopuhelu henkilöltä"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Videoon siirtymispyyntö, jonka lähettäjä on"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi-videopuheluun siirtymispyyntö, jonka lähettäjän on"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Puhelu henkilöltä"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Työpuhelu henkilöltä"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Saapuva puhelu (<xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml b/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml
index ee0196d..3ffc1e9 100644
--- a/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Appel par <xliff:g id="PROVIDER_NAME">%s</xliff:g> en cours…"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"En attente"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Appel vidéo de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Appel vidéo Wi-Fi de"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Demande de mise à niveau vidéo de"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Demande de mise à niveau vidéo Wi-Fi de"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Appel de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Appel professionnel de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Appel entrant par <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-fr/strings.xml b/java/com/android/incallui/contactgrid/res/values-fr/strings.xml
index 9849ad6..0db6ae0 100644
--- a/java/com/android/incallui/contactgrid/res/values-fr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Appel via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"En attente"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Appel vidéo de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Appel vidéo Wi-Fi de"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Demande de passage en mode vidéo par"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Demande de passage en mode vidéo Wi-Fi par"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Appel de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Appel professionnel de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Appel entrant via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-gl/strings.xml b/java/com/android/incallui/contactgrid/res/values-gl/strings.xml
index c85f336..2970014 100644
--- a/java/com/android/incallui/contactgrid/res/values-gl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-gl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Chamando a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada por wifi de"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitude de actualización a videochamada de"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitude de actualización a videochamada por wifi de"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de traballo de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada entrante a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-gu/strings.xml b/java/com/android/incallui/contactgrid/res/values-gu/strings.xml
index 5179cc0..220bebe 100644
--- a/java/com/android/incallui/contactgrid/res/values-gu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-gu/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> મારફતે કૉલ કરી રહ્યાં છે"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"હોલ્ડ પર"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"આમના તરફથી વિડિઓ કૉલ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"આમના તરફથી Wi-Fi વિડિઓ કૉલ"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"આમના તરફથી વિડિઓ અપગ્રેડની વિનંતી"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"આમના તરફથી Wi-Fi વિડિઓ અપગ્રેડની વિનંતી"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"આમના તરફથી કૉલ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"આમના તરફથી કાર્ય કૉલ"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> મારફતે ઇનકમિંગ"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-hi/strings.xml b/java/com/android/incallui/contactgrid/res/values-hi/strings.xml
index dec7b62..da128b6 100644
--- a/java/com/android/incallui/contactgrid/res/values-hi/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hi/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> के माध्यम से कॉल किया जा रहा है"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"होल्ड पर"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"इससे वीडियो कॉल"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"इससे वाई-फ़ाई वीडियो कॉल"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"इसकी ओर से वीडियो में अपग्रेड करने का अनुरोध"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"इसकी ओर से वाई-फ़ाई वीडियो में अपग्रेड करने का अनुरोध"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"इससे कॉल"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"इससे कार्य संबंधी कॉल"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> की ओर से इनकमिंग"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-hr/strings.xml b/java/com/android/incallui/contactgrid/res/values-hr/strings.xml
index d7023ac..24429a2 100644
--- a/java/com/android/incallui/contactgrid/res/values-hr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Pozivanje putem operatera <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Na čekanju"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videopoziv s broja"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videopoziv putem Wi-Fi veze s broja"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Poziv s broja"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Poslovni poziv s broja"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dolazni pozivi putem davatelja <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-hu/strings.xml b/java/com/android/incallui/contactgrid/res/values-hu/strings.xml
index f7da923..600b69f 100644
--- a/java/com/android/incallui/contactgrid/res/values-hu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hu/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Hívás a(z) <xliff:g id="PROVIDER_NAME">%s</xliff:g> szolgáltatón keresztül"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Várakoztatva"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videohívás a következőtől:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videohívás a következőtől:"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Videófrissítési kérelem a következőtől"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi-videófrissítési kérelem a következőtől"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Hívás a következőtől:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Munkahelyi hívás a következőről:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Bejövő hívás a következőn keresztül: <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-hy/strings.xml b/java/com/android/incallui/contactgrid/res/values-hy/strings.xml
index 6384fa9..88a49eb 100644
--- a/java/com/android/incallui/contactgrid/res/values-hy/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hy/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Զանգում է <xliff:g id="PROVIDER_NAME">%s</xliff:g>-ի միջոցով"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Սպասում"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Տեսազանգ հետևյալ բաժանորդից՝"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi տեսազանգ հետևյալ բաժանորդից՝"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Տեսազանգին անցնելու խնդրանք հետևյալ օգտատիրոջից՝"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi-ի միջոցով տեսազանգին անցնելու խնդրանք հետևյալ օգտատիրոջից՝"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Զանգ հետևյալ բաժանորդից՝"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Գործնական զանգ հետևյալ բաժանորդից՝"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Մուտքային զանգ <xliff:g id="PROVIDER_NAME">%s</xliff:g> ցանցից"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-in/strings.xml b/java/com/android/incallui/contactgrid/res/values-in/strings.xml
index 7556838..f673583 100644
--- a/java/com/android/incallui/contactgrid/res/values-in/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-in/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Menelepon melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Ditangguhkan"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call dari"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Video call Wi-Fi dari"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Permintaan upgrade video dari"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Permintaan upgrade video Wi-Fi dari"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Telepon dari"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Panggilan telepon kerja dari"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Masuk melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-is/strings.xml b/java/com/android/incallui/contactgrid/res/values-is/strings.xml
index 86d577c..9e83031 100644
--- a/java/com/android/incallui/contactgrid/res/values-is/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-is/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Hringt í gegnum <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Í bið"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Myndsímtal berst frá"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi myndsímtal berst frá"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Beiðni um að uppfæra í myndsímtal frá"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Beiðni um að uppfæra í Wi-Fi myndsímtal frá"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Símtal berst frá"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Vinnusímtal berst frá"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Berst í gegnum <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-it/strings.xml b/java/com/android/incallui/contactgrid/res/values-it/strings.xml
index 9576a6d..76958cf 100644
--- a/java/com/android/incallui/contactgrid/res/values-it/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-it/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Chiamate tramite <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"In attesa"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochiamata da"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochiamata Wi-Fi da"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Upgrade della videochiamata richiesto da"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Upgrade della videochiamata Wi-Fi richiesto da"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chiamata da"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chiamata di lavoro da"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"In arrivo tramite <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-iw/strings.xml b/java/com/android/incallui/contactgrid/res/values-iw/strings.xml
index 62771d1..b06c321 100644
--- a/java/com/android/incallui/contactgrid/res/values-iw/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-iw/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"שיחה באמצעות <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"בהמתנה"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"שיחת וידאו מאת"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"‏שיחת וידאו ב-Wi-Fi מאת"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"בקשה לשדרוג לשיחת וידאו מאת"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"‏בקשת לשדרוג לשיחת וידאו ברשת Wi-Fi מאת"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"שיחה מאת"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"שיחת עבודה מאת"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"שיחה נכנסת באמצעות <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ja/strings.xml b/java/com/android/incallui/contactgrid/res/values-ja/strings.xml
index a5d958c..a2fce09 100644
--- a/java/com/android/incallui/contactgrid/res/values-ja/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ja/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> で発信中"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"保留中"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ビデオハングアウトの着信"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi ビデオハングアウトの着信"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ビデオハングアウトへの変更リクエスト"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi ビデオハングアウトへの変更リクエスト"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"着信"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"仕事の通話の着信"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> から着信"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ka/strings.xml b/java/com/android/incallui/contactgrid/res/values-ka/strings.xml
index 7848f59..cb0094d 100644
--- a/java/com/android/incallui/contactgrid/res/values-ka/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ka/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"მიმდინარეობს დარეკვა <xliff:g id="PROVIDER_NAME">%s</xliff:g>-ის მეშვეობით"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"მოცდის რეჟიმში"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ვიდეოზარი აბონენტისგან"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi ვიდეოზარი აბონენტისგან"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ვიდეოზარზე გადასვლის მოთხოვნა კონტაქტისგან:"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi ვიდეოზარზე გადასვლის მოთხოვნა კონტაქტისგან:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ზარი აბონენტისგან"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"სამსახურებრივი ზარი აბონენტისგან"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"შემომავალი, <xliff:g id="PROVIDER_NAME">%s</xliff:g>-იდან"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-kk/strings.xml b/java/com/android/incallui/contactgrid/res/values-kk/strings.xml
index aaf260b..3fc68c2 100644
--- a/java/com/android/incallui/contactgrid/res/values-kk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-kk/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> арқылы қоңырау шалу"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Күтуде"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Бейне қоңырау шалушы:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi бейне қоңырау шалушы:"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Бейне қоңырауға ауысу өтініші:"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi арқылы бейне қоңырауға ауысу өтініші:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Қоңырау шалушы:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Жұмыстан қоңырау шалушы:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> арқылы кіріс"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-km/strings.xml b/java/com/android/incallui/contactgrid/res/values-km/strings.xml
index b2bfc96..7ee21ba 100644
--- a/java/com/android/incallui/contactgrid/res/values-km/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-km/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"កំពុង​ហៅតាម <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"កំពុង​រង់ចាំ"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ការ​ហៅ​ជា​វីដេអូ​ពី"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ការ​ហៅ​ជា​វីដេអូ​តាម Wi-Fi ពី"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ស្នើ​ដំឡើង​កំណែ​វីដេអូ​ពី"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ស្នើ​ដំឡើង​កំណែ​វីដេអូតាម Wi-Fi ពី"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ការ​ហៅ​ពី"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ការ​ហៅ​ការងារ​ពី"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"ការ​ហៅ​ចូល​តាម <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-kn/strings.xml b/java/com/android/incallui/contactgrid/res/values-kn/strings.xml
index 0ee73ba..e90bd6b 100644
--- a/java/com/android/incallui/contactgrid/res/values-kn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-kn/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ಮೂಲಕ ಕರೆ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ಹೋಲ್ಡ್‌ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ಇವರಿಂದ ವೀಡಿಯೊ ಕರೆ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ಇವರಿಂದ ವೈ-ಫೈ ವೀಡಿಯೊ ಕರೆ"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ಇದರಿಂದ ವೀಡಿಯೊ ಅಪ್‌ಗ್ರೇಡ್ ವಿನಂತಿ"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ಇದರಿಂದ ವೈಫೈ ವೀಡಿಯೊ ಅಪ್‌ಗ್ರೇಡ್ ವಿನಂತಿ"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ಇವರಿಂದ ಕರೆ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ಇವರಿಂದ ಕೆಲಸದ ಕರೆ"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ಮೂಲಕ ಒಳಬರುತ್ತಿರುವ ಕರೆ"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ko/strings.xml b/java/com/android/incallui/contactgrid/res/values-ko/strings.xml
index a5a34e3..85dd613 100644
--- a/java/com/android/incallui/contactgrid/res/values-ko/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ko/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>을(를) 통해 거는 전화"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"대기 중"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"화상 통화 발신:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi 화상 통화 발신:"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"화상 통화로의 업그레이드를 요청한 사용자:"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi 화상 통화로의 업그레이드를 요청한 사용자:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"통화 발신:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"업무 통화 발신:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>을(를) 통해 걸려온 전화"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ky/strings.xml b/java/com/android/incallui/contactgrid/res/values-ky/strings.xml
index a020e70..6028022 100644
--- a/java/com/android/incallui/contactgrid/res/values-ky/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ky/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> аркылуу чалуу"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Күтүү режиминде"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видео чалуу"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi аркылуу видео чалуу:"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Видеону кийинки версияга көтөрүү сурамы:"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi аркылуу видеомаектешүү сурамы:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Чалып жатат:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Иш боюнча чалып жатат:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> аркылуу чалып жатат"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-lo/strings.xml b/java/com/android/incallui/contactgrid/res/values-lo/strings.xml
index 96c1dcf..6ad1178 100644
--- a/java/com/android/incallui/contactgrid/res/values-lo/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-lo/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"ກຳລັງໂທຜ່ານ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ຖືສາຍລໍຖ້າ"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ການໂທວິດີໂອຈາກ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ຄຳຮ້ອງອັບເກຣດວິດີໂອຈາກ"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ຄຳຮ້ອງອັບເກຣດວິດີໂອ Wi-Fi ຈາກ"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ການໂທຈາກ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"ສາຍໂທເຂົ້າ​ຈາກ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-lt/strings.xml b/java/com/android/incallui/contactgrid/res/values-lt/strings.xml
index e8e42fc..3cca55c 100644
--- a/java/com/android/incallui/contactgrid/res/values-lt/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-lt/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Skambinama naudojantis „<xliff:g id="PROVIDER_NAME">%s</xliff:g>“ paslaugomis"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Sulaikytas"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Vaizdo skambutis nuo"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"„Wi-Fi“ vaizdo skambutis nuo"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Vaizdo skambučio naujovinimo užklausa nuo"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"„Wi-Fi“ vaizdo skambučio naujovinimo užklausa nuo"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Skambutis nuo"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Darbo skambutis nuo"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Gaunama per „<xliff:g id="PROVIDER_NAME">%s</xliff:g>“"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-lv/strings.xml b/java/com/android/incallui/contactgrid/res/values-lv/strings.xml
index 1b3823f..87e5c90 100644
--- a/java/com/android/incallui/contactgrid/res/values-lv/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-lv/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Zvanu nodrošina <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Aizturēts"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videozvans no:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi videozvans no:"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Videozvana jaunināšanas pieprasījums no:"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi videozvana jaunināšanas pieprasījums no:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Zvans no:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Darba zvans no:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Ienākošie zvani, ko nodrošina <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-mk/strings.xml b/java/com/android/incallui/contactgrid/res/values-mk/strings.xml
index 1044683..fcab8f4 100644
--- a/java/com/android/incallui/contactgrid/res/values-mk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-mk/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Повикување преку <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"На чекање"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видеоповик од"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Видеоповик преку Wi-Fi од"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Барање за надградба на видеоповик од"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Барање за надградба на видеоповик преку Wi-Fi од"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Повик од"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Работен повик од"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Дојдовни повици преку <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ml/strings.xml b/java/com/android/incallui/contactgrid/res/values-ml/strings.xml
index 519e9f4..1dfb46a 100644
--- a/java/com/android/incallui/contactgrid/res/values-ml/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ml/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> മുഖേന വിളിക്കുന്നു"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ഹോള്‍ഡിലാണ്"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ഈ വ്യക്തിയിൽ നിന്നുള്ള വീഡിയോ കോൾ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ഈ വ്യക്തിയിൽ നിന്നുള്ള Wi-Fi വീഡിയോ കോൾ"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ഇനിപ്പറയുന്നതിൽ നിന്നുള്ള വീഡിയോ അപ്‌ഗ്രേഡ് അഭ്യർത്ഥന"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ഇനിപ്പറയുന്നതിൽ നിന്നുള്ള Wi-Fi വീഡിയോ അപ്‌ഗ്രേഡ് അഭ്യർത്ഥന"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ഈ വ്യക്തിയിൽ നിന്നുള്ള കോൾ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ഈ വ്യക്തിയിൽ നിന്നുള്ള ഔദ്യോഗിക കോൾ"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> മുഖേനയുള്ള ഇൻകമിംഗ്"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-mn/strings.xml b/java/com/android/incallui/contactgrid/res/values-mn/strings.xml
index c87e071..c93bd46 100644
--- a/java/com/android/incallui/contactgrid/res/values-mn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-mn/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>-р залгаж байна"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Хүлээлгэнд байгаа"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видео дуудлага"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi видео дуудлага"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Видеог сайжруулах хүсэлт"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi видеог сайжруулах хүсэлт"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Дуудлага"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Ажлын дуудлага"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>-р ирж байна"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-mr/strings.xml b/java/com/android/incallui/contactgrid/res/values-mr/strings.xml
index 6a01817..81d76dd 100644
--- a/java/com/android/incallui/contactgrid/res/values-mr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-mr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> द्वारे कॉल करीत आहे"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"होल्ड वर"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"यावरून व्हिडिओ कॉल"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi व्हिडिओ कॉल"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"याकडून व्हिडिओ श्रेणीसुधारणेची विनंती"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"याकडून Wi-Fi व्हिडिओ श्रेणीसुधारणेची विनंती"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"यावरील कॉल"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"कडून कार्य कॉल"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> द्वारे येणारे"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ms/strings.xml b/java/com/android/incallui/contactgrid/res/values-ms/strings.xml
index 17ca753..815df79 100644
--- a/java/com/android/incallui/contactgrid/res/values-ms/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ms/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Memanggil melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Panggilan ditahan"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Panggilan video daripada"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Panggilan video Wi-Fi daripada"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Permintaan peningkatan video daripada"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Permintaan peningkatan video Wi-Fi daripada"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Panggilan daripada"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Panggilan kerja daripada"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Panggilan masuk melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-my/strings.xml b/java/com/android/incallui/contactgrid/res/values-my/strings.xml
index 14770cf..3c8a88e 100644
--- a/java/com/android/incallui/contactgrid/res/values-my/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-my/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> မှတစ်ဆင့် ခေါ်ဆိုနေသည်"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ဖုန်းကိုင်ထားသည်"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"အောက်ပါထံမှ ဗီဒီယိုခေါ်ဆိုမှု"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"အောက်ပါထံမှ Wi-Fi ဗီဒီယိုခေါ်ဆိုမှု"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"အောက်ပါထံမှ ဗီဒီယိုအဆင့်မြှင့်ခြင်းတောင်းဆိုချက်"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"အောက်ပါထံမှ Wi-Fi ဗီဒီယိုအဆင့်မြှင့်ခြင်းတောင်းဆိုချက်"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"အောက်ပါထံမှ ခေါ်ဆိုမှု"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"အောက်ပါထံမှ အလုပ်ခေါ်ဆိုမှု"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> မှတစ်ဆင့် အဝင်ခေါ်ဆိုမှု"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-nb/strings.xml b/java/com/android/incallui/contactgrid/res/values-nb/strings.xml
index fbf9895..9ad8d0d 100644
--- a/java/com/android/incallui/contactgrid/res/values-nb/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-nb/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"På vent"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoanrop fra"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videoanrop fra"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Forespørsel om videooppdatering fra"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Forespørsel om Wi-Fi-videooppdatering fra"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Anrop fra"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Jobbrelatert anrop fra"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Innkommende via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ne/strings.xml b/java/com/android/incallui/contactgrid/res/values-ne/strings.xml
index d618af4..e6e65c5 100644
--- a/java/com/android/incallui/contactgrid/res/values-ne/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ne/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> मार्फत कल गर्दै"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"होल्डमा छ"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"निम्नबाट भिडियो कल आएको छ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"निम्नबाट Wi-Fi मार्फत गरिएको भिडियो कल आएको छ"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"निम्नबाट आएको भिडियो अपग्रेडसम्बन्धी अनुरोध"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"निम्नबाट आएको Wi-Fi मार्फत भिडियो अपग्रेडसम्बन्धी अनुरोध"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"निम्नबाट कल आएको छ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"निम्नबाट कार्य सम्बन्धी कल आएको छ"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> मार्फत गरिएको आगमन कल"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-nl/strings.xml b/java/com/android/incallui/contactgrid/res/values-nl/strings.xml
index 10dcd13..828a7a2 100644
--- a/java/com/android/incallui/contactgrid/res/values-nl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-nl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Bellen via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"In de wacht"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videogesprek van"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wifi-videogesprek van"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Upgradeverzoek voor videogesprek van"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Upgradeverzoek voor wifi-videogesprek van"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Oproep van"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Zakelijke oproep van"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Inkomend via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-no/strings.xml b/java/com/android/incallui/contactgrid/res/values-no/strings.xml
index fbf9895..9ad8d0d 100644
--- a/java/com/android/incallui/contactgrid/res/values-no/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-no/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"På vent"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoanrop fra"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videoanrop fra"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Forespørsel om videooppdatering fra"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Forespørsel om Wi-Fi-videooppdatering fra"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Anrop fra"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Jobbrelatert anrop fra"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Innkommende via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pa/strings.xml b/java/com/android/incallui/contactgrid/res/values-pa/strings.xml
index fb261d6..1d4801c 100644
--- a/java/com/android/incallui/contactgrid/res/values-pa/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pa/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ਰਾਹੀਂ ਕਾਲ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ਰੋਕ ਕੇ ਰੱਖੀ ਗਈ"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ਇਸ ਤੋਂ ਵੀਡੀਓ ਕਾਲ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ਇਸ ਤੋਂ Wi-Fi ਵੀਡੀਓ ਕਾਲ"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ਇਸ ਤੋਂ ਵੀਡੀਓ ਅੱਪਗ੍ਰੇਡ ਬੇਨਤੀ"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ਇਸ ਤੋਂ Wi-Fi ਵੀਡੀਓ ਅੱਪਗ੍ਰੇਡ ਬੇਨਤੀ"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ਇਸ ਤੋਂ ਕਾਲ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ਇਸ ਤੋਂ ਕੰਮ ਸਬੰਧੀ ਕਾਲ"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ਰਾਹੀਂ ਇਨਕਮਿੰਗ"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pl/strings.xml b/java/com/android/incallui/contactgrid/res/values-pl/strings.xml
index 998e49e..586f39e 100644
--- a/java/com/android/incallui/contactgrid/res/values-pl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Dzwonię przez <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Oczekujące"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Rozmowa wideo z:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Rozmowa wideo przez Wi-Fi z:"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Prośba o przejście na rozmowę wideo wysłana przez:"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Prośba o przejście na rozmowę wideo przez Wi-Fi wysłana przez:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Połączenie z:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Połączenie służbowe z:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Przychodzące z sieci <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml
index 4365cba..a445cdf 100644
--- a/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Ligando via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Em espera"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada via Wi-Fi de"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitação de upgrade de vídeo de"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitação de upgrade de vídeo por Wi-Fi de"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de trabalho de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml
index 55d3c26..ca07b3f 100644
--- a/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"A telefonar através de <xliff:g id="PROVIDER_NAME">%s</xliff:g>…"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Em espera"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada a partir de rede Wi-Fi de"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Pedido de atualização para videochamada de"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Pedido de atualização para videochamada por Wi-Fi de"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de trabalho de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada recebida através de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pt/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt/strings.xml
index 4365cba..a445cdf 100644
--- a/java/com/android/incallui/contactgrid/res/values-pt/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pt/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Ligando via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Em espera"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada via Wi-Fi de"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitação de upgrade de vídeo de"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitação de upgrade de vídeo por Wi-Fi de"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de trabalho de"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ro/strings.xml b/java/com/android/incallui/contactgrid/res/values-ro/strings.xml
index f8d1c9b..180a01f 100644
--- a/java/com/android/incallui/contactgrid/res/values-ro/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ro/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Se apelează prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"În așteptare"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Apel video de la"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Apel video prin Wi-Fi de la"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitare de upgrade la apel video de la"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitare de upgrade la apel video prin Wi-Fi de la"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Apel primit de la"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Apel de serviciu de la"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Primite prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ru/strings.xml b/java/com/android/incallui/contactgrid/res/values-ru/strings.xml
index dfbc088..e0a6351 100644
--- a/java/com/android/incallui/contactgrid/res/values-ru/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ru/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Вызов через <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"На удержании"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видеовызов от"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Видеовызов по Wi-Fi от"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Запрос на переход к видеовстрече от:"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Запрос на переход к видеовстрече через Wi-Fi от:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Вызов от"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Рабочий вызов от"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Входящий вызов (оператор: <xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-si/strings.xml b/java/com/android/incallui/contactgrid/res/values-si/strings.xml
index 00ca2aa..451dc39 100644
--- a/java/com/android/incallui/contactgrid/res/values-si/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-si/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> හරහා අමතමින්"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"රඳවා ගත්"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"වෙතින් වීඩියෝ ඇමතුම"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"වෙතින් Wi-Fi වීඩියෝ ඇමතුම"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"වෙතින් වීඩියෝ උත්ශ්‍රේණි කිරීමේ ඉල්ලීම"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"වෙතින් Wi-Fi වීඩියෝ උත්ශ්‍රේණි කිරීමේ ඉල්ලීම"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"වෙතින් ඇමතුම"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"වෙතින් කාර්යාල ඇමතුම"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> හරහා එන"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sk/strings.xml b/java/com/android/incallui/contactgrid/res/values-sk/strings.xml
index 40039ee..ae21ec8 100644
--- a/java/com/android/incallui/contactgrid/res/values-sk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sk/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Voláte prostredníctvom poskytovateľa <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Podržané"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videohovor od:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videohovor cez Wi-Fi od:"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Žiadosť o inováciu na videohovor od používateľa"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Žiadosť o inováciu na videohovor cez Wi-Fi od používateľa"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Hovor od:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Pracovný hovor od:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Prichádzajúci hovor prostredníctvom poskytovateľa <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sl/strings.xml b/java/com/android/incallui/contactgrid/res/values-sl/strings.xml
index f76b5cd..1d93d21 100644
--- a/java/com/android/incallui/contactgrid/res/values-sl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Klicanje prek ponudnika <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Zadržano"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoklic osebe"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videoklic prek omrežja Wi-Fi osebe"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Zahteva za nadgradnjo v video – zahteva osebe"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Zahteva za nadgradnjo v video prek omrežja Wi-Fi – zahteva osebe"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Klic osebe"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Delovni klic osebe"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dohodni klic prek storitve <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sq/strings.xml b/java/com/android/incallui/contactgrid/res/values-sq/strings.xml
index 34ec2d1..8c28eb7 100644
--- a/java/com/android/incallui/contactgrid/res/values-sq/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sq/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Telefonatë nëpërmjet <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Në pritje"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Telefonatë me video nga"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Telefonatë me video në Wi-Fi nga"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Kërkesë për përmirësimin me video nga"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Kërkesë për përmirësimin me video me Wi-Fi nga"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Telefonatë nga"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Telefonatë pune nga"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Telefonatë hyrëse nëpërmjet <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sr/strings.xml b/java/com/android/incallui/contactgrid/res/values-sr/strings.xml
index 9ad1499..66ea45d 100644
--- a/java/com/android/incallui/contactgrid/res/values-sr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Позивамо преко <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"На чекању"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видео позив од"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi видео позив од"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Захтев за прелазак на видео позив од"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Захтев за прелазак на видео позив преко Wi-Fi-ја од"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Позив од"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Пословни позив од"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Долазни позив преко <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sv/strings.xml b/java/com/android/incallui/contactgrid/res/values-sv/strings.xml
index d5dd159..931d9c9 100644
--- a/java/com/android/incallui/contactgrid/res/values-sv/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sv/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer med <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Parkerat"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videosamtal från"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videosamtal från"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Begäran om videouppgradering från"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Begäran om uppgradering av Wi-Fi-video från"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Samtal från"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Jobbsamtal från"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Inkommande via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sw/strings.xml b/java/com/android/incallui/contactgrid/res/values-sw/strings.xml
index 72bc26f..581d797 100644
--- a/java/com/android/incallui/contactgrid/res/values-sw/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sw/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Inapiga simu kupitia <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Imesitishwa"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Simu ya video kutoka kwa"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Simu ya video kupitia Wi-Fi kutoka kwa"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Umetumiwa ombi ili ubadilishe utumie simu ya video na"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Umetumiwa ombi ili ubadilishe utumie simu ya video kwenye Wi-Fi na"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Simu kutoka kwa"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Simu ya kazi kutoka kwa"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Simu zinazoingia kupitia <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ta/strings.xml b/java/com/android/incallui/contactgrid/res/values-ta/strings.xml
index 2f5b1b8..37ff876 100644
--- a/java/com/android/incallui/contactgrid/res/values-ta/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ta/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> வழியாக அழைக்கிறது"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ஹோல்டில் உள்ளது"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"வீடியோ அழைப்பு:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"வைஃபை வீடியோ அழைப்பு:"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"வீடியோவை மேம்படுத்துவதற்கான கோரிக்கை:"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"வைஃபையில் வீடியோவை மேம்படுத்துவதற்கான கோரிக்கை:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"அழைப்பு:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"அழைப்பு (பணி) :"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> மூலம் உள்வரும் அழைப்பு"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-te/strings.xml b/java/com/android/incallui/contactgrid/res/values-te/strings.xml
index 52038db..913c944 100644
--- a/java/com/android/incallui/contactgrid/res/values-te/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-te/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ద్వారా కాల్ చేస్తోంది"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"హోల్డ్‌లో ఉంది"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"వీరి నుండి వీడియో కాల్:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"వీరి నుండి Wi-Fi వీడియో కాల్:"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"వీరి నుండి వీడియో అప్‌గ్రేడ్ అభ్యర్థన"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"వీరి నుండి Wi-Fi వీడియో అప్‌గ్రేడ్ అభ్యర్థన"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"వీరి నుండి కాల్:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"వీరి నుండి కార్యాలయ కాల్:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ద్వారా ఇన్‌కమింగ్ కాల్"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-th/strings.xml b/java/com/android/incallui/contactgrid/res/values-th/strings.xml
index 419db19..6503959 100644
--- a/java/com/android/incallui/contactgrid/res/values-th/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-th/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"โทรผ่าน <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"พักสาย"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"แฮงเอาท์วิดีโอจาก"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"แฮงเอาท์วิดีโอผ่าน Wi-Fi จาก"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"คำขออัปเกรดวิดีโอจาก"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"คำขออัปเกรดวิดีโอผ่าน Wi-Fi จาก"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"โทรจาก"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"โทรเรื่องงานจาก"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"สายเรียกเข้าผ่าน <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-tl/strings.xml b/java/com/android/incallui/contactgrid/res/values-tl/strings.xml
index 282ec10..7fa063b 100644
--- a/java/com/android/incallui/contactgrid/res/values-tl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-tl/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Tumatawag sa pamamagitan ng <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Naka-hold"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call mula kay"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi na video call mula kay"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Kahilingan upang i-upgrade ang video mula kay"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Kahilingan upang i-upgrade ang video gamit ang Wi-Fi mula kay"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Tawag mula kay"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Tawag sa trabaho mula kay"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Papasok sa pamamagitan ng <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-tr/strings.xml b/java/com/android/incallui/contactgrid/res/values-tr/strings.xml
index 5ecbf35..1ce565d 100644
--- a/java/com/android/incallui/contactgrid/res/values-tr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-tr/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> üzerinden çağrı yapılıyor"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Beklemede"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Gelen video görüşmesi isteği:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Gelen kablosuz video görüşmesi isteği:"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Görüntülü görüşmeye geçme isteği alındı:"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Kablosuz görüntülü görüşmeye geçme isteği alındı:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Gelen çağrı:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Gelen iş çağrısı:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> adlı sağlayıcı üzerinden gelen çağrı"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-uk/strings.xml b/java/com/android/incallui/contactgrid/res/values-uk/strings.xml
index 7b84fb6..0d4a595 100644
--- a/java/com/android/incallui/contactgrid/res/values-uk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-uk/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Виклик здійснюється через оператора <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Утримується"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Відеодзвінок від:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Відеодзвінок через Wi-Fi від:"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Запит на відеодзвінок від користувача"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Запит на відеодзвінок через Wi-Fi від користувача"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Виклик від:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Виклик на робочий телефон від:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Вхідні виклики через оператора <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ur/strings.xml b/java/com/android/incallui/contactgrid/res/values-ur/strings.xml
index 6584181..793e487 100644
--- a/java/com/android/incallui/contactgrid/res/values-ur/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ur/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"کالنگ بذریعہ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"ہولڈ پر ہے"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ویڈیو کال منجانب"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"‏Wi-Fi ویڈیو کال منجانب"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ویڈیو اپ گریڈ کی درخواست منجانب"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"‏Wi-Fi ویڈیو اپ گریڈ کی درخواست منجانب"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"کال منجانب"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"دفتری کال منجانب"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> کے ذریعے آنے والی کال"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-uz/strings.xml b/java/com/android/incallui/contactgrid/res/values-uz/strings.xml
index db11a18..a5ce1ca 100644
--- a/java/com/android/incallui/contactgrid/res/values-uz/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-uz/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> orqali qo‘ng‘rioq qilinmoqda"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Kutish rejimida"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Kimdan video qo‘ng‘iroq:"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi orqali kimdan video qo‘ng‘iroq:"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Bu foydalanuvchi video suhbatga o‘tishni so‘ramoqda:"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Bu foydalanuvchi Wi-Fi orqali video suhbatga o‘tishni so‘ramoqda:"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Kimdan qo‘ng‘iroq:"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Ish telefoniga kimdan qo‘ng‘iroq:"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Kiruvchi qo‘ng‘iroq (operator: <xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-vi/strings.xml b/java/com/android/incallui/contactgrid/res/values-vi/strings.xml
index 340a115..9ce0f18 100644
--- a/java/com/android/incallui/contactgrid/res/values-vi/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-vi/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Đang gọi điện qua <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Đang chờ"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Cuộc gọi điện video từ"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Cuộc gọi điện video qua Wi-Fi từ"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Yêu cầu nâng cấp video từ"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Yêu cầu nâng cấp video Wi-Fi từ"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Cuộc gọi từ"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Cuộc gọi về công việc từ"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Cuộc gọi đến qua <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml
index 16031b8..af5008a 100644
--- a/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"正在通过<xliff:g id="PROVIDER_NAME">%s</xliff:g>进行通话"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"保持"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"视频通话来自："</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"WLAN 视频通话来自："</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"视频通话升级请求来自："</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"WLAN 视频通话升级请求来自："</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"通话来自："</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"工作通话来自："</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"有人通过 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 来电"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml
index 14a4441..9f47481 100644
--- a/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"正在透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 撥號"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"保留"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"視像通話來自"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi 視像通話來自"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"視像升級要求來自"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi 視像升級要求來自"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"通話來自"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"工作通話來自"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 的來電"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml
index bdee41e..563bb28 100644
--- a/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"正在透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 撥號"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"保留中"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"視訊通話來電："</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi 視訊通話來電："</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"視訊升級要求，來自："</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi 視訊升級要求，來自："</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"語音來電："</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"公司來電："</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"有人透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 來電"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-zu/strings.xml b/java/com/android/incallui/contactgrid/res/values-zu/strings.xml
index 150d5cc..19951cc 100644
--- a/java/com/android/incallui/contactgrid/res/values-zu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-zu/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_calling_via_template" msgid="3416867359475780924">"Ishaya ucingo nge-<xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
     <string name="incall_remotely_held" msgid="8561379039177396615">"Ibambile"</string>
     <string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Ikholi yevidiyo kusukela ku-"</string>
     <string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Ikholi yevidiyo ye-Wi-Fi kusukela ku-"</string>
+    <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Isicelo sokuthuthukiswa kwevidiyo kusukela"</string>
+    <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Isicelo sokuthuthukiswa kwevidiyo ye-Wi-Fi kusukela"</string>
     <string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Ikholi esuka ku-"</string>
     <string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Ikholi yomsebenzi kusukela ku-"</string>
     <string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Ingena nge-<xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values/strings.xml b/java/com/android/incallui/contactgrid/res/values/strings.xml
index 385f843..5a9272c 100644
--- a/java/com/android/incallui/contactgrid/res/values/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values/strings.xml
@@ -1,4 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
 
   <!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
@@ -50,6 +65,12 @@
   <!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
   <string name="contact_grid_incoming_wifi_video_call">Wi-Fi video call from</string>
 
+  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
+  <string name="contact_grid_incoming_video_request">Video upgrade request from</string>
+
+  <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
+  <string name="contact_grid_incoming_wifi_video_request">Wi-Fi video upgrade request from</string>
+
   <!-- Displayed in the answer call screen for incoming voice calls. -->
   <string name="contact_grid_incoming_voice_call">Call from</string>
 
diff --git a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java
index 0dcfdb5..99364e2 100644
--- a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java
+++ b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java
@@ -83,11 +83,18 @@
     mapping.put(
         InCallButtonIds.BUTTON_SWITCH_TO_SECONDARY, MappingInfo.builder(4).setSlotOrder(0).build());
     mapping.put(
-        InCallButtonIds.BUTTON_MANAGE_VOICE_CONFERENCE,
-        MappingInfo.builder(4).setSlotOrder(5).build());
-    mapping.put(
         InCallButtonIds.BUTTON_UPGRADE_TO_VIDEO, MappingInfo.builder(4).setSlotOrder(10).build());
-    mapping.put(InCallButtonIds.BUTTON_HOLD, MappingInfo.builder(5).setSlotOrder(0).build());
+
+    /*
+     * Unlike the other configurations, MANAGE_VOICE_CONFERENCE shares a spot with HOLD for GSM.
+     * On GSM, pressing hold while there's a background call just swaps to the background call. It
+     * doesn't make sense to show both SWITCH_TO_SECONDARY and HOLD when they do the same thing, so
+     * we show MANAGE_VOICE_CONFERENCE instead. Previously MANAGE_VOICE_CONFERENCE would not show.
+     */
+    mapping.put(
+        InCallButtonIds.BUTTON_MANAGE_VOICE_CONFERENCE,
+        MappingInfo.builder(5).setSlotOrder(0).build());
+    mapping.put(InCallButtonIds.BUTTON_HOLD, MappingInfo.builder(5).setSlotOrder(5).build());
 
     return new ButtonChooser(new MappedButtonConfig(mapping));
   }
diff --git a/java/com/android/incallui/incall/impl/ButtonController.java b/java/com/android/incallui/incall/impl/ButtonController.java
index 8c11364..b7a47f0 100644
--- a/java/com/android/incallui/incall/impl/ButtonController.java
+++ b/java/com/android/incallui/incall/impl/ButtonController.java
@@ -29,6 +29,8 @@
 import com.android.incallui.incall.protocol.InCallButtonIds;
 import com.android.incallui.incall.protocol.InCallButtonUiDelegate;
 import com.android.incallui.incall.protocol.InCallScreenDelegate;
+import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo;
+import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo.IconSize;
 
 /** Manages a single button. */
 interface ButtonController {
@@ -376,36 +378,13 @@
     }
 
     public void setAudioState(CallAudioState audioState) {
-      @StringRes int contentDescriptionResId;
-      if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH)
-          == CallAudioState.ROUTE_BLUETOOTH) {
-        checkable = false;
-        isChecked = false;
-        label = R.string.incall_label_audio;
+      SpeakerButtonInfo info = new SpeakerButtonInfo(audioState, IconSize.SIZE_36_DP);
 
-        if ((audioState.getRoute() & CallAudioState.ROUTE_BLUETOOTH)
-            == CallAudioState.ROUTE_BLUETOOTH) {
-          icon = R.drawable.quantum_ic_bluetooth_audio_white_36;
-          contentDescriptionResId = R.string.incall_content_description_bluetooth;
-        } else if ((audioState.getRoute() & CallAudioState.ROUTE_SPEAKER)
-            == CallAudioState.ROUTE_SPEAKER) {
-          icon = R.drawable.quantum_ic_volume_up_white_36;
-          contentDescriptionResId = R.string.incall_content_description_speaker;
-        } else if ((audioState.getRoute() & CallAudioState.ROUTE_WIRED_HEADSET)
-            == CallAudioState.ROUTE_WIRED_HEADSET) {
-          icon = R.drawable.quantum_ic_headset_white_36;
-          contentDescriptionResId = R.string.incall_content_description_headset;
-        } else {
-          icon = R.drawable.ic_phone_audio_white_36dp;
-          contentDescriptionResId = R.string.incall_content_description_earpiece;
-        }
-      } else {
-        checkable = true;
-        isChecked = audioState.getRoute() == CallAudioState.ROUTE_SPEAKER;
-        label = R.string.incall_label_speaker;
-        icon = R.drawable.quantum_ic_volume_up_white_36;
-        contentDescriptionResId = R.string.incall_content_description_speaker;
-      }
+      checkable = info.checkable;
+      isChecked = info.isChecked;
+      label = info.label;
+      icon = info.icon;
+      @StringRes int contentDescriptionResId = info.contentDescription;
 
       contentDescription = delegate.getContext().getText(contentDescriptionResId);
       checkedContentDescription =
diff --git a/java/com/android/incallui/incall/impl/InCallFragment.java b/java/com/android/incallui/incall/impl/InCallFragment.java
index c5d7532..d329dc9 100644
--- a/java/com/android/incallui/incall/impl/InCallFragment.java
+++ b/java/com/android/incallui/incall/impl/InCallFragment.java
@@ -473,6 +473,9 @@
     inCallButtonUiDelegate.setAudioRoute(audioRoute);
   }
 
+  @Override
+  public void onAudioRouteSelectorDismiss() {}
+
   @NonNull
   @Override
   public ButtonController getButtonController(@InCallButtonIds int id) {
diff --git a/java/com/android/incallui/incall/impl/InCallPagerAdapter.java b/java/com/android/incallui/incall/impl/InCallPagerAdapter.java
index 0b1088d..bc0c616 100644
--- a/java/com/android/incallui/incall/impl/InCallPagerAdapter.java
+++ b/java/com/android/incallui/incall/impl/InCallPagerAdapter.java
@@ -21,7 +21,6 @@
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentStatePagerAdapter;
 import android.support.v4.view.PagerAdapter;
-import android.text.TextUtils;
 import com.android.dialer.multimedia.MultimediaData;
 import com.android.incallui.sessiondata.MultimediaFragment;
 
@@ -47,8 +46,7 @@
 
   @Override
   public int getCount() {
-    if (attachments != null
-        && (!TextUtils.isEmpty(attachments.getText()) || attachments.hasImageData())) {
+    if (attachments != null && attachments.hasData()) {
       return 2;
     }
     return 1;
diff --git a/java/com/android/incallui/incall/impl/res/values-af/strings.xml b/java/com/android/incallui/incall/impl/res/values-af/strings.xml
index fd632fb..64529a5 100644
--- a/java/com/android/incallui/incall/impl/res/values-af/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-af/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video-oproep"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Hou aan"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Voeg oproep by"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Demp"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Beëindig oproep"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Sleutelblok"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Luidspreker"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is aan"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is af"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Voeg saam"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Bestuur"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Bestuur bellers"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Verwissel"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Klank"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota is gestuur"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-am/strings.xml b/java/com/android/incallui/incall/impl/res/values-am/strings.xml
index 9dfd0e6..66a3868 100644
--- a/java/com/android/incallui/incall/impl/res/values-am/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-am/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"የቪዲዮ ጥሪ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ይዘህ ቆይ"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"ጥሪ ያክሉ"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"ድምፀ-ከል አድርግ"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"ጥሪ ጨርስ"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"ቁልፍ ሰሌዳ"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"የድምጽ ማጉያ"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"፣ በርቷል"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"፣ ጠፍቷል"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"አዋህድ"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"አስተዳድር"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ደዋዮችን ያስተዳድሩ"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"አገላብጥ"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"ድምፅ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"ማስታወሻ ተልኳል"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ar/strings.xml b/java/com/android/incallui/incall/impl/res/values-ar/strings.xml
index a5f448a..e4dbfe4 100644
--- a/java/com/android/incallui/incall/impl/res/values-ar/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ar/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"مكالمة فيديو"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"انتظار"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"إضافة مكالمة"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"كتم"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"إنهاء المكالمة"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"لوحة مفاتيح"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"مكبر الصوت"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"، مشغل"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"، غير مشغل"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"دمج"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"إدارة"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"إدارة المتصلين"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"تبديل"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"الصوت"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"تم إرسال الملاحظة"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-az/strings.xml b/java/com/android/incallui/incall/impl/res/values-az/strings.xml
index 5f1f8cb..9a1f7f8 100644
--- a/java/com/android/incallui/incall/impl/res/values-az/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-az/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video zəng"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Xətdə axlayın"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Zəng əlavə edin"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Susdurun"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Zəngi bitirin"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatura"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Dinamik"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", aktivdir"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", deaktivdir"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Birləşdir"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"İdarə edin"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Zəng edənləri idarə edin"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Dəyişdirin"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Səs"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Qeyd göndərildi"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml
index bff7ed0..02d6b7c 100644
--- a/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video poziv"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Na čekanje"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poziv"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Isključi zvuk"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Završi poziv"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatura"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Zvučnik"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", uključen"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", isključen"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Objedini"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Upravljaj"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljajte pozivaocima"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Zameni"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Beleška je poslata"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-be/strings.xml b/java/com/android/incallui/incall/impl/res/values-be/strings.xml
index 394c7c8..45e1e10 100644
--- a/java/com/android/incallui/incall/impl/res/values-be/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-be/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Відэавыклік"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Утрымліваць"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Дадаць выклік"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Адключыць мікрафон"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Сконч. выкл."</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Клавіятура"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Вонк.дынамік"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", уключана"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", выключана"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Аб\'яднаць"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Кіраваць"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Кіраваць выклікаючымі абанентамі"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Пераключыць"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Гук"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Нататка адпраўлена"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-bg/strings.xml b/java/com/android/incallui/incall/impl/res/values-bg/strings.xml
index 4f5933b..c339d3b 100644
--- a/java/com/android/incallui/incall/impl/res/values-bg/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-bg/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Видеообажд."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Задържане"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Ново обажд."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Без звук"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Затваряне"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Клавиатура"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Високоговорител"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"е включено"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"е изключено"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Обединяване"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Управление"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управление на обаждащите се"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Размяна"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Бележката е изпратена"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-bn/strings.xml b/java/com/android/incallui/incall/impl/res/values-bn/strings.xml
index 9453e14..ca5837b 100644
--- a/java/com/android/incallui/incall/impl/res/values-bn/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-bn/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ভিডিও কল"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ধরে থাকুন"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"কল যোগ করুন"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"নিঃশব্দ করুন"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"কল শেষ করুন"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"কীপ্যাড"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"স্পিকার"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", চালু রয়েছে"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", বন্ধ রয়েছে"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"মার্জ করুন"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"পরিচালনা করুন"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"কলারদের পরিচালনা করুন"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"অদল বদল করুন"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"শব্দ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"নোট পাঠানো হয়েছে"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-bs/strings.xml b/java/com/android/incallui/incall/impl/res/values-bs/strings.xml
index 4b47964..26b44ea 100644
--- a/java/com/android/incallui/incall/impl/res/values-bs/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-bs/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videopoziv"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Na čekanju"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poziv"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Isključi"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Prekini poziv"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Telefonska tastatura"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Zvučnik"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", uključen"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", isključen"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Spoji"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Upravljaj"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljanje pozivaocima"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Zamijeni"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Bilješka je poslana"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ca/strings.xml b/java/com/android/incallui/incall/impl/res/values-ca/strings.xml
index e10b7bd..9c76a3a 100644
--- a/java/com/android/incallui/incall/impl/res/values-ca/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ca/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videotrucada"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Posa en espera"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Afeg. trucada"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Silencia"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Penja"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclat"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Altaveu"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activat"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desactivat"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Combina"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gestiona"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gestiona les persones que truquen"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Canvia"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"So"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"La nota s\'ha enviat"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-cs/strings.xml b/java/com/android/incallui/incall/impl/res/values-cs/strings.xml
index a00c105..69f3e53 100644
--- a/java/com/android/incallui/incall/impl/res/values-cs/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-cs/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videohovor"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Podržet"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Přidat hovor"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Vyp. mikrof."</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Zavěsit"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Klávesnice"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Reproduktor"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"– zapnuto"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"– vypnuto"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Sloučit"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Spravovat"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Spravovat volající"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Přepnout"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Poznámka byla odeslána"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-da/strings.xml b/java/com/android/incallui/incall/impl/res/values-da/strings.xml
index 08b5cbb..d9328af 100644
--- a/java/com/android/incallui/incall/impl/res/values-da/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-da/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videoopkald"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Parkér"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Tilføj opkald"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Slå lyden fra"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Slut opkald"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatur"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Højttaler"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", er til"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", er fra"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Flet"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Administrer"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Administrer opkaldere"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Byt"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Lyd"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Noten blev sendt"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-de/strings.xml b/java/com/android/incallui/incall/impl/res/values-de/strings.xml
index 5f3f8c1..30eae96 100644
--- a/java/com/android/incallui/incall/impl/res/values-de/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-de/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videoanruf"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Halten"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Hinzufügen"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Stumm"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Beenden"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Wähltasten"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Lautsprecher"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ist an"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ist aus"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Zusammenf."</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Verwalten"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Anrufer verwalten"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Wechseln"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Audio"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Notiz gesendet"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-el/strings.xml b/java/com/android/incallui/incall/impl/res/values-el/strings.xml
index 0f5a142..b45314f 100644
--- a/java/com/android/incallui/incall/impl/res/values-el/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-el/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Βιντεοκλήση"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Αναμονή"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Προσθ. κλήσ."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Σίγαση"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Τερματισμός"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Πληκτρολόγιο"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Ηχείο"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ενεργό"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ανενεργό"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Συγχώνευση"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Διαχείριση"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Διαχείριση καλούντων"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Ανταλλαγή"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Ήχος"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Η σημείωση εστάλη"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml
index 89b72df..34323f5 100644
--- a/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Hold"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Add call"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Mute"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"End call"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is on"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is off"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Merge"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Manage"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Manage callers"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Swap"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Sound"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Note sent"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml
index 89b72df..34323f5 100644
--- a/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Hold"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Add call"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Mute"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"End call"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is on"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is off"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Merge"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Manage"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Manage callers"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Swap"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Sound"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Note sent"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml
index 89b72df..34323f5 100644
--- a/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Hold"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Add call"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Mute"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"End call"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is on"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is off"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Merge"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Manage"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Manage callers"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Swap"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Sound"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Note sent"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml b/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml
index fe9374c..d39cf2f 100644
--- a/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videollamada"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Retener"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Agregar llamada"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Silenciar"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Finalizar"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Altavoz"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activado"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desactivado"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Combinar"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Administrar"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Administrar números"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Cambiar"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Sonido"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Se envió la nota"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-es/strings.xml b/java/com/android/incallui/incall/impl/res/values-es/strings.xml
index f2dd09b..db5a7e6 100644
--- a/java/com/android/incallui/incall/impl/res/values-es/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-es/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videollamada"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Retener"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Añadir"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Silenciar"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Finalizar"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Altavoz"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activado"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desactivado"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Combinar"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gestionar"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Administrar llamadas"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Cambiar"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Sonido"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-et/strings.xml b/java/com/android/incallui/incall/impl/res/values-et/strings.xml
index 03fa7de..f4587ad 100644
--- a/java/com/android/incallui/incall/impl/res/values-et/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-et/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videokõne"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Ootele"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Lisa kõne"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Vaigista"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Lõpeta kõne"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatuur"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Kõlar"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", on sees"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", on väljas"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Ühenda"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Halda"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Helistajate haldamine"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Vaheta"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Heli"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Märge on saadetud"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-eu/strings.xml b/java/com/android/incallui/incall/impl/res/values-eu/strings.xml
index 51d300e..28d78a7 100644
--- a/java/com/android/incallui/incall/impl/res/values-eu/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-eu/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Bideo-deia"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Utzi zain"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Gehitu deia"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Des. audioa"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Amaitu deia"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teklatua"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Bozgorailua"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", aktibatuta"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desaktib."</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Bateratu"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Kudeatu"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Kudeatu deitzaileak"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Aldatu"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Soinua"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Bidali da oharra"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-fa/strings.xml b/java/com/android/incallui/incall/impl/res/values-fa/strings.xml
index a070116..a26ac75 100644
--- a/java/com/android/incallui/incall/impl/res/values-fa/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-fa/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"تماس ویدئویی"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"درحال انتظار"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"افزودن تماس"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"بی‌صدا کردن"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"پایان تماس"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"صفحه کلید"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"بلندگو"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"، فعال است"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"، غیرفعال است"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ادغام"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"مدیریت"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"مدیریت تماس‌گیرندگان"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"جابه‌جایی"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"صدا"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"یادداشت ارسال شد"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-fi/strings.xml b/java/com/android/incallui/incall/impl/res/values-fi/strings.xml
index d81bfbf..9ae5348 100644
--- a/java/com/android/incallui/incall/impl/res/values-fi/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-fi/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videopuhelu"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Pitoon"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Lisää puhelu"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Mykistä"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Päätä puhelu"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Näppäimistö"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Kaiutin"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", käytössä"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ei käytössä"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Yhdistä"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Hallinnoi"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hallinnoi soittajia"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Vaihda"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Ääni"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Muistiinpano lähetettiin."</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml b/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml
index 1278bce..cff6745 100644
--- a/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Appel vidéo"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"En attente"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Autre appel"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Couper son"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Raccrocher"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Clavier"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Haut-parleur"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activé"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", désactivé"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Fusionner"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gérer"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gérer les appels"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Permuter"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Son"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Note envoyée"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-fr/strings.xml b/java/com/android/incallui/incall/impl/res/values-fr/strings.xml
index 5532032..14e92be 100644
--- a/java/com/android/incallui/incall/impl/res/values-fr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-fr/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Appel vidéo"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"En attente"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Autre appel"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Couper micro"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Raccrocher"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Clavier"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Haut-parleur"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activé"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", désactivé"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Fusionner"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gérer"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gérer les appelants"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Permuter"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Son"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Note envoyée"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-gl/strings.xml b/java/com/android/incallui/incall/impl/res/values-gl/strings.xml
index ec99b7c..4b399f4 100644
--- a/java/com/android/incallui/incall/impl/res/values-gl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-gl/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videochamada"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"En espera"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Eng. chamada"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Ignorar"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Finalizar chamada"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Altofalante"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"activado"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"desactivado"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Combinar"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Xestionar"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Xestionar emisores de chamadas"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Cambiar"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Son"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Enviouse a nota"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-gu/strings.xml b/java/com/android/incallui/incall/impl/res/values-gu/strings.xml
index fb3999c..438f0f3 100644
--- a/java/com/android/incallui/incall/impl/res/values-gu/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-gu/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"વિડિઓ કૉલ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"હોલ્ડ કરો"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"કૉલ ઉમેરો"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"મ્યૂટ કરો"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"કૉલ સમાપ્ત કરો"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"કીપેડ"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"સ્પીકર"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ચાલુ છે"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", બંધ છે"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"મર્જ કરો"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"સંચાલિત કરો"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"કૉલર્સને સંચાલિત કરો"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"સ્વેપ કરો"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"ધ્વનિ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"નોંધ મોકલી"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml
deleted file mode 100644
index 1f37cd5..0000000
--- a/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-  <dimen name="incall_avatar_size">88dp</dimen>
-</resources>
diff --git a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml b/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml
similarity index 75%
rename from java/com/android/incallui/res/drawable/img_conference_automirrored.xml
rename to java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml
index 78b2876..904aed2 100644
--- a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml
+++ b/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2016 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -16,6 +15,6 @@
   ~ limitations under the License
   -->
 
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-  android:autoMirrored="true"
-  android:src="@drawable/img_conference"/>
\ No newline at end of file
+<resources>
+  <dimen name="incall_avatar_size">88dp</dimen>
+</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml b/java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml
similarity index 100%
rename from java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml
rename to java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml
diff --git a/java/com/android/incallui/incall/impl/res/values-hi/strings.xml b/java/com/android/incallui/incall/impl/res/values-hi/strings.xml
index 6a7538d..39e6e6b 100644
--- a/java/com/android/incallui/incall/impl/res/values-hi/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-hi/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"वीडियो कॉल"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"होल्ड करें"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"कॉल जोड़ें"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"म्यूट करें"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"कॉल समाप्त करें"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"कीपैड"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"स्‍पीकर"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", चालू है"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", बंद है"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"एक बनाएं"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"प्रबंधित करें"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"कॉलर प्रबंधित करें"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"स्वैप करें"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"ध्वनि"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"नोट भेज दिया गया है"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-hr/strings.xml b/java/com/android/incallui/incall/impl/res/values-hr/strings.xml
index fc431b3..e440028 100644
--- a/java/com/android/incallui/incall/impl/res/values-hr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-hr/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videopoziv"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Pauziraj"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poziv"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Isklj. zvuk"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Prekini poziv"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tipkovnica"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Zvučnik"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", uključeno"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", isključeno"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Spoji"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Upravljanje"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljaj pozivateljima"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Zamijeni"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Bilješka je poslana"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-hu/strings.xml b/java/com/android/incallui/incall/impl/res/values-hu/strings.xml
index 194c348..e63ce59 100644
--- a/java/com/android/incallui/incall/impl/res/values-hu/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-hu/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videohívás"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Várakoztatás"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Hívás felv."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Némítás"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Hívás vége"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Billentyűzet"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Hangszóró"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", be"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ki"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Egyesítés"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Kezelés"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hívók kezelése"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Csere"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Hang"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Üzenet elküldve"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-hy/strings.xml b/java/com/android/incallui/incall/impl/res/values-hy/strings.xml
index 0e8054e..ce395e7 100644
--- a/java/com/android/incallui/incall/impl/res/values-hy/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-hy/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Տեսազանգ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Պահել զանգը"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Ավելացնել զանգ"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Անջատել"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Ավարտել զանգը"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Ստեղնաշար"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Բարձրախոս"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", միացած է"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", անջատած է"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Միավորել"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Կառավարել"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Զանգողների կառավարում"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Փոխարկել"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Ձայն"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Գրառումն ուղարկվեց"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-in/strings.xml b/java/com/android/incallui/incall/impl/res/values-in/strings.xml
index f429cb4..e9d738a 100644
--- a/java/com/android/incallui/incall/impl/res/values-in/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-in/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Tahan"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Tambahkan panggilan"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Bisukan"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Akhiri panggilan"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", aktif"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", Nonaktif"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Gabungkan"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Kelola"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Kelola penelepon"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Tukar"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Suara"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Catatan telah dikirim"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-is/strings.xml b/java/com/android/incallui/incall/impl/res/values-is/strings.xml
index 9c3bf89..f262e3f 100644
--- a/java/com/android/incallui/incall/impl/res/values-is/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-is/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Myndsímtal"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Setja í bið"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Bæta við"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Hljóð af"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Ljúka"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Talnaborð"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Hátalari"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", kveikt"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", slökkt"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Sameina"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Stjórna"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hafa umsjón með hringjendum"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Skipta milli"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Hljóð"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Glósa send"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-it/strings.xml b/java/com/android/incallui/incall/impl/res/values-it/strings.xml
index 1cfb0be..f29a702 100644
--- a/java/com/android/incallui/incall/impl/res/values-it/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-it/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videochiamata"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"In attesa"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Aggiungi chiamata"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Disattiva"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Termina chiamata"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastierino"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Altoparlante"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", attivo"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", non attivo"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Unisci"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gestisci"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gestisci chiamanti"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Scambia"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Audio"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota inviata"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-iw/strings.xml b/java/com/android/incallui/incall/impl/res/values-iw/strings.xml
index 2426fc8..bf08e3b 100644
--- a/java/com/android/incallui/incall/impl/res/values-iw/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-iw/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"שיחת וידאו"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"המתנה"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"הוסף שיחה"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"השתק"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"סיום השיחה"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"לוח חיוג"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"רמקול"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", מופעל"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", מושבת"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"מזג"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"נהל"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ניהול המתקשרים"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"החלף"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"צלילים"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"ההערה נשלחה"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ja/strings.xml b/java/com/android/incallui/incall/impl/res/values-ja/strings.xml
index 9e313a0..b78ee20 100644
--- a/java/com/android/incallui/incall/impl/res/values-ja/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ja/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ビデオ通話"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"保留"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"通話を追加"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"ミュート"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"通話を終了"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"キーパッド"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"スピーカー"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"がオンです"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"がオフです"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"統合"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"管理"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"発信者を管理"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"切り替え"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"音声"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"メモを送信しました"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ka/strings.xml b/java/com/android/incallui/incall/impl/res/values-ka/strings.xml
index d33af5a..f6926f3 100644
--- a/java/com/android/incallui/incall/impl/res/values-ka/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ka/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ვიდეოზარი"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"შეყოვნება"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"ზარის დამატ."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"დადუმება"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"ზარის დასრ."</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"კლავიატურა"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"სპიკერი"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ჩართულია"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", გამორთულია"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"გაერთიანება"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"მართვა"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"აბონენტების მართვა"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"შენაცვლება"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"ხმა"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"ჩანიშვნა გაიგზავნა"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-kk/strings.xml b/java/com/android/incallui/incall/impl/res/values-kk/strings.xml
index db9c4f6..8da9982 100644
--- a/java/com/android/incallui/incall/impl/res/values-kk/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-kk/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Бейне қоңырау"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Күттіру"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Қоңырау қосу"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Дыбысын өшіру"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Қоңырауды аяқтау"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Пернетақта"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Динамик"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", қосулы"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", өшірулі"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Біріктіру"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Басқару"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Қоңырау шалушыларды басқару"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Ауыстыру"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Дыбыс"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Ескертпе жіберілді"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-km/strings.xml b/java/com/android/incallui/incall/impl/res/values-km/strings.xml
index 6596bdf..88e356a 100644
--- a/java/com/android/incallui/incall/impl/res/values-km/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-km/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ហៅ​ជា​វីដេអូ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"រង់ចាំ"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"បន្ថែម​ការ​ហៅ"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"បិទ​សំឡេង"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"បញ្ចប់​ការ​ហៅ"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"បន្ទះ​​ចុច​លេខ"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"ឧបករណ៍​បំពង​សំឡេង"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", បាន​បើក"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", បានបិទ"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"បញ្ចូលគ្នា"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"គ្រប់គ្រង"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"គ្រប់គ្រងអ្នក​ហៅ"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"ប្ដូរ"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"សំឡេង"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"បានផ្ញើចំណាំ"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-kn/strings.xml b/java/com/android/incallui/incall/impl/res/values-kn/strings.xml
index c03ec09..ad29b6d 100644
--- a/java/com/android/incallui/incall/impl/res/values-kn/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-kn/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ವೀಡಿಯೊ ಕರೆ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ಹೋಲ್ಡ್‌‌ ಮಾಡು"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"ಕರೆಯನ್ನು ಸೇರಿಸಿ"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"ಮ್ಯೂಟ್ ಮಾಡಿ"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"ಕರೆ ಅಂತ್ಯಗೊಳಿಸಿ"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"ಕೀಪ್ಯಾಡ್‌"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"ಸ್ಪೀಕರ್‌"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ಆನ್ ಆಗಿದೆ"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ಆಫ್ ಆಗಿದೆ"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ವಿಲೀನಗೊಳಿಸು"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"ನಿರ್ವಹಿಸು"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ಕರೆದಾತರನ್ನು ನಿರ್ವಹಿಸಿ"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"ಸ್ವ್ಯಾಪ್‌ ಮಾಡು"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"ಧ್ವನಿ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"ಟಿಪ್ಪಣಿ ಕಳುಹಿಸಲಾಗಿದೆ"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ko/strings.xml b/java/com/android/incallui/incall/impl/res/values-ko/strings.xml
index e701e77..f9bb20f 100644
--- a/java/com/android/incallui/incall/impl/res/values-ko/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ko/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"화상 통화"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"대기"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"통화 추가"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"음소거"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"통화 종료"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"키패드"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"스피커"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", 켜짐"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", 꺼짐"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"병합"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"관리"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"발신자 관리"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"전환"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"소리"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"메모가 전송되었습니다."</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ky/strings.xml b/java/com/android/incallui/incall/impl/res/values-ky/strings.xml
index e51d4c5..f00264d 100644
--- a/java/com/android/incallui/incall/impl/res/values-ky/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ky/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Видео чалуу"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Күттүрүү"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Чалууну кошуу"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Үнүн өчүрүү"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Чалууну бүтүрүү"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Ном. тергич"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Катуу сүйлөткүч"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", күйүк"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", өчүк"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Бириктирүү"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Башкаруу"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Чалуучуларды башкаруу"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Алмаштыруу"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Добуш"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Билдирүү жөнөтүлдү"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-lo/strings.xml b/java/com/android/incallui/incall/impl/res/values-lo/strings.xml
index 52de3ff..2382f32 100644
--- a/java/com/android/incallui/incall/impl/res/values-lo/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-lo/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ໂທດ້ວຍວິດີໂອ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ພັກສາຍຊົ່ວຄາວ"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"ເພີ່ມການໂທ"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"ປີດສຽງ"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"ວາງສາຍ"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"ແປ້ນກົດ"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"ລຳໂພງ"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ເປີດຢູ່"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ປິດຢູ່"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ຮວມສາຍ"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"ຈັດການ"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ຈັດການຜູ້ໂທ"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"ສະຫຼັບສາຍ"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"ສຽງ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"ສົ່ງບັນທຶກແລ້ວ"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-lt/strings.xml b/java/com/android/incallui/incall/impl/res/values-lt/strings.xml
index 4cd0356..1a10884 100644
--- a/java/com/android/incallui/incall/impl/res/values-lt/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-lt/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Vaizdo skambutis"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Sulaikyti"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Pr. skambutį"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Nutildyti"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Baig. skamb."</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatūra"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Garsiakalbis"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", įjungtas"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", išjungtas"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Sujungti"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Tvarkyti"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Tvarkyti skambintojus"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Sukeisti"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Garsas"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Užrašas išsiųstas"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-lv/strings.xml b/java/com/android/incallui/incall/impl/res/values-lv/strings.xml
index 48f9ae0..c19e7c0 100644
--- a/java/com/android/incallui/incall/impl/res/values-lv/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-lv/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videozvans"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Aizturēt"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Pievienot zvanu"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Izslēgt"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Beigt zvanu"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Cipartast."</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Skaļrunis"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ieslēgts"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", izslēgts"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Apvienot"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Pārvaldīt"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Pārvaldīt zvanītājus"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Pārslēgt"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Skaņa"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Piezīme nosūtīta"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-mk/strings.xml b/java/com/android/incallui/incall/impl/res/values-mk/strings.xml
index 5a61de5..610a308 100644
--- a/java/com/android/incallui/incall/impl/res/values-mk/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-mk/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Видеоповик"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"На чекање"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Додај повик"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Исклучи звук"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Заврши повик"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Тастатура"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Звучник"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", е вклучен"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", е исклучен"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Спои"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Управувај"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управувајте со повикувачите"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Замени"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Белешката е испратена"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ml/strings.xml b/java/com/android/incallui/incall/impl/res/values-ml/strings.xml
index 00586ff..83c2989 100644
--- a/java/com/android/incallui/incall/impl/res/values-ml/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ml/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"വീഡിയോ കോള്‍"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ഹോള്‍ഡുചെയ്യുക"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"കോൾ ചേർക്കുക"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"മ്യൂട്ടുചെയ്യുക"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"കോള്‍ അവസാനിപ്പിക്കൂ"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"കീപാഡ്"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"സ്പീക്കർ"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ഓണാണ്"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ഓഫാണ്"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ലയിപ്പിക്കുക"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"മാനേജുചെയ്യുക"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"കോൾ ചെയ്യുന്നവരെ മാനേജുചെയ്യുക"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"സ്വാപ്പുചെയ്യുക"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"ശബ്‌ദം"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"കുറിപ്പ് അയച്ചു"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-mn/strings.xml b/java/com/android/incallui/incall/impl/res/values-mn/strings.xml
index 085a405..9427d86 100644
--- a/java/com/android/incallui/incall/impl/res/values-mn/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-mn/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Видео хурал"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Саатуулах"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Дуудлага нэмэх"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Дууг хаах"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Дуудлагыг таслах"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Товчлуур"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Чанга яригч"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", асаатай"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", унтраатай"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Нэгтгэх"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Удирдах"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Залгагчдыг удирдах"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Солих"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Дуу"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Тэмдэглэлийг илгээсэн"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-mr/strings.xml b/java/com/android/incallui/incall/impl/res/values-mr/strings.xml
index 8419233..194c192 100644
--- a/java/com/android/incallui/incall/impl/res/values-mr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-mr/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"व्हिडिओ कॉल"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"होल्ड करा"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"कॉल जोडा"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"नि:शब्द करा"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"कॉल समाप्त करा"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"कीपॅड"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"स्पीकर"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", सुरू आहे"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", बंद आहे"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"विलीन करा"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"व्यवस्थापित करा"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"कॉलर व्यवस्थापित करा"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"अदलाबदल करा"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"ध्वनी"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"टीप पाठविली"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ms/strings.xml b/java/com/android/incallui/incall/impl/res/values-ms/strings.xml
index c9db832..a918ded 100644
--- a/java/com/android/incallui/incall/impl/res/values-ms/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ms/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Pgln video"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Tunda"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Tambah pgln"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Redam"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Tamatkn pgln"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Pad kekunci"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Pmbsr suara"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", dihidupkan"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", Dimatikan"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Gabung"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Urus"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Urus pemanggil"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Silih"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Bunyi"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota dihantar"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-my/strings.xml b/java/com/android/incallui/incall/impl/res/values-my/strings.xml
index e0bfb8c..8007029 100644
--- a/java/com/android/incallui/incall/impl/res/values-my/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-my/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ဗီဒီယိုခေါ်ဆိုမှု"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ခဏရပ်ထားရန်"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"ထပ်ခေါ်ရန်"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"အသံပိတ်ရန်"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"ဖုန်းချရန်"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"ခလုတ်ခုံ"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"စပီကာ"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"၊ ပွင့်နေသည်"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"၊ ပိတ်နေသည်"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ပေါင်းရန်"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"စီမံရန်"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ခေါ်ဆိုသူများကို စီမံခန့်ခွဲရန်"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"ဖလှယ်ရန်"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"အသံ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"မှတ်စုပို့ပြီးပါပြီ"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-nb/strings.xml b/java/com/android/incallui/incall/impl/res/values-nb/strings.xml
index 7520086..704384e 100644
--- a/java/com/android/incallui/incall/impl/res/values-nb/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-nb/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videosamtale"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Sett på vent"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Nytt anrop"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Ignorer"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Avslutt samtalen"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatur"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Høyttaler"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"er på"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"er av"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Slå sammen"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Administrer"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Håndter innringere"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Bytt"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Lyd"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Notatet er sendt"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ne/strings.xml b/java/com/android/incallui/incall/impl/res/values-ne/strings.xml
index 6bcfb6d..beffa3e 100644
--- a/java/com/android/incallui/incall/impl/res/values-ne/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ne/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"भिडियो कल"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"होल्ड गर्ने"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"कल थप्नुहोस्"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"म्यूट गर्ने"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"कल अन्त्य गर्ने"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"किप्याड"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"स्पिकर"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", खुला छ"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", बन्द छ"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"मर्ज गर्ने"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"प्रबन्ध गर्ने"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"कल गर्ने व्यक्तिहरूलाई व्यवस्थित गर्नुहोस्"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"साट्नुहोस्"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"आवाज"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"टिपोट पठाइयो"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-nl/strings.xml b/java/com/android/incallui/incall/impl/res/values-nl/strings.xml
index 63f1ebd..e3c919e 100644
--- a/java/com/android/incallui/incall/impl/res/values-nl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-nl/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videogespr."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"In wacht"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Oproep toev."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Dempen"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Oproep beëindigen"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Toetsenblok"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Luidspreker"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is aan"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is uit"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Samenvoegen"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Beheren"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Bellers beheren"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Wisselen"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Geluid"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Notitie verzonden"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-no/strings.xml b/java/com/android/incallui/incall/impl/res/values-no/strings.xml
index 7520086..704384e 100644
--- a/java/com/android/incallui/incall/impl/res/values-no/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-no/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videosamtale"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Sett på vent"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Nytt anrop"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Ignorer"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Avslutt samtalen"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatur"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Høyttaler"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"er på"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"er av"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Slå sammen"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Administrer"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Håndter innringere"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Bytt"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Lyd"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Notatet er sendt"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pa/strings.xml b/java/com/android/incallui/incall/impl/res/values-pa/strings.xml
index 10a2865..d7e74ed 100644
--- a/java/com/android/incallui/incall/impl/res/values-pa/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pa/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ਵੀਡੀਓ ਕਾਲ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ਰੋਕ ਕੇ ਰੱਖੋ"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"ਕਾਲ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"ਮਿਊਟ ਕਰੋ"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"ਕਾਲ ਖਤਮ ਕਰੋ"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"ਕੀਪੈਡ"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"ਸਪੀਕਰ"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ਚਾਲੂ ਹੈ"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ਬੰਦ ਹੈ"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ਰਲਗੱਡ ਕਰੋ"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ਕਾਲਰਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"ਅਦਲੋ-ਬਦਲੋ"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"ਧੁਨੀ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"ਨੋਟ-ਕਥਨ ਭੇਜਿਆ ਗਿਆ"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pl/strings.xml b/java/com/android/incallui/incall/impl/res/values-pl/strings.xml
index 4bf6a58..9971d75 100644
--- a/java/com/android/incallui/incall/impl/res/values-pl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pl/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Rozmowa wid."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Wstrzymaj"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poł."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Wycisz"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Zakończ"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Klawiatura"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Głośnik"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"– włączony"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"– wyłączony"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Scal"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Zarządzaj"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Zarządzaj rozmówcami"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Przełącz"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Dźwięk"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Notatka wysłana"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml
index 7ca6b6b..538c20c 100644
--- a/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videocham."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Em espera"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Adic chamada"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Desativar"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Encerrar"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Alto-falante"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"ativado"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"desativado"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Mesclar"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gerenciar"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gerenciar os autores das chamadas"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Trocar"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Som"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml
index 750e57e..376ee84 100644
--- a/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videochamada"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Em espera"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Adic. cham."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Desativ. som"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Term. cham."</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Altifalante"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ativado"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desativado"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Unir"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gerir"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gerir autores das chamadas"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Alternar"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Som"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pt/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt/strings.xml
index 7ca6b6b..538c20c 100644
--- a/java/com/android/incallui/incall/impl/res/values-pt/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pt/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videocham."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Em espera"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Adic chamada"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Desativar"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Encerrar"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Alto-falante"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"ativado"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"desativado"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Mesclar"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gerenciar"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gerenciar os autores das chamadas"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Trocar"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Som"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ro/strings.xml b/java/com/android/incallui/incall/impl/res/values-ro/strings.xml
index 1f93da9..81dcdf3 100644
--- a/java/com/android/incallui/incall/impl/res/values-ro/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ro/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Apel video"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"În așteptare"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Încă un apel"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Dezactivați"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Încheiați"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatură"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Difuzor"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", e activat"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", dezactivat"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Îmbinați"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Gestionați"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gestionați apelanții"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Schimbați"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Sunet"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Nota a fost trimisă"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ru/strings.xml b/java/com/android/incallui/incall/impl/res/values-ru/strings.xml
index 89192c3..274f8ff 100644
--- a/java/com/android/incallui/incall/impl/res/values-ru/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ru/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Видеовызов"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Удерживать"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Добавить вызов"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Выкл. звук"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Завершить вызов"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Клавиатура"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Динамик"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", включен"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", отключен"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Объединить"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Управление"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управление абонентами"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Переключить"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Сообщение отправлено"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-si/strings.xml b/java/com/android/incallui/incall/impl/res/values-si/strings.xml
index 209bb77..a600c21 100644
--- a/java/com/android/incallui/incall/impl/res/values-si/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-si/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"වීඩියෝ ඇමතුම"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"රඳවා ගන්න"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"ඇමතුම එක් ක."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"නිහඬ කරන්න"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"ඇමතුම නිම ක."</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"යතුරු පුවරුව"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"ස්පීකරය"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", සක්‍රියයි"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", අක්‍රියයි"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ඒකාබද්ධ කර."</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"කළමනාකරණය ක."</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"අමතන්නන් කළමනාකරණය කරන්න"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"මාරු කරන්න"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"හඬ"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"සටහන යවන ලදී"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sk/strings.xml b/java/com/android/incallui/incall/impl/res/values-sk/strings.xml
index 4e06aee..d74d19e 100644
--- a/java/com/android/incallui/incall/impl/res/values-sk/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sk/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videohovor"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Podržať"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Pridať hovor"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Vypnúť zvuk"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Ukonč. hovor"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Klávesnica"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Reproduktor"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", je zapnutý"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", je vypnutý"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Zlúčiť"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Spravovať"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Spravovať volajúcich"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Zameniť"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Poznámka bola odoslaná"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sl/strings.xml b/java/com/android/incallui/incall/impl/res/values-sl/strings.xml
index 7cdb6c8..782ce44 100644
--- a/java/com/android/incallui/incall/impl/res/values-sl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sl/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videoklic"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Zadrži"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj klic"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Izklopi zvok"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Končaj klic"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tipkovnica"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Zvočnik"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", vklopljen"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", izklopljen"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Združi"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Upravljanje"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljanje klicateljev"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Zamenjaj"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Zvok"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Opomba je poslana"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sq/strings.xml b/java/com/android/incallui/incall/impl/res/values-sq/strings.xml
index 9ba18b5..a0fca36 100644
--- a/java/com/android/incallui/incall/impl/res/values-sq/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sq/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video tel."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Në pritje"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Shto telef."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Hiqi zërin"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Mbyll tel."</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Blloku i tasteve"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Altoparlant"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", është aktiv"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", është joaktiv"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Shkri"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Menaxho"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Menaxho telefonuesit"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Shkëmbe"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Tingulli"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Shënimi u dërgua"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sr/strings.xml b/java/com/android/incallui/incall/impl/res/values-sr/strings.xml
index 56a9684..ec70451 100644
--- a/java/com/android/incallui/incall/impl/res/values-sr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sr/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Видео позив"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"На чекање"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Додај позив"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Искључи звук"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Заврши позив"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Тастатура"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Звучник"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", укључен"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", искључен"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Обједини"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Управљај"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управљајте позиваоцима"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Замени"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Белешка је послата"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sv/strings.xml b/java/com/android/incallui/incall/impl/res/values-sv/strings.xml
index 27d83b7..ded4522 100644
--- a/java/com/android/incallui/incall/impl/res/values-sv/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sv/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Videosamtal"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Parkera"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Lägg t samt."</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Ljud av"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Avsl. samtal"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Knappsats"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Högtalare"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", är på"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", är av"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Sammanfoga"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Hantera"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hantera uppringare"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Växla"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Ljud"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Anteckning skickad"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sw/strings.xml b/java/com/android/incallui/incall/impl/res/values-sw/strings.xml
index 136fe17..df634f4 100644
--- a/java/com/android/incallui/incall/impl/res/values-sw/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sw/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Hangout ya video"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Shikilia"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Ongeza simu"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Zima maikrofoni"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Kata simu"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Vitufe vya Simu"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Spika"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", kimewashwa"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", kimezimwa"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Unganisha"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Dhibiti"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Dhibiti wanaopiga simu"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Badili"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Sauti"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Dokezo limetumwa"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ta/strings.xml b/java/com/android/incallui/incall/impl/res/values-ta/strings.xml
index 342f8d0..5c94abf 100644
--- a/java/com/android/incallui/incall/impl/res/values-ta/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ta/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"வீடியோ கால்"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ஹோல்டில் வை"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"அழைப்பை சேர்"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"முடக்கு"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"அழைப்பை முடி"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"விசைத்தளம்"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"ஸ்பீக்கர்"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ஆன்"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ஆஃப்"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"இணை"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"நிர்வகி"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"அழைப்பாளர்களை நிர்வகிக்கும்"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"மாற்று"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"ஒலி"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"குறிப்பு அனுப்பப்பட்டது"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-te/strings.xml b/java/com/android/incallui/incall/impl/res/values-te/strings.xml
index 0048956..0cb3fb8 100644
--- a/java/com/android/incallui/incall/impl/res/values-te/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-te/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"వీడియో కాల్"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"హోల్డ్ చేయి"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"కాల్ జోడించు"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"మ్యూట్ చేయి"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"కాల్ ముగించు"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"కీప్యాడ్"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"స్పీకర్"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ఆన్‌లో ఉంది"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ఆఫ్‌లో ఉంది"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"విలీనం చేయి"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"నిర్వహించు"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"కాలర్‌లను నిర్వహిస్తుంది"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"మార్చు"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"శబ్దం"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"గమనిక పంపబడింది"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-th/strings.xml b/java/com/android/incallui/incall/impl/res/values-th/strings.xml
index a740288..0929cfc 100644
--- a/java/com/android/incallui/incall/impl/res/values-th/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-th/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"แฮงเอาท์วิดีโอ"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"พักสาย"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"เพิ่มการโทร"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"ปิดเสียง"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"วางสาย"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"ปุ่มกด"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"ลำโพง"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"เปิดอยู่"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"ปิดอยู่"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"รวม"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"จัดการ"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"จัดการผู้โทร"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"สลับ"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"เสียง"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"ส่งโน้ตแล้ว"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-tl/strings.xml b/java/com/android/incallui/incall/impl/res/values-tl/strings.xml
index 46ff797..1ac2ef8 100644
--- a/java/com/android/incallui/incall/impl/res/values-tl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-tl/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"I-hold"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Mag-add: tawag"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"I-mute"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Tapusin ang tawag"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">",ay On"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ay Off"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"I-merge"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Pamahalaan"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Pamahalaan ang mga tumatawag"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Pagpalitin"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Tunog"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Naipadala ang tala"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-tr/strings.xml b/java/com/android/incallui/incall/impl/res/values-tr/strings.xml
index 89ca330..241b694 100644
--- a/java/com/android/incallui/incall/impl/res/values-tr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-tr/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Görü. görüş."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Beklemeye al"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Çağrı ekle"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Sesi kapat"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Çğryı sonldr"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Tuş takımı"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Hoparlör"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", Açık"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", Kapalı"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Birleştir"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Yönet"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Arayanları yönetin"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Değiştir"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Ses"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Not gönderildi"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-uk/strings.xml b/java/com/android/incallui/incall/impl/res/values-uk/strings.xml
index 516bcb7..1821556 100644
--- a/java/com/android/incallui/incall/impl/res/values-uk/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-uk/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Відеодзвінок"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Утримувати"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Дод. виклик"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Без звуку"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Завер. викл."</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Клавіатура"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Динамік"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", увімкнено"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", вимкнено"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Об’єднати"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Керувати"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Керувати абонентами"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Поміняти"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Нотатку надіслано"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ur/strings.xml b/java/com/android/incallui/incall/impl/res/values-ur/strings.xml
index 53ba190..fed0af6 100644
--- a/java/com/android/incallui/incall/impl/res/values-ur/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ur/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"ویڈیو کال"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"ہولڈ کریں"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"کال شامل کریں"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"خاموش کریں"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"کال ختم کریں"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"کی پیڈ"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"اسپیکر"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"، آن ہے"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"، آف ہے"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"ضم کریں"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"نظم کریں"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"کالرز کا نظم کریں"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"تبادلہ کریں"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"آواز"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"نوٹ بھیج دیا گیا"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-uz/strings.xml b/java/com/android/incallui/incall/impl/res/values-uz/strings.xml
index 8818489..7d6af27 100644
--- a/java/com/android/incallui/incall/impl/res/values-uz/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-uz/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Video qo‘n."</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Pauza"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Chaqiruv"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Ovozsiz"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Tugatish"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatura"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Karnay"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", yoniq"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", o‘chiq"</string>
-    <string name="incall_label_merge" msgid="720076442985913175">"Birlashtir."</string>
+    <string name="incall_label_merge" msgid="720076442985913175">"Birlashtirish"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Boshqarish"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Qo‘ng‘iroq qiluvchilarni boshqarish"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Almashish"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Ovoz"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Qayd yuborildi"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-vi/strings.xml b/java/com/android/incallui/incall/impl/res/values-vi/strings.xml
index 29f85ef..42e320a 100644
--- a/java/com/android/incallui/incall/impl/res/values-vi/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-vi/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Gọi điện video"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Giữ"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Thêm cuộc gọi"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Tắt tiếng"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Kết thúc cuộc gọi"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Bàn phím"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Loa"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", đang bật"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", đang tắt"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Hợp nhất"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Quản lý"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Quản lý người gọi"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Hoán đổi"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Âm thanh"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Đã gửi ghi chú"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml
deleted file mode 100644
index e73eb93..0000000
--- a/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-  <dimen name="incall_button_horizontal_padding">16dp</dimen>
-  <dimen name="incall_button_vertical_padding">16dp</dimen>
-  <dimen name="incall_labeled_button_size">64dp</dimen>
-  <dimen name="tools_button_height">92dp</dimen>
-</resources>
diff --git a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml b/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml
similarity index 66%
copy from java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
copy to java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml
index ecf704e..834ea2f 100644
--- a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
+++ b/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2017 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -14,7 +14,10 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:autoMirrored="true"
-    android:src="@drawable/quantum_ic_arrow_back_white_24"
-    android:tint="@color/actionbar_icon_color"/>
\ No newline at end of file
+
+<resources>
+  <dimen name="incall_button_horizontal_padding">16dp</dimen>
+  <dimen name="incall_button_vertical_padding">16dp</dimen>
+  <dimen name="incall_labeled_button_size">64dp</dimen>
+  <dimen name="tools_button_height">92dp</dimen>
+</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml
deleted file mode 100644
index 502ae72..0000000
--- a/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-  <dimen name="incall_button_horizontal_padding">32dp</dimen>
-  <dimen name="incall_button_vertical_padding">32dp</dimen>
-</resources>
diff --git a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml b/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml
similarity index 74%
copy from java/com/android/incallui/res/drawable/img_conference_automirrored.xml
copy to java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml
index 78b2876..c7ac35e 100644
--- a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml
+++ b/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml
@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2017 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -16,6 +15,7 @@
   ~ limitations under the License
   -->
 
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-  android:autoMirrored="true"
-  android:src="@drawable/img_conference"/>
\ No newline at end of file
+<resources>
+  <dimen name="incall_button_horizontal_padding">32dp</dimen>
+  <dimen name="incall_button_vertical_padding">32dp</dimen>
+</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml b/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml
index ec64045..f0cca90 100644
--- a/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"视频通话"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"保持"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"添加通话"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"静音"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"结束通话"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"拨号键盘"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"免提"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"，已开启"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"，已关闭"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"合并"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"管理"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"管理来电者"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"切换"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"声音"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"已发送备注"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml b/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml
index 63cd6d8..c38ef35 100644
--- a/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"視像通話"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"保留"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"新增通話"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"靜音"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"結束通話"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"小鍵盤"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"揚聲器"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"，已開啟"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"，已關閉"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"合併"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"管理"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"管理來電者"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"切換"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"音效"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"已傳送筆記"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml b/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml
index be3103b..c04b830 100644
--- a/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"視訊通話"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"保留"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"新增通話"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"靜音"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"結束通話"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"撥號鍵盤"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"擴音模式"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">"，已開啟"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">"，已關閉"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"合併"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"管理"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"管理來電者"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"切換"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"音訊"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"備註已送出"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-zu/strings.xml b/java/com/android/incallui/incall/impl/res/values-zu/strings.xml
index df3f794..a23a1d5 100644
--- a/java/com/android/incallui/incall/impl/res/values-zu/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-zu/strings.xml
@@ -1,18 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+   -->
+
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="incall_label_videocall" msgid="2208755440134676113">"Ikholi yevidiyo ye-Hangout"</string>
     <string name="incall_label_hold" msgid="4223472584896867896">"Bamba"</string>
     <string name="incall_label_add_call" msgid="5641663436373994915">"Engeza ikholi"</string>
     <string name="incall_label_mute" msgid="2180667027331706737">"Thulisa"</string>
+    <string name="incall_label_end_call" msgid="5434079261446614887">"Qeda ikholi"</string>
     <string name="incall_label_dialpad" msgid="8609779533654156550">"Ikhiphedi"</string>
-    <string name="incall_label_speaker" msgid="8100402799687856933">"Isipikha"</string>
     <string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ivuliwe"</string>
     <string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ivaliwe"</string>
     <string name="incall_label_merge" msgid="720076442985913175">"Hlanganisa"</string>
     <string name="incall_label_manage" msgid="2175471192903568159">"Phatha"</string>
     <string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Phatha abashayi"</string>
     <string name="incall_label_swap" msgid="10458642864243507">"Shintsha"</string>
-    <string name="incall_label_audio" msgid="8616473242030174797">"Umsindo"</string>
     <string name="incall_note_sent" msgid="4524130323127388367">"Inothi lithunyelwe"</string>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values/strings.xml b/java/com/android/incallui/incall/impl/res/values/strings.xml
index 054ca96..2b30dfa 100644
--- a/java/com/android/incallui/incall/impl/res/values/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values/strings.xml
@@ -1,4 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
 <resources>
 
   <!-- Button shown during a phone call to upgrade to video.
@@ -17,14 +32,14 @@
      [CHAR LIMIT=12] -->
   <string name="incall_label_mute">Mute</string>
 
+  <!-- Button shown during a phone call to end the call.
+     [CHAR LIMIT=12] -->
+  <string name="incall_label_end_call">End call</string>
+
   <!-- Button shown during a phone call to show the dialpad.
      [CHAR LIMIT=12] -->
   <string name="incall_label_dialpad">Keypad</string>
 
-  <!-- Button shown during a phone to route audio from earpiece to speaker phone.
-     [CHAR LIMIT=12] -->
-  <string name="incall_label_speaker">Speaker</string>
-
   <!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
   <string name="incall_talkback_speaker_on">, is on</string>
 
@@ -45,12 +60,9 @@
      [CHAR LIMIT=12] -->
   <string name="incall_label_swap">Swap</string>
 
-  <!-- Button shown during a phone to switch the audio route.
-     [CHAR LIMIT=12] -->
-  <string name="incall_label_audio">Sound</string>
 
   <!-- Used to inform the user that the note associated with an outgoing call has been sent.
        [CHAR LIMIT=32] -->
   <string name="incall_note_sent">Note sent</string>
 
-</resources>
\ No newline at end of file
+</resources>
diff --git a/java/com/android/incallui/incall/protocol/PrimaryCallState.java b/java/com/android/incallui/incall/protocol/PrimaryCallState.java
index 2ae6a18..26dd388 100644
--- a/java/com/android/incallui/incall/protocol/PrimaryCallState.java
+++ b/java/com/android/incallui/incall/protocol/PrimaryCallState.java
@@ -44,6 +44,7 @@
   public final boolean isVoiceMailNumber;
   public final boolean isRemotelyHeld;
   public final boolean isBusinessNumber;
+  public final boolean supportsCallOnHold;
 
   // TODO: Convert to autovalue. b/34502119
   public static PrimaryCallState createEmptyPrimaryCallState() {
@@ -67,7 +68,8 @@
         0,
         false /* isVoiceMailNumber */,
         false /* isRemotelyHeld */,
-        false /* isBusinessNumber */);
+        false /* isBusinessNumber */,
+        true /* supportsCallOnHold */);
   }
 
   public PrimaryCallState(
@@ -90,7 +92,8 @@
       long connectTimeMillis,
       boolean isVoiceMailNumber,
       boolean isRemotelyHeld,
-      boolean isBusinessNumber) {
+      boolean isBusinessNumber,
+      boolean supportsCallOnHold) {
     this.state = state;
     this.isVideoCall = isVideoCall;
     this.sessionModificationState = sessionModificationState;
@@ -111,6 +114,7 @@
     this.isVoiceMailNumber = isVoiceMailNumber;
     this.isRemotelyHeld = isRemotelyHeld;
     this.isBusinessNumber = isBusinessNumber;
+    this.supportsCallOnHold = supportsCallOnHold;
   }
 
   @Override
diff --git a/java/com/android/incallui/res/drawable-hdpi/img_conference.png b/java/com/android/incallui/res/drawable-hdpi/img_conference.png
deleted file mode 100644
index 3d9f683..0000000
--- a/java/com/android/incallui/res/drawable-hdpi/img_conference.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/res/drawable-mdpi/img_conference.png b/java/com/android/incallui/res/drawable-mdpi/img_conference.png
deleted file mode 100644
index 0694dbd..0000000
--- a/java/com/android/incallui/res/drawable-mdpi/img_conference.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/res/drawable-xhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xhdpi/img_conference.png
deleted file mode 100644
index b0dbcc2..0000000
--- a/java/com/android/incallui/res/drawable-xhdpi/img_conference.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png
deleted file mode 100644
index a8dba5e..0000000
--- a/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png
deleted file mode 100644
index eb42b55..0000000
--- a/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/res/values-ca/strings.xml b/java/com/android/incallui/res/values-ca/strings.xml
index 5148db5..ad34b00 100644
--- a/java/com/android/incallui/res/values-ca/strings.xml
+++ b/java/com/android/incallui/res/values-ca/strings.xml
@@ -136,6 +136,6 @@
     <string name="generic_conference_call_name" msgid="1546941472424243894">"En una trucada"</string>
     <string name="video_call_wifi_to_lte_handover_toast" msgid="2495974172657183700">"S\'està continuant la trucada mitjançant dades mòbils…"</string>
     <string name="video_call_lte_to_wifi_failed_title" msgid="2793524281399509056">"No s\'ha pogut canviar a la xarxa Wi-Fi"</string>
-    <string name="video_call_lte_to_wifi_failed_message" msgid="5950700221126447109">"La videotrucada es mantindrà a la xarxa mòbil. És possible que s\'apliquin càrrecs de dades estàndard."</string>
+    <string name="video_call_lte_to_wifi_failed_message" msgid="5950700221126447109">"La videotrucada es mantindrà a la xarxa mòbil. És possible que s\'hi apliquin càrrecs de dades estàndard."</string>
     <string name="video_call_lte_to_wifi_failed_do_not_show" msgid="7609115874511223150">"No ho tornis a mostrar"</string>
 </resources>
diff --git a/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml b/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml
new file mode 100644
index 0000000..2679653
--- /dev/null
+++ b/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml
@@ -0,0 +1,32 @@
+<?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>
+  <!-- This is customization of wifi call notification only for DTAG of Germany. -->
+  <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
+       Wi-Fi. [CHAR LIMIT=60] -->
+  <string name="notification_ongoing_call_wifi">Ongoing WLAN Call</string>
+  <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
+       over Wi-Fi. [CHAR LIMIT=60] -->
+  <string name="notification_ongoing_work_call_wifi">Ongoing WLAN work call</string>
+  <!-- The "label" of the in-call Notification for an incoming ringing call,
+       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
+  <string name="notification_incoming_call_wifi">Incoming WLAN Call</string>
+  <!-- The "label" of the in-call Notification for an incoming ringing work call,
+       which is being made over Wi-Fi. [CHAR LIMIT=60] -->
+  <string name="notification_incoming_work_call_wifi">Incoming WLAN work call</string>
+</resources>
\ No newline at end of file
diff --git a/java/com/android/incallui/res/values-uz/strings.xml b/java/com/android/incallui/res/values-uz/strings.xml
index 3828501..b04972f 100644
--- a/java/com/android/incallui/res/values-uz/strings.xml
+++ b/java/com/android/incallui/res/values-uz/strings.xml
@@ -36,7 +36,7 @@
     <string name="notification_ongoing_call_wifi" msgid="297183051021070949">"Chiquvchi Wi-Fi qo‘ng‘irog‘i"</string>
     <string name="notification_ongoing_work_call_wifi" msgid="6769311641293583197">"Chiquvchi Wi-Fi ishchi qo‘ng‘irog‘i"</string>
     <string name="notification_on_hold" msgid="7141827443379205682">"Kutmoqda"</string>
-    <string name="notification_incoming_call" msgid="7520580807513849283">"Kiruvchi qo‘ng‘iroq"</string>
+    <string name="notification_incoming_call" msgid="7520580807513849283">"Kiruvchi chaqiruv"</string>
     <string name="notification_incoming_call_with_photo" msgid="4360505044807517422">"Suratga ega kiruvchi chaqiruv"</string>
     <string name="notification_incoming_call_with_message" msgid="5608687985694956601">"Xabarga ega kiruvchi chaqiruv"</string>
     <string name="notification_incoming_call_with_location" msgid="4519498445081598767">"Joylashuv axborotiga ega kiruvchi chaqiruv"</string>
diff --git a/java/com/android/incallui/res/values/dimens.xml b/java/com/android/incallui/res/values/dimens.xml
index 18816f6..fb4934d 100644
--- a/java/com/android/incallui/res/values/dimens.xml
+++ b/java/com/android/incallui/res/values/dimens.xml
@@ -38,7 +38,7 @@
   <dimen name="incall_dialpad_zero_key_number_margin_bottom">0dp</dimen>
   <dimen name="incall_dialpad_digits_adjustable_text_size">20sp</dimen>
   <dimen name="incall_dialpad_digits_adjustable_height">50dp</dimen>
-  <dimen name="incall_dialpad_key_numbers_size">36sp</dimen>
+  <dimen name="incall_dialpad_key_numbers_size">36dp</dimen>
 
   <!-- Dimensions for OTA Call Card -->
   <dimen name="otaactivate_layout_marginTop">10dp</dimen>
diff --git a/java/com/android/incallui/res/values/styles.xml b/java/com/android/incallui/res/values/styles.xml
index 68a38f0..3c036c9 100644
--- a/java/com/android/incallui/res/values/styles.xml
+++ b/java/com/android/incallui/res/values/styles.xml
@@ -78,4 +78,13 @@
     <item name="android:colorAccent">@color/dialer_theme_color</item>
   </style>
 
+  <style name="Theme.Incall.DialogHolder" parent="Theme.AppCompat.Translucent">
+    <item name="android:windowBackground">@android:color/transparent</item>
+    <item name="android:windowActivityTransitions">false</item>
+
+    <item name="android:statusBarColor">@android:color/transparent</item>
+    <item name="android:navigationBarColor">@android:color/transparent</item>
+    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
+  </style>
+
 </resources>
diff --git a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml
index ed29e78..3b3327d 100644
--- a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml
+++ b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml
@@ -24,8 +24,8 @@
 
   <ImageView
       android:id="@id/answer_message_image"
-      android:layout_width="match_parent"
-      android:layout_height="wrap_content"
+      android:layout_width="wrap_content"
+      android:layout_height="match_parent"
       android:layout_marginTop="@dimen/answer_message_contents_margin_top"
       android:layout_marginBottom="4dp"
       android:layout_centerInParent="true"
@@ -34,7 +34,7 @@
       android:background="@drawable/answer_data_background"
       android:elevation="@dimen/answer_data_elevation"
       android:adjustViewBounds="true"
-      android:scaleType="fitCenter"/>
+      android:scaleType="centerCrop"/>
 
   <ProgressBar
       android:layout_width="wrap_content"
diff --git a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml b/java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml
similarity index 70%
copy from java/com/android/incallui/res/drawable/img_conference_automirrored.xml
copy to java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml
index 78b2876..9557d03 100644
--- a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml
+++ b/java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml
@@ -1,7 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-
 <!--
-  ~ Copyright (C) 2014 The Android Open Source Project
+  ~ Copyright (C) 2017 The Android Open Source Project
   ~
   ~ Licensed under the Apache License, Version 2.0 (the "License");
   ~ you may not use this file except in compliance with the License.
@@ -15,7 +13,6 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-  android:autoMirrored="true"
-  android:src="@drawable/img_conference"/>
\ No newline at end of file
+<manifest
+    package="com.android.incallui.speakerbuttonlogic">
+</manifest>
diff --git a/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java b/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java
new file mode 100644
index 0000000..5ab821b
--- /dev/null
+++ b/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui.speakerbuttonlogic;
+
+import android.support.annotation.DrawableRes;
+import android.support.annotation.IntDef;
+import android.support.annotation.StringRes;
+import android.telecom.CallAudioState;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/** Info about how a "Speaker" button should be displayed */
+public class SpeakerButtonInfo {
+
+  // Testing note: most of this is exercised in ReturnToCallTest.java
+
+  /** Preferred size for icons */
+  @Retention(RetentionPolicy.SOURCE)
+  @IntDef({IconSize.SIZE_24_DP, IconSize.SIZE_36_DP})
+  public @interface IconSize {
+    int SIZE_24_DP = 1;
+    int SIZE_36_DP = 2;
+  }
+
+  @DrawableRes public final int icon;
+  @StringRes public final int contentDescription;
+  @StringRes public final int label;
+  public final boolean checkable;
+  public final boolean isChecked;
+
+  public SpeakerButtonInfo(CallAudioState audioState, @IconSize int iconSize) {
+    if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH)
+        == CallAudioState.ROUTE_BLUETOOTH) {
+      checkable = false;
+      isChecked = false;
+      label = R.string.incall_label_audio;
+
+      if ((audioState.getRoute() & CallAudioState.ROUTE_BLUETOOTH)
+          == CallAudioState.ROUTE_BLUETOOTH) {
+        icon =
+            iconSize == IconSize.SIZE_36_DP
+                ? R.drawable.quantum_ic_bluetooth_audio_white_36
+                : R.drawable.quantum_ic_bluetooth_audio_white_24;
+        contentDescription = R.string.incall_content_description_bluetooth;
+      } else if ((audioState.getRoute() & CallAudioState.ROUTE_SPEAKER)
+          == CallAudioState.ROUTE_SPEAKER) {
+        icon =
+            iconSize == IconSize.SIZE_36_DP
+                ? R.drawable.quantum_ic_volume_up_white_36
+                : R.drawable.quantum_ic_volume_up_white_24;
+        contentDescription = R.string.incall_content_description_speaker;
+      } else if ((audioState.getRoute() & CallAudioState.ROUTE_WIRED_HEADSET)
+          == CallAudioState.ROUTE_WIRED_HEADSET) {
+        icon =
+            iconSize == IconSize.SIZE_36_DP
+                ? R.drawable.quantum_ic_headset_white_36
+                : R.drawable.quantum_ic_headset_white_24;
+        contentDescription = R.string.incall_content_description_headset;
+      } else {
+        icon =
+            iconSize == IconSize.SIZE_36_DP
+                ? R.drawable.quantum_ic_phone_in_talk_white_36
+                : R.drawable.quantum_ic_phone_in_talk_white_24;
+        contentDescription = R.string.incall_content_description_earpiece;
+      }
+    } else {
+      checkable = true;
+      isChecked = audioState.getRoute() == CallAudioState.ROUTE_SPEAKER;
+      label = R.string.incall_label_speaker;
+      icon =
+          iconSize == IconSize.SIZE_36_DP
+              ? R.drawable.quantum_ic_volume_up_white_36
+              : R.drawable.quantum_ic_volume_up_white_24;
+      contentDescription = R.string.incall_content_description_speaker;
+    }
+  }
+}
diff --git a/java/com/android/incallui/video/impl/SpeakerButtonController.java b/java/com/android/incallui/video/impl/SpeakerButtonController.java
index e12032a..d98545f 100644
--- a/java/com/android/incallui/video/impl/SpeakerButtonController.java
+++ b/java/com/android/incallui/video/impl/SpeakerButtonController.java
@@ -88,7 +88,7 @@
         icon = R.drawable.quantum_ic_headset_white_36;
         contentDescriptionResId = R.string.incall_content_description_headset;
       } else {
-        icon = R.drawable.ic_phone_audio_white_36dp;
+        icon = R.drawable.quantum_ic_phone_in_talk_white_36;
         contentDescriptionResId = R.string.incall_content_description_earpiece;
       }
     } else {
diff --git a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
index b7a960e..489f72b 100644
--- a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
+++ b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
@@ -495,7 +495,7 @@
   }
 
   private View[] getAllPreviewRelatedViews() {
-    return new View[] {previewRoot};
+    return new View[] {previewRoot, mutePreviewOverlay};
   }
 
   private int getOffsetTop(View view) {
@@ -644,12 +644,6 @@
     updateVideoOffViews();
   }
 
-  /**
-   * This method scales the video feed inside the texture view, it doesn't change the texture view's
-   * size. In the old UI we would change the view size to match the aspect ratio of the video. In
-   * the new UI the view is always square (with the circular clip) so we have to do additional work
-   * to make sure the non-square video doesn't look squished.
-   */
   @Override
   public void onLocalVideoDimensionsChanged() {
     LogUtil.i("SurfaceViewVideoCallFragment.onLocalVideoDimensionsChanged", null);
@@ -834,6 +828,9 @@
   }
 
   @Override
+  public void onAudioRouteSelectorDismiss() {}
+
+  @Override
   public void setPrimary(@NonNull PrimaryInfo primaryInfo) {
     LogUtil.i("SurfaceViewVideoCallFragment.setPrimary", primaryInfo.toString());
     contactGridManager.setPrimary(primaryInfo);
diff --git a/java/com/android/incallui/video/impl/VideoCallFragment.java b/java/com/android/incallui/video/impl/VideoCallFragment.java
index 8e2f5ae..6e45f92 100644
--- a/java/com/android/incallui/video/impl/VideoCallFragment.java
+++ b/java/com/android/incallui/video/impl/VideoCallFragment.java
@@ -59,6 +59,7 @@
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.FragmentUtils;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.ThreadUtil;
 import com.android.dialer.compat.ActivityCompat;
 import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment;
 import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment.AudioRouteSelectorPresenter;
@@ -665,22 +666,14 @@
     updateRemoteVideoScaling();
   }
 
-  /**
-   * This method scales the video feed inside the texture view, it doesn't change the texture view's
-   * size. In the old UI we would change the view size to match the aspect ratio of the video. In
-   * the new UI the view is always square (with the circular clip) so we have to do additional work
-   * to make sure the non-square video doesn't look squished.
-   */
   @Override
   public void onLocalVideoDimensionsChanged() {
     LogUtil.i("VideoCallFragment.onLocalVideoDimensionsChanged", null);
-    updatePreviewVideoScaling();
   }
 
   @Override
   public void onLocalVideoOrientationChanged() {
     LogUtil.i("VideoCallFragment.onLocalVideoOrientationChanged", null);
-    updatePreviewVideoScaling();
   }
 
   /** Called when the remote video's dimensions change. */
@@ -853,6 +846,9 @@
   }
 
   @Override
+  public void onAudioRouteSelectorDismiss() {}
+
+  @Override
   public void setPrimary(@NonNull PrimaryInfo primaryInfo) {
     LogUtil.i("VideoCallFragment.setPrimary", primaryInfo.toString());
     contactGridManager.setPrimary(primaryInfo);
@@ -1045,7 +1041,6 @@
     params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
     previewTextureView.setLayoutParams(params);
     previewTextureView.setOutlineProvider(circleOutlineProvider);
-    updatePreviewVideoScaling();
     updateOverlayBackground();
     contactGridManager.setIsMiddleRowVisible(false);
     updateMutePreviewOverlayVisibility();
@@ -1053,6 +1048,9 @@
     previewOffBlurredImageView.setLayoutParams(params);
     previewOffBlurredImageView.setOutlineProvider(circleOutlineProvider);
     previewOffBlurredImageView.setClipToOutline(true);
+
+    // Wait until the layout pass has finished before updating the scaling
+    ThreadUtil.postOnUiThread(this::updatePreviewVideoScaling);
   }
 
   private void updateVideoOffViews() {
diff --git a/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml b/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml
index c672466..1a2bc24 100644
--- a/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml
+++ b/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml
@@ -14,7 +14,7 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License
   -->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
@@ -32,7 +32,7 @@
     android:id="@+id/videocall_remote_video_off"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
-    android:layout_gravity="center"
+    android:layout_centerInParent="true"
     android:accessibilityTraversalBefore="@+id/videocall_speaker_button"
     android:drawablePadding="8dp"
     android:drawableTop="@drawable/quantum_ic_videocam_off_white_36"
@@ -71,20 +71,23 @@
       android:visibility="gone"
       android:importantForAccessibility="no"
       tools:visibility="visible"/>
-
-    <ImageView
-      android:id="@+id/videocall_video_preview_mute_overlay"
-      android:layout_width="32dp"
-      android:layout_height="32dp"
-      android:layout_gravity="center"
-      android:background="@drawable/videocall_background_circle_white"
-      android:contentDescription="@string/incall_content_description_muted"
-      android:scaleType="center"
-      android:src="@drawable/quantum_ic_mic_off_black_24"
-      android:visibility="gone"
-      tools:visibility="visible"/>
   </FrameLayout>
 
+  <ImageView
+    android:id="@+id/videocall_video_preview_mute_overlay"
+    android:layout_width="32dp"
+    android:layout_height="32dp"
+    android:layout_alignBottom="@id/videocall_preview_root"
+    android:layout_alignEnd="@id/videocall_preview_root"
+    android:layout_marginBottom="-8dp"
+    android:layout_marginEnd="-8dp"
+    android:background="@drawable/videocall_background_circle_white"
+    android:contentDescription="@string/incall_content_description_muted"
+    android:scaleType="center"
+    android:src="@drawable/quantum_ic_mic_off_black_24"
+    android:visibility="gone"
+    tools:visibility="visible"/>
+
   <View
     android:id="@+id/videocall_green_screen_background"
     android:layout_width="match_parent"
@@ -102,4 +105,4 @@
     android:layout_height="wrap_content"
     android:layout_gravity="top"/>
 
-</FrameLayout>
+</RelativeLayout>
diff --git a/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml b/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml
index a53fb64..e9e7f9e 100644
--- a/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml
+++ b/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml
@@ -19,5 +19,5 @@
   <dimen name="videocall_button_size">72dp</dimen>
   <dimen name="videocall_preview_width">88dp</dimen>
   <dimen name="videocall_preview_height">88dp</dimen>
-  <dimen name="videocall_preview_long">104dp</dimen>
+  <dimen name="videocall_preview_long">116dp</dimen>
 </resources>
diff --git a/java/com/android/incallui/video/impl/res/values-land/dimens.xml b/java/com/android/incallui/video/impl/res/values-land/dimens.xml
index 6485735..d0a5e40 100644
--- a/java/com/android/incallui/video/impl/res/values-land/dimens.xml
+++ b/java/com/android/incallui/video/impl/res/values-land/dimens.xml
@@ -15,5 +15,5 @@
   ~ limitations under the License
   -->
 <resources>
-  <dimen name="videocall_preview_long">92dp</dimen>
+  <dimen name="videocall_preview_long">96dp</dimen>
 </resources>
diff --git a/java/com/android/incallui/video/impl/res/values-land/styles.xml b/java/com/android/incallui/video/impl/res/values-land/styles.xml
index a809708..f60dbd1 100644
--- a/java/com/android/incallui/video/impl/res/values-land/styles.xml
+++ b/java/com/android/incallui/video/impl/res/values-land/styles.xml
@@ -16,7 +16,8 @@
   -->
 <resources>
   <style name="VideoPreviewHolder">
-    <item name="android:layout_gravity">bottom|end</item>
+    <item name="android:layout_alignParentBottom">true</item>
+    <item name="android:layout_alignParentEnd">true</item>
     <item name="android:layout_width">@dimen/videocall_preview_long</item>
     <item name="android:layout_height">@dimen/videocall_preview_height</item>
     <item name="android:layout_marginBottom">@dimen/videocall_preview_margin_bottom</item>
diff --git a/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml b/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml
index a53fb64..e9e7f9e 100644
--- a/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml
+++ b/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml
@@ -19,5 +19,5 @@
   <dimen name="videocall_button_size">72dp</dimen>
   <dimen name="videocall_preview_width">88dp</dimen>
   <dimen name="videocall_preview_height">88dp</dimen>
-  <dimen name="videocall_preview_long">104dp</dimen>
+  <dimen name="videocall_preview_long">116dp</dimen>
 </resources>
diff --git a/java/com/android/incallui/video/impl/res/values/dimens.xml b/java/com/android/incallui/video/impl/res/values/dimens.xml
index aa08c9d..606b158 100644
--- a/java/com/android/incallui/video/impl/res/values/dimens.xml
+++ b/java/com/android/incallui/video/impl/res/values/dimens.xml
@@ -17,7 +17,7 @@
 <resources>
   <dimen name="videocall_preview_width">72dp</dimen>
   <dimen name="videocall_preview_height">72dp</dimen>
-  <dimen name="videocall_preview_long">84dp</dimen>
+  <dimen name="videocall_preview_long">96dp</dimen>
   <dimen name="videocall_preview_margin_bottom">24dp</dimen>
   <dimen name="videocall_preview_margin_start">24dp</dimen>
   <dimen name="videocall_preview_margin_end">24dp</dimen>
diff --git a/java/com/android/incallui/video/impl/res/values/styles.xml b/java/com/android/incallui/video/impl/res/values/styles.xml
index f73075f..010aca2 100644
--- a/java/com/android/incallui/video/impl/res/values/styles.xml
+++ b/java/com/android/incallui/video/impl/res/values/styles.xml
@@ -23,7 +23,8 @@
     <item name="android:stateListAnimator">@animator/disabled_alpha</item>
   </style>
   <style name="VideoPreviewHolder">
-    <item name="android:layout_gravity">bottom|start</item>
+    <item name="android:layout_alignParentBottom">true</item>
+    <item name="android:layout_alignParentStart">true</item>
     <item name="android:layout_width">@dimen/videocall_preview_width</item>
     <item name="android:layout_height">@dimen/videocall_preview_long</item>
     <item name="android:layout_marginBottom">@dimen/videocall_preview_margin_bottom</item>
diff --git a/java/com/android/incallui/videotech/ims/ImsVideoTech.java b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
index 01e4bb8..2a0b7c5 100644
--- a/java/com/android/incallui/videotech/ims/ImsVideoTech.java
+++ b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
@@ -183,8 +183,6 @@
   public void stopTransmission() {
     LogUtil.enterBlock("ImsVideoTech.stopTransmission");
 
-    setCamera(null);
-
     int unpausedVideoState = getUnpausedVideoState(call.getDetails().getVideoState());
     call.getVideoCall()
         .sendSessionModifyRequest(
@@ -248,7 +246,7 @@
   private boolean canPause() {
     return call.getDetails().can(Details.CAPABILITY_CAN_PAUSE_VIDEO)
         && call.getState() == Call.STATE_ACTIVE
-        && isTransmitting();
+        && isTransmittingOrReceiving();
   }
 
   static int getUnpausedVideoState(int videoState) {
diff --git a/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
index e49d0b8..386afdc 100644
--- a/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
+++ b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
@@ -20,6 +20,7 @@
 import android.support.annotation.NonNull;
 import android.telecom.Call;
 import com.android.dialer.common.Assert;
+import com.android.dialer.common.ConfigProviderBindings;
 import com.android.dialer.lightbringer.Lightbringer;
 import com.android.dialer.lightbringer.LightbringerListener;
 import com.android.incallui.video.protocol.VideoCallScreen;
@@ -46,7 +47,10 @@
 
   @Override
   public boolean isAvailable(Context context) {
-    return callState == Call.STATE_ACTIVE && lightbringer.isReachable(context, callingNumber);
+    return ConfigProviderBindings.get(context)
+            .getBoolean("enable_lightbringer_video_upgrade", false)
+        && callState == Call.STATE_ACTIVE
+        && lightbringer.isReachable(context, callingNumber);
   }
 
   @Override
diff --git a/java/com/android/voicemail/permissions.xml b/java/com/android/voicemail/AndroidManifest.xml
similarity index 60%
rename from java/com/android/voicemail/permissions.xml
rename to java/com/android/voicemail/AndroidManifest.xml
index bedf068..aedfd6f 100644
--- a/java/com/android/voicemail/permissions.xml
+++ b/java/com/android/voicemail/AndroidManifest.xml
@@ -1,3 +1,18 @@
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.android.voicemailomtp">
 
diff --git a/java/com/android/voicemail/impl/AndroidManifest.xml b/java/com/android/voicemail/impl/AndroidManifest.xml
index 95e6e82..be7dac1 100644
--- a/java/com/android/voicemail/impl/AndroidManifest.xml
+++ b/java/com/android/voicemail/impl/AndroidManifest.xml
@@ -97,6 +97,11 @@
         android:exported="false"/>
 
     <service
+        android:name="com.android.voicemail.impl.transcribe.TranscriptionService"
+        android:permission="android.permission.BIND_JOB_SERVICE"
+        android:exported="false"/>
+
+    <service
         android:name="com.android.voicemail.impl.OmtpService"
         android:permission="android.permission.BIND_VISUAL_VOICEMAIL_SERVICE"
         android:exported="true"
diff --git a/java/com/android/voicemail/impl/OmtpReceiver.java b/java/com/android/voicemail/impl/OmtpReceiver.java
deleted file mode 100644
index 9baf954..0000000
--- a/java/com/android/voicemail/impl/OmtpReceiver.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.voicemail.impl;
-
-import android.annotation.TargetApi;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Build.VERSION_CODES;
-import android.telecom.PhoneAccountHandle;
-import android.telephony.VisualVoicemailSms;
-import com.android.dialer.common.Assert;
-import com.android.dialer.logging.DialerImpression;
-import com.android.dialer.logging.Logger;
-import com.android.voicemail.VoicemailComponent;
-import com.android.voicemail.impl.settings.VisualVoicemailSettingsUtil;
-import com.android.voicemail.impl.sync.VvmAccountManager;
-
-/** Listens to com.android.phone.vvm.ACTION_TEMP_VISUAL_VOICEMAIL_SERVICE_EVENT */
-@TargetApi(VERSION_CODES.O)
-public class OmtpReceiver extends BroadcastReceiver {
-
-  private static final String TAG = "VvmOmtpReceiver";
-
-  public static final String ACTION_SMS_RECEIVED = "com.android.vociemailomtp.sms.sms_received";
-
-  public static final String EXTRA_VOICEMAIL_SMS = "extra_voicemail_sms";
-
-  private static final String EXTRA_WHAT = "what";
-
-  private static final int MSG_ON_CELL_SERVICE_CONNECTED = 1;
-
-  private static final int MSG_ON_SMS_RECEIVED = 2;
-
-  private static final int MSG_ON_SIM_REMOVED = 3;
-
-  private static final int MSG_TASK_STOPPED = 5;
-
-  private static final String DATA_PHONE_ACCOUNT_HANDLE = "data_phone_account_handle";
-
-  private static final String DATA_SMS = "data_sms";
-
-  @Override
-  public void onReceive(Context context, Intent intent) {
-    // ACTION_VISUAL_VOICEMAIL_SERVICE_EVENT is not a protected broadcast pre-O.
-    if (!VoicemailComponent.get(context).getVoicemailClient().isVoicemailModuleEnabled()) {
-      VvmLog.e(TAG, "ACTION_VISUAL_VOICEMAIL_SERVICE_EVENT received when module is disabled");
-      return;
-    }
-
-    int what = intent.getIntExtra(EXTRA_WHAT, -1);
-    PhoneAccountHandle phoneAccountHandle = intent.getParcelableExtra(DATA_PHONE_ACCOUNT_HANDLE);
-    OmtpVvmCarrierConfigHelper config = new OmtpVvmCarrierConfigHelper(context, phoneAccountHandle);
-    if (!config.isValid()) {
-      VvmLog.i(TAG, "VVM not supported on " + phoneAccountHandle);
-      return;
-    }
-    if (!VisualVoicemailSettingsUtil.isEnabled(context, phoneAccountHandle)
-        && !config.isLegacyModeEnabled()) {
-      VvmLog.i(TAG, "VVM is disabled");
-      return;
-    }
-    switch (what) {
-      case MSG_ON_CELL_SERVICE_CONNECTED:
-        VvmLog.i(TAG, "onCellServiceConnected");
-        Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
-        ActivationTask.start(context, phoneAccountHandle, null);
-        break;
-      case MSG_ON_SMS_RECEIVED:
-        VvmLog.i(TAG, "onSmsReceived");
-        Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
-        VisualVoicemailSms sms = intent.getParcelableExtra(DATA_SMS);
-        Intent receivedIntent = new Intent(ACTION_SMS_RECEIVED);
-        receivedIntent.setPackage(context.getPackageName());
-        receivedIntent.putExtra(EXTRA_VOICEMAIL_SMS, sms);
-        context.sendBroadcast(receivedIntent);
-        break;
-      case MSG_ON_SIM_REMOVED:
-        VvmLog.i(TAG, "onSimRemoved");
-        Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
-        VvmAccountManager.removeAccount(context, phoneAccountHandle);
-        break;
-      case MSG_TASK_STOPPED:
-        VvmLog.i(TAG, "onStopped");
-        Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
-        break;
-      default:
-        throw Assert.createIllegalStateFailException("unexpected what: " + what);
-    }
-  }
-}
diff --git a/java/com/android/voicemail/impl/TelephonyManagerStub.java b/java/com/android/voicemail/impl/TelephonyManagerStub.java
deleted file mode 100644
index 4762e90..0000000
--- a/java/com/android/voicemail/impl/TelephonyManagerStub.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.voicemail.impl;
-
-import android.annotation.TargetApi;
-import android.os.Build.VERSION_CODES;
-
-/**
- * Temporary stub for public APIs that should be added into telephony manager.
- *
- * <p>TODO(b/32637799) remove this.
- */
-@TargetApi(VERSION_CODES.O)
-public class TelephonyManagerStub {
-
-  public static void showVoicemailNotification(int voicemailCount) {}
-
-  /**
-   * Dismisses the message waiting (voicemail) indicator.
-   *
-   * @param subId the subscription id we should dismiss the notification for.
-   */
-  public static void clearMwiIndicator(int subId) {}
-
-  public static void setShouldCheckVisualVoicemailConfigurationForMwi(int subId, boolean enabled) {}
-}
diff --git a/java/com/android/voicemail/impl/VvmPackageInstallReceiver.java b/java/com/android/voicemail/impl/VvmPackageInstallReceiver.java
deleted file mode 100644
index 1e2de60..0000000
--- a/java/com/android/voicemail/impl/VvmPackageInstallReceiver.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.voicemail.impl;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
-import com.android.voicemail.VoicemailComponent;
-import com.android.voicemail.impl.settings.VisualVoicemailSettingsUtil;
-
-/**
- * When a new package is installed, check if it matches any of the vvm carrier apps of the currently
- * enabled dialer VVM sources. The dialer VVM client will be disabled upon carrier VVM app
- * installation, unless it was explicitly enabled by the user.
- */
-public class VvmPackageInstallReceiver extends BroadcastReceiver {
-
-  private static final String TAG = "VvmPkgInstallReceiver";
-
-  @Override
-  public void onReceive(Context context, Intent intent) {
-    if (!VoicemailComponent.get(context).getVoicemailClient().isVoicemailModuleEnabled()) {
-      return;
-    }
-
-    if (intent.getData() == null) {
-      return;
-    }
-
-    String packageName = intent.getData().getSchemeSpecificPart();
-    if (packageName == null) {
-      return;
-    }
-
-    // This get called every time an app is installed and will be noisy. Don't log until the app
-    // is identified as a carrier VVM app.
-    for (PhoneAccountHandle phoneAccount :
-        context.getSystemService(TelecomManager.class).getCallCapablePhoneAccounts()) {
-      OmtpVvmCarrierConfigHelper carrierConfigHelper =
-          new OmtpVvmCarrierConfigHelper(context, phoneAccount);
-      if (!carrierConfigHelper.isValid()) {
-        continue;
-      }
-      if (carrierConfigHelper.getCarrierVvmPackageNames() == null) {
-        continue;
-      }
-      if (!carrierConfigHelper.getCarrierVvmPackageNames().contains(packageName)) {
-        continue;
-      }
-
-      VvmLog.i(TAG, "Carrier app installed");
-      if (VisualVoicemailSettingsUtil.isEnabledUserSet(context, phoneAccount)) {
-        // Skip the check if this voicemail source's setting is overridden by the user.
-        VvmLog.i(TAG, "VVM enabled by user, not disabling");
-        continue;
-      }
-
-      // Force deactivate the client. The user can re-enable it in the settings.
-      // There is no need to update the settings for deactivation. At this point, if the
-      // default value is used it should be false because a carrier package is present.
-      VvmLog.i(TAG, "Carrier VVM package installed, disabling system VVM client");
-      VisualVoicemailSettingsUtil.setEnabled(context, phoneAccount, false);
-    }
-  }
-}
diff --git a/java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java b/java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java
new file mode 100644
index 0000000..448c693
--- /dev/null
+++ b/java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java
@@ -0,0 +1,254 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.google.internal.communications.voicemailtranscription.v1;
+
+import static io.grpc.stub.ClientCalls.asyncUnaryCall;
+import static io.grpc.stub.ClientCalls.asyncServerStreamingCall;
+import static io.grpc.stub.ClientCalls.asyncClientStreamingCall;
+import static io.grpc.stub.ClientCalls.asyncBidiStreamingCall;
+import static io.grpc.stub.ClientCalls.blockingUnaryCall;
+import static io.grpc.stub.ClientCalls.blockingServerStreamingCall;
+import static io.grpc.stub.ClientCalls.futureUnaryCall;
+import static io.grpc.MethodDescriptor.generateFullMethodName;
+import static io.grpc.stub.ServerCalls.asyncUnaryCall;
+import static io.grpc.stub.ServerCalls.asyncServerStreamingCall;
+import static io.grpc.stub.ServerCalls.asyncClientStreamingCall;
+import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall;
+import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall;
+import static io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall;
+
+/**
+ * <pre>
+ * RPC service for transcribing voicemails.
+ * </pre>
+ */
+@javax.annotation.Generated(
+    value = "by gRPC proto compiler (version 1.0.3)",
+    comments = "Source: voicemail_transcription.proto")
+public class VoicemailTranscriptionServiceGrpc {
+
+  private VoicemailTranscriptionServiceGrpc() {}
+
+  public static final String SERVICE_NAME = "google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionService";
+
+  // Static method descriptors that strictly reflect the proto.
+  @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
+  public static final io.grpc.MethodDescriptor<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest,
+      com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> METHOD_TRANSCRIBE_VOICEMAIL =
+      io.grpc.MethodDescriptor.create(
+          io.grpc.MethodDescriptor.MethodType.UNARY,
+          generateFullMethodName(
+              "google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionService", "TranscribeVoicemail"),
+          io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest.getDefaultInstance()),
+          io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse.getDefaultInstance()));
+
+  /**
+   * Creates a new async stub that supports all call types for the service
+   */
+  public static VoicemailTranscriptionServiceStub newStub(io.grpc.Channel channel) {
+    return new VoicemailTranscriptionServiceStub(channel);
+  }
+
+  /**
+   * Creates a new blocking-style stub that supports unary and streaming output calls on the service
+   */
+  public static VoicemailTranscriptionServiceBlockingStub newBlockingStub(
+      io.grpc.Channel channel) {
+    return new VoicemailTranscriptionServiceBlockingStub(channel);
+  }
+
+  /**
+   * Creates a new ListenableFuture-style stub that supports unary and streaming output calls on the service
+   */
+  public static VoicemailTranscriptionServiceFutureStub newFutureStub(
+      io.grpc.Channel channel) {
+    return new VoicemailTranscriptionServiceFutureStub(channel);
+  }
+
+  /**
+   * <pre>
+   * RPC service for transcribing voicemails.
+   * </pre>
+   */
+  public static abstract class VoicemailTranscriptionServiceImplBase implements io.grpc.BindableService {
+
+    /**
+     * <pre>
+     * Returns a transcript of the given voicemail.
+     * </pre>
+     */
+    public void transcribeVoicemail(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request,
+        io.grpc.stub.StreamObserver<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> responseObserver) {
+      asyncUnimplementedUnaryCall(METHOD_TRANSCRIBE_VOICEMAIL, responseObserver);
+    }
+
+    @java.lang.Override public io.grpc.ServerServiceDefinition bindService() {
+      return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
+          .addMethod(
+            METHOD_TRANSCRIBE_VOICEMAIL,
+            asyncUnaryCall(
+              new MethodHandlers<
+                com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest,
+                com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse>(
+                  this, METHODID_TRANSCRIBE_VOICEMAIL)))
+          .build();
+    }
+  }
+
+  /**
+   * <pre>
+   * RPC service for transcribing voicemails.
+   * </pre>
+   */
+  public static final class VoicemailTranscriptionServiceStub extends io.grpc.stub.AbstractStub<VoicemailTranscriptionServiceStub> {
+    private VoicemailTranscriptionServiceStub(io.grpc.Channel channel) {
+      super(channel);
+    }
+
+    private VoicemailTranscriptionServiceStub(io.grpc.Channel channel,
+        io.grpc.CallOptions callOptions) {
+      super(channel, callOptions);
+    }
+
+    @java.lang.Override
+    protected VoicemailTranscriptionServiceStub build(io.grpc.Channel channel,
+        io.grpc.CallOptions callOptions) {
+      return new VoicemailTranscriptionServiceStub(channel, callOptions);
+    }
+
+    /**
+     * <pre>
+     * Returns a transcript of the given voicemail.
+     * </pre>
+     */
+    public void transcribeVoicemail(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request,
+        io.grpc.stub.StreamObserver<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> responseObserver) {
+      asyncUnaryCall(
+          getChannel().newCall(METHOD_TRANSCRIBE_VOICEMAIL, getCallOptions()), request, responseObserver);
+    }
+  }
+
+  /**
+   * <pre>
+   * RPC service for transcribing voicemails.
+   * </pre>
+   */
+  public static final class VoicemailTranscriptionServiceBlockingStub extends io.grpc.stub.AbstractStub<VoicemailTranscriptionServiceBlockingStub> {
+    private VoicemailTranscriptionServiceBlockingStub(io.grpc.Channel channel) {
+      super(channel);
+    }
+
+    private VoicemailTranscriptionServiceBlockingStub(io.grpc.Channel channel,
+        io.grpc.CallOptions callOptions) {
+      super(channel, callOptions);
+    }
+
+    @java.lang.Override
+    protected VoicemailTranscriptionServiceBlockingStub build(io.grpc.Channel channel,
+        io.grpc.CallOptions callOptions) {
+      return new VoicemailTranscriptionServiceBlockingStub(channel, callOptions);
+    }
+
+    /**
+     * <pre>
+     * Returns a transcript of the given voicemail.
+     * </pre>
+     */
+    public com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse transcribeVoicemail(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request) {
+      return blockingUnaryCall(
+          getChannel(), METHOD_TRANSCRIBE_VOICEMAIL, getCallOptions(), request);
+    }
+  }
+
+  /**
+   * <pre>
+   * RPC service for transcribing voicemails.
+   * </pre>
+   */
+  public static final class VoicemailTranscriptionServiceFutureStub extends io.grpc.stub.AbstractStub<VoicemailTranscriptionServiceFutureStub> {
+    private VoicemailTranscriptionServiceFutureStub(io.grpc.Channel channel) {
+      super(channel);
+    }
+
+    private VoicemailTranscriptionServiceFutureStub(io.grpc.Channel channel,
+        io.grpc.CallOptions callOptions) {
+      super(channel, callOptions);
+    }
+
+    @java.lang.Override
+    protected VoicemailTranscriptionServiceFutureStub build(io.grpc.Channel channel,
+        io.grpc.CallOptions callOptions) {
+      return new VoicemailTranscriptionServiceFutureStub(channel, callOptions);
+    }
+
+    /**
+     * <pre>
+     * Returns a transcript of the given voicemail.
+     * </pre>
+     */
+    public com.google.common.util.concurrent.ListenableFuture<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> transcribeVoicemail(
+        com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request) {
+      return futureUnaryCall(
+          getChannel().newCall(METHOD_TRANSCRIBE_VOICEMAIL, getCallOptions()), request);
+    }
+  }
+
+  private static final int METHODID_TRANSCRIBE_VOICEMAIL = 0;
+
+  private static class MethodHandlers<Req, Resp> implements
+      io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>,
+      io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>,
+      io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>,
+      io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> {
+    private final VoicemailTranscriptionServiceImplBase serviceImpl;
+    private final int methodId;
+
+    public MethodHandlers(VoicemailTranscriptionServiceImplBase serviceImpl, int methodId) {
+      this.serviceImpl = serviceImpl;
+      this.methodId = methodId;
+    }
+
+    @java.lang.Override
+    @java.lang.SuppressWarnings("unchecked")
+    public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserver) {
+      switch (methodId) {
+        case METHODID_TRANSCRIBE_VOICEMAIL:
+          serviceImpl.transcribeVoicemail((com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest) request,
+              (io.grpc.stub.StreamObserver<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse>) responseObserver);
+          break;
+        default:
+          throw new AssertionError();
+      }
+    }
+
+    @java.lang.Override
+    @java.lang.SuppressWarnings("unchecked")
+    public io.grpc.stub.StreamObserver<Req> invoke(
+        io.grpc.stub.StreamObserver<Resp> responseObserver) {
+      switch (methodId) {
+        default:
+          throw new AssertionError();
+      }
+    }
+  }
+
+  public static io.grpc.ServiceDescriptor getServiceDescriptor() {
+    return new io.grpc.ServiceDescriptor(SERVICE_NAME,
+        METHOD_TRANSCRIBE_VOICEMAIL);
+  }
+
+}
diff --git a/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java b/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java
index f386fce..d15ce12 100644
--- a/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java
+++ b/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java
@@ -23,9 +23,12 @@
 import android.support.annotation.Nullable;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.concurrent.ThreadUtil;
 import com.android.voicemail.impl.R;
 import com.android.voicemail.impl.VvmLog;
 import com.android.voicemail.impl.imap.VoicemailPayload;
+import com.android.voicemail.impl.transcribe.TranscriptionService;
 import java.io.IOException;
 import java.io.OutputStream;
 import org.apache.commons.io.IOUtils;
@@ -56,6 +59,7 @@
    * @param voicemailPayload The object containing the content data for the voicemail
    */
   public void setVoicemailContent(@Nullable VoicemailPayload voicemailPayload) {
+    Assert.isWorkerThread();
     if (voicemailPayload == null) {
       VvmLog.i(TAG, "Payload not found, message has unsupported format");
       ContentValues values = new ContentValues();
@@ -90,13 +94,23 @@
     ContentValues values = new ContentValues();
     values.put(Voicemails.MIME_TYPE, voicemailPayload.getMimeType());
     values.put(Voicemails.HAS_CONTENT, true);
-    updateVoicemail(values);
+    if (updateVoicemail(values)) {
+      ThreadUtil.postOnUiThread(
+          () -> {
+            if (!TranscriptionService.transcribeVoicemail(mContext, mUri)) {
+              VvmLog.w(TAG, String.format("Failed to schedule transcription for %s", mUri));
+            }
+          });
+    }
   }
 
-  private void updateVoicemail(ContentValues values) {
+  private boolean updateVoicemail(ContentValues values) {
     int updatedCount = mContentResolver.update(mUri, values, null, null);
     if (updatedCount != 1) {
       VvmLog.e(TAG, "Updating voicemail should have updated 1 row, was: " + updatedCount);
+      return false;
+    } else {
+      return true;
     }
   }
 }
diff --git a/java/com/android/voicemail/impl/mail/MailTransport.java b/java/com/android/voicemail/impl/mail/MailTransport.java
index 3df36d5..00339f0 100644
--- a/java/com/android/voicemail/impl/mail/MailTransport.java
+++ b/java/com/android/voicemail/impl/mail/MailTransport.java
@@ -17,7 +17,9 @@
 
 import android.content.Context;
 import android.net.Network;
+import android.net.TrafficStats;
 import android.support.annotation.VisibleForTesting;
+import com.android.dialer.constants.TrafficStatsTags;
 import com.android.voicemail.impl.OmtpEvents;
 import com.android.voicemail.impl.imap.ImapHelper;
 import com.android.voicemail.impl.mail.store.ImapStore;
@@ -188,6 +190,7 @@
 
     try {
       LogUtils.v(TAG, "createSocket: network specified");
+      TrafficStats.setThreadStatsTag(TrafficStatsTags.VISUAL_VOICEMAIL_TAG);
       return mNetwork.getSocketFactory().createSocket();
     } catch (IOException ioe) {
       LogUtils.d(TAG, ioe.toString());
diff --git a/java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java b/java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java
deleted file mode 100644
index 5ad2447..0000000
--- a/java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java
+++ /dev/null
@@ -1,400 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.voicemail.impl.scheduling;
-
-import android.annotation.TargetApi;
-import android.app.Service;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Binder;
-import android.os.Build.VERSION_CODES;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.IBinder;
-import android.os.Looper;
-import android.os.Message;
-import android.support.annotation.MainThread;
-import android.support.annotation.Nullable;
-import android.support.annotation.VisibleForTesting;
-import android.support.annotation.WorkerThread;
-import com.android.voicemail.impl.Assert;
-import com.android.voicemail.impl.NeededForTesting;
-import com.android.voicemail.impl.VvmLog;
-import com.android.voicemail.impl.scheduling.TaskQueue.NextTask;
-import java.util.List;
-
-/**
- * A service to queue and run {@link Task} with the {@link android.app.job.JobScheduler}. A task is
- * queued using {@link Context#startService(Intent)}. The intent should contain enough information
- * in {@link Intent#getExtras()} to construct the task (see {@link Tasks#createIntent(Context,
- * Class)}).
- *
- * <p>All tasks are ran in the background with a wakelock being held by the {@link
- * android.app.job.JobScheduler}, which is between {@link #onStartJob(Job, List)} and {@link
- * #finishJob()}. The {@link TaskSchedulerJobService} also has a {@link TaskQueue}, but the data is
- * stored in the {@link android.app.job.JobScheduler} instead of the process memory, so if the
- * process is killed the queued tasks will be restored. If a new task is added, a new {@link
- * TaskSchedulerJobService} will be scheduled to run the task. If the job is already scheduled, the
- * new task will be pushed into the queue of the scheduled job. If the job is already running, the
- * job will be queued in process memory.
- *
- * <p>Only one task will be ran at a time, and same task cannot exist in the queue at the same time.
- * Refer to {@link TaskQueue} for queuing and execution order.
- *
- * <p>If there are still tasks in the queue but none are executable immediately, the service will
- * enter a "sleep", pushing all remaining task into a new job and end the current job.
- *
- * <p>The service will be started when a intent is received, and stopped when there are no more
- * tasks in the queue.
- *
- * <p>{@link android.app.job.JobScheduler} is not used directly due to:
- *
- * <ul>
- *   <li>The {@link android.telecom.PhoneAccountHandle} used to differentiate task can not be easily
- *       mapped into an integer for job id
- *   <li>A job cannot be mutated to store information such as retry count.
- * </ul>
- */
-@SuppressWarnings("AndroidApiChecker") /* stream() */
-@TargetApi(VERSION_CODES.O)
-public class TaskSchedulerService extends Service {
-
-  interface Job {
-    void finish();
-  }
-
-  private static final String TAG = "VvmTaskScheduler";
-
-  private static final int READY_TOLERANCE_MILLISECONDS = 100;
-
-  /**
-   * Threshold to determine whether to do a short or long sleep when a task is scheduled in the
-   * future.
-   *
-   * <p>A short sleep will continue the job and use {@link Handler#postDelayed(Runnable, long)} to
-   * wait for the next task.
-   *
-   * <p>A long sleep will finish the job and schedule a new one. The exact execution time is
-   * subjected to {@link android.app.job.JobScheduler} battery optimization, and is not exact.
-   */
-  private static final int SHORT_SLEEP_THRESHOLD_MILLISECONDS = 10_000;
-  /**
-   * When there are no more tasks to be run the service should be stopped. But when all tasks has
-   * finished there might still be more tasks in the message queue waiting to be processed,
-   * especially the ones submitted in {@link Task#onCompleted()}. Wait for a while before stopping
-   * the service to make sure there are no pending messages.
-   */
-  private static final int STOP_DELAY_MILLISECONDS = 5_000;
-
-  // The thread to run tasks on
-  private volatile WorkerThreadHandler mWorkerThreadHandler;
-
-  /**
-   * Used by tests to turn task handling into a single threaded process by calling {@link
-   * Handler#handleMessage(Message)} directly
-   */
-  private MessageSender mMessageSender = new MessageSender();
-
-  private MainThreadHandler mMainThreadHandler;
-
-  // Binder given to clients
-  private final IBinder mBinder = new LocalBinder();
-
-  /** Main thread only, access through {@link #getTasks()} */
-  private final TaskQueue mTasks = new TaskQueue();
-
-  private boolean mWorkerThreadIsBusy = false;
-
-  private Job mJob;
-
-  private final Runnable mStopServiceWithDelay =
-      new Runnable() {
-        @MainThread
-        @Override
-        public void run() {
-          VvmLog.i(TAG, "Stopping service");
-          finishJob();
-          stopSelf();
-        }
-      };
-
-  /** Should attempt to run the next task when a task has finished or been added. */
-  private boolean mTaskAutoRunDisabledForTesting = false;
-
-  @VisibleForTesting
-  final class WorkerThreadHandler extends Handler {
-
-    public WorkerThreadHandler(Looper looper) {
-      super(looper);
-    }
-
-    @Override
-    @WorkerThread
-    public void handleMessage(Message msg) {
-      Assert.isNotMainThread();
-      Task task = (Task) msg.obj;
-      try {
-        VvmLog.i(TAG, "executing task " + task);
-        task.onExecuteInBackgroundThread();
-      } catch (Throwable throwable) {
-        VvmLog.e(TAG, "Exception while executing task " + task + ":", throwable);
-      }
-
-      Message schedulerMessage = mMainThreadHandler.obtainMessage();
-      schedulerMessage.obj = task;
-      mMessageSender.send(schedulerMessage);
-    }
-  }
-
-  @VisibleForTesting
-  final class MainThreadHandler extends Handler {
-
-    public MainThreadHandler(Looper looper) {
-      super(looper);
-    }
-
-    @Override
-    @MainThread
-    public void handleMessage(Message msg) {
-      Assert.isMainThread();
-      Task task = (Task) msg.obj;
-      getTasks().remove(task);
-      task.onCompleted();
-      mWorkerThreadIsBusy = false;
-      maybeRunNextTask();
-    }
-  }
-
-  @Override
-  @MainThread
-  public void onCreate() {
-    super.onCreate();
-    HandlerThread thread = new HandlerThread("VvmTaskSchedulerService");
-    thread.start();
-
-    mWorkerThreadHandler = new WorkerThreadHandler(thread.getLooper());
-    mMainThreadHandler = new MainThreadHandler(Looper.getMainLooper());
-  }
-
-  @Override
-  public void onDestroy() {
-    mWorkerThreadHandler.getLooper().quit();
-  }
-
-  @Override
-  @MainThread
-  public int onStartCommand(@Nullable Intent intent, int flags, int startId) {
-    Assert.isMainThread();
-    if (intent == null) {
-      VvmLog.w(TAG, "null intent received");
-      return START_NOT_STICKY;
-    }
-    Task task = Tasks.createTask(this, intent.getExtras());
-    Assert.isTrue(task != null);
-    addTask(task);
-
-    mMainThreadHandler.removeCallbacks(mStopServiceWithDelay);
-    VvmLog.i(TAG, "task added");
-    if (mJob == null) {
-      scheduleJob(0, true);
-    } else {
-      maybeRunNextTask();
-    }
-    // STICKY means the service will be automatically restarted will the last intent if it is
-    // killed.
-    return START_NOT_STICKY;
-  }
-
-  @MainThread
-  @VisibleForTesting
-  void addTask(Task task) {
-    Assert.isMainThread();
-    getTasks().add(task);
-  }
-
-  @MainThread
-  @VisibleForTesting
-  TaskQueue getTasks() {
-    Assert.isMainThread();
-    return mTasks;
-  }
-
-  @MainThread
-  private void maybeRunNextTask() {
-    Assert.isMainThread();
-    if (mWorkerThreadIsBusy) {
-      return;
-    }
-    if (mTaskAutoRunDisabledForTesting) {
-      // If mTaskAutoRunDisabledForTesting is true, runNextTask() must be explicitly called
-      // to run the next task.
-      return;
-    }
-
-    runNextTask();
-  }
-
-  @VisibleForTesting
-  @MainThread
-  void runNextTask() {
-    Assert.isMainThread();
-    if (getTasks().isEmpty()) {
-      prepareStop();
-      return;
-    }
-    NextTask nextTask = getTasks().getNextTask(READY_TOLERANCE_MILLISECONDS);
-
-    if (nextTask.task != null) {
-      nextTask.task.onBeforeExecute();
-      Message message = mWorkerThreadHandler.obtainMessage();
-      message.obj = nextTask.task;
-      mWorkerThreadIsBusy = true;
-      mMessageSender.send(message);
-      return;
-    }
-    VvmLog.i(TAG, "minimal wait time:" + nextTask.minimalWaitTimeMillis);
-    if (!mTaskAutoRunDisabledForTesting && nextTask.minimalWaitTimeMillis != null) {
-      // No tasks are currently ready. Sleep until the next one should be.
-      // If a new task is added during the sleep the service will wake immediately.
-      sleep(nextTask.minimalWaitTimeMillis);
-    }
-  }
-
-  @MainThread
-  private void sleep(long timeMillis) {
-    VvmLog.i(TAG, "sleep for " + timeMillis + " millis");
-    if (timeMillis < SHORT_SLEEP_THRESHOLD_MILLISECONDS) {
-      mMainThreadHandler.postDelayed(
-          new Runnable() {
-            @Override
-            public void run() {
-              maybeRunNextTask();
-            }
-          },
-          timeMillis);
-      return;
-    }
-    finishJob();
-    mMainThreadHandler.post(() -> scheduleJob(timeMillis, false));
-  }
-
-  private List<Bundle> serializePendingTasks() {
-    return getTasks().toBundles();
-  }
-
-  private void prepareStop() {
-    VvmLog.i(
-        TAG,
-        "no more tasks, stopping service if no task are added in "
-            + STOP_DELAY_MILLISECONDS
-            + " millis");
-    mMainThreadHandler.postDelayed(mStopServiceWithDelay, STOP_DELAY_MILLISECONDS);
-  }
-
-  @NeededForTesting
-  static class MessageSender {
-
-    public void send(Message message) {
-      message.sendToTarget();
-    }
-  }
-
-  @NeededForTesting
-  void setTaskAutoRunDisabledForTest(boolean value) {
-    mTaskAutoRunDisabledForTesting = value;
-  }
-
-  @NeededForTesting
-  void setMessageSenderForTest(MessageSender sender) {
-    mMessageSender = sender;
-  }
-
-  /**
-   * The {@link TaskSchedulerJobService} has started and all queued task should be executed in the
-   * worker thread.
-   */
-  @MainThread
-  public void onStartJob(Job job, List<Bundle> pendingTasks) {
-    VvmLog.i(TAG, "onStartJob");
-    mJob = job;
-    mTasks.fromBundles(this, pendingTasks);
-    maybeRunNextTask();
-  }
-
-  /**
-   * The {@link TaskSchedulerJobService} is being terminated by the system (timeout or network
-   * lost). A new job will be queued to resume all pending tasks. The current unfinished job may be
-   * ran again.
-   */
-  @MainThread
-  public void onStopJob() {
-    VvmLog.e(TAG, "onStopJob");
-    if (isJobRunning()) {
-      finishJob();
-      mMainThreadHandler.post(() -> scheduleJob(0, true));
-    }
-  }
-
-  /**
-   * Serializes all pending tasks and schedule a new {@link TaskSchedulerJobService}.
-   *
-   * @param delayMillis the delay before stating the job, see {@link
-   *     android.app.job.JobInfo.Builder#setMinimumLatency(long)}. This must be 0 if {@code
-   *     isNewJob} is true.
-   * @param isNewJob a new job will be requested to run immediately, bypassing all requirements.
-   */
-  @MainThread
-  private void scheduleJob(long delayMillis, boolean isNewJob) {
-    Assert.isMainThread();
-    TaskSchedulerJobService.scheduleJob(this, serializePendingTasks(), delayMillis, isNewJob);
-    mTasks.clear();
-  }
-
-  /**
-   * Signals {@link TaskSchedulerJobService} the current session of tasks has finished, and the wake
-   * lock can be released. Note: this only takes effect after the main thread has been returned. If
-   * a new job need to be scheduled, it should be posted on the main thread handler instead of
-   * calling directly.
-   */
-  @MainThread
-  private void finishJob() {
-    Assert.isMainThread();
-    VvmLog.i(TAG, "finishing Job");
-    mJob.finish();
-    mJob = null;
-  }
-
-  @Override
-  @Nullable
-  public IBinder onBind(Intent intent) {
-    return mBinder;
-  }
-
-  @NeededForTesting
-  class LocalBinder extends Binder {
-
-    @NeededForTesting
-    public TaskSchedulerService getService() {
-      return TaskSchedulerService.this;
-    }
-  }
-
-  private boolean isJobRunning() {
-    return mJob != null;
-  }
-}
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java b/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java
new file mode 100644
index 0000000..17c9be7
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl.transcribe;
+
+import android.content.Context;
+import com.android.dialer.common.ConfigProviderBindings;
+
+/** Provides configuration values needed to connect to the transcription server. */
+public class TranscriptionConfigProvider {
+  private final Context context;
+
+  public TranscriptionConfigProvider(Context context) {
+    this.context = context;
+  }
+
+  public boolean isVoicemailTranscriptionEnabled() {
+    return ConfigProviderBindings.get(context).getBoolean("voicemail_transcription_enabled", false);
+  }
+
+  public String getServerAddress() {
+    // Private voicemail transcription service
+    return ConfigProviderBindings.get(context)
+        .getString(
+            "voicemail_transcription_server_address", "voicemailtranscription-pa.googleapis.com");
+  }
+
+  public String getApiKey() {
+    // Android API key restricted to com.google.android.dialer
+    return ConfigProviderBindings.get(context)
+        .getString(
+            "voicemail_transcription_client_api_key", "AIzaSyAXdDnif6B7sBYxU8hzw9qAp3pRPVHs060");
+  }
+
+  public String getAuthToken() {
+    return null;
+  }
+
+  public boolean shouldUsePlaintext() {
+    return ConfigProviderBindings.get(context)
+        .getBoolean("voicemail_transcription_server_use_plaintext", false);
+  }
+
+  @Override
+  public String toString() {
+    return String.format(
+        "{ address: %s, api key: %s, auth token: %s, plaintext: %b }",
+        getServerAddress(), getApiKey(), getAuthToken(), shouldUsePlaintext());
+  }
+}
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java b/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java
new file mode 100644
index 0000000..cbc5cb8
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl.transcribe;
+
+import android.annotation.TargetApi;
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Build.VERSION_CODES;
+import android.provider.VoicemailContract.Voicemails;
+import android.support.annotation.WorkerThread;
+import android.support.v4.os.BuildCompat;
+import android.util.Pair;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+
+/** Helper class for reading and writing transcription data in the database */
+@TargetApi(VERSION_CODES.O)
+public class TranscriptionDbHelper {
+  private static final String[] PROJECTION =
+      new String[] {
+        Voicemails.TRANSCRIPTION, // 0
+        VoicemailCompat.TRANSCRIPTION_STATE // 1
+      };
+
+  public static final int TRANSCRIPTION = 0;
+  public static final int TRANSCRIPTION_STATE = 1;
+
+  private final ContentResolver contentResolver;
+  private final Uri uri;
+
+  TranscriptionDbHelper(Context context, Uri uri) {
+    Assert.isNotNull(uri);
+    this.contentResolver = context.getContentResolver();
+    this.uri = uri;
+  }
+
+  @WorkerThread
+  @TargetApi(VERSION_CODES.M) // used for try with resources
+  Pair<String, Integer> getTranscriptionAndState() {
+    Assert.checkArgument(BuildCompat.isAtLeastO());
+    Assert.isWorkerThread();
+    try (Cursor cursor = contentResolver.query(uri, PROJECTION, null, null, null)) {
+      if (cursor == null) {
+        LogUtil.e("TranscriptionDbHelper.getTranscriptionAndState", "query failed.");
+        return null;
+      }
+
+      if (cursor.moveToFirst()) {
+        String transcription = cursor.getString(TRANSCRIPTION);
+        int transcriptionState = cursor.getInt(TRANSCRIPTION_STATE);
+        return new Pair<>(transcription, transcriptionState);
+      }
+    }
+    LogUtil.i("TranscriptionDbHelper.getTranscriptionAndState", "query returned no results");
+    return null;
+  }
+
+  @WorkerThread
+  void setTranscriptionState(int transcriptionState) {
+    Assert.isWorkerThread();
+    LogUtil.i(
+        "TranscriptionDbHelper.setTranscriptionState",
+        "uri: " + uri + ", state: " + transcriptionState);
+    ContentValues values = new ContentValues();
+    values.put(VoicemailCompat.TRANSCRIPTION_STATE, transcriptionState);
+    updateDatabase(values);
+  }
+
+  @WorkerThread
+  void setTranscriptionAndState(String transcription, int transcriptionState) {
+    Assert.isWorkerThread();
+    LogUtil.i(
+        "TranscriptionDbHelper.setTranscriptionAndState",
+        "uri: " + uri + ", state: " + transcriptionState);
+    ContentValues values = new ContentValues();
+    values.put(Voicemails.TRANSCRIPTION, transcription);
+    values.put(VoicemailCompat.TRANSCRIPTION_STATE, transcriptionState);
+    updateDatabase(values);
+  }
+
+  private void updateDatabase(ContentValues values) {
+    int updatedCount = contentResolver.update(uri, values, null, null);
+    if (updatedCount != 1) {
+      LogUtil.e(
+          "TranscriptionDbHelper.updateDatabase",
+          "Wrong row count, should have updated 1 row, was: " + updatedCount);
+    }
+  }
+}
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionService.java b/java/com/android/voicemail/impl/transcribe/TranscriptionService.java
new file mode 100644
index 0000000..3e80a7f
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/TranscriptionService.java
@@ -0,0 +1,203 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl.transcribe;
+
+import android.app.job.JobInfo;
+import android.app.job.JobParameters;
+import android.app.job.JobScheduler;
+import android.app.job.JobService;
+import android.app.job.JobWorkItem;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.StrictMode;
+import android.support.annotation.MainThread;
+import android.support.annotation.VisibleForTesting;
+import android.support.v4.os.BuildCompat;
+import android.text.TextUtils;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.constants.ScheduledJobIds;
+import com.android.voicemail.impl.transcribe.grpc.TranscriptionClientFactory;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * Job scheduler callback for launching voicemail transcription tasks. The transcription tasks will
+ * run in the background and will typically last for approximately the length of the voicemail audio
+ * (since thats how long the backend transcription service takes to do the transcription).
+ */
+public class TranscriptionService extends JobService {
+  @VisibleForTesting static final String EXTRA_VOICEMAIL_URI = "extra_voicemail_uri";
+
+  private ExecutorService executorService;
+  private JobParameters jobParameters;
+  private TranscriptionClientFactory clientFactory;
+  private TranscriptionConfigProvider configProvider;
+  private StrictMode.VmPolicy originalPolicy;
+
+  /** Callback used by a task to indicate it has finished processing its work item */
+  interface JobCallback {
+    void onWorkCompleted(JobWorkItem completedWorkItem);
+  }
+
+  // Schedule a task to transcribe the indicated voicemail, return true if transcription task was
+  // scheduled.
+  public static boolean transcribeVoicemail(Context context, Uri voicemailUri) {
+    Assert.isMainThread();
+    if (BuildCompat.isAtLeastO()) {
+      LogUtil.i("TranscriptionService.transcribeVoicemail", "scheduling transcription");
+      ComponentName componentName = new ComponentName(context, TranscriptionService.class);
+      JobInfo.Builder builder =
+          new JobInfo.Builder(ScheduledJobIds.VVM_TRANSCRIPTION_JOB, componentName)
+              .setMinimumLatency(0)
+              .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
+      JobScheduler scheduler = context.getSystemService(JobScheduler.class);
+      JobWorkItem workItem = makeWorkItem(voicemailUri);
+      return scheduler.enqueue(builder.build(), workItem) == JobScheduler.RESULT_SUCCESS;
+    } else {
+      LogUtil.i("TranscriptionService.transcribeVoicemail", "not supported");
+      return false;
+    }
+  }
+
+  // Cancel all transcription tasks
+  public static void cancelTranscriptions(Context context) {
+    Assert.isMainThread();
+    LogUtil.enterBlock("TranscriptionService.cancelTranscriptions");
+    JobScheduler scheduler = context.getSystemService(JobScheduler.class);
+    scheduler.cancel(ScheduledJobIds.VVM_TRANSCRIPTION_JOB);
+  }
+
+  public TranscriptionService() {
+    Assert.isMainThread();
+  }
+
+  @VisibleForTesting
+  TranscriptionService(
+      ExecutorService executorService,
+      TranscriptionClientFactory clientFactory,
+      TranscriptionConfigProvider configProvider) {
+    this.executorService = executorService;
+    this.clientFactory = clientFactory;
+    this.configProvider = configProvider;
+  }
+
+  @Override
+  public boolean onStartJob(JobParameters params) {
+    Assert.isMainThread();
+    LogUtil.enterBlock("TranscriptionService.onStartJob");
+    if (!getConfigProvider().isVoicemailTranscriptionEnabled()) {
+      LogUtil.i("TranscriptionService.onStartJob", "transcription not enabled, exiting.");
+      return false;
+    } else if (TextUtils.isEmpty(getConfigProvider().getServerAddress())) {
+      LogUtil.i("TranscriptionService.onStartJob", "transcription server not configured, exiting.");
+      return false;
+    } else {
+      LogUtil.i(
+          "TranscriptionService.onStartJob",
+          "transcription server address: " + configProvider.getServerAddress());
+      originalPolicy = StrictMode.getVmPolicy();
+      StrictMode.enableDefaults();
+      jobParameters = params;
+      return checkForWork();
+    }
+  }
+
+  @Override
+  public boolean onStopJob(JobParameters params) {
+    Assert.isMainThread();
+    LogUtil.enterBlock("TranscriptionService.onStopJob");
+    cleanup();
+    return true;
+  }
+
+  @Override
+  public void onDestroy() {
+    Assert.isMainThread();
+    LogUtil.enterBlock("TranscriptionService.onDestroy");
+    cleanup();
+  }
+
+  private void cleanup() {
+    if (clientFactory != null) {
+      clientFactory.shutdown();
+      clientFactory = null;
+    }
+    if (executorService != null) {
+      executorService.shutdownNow();
+      executorService = null;
+    }
+    if (originalPolicy != null) {
+      StrictMode.setVmPolicy(originalPolicy);
+      originalPolicy = null;
+    }
+  }
+
+  @MainThread
+  private boolean checkForWork() {
+    Assert.isMainThread();
+    JobWorkItem workItem = jobParameters.dequeueWork();
+    if (workItem != null) {
+      getExecutorService()
+          .execute(new TranscriptionTask(this, new Callback(), workItem, getClientFactory()));
+      return true;
+    } else {
+      return false;
+    }
+  }
+
+  private ExecutorService getExecutorService() {
+    if (executorService == null) {
+      // The common use case is transcribing a single voicemail so just use a single thread executor
+      // The reason we're not using DialerExecutor here is because the transcription task can be
+      // very long running (ie. multiple minutes).
+      executorService = Executors.newSingleThreadExecutor();
+    }
+    return executorService;
+  }
+
+  private class Callback implements JobCallback {
+    @Override
+    public void onWorkCompleted(JobWorkItem completedWorkItem) {
+      Assert.isMainThread();
+      LogUtil.i("TranscriptionService.Callback.onWorkCompleted", completedWorkItem.toString());
+      jobParameters.completeWork(completedWorkItem);
+      checkForWork();
+    }
+  }
+
+  private static JobWorkItem makeWorkItem(Uri voicemailUri) {
+    Intent intent = new Intent();
+    intent.putExtra(EXTRA_VOICEMAIL_URI, voicemailUri);
+    return new JobWorkItem(intent);
+  }
+
+  private TranscriptionConfigProvider getConfigProvider() {
+    if (configProvider == null) {
+      configProvider = new TranscriptionConfigProvider(this);
+    }
+    return configProvider;
+  }
+
+  private TranscriptionClientFactory getClientFactory() {
+    if (clientFactory == null) {
+      clientFactory = new TranscriptionClientFactory(this, getConfigProvider());
+    }
+    return clientFactory;
+  }
+}
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java b/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java
new file mode 100644
index 0000000..0fbc33a
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl.transcribe;
+
+import android.annotation.TargetApi;
+import android.app.job.JobWorkItem;
+import android.content.Context;
+import android.net.Uri;
+import android.text.TextUtils;
+import com.android.dialer.common.concurrent.ThreadUtil;
+import com.android.voicemail.impl.VvmLog;
+import com.android.voicemail.impl.transcribe.TranscriptionService.JobCallback;
+import com.android.voicemail.impl.transcribe.grpc.TranscriptionClient;
+import com.android.voicemail.impl.transcribe.grpc.TranscriptionClientFactory;
+import com.google.internal.communications.voicemailtranscription.v1.AudioFormat;
+import com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest;
+import com.google.protobuf.ByteString;
+import io.grpc.Status;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * Background task to get a voicemail transcription and update the database.
+ *
+ * <pre>
+ * This task performs the following steps:
+ *   1. Update the transcription-state in the database to 'in-progress'
+ *   2. Create grpc client and transcription request
+ *   3. Make synchronous grpc transcription request to backend server
+ *     3a. On response
+ *       Update the database with transcription (if successful) and new transcription-state
+ *     3b. On network error
+ *       If retry-count < max then increment retry-count and retry the request
+ *       Otherwise update the transcription-state in the database to 'transcription-failed'
+ *   4. Notify the callback that the work item is complete
+ * </pre>
+ */
+public class TranscriptionTask implements Runnable {
+  private static final String TAG = "TranscriptionTask";
+
+  private final Context context;
+  private final JobCallback callback;
+  private final JobWorkItem workItem;
+  private final TranscriptionClientFactory clientFactory;
+  private final Uri voicemailUri;
+  private final TranscriptionDbHelper databaseHelper;
+  private ByteString audioData;
+  private AudioFormat encoding;
+
+  private static final int MAX_RETRIES = 2;
+  static final String AMR_PREFIX = "#!AMR\n";
+
+  public TranscriptionTask(
+      Context context,
+      JobCallback callback,
+      JobWorkItem workItem,
+      TranscriptionClientFactory clientFactory) {
+    this.context = context;
+    this.callback = callback;
+    this.workItem = workItem;
+    this.clientFactory = clientFactory;
+    this.voicemailUri = getVoicemailUri(workItem);
+    databaseHelper = new TranscriptionDbHelper(context, voicemailUri);
+  }
+
+  @Override
+  public void run() {
+    VvmLog.i(TAG, "run");
+    if (readAndValidateAudioFile()) {
+      updateTranscriptionState(VoicemailCompat.TRANSCRIPTION_IN_PROGRESS);
+      transcribeVoicemail();
+    } else {
+      updateTranscriptionState(VoicemailCompat.TRANSCRIPTION_FAILED);
+    }
+    ThreadUtil.postOnUiThread(
+        () -> {
+          callback.onWorkCompleted(workItem);
+        });
+  }
+
+  private void transcribeVoicemail() {
+    VvmLog.i(TAG, "transcribeVoicemail");
+    TranscribeVoicemailRequest request = makeRequest();
+    TranscriptionClient client = clientFactory.getClient();
+    String transcript = null;
+    for (int i = 0; transcript == null && i < MAX_RETRIES; i++) {
+      VvmLog.i(TAG, "transcribeVoicemail, try: " + (i + 1));
+      TranscriptionClient.TranscriptionResponseWrapper responseWrapper =
+          client.transcribeVoicemail(request);
+      if (responseWrapper.status != null) {
+        VvmLog.i(TAG, "transcribeVoicemail, status: " + responseWrapper.status.getCode());
+        if (shouldRetryRequest(responseWrapper.status)) {
+          backoff(i);
+        } else {
+          break;
+        }
+      } else if (responseWrapper.response != null) {
+        if (!TextUtils.isEmpty(responseWrapper.response.getTranscript())) {
+          VvmLog.i(TAG, "transcribeVoicemail, got response");
+          transcript = responseWrapper.response.getTranscript();
+        } else {
+          VvmLog.i(TAG, "transcribeVoicemail, empty transcription");
+        }
+      } else {
+        VvmLog.w(TAG, "transcribeVoicemail, no response");
+      }
+    }
+
+    int newState =
+        (transcript == null)
+            ? VoicemailCompat.TRANSCRIPTION_FAILED
+            : VoicemailCompat.TRANSCRIPTION_AVAILABLE;
+    updateTranscriptionAndState(transcript, newState);
+  }
+
+  private static boolean shouldRetryRequest(Status status) {
+    return status.getCode() == Status.Code.UNAVAILABLE;
+  }
+
+  private static void backoff(int retryCount) {
+    VvmLog.i(TAG, "backoff, count: " + retryCount);
+    try {
+      long millis = (1 << retryCount) * 1000;
+      Thread.sleep(millis);
+    } catch (InterruptedException e) {
+      VvmLog.w(TAG, "interrupted");
+      Thread.currentThread().interrupt();
+    }
+  }
+
+  private void updateTranscriptionAndState(String transcript, int newState) {
+    databaseHelper.setTranscriptionAndState(transcript, newState);
+  }
+
+  private void updateTranscriptionState(int newState) {
+    databaseHelper.setTranscriptionState(newState);
+  }
+
+  private TranscribeVoicemailRequest makeRequest() {
+    return TranscribeVoicemailRequest.newBuilder()
+        .setVoicemailData(audioData)
+        .setAudioFormat(encoding)
+        .build();
+  }
+
+  // Uses try-with-resource
+  @TargetApi(android.os.Build.VERSION_CODES.M)
+  private boolean readAndValidateAudioFile() {
+    if (voicemailUri == null) {
+      VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, file not found.");
+      return false;
+    } else {
+      VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, reading: " + voicemailUri);
+    }
+
+    try (InputStream in = context.getContentResolver().openInputStream(voicemailUri)) {
+      audioData = ByteString.readFrom(in);
+      VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, read " + audioData.size() + " bytes");
+    } catch (IOException e) {
+      VvmLog.e(TAG, "Transcriber.readAndValidateAudioFile", e);
+      return false;
+    }
+
+    if (audioData.startsWith(ByteString.copyFromUtf8(AMR_PREFIX))) {
+      encoding = AudioFormat.AMR_NB_8KHZ;
+    } else {
+      VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, unknown encoding");
+      encoding = AudioFormat.AUDIO_FORMAT_UNSPECIFIED;
+      return false;
+    }
+
+    return true;
+  }
+
+  private static Uri getVoicemailUri(JobWorkItem workItem) {
+    return workItem.getIntent().getParcelableExtra(TranscriptionService.EXTRA_VOICEMAIL_URI);
+  }
+}
diff --git a/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java b/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java
new file mode 100644
index 0000000..c6e30c6
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl.transcribe;
+
+/**
+ * Provide access to new API constants before they're publicly available
+ *
+ * <p>Copied from android.provider.VoicemailContract.Voicemails. These should become public in O-MR1
+ * and these constants can be removed then.
+ */
+public class VoicemailCompat {
+
+  /**
+   * The state of the voicemail transcription.
+   *
+   * <p>Possible values: {@link #TRANSCRIPTION_NOT_STARTED}, {@link #TRANSCRIPTION_IN_PROGRESS},
+   * {@link #TRANSCRIPTION_FAILED}, {@link #TRANSCRIPTION_AVAILABLE}.
+   *
+   * <p>Type: INTEGER
+   */
+  public static final String TRANSCRIPTION_STATE = "transcription_state";
+
+  /**
+   * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has not yet been
+   * attempted.
+   */
+  public static final int TRANSCRIPTION_NOT_STARTED = 0;
+
+  /**
+   * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has begun but is not yet
+   * complete.
+   */
+  public static final int TRANSCRIPTION_IN_PROGRESS = 1;
+
+  /**
+   * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has been attempted and
+   * failed.
+   */
+  public static final int TRANSCRIPTION_FAILED = 2;
+
+  /**
+   * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has completed and the
+   * result has been stored in the {@link #TRANSCRIPTION} column.
+   */
+  public static final int TRANSCRIPTION_AVAILABLE = 3;
+}
diff --git a/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java b/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java
new file mode 100644
index 0000000..27603d9
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl.transcribe.grpc;
+
+import android.support.annotation.Nullable;
+import android.support.annotation.WorkerThread;
+import com.android.dialer.common.Assert;
+import com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest;
+import com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse;
+import com.google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionServiceGrpc;
+import io.grpc.Status;
+import io.grpc.StatusRuntimeException;
+
+/** Wrapper around Grpc transcription server stub */
+public class TranscriptionClient {
+
+  private final VoicemailTranscriptionServiceGrpc.VoicemailTranscriptionServiceBlockingStub stub;
+
+  /** Wraps the server response and status objects, either of which may be null. */
+  public static class TranscriptionResponseWrapper {
+    public final TranscribeVoicemailResponse response;
+    public final Status status;
+
+    public TranscriptionResponseWrapper(
+        @Nullable TranscribeVoicemailResponse response, @Nullable Status status) {
+      Assert.checkArgument(!(response == null && status == null));
+      this.response = response;
+      this.status = status;
+    }
+  }
+
+  TranscriptionClient(
+      VoicemailTranscriptionServiceGrpc.VoicemailTranscriptionServiceBlockingStub stub) {
+    this.stub = stub;
+  }
+
+  @WorkerThread
+  public TranscriptionResponseWrapper transcribeVoicemail(TranscribeVoicemailRequest request) {
+    TranscribeVoicemailResponse response = null;
+    Status status = null;
+    try {
+      response = stub.transcribeVoicemail(request);
+    } catch (StatusRuntimeException e) {
+      status = e.getStatus();
+    }
+    return new TranscriptionClient.TranscriptionResponseWrapper(response, status);
+  }
+}
diff --git a/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java b/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java
new file mode 100644
index 0000000..6101ed5
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java
@@ -0,0 +1,194 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl.transcribe.grpc;
+
+import android.content.Context;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.text.TextUtils;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+import com.android.voicemail.impl.transcribe.TranscriptionConfigProvider;
+import com.google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionServiceGrpc;
+import io.grpc.CallOptions;
+import io.grpc.Channel;
+import io.grpc.ClientCall;
+import io.grpc.ClientInterceptor;
+import io.grpc.ClientInterceptors;
+import io.grpc.ForwardingClientCall;
+import io.grpc.ManagedChannel;
+import io.grpc.ManagedChannelBuilder;
+import io.grpc.Metadata;
+import io.grpc.MethodDescriptor;
+import io.grpc.okhttp.OkHttpChannelBuilder;
+import java.security.MessageDigest;
+
+/**
+ * Factory for creating grpc clients that talk to the transcription server. This allows all clients
+ * to share the same channel, which is relatively expensive to create.
+ */
+public class TranscriptionClientFactory {
+  private static final String DIGEST_ALGORITHM_SHA1 = "SHA1";
+  private static final char[] HEX_UPPERCASE = {
+    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
+  };
+
+  private final TranscriptionConfigProvider configProvider;
+  private final ManagedChannel originalChannel;
+  private final String packageName;
+  private final String cert;
+
+  public TranscriptionClientFactory(Context context, TranscriptionConfigProvider configProvider) {
+    this(context, configProvider, getManagedChannel(configProvider));
+  }
+
+  public TranscriptionClientFactory(
+      Context context, TranscriptionConfigProvider configProvider, ManagedChannel managedChannel) {
+    this.configProvider = configProvider;
+    this.packageName = context.getPackageName();
+    this.cert = getCertificateFingerprint(context);
+    originalChannel = managedChannel;
+  }
+
+  public TranscriptionClient getClient() {
+    LogUtil.enterBlock("TranscriptionClientFactory.getClient");
+    Assert.checkState(!originalChannel.isShutdown());
+    Channel channel =
+        ClientInterceptors.intercept(
+            originalChannel,
+            new Interceptor(
+                packageName, cert, configProvider.getApiKey(), configProvider.getAuthToken()));
+    return new TranscriptionClient(VoicemailTranscriptionServiceGrpc.newBlockingStub(channel));
+  }
+
+  public void shutdown() {
+    LogUtil.enterBlock("TranscriptionClientFactory.shutdown");
+    originalChannel.shutdown();
+  }
+
+  private static ManagedChannel getManagedChannel(TranscriptionConfigProvider configProvider) {
+    ManagedChannelBuilder<OkHttpChannelBuilder> builder =
+        OkHttpChannelBuilder.forTarget(configProvider.getServerAddress());
+    // Only use plaintext for debugging
+    if (configProvider.shouldUsePlaintext()) {
+      // Just passing 'false' doesnt have the same effect as not setting this field
+      builder.usePlaintext(true);
+    }
+    return builder.build();
+  }
+
+  private static String getCertificateFingerprint(Context context) {
+    try {
+      PackageInfo packageInfo =
+          context
+              .getPackageManager()
+              .getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
+      if (packageInfo != null
+          && packageInfo.signatures != null
+          && packageInfo.signatures.length > 0) {
+        MessageDigest messageDigest = MessageDigest.getInstance(DIGEST_ALGORITHM_SHA1);
+        if (messageDigest == null) {
+          LogUtil.w(
+              "TranscriptionClientFactory.getCertificateFingerprint", "error getting digest.");
+          return null;
+        }
+        byte[] bytes = messageDigest.digest(packageInfo.signatures[0].toByteArray());
+        if (bytes == null) {
+          LogUtil.w(
+              "TranscriptionClientFactory.getCertificateFingerprint", "empty message digest.");
+          return null;
+        }
+
+        int length = bytes.length;
+        StringBuilder out = new StringBuilder(length * 2);
+        for (int i = 0; i < length; i++) {
+          out.append(HEX_UPPERCASE[(bytes[i] & 0xf0) >>> 4]);
+          out.append(HEX_UPPERCASE[bytes[i] & 0x0f]);
+        }
+        return out.toString();
+      } else {
+        LogUtil.w(
+            "TranscriptionClientFactory.getCertificateFingerprint",
+            "failed to get package signature.");
+      }
+    } catch (Exception e) {
+      LogUtil.e(
+          "TranscriptionClientFactory.getCertificateFingerprint",
+          "error getting certificate fingerprint.",
+          e);
+    }
+
+    return null;
+  }
+
+  private static final class Interceptor implements ClientInterceptor {
+    private final String packageName;
+    private final String cert;
+    private final String apiKey;
+    private final String authToken;
+
+    private static final Metadata.Key<String> API_KEY_HEADER =
+        Metadata.Key.of("X-Goog-Api-Key", Metadata.ASCII_STRING_MARSHALLER);
+    private static final Metadata.Key<String> ANDROID_PACKAGE_HEADER =
+        Metadata.Key.of("X-Android-Package", Metadata.ASCII_STRING_MARSHALLER);
+    private static final Metadata.Key<String> ANDROID_CERT_HEADER =
+        Metadata.Key.of("X-Android-Cert", Metadata.ASCII_STRING_MARSHALLER);
+    private static final Metadata.Key<String> AUTHORIZATION_HEADER =
+        Metadata.Key.of("authorization", Metadata.ASCII_STRING_MARSHALLER);
+
+    public Interceptor(String packageName, String cert, String apiKey, String authToken) {
+      this.packageName = packageName;
+      this.cert = cert;
+      this.apiKey = apiKey;
+      this.authToken = authToken;
+    }
+
+    @Override
+    public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(
+        MethodDescriptor<ReqT, RespT> method, CallOptions callOptions, Channel next) {
+      LogUtil.enterBlock(
+          "TranscriptionClientFactory.interceptCall, intercepted " + method.getFullMethodName());
+      ClientCall<ReqT, RespT> call = next.newCall(method, callOptions);
+
+      call =
+          new ForwardingClientCall.SimpleForwardingClientCall<ReqT, RespT>(call) {
+            @Override
+            public void start(Listener<RespT> responseListener, Metadata headers) {
+              if (!TextUtils.isEmpty(packageName)) {
+                LogUtil.i(
+                    "TranscriptionClientFactory.interceptCall",
+                    "attaching package name: " + packageName);
+                headers.put(ANDROID_PACKAGE_HEADER, packageName);
+              }
+              if (!TextUtils.isEmpty(cert)) {
+                LogUtil.i("TranscriptionClientFactory.interceptCall", "attaching android cert");
+                headers.put(ANDROID_CERT_HEADER, cert);
+              }
+              if (!TextUtils.isEmpty(apiKey)) {
+                LogUtil.i("TranscriptionClientFactory.interceptCall", "attaching API Key");
+                headers.put(API_KEY_HEADER, apiKey);
+              }
+              if (!TextUtils.isEmpty(authToken)) {
+                LogUtil.i("TranscriptionClientFactory.interceptCall", "attaching auth token");
+                headers.put(AUTHORIZATION_HEADER, "Bearer " + authToken);
+              }
+              super.start(responseListener, headers);
+            }
+          };
+      return call;
+    }
+  }
+}
diff --git a/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto b/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto
new file mode 100644
index 0000000..4b1e19b
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto
@@ -0,0 +1,44 @@
+// LINT.IfChange
+
+syntax = "proto2";
+
+package google.internal.communications.voicemailtranscription.v1;
+
+option java_multiple_files = true;
+option java_package = "com.google.internal.communications.voicemailtranscription.v1";
+option optimize_for = LITE_RUNTIME;
+
+// Enum that specifies supported audio formats.
+enum AudioFormat {
+  // Default but invalid value.
+  AUDIO_FORMAT_UNSPECIFIED = 0;
+
+  // Adaptive Multi-Rate Narrowband, 8kHz sampling frequency.
+  // https://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec
+  AMR_NB_8KHZ = 1;
+}
+
+// Request for synchronous voicemail transcription.
+message TranscribeVoicemailRequest {
+  // Voicemail audio file containing the raw bytes we receive from the carrier.
+  optional bytes voicemail_data = 1;
+
+  // Audio format of the voicemail file.
+  optional AudioFormat audio_format = 2;
+}
+
+// Response for synchronous voicemail transcription.
+message TranscribeVoicemailResponse {
+  // The transcribed text of the voicemail.
+  optional string transcript = 1;
+}
+
+// RPC service for transcribing voicemails.
+service VoicemailTranscriptionService {
+  // Returns a transcript of the given voicemail.
+  rpc TranscribeVoicemail(TranscribeVoicemailRequest)
+      returns (TranscribeVoicemailResponse) {}
+}
+
+// LINT.ThenChange(//depot/google3/google/internal/communications/voicemailtranscription/v1/\
+//         voicemail_transcription.proto)
